diff --git a/elf/dynamic-link.h b/elf/dynamic-link.h index 85d75d6b12..89e15a4e6c 100644 --- a/elf/dynamic-link.h +++ b/elf/dynamic-link.h @@ -81,9 +81,9 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn, not happen we do something more optimal. */ #ifdef ELF_MACHINE_PLTREL_OVERLAP -#define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, lazy) \ +#define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy) \ do { \ - struct { ElfW(Addr) start, size; int lazy; } ranges[3]; \ + struct { ElfW(Addr) start, size; int lazy; } ranges[3]; \ int ranges_index; \ \ ranges[0].lazy = ranges[2].lazy = 0; \ @@ -96,7 +96,7 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn, ranges[0].size = (map)->l_info[DT_##RELOC##SZ]->d_un.d_val; \ } \ \ - if ((lazy) \ + if ((do_lazy) \ && (map)->l_info[DT_PLTREL] \ && (map)->l_info[DT_PLTREL]->d_un.d_val == DT_##RELOC) \ { \ @@ -114,9 +114,9 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn, ranges[ranges_index].lazy); \ } while (0) #else -#define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, lazy) \ +#define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy) \ do { \ - struct { ElfW(Addr) start, size; int lazy; } ranges[2]; \ + struct { ElfW(Addr) start, size; int lazy; } ranges[2]; \ int ranges_index; \ ranges[0].lazy = 0; \ ranges[0].size = ranges[1].size = 0; \ @@ -132,7 +132,7 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn, { \ ElfW(Addr) start = (map)->l_info[DT_JMPREL]->d_un.d_ptr; \ \ - if (lazy \ + if ((do_lazy) \ /* This test does not only detect whether the relocation \ sections are in the right order, it also checks whether \ there is a DT_REL/DT_RELA section. */ \ @@ -140,7 +140,7 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn, { \ ranges[1].start = start; \ ranges[1].size = (map)->l_info[DT_PLTRELSZ]->d_un.d_val; \ - ranges[1].lazy = lazy; \ + ranges[1].lazy = (do_lazy); \ } \ else \ /* Combine processing the sections. */ \ diff --git a/include/protocols/routed.h b/include/protocols/routed.h index 2e97bfd187..7257b41eeb 100644 --- a/include/protocols/routed.h +++ b/include/protocols/routed.h @@ -1 +1 @@ -#include +#include diff --git a/include/protocols/rwhod.h b/include/protocols/rwhod.h index 6fc35a0c41..92afa469ad 100644 --- a/include/protocols/rwhod.h +++ b/include/protocols/rwhod.h @@ -1 +1 @@ -#include +#include diff --git a/include/protocols/talkd.h b/include/protocols/talkd.h index 4fd7a34fdf..1513ca7ae9 100644 --- a/include/protocols/talkd.h +++ b/include/protocols/talkd.h @@ -1 +1 @@ -#include +#include diff --git a/include/protocols/timed.h b/include/protocols/timed.h index 58dbafeaf2..ac01bd3590 100644 --- a/include/protocols/timed.h +++ b/include/protocols/timed.h @@ -1 +1 @@ -#include +#include diff --git a/inet/netinet/in.h b/inet/netinet/in.h index 418c6f96f7..cfbec4fda1 100644 --- a/inet/netinet/in.h +++ b/inet/netinet/in.h @@ -41,14 +41,20 @@ enum IPPROTO_PUP = 12, /* PUP protocol. */ IPPROTO_UDP = 17, /* User Datagram Protocol. */ IPPROTO_IDP = 22, /* XNS IDP protocol. */ + IPPROTO_TP = 29, /* SO Transport Protocol Class 4. */ IPPROTO_IPV6 = 41, /* IPv6 header. */ IPPROTO_ROUTING = 43, /* IPv6 routing header. */ IPPROTO_FRAGMENT = 44, /* IPv6 fragmentation header. */ + IPPROTO_RSVP = 46, /* Reservation Protocol. */ + IPPROTO_GRE = 47, /* General Routing Encapsulation. */ IPPROTO_ESP = 50, /* encapsulating security payload. */ IPPROTO_AH = 51, /* authentication header. */ IPPROTO_ICMPV6 = 58, /* ICMPv6. */ IPPROTO_NONE = 59, /* IPv6 no next header. */ IPPROTO_DSTOPTS = 60, /* IPv6 destination options. */ + IPPROTO_MTP = 92, /* Multicast Transport Protocol. */ + IPPROTO_ENCAP = 98, /* Encapsulation Header. */ + IPPROTO_PIM = 103, /* Protocol Independent Multicast. */ IPPROTO_RAW = 255, /* Raw IP packets. */ IPPROTO_MAX }; diff --git a/libio/Makefile b/libio/Makefile index ca1a3e4b80..3dd3705b1a 100644 --- a/libio/Makefile +++ b/libio/Makefile @@ -21,7 +21,7 @@ # subdir := libio -headers := stdio.h libio.h _G_config.h +headers := stdio.h libio.h _G_config.h bits/stdio.h routines := \ filedoalloc iofclose iofdopen iofflush iofgetpos iofgets iofopen \ diff --git a/libio/bits/stdio.h b/libio/bits/stdio.h new file mode 100644 index 0000000000..f47749e1d6 --- /dev/null +++ b/libio/bits/stdio.h @@ -0,0 +1,160 @@ +/* Optimizing macros and inline functions for stdio functions. + Copyright (C) 198 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _STDIO_H +# error "Never include directly; use instead." +#endif + +#ifdef __cplusplus +# define __STDIO_INLINE inline +#else +# define __STDIO_INLINE extern __inline +#endif + + +#ifdef __USE_EXTERN_INLINES +/* Write formatted output to stdout from argument list ARG. */ +__STDIO_INLINE int +vprintf (__const char *__restrict __fmt, _G_va_list __arg) __THROW +{ + return vfprintf (stdout, __fmt, __arg); +} + +/* Read a character from stdin. */ +__STDIO_INLINE int +getchar (void) __THROW +{ + return _IO_getc (stdin); +} + + +# if defined __USE_POSIX || defined __USE_MISC +/* This is defined in POSIX.1:1996. */ +__STDIO_INLINE int +getc_unlocked (FILE *__fp) __THROW +{ + return _IO_getc_unlocked (__fp); +} + +/* This is defined in POSIX.1:1996. */ +__STDIO_INLINE int +getchar_unlocked (void) __THROW +{ + return _IO_getc_unlocked (stdin); +} +# endif /* POSIX || misc */ + + +/* Write a character to stdout. */ +__STDIO_INLINE int +putchar (int __c) __THROW +{ + return _IO_putc (__c, stdout); +} + + +# ifdef __USE_MISC +/* Faster version when locking is not necessary. */ +__STDIO_INLINE int +fputc_unlocked (int __c, FILE *__stream) __THROW +{ + return _IO_putc_unlocked (__c, __stream); +} +# endif /* misc */ + + +# if defined __USE_POSIX || defined __USE_MISC +/* This is defined in POSIX.1:1996. */ +__STDIO_INLINE int +putc_unlocked (int __c, FILE *__stream) __THROW +{ + return _IO_putc_unlocked (__c, __stream); +} + +/* This is defined in POSIX.1:1996. */ +__STDIO_INLINE int +putchar_unlocked (int __c) __THROW +{ + return _IO_putc_unlocked (__c, stdout); +} +# endif /* POSIX || misc */ + + +# ifdef __USE_GNU +/* Like `getdelim', but reads up to a newline. */ +__STDIO_INLINE _IO_ssize_t +getline (char **__lineptr, size_t *__n, FILE *__stream) __THROW +{ + return __getdelim (__lineptr, __n, '\n', __stream); +} +# endif /* GNU */ + + +# ifdef __USE_MISC +/* Faster versions when locking is not required. */ +__STDIO_INLINE int +feof_unlocked (FILE *__stream) __THROW +{ + return _IO_feof_unlocked (__stream); +} + +/* Faster versions when locking is not required. */ +__STDIO_INLINE int +ferror_unlocked (FILE *__stream) __THROW +{ + return _IO_ferror_unlocked (__stream); +} +# endif /* misc */ + +#endif /* Use extern inlines. */ + + +#if defined __USE_MISC && defined __GNUC__ && defined __OPTIMIZE__ +/* Perform some simple optimizations. */ +# define fread_unlocked(ptr, size, n, stream) \ + (__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) \ + && (size_t) ((size) * (n)) <= 8) \ + ? ({ char *__ptr = (char *) (ptr); \ + FILE *__stream = (stream); \ + int __c; \ + size_t __cnt = (size) * (n); \ + while (__cnt-- > 0) \ + { \ + __c = _IO_getc_unlocked (__stream); \ + if (__c == EOF) \ + break; \ + *__ptr++ = __c; \ + } \ + ((size_t) ((size) * (n)) - __cnt) / (size); }) \ + : fread_unlocked (ptr, size, n, stream))) + +# define fwrite_unlocked(ptr, size, n, stream) \ + (__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) \ + && (size_t) ((size) * (n)) <= 8) \ + ? ({ const char *__ptr = (const char *) (ptr); \ + FILE *__stream = (stream); \ + size_t __cnt = (size) * (n); \ + while (__cnt-- > 0) \ + if (_IO_putc_unlocked (*__ptr++, __stream) == EOF) \ + break; \ + ((size_t) ((size) * (n)) - __cnt) / (size); }) \ + : fwrite_unlocked (ptr, size, n, stream))) +#endif + +/* Define helper macro. */ +#undef __STDIO_INLINE diff --git a/libio/iofread.c b/libio/iofread.c index 36640065d5..c2d12d8693 100644 --- a/libio/iofread.c +++ b/libio/iofread.c @@ -32,7 +32,7 @@ _IO_fread (buf, size, count, fp) _IO_size_t count; _IO_FILE *fp; { - _IO_size_t bytes_requested = size*count; + _IO_size_t bytes_requested = size * count; _IO_size_t bytes_read; CHECK_FILE (fp, 0); if (bytes_requested == 0) diff --git a/libio/iofread_u.c b/libio/iofread_u.c index 69627165eb..aeef514ed2 100644 --- a/libio/iofread_u.c +++ b/libio/iofread_u.c @@ -26,6 +26,8 @@ #include "libioP.h" #include +#undef fread_unlocked + _IO_size_t fread_unlocked (buf, size, count, fp) void *buf; @@ -33,7 +35,7 @@ fread_unlocked (buf, size, count, fp) _IO_size_t count; _IO_FILE *fp; { - _IO_size_t bytes_requested = size*count; + _IO_size_t bytes_requested = size * count; _IO_size_t bytes_read; CHECK_FILE (fp, 0); if (bytes_requested == 0) diff --git a/libio/iofwrite_u.c b/libio/iofwrite_u.c index 3ffc9bff2b..38d1bd08a3 100644 --- a/libio/iofwrite_u.c +++ b/libio/iofwrite_u.c @@ -26,6 +26,8 @@ #include "libioP.h" #include +#undef fwrite_unlocked + _IO_size_t fwrite_unlocked (buf, size, count, fp) const void *buf; diff --git a/libio/stdio.h b/libio/stdio.h index 4fd2e99453..cd7205f048 100644 --- a/libio/stdio.h +++ b/libio/stdio.h @@ -56,12 +56,6 @@ typedef struct _IO_FILE FILE; #include -#ifdef __cplusplus -# define __STDIO_INLINE inline -#else -# define __STDIO_INLINE extern __inline -#endif - /* The type of the second argument to `fgetpos' and `fsetpos'. */ #ifndef __USE_FILE_OFFSET64 typedef _G_fpos_t fpos_t; @@ -267,14 +261,6 @@ extern int vsprintf __P ((char *__restrict __s, __const char *__restrict __format, _G_va_list __arg)); -#ifdef __USE_EXTERN_INLINES -__STDIO_INLINE int -vprintf (__const char *__restrict __fmt, _G_va_list __arg) __THROW -{ - return vfprintf (stdout, __fmt, __arg); -} -#endif /* Use extern inlines. */ - #if defined __USE_BSD || defined __USE_ISOC9X || defined __USE_UNIX98 /* Maximum chars of output to write in MAXLEN. */ extern int snprintf __P ((char *__restrict __s, size_t __maxlen, @@ -352,32 +338,10 @@ extern int getchar __P ((void)); optimization for it. */ #define getc(_fp) _IO_getc (_fp) -#ifdef __USE_EXTERN_INLINES -__STDIO_INLINE int -getchar (void) __THROW -{ - return _IO_getc (stdin); -} -#endif /* Use extern inlines. */ - #if defined __USE_POSIX || defined __USE_MISC /* These are defined in POSIX.1:1996. */ extern int getc_unlocked __P ((FILE *__stream)); extern int getchar_unlocked __P ((void)); - -# ifdef __USE_EXTERN_INLINES -__STDIO_INLINE int -getc_unlocked (FILE *__fp) __THROW -{ - return _IO_getc_unlocked (__fp); -} - -__STDIO_INLINE int -getchar_unlocked (void) __THROW -{ - return _IO_getc_unlocked (stdin); -} -# endif /* Use extern inlines. */ #endif /* Use POSIX or MISC. */ @@ -392,45 +356,15 @@ extern int putchar __P ((int __c)); so we always do the optimization for it. */ #define putc(_ch, _fp) _IO_putc (_ch, _fp) -#ifdef __USE_EXTERN_INLINES -__STDIO_INLINE int -putchar (int __c) __THROW -{ - return _IO_putc (__c, stdout); -} -#endif /* Use extern inlines. */ - #ifdef __USE_MISC /* Faster version when locking is not necessary. */ extern int fputc_unlocked __P ((int __c, FILE *__stream)); - -# ifdef __USE_EXTERN_INLINES -__STDIO_INLINE int -fputc_unlocked (int __c, FILE *__stream) __THROW -{ - return _IO_putc_unlocked (__c, __stream); -} -# endif /* Use extern inlines. */ #endif /* Use MISC. */ #if defined __USE_POSIX || defined __USE_MISC /* These are defined in POSIX.1:1996. */ extern int putc_unlocked __P ((int __c, FILE *__stream)); extern int putchar_unlocked __P ((int __c)); - -# ifdef __USE_EXTERN_INLINES -__STDIO_INLINE int -putc_unlocked (int __c, FILE *__stream) __THROW -{ - return _IO_putc_unlocked (__c, __stream); -} - -__STDIO_INLINE int -putchar_unlocked (int __c) __THROW -{ - return _IO_putc_unlocked (__c, stdout); -} -# endif /* Use extern inlines. */ #endif /* Use POSIX or MISC. */ @@ -472,14 +406,6 @@ extern _IO_ssize_t getdelim __P ((char **__lineptr, size_t *__n, /* Like `getdelim', but reads up to a newline. */ extern _IO_ssize_t getline __P ((char **__lineptr, size_t *__n, FILE *__stream)); - -# ifdef __USE_EXTERN_INLINES -__STDIO_INLINE _IO_ssize_t -getline (char **__lineptr, size_t *__n, FILE *__stream) __THROW -{ - return __getdelim (__lineptr, __n, '\n', __stream); -} -# endif /* Use extern inlines. */ #endif @@ -603,20 +529,6 @@ extern int ferror __P ((FILE *__stream)); extern void clearerr_unlocked __P ((FILE *__stream)); extern int feof_unlocked __P ((FILE *__stream)); extern int ferror_unlocked __P ((FILE *__stream)); - -# ifdef __USE_EXTERN_INLINES -__STDIO_INLINE int -feof_unlocked (FILE *__stream) __THROW -{ - return _IO_feof_unlocked (__stream); -} - -__STDIO_INLINE int -ferror_unlocked (FILE *__stream) __THROW -{ - return _IO_ferror_unlocked (__stream); -} -# endif /* Use extern inlines. */ #endif @@ -702,10 +614,13 @@ extern void funlockfile __P ((FILE *__stream)); # include #endif -__END_DECLS +/* If we are compiling with optimizing read this file. It contains + several optizing inline functions and macros. */ +#ifdef __USE_EXTERN_INLINES +# include +#endif -/* Define helper macro. */ -#undef __STDIO_INLINE +__END_DECLS #endif /* included. */ diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 9a0e9c4226..e8f4f8bf67 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,7 @@ +1998-11-12 Ulrich Drepper + + * locales/el_GR (abmon): Remove spaces at end of strings. + 1998-10-20 Ulrich Drepper * tests/test1.cm: Add missing character definitions to read POSIX diff --git a/localedata/locales/el_GR b/localedata/locales/el_GR index 46e1e184ae..32f441a553 100644 --- a/localedata/locales/el_GR +++ b/localedata/locales/el_GR @@ -3097,12 +3097,12 @@ day "";/ "";/ "";/ "" -abmon "";"";/ - "";"";/ - "";"";/ - "";"";/ - "";"";/ - "";"" +abmon "";"";/ + "";"";/ + "";"";/ + "";"";/ + "";"";/ + "";"" mon "<*s>";/ "<*s>";/ "<*s>";/ diff --git a/manual/install.texi b/manual/install.texi index a68151852e..0348a23525 100644 --- a/manual/install.texi +++ b/manual/install.texi @@ -29,14 +29,14 @@ Canada, you must get @code{crypt} support from a site outside the US, such as @samp{ftp.ifi.uio.no}. @c Check this please someone: (Most non-US mirrors of @samp{ftp.gnu.org} will have it too.) The file -you need is @file{glibc-crypt-@var{VERSION}.tar.gz}. +you need is @file{glibc-crypt-@var{VERSION}.tar.gz}. You will need recent versions of several GNU tools: definitely GCC and GNU Make, and possibly others. @xref{Tools for Compilation}, below. @menu * Configuring and compiling:: How to compile and test GNU libc. -* Installation:: How to install it once you've got it compiled. +* Running make install:: How to install it once you've got it compiled. * Tools for Compilation:: You'll need these first. * Supported Configurations:: What it runs on, what it doesn't. * Linux:: Specific advice for Linux systems. @@ -208,7 +208,7 @@ The distribution already includes the on-line formatted version of the manual, as Info files. You can regenerate those with @w{@code{make info}}, but it shouldn't be necessary. -@node Installation +@node Running make install @appendixsec Installing the C Library @cindex installing diff --git a/sysdeps/unix/sysv/linux/mips/bits/fcntl.h b/sysdeps/unix/sysv/linux/mips/bits/fcntl.h index 0a21a59e0a..5ed6d76ef1 100644 --- a/sysdeps/unix/sysv/linux/mips/bits/fcntl.h +++ b/sysdeps/unix/sysv/linux/mips/bits/fcntl.h @@ -90,7 +90,7 @@ /* Operations for bsd flock(), also used by the kernel implementation */ # define LOCK_SH 1 /* shared lock */ # define LOCK_EX 2 /* exclusive lock */ -# define LOCK_NB 4 /* or'd with one of the above to prevent XXXXXXXXXXXXXXXXXX +# define LOCK_NB 4 /* or'd with one of the above to prevent blocking */ # define LOCK_UN 8 /* remove lock */ #endif