about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog22
-rw-r--r--configure.in4
-rw-r--r--glibcbug.in2
-rw-r--r--inet/netinet/in.h1
-rw-r--r--malloc/malloc.c12
-rw-r--r--manual/filesys.texi8
-rw-r--r--manual/install.texi17
-rw-r--r--manual/libc.texinfo6
-rw-r--r--manual/locale.texi2
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket.h6
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/sigaction.h14
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/socket.h47
-rw-r--r--sysdeps/unix/sysv/linux/netpacket/packet.h5
13 files changed, 115 insertions, 31 deletions
diff --git a/ChangeLog b/ChangeLog
index c37ff06608..0f2ec69bd2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+1999-08-28  Ulrich Drepper  <drepper@cygnus.com>
+
+	* malloc/malloc.c (ptmalloc_init): Don't use variables to set
+	thresholds for SUID binaries.  [PR libc/1277]
+
+1999-08-28  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* manual/install.texi (Running make install): Give examples for
+	timezone and locale installation.
+
+1999-08-28  Zack Weinberg  <zack@bitmover.com>
+
+	* glibcbug.in: Get CCVERSION from autoconf substitution.
+	* configure.in: Calculate and substitute CCVERSION.
+
+1999-08-28  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Fix sa_flags,
+	partially reverting a patch from 1998-12-29.  We just can't change 
+	the flags, kernels with different flags lead to
+	incompatibilities.
+
 1999-08-26  Andreas Schwab  <schwab@suse.de>
 
 	* locale/langinfo.h (YESSTR, NOSTR): Still define if __USE_GNU.
diff --git a/configure.in b/configure.in
index d79d38789b..640308a059 100644
--- a/configure.in
+++ b/configure.in
@@ -478,6 +478,10 @@ test -n "$aux_missing" && AC_MSG_WARN([
 *** some features will be disabled.
 *** Check the INSTALL file for required versions.])
 
+# glibcbug.in wants to know the compiler version.
+CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
+AC_SUBST(CCVERSION)
+
 AC_PROG_CC_LOCAL
 AC_CANONICAL_BUILD
 if test $host != $build; then
diff --git a/glibcbug.in b/glibcbug.in
index 733f5d9c95..c47a772077 100644
--- a/glibcbug.in
+++ b/glibcbug.in
@@ -10,6 +10,7 @@ RELEASE="@RELEASE@"
 ADDONS="@subdirs@"
 HOST="@host@"
 CC='@CC@'
+CCVERSION='@CCVERSION@'
 CFLAGS="@CFLAGS@"
 SYSINCLUDES="@SYSINCLUDES@"
 VERSIONING="@VERSIONING@"
@@ -109,7 +110,6 @@ SYSTEM=`( [ -f /bin/uname ] && /bin/uname -a ) || \
         ( [ -f /usr/bin/uname ] && /usr/bin/uname -a ) || echo ""`
 ARCH=`[ -f /bin/arch ] && /bin/arch`
 MACHINE=`[ -f /bin/machine ] && /bin/machine`
-CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
 
 case $HOST in *linux*)
   KHDRS=`(echo '#include <linux/version.h>'
diff --git a/inet/netinet/in.h b/inet/netinet/in.h
index 10dae19d34..e57d9e0457 100644
--- a/inet/netinet/in.h
+++ b/inet/netinet/in.h
@@ -56,6 +56,7 @@ enum
     IPPROTO_MTP = 92,	   /* Multicast Transport Protocol.  */
     IPPROTO_ENCAP = 98,	   /* Encapsulation Header.  */
     IPPROTO_PIM = 103,	   /* Protocol Independent Multicast.  */
+    IPPROTO_COMP = 108,	   /* Compression Header Protocol.  */
     IPPROTO_RAW = 255,	   /* Raw IP packets.  */
     IPPROTO_MAX
   };
diff --git a/malloc/malloc.c b/malloc/malloc.c
index eba2a60915..98a248b894 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -305,6 +305,10 @@
 # include <sys/types.h>
 #endif
 
+#ifndef _LIBC
+# define __secure_getenv(Str) getenv (Str)
+#endif
+
 /* Macros for handling mutexes and thread-specific data.  This is
    included early, because some thread-related header files (such as
    pthread.h) should be included before any others. */
@@ -1674,13 +1678,13 @@ ptmalloc_init __MALLOC_P((void))
   thread_atfork(ptmalloc_lock_all, ptmalloc_unlock_all, ptmalloc_init_all);
 #endif /* !defined NO_THREADS */
 #if defined _LIBC || defined MALLOC_HOOKS
-  if((s = getenv("MALLOC_TRIM_THRESHOLD_")))
+  if((s = __secure_getenv("MALLOC_TRIM_THRESHOLD_")))
     mALLOPt(M_TRIM_THRESHOLD, atoi(s));
-  if((s = getenv("MALLOC_TOP_PAD_")))
+  if((s = __secure_getenv("MALLOC_TOP_PAD_")))
     mALLOPt(M_TOP_PAD, atoi(s));
-  if((s = getenv("MALLOC_MMAP_THRESHOLD_")))
+  if((s = __secure_getenv("MALLOC_MMAP_THRESHOLD_")))
     mALLOPt(M_MMAP_THRESHOLD, atoi(s));
-  if((s = getenv("MALLOC_MMAP_MAX_")))
+  if((s = __secure_getenv("MALLOC_MMAP_MAX_")))
     mALLOPt(M_MMAP_MAX, atoi(s));
   s = getenv("MALLOC_CHECK_");
 #ifndef NO_THREADS
diff --git a/manual/filesys.texi b/manual/filesys.texi
index 88ff6360c8..728b904d66 100644
--- a/manual/filesys.texi
+++ b/manual/filesys.texi
@@ -17,7 +17,7 @@ access permissions and modification times.
 				 file names.
 * Accessing Directories::       Finding out what files a directory
 				 contains.
-* Working on Directory Trees::  Apply actions to all files or a selectable
+* Working with Directory Trees:: Apply actions to all files or a selectable
                                  subset of a directory hierarchy.
 * Hard Links::                  Adding alternate names to a file.
 * Symbolic Links::              A file that ``points to'' a file name.
@@ -793,7 +793,7 @@ is @math{0} or a bitwise-OR combination of any of the following values.
 While traversing the directory symbolic links are not followed.  Instead
 symbolic links are reported using the @code{FTW_SL} value for the type
 parameter to the callback function.  If the file referenced by a
-symbolic link does not exist {FTW_SLN} is returned instead.
+symbolic link does not exist @code{FTW_SLN} is returned instead.
 @item FTW_MOUNT
 The callback function is only called for items which are on the same
 mounted filesystem as the directory given by the @var{filename}
@@ -1826,7 +1826,7 @@ main purpose is for access control.
 The file owner and group play a role in determining access because the
 file has one set of access permission bits for the owner, another set
 that applies to users who belong to the file's group, and a third set of
-bits that applies to everyone else.  @xref{Access Permission} for the
+bits that applies to everyone else.  @xref{Access Permission}, for the
 details of how access is decided based on this data.
 
 When a file is created, its owner is set to the effective user ID of the
@@ -1915,7 +1915,7 @@ The @dfn{file mode}, stored in the @code{st_mode} field of the file
 attributes, contains two kinds of information: the file type code, and
 the access permission bits.  This section discusses only the access
 permission bits, which control who can read or write the file.
-@xref{Testing File Type} for information about the file type code.
+@xref{Testing File Type}, for information about the file type code.
 
 All of the symbols listed in this section are defined in the header file
 @file{sys/stat.h}.
diff --git a/manual/install.texi b/manual/install.texi
index a72eee6aef..19b7196be7 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -267,6 +267,23 @@ newer Linux kernel with the @code{devptsfs} or @code{devfs} filesystems
 providing pty slaves, you don't need this program; otherwise you do.
 The source for @file{pt_chown} is in @file{login/programs/pt_chown.c}.
 
+After installation you might want to configure the timezone and locale
+installation of your system.  The GNU C library comes with a locale
+database which gets configured with @code{localedef}.  For example, to
+set up a German locale with name @code{de_DE}, simply issue the command
+@samp{localedef -i de_DE -f ISO-8859-1 de_DE}.  To configure all locales 
+that are supported by glibc, you can issue from your build directory the 
+command @samp{make localedata/install-locales}.
+
+To configure the locally used timezone, you can either set the @code{TZ}
+environment variable.  The script @code{tzselect} helps you to select
+the right value.  As an example for Germany, tzselect would tell you to
+use @samp{TZ='Europe/Berlin'}.  For a system wide installation (the
+given paths are for an installation with @samp{--prefix=/usr}), link the 
+timezone file which is in @file{/usr/share/zoneinfo} to the file
+@file{/etc/localtime}.  For Germany, you might execute @samp{ln -s
+/usr/share/zoneinfo/Europe/Berlin /etc/localtime}.
+
 @node Tools for Compilation
 @appendixsec Recommended Tools for Compilation
 @cindex installation tools
diff --git a/manual/libc.texinfo b/manual/libc.texinfo
index ee5ee051fe..684c49d7de 100644
--- a/manual/libc.texinfo
+++ b/manual/libc.texinfo
@@ -17,9 +17,9 @@
 @comment %**end of header (This is for running Texinfo on a region.)
 
 @c sold 0.06/1.09, print run out 21may96
-@set EDITION 0.08 DRAFT
-@set VERSION 2.1 Beta
-@set UPDATED 11 Jan 1999
+@set EDITION 0.09 DRAFT
+@set VERSION 2.2 Beta
+@set UPDATED 28 Aug 1999
 @set ISBN 1-882114-53-1
 
 @ifinfo
diff --git a/manual/locale.texi b/manual/locale.texi
index 096ac48105..9d1dd8cf21 100644
--- a/manual/locale.texi
+++ b/manual/locale.texi
@@ -914,7 +914,7 @@ selected when the program runs.  If the user selects the locale
 correctly there should never be a misunderstanding over the time and
 date format.
 
-@node Formatting Numbers, Locale Information, Locales
+@node Formatting Numbers, , Locale Information, Locales
 @section A dedicated function to format numbers
 
 We have seen that the structure returned by @code{localeconv} as well as
diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h
index 193067001f..491b133b7a 100644
--- a/sysdeps/unix/sysv/linux/bits/socket.h
+++ b/sysdeps/unix/sysv/linux/bits/socket.h
@@ -103,7 +103,7 @@ enum __socket_type
 #define	AF_DECnet	PF_DECnet
 #define	AF_NETBEUI	PF_NETBEUI
 #define	AF_SECURITY	PF_SECURITY
-#define	pseudo_AF_KEY	PF_KEY
+#define	AF_KEY		PF_KEY
 #define	AF_NETLINK	PF_NETLINK
 #define	AF_ROUTE	PF_ROUTE
 #define	AF_PACKET	PF_PACKET
@@ -192,9 +192,9 @@ enum
 #define	MSG_URG		MSG_URG
     MSG_RST		= 0x1000,
 #define	MSG_RST		MSG_RST
-    MSG_ERRQUEUE	= 0x2000,
+    MSG_ERRQUEUE	= 0x2000, /* Fetch message from error queue.  */
 #define	MSG_ERRQUEUE	MSG_ERRQUEUE
-    MSG_NOSIGNAL	= 0x4000
+    MSG_NOSIGNAL	= 0x4000  /* Do not generate SIGPIPE.  */
 #define	MSG_NOSIGNAL	MSG_NOSIGNAL
   };
 
diff --git a/sysdeps/unix/sysv/linux/mips/bits/sigaction.h b/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
index 8d080272fc..963b425f48 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
@@ -55,18 +55,20 @@ struct sigaction
   };
 
 /* Bits in `sa_flags'.  */
