summaryrefslogtreecommitdiff
path: root/sysdeps/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/gnu')
-rw-r--r--sysdeps/gnu/errlist-compat.awk7
-rw-r--r--sysdeps/gnu/errlist.awk7
-rw-r--r--sysdeps/gnu/errlist.c5
3 files changed, 11 insertions, 8 deletions
diff --git a/sysdeps/gnu/errlist-compat.awk b/sysdeps/gnu/errlist-compat.awk
index db827f3f70..2fb5fd906d 100644
--- a/sysdeps/gnu/errlist-compat.awk
+++ b/sysdeps/gnu/errlist-compat.awk
@@ -90,7 +90,7 @@ END {
n = vcount[old];
printf "#if SHLIB_COMPAT (libc, %s, %s)\n", old, new;
printf "# include <bits/wordsize.h>\n";
- printf "extern const char *const __sys_errlist_%s[];\n", old;
+ printf "extern const char *const __sys_errlist_%s[NERR];\n", old;
printf "const int __sys_nerr_%s = %d;\n", old, n;
printf "strong_alias (_sys_errlist_internal, __sys_errlist_%s)\n", old;
printf "declare_symbol (__sys_errlist_%s, object, __WORDSIZE/8*%d)\n", \
@@ -99,7 +99,7 @@ END {
old, old;
printf "compat_symbol (libc, __sys_nerr_%s, sys_nerr, %s);\n", old, old;
- printf "extern const char *const ___sys_errlist_%s[];\n", old;
+ printf "extern const char *const ___sys_errlist_%s[NERR];\n", old;
printf "extern const int __sys_nerr_%s;\n", old;
printf "strong_alias (__sys_errlist_%s, ___sys_errlist_%s)\n", old, old;
printf "strong_alias (__sys_nerr_%s, ___sys_nerr_%s)\n", old, old;
@@ -110,10 +110,11 @@ END {
}
printf "\
-extern const char *const __sys_errlist_internal[];\n\
+extern const char *const __sys_errlist_internal[NERR];\n\
extern const int __sys_nerr_internal;\n\
strong_alias (_sys_errlist_internal, __sys_errlist_internal)\n\
strong_alias (_sys_nerr_internal, __sys_nerr_internal)\n\
+extern const char *const sys_errlist[NERR];\n\
versioned_symbol (libc, _sys_errlist_internal, sys_errlist, %s);\n\
versioned_symbol (libc, __sys_errlist_internal, _sys_errlist, %s);\n\
versioned_symbol (libc, _sys_nerr_internal, sys_nerr, %s);\n\
diff --git a/sysdeps/gnu/errlist.awk b/sysdeps/gnu/errlist.awk
index 3f074ed482..365ac817c7 100644
--- a/sysdeps/gnu/errlist.awk
+++ b/sysdeps/gnu/errlist.awk
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-1999,2002,2004 Free Software Foundation, Inc.
+# Copyright (C) 1991-1999,2002,2004,2005 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
@@ -106,8 +106,9 @@ errnoh == 4 \
END {
print " };";
print "";
- print "const int _sys_nerr_internal";
- print " = sizeof _sys_errlist_internal / sizeof _sys_errlist_internal [0];";
+ print "#define NERR \\";
+ print " (sizeof _sys_errlist_internal / sizeof _sys_errlist_internal [0])";
+ print "const int _sys_nerr_internal = NERR;"
print "";
print "#if !defined NOT_IN_libc && !ERRLIST_NO_COMPAT";
print "# include <errlist-compat.c>";
diff --git a/sysdeps/gnu/errlist.c b/sysdeps/gnu/errlist.c
index 9ae6ec3c1d..1508311a4a 100644
--- a/sysdeps/gnu/errlist.c
+++ b/sysdeps/gnu/errlist.c
@@ -1410,8 +1410,9 @@ TRANS error; @pxref{Cancel AIO Operations}. */
#endif
};
-const int _sys_nerr_internal
- = sizeof _sys_errlist_internal / sizeof _sys_errlist_internal [0];
+#define NERR \
+ (sizeof _sys_errlist_internal / sizeof _sys_errlist_internal [0])
+const int _sys_nerr_internal = NERR;
#if !defined NOT_IN_libc && !ERRLIST_NO_COMPAT
# include <errlist-compat.c>