diff options
Diffstat (limited to 'sysdeps/gnu')
-rw-r--r-- | sysdeps/gnu/errlist-compat.awk | 7 | ||||
-rw-r--r-- | sysdeps/gnu/errlist.awk | 7 | ||||
-rw-r--r-- | sysdeps/gnu/errlist.c | 5 |
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> |