-#define SA_NOCLDSTOP  0x00020000 /* Don't send SIGCHLD when children stop.  */
+/* Please note that some Linux kernels versions use different values for these
+   flags which is a bug in those kernel versions.  */
+#define SA_NOCLDSTOP  0x00000001 /* Don't send SIGCHLD when children stop.  */
 #define SA_SIGINFO    0x00000008 /* Invoke signal-catching function with
 				    three arguments instead of one.  */
 #if defined __USE_UNIX98 || defined __USE_MISC
-# define SA_ONSTACK   0x00000001 /* Use signal stack by using `sa_restorer'. */
-# define SA_RESETHAND 0x00000002 /* Reset to SIG_DFL on entry to handler.  */
-# define SA_RESTART   0x00000004 /* Restart syscall on signal return.  */
-# define SA_NODEFER   0x00000010 /* Don't automatically block the signal when
+# define SA_ONSTACK   0x08000000 /* Use signal stack by using `sa_restorer'. */
+# define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler.  */
+# define SA_RESTART   0x10000000 /* Restart syscall on signal return.  */
+# define SA_NODEFER   0x40000000 /* Don't automatically block the signal when
 				    its handler is being executed.  */
 #endif
 #ifdef __USE_MISC
-# define SA_INTERRUPT 0x01000000 /* Historical no-op.  */
+# define SA_INTERRUPT 0x20000000 /* Historical no-op.  */
 
 /* Some aliases for the SA_ constants.  */
 # define SA_NOMASK    SA_NODEFER
