aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog108
-rw-r--r--Makeconfig2
-rw-r--r--assert/assert-perr.c1
-rw-r--r--assert/assert.c1
-rw-r--r--assert/assert.h8
-rw-r--r--db2/compat.h6
-rw-r--r--db2/config.h6
-rw-r--r--elf/dl-open.c1
-rw-r--r--elf/dlsym.c1
-rw-r--r--elf/dlvsym.c1
-rw-r--r--iconv/iconv.c1
-rw-r--r--iconv/iconv_prog.c1
-rw-r--r--include/features.h14
-rw-r--r--include/libc-symbols.h27
-rw-r--r--include/libintl.h16
-rw-r--r--inet/rcmd.c1
-rw-r--r--inet/ruserpass.c1
-rw-r--r--intl/libintl.h2
-rw-r--r--linuxthreads/internals.h2
-rw-r--r--linuxthreads/no-tsd.c1
-rw-r--r--locale/programs/charset.c1
-rw-r--r--locale/programs/ld-collate.c1
-rw-r--r--locale/programs/ld-ctype.c1
-rw-r--r--locale/programs/ld-messages.c1
-rw-r--r--locale/programs/ld-monetary.c1
-rw-r--r--locale/programs/ld-numeric.c1
-rw-r--r--locale/programs/ld-time.c1
-rw-r--r--locale/programs/locfile.c1
-rw-r--r--locale/programs/repertoire.c1
-rw-r--r--login/programs/database.c1
-rw-r--r--login/programs/request.c1
-rw-r--r--malloc/malloc.h2
-rw-r--r--malloc/mcheck.c1
-rw-r--r--math/complex.h2
-rw-r--r--math/tgmath.h2
-rw-r--r--misc/error.c1
-rw-r--r--misc/sys/cdefs.h12
-rw-r--r--nis/nis_call.c1
-rw-r--r--nis/nis_callback.c1
-rw-r--r--nis/nis_error.c1
-rw-r--r--nis/nis_local_names.c1
-rw-r--r--nis/nis_print.c1
-rw-r--r--nis/nis_print_group_entry.c1
-rw-r--r--nis/nss_nisplus/nisplus-publickey.c1
-rw-r--r--nis/ypclnt.c1
-rw-r--r--nscd/cache.c1
-rw-r--r--nscd/connections.c1
-rw-r--r--nscd/grpcache.c1
-rw-r--r--nscd/hstcache.c1
-rw-r--r--nscd/nscd_conf.c1
-rw-r--r--nscd/nscd_stat.c1
-rw-r--r--nscd/pwdcache.c1
-rw-r--r--posix/id.c1
-rw-r--r--posix/sys/types.h2
-rw-r--r--resolv/herror.c1
-rw-r--r--socket/sys/socket.h3
-rw-r--r--stdio-common/psignal.c1
-rw-r--r--string/bits/string2.h6
-rw-r--r--string/strsignal.c1
-rw-r--r--sunrpc/auth_unix.c1
-rw-r--r--sunrpc/clnt_perr.c1
-rw-r--r--sunrpc/clnt_raw.c1
-rw-r--r--sunrpc/clnt_tcp.c1
-rw-r--r--sunrpc/clnt_udp.c1
-rw-r--r--sunrpc/clnt_unix.c1
-rw-r--r--sunrpc/get_myaddr.c1
-rw-r--r--sunrpc/pm_getmaps.c1
-rw-r--r--sunrpc/pmap_clnt.c1
-rw-r--r--sunrpc/pmap_rmt.c1
-rw-r--r--sunrpc/rpc_main.c1
-rw-r--r--sunrpc/rpc_scan.c1
-rw-r--r--sunrpc/svc_run.c1
-rw-r--r--sunrpc/svc_simple.c1
-rw-r--r--sunrpc/svc_tcp.c1
-rw-r--r--sunrpc/svc_udp.c1
-rw-r--r--sunrpc/svc_unix.c1
-rw-r--r--sunrpc/xdr_rec.c1
-rw-r--r--sunrpc/xdr_ref.c1
-rw-r--r--sysdeps/alpha/fpu/bits/mathinline.h2
-rw-r--r--sysdeps/generic/morecore.c8
-rw-r--r--sysdeps/gnu/errlist.awk1
-rw-r--r--sysdeps/gnu/errlist.c1
-rw-r--r--sysdeps/i386/fpu/bits/mathinline.h4
-rw-r--r--sysdeps/mach/hurd/mips/dl-machine.c1
-rw-r--r--sysdeps/posix/gai_strerror.c1
-rw-r--r--sysdeps/unix/make_errlist.c1
-rw-r--r--sysdeps/unix/siglist.c1
-rw-r--r--sysdeps/unix/sysv/linux/arm/siglist.c1
-rw-r--r--sysdeps/unix/sysv/linux/siglist.c1
-rw-r--r--sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c1
-rw-r--r--timezone/zic.c2
91 files changed, 240 insertions, 66 deletions
diff --git a/ChangeLog b/ChangeLog
index 2367f18..5cb83a8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,111 @@
+1999-06-18 Zack Weinberg <zack@rabi.columbia.edu>
+
+ * include/features.h: Define new macros __GNUC_PREREQ and
+ __GLIBC_PREREQ which can be used to test the version of gcc
+ and glibc respectively.
+
+ * assert/assert.h: Use __GNUC_PREREQ.
+ * intl/libintl.h: Likewise.
+ * math/complex.h: Likewise.
+ * math/tgmath.h: Likewise.
+ * misc/sys/cdefs.h: Likewise.
+ * posix/sys/types.h: Likewise.
+ * socket/sys/socket.h: Likewise.
+ * string/bits/string2.h: Likewise.
+ * sysdeps/alpha/fpu/bits/mathinline.h: Likewise.
+ * sysdeps/i386/fpu/bits/mathinline.h: Likewise.
+
+1999-06-18 Zack Weinberg <zack@rabi.columbia.edu>
+
+ * include/libintl.h: Declare _libc_intl_domainname here.
+ Define _ and N_ here.
+ * include/libc-symbols.h: Don't include <libintl.h>. Don't
+ define _ and N_. Don't declare _libc_intl_domainname.
+ * Makeconfig (CPPFLAGS): Use -imacros to read libc-symbols.h.
+
+ * db2/config.h: Don't include sys/stat.h or define
+ HAVE_ST_BLKSIZE here...
+ * db2/compat.h: ...do it here.
+
+ * linuxthreads/internals.h: Include bits/libc-tsd.h after all
+ other headers.
+ * linuxthreads/no-tsd.c: Include sys/cdefs.h for __P.
+ * iconv/iconv.c: Include stddef.h for NULL.
+ * malloc/malloc.h: Include features.h.
+ * sysdeps/generic/morecore.c: Use __malloc_ptr_t not __ptr_t.
+
+ * sysdeps/unix/make_errlist.c: Write an "#include <libintl.h>"
+ into the generated file.
+ * sysdeps/gnu/errlist.awk: Likewise.
+ * sysdeps/gnu/errlist.c: Rebuilt.
+
+ * assert/assert-perr.c: Include libintl.h.
+ * assert/assert.c: Likewise.
+ * elf/dl-open.c: Likewise.
+ * elf/dlsym.c: Likewise.
+ * elf/dlvsym.c: Likewise.
+ * iconv/iconv_prog.c: Likewise.
+ * inet/rcmd.c: Likewise.
+ * inet/ruserpass.c: Likewise.
+ * locale/programs/charset.c: Likewise.
+ * locale/programs/ld-collate.c: Likewise.
+ * locale/programs/ld-ctype.c: Likewise.
+ * locale/programs/ld-messages.c: Likewise.
+ * locale/programs/ld-monetary.c: Likewise.
+ * locale/programs/ld-numeric.c: Likewise.
+ * locale/programs/ld-time.c: Likewise.
+ * locale/programs/locfile.c: Likewise.
+ * locale/programs/repertoire.c: Likewise.
+ * login/programs/database.c: Likewise.
+ * login/programs/request.c: Likewise.
+ * malloc/mcheck.c: Likewise.
+ * misc/error.c: Likewise.
+ * nis/nis_call.c: Likewise.
+ * nis/nis_callback.c: Likewise.
+ * nis/nis_error.c: Likewise.
+ * nis/nis_local_names.c: Likewise.
+ * nis/nis_print.c: Likewise.
+ * nis/nis_print_group_entry.c: Likewise.
+ * nis/ypclnt.c: Likewise.
+ * nis/nss_nisplus/nisplus-publickey.c: Likewise.
+ * nscd/cache.c: Likewise.
+ * nscd/connections.c: Likewise.
+ * nscd/grpcache.c: Likewise.
+ * nscd/hstcache.c: Likewise.
+ * nscd/nscd_conf.c: Likewise.
+ * nscd/nscd_stat.c: Likewise.
+ * nscd/pwdcache.c: Likewise.
+ * posix/id.c: Likewise.
+ * resolv/herror.c: Likewise.
+ * stdio-common/psignal.c: Likewise.
+ * string/strsignal.c: Likewise.
+ * sunrpc/auth_unix.c: Likewise.
+ * sunrpc/clnt_perr.c: Likewise.
+ * sunrpc/clnt_raw.c: Likewise.
+ * sunrpc/clnt_tcp.c: Likewise.
+ * sunrpc/clnt_udp.c: Likewise.
+ * sunrpc/clnt_unix.c: Likewise.
+ * sunrpc/get_myaddr.c: Likewise.
+ * sunrpc/pm_getmaps.c: Likewise.
+ * sunrpc/pmap_clnt.c: Likewise.
+ * sunrpc/pmap_rmt.c: Likewise.
+ * sunrpc/rpc_main.c: Likewise.
+ * sunrpc/rpc_scan.c: Likewise.
+ * sunrpc/svc_run.c: Likewise.
+ * sunrpc/svc_simple.c: Likewise.
+ * sunrpc/svc_tcp.c: Likewise.
+ * sunrpc/svc_udp.c: Likewise.
+ * sunrpc/svc_unix.c: Likewise.
+ * sunrpc/xdr_rec.c: Likewise.
+ * sunrpc/xdr_ref.c: Likewise.
+ * sysdeps/mach/hurd/mips/dl-machine.c: Likewise.
+ * sysdeps/posix/gai_strerror.c: Likewise.
+ * sysdeps/unix/siglist.c: Likewise.
+ * sysdeps/unix/sysv/linux/siglist.c: Likewise.
+ * sysdeps/unix/sysv/linux/arm/siglist.c: Likewise.
+ * sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c: Likewise.
+ * timezone/zic.c: Likewise.
+
1999-06-18 H.J. Lu <hjl@gnu.org>
* localedata/Makefile (charmaps): Exclude SCCS.
diff --git a/Makeconfig b/Makeconfig
index 6ae27e9..f4f6508 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -570,7 +570,7 @@ libio-include = -I$(..)libio
# These are the variables that the implicit compilation rules use.
CPPFLAGS = $($(subdir)-CPPFLAGS) $(+includes) $(defines) \
- -include $(..)include/libc-symbols.h $(sysdep-CPPFLAGS) \
+ -imacros $(..)include/libc-symbols.h $(sysdep-CPPFLAGS) \
$(CPPFLAGS-$(suffix $@)) $(CPPFLAGS-$(<F)) $(CPPFLAGS-$(@F))
override CFLAGS = $(filter-out %frame-pointer,$(+cflags)) $(sysdep-CFLAGS) \
$(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) $(CFLAGS-$(@F))
diff --git a/assert/assert-perr.c b/assert/assert-perr.c
index ecfb5ee..384735d 100644
--- a/assert/assert-perr.c
+++ b/assert/assert-perr.c
@@ -20,6 +20,7 @@
#include <stdio.h>
#include <string.h>
#include <sysdep.h>
+#include <libintl.h>
extern const char *__assert_program_name; /* In assert.c. */
diff --git a/assert/assert.c b/assert/assert.c
index f114410..e957a44 100644
--- a/assert/assert.c
+++ b/assert/assert.c
@@ -20,6 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <sysdep.h>
+#include <libintl.h>
const char *__assert_program_name;
diff --git a/assert/assert.h b/assert/assert.h
index bbff941..386e80c 100644
--- a/assert/assert.h
+++ b/assert/assert.h
@@ -87,17 +87,11 @@ __END_DECLS
/* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__'
which contains the name of the function currently being defined.
-# define __ASSERT_FUNCTION __PRETTY_FUNCTION__
This is broken in G++ before version 2.6.
C9x has a similar variable called __func__, but prefer the GCC one since
it demangles C++ function names. */
-# ifdef __GNUC__
-# if __GNUC__ > 2 || (__GNUC__ == 2 \
- && __GNUC_MINOR__ >= (defined __cplusplus ? 6 : 4))
+# if __GNUC_PREREQ (2, (defined __cplusplus ? 6 : 4))
# define __ASSERT_FUNCTION __PRETTY_FUNCTION__
-# else
-# define __ASSERT_FUNCTION ((__const char *) 0)
-# endif
# else
# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
# define __ASSERT_FUNCTION __func__
diff --git a/db2/compat.h b/db2/compat.h
index 86909ae..51008af 100644
--- a/db2/compat.h
+++ b/db2/compat.h
@@ -3,6 +3,12 @@
#include <sys/types.h>
#include <errno.h>
+#include <sys/stat.h>
+#ifdef _STATBUF_ST_BLKSIZE
+# define HAVE_ST_BLKSIZE
+#endif
+
+
#ifndef EFTYPE
# define EFTYPE EINVAL
#endif
diff --git a/db2/config.h b/db2/config.h
index e5e1058..6f09795 100644
--- a/db2/config.h
+++ b/db2/config.h
@@ -2,16 +2,10 @@
/* config.h.in. Generated automatically from configure.in by autoheader. */
/* ...but edited by hand to be used in GNU libc. */
-#include <sys/stat.h> /* To get _STATBUF_ST_BLKSIZE. */
/* Define to empty if the keyword does not work. */
/* #undef const */
-/* Define if your struct stat has st_blksize. */
-#ifdef _STATBUF_ST_BLKSIZE
-# define HAVE_ST_BLKSIZE 1
-#endif
-
/* Define to `int' if <sys/types.h> doesn't define. */
/* #undef mode_t */
diff --git a/elf/dl-open.c b/elf/dl-open.c
index b6c79b4..149badd 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -22,6 +22,7 @@
#include <errno.h>
#include <stdlib.h>
#include <string.h>
+#include <libintl.h>
#include <sys/mman.h> /* Check whether MAP_COPY is defined. */
#include <sys/param.h>
#include <bits/libc-lock.h>
diff --git a/elf/dlsym.c b/elf/dlsym.c
index 5753f54..6627ffc 100644
--- a/elf/dlsym.c
+++ b/elf/dlsym.c
@@ -20,6 +20,7 @@
#include <dlfcn.h>
#include <setjmp.h>
#include <stddef.h>
+#include <libintl.h>
#include <elf/ldsodefs.h>
struct dlsym_args
diff --git a/elf/dlvsym.c b/elf/dlvsym.c
index b100a2e..68e099b 100644
--- a/elf/dlvsym.c
+++ b/elf/dlvsym.c
@@ -20,6 +20,7 @@
#include <dlfcn.h>
#include <setjmp.h>
#include <stddef.h>
+#include <libintl.h>
#include <elf/ldsodefs.h>
#include <dl-hash.h>
diff --git a/iconv/iconv.c b/iconv/iconv.c
index 85a39e3fa..ee16d3b 100644
--- a/iconv/iconv.c
+++ b/iconv/iconv.c
@@ -19,6 +19,7 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+#include <stddef.h> /* for NULL */
#include <errno.h>
#include <iconv.h>
diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c
index 78fa623..c91c76f 100644
--- a/iconv/iconv_prog.c
+++ b/iconv/iconv_prog.c
@@ -30,6 +30,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <libintl.h>
#ifdef _POSIX_MAPPED_FILES
# include <sys/mman.h>
#endif
diff --git a/include/features.h b/include/features.h
index bc10510..de2b143 100644
--- a/include/features.h
+++ b/include/features.h
@@ -244,9 +244,23 @@
#define __GLIBC__ 2
#define __GLIBC_MINOR__ 2
+/* Convenience macros to test the versions of glibc and gcc.
+ Use them like this:
+ #if __GNUC_PREREQ (2,8)
+ ... code requiring gcc 2.8 or later ...
+ #endif
+ Note - they won't work for gcc1 or glibc1, since the _MINOR macros
+ were not defined then. */
+#define __GNUC_PREREQ(maj,min) (defined __GNUC__ && defined __GNUC_MINOR__ \
+ && ((__GNUC__ << 16) + __GNUC_MINOR__) >= ((maj<<16) + min))
+#define __GLIBC_PREREQ(maj,min) (defined __GLIBC__ && defined __GLIBC_MINOR__ \
+ && ((__GLIBC__ << 16) + __GLIBC_MINOR__) >= ((maj<<16) + min))
+
/* This is here only because every header file already includes this one. */
#ifndef __ASSEMBLER__
+#ifndef _SYS_CDEFS_H
# include <sys/cdefs.h>
+#endif
/* If we don't have __REDIRECT, prototypes will be missing if
__USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index 5d15791..dd573b3 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -52,34 +52,7 @@
#define _REENTRANT 1
#include <config.h>
-/*
-
-*/
-
-#ifndef __ASSEMBLER__
-/* Define the macros `_' and `N_' for conveniently marking translatable
- strings in the libc source code. */
-
-# define N_(msgid) msgid
-
-# include <libintl.h>
-extern const char _libc_intl_domainname[];
-
-# ifdef dgettext
-/* This is defined as an optimizing macro, so use it. */
-# define _(msgid) dgettext (_libc_intl_domainname, (msgid))
-# else
-/* Be sure to use only the __ name when `dgettext' is a plain function
- instead of an optimizing macro. */
-# define _(msgid) __dgettext (_libc_intl_domainname, (msgid))
-# endif
-
-#endif
-
-/*
-
-*/
/* The symbols in all the user (non-_) macros are C symbols.
HAVE_GNU_LD without HAVE_ELF implies a.out. */
diff --git a/include/libintl.h b/include/libintl.h
index 3763b04..a772853 100644
--- a/include/libintl.h
+++ b/include/libintl.h
@@ -6,4 +6,20 @@ extern char *__gettext __P ((__const char *__msgid));
extern char *__textdomain __P ((__const char *__domainname));
extern char *__bindtextdomain __P ((__const char *__domainname,
__const char *__dirname));
+extern const char _libc_intl_domainname[];
+
+/* Define the macros `_' and `N_' for conveniently marking translatable
+ strings in the libc source code. */
+
+# define N_(msgid) msgid
+
+# ifdef dgettext
+/* This is defined as an optimizing macro, so use it. */
+# define _(msgid) dgettext (_libc_intl_domainname, (msgid))
+# else
+/* Be sure to use only the __ name when `dgettext' is a plain function
+ instead of an optimizing macro. */
+# define _(msgid) __dgettext (_libc_intl_domainname, (msgid))
+# endif
+
#endif
diff --git a/inet/rcmd.c b/inet/rcmd.c
index 1a38de5..6d196b7 100644
--- a/inet/rcmd.c
+++ b/inet/rcmd.c
@@ -49,6 +49,7 @@ static char sccsid[] = "@(#)rcmd.c 8.3 (Berkeley) 3/26/94";
#include <stdio.h>
#include <ctype.h>
#include <string.h>
+#include <libintl.h>
int __ivaliduser __P ((FILE *, u_int32_t, const char *, const char *));
diff --git a/inet/ruserpass.c b/inet/ruserpass.c
index 582eec6..70bfdd4 100644
--- a/inet/ruserpass.c
+++ b/inet/ruserpass.c
@@ -41,6 +41,7 @@ static char sccsid[] = "@(#)ruserpass.c 8.3 (Berkeley) 4/2/94";
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <libintl.h>
/* #include "ftp_var.h" */
diff --git a/intl/libintl.h b/intl/libintl.h
index 0a0f898..1d35518 100644
--- a/intl/libintl.h
+++ b/intl/libintl.h
@@ -82,7 +82,7 @@ extern char *bindtextdomain __P ((__const char *__domainname,
# define dgettext(domainname, msgid) \
dcgettext (domainname, msgid, LC_MESSAGES)
-# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+# if __GNUC_PREREQ (2,7)
/* Variable defined in loadmsgcat.c which gets incremented every time a
new catalog is loaded. */
extern int _nl_msg_cat_cntr;
diff --git a/linuxthreads/internals.h b/linuxthreads/internals.h
index cfd72cd..db84707 100644
--- a/linuxthreads/internals.h
+++ b/linuxthreads/internals.h
@@ -16,12 +16,12 @@
/* Includes */
-#include <bits/libc-tsd.h> /* for _LIBC_TSD_KEY_N */
#include <limits.h>
#include <setjmp.h>
#include <signal.h>
#include <unistd.h>
#include <sys/types.h>
+#include <bits/libc-tsd.h> /* for _LIBC_TSD_KEY_N */
#include "pt-machine.h"
diff --git a/linuxthreads/no-tsd.c b/linuxthreads/no-tsd.c
index ef79cb8..f852ce0 100644
--- a/linuxthreads/no-tsd.c
+++ b/linuxthreads/no-tsd.c
@@ -17,6 +17,7 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+#include <sys/cdefs.h> /* for __P */
#include <bits/libc-tsd.h>
/* This file provides uinitialized (common) definitions for the
diff --git a/locale/programs/charset.c b/locale/programs/charset.c
index 767fafb..2222c9f 100644
--- a/locale/programs/charset.c
+++ b/locale/programs/charset.c
@@ -28,6 +28,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <libintl.h>
#include "error.h"
#include "charset.h"
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index c167716..265bfd0 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -29,6 +29,7 @@
#include <stdlib.h>
#include <string.h>
#include <wchar.h>
+#include <libintl.h>
#include "localeinfo.h"
#include "locales.h"
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index 6ce48b7..714a718 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -25,6 +25,7 @@
#include <endian.h>
#include <limits.h>
#include <string.h>
+#include <libintl.h>
#include "locales.h"
#include "localeinfo.h"
diff --git a/locale/programs/ld-messages.c b/locale/programs/ld-messages.c
index 288979f..69e411c 100644
--- a/locale/programs/ld-messages.c
+++ b/locale/programs/ld-messages.c
@@ -24,6 +24,7 @@
#include <alloca.h>
#include <langinfo.h>
#include <string.h>
+#include <libintl.h>
#include <sys/uio.h>
#ifdef HAVE_REGEX
diff --git a/locale/programs/ld-monetary.c b/locale/programs/ld-monetary.c
index a74486a..b903d63 100644
--- a/locale/programs/ld-monetary.c
+++ b/locale/programs/ld-monetary.c
@@ -25,6 +25,7 @@
#include <limits.h>
#include <stdlib.h>
#include <string.h>
+#include <libintl.h>
/* Undefine following line in production version. */
diff --git a/locale/programs/ld-numeric.c b/locale/programs/ld-numeric.c
index 4042d6e..0e61481 100644
--- a/locale/programs/ld-numeric.c
+++ b/locale/programs/ld-numeric.c
@@ -24,6 +24,7 @@
#include <alloca.h>
#include <langinfo.h>
#include <string.h>
+#include <libintl.h>
/* Undefine following line in production version. */
/* #define NDEBUG 1 */
diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c
index bee0b0e..c63d897 100644
--- a/locale/programs/ld-time.c
+++ b/locale/programs/ld-time.c
@@ -23,6 +23,7 @@
#include <langinfo.h>
#include <string.h>
+#include <libintl.h>
/* Undefine following line in production version. */
/* #define NDEBUG 1 */
diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c
index a90168a..79d6ab1 100644
--- a/locale/programs/locfile.c
+++ b/locale/programs/locfile.c
@@ -29,6 +29,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <libintl.h>
#include <sys/stat.h>
#include <sys/uio.h>
diff --git a/locale/programs/repertoire.c b/locale/programs/repertoire.c
index e7040a0..a03021f 100644
--- a/locale/programs/repertoire.c
+++ b/locale/programs/repertoire.c
@@ -27,6 +27,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <libintl.h>
#include "linereader.h"
#include "charset.h"
diff --git a/login/programs/database.c b/login/programs/database.c
index 7044cd8..4267c11 100644
--- a/login/programs/database.c
+++ b/login/programs/database.c
@@ -26,6 +26,7 @@
#include <time.h>
#include <unistd.h>
#include <utmp.h>
+#include <libintl.h>
#include "utmpd-private.h"
diff --git a/login/programs/request.c b/login/programs/request.c
index 889ce0c..33f5524 100644
--- a/login/programs/request.c
+++ b/login/programs/request.c
@@ -22,6 +22,7 @@
#include <string.h>
#include <unistd.h>
#include <utmp.h>
+#include <libintl.h>
#include "utmpd.h"
#include "utmpd-private.h"
diff --git a/malloc/malloc.h b/malloc/malloc.h
index eeb33a2..c453d72 100644
--- a/malloc/malloc.h
+++ b/malloc/malloc.h
@@ -20,6 +20,8 @@
#ifndef _MALLOC_H
#define _MALLOC_H 1
+#include <features.h>
+
/*
`ptmalloc', a malloc implementation for multiple threads without
lock contention, by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
diff --git a/malloc/mcheck.c b/malloc/mcheck.c
index 53575a7..85258e9 100644
--- a/malloc/mcheck.c
+++ b/malloc/mcheck.c
@@ -25,6 +25,7 @@
# include <malloc.h>
# include <mcheck.h>
# include <stdio.h>
+# include <libintl.h>
#endif
/* Old hook values. */
diff --git a/math/complex.h b/math/complex.h
index 7ed9890..82fae63 100644
--- a/math/complex.h
+++ b/math/complex.h
@@ -33,7 +33,7 @@ __BEGIN_DECLS
/* We might need to add support for more compilers here. But once ISO
C 9X is out hopefully all maintained compilers will provide the data
types `float complex' and `double complex'. */
-#if (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) || __GNUC__ > 2
+#if __GNUC_PREREQ (2, 7)
# define _Complex __complex__
#endif
diff --git a/math/tgmath.h b/math/tgmath.h
index 1a6591e..449b498 100644
--- a/math/tgmath.h
+++ b/math/tgmath.h
@@ -34,7 +34,7 @@
do not try this for now and instead concentrate only on GNU CC. Once
we have more information support for other compilers might follow. */
-#if defined __GNUC__ && (__GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+#if __GNUC_PREREQ (2, 7)
/* We have two kinds of generic macros: to support functions which are
only defined on real valued parameters and those which are defined
diff --git a/misc/error.c b/misc/error.c
index ca7f3b4..cb55c2f 100644
--- a/misc/error.c
+++ b/misc/error.c
@@ -26,6 +26,7 @@
#endif
#include <stdio.h>
+#include <libintl.h>
#if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC
# if __STDC__
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
index 6d4bc62..6a8b870 100644
--- a/misc/sys/cdefs.h
+++ b/misc/sys/cdefs.h
@@ -33,7 +33,7 @@
/* GCC can always grok prototypes. For C++ programs we add throw()
to help it optimize the function calls. But this works only with
gcc 2.8.x and egcs. */
-# if defined __cplusplus && (__GNUC__ >= 3 || __GNUC_MINOR__ >= 8)
+# if defined __cplusplus && __GNUC_PREREQ (2,8)
# define __THROW throw ()
# else
# define __THROW
@@ -42,6 +42,7 @@
/* This macro will be used for functions which might take C++ callback
functions. */
# define __PMT(args) args
+
# define __DOTS , ...
#else /* Not GCC. */
@@ -131,7 +132,6 @@
/*
#elif __SOME_OTHER_COMPILER__
-# define __attribute__(xyz)
# define __REDIRECT(name, proto, alias) name proto; \
_Pragma("let " #name " = " #alias)
*/
@@ -150,17 +150,13 @@
run in pedantic mode if the uses are carefully marked using the
`__extension__' keyword. But this is not generally available before
version 2.8. */
-#if !defined __GNUC__ || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
-
+#if !__GNUC_PREREQ (2,8)
# define __extension__ /* Ignore */
-
#endif
/* __restrict is known in EGCS 1.2 and above. */
-#if !defined __GNUC__ || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 92)
-
+#if !__GNUC_PREREQ (2,92)
# define __restrict /* Ignore */
-
#endif
#endif /* sys/cdefs.h */
diff --git a/nis/nis_call.c b/nis/nis_call.c
index 73bd2d7..0315ce3 100644
--- a/nis/nis_call.c
+++ b/nis/nis_call.c
@@ -20,6 +20,7 @@
#include <errno.h>
#include <fcntl.h>
#include <string.h>
+#include <libintl.h>
#include <rpc/rpc.h>
#include <rpc/auth.h>
#include <rpcsvc/nis.h>
diff --git a/nis/nis_callback.c b/nis/nis_callback.c
index 6525484..57a15e5 100644
--- a/nis/nis_callback.c
+++ b/nis/nis_callback.c
@@ -21,6 +21,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
+#include <libintl.h>
#include <rpc/rpc.h>
#include <rpc/pmap_clnt.h>
#include <string.h>
diff --git a/nis/nis_error.c b/nis/nis_error.c
index f5fe0f6..39d4453 100644
--- a/nis/nis_error.c
+++ b/nis/nis_error.c
@@ -20,6 +20,7 @@
#include <errno.h>
#include <syslog.h>
#include <string.h>
+#include <libintl.h>
#include <rpcsvc/nis.h>
diff --git a/nis/nis_local_names.c b/nis/nis_local_names.c
index 22601a4..0d23778 100644
--- a/nis/nis_local_names.c
+++ b/nis/nis_local_names.c
@@ -20,6 +20,7 @@
#include <errno.h>
#include <string.h>
#include <unistd.h>
+#include <libintl.h>
#include <rpcsvc/nis.h>
nis_name
diff --git a/nis/nis_print.c b/nis/nis_print.c
index ded5f5a..ab5f683 100644
--- a/nis/nis_print.c
+++ b/nis/nis_print.c
@@ -19,6 +19,7 @@
#include <time.h>
#include <string.h>
+#include <libintl.h>
#include <rpcsvc/nis.h>
diff --git a/nis/nis_print_group_entry.c b/nis/nis_print_group_entry.c
index d5cdda0..e1970dc 100644
--- a/nis/nis_print_group_entry.c
+++ b/nis/nis_print_group_entry.c
@@ -18,6 +18,7 @@
Boston, MA 02111-1307, USA. */
#include <string.h>
+#include <libintl.h>
#include <rpcsvc/nis.h>
void
diff --git a/nis/nss_nisplus/nisplus-publickey.c b/nis/nss_nisplus/nisplus-publickey.c
index a9a8e18..1620611 100644
--- a/nis/nss_nisplus/nisplus-publickey.c
+++ b/nis/nss_nisplus/nisplus-publickey.c
@@ -22,6 +22,7 @@
#include <errno.h>
#include <stdio.h>
#include <string.h>
+#include <libintl.h>
#include <syslog.h>
#include <rpc/rpc.h>
#include <rpcsvc/nis.h>
diff --git a/nis/ypclnt.c b/nis/ypclnt.c
index cfda29a..1dc9ca3 100644
--- a/nis/ypclnt.c
+++ b/nis/ypclnt.c
@@ -21,6 +21,7 @@
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
+#include <libintl.h>
#include <rpc/rpc.h>
#include <rpcsvc/nis.h>
#include <rpcsvc/yp.h>
diff --git a/nscd/cache.c b/nscd/cache.c
index 0071c11..61fb770 100644
--- a/nscd/cache.c
+++ b/nscd/cache.c
@@ -23,6 +23,7 @@
#include <limits.h>
#include <stdlib.h>
#include <string.h>
+#include <libintl.h>
#include <arpa/inet.h>
#include <rpcsvc/nis.h>
#include <sys/param.h>
diff --git a/nscd/connections.c b/nscd/connections.c
index 9d1b4d3..d40d987 100644
--- a/nscd/connections.c
+++ b/nscd/connections.c
@@ -24,6 +24,7 @@
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
+#include <libintl.h>
#include <arpa/inet.h>
#include <sys/param.h>
#include <sys/poll.h>
diff --git a/nscd/grpcache.c b/nscd/grpcache.c
index d8848f3..62f4c57 100644
--- a/nscd/grpcache.c
+++ b/nscd/grpcache.c
@@ -26,6 +26,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <libintl.h>
#include "nscd.h"
#include "dbg_log.h"
diff --git a/nscd/hstcache.c b/nscd/hstcache.c
index 6fceecf..292d918 100644
--- a/nscd/hstcache.c
+++ b/nscd/hstcache.c
@@ -28,6 +28,7 @@
#include <string.h>
#include <time.h>
#include <unistd.h>
+#include <libintl.h>
#include <arpa/inet.h>
#include "nscd.h"
diff --git a/nscd/nscd_conf.c b/nscd/nscd_conf.c
index d31e2bd..010b905 100644
--- a/nscd/nscd_conf.c
+++ b/nscd/nscd_conf.c
@@ -22,6 +22,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <libintl.h>
#include <sys/param.h>
#include <sys/types.h>
diff --git a/nscd/nscd_stat.c b/nscd/nscd_stat.c
index f9d21ae..70c66e8 100644
--- a/nscd/nscd_stat.c
+++ b/nscd/nscd_stat.c
@@ -24,6 +24,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <libintl.h>
#include "nscd.h"
#include "dbg_log.h"
diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c
index a66cf4f..2c4e6c7 100644
--- a/nscd/pwdcache.c
+++ b/nscd/pwdcache.c
@@ -27,6 +27,7 @@
#include <string.h>
#include <time.h>
#include <unistd.h>
+#include <libintl.h>
#include "nscd.h"
#include "dbg_log.h"
diff --git a/posix/id.c b/posix/id.c
index 6c602b2..c0db14c 100644
--- a/posix/id.c
+++ b/posix/id.c
@@ -22,6 +22,7 @@
#include <grp.h>
#include <pwd.h>
#include <limits.h>
+#include <libintl.h>
#include <sys/types.h>
diff --git a/posix/sys/types.h b/posix/sys/types.h
index 8ba3200..362d547 100644
--- a/posix/sys/types.h
+++ b/posix/sys/types.h
@@ -132,7 +132,7 @@ typedef unsigned int uint;
/* These size-specific names are used by some of the inet code. */
-#if !defined __GNUC__ || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
+#if !__GNUC_PREREQ (2, 7)
/* These types are defined by the ISO C 9x header <inttypes.h>. */
# ifndef __int8_t_defined
diff --git a/resolv/herror.c b/resolv/herror.c
index 53780cd..8ba0ebe 100644
--- a/resolv/herror.c
+++ b/resolv/herror.c
@@ -58,6 +58,7 @@ static char rcsid[] = "$Id$";
#include <sys/param.h>
#include <sys/uio.h>
#include <netdb.h>
+#include <libintl.h>
#if defined(BSD) && (BSD >= 199103)
# include <unistd.h>
# include <string.h>
diff --git a/socket/sys/socket.h b/socket/sys/socket.h
index 7642e75..0a5dc01 100644
--- a/socket/sys/socket.h
+++ b/socket/sys/socket.h
@@ -61,8 +61,7 @@ enum
uses with any of the listed types to be allowed without complaint.
G++ 2.7 does not support transparent unions so there we want the
old-style declaration, too. */
-#if (!defined __GNUC__ || __GNUC__ < 2 || defined __cplusplus || \
- (__GNUC__ == 2 && __GNUC_MINOR__ < 7))
+#if defined __cplusplus || !__GNUC_PREREQ (2, 7)
# define __SOCKADDR_ARG struct sockaddr *
# define __CONST_SOCKADDR_ARG __const struct sockaddr *
#else
diff --git a/stdio-common/psignal.c b/stdio-common/psignal.c
index 19a5753..269f7e2 100644
--- a/stdio-common/psignal.c
+++ b/stdio-common/psignal.c
@@ -18,6 +18,7 @@
#include <stdio.h>
#include <signal.h>
+#include <libintl.h>
#ifndef HAVE_GNU_LD
diff --git a/string/bits/string2.h b/string/bits/string2.h
index fdfa32d..48903b3 100644
--- a/string/bits/string2.h
+++ b/string/bits/string2.h
@@ -167,9 +167,9 @@ __STRING2_COPY_TYPE (8);
: memset (s, c, n)))
# endif
-/* GCC optimizes memset(s, 0, n) but not bzero(s, n). */
-#if defined __GNUC__ \
- && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 90))
+/* GCC optimizes memset(s, 0, n) but not bzero(s, n).
+ The optimization is broken before EGCS 1.1. */
+#if __GNUC_PREREQ (2, 91)
# define __bzero(s, n) __builtin_memset (s, '\0', n)
# endif
diff --git a/string/strsignal.c b/string/strsignal.c
index 90480f5..1a13707 100644
--- a/string/strsignal.c
+++ b/string/strsignal.c
@@ -20,6 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <libintl.h>
#include <bits/libc-lock.h>
diff --git a/sunrpc/auth_unix.c b/sunrpc/auth_unix.c
index 82ef91a..a03ce02 100644
--- a/sunrpc/auth_unix.c
+++ b/sunrpc/auth_unix.c
@@ -42,6 +42,7 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
+#include <libintl.h>
#include <sys/param.h>
#include <rpc/types.h>
diff --git a/sunrpc/clnt_perr.c b/sunrpc/clnt_perr.c
index ae6a1da..7896499 100644
--- a/sunrpc/clnt_perr.c
+++ b/sunrpc/clnt_perr.c
@@ -39,6 +39,7 @@ static char sccsid[] = "@(#)clnt_perror.c 1.15 87/10/07 Copyr 1984 Sun Micro";
*/
#include <stdio.h>
#include <string.h>
+#include <libintl.h>
#include <rpc/types.h>
#include <rpc/auth.h>
#include <rpc/clnt.h>
diff --git a/sunrpc/clnt_raw.c b/sunrpc/clnt_raw.c
index 18ae241..8ed589c 100644
--- a/sunrpc/clnt_raw.c
+++ b/sunrpc/clnt_raw.c
@@ -45,6 +45,7 @@ static char sccsid[] = "@(#)clnt_raw.c 1.22 87/08/11 Copyr 1984 Sun Micro";
#include <rpc/rpc.h>
#include <rpc/svc.h>
#include <rpc/xdr.h>
+#include <libintl.h>
#define MCALL_MSG_SIZE 24
diff --git a/sunrpc/clnt_tcp.c b/sunrpc/clnt_tcp.c
index 1d00c79..9a35ec1 100644
--- a/sunrpc/clnt_tcp.c
+++ b/sunrpc/clnt_tcp.c
@@ -54,6 +54,7 @@ static char sccsid[] = "@(#)clnt_tcp.c 1.37 87/10/05 Copyr 1984 Sun Micro";
#include <errno.h>
#include <stdio.h>
#include <unistd.h>
+#include <libintl.h>
#include <rpc/rpc.h>
#include <sys/poll.h>
#include <sys/socket.h>
diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c
index 1d9f386..eeac79c 100644
--- a/sunrpc/clnt_udp.c
+++ b/sunrpc/clnt_udp.c
@@ -39,6 +39,7 @@ static char sccsid[] = "@(#)clnt_udp.c 1.39 87/08/11 Copyr 1984 Sun Micro";
#include <stdio.h>
#include <unistd.h>
+#include <libintl.h>
#include <rpc/rpc.h>
#include <rpc/xdr.h>
#include <rpc/clnt.h>
diff --git a/sunrpc/clnt_unix.c b/sunrpc/clnt_unix.c
index 761ecaf..211fcd6f 100644
--- a/sunrpc/clnt_unix.c
+++ b/sunrpc/clnt_unix.c
@@ -50,6 +50,7 @@
#include <errno.h>
#include <stdio.h>
#include <unistd.h>
+#include <libintl.h>
#include <rpc/rpc.h>
#include <sys/uio.h>
#include <sys/poll.h>
diff --git a/sunrpc/get_myaddr.c b/sunrpc/get_myaddr.c
index 820c7b3..7a4bb8c 100644
--- a/sunrpc/get_myaddr.c
+++ b/sunrpc/get_myaddr.c
@@ -44,6 +44,7 @@ static char sccsid[] = "@(#)get_myaddress.c 1.4 87/08/11 Copyr 1984 Sun Micro";
#include <sys/socket.h>
#include <stdio.h>
#include <unistd.h>
+#include <libintl.h>
#include <net/if.h>
#include <sys/ioctl.h>
/* Order of following two #includes reversed by roland@gnu */
diff --git a/sunrpc/pm_getmaps.c b/sunrpc/pm_getmaps.c
index 2812b3a..8f41a45 100644
--- a/sunrpc/pm_getmaps.c
+++ b/sunrpc/pm_getmaps.c
@@ -46,6 +46,7 @@ static char sccsid[] = "@(#)pmap_getmaps.c 1.10 87/08/11 Copyr 1984 Sun Micro";
#include <netdb.h>
#include <stdio.h>
#include <errno.h>
+#include <libintl.h>
/*
* Get a copy of the current port maps.
diff --git a/sunrpc/pmap_clnt.c b/sunrpc/pmap_clnt.c
index 11e241d..05cfe2f 100644
--- a/sunrpc/pmap_clnt.c
+++ b/sunrpc/pmap_clnt.c
@@ -36,6 +36,7 @@
#include <stdio.h>
#include <unistd.h>
+#include <libintl.h>
#include <net/if.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
diff --git a/sunrpc/pmap_rmt.c b/sunrpc/pmap_rmt.c
index f361ac3..bfc9cc8 100644
--- a/sunrpc/pmap_rmt.c
+++ b/sunrpc/pmap_rmt.c
@@ -41,6 +41,7 @@ static char sccsid[] = "@(#)pmap_rmt.c 1.21 87/08/27 Copyr 1984 Sun Micro";
#include <unistd.h>
#include <string.h>
+#include <libintl.h>
#include <rpc/rpc.h>
#include <rpc/pmap_prot.h>
#include <rpc/pmap_clnt.h>
diff --git a/sunrpc/rpc_main.c b/sunrpc/rpc_main.c
index aec153f..cc3d249 100644
--- a/sunrpc/rpc_main.c
+++ b/sunrpc/rpc_main.c
@@ -42,6 +42,7 @@ const char main_rcsid[] =
#include <stdio.h>
#include <string.h>
#include <unistd.h>
+#include <libintl.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/param.h>
diff --git a/sunrpc/rpc_scan.c b/sunrpc/rpc_scan.c
index aa98805..daecc32 100644
--- a/sunrpc/rpc_scan.c
+++ b/sunrpc/rpc_scan.c
@@ -41,6 +41,7 @@ char scan_rcsid[] =
#include <stdio.h>
#include <ctype.h>
#include <string.h>
+#include <libintl.h>
#include "rpc_scan.h"
#include "rpc_parse.h"
#include "rpc_util.h"
diff --git a/sunrpc/svc_run.c b/sunrpc/svc_run.c
index d854fb4..799c012 100644
--- a/sunrpc/svc_run.c
+++ b/sunrpc/svc_run.c
@@ -37,6 +37,7 @@ static char sccsid[] = "@(#)svc_run.c 1.1 87/10/13 Copyr 1984 Sun Micro";
* Wait for input, call server program.
*/
#include <errno.h>
+#include <libintl.h>
#include <rpc/rpc.h>
static int svc_stop;
diff --git a/sunrpc/svc_simple.c b/sunrpc/svc_simple.c
index 6f24dfa..e40bea9 100644
--- a/sunrpc/svc_simple.c
+++ b/sunrpc/svc_simple.c
@@ -40,6 +40,7 @@ static char sccsid[] = "@(#)svc_simple.c 1.18 87/08/11 Copyr 1984 Sun Micro";
#include <stdio.h>
#include <string.h>
+#include <libintl.h>
#include <rpc/rpc.h>
#include <rpc/pmap_clnt.h>
#include <sys/socket.h>
diff --git a/sunrpc/svc_tcp.c b/sunrpc/svc_tcp.c
index cd24f72..542f9d4 100644
--- a/sunrpc/svc_tcp.c
+++ b/sunrpc/svc_tcp.c
@@ -44,6 +44,7 @@ static char sccsid[] = "@(#)svc_tcp.c 1.21 87/08/11 Copyr 1984 Sun Micro";
#include <stdio.h>
#include <unistd.h>
#include <string.h>
+#include <libintl.h>
#include <rpc/rpc.h>
#include <sys/socket.h>
#include <sys/poll.h>
diff --git a/sunrpc/svc_udp.c b/sunrpc/svc_udp.c
index 3d95f4b..9d78461 100644
--- a/sunrpc/svc_udp.c
+++ b/sunrpc/svc_udp.c
@@ -45,6 +45,7 @@ static char sccsid[] = "@(#)svc_udp.c 1.24 87/08/11 Copyr 1984 Sun Micro";
#include <rpc/rpc.h>
#include <sys/socket.h>
#include <errno.h>
+#include <libintl.h>
#ifdef USE_IN_LIBIO
# include <libio/iolibio.h>
diff --git a/sunrpc/svc_unix.c b/sunrpc/svc_unix.c
index a34e54d..57c0135 100644
--- a/sunrpc/svc_unix.c
+++ b/sunrpc/svc_unix.c
@@ -46,6 +46,7 @@
#include <sys/poll.h>
#include <errno.h>
#include <stdlib.h>
+#include <libintl.h>
/*
* Ops vector for AF_UNIX based rpc service handle
diff --git a/sunrpc/xdr_rec.c b/sunrpc/xdr_rec.c
index 4809589..101f8c8 100644
--- a/sunrpc/xdr_rec.c
+++ b/sunrpc/xdr_rec.c
@@ -48,6 +48,7 @@
#include <string.h>
#include <unistd.h>
#include <rpc/rpc.h>
+#include <libintl.h>
#ifdef USE_IN_LIBIO
# include <libio/iolibio.h>
diff --git a/sunrpc/xdr_ref.c b/sunrpc/xdr_ref.c
index 090925d..2a9ffb1 100644
--- a/sunrpc/xdr_ref.c
+++ b/sunrpc/xdr_ref.c
@@ -44,6 +44,7 @@ static char sccsid[] = "@(#)xdr_reference.c 1.11 87/08/11 SMI";
#include <string.h>
#include <rpc/types.h>
#include <rpc/xdr.h>
+#include <libintl.h>
#ifdef USE_IN_LIBIO
# include <libio/iolibio.h>
diff --git a/sysdeps/alpha/fpu/bits/mathinline.h b/sysdeps/alpha/fpu/bits/mathinline.h
index 681ea70..9207d52 100644
--- a/sysdeps/alpha/fpu/bits/mathinline.h
+++ b/sysdeps/alpha/fpu/bits/mathinline.h
@@ -75,7 +75,7 @@ __inline_copysign(copysign, double)
#undef __MATH_INLINE_copysign
-#if defined __GNUC__ && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8))
+#if __GNUC_PREREQ (2, 8)
__MATH_INLINE float __fabsf (float __x) { return __builtin_fabsf (__x); }
__MATH_INLINE float fabsf (float __x) { return __builtin_fabsf (__x); }
__MATH_INLINE double __fabs (double __x) { return __builtin_fabs (__x); }
diff --git a/sysdeps/generic/morecore.c b/sysdeps/generic/morecore.c
index 1e374da..5e1ac58 100644
--- a/sysdeps/generic/morecore.c
+++ b/sysdeps/generic/morecore.c
@@ -30,7 +30,7 @@
systems with potentially hostile include files. */
#include <stddef.h>
-extern __ptr_t __sbrk __P ((ptrdiff_t increment));
+extern __malloc_ptr_t __sbrk __P ((ptrdiff_t increment));
#endif
#ifndef NULL
@@ -40,12 +40,12 @@ extern __ptr_t __sbrk __P ((ptrdiff_t increment));
/* Allocate INCREMENT more bytes of data space,
and return the start of data space, or NULL on errors.
If INCREMENT is negative, shrink data space. */
-__ptr_t
+__malloc_ptr_t
__default_morecore (increment)
__malloc_ptrdiff_t increment;
{
- __ptr_t result = (__ptr_t) __sbrk (increment);
- if (result == (__ptr_t) -1)
+ __malloc_ptr_t result = (__malloc_ptr_t) __sbrk (increment);
+ if (result == (__malloc_ptr_t) -1)
return NULL;
return result;
}
diff --git a/sysdeps/gnu/errlist.awk b/sysdeps/gnu/errlist.awk
index 0616b03..3b2bd0d 100644
--- a/sysdeps/gnu/errlist.awk
+++ b/sysdeps/gnu/errlist.awk
@@ -40,6 +40,7 @@ BEGIN {
print "/* This file is generated from errno.texi by errlist.awk. */"
print "";
print "#include <errno.h>";
+ print "#include <libintl.h>";
print "";
print "#ifndef SYS_ERRLIST";
print "# define SYS_ERRLIST _sys_errlist";
diff --git a/sysdeps/gnu/errlist.c b/sysdeps/gnu/errlist.c
index c718773..4c635d2 100644
--- a/sysdeps/gnu/errlist.c
+++ b/sysdeps/gnu/errlist.c
@@ -1,6 +1,7 @@
/* This file is generated from errno.texi by errlist.awk. */
#include <errno.h>
+#include <libintl.h>
#ifndef SYS_ERRLIST
# define SYS_ERRLIST _sys_errlist
diff --git a/sysdeps/i386/fpu/bits/mathinline.h b/sysdeps/i386/fpu/bits/mathinline.h
index 8fb22d4..00fe3c0 100644
--- a/sysdeps/i386/fpu/bits/mathinline.h
+++ b/sysdeps/i386/fpu/bits/mathinline.h
@@ -138,7 +138,7 @@ __signbitl (long double __x)
/* The gcc, version 2.7 or below, has problems with all this inlining
code. So disable it for this version of the compiler. */
-#if defined __GNUC__ && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 7))
+#if __GNUC_PREREQ (2, 8)
#if ((!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \
&& defined __OPTIMIZE__)
@@ -426,7 +426,7 @@ __inline_mathcode2 (pow, __x, __y, \
__inline_mathop (sqrt, "fsqrt")
__inline_mathop_ (long double, __sqrtl, "fsqrt")
-#if defined __GNUC__ && (__GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ >= 8)
+#if __GNUC_PREREQ (2, 8)
__inline_mathcode_ (double, fabs, __x, return __builtin_fabs (__x))
__inline_mathcode_ (float, fabsf, __x, return __builtin_fabsf (__x))
__inline_mathcode_ (long double, fabsl, __x, return __builtin_fabsl (__x))
diff --git a/sysdeps/mach/hurd/mips/dl-machine.c b/sysdeps/mach/hurd/mips/dl-machine.c
index 18261e1..e4955e4 100644
--- a/sysdeps/mach/hurd/mips/dl-machine.c
+++ b/sysdeps/mach/hurd/mips/dl-machine.c
@@ -31,6 +31,7 @@
#include <stdarg.h>
#include <ctype.h>
#include <sys/stat.h>
+#include <libintl.h>
void weak_function
abort (void)
diff --git a/sysdeps/posix/gai_strerror.c b/sysdeps/posix/gai_strerror.c
index f5b33cb..490cd5b 100644
--- a/sysdeps/posix/gai_strerror.c
+++ b/sysdeps/posix/gai_strerror.c
@@ -19,6 +19,7 @@
#include <stdio.h>
#include <netdb.h>
+#include <libintl.h>
static struct
{
diff --git a/sysdeps/unix/make_errlist.c b/sysdeps/unix/make_errlist.c
index 4d93a5d..b73b152 100644
--- a/sysdeps/unix/make_errlist.c
+++ b/sysdeps/unix/make_errlist.c
@@ -58,6 +58,7 @@ main ()
Boston, MA 02111-1307, USA. */\n\n", year);
puts ("#include <stddef.h>\n");
+ puts ("#include <libintl.h>\n");
puts ("\n/* This is a list of all known `errno' codes. */\n");
printf ("\nconst int _sys_nerr = %d;\n\n", sys_nerr);
diff --git a/sysdeps/unix/siglist.c b/sysdeps/unix/siglist.c
index 942f764..3913c53 100644
--- a/sysdeps/unix/siglist.c
+++ b/sysdeps/unix/siglist.c
@@ -17,6 +17,7 @@
Boston, MA 02111-1307, USA. */
#include <stddef.h>
+#include <libintl.h>
/* This is a list of all known signal numbers. */
diff --git a/sysdeps/unix/sysv/linux/arm/siglist.c b/sysdeps/unix/sysv/linux/arm/siglist.c
index 9a53960..5d3a9af 100644
--- a/sysdeps/unix/sysv/linux/arm/siglist.c
+++ b/sysdeps/unix/sysv/linux/arm/siglist.c
@@ -19,6 +19,7 @@
#include <stddef.h>
#include <signal.h>
#include <sizes.h>
+#include <libintl.h>
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
# define SYS_SIGLIST __new_sys_siglist
diff --git a/sysdeps/unix/sysv/linux/siglist.c b/sysdeps/unix/sysv/linux/siglist.c
index d14a1b9..30d2a4a 100644
--- a/sysdeps/unix/sysv/linux/siglist.c
+++ b/sysdeps/unix/sysv/linux/siglist.c
@@ -19,6 +19,7 @@
#include <stddef.h>
#include <signal.h>
#include <sizes.h>
+#include <libintl.h>
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
# define SYS_SIGLIST __new_sys_siglist
diff --git a/sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c b/sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c
index 5d642e4..fd8a503 100644
--- a/sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c
+++ b/sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c
@@ -17,6 +17,7 @@
Boston, MA 02111-1307, USA. */
#include <stddef.h>
+#include <libintl.h>
/* This is a list of all known `errno' codes. */
diff --git a/timezone/zic.c b/timezone/zic.c
index 296f284c..de706e8 100644
--- a/timezone/zic.c
+++ b/timezone/zic.c
@@ -11,6 +11,8 @@ static char elsieid[] = "@(#)zic.c 7.99";
#include "sys/stat.h" /* for umask manifest constants */
#endif /* defined unix */
+#include <libintl.h>
+
/*
** On some ancient hosts, predicates like `isspace(C)' are defined
** only if isascii(C) || C == EOF. Modern hosts obey the C Standard,