* sysdeps/mach/hurd/pwrite64.c: No libc_hidden_def (__libc_pwrite64).
* sysdeps/mach/hurd/dl-sysdep.c (__GI_abort): Define alias for abort.
* include/assert.h (__assert_perror_fail): Declare it, do hidden_proto.
* assert/assert-perr.c: Add libc_hidden_def.
* elf/dl-minimal.c [! NDEBUG] (__assert_perror_fail): New function.
* sysdeps/gnu/errlist-compat.awk: Don't fail if there are no versions
found at all.
* sysdeps/gnu/Versions: File removed. Moved all #errlist-compat
sys_errlist stuff to ...
* sysdeps/unix/sysv/linux/Versions: ... here.
* mach/mach.h: Include <features.h>.
2002-08-29 Roland McGrath <roland@redhat.com>
+ * sysdeps/mach/_strerror.c (__strerror_r): Add libc_hidden_def.
+
+ * sysdeps/mach/hurd/pwrite64.c: No libc_hidden_def (__libc_pwrite64).
+
+ * sysdeps/mach/hurd/dl-sysdep.c (__GI_abort): Define alias for abort.
+
+ * include/assert.h (__assert_perror_fail): Declare it, do hidden_proto.
+ * assert/assert-perr.c: Add libc_hidden_def.
+ * elf/dl-minimal.c [! NDEBUG] (__assert_perror_fail): New function.
+
+ * sysdeps/gnu/errlist-compat.awk: Don't fail if there are no versions
+ found at all.
+ * sysdeps/gnu/Versions: File removed. Moved all #errlist-compat
+ sys_errlist stuff to ...
+ * sysdeps/unix/sysv/linux/Versions: ... here.
+
+ * mach/mach.h: Include <features.h>.
+
* elf/dl-runtime.c (IN_DL_RUNTIME): Define this macro first thing.
* sysdeps/i386/dl-machine.h: Only declare fixup, profile_fixup and
define ELF_MACHINE_RUNTIME_TRAMPOLINE under #ifdef IN_DL_RUNTIME.
abort ();
}
+libc_hidden_def (__assert_perror_fail)
}
rtld_hidden_weak(__assert_fail)
+void weak_function
+__assert_perror_fail (int errnum,
+ const char *file, unsigned int line,
+ const char *function)
+{
+ char errbuf[400];
+ _dl_fatal_printf ("\
+Inconsistency detected by ld.so: %s: %u: %s%sUnexpected error: %s.\n",
+ file, line, function ?: "", function ? ": " : "",
+ __strerror_r (errnum, errbuf, sizeof errbuf));
+
+}
+rtld_hidden_weak (__assert_perror_fail)
#endif
unsigned long int weak_function
unsigned int __line, __const char *__function)
__THROW __attribute__ ((__noreturn__));
+/* Likewise, but prints the error text for ERRNUM. */
+extern void __assert_perror_fail (int __errnum, __const char *__file,
+ unsigned int __line,
+ __const char *__function)
+ __THROW __attribute__ ((__noreturn__));
+
#if !defined NOT_IN_libc || defined IS_IN_rtld
hidden_proto (__assert_fail)
+hidden_proto (__assert_perror_fail)
#endif
/* Standard header for all Mach programs.
- Copyright (C) 1993, 1994, 1996, 1997 Free Software Foundation, Inc.
+ Copyright (C) 1993,94,96,97,2002 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
#define _MACH_H 1
+/* We must include this before using __need_FILE with <stdio.h> below. */
+#include <features.h>
+
+
/* Get the basic types used by Mach. */
#include <mach/mach_types.h>
+++ /dev/null
-libc {
- # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk.
- # When you get an error from errlist-compat.awk, you need to add a new
- # version here. Don't do this blindly, since this means changing the ABI
- # for all GNU/Linux configurations.
-
- GLIBC_2.0 {
- #errlist-compat 123
- _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
- }
- GLIBC_2.1 {
- #errlist-compat 125
- _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
- }
- GLIBC_2.3 {
- #errlist-compat 126
- _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
- }
-}
}
END {
+ if (! highest_version) {
+ print "/* No sys_errlist/sys_nerr symbols defined on this platform. */";
+ exit 0;
+ }
+
count = maxerr + 1;
if (highest != count) {
-/* Copyright (C) 1993, 1995, 1996, 1997, 1998, 2000
- Free Software Foundation, Inc.
+/* Copyright (C) 1993,95,96,97,98,2000,02 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
return (char *) _(es->subsystem[sub].codes[code]);
}
+libc_hidden_def (__strerror_r)
weak_alias (__strerror_r, strerror_r)
/* Try for ever and ever. */
ABORT_INSTRUCTION;
}
+
+/* We need this alias to satisfy references from libc_pic.a objects
+ that were affected by the libc_hidden_proto declaration for abort. */
+strong_alias (abort, __GI_abort)
\f
/* This function is called by interruptible RPC stubs. For initial
dynamic linking, just use the normal mach_msg. Since this defn is
}
#ifndef __libc_pwrite64
-libc_hidden_def (__libc_pwrite64)
weak_alias (__libc_pwrite64, __pwrite64)
libc_hidden_weak (__pwrite64)
weak_alias (__libc_pwrite64, pwrite64)
libc {
+ # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk.
+ # When you get an error from errlist-compat.awk, you need to add a new
+ # version here. Don't do this blindly, since this means changing the ABI
+ # for all GNU/Linux configurations.
+
GLIBC_2.0 {
# functions used in inline functions or macros
__cmsg_nxthdr;
# u*
umount; uselib;
+
+ #errlist-compat 123
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
}
GLIBC_2.1 {
# functions used in inline functions or macros
# u*
umount2;
+
+ #errlist-compat 125
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
}
GLIBC_2.2 {
# needed in other libraries.
GLIBC_2.3 {
# r*
readahead;
+
+ #errlist-compat 126
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
}
GLIBC_PRIVATE {
# needed by libpthread.