about summary refs log tree commit diff
path: root/sysdeps/unix/sysv
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-02-01 23:24:05 +0000
committerUlrich Drepper <drepper@redhat.com>2002-02-01 23:24:05 +0000
commitfb23eb252f19c0066fdd45b69673a1beb328295f (patch)
tree77fa8a57b8a956426e4ed8ba058314f0103fe820 /sysdeps/unix/sysv
parent9c1084a38005ab319ce3f34e2faf087b59e9b0e8 (diff)
downloadglibc-fb23eb252f19c0066fdd45b69673a1beb328295f.tar.gz
glibc-fb23eb252f19c0066fdd45b69673a1beb328295f.tar.xz
glibc-fb23eb252f19c0066fdd45b69673a1beb328295f.zip
Update.
2002-02-01  Jakub Jelinek  <jakub@redhat.com>

	* Versions.def (libc): Add GLIBC_PRIVATE.
	(libdb, libnss_db, libdb1): Remove.
	(libnss_compat, libnss_dns, libnss_files, libnss_hesiod, libnss_nis,
	libnss_nisplus): Move all symbols to GLIBC_PRIVATE.
	(libpthread): Add GLIBC_PRIVATE.
	(libresolv): Likewise, remove GLIBC_2.1.
	(ld): Add GLIBC_PRIVATE, remove GLIBC_2.1.1, GLIBC_2.2, GLIBC_2.2.1,
	GLIBC_2.2.3, GLIBC_2.3.
	* catgets/Versions (__open_catalog): Move to GLIBC_PRIVATE.
	* elf/Versions (_dl_open, _dl_close, _dl_addr, _dl_init_first,
	_dl_sym, _dl_vsym): Likewise.
	(__libc_enable_secure, __libc_stack_end, _dl_argv, _dl_catch_error,
	_dl_check_all_versions, _dl_check_map_versions, _dl_debug_initialize,
	_dl_debug_printf, _dl_debug_state, _dl_dst_count, _dl_dst_substitute,
	_dl_init, _dl_lookup_symbol, _dl_lookup_symbol_skip,
	_dl_lookup_versioned_symbol, _dl_lookup_versioned_symbol_skip,
	_dl_map_object, _dl_map_object_deps, _dl_out_of_memory,
	_dl_relocate_object, _dl_signal_error, _dl_start_profile,
	_dl_starting_up, _dl_sysdep_start, _dl_unload_cache, _rtld_global):
	Likewise.
	(_dl_object_relocation_scope): Remove.
	* hesiod/Versions: Move all symbols to GLIBC_PRIVATE.
	* iconv/Versions (__gconv_alias_db, __gconv_modules_db,
	__gconv_cache): Move to GLIBC_PRIVATE.
	* inet/Versions (__internal_endnetgrent, __internal_getnetgrent_r,
	__internal_setnetgrent): Likewise.
	* io/Versions (__libc_open, __libc_close, __libc_read, __libc_write,
	__libc_lseek, __libc_fcntl, __libc_open64, __libc_lseek64): Likewise.
	* locale/Versions (__collate_element_hash, __collate_element_strings,
	__collate_symbol_classes, __collate_symbol_hash,
	__collate_symbol_strings, _nl_current_LC_COLLATE,
	_nl_current_LC_CTYPE): Likewise.
	* misc/Versions (__libc_fsync, __libc_msync): Likewise.
	* nis/Versions (libnss_compat): Move all symbols to GLIBC_PRIVATE.
	(libnss_nis, libnss_nisplus): Likewise.
	* nss/Versions (_nss_files_parse_grent, _nss_files_parse_pwent,
	_nss_files_parse_spent): Move to GLIBC_PRIVATE.
	(libnss_files): Move all symbols to GLIBC_PRIVATE.
	* posix/Versions (__libc_wait, __libc_waitpid, __libc_pause,
	__libc_nanosleep, __libc_fork, __libc_pread, __libc_pread64,
	__libc_pwrite, __libc_pwrite64): Move to GLIBC_PRIVATE.
	* resolv/Versions (__gai_sigqueue, __ns_name_unpack, __ns_name_ntop,
	__ns_get16, __ns_samename): Likewise.
	(libnss_dns): Move all symbols to GLIBC_PRIVATE.
	* setjmp/Versions (__libc_longjmp, __libc_siglongjmp): Move to
	GLIBC_PRIVATE.
	* socket/Versions (__libc_accept, __libc_send, __libc_recvfrom,
	__libc_recvmsg, __libc_sendmsg, __libc_recv, __libc_sendto,
	__libc_connect): Likewise.
	* stdio-common/Versions (_itoa_lower_digits, _itoa_upper_digits):
	Likewise.
	* stdlib/Versions (__libc_system): Likewise.
	* sunrpc/Versions (__rpc_thread_destroy): Likewise.
	* sysdeps/hppa/Versions: Move all symbols to GLIBC_PRIVATE.
	* sysdeps/ia64/fpu/Versions: Likewise.
	* sysdeps/ia64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/ia64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/i386/Versions (__modify_ldt): Move
	to GLIBC_PRIVATE.
	* sysdeps/unix/sysv/linux/x86_64/Versions (__modify_ldt): Likewise.
	* sysdeps/unix/sysv/linux/Versions (__syscall_rt_sigqueueinfo,
	__libc_sigaction): Likewise.
	* termios/Versions (__libc_tcdrain): Likewise.

	* misc/sys/cdefs (__attribute_noinline__): Define.
	* elf/dl-lookup.c (_dl_do_lookup, _dl_do_lookup_versioned): Add
	__attribute_noinline__.

	* elf/Makefile (rtld-routines): Add dl-xstat64, dl-fxstat64.
	* elf/dl-xstat64.c: New file.
	* elf/dl-fxstat64.c: New file.
	* sysdeps/unix/sysv/linux/fxstat64.c: If RTLD_STAT64 is defined,
	don't export __fxstat64 at multiple versions.
	* sysdeps/unix/sysv/linux/lxstat64.c: Similarly.
	* sysdeps/unix/sysv/linux/xstat64.c: Similarly.