diff --git a/sysdeps/unix/sysv/linux/mips/bits/socket.h b/sysdeps/unix/sysv/linux/mips/bits/socket.h
index 5dbdee419f..74f54e87bd 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/socket.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/socket.h
@@ -82,6 +82,7 @@ enum __socket_type
 #define	PF_ECONET	19	/* Acorn Econet.  */
 #define	PF_ATMSVC	20	/* ATM SVCs.  */
 #define	PF_SNA		22	/* Linux SNA Project */
+#define 	PF_IRDA		23	/* IRDA sockets.  */
 #define	PF_MAX		32	/* For now..  */
 
 /* Address families.  */
@@ -102,7 +103,7 @@ enum __socket_type
 #define	AF_DECnet	PF_DECnet
 #define	AF_NETBEUI	PF_NETBEUI
 #define	AF_SECURITY	PF_SECURITY
-#define	pseudo_AF_KEY	PF_KEY
+#define	AF_KEY		PF_KEY
 #define	AF_NETLINK	PF_NETLINK
 #define	AF_ROUTE	PF_ROUTE
 #define	AF_PACKET	PF_PACKET
@@ -110,6 +111,7 @@ enum __socket_type
 #define	AF_ECONET	PF_ECONET
 #define	AF_ATMSVC	PF_ATMSVC
 #define	AF_SNA		PF_SNA
+#define 	AF_IRDA		PF_IRDA
 #define	AF_MAX		PF_MAX
 
 /* Socket level values.  Others are defined in the appropriate headers.
@@ -119,6 +121,10 @@ enum __socket_type
 #define SOL_RAW		255
 #define SOL_DECNET      261
 #define SOL_X25         262
+#define SOL_PACKET	263
+#define SOL_ATM		264	/* ATM layer (cell level).  */
+#define SOL_AAL		265	/* ATM Adaption Layer (packet level).  */
+#define SOL_IRDA	266
 
 /* Maximum queue length specifiable by listen.  */
 #define SOMAXCONN	128
@@ -137,17 +143,17 @@ struct sockaddr
 /* Structure large enough to hold any socket address (with the historical
    exception of AF_UNIX).  We reserve 128 bytes.  */
 #if ULONG_MAX > 0xffffffff
-# define __ss_align	__uint64_t
+# define __ss_aligntype	__uint64_t
 #else
-# define __ss_align	__uint32_t
+# define __ss_aligntype	__uint32_t
 #endif
 #define _SS_SIZE	128
-#define _SS_PADSIZE	(_SS_SIZE - (2 * sizeof(__ss_align)))
+#define _SS_PADSIZE	(_SS_SIZE - (2 * sizeof (__ss_aligntype)))
 
 struct sockaddr_storage
   {
     __SOCKADDR_COMMON (__ss_);	/* Address family, etc.  */
-    __ss_align __ss_align;	/* Force desired alignment.  */
+    __ss_aligntype __ss_align;	/* Force desired alignment.  */
     char __ss_padding[_SS_PADSIZE];
   };
 
@@ -161,10 +167,35 @@ enum
 #define MSG_PEEK	MSG_PEEK
     MSG_DONTROUTE	= 0x04,	/* Don't use local routing.  */
 #define MSG_DONTROUTE	MSG_DONTROUTE
+#ifdef __USE_GNU
+    /* DECnet uses a different name.  */
+    MSG_TRYHARD		= MSG_DONTROUTE,
+# define MSG_TRYHARD	MSG_DONTROUTE
+#endif
     MSG_CTRUNC		= 0x08,	/* Control data lost before delivery.  */
 #define MSG_CTRUNC	MSG_CTRUNC
-    MSG_PROXY		= 0x10	/* Supply or ask second address.  */
+    MSG_PROXY		= 0x10,	/* Supply or ask second address.  */
 #define MSG_PROXY	MSG_PROXY
+    MSG_TRUNC		= 0x20,
+#define	MSG_TRUNC	MSG_TRUNC
+    MSG_DONTWAIT	= 0x40, /* Nonblocking IO.  */
+#define	MSG_DONTWAIT	MSG_DONTWAIT
+    MSG_EOR		= 0x80, /* End of record.  */
+#define	MSG_EOR		MSG_EOR
+    MSG_WAITALL		= 0x100, /* Wait for a full request.  */
+#define	MSG_WAITALL	MSG_WAITALL
+    MSG_FIN		= 0x200,
+#define	MSG_FIN		MSG_FIN
+    MSG_SYN		= 0x400,
+#define	MSG_SYN		MSG_SYN
+    MSG_URG		= 0x800,
+#define	MSG_URG		MSG_URG
+    MSG_RST		= 0x1000,
+#define	MSG_RST		MSG_RST
+    MSG_ERRQUEUE	= 0x2000, /* Fetch message from error queue.  */
+#define	MSG_ERRQUEUE	MSG_ERRQUEUE
+    MSG_NOSIGNAL	= 0x4000  /* Do not generate SIGPIPE.  */
+#define	MSG_NOSIGNAL	MSG_NOSIGNAL
   };
 
 
@@ -224,7 +255,7 @@ __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) __THROW
 {
   if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
     /* The kernel header does this so there may be a reason.  */
-    return NULL;
+    return 0;
 
   __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
 			       + CMSG_ALIGN (__cmsg->cmsg_len));
@@ -233,7 +264,7 @@ __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) __THROW
       || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
 	  >= ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
     /* No more entries.  */
-    return NULL;
+    return 0;
   return __cmsg;
 }
 #endif	/* Use `extern inline'.  */
diff --git a/sysdeps/unix/sysv/linux/netpacket/packet.h b/sysdeps/unix/sysv/linux/netpacket/packet.h
index a382654326..77e272012b 100644
--- a/sysdeps/unix/sysv/linux/netpacket/packet.h
+++ b/sysdeps/unix/sysv/linux/netpacket/packet.h
@@ -1,5 +1,5 @@
 /* Definitions for use with Linux AF_PACKET sockets.
-   Copyright (C) 1998 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -45,6 +45,9 @@ struct sockaddr_ll
 
 #define PACKET_ADD_MEMBERSHIP		1
 #define PACKET_DROP_MEMBERSHIP		2
+#define	PACKET_RECV_OUTPUT		3
+#define	PACKET_RX_RING			5
+#define	PACKET_STATISTICS		6
 
 struct packet_mreq
   {