From d01d63190bf60f378406ea2846a35790a1d144f6 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 28 Aug 1999 22:34:29 +0000 Subject: Update. 1999-08-28 Ulrich Drepper * malloc/malloc.c (ptmalloc_init): Don't use variables to set thresholds for SUID binaries. [PR libc/1277] 1999-08-28 Andreas Jaeger * manual/install.texi (Running make install): Give examples for timezone and locale installation. 1999-08-28 Zack Weinberg * glibcbug.in: Get CCVERSION from autoconf substitution. * configure.in: Calculate and substitute CCVERSION. 1999-08-28 Andreas Jaeger * 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. --- ChangeLog | 22 +++++++++++++ configure.in | 4 +++ glibcbug.in | 2 +- inet/netinet/in.h | 1 + malloc/malloc.c | 12 ++++--- manual/filesys.texi | 8 ++--- manual/install.texi | 17 ++++++++++ manual/libc.texinfo | 6 ++-- manual/locale.texi | 2 +- sysdeps/unix/sysv/linux/bits/socket.h | 6 ++-- sysdeps/unix/sysv/linux/mips/bits/sigaction.h | 14 ++++---- sysdeps/unix/sysv/linux/mips/bits/socket.h | 47 ++++++++++++++++++++++----- sysdeps/unix/sysv/linux/netpacket/packet.h | 5 ++- 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 + + * malloc/malloc.c (ptmalloc_init): Don't use variables to set + thresholds for SUID binaries. [PR libc/1277] + +1999-08-28 Andreas Jaeger + + * manual/install.texi (Running make install): Give examples for + timezone and locale installation. + +1999-08-28 Zack Weinberg + + * glibcbug.in: Get CCVERSION from autoconf substitution. + * configure.in: Calculate and substitute CCVERSION. + +1999-08-28 Andreas Jaeger + + * 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 * 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 ' 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 #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 { -- cgit 1.4.1