Diffstat (limited to 'sysdeps/unix/sysv')
-rw-r--r--sysdeps/unix/sysv/linux/Versions13
-rw-r--r--sysdeps/unix/sysv/linux/fxstat64.c11
-rw-r--r--sysdeps/unix/sysv/linux/i386/Versions5
-rw-r--r--sysdeps/unix/sysv/linux/ia64/Versions6
-rw-r--r--sysdeps/unix/sysv/linux/lxstat64.c11
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/Versions5
-rw-r--r--sysdeps/unix/sysv/linux/xstat64.c11
7 files changed, 41 insertions, 21 deletions
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 7b920a31bb..7965e11b85 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -55,9 +55,6 @@ libc {
     # functions used in inline functions or macros
     __libc_sa_len;
 
-    # functions used in other libraries
-    __syscall_rt_sigqueueinfo;
-
     # Since we have new signals this structure changed.
     _sys_siglist; sys_siglist; sys_sigabbrev;
 
@@ -84,8 +81,7 @@ libc {
   }
   GLIBC_2.2 {
     # needed in other libraries.
-    __endmntent; __getmntent_r; __setmntent; __statfs; __libc_sigaction;
-    __sysctl;
+    __endmntent; __getmntent_r; __setmntent; __statfs; __sysctl;
 
     # ipc ctl interface change.
     semctl; shmctl; msgctl;
@@ -94,4 +90,11 @@ libc {
     # p*
     pivot_root;
   }
+  GLIBC_PRIVATE {
+    # needed by libpthread.
+    __libc_sigaction;
+
+    # functions used in other libraries
+    __syscall_rt_sigqueueinfo;
+  }
 }
diff --git a/sysdeps/unix/sysv/linux/fxstat64.c b/sysdeps/unix/sysv/linux/fxstat64.c
index fb1ee413fb..2afe9cd267 100644
--- a/sysdeps/unix/sysv/linux/fxstat64.c
+++ b/sysdeps/unix/sysv/linux/fxstat64.c
@@ -1,5 +1,5 @@
 /* fxstat64 using old-style Unix fstat system call.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1997,1998,1999,2000,2001,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
@@ -85,11 +85,16 @@ ___fxstat64 (int vers, int fd, struct stat64 *buf)
 #endif
 }
 
-#include <shlib-compat.h>
+#ifndef RTLD_STAT64
+# include <shlib-compat.h>
 
 versioned_symbol (libc, ___fxstat64, __fxstat64, GLIBC_2_2);
 
-#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
+# if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
 strong_alias (___fxstat64, __old__fxstat64)
 compat_symbol (libc, __old__fxstat64, __fxstat64, GLIBC_2_1);
+# endif
+
+#else
+strong_alias (___fxstat64, __fxstat64);
 #endif
diff --git a/sysdeps/unix/sysv/linux/i386/Versions b/sysdeps/unix/sysv/linux/i386/Versions
index 83445a1715..388fe8312b 100644
--- a/sysdeps/unix/sysv/linux/i386/Versions
+++ b/sysdeps/unix/sysv/linux/i386/Versions
@@ -9,7 +9,7 @@ libc {
     vm86;
   }
   GLIBC_2.1 {
-    __modify_ldt; modify_ldt;
+    modify_ldt;
   }
   GLIBC_2.2 {
     # functions used in other libraries
@@ -33,4 +33,7 @@ libc {
     # v*
     versionsort64;
   }
+  GLIBC_PRIVATE {
+    __modify_ldt;
+  }
 }
diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
index e307eca3b1..12d75425f4 100644
--- a/sysdeps/unix/sysv/linux/ia64/Versions
+++ b/sysdeps/unix/sysv/linux/ia64/Versions
@@ -1,9 +1,5 @@
 ld {
-  GLIBC_2.2 {
-    # global variables needed in the libc.
-    _dl_pagesize;
-  }
-  GLIBC_2.2.1 {
+  GLIBC_PRIVATE {
     _dl_var_init;
   }
 }
diff --git a/sysdeps/unix/sysv/linux/lxstat64.c b/sysdeps/unix/sysv/linux/lxstat64.c
index 2c7dafe78f..94540a97ab 100644
--- a/sysdeps/unix/sysv/linux/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/lxstat64.c
@@ -1,5 +1,5 @@
 /* lxstat64 using old-style Unix lstat system call.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1997,1998,1999,2000,2001,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
@@ -87,11 +87,16 @@ ___lxstat64 (int vers, const char *name, struct stat64 *buf)
 #endif
 }
 
-#include <shlib-compat.h>
+#ifndef RTLD_STAT64
+# include <shlib-compat.h>
 
 versioned_symbol (libc, ___lxstat64, __lxstat64, GLIBC_2_2);
 
-#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
+# if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
 strong_alias (___lxstat64, __old__lxstat64)
 compat_symbol (libc, __old__lxstat64, __lxstat64, GLIBC_2_1);
+# endif
+
+#else
+strong_alias (___lxstat64, __lxstat64);
 #endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions
index e28893a932..3735871a24 100644
--- a/sysdeps/unix/sysv/linux/x86_64/Versions
+++ b/sysdeps/unix/sysv/linux/x86_64/Versions
@@ -4,6 +4,9 @@ libc {
 
     ioperm; iopl;
 
-    __modify_ldt; modify_ldt;
+    modify_ldt;
+  }
+  GLIBC_PRIVATE {
+    __modify_ldt;
   }
 }
diff --git a/sysdeps/unix/sysv/linux/xstat64.c b/sysdeps/unix/sysv/linux/xstat64.c
index 98ecbfd0ea..c40378458b 100644
--- a/sysdeps/unix/sysv/linux/xstat64.c
+++ b/sysdeps/unix/sysv/linux/xstat64.c
@@ -1,5 +1,5 @@
 /* xstat64 using old-style Unix stat system call.
-   Copyright (C) 1991,95,96,97,98,99,2000,2001 Free Software Foundation, Inc.
+   Copyright (C) 1991,95,96,97,98,99,2000,01,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
@@ -91,11 +91,16 @@ ___xstat64 (int vers, const char *name, struct stat64 *buf)
 #endif
 }
 
-#include <shlib-compat.h>
+#ifndef RTLD_STAT64
+# include <shlib-compat.h>
 
 versioned_symbol (libc, ___xstat64, __xstat64, GLIBC_2_2);
 
-#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
+# if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
 strong_alias (___xstat64, __old__xstat64)
 compat_symbol (libc, __old__xstat64, __xstat64, GLIBC_2_1);
+# endif
+
+#else
+strong_alias (___xstat64, __xstat64);
 #endif