* [PATCH] Updated GLIBC_PRIVATE
@ 2002-02-01 4:54 Jakub Jelinek
2002-02-01 15:27 ` Ulrich Drepper
0 siblings, 1 reply; 2+ messages in thread
From: Jakub Jelinek @ 2002-02-01 4:54 UTC (permalink / raw)
To: Ulrich Drepper; +Cc: Glibc hackers
Hi!
Bootstrapped on i686, no make check failures.
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/Verions (__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/Verions (__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.
linuxthreads/
* Versions (__libc_internal_tsd_get, __libc_internal_tsd_set,
__pthread_kill_other_threads_np): Move to GLIBC_PRIVATE.
* sysdeps/i386/i586/Versions: Move all symbols to GLIBC_PRIVATE.
* sysdeps/i386/i686/Versions: Move all symbols to GLIBC_PRIVATE.
* sysdeps/sparc/sparc32/sparcv9/Versions: New.
* sysdeps/sparc/sparc64/Versions: New.
* sysdeps/ia64/Versions: Move all symbols to GLIBC_PRIVATE.
--- libc/catgets/Versions.jj Fri Jul 3 00:31:04 1998
+++ libc/catgets/Versions Fri Feb 1 13:22:20 2002
@@ -1,9 +1,10 @@
libc {
GLIBC_2.0 {
- # functions with required interface outside normal name space
- __open_catalog;
-
# c*
catclose; catgets; catopen;
}
+ GLIBC_PRIVATE {
+ # functions with required interface outside normal name space
+ __open_catalog;
+ }
}
--- libc/elf/Versions.jj Fri Feb 1 10:59:04 2002
+++ libc/elf/Versions Fri Feb 1 13:32:33 2002
@@ -1,7 +1,5 @@
libc {
GLIBC_2.0 {
- # functions used in other libraries
- _dl_open; _dl_close; _dl_addr;
%ifdef EXPORT_UNWIND_FIND_FDE
__register_frame_info; __deregister_frame_info;
%endif
@@ -10,13 +8,6 @@ libc {
# functions used in other libraries
_dl_mcount_wrapper; _dl_mcount_wrapper_check;
}
- GLIBC_2.2 {
- # this is defined in ld.so and overridden by libc
- _dl_init_first;
-
- # functions used in other libraries
- _dl_sym; _dl_vsym;
- }
GLIBC_2.2.4 {
dl_iterate_phdr;
}
@@ -26,44 +17,34 @@ libc {
__register_frame_info_table_bases; _Unwind_Find_FDE;
}
%endif
+ GLIBC_PRIVATE {
+ # functions used in other libraries
+ _dl_open; _dl_close; _dl_addr;
+ _dl_sym; _dl_vsym; _dl_init_first;
+ }
}
ld {
GLIBC_2.0 {
- # Those are in the dynamic linker, but used by libc.so.
- __libc_enable_secure; _dl_catch_error; _dl_check_all_versions;
- _dl_debug_initialize; _dl_debug_state;
- _dl_lookup_symbol;
- _dl_map_object; _dl_map_object_deps; _dl_object_relocation_scope;
- _dl_relocate_object; _dl_signal_error; _dl_starting_up;
- _dl_sysdep_start; _r_debug;
- _dl_lookup_symbol_skip;
- _dl_lookup_versioned_symbol; _dl_lookup_versioned_symbol_skip;
-
# Function from libc.so which must be shared with libc.
calloc; free; malloc; realloc;
- }
- GLIBC_2.1 {
- # global variables
- __libc_stack_end;
- # functions used in other libraries
- _dl_start_profile; _dl_mcount; _dl_unload_cache;
+ _r_debug;
}
- GLIBC_2.1.1 {
+ GLIBC_2.1 {
# functions used in other libraries
- _dl_dst_count; _dl_dst_substitute;
+ _dl_mcount;
}
- GLIBC_2.2 {
- _dl_init; _dl_argv; _dl_check_map_versions;
-
- # variables used elsewhere
- _dl_out_of_memory;
- }
- GLIBC_2.2.3 {
- _dl_debug_printf;
- }
- GLIBC_2.3 {
+ GLIBC_PRIVATE {
+ # Those are in the dynamic linker, but used by libc.so.
+ __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;
}
}
--- libc/elf/dl-xstat64.c.jj Thu Jan 31 18:41:11 2002
+++ libc/elf/dl-xstat64.c Fri Feb 1 13:34:21 2002
@@ -0,0 +1,25 @@
+/* Dynamic linker's private version of __xstat64.
+ Copyright (C) 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
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/* This special file is needed because some xstat64.c implementations
+ use versioning for __xstat64 and we need to keep it local to
+ the dynamic linker. */
+
+#define RTLD_STAT64
+#include <xstat64.c>
--- libc/elf/dl-lookup.c.jj Fri Feb 1 10:59:04 2002
+++ libc/elf/dl-lookup.c Fri Feb 1 13:22:20 2002
@@ -661,7 +661,7 @@ _dl_debug_bindings (const char *undef_na
/* These are here so that we only inline do_lookup{,_versioned} in the common
case, not everywhere. */
-static int
+static int __attribute_noinline__
internal_function
_dl_do_lookup (const char *undef_name, unsigned long int hash,
const ElfW(Sym) *ref, struct sym_val *result,
@@ -672,7 +672,7 @@ _dl_do_lookup (const char *undef_name, u
type_class);
}
-static int
+static int __attribute_noinline__
internal_function
_dl_do_lookup_versioned (const char *undef_name, unsigned long int hash,
const ElfW(Sym) *ref, struct sym_val *result,
--- libc/elf/Makefile.jj Wed Jan 30 18:40:00 2002
+++ libc/elf/Makefile Fri Feb 1 13:34:21 2002
@@ -37,7 +37,8 @@ elide-routines.os = $(all-dl-routines) d
# ld.so uses those routines, plus some special stuff for being the program
# interpreter and operating independent of libc.
-rtld-routines := rtld $(dl-routines) dl-sysdep dl-environ dl-minimal
+rtld-routines := rtld $(dl-routines) dl-sysdep dl-environ dl-minimal \
+ dl-xstat64 dl-fxstat64
all-rtld-routines = $(rtld-routines) $(sysdep-rtld-routines)
distribute := $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \
--- libc/elf/dl-fxstat64.c.jj Thu Jan 31 18:41:11 2002
+++ libc/elf/dl-fxstat64.c Fri Feb 1 13:34:21 2002
@@ -0,0 +1,25 @@
+/* Dynamic linker's private version of __fxstat64.
+ Copyright (C) 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
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/* This special file is needed because some fxstat64.c implementations
+ use versioning for __fxstat64 and we need to keep it local to
+ the dynamic linker. */
+
+#define RTLD_STAT64
+#include <fxstat64.c>
--- libc/hesiod/Versions.jj Thu Jul 27 15:58:10 2000
+++ libc/hesiod/Versions Fri Feb 1 13:22:20 2002
@@ -1,13 +1,11 @@
libnss_hesiod {
- GLIBC_2.1 {
+ GLIBC_PRIVATE {
_nss_hesiod_setpwent; _nss_hesiod_endpwent;
_nss_hesiod_getpwnam_r; _nss_hesiod_getpwuid_r;
_nss_hesiod_setgrent; _nss_hesiod_endgrent;
_nss_hesiod_getgrnam_r; _nss_hesiod_getgrgid_r;
_nss_hesiod_setservent; _nss_hesiod_endservent;
_nss_hesiod_getservbyname_r;
- }
- GLIBC_2.2 {
_nss_hesiod_initgroups_dyn;
_nss_hesiod_getservbyport_r;
_nss_hesiod_setprotoent; _nss_hesiod_endprotoent;
--- libc/iconv/Versions.jj Wed Sep 12 09:56:44 2001
+++ libc/iconv/Versions Fri Feb 1 13:22:20 2002
@@ -1,13 +1,10 @@
libc {
GLIBC_2.1 {
- # global variables
- __gconv_alias_db; __gconv_modules_db;
-
# i*
iconv_open; iconv; iconv_close;
}
- GLIBC_2.2.5 {
- # variable shared with iconv program
- __gconv_cache;
+ GLIBC_PRIVATE {
+ # variables shared with iconv program
+ __gconv_alias_db; __gconv_modules_db; __gconv_cache;
}
}
--- libc/inet/Versions.jj Wed Aug 2 21:36:17 2000
+++ libc/inet/Versions Fri Feb 1 13:22:20 2002
@@ -3,10 +3,6 @@ libc {
# functions with required interface outside normal name space
__ivaliduser; __check_rhosts_file; __rcmd_errstr;
- # functions used in other libraries
- __internal_endnetgrent; __internal_getnetgrent_r;
- __internal_setnetgrent;
-
# variables in normal name space
rexecoptions;
@@ -68,4 +64,9 @@ libc {
# r*
rcmd_af; rexec_af; rresvport_af; ruserok_af;
}
+ GLIBC_PRIVATE {
+ # functions used in other libraries
+ __internal_endnetgrent; __internal_getnetgrent_r;
+ __internal_setnetgrent;
+ }
}
--- libc/io/Versions.jj Mon Nov 13 23:01:21 2000
+++ libc/io/Versions Fri Feb 1 13:22:20 2002
@@ -1,10 +1,5 @@
libc {
GLIBC_2.0 {
- # functions which have an additional interface since they are
- # are cancelable.
- __libc_open; __libc_close; __libc_read; __libc_write;
- __libc_lseek; __libc_fcntl;
-
# functions used in inline functions or macros
__xstat; __fxstat; __lxstat; __xmknod; __write; __close; __fcntl;
__lseek; __open; __read;
@@ -83,14 +78,16 @@ libc {
# s*
statfs64; statvfs; statvfs64;
}
- GLIBC_2.1.3 {
- # For the cancelation wrappers.
- __libc_open64; __libc_lseek64;
- }
GLIBC_2.2 {
# p*
posix_fadvise; posix_fadvise64; posix_fallocate; posix_fallocate64;
__open64;
}
+ GLIBC_PRIVATE {
+ # functions which have an additional interface since they are
+ # cancelable.
+ __libc_open; __libc_close; __libc_read; __libc_write;
+ __libc_lseek; __libc_fcntl; __libc_open64; __libc_lseek64;
+ }
}
--- libc/linuxthreads/sysdeps/i386/i686/Versions.jj Thu Nov 15 23:10:54 2001
+++ libc/linuxthreads/sysdeps/i386/i686/Versions Fri Feb 1 13:22:20 2002
@@ -1,5 +1,5 @@
libpthread {
- GLIBC_2.2.3 {
+ GLIBC_PRIVATE {
__pthread_clock_gettime; __pthread_clock_settime;
}
}
--- libc/linuxthreads/sysdeps/i386/i586/Versions.jj Sat Apr 21 09:52:39 2001
+++ libc/linuxthreads/sysdeps/i386/i586/Versions Fri Feb 1 13:22:20 2002
@@ -1,5 +1,5 @@
libpthread {
- GLIBC_2.2.3 {
+ GLIBC_PRIVATE {
__pthread_clock_gettime; __pthread_clock_settime;
}
}
--- libc/linuxthreads/sysdeps/sparc/sparc32/sparcv9/Versions.jj Thu Jan 31 14:59:42 2002
+++ libc/linuxthreads/sysdeps/sparc/sparc32/sparcv9/Versions Fri Feb 1 13:22:20 2002
@@ -0,0 +1,5 @@
+libpthread {
+ GLIBC_PRIVATE {
+ __pthread_clock_gettime; __pthread_clock_settime;
+ }
+}
--- libc/linuxthreads/sysdeps/sparc/sparc64/Versions.jj Thu Jan 31 14:59:54 2002
+++ libc/linuxthreads/sysdeps/sparc/sparc64/Versions Fri Feb 1 13:22:20 2002
@@ -0,0 +1,5 @@
+libpthread {
+ GLIBC_PRIVATE {
+ __pthread_clock_gettime; __pthread_clock_settime;
+ }
+}
--- libc/linuxthreads/sysdeps/ia64/Versions.jj Tue Apr 24 06:43:34 2001
+++ libc/linuxthreads/sysdeps/ia64/Versions Fri Feb 1 13:22:20 2002
@@ -1,5 +1,5 @@
libpthread {
- GLIBC_2.2.3 {
+ GLIBC_PRIVATE {
__pthread_clock_gettime; __pthread_clock_settime;
}
}
--- libc/linuxthreads/Versions.jj Fri Mar 16 09:48:44 2001
+++ libc/linuxthreads/Versions Fri Feb 1 13:22:20 2002
@@ -13,17 +13,18 @@ libc {
pthread_mutexattr_getkind_np; pthread_mutexattr_setkind_np;
pthread_self; pthread_setcancelstate; pthread_setcanceltype;
pthread_setschedparam;
-
- # Internal libc interface to libpthread
- __libc_internal_tsd_get; __libc_internal_tsd_set;
}
GLIBC_2.1 {
pthread_attr_init;
}
+ GLIBC_PRIVATE {
+ # Internal libc interface to libpthread
+ __libc_internal_tsd_get; __libc_internal_tsd_set;
+ }
}
ld {
- GLIBC_2.0 {
+ GLIBC_PRIVATE {
# Internal libc interface to libpthread
__libc_internal_tsd_get; __libc_internal_tsd_set;
}
@@ -35,9 +36,6 @@ libpthread {
_pthread_cleanup_pop; _pthread_cleanup_pop_restore; _pthread_cleanup_push;
_pthread_cleanup_push_defer;
- # Internal libc interface to libpthread
- __libc_internal_tsd_get; __libc_internal_tsd_set;
-
# Overwritten libc functions.
accept; close; connect; fcntl; fork; fsync; longjmp; lseek; msync;
nanosleep; open; pause; raise; read; recv; recvfrom; recvmsg; send;
@@ -118,7 +116,6 @@ libpthread {
sem_close; sem_open; sem_unlink;
}
GLIBC_2.1.2 {
- __pthread_kill_other_threads_np;
__vfork;
}
GLIBC_2.2 {
@@ -156,4 +153,9 @@ libpthread {
# Extensions.
pthread_getattr_np;
}
+ GLIBC_PRIVATE {
+ # Internal libc interface to libpthread
+ __libc_internal_tsd_get; __libc_internal_tsd_set;
+ __pthread_kill_other_threads_np;
+ }
}
--- libc/locale/Versions.jj Tue Sep 26 09:22:43 2000
+++ libc/locale/Versions Fri Feb 1 13:22:20 2002
@@ -7,9 +7,7 @@ libBrokenLocale {
libc {
GLIBC_2.0 {
# global variables
- __collate_element_hash; __collate_element_strings;
- __collate_symbol_classes; __collate_symbol_hash; __collate_symbol_strings;
- _libc_intl_domainname; _nl_current_LC_COLLATE; _nl_current_LC_CTYPE;
+ _libc_intl_domainname;
# functions used in inline functions or macros
__ctype_get_mb_cur_max;
@@ -48,4 +46,10 @@ libc {
# missing function from the experimental locale implementation
__nl_langinfo_l;
}
+ GLIBC_PRIVATE {
+ # global variables
+ __collate_element_hash; __collate_element_strings;
+ __collate_symbol_classes; __collate_symbol_hash; __collate_symbol_strings;
+ _nl_current_LC_COLLATE; _nl_current_LC_CTYPE;
+ }
}
--- libc/misc/sys/cdefs.h.jj Wed Nov 21 13:32:30 2001
+++ libc/misc/sys/cdefs.h Fri Feb 1 13:22:20 2002
@@ -165,8 +165,10 @@
(although this would be possible) since it generates warnings. */
#if __GNUC_PREREQ (3,1)
# define __attribute_used__ __attribute__ ((__used__))
+# define __attribute_noinline__ __attribute__ ((__noinline__))
#else
# define __attribute_used__ __attribute__ ((__unused__))
+# define __attribute_noinline__ /* Ignore */
#endif
/* At some point during the gcc 2.8 development the `format_arg' attribute
--- libc/misc/Versions.jj Fri Sep 29 12:56:59 2000
+++ libc/misc/Versions Fri Feb 1 13:22:20 2002
@@ -3,10 +3,6 @@ libc {
# global variables
___brk_addr; __curbrk; __progname; __progname_full;
- # functions which have an additional interface since they are
- # are cancelable.
- __libc_fsync; __libc_msync;
-
# interface of malloc functions
__sbrk; __getpagesize;
@@ -112,4 +108,9 @@ libc {
# p*
posix_madvise;
}
+ GLIBC_PRIVATE {
+ # functions which have an additional interface since they are
+ # cancelable.
+ __libc_fsync; __libc_msync;
+ }
}
--- libc/nis/Versions.jj Wed Aug 2 21:36:30 2000
+++ libc/nis/Versions Fri Feb 1 13:22:20 2002
@@ -60,20 +60,18 @@ libnsl {
}
libnss_compat {
- GLIBC_2.0 {
+ GLIBC_PRIVATE {
_nss_compat_endgrent; _nss_compat_endpwent; _nss_compat_endspent;
_nss_compat_getgrent_r; _nss_compat_getgrgid_r; _nss_compat_getgrnam_r;
_nss_compat_getpwent_r; _nss_compat_getpwnam_r; _nss_compat_getpwuid_r;
_nss_compat_getspent_r; _nss_compat_getspnam_r;
_nss_compat_setgrent; _nss_compat_setpwent; _nss_compat_setspent;
- }
- GLIBC_2.2 {
_nss_compat_initgroups_dyn;
}
}
libnss_nis {
- GLIBC_2.0 {
+ GLIBC_PRIVATE {
_nss_nis_endaliasent; _nss_nis_endetherent; _nss_nis_endgrent;
_nss_nis_endhostent; _nss_nis_endnetent; _nss_nis_endnetgrent;
_nss_nis_endprotoent; _nss_nis_endpwent; _nss_nis_endrpcent;
@@ -93,14 +91,12 @@ libnss_nis {
_nss_nis_setgrent; _nss_nis_sethostent; _nss_nis_setnetent;
_nss_nis_setnetgrent; _nss_nis_setprotoent; _nss_nis_setpwent;
_nss_nis_setrpcent; _nss_nis_setservent; _nss_nis_setspent;
- }
- GLIBC_2.2 {
_nss_nis_initgroups_dyn;
}
}
libnss_nisplus {
- GLIBC_2.1 {
+ GLIBC_PRIVATE {
_nss_nisplus_endaliasent; _nss_nisplus_endetherent; _nss_nisplus_endgrent;
_nss_nisplus_endhostent; _nss_nisplus_endnetent; _nss_nisplus_endnetgrent;
_nss_nisplus_endprotoent; _nss_nisplus_endpwent; _nss_nisplus_endrpcent;
--- libc/nss/Versions.jj Wed Jan 31 16:35:04 2001
+++ libc/nss/Versions Fri Feb 1 13:22:20 2002
@@ -2,16 +2,18 @@ libc {
GLIBC_2.0 {
# functions used in other libraries
__nss_passwd_lookup; __nss_group_lookup; __nss_hosts_lookup; __nss_next;
- _nss_files_parse_grent; _nss_files_parse_pwent; _nss_files_parse_spent;
__nss_database_lookup; __nss_configure_lookup;
}
GLIBC_2.2.2 {
__nss_hostname_digits_dots;
}
+ GLIBC_PRIVATE {
+ _nss_files_parse_grent; _nss_files_parse_pwent; _nss_files_parse_spent;
+ }
}
libnss_files {
- GLIBC_2.0 {
+ GLIBC_PRIVATE {
_nss_files_setaliasent;
_nss_files_endaliasent;
_nss_files_getaliasbyname_r;
@@ -81,8 +83,6 @@ libnss_files {
_nss_files_getspnam_r;
_nss_netgroup_parseline;
- }
- GLIBC_2.1 {
_nss_files_getpublickey;
_nss_files_getsecretkey;
}
--- libc/posix/Versions.jj Fri Mar 16 10:01:23 2001
+++ libc/posix/Versions Fri Feb 1 13:22:20 2002
@@ -3,10 +3,6 @@ libc {
# functions with special/multiple interfaces
__bsd_getpgrp; __setpgid; __getpgid;
- # functions which have an additional interface since they are
- # are cancelable.
- __libc_wait; __libc_waitpid; __libc_pause; __libc_nanosleep;
-
# functions with required interface outside normal name space
_exit;
@@ -86,11 +82,7 @@ libc {
}
GLIBC_2.1.2 {
# functions used in other libraries
- __libc_fork; __vfork;
- }
- GLIBC_2.1.3 {
- # For the cancelation wrappers.
- __libc_pread; __libc_pread64; __libc_pwrite; __libc_pwrite64;
+ __vfork;
}
GLIBC_2.2 {
# p*
@@ -113,4 +105,10 @@ libc {
# Extended Interface.
fnmatch;
}
+ GLIBC_PRIVATE {
+ # functions which have an additional interface since they are
+ # are cancelable.
+ __libc_wait; __libc_waitpid; __libc_pause; __libc_nanosleep; __libc_fork;
+ __libc_pread; __libc_pread64; __libc_pwrite; __libc_pwrite64;
+ }
}
--- libc/resolv/Versions.jj Mon Mar 5 11:58:07 2001
+++ libc/resolv/Versions Fri Feb 1 13:22:20 2002
@@ -22,7 +22,7 @@ libc {
# r*
__res_state; __res_init; __res_nclose; __res_ninit; _res_hconf;
}
- GLIBC_2.2.3 {
+ GLIBC_PRIVATE {
__gai_sigqueue;
}
}
@@ -49,21 +49,21 @@ libresolv {
__res_send;
__sym_ntop; __sym_ntos; __sym_ston;
}
- GLIBC_2.1 {
- # Needed in libnss_dns.
- __ns_name_unpack; __ns_name_ntop;
- }
GLIBC_2.2 {
__dn_expand;
- __ns_get16; __ns_samename;
__res_hostalias; __res_mkquery; __res_nmkquery; __res_nquery;
__res_nquerydomain; __res_nsearch; __res_nsend; __res_query;
__res_querydomain; __res_search;
}
+ GLIBC_PRIVATE {
+ # Needed in libnss_dns.
+ __ns_name_unpack; __ns_name_ntop;
+ __ns_get16; __ns_samename;
+ }
}
libnss_dns {
- GLIBC_2.0 {
+ GLIBC_PRIVATE {
_nss_dns_gethostbyaddr_r; _nss_dns_gethostbyname2_r;
_nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r;
_nss_dns_getnetbyname_r;
--- libc/setjmp/Versions.jj Fri Jul 3 00:32:40 1998
+++ libc/setjmp/Versions Fri Feb 1 13:22:20 2002
@@ -9,7 +9,7 @@ libc {
# s*
setjmp;
}
- GLIBC_2.1 {
+ GLIBC_PRIVATE {
# helper functions
__libc_longjmp; __libc_siglongjmp;
}
--- libc/socket/Versions.jj Mon Jun 25 10:34:46 2001
+++ libc/socket/Versions Fri Feb 1 13:22:20 2002
@@ -1,10 +1,5 @@
libc {
GLIBC_2.0 {
- # functions which have an additional interface since they are
- # are cancelable.
- __libc_accept; __libc_send; __libc_recvfrom;
- __libc_recvmsg; __libc_sendmsg; __libc_recv; __libc_sendto; __libc_connect;
-
# functions used in other libraries
__connect; __send;
@@ -36,4 +31,10 @@ libc {
# Addition from P1003.1-200x
sockatmark;
}
+ GLIBC_PRIVATE {
+ # functions which have an additional interface since they are
+ # cancelable.
+ __libc_accept; __libc_send; __libc_recvfrom;
+ __libc_recvmsg; __libc_sendmsg; __libc_recv; __libc_sendto; __libc_connect;
+ }
}
--- libc/stdio-common/Versions.jj Sat Aug 8 21:48:39 1998
+++ libc/stdio-common/Versions Fri Feb 1 13:22:20 2002
@@ -1,8 +1,7 @@
libc {
GLIBC_2.0 {
# global variables
- _itoa_lower_digits; _itoa_upper_digits; _sys_errlist; _sys_nerr;
- _sys_siglist;
+ _sys_errlist; _sys_nerr; _sys_siglist;
# functions used in other libraries
__printf_fp; __vfscanf;
@@ -47,4 +46,7 @@ libc {
# t*
tmpfile; tmpfile64;
}
+ GLIBC_PRIVATE {
+ # global variables
+ _itoa_lower_digits; _itoa_upper_digits;
}
--- libc/stdlib/Versions.jj Mon Mar 12 10:55:45 2001
+++ libc/stdlib/Versions Fri Feb 1 13:22:20 2002
@@ -1,9 +1,5 @@
libc {
GLIBC_2.0 {
- # functions which have an additional interface since they are
- # are cancelable.
- __libc_system;
-
# functions with required interface outside normal name space
__xpg_basename;
@@ -94,4 +90,9 @@ libc {
# used by new G++ ABI
__cxa_atexit; __cxa_finalize;
}
+ GLIBC_PRIVATE {
+ # functions which have an additional interface since they are
+ # are cancelable.
+ __libc_system;
+ }
}
--- libc/sunrpc/Versions.jj Mon Mar 26 10:02:25 2001
+++ libc/sunrpc/Versions Fri Feb 1 13:22:20 2002
@@ -110,7 +110,11 @@ libc {
svc_getreq_common; svc_getreq_poll; svc_max_pollfd; svc_pollfd;
}
GLIBC_2.2.3 {
- __rpc_thread_destroy; __rpc_thread_svc_fdset; __rpc_thread_createerr;
+ __rpc_thread_svc_fdset; __rpc_thread_createerr;
__rpc_thread_svc_pollfd; __rpc_thread_svc_max_pollfd;
}
+ GLIBC_PRIVATE {
+ # needed by libpthread.
+ __rpc_thread_destroy;
+ }
}
--- libc/sysdeps/hppa/Versions.jj Wed Apr 25 12:39:50 2001
+++ libc/sysdeps/hppa/Versions Fri Feb 1 13:22:20 2002
@@ -1,5 +1,5 @@
ld {
- GLIBC_2.2 {
+ GLIBC_PRIVATE {
# hppa specific functions in the dynamic linker, but used by libc.so.
_dl_symbol_address; _dl_unmap; _dl_lookup_address;
_dl_function_address;
--- libc/sysdeps/ia64/fpu/Versions.jj Mon Feb 19 09:40:36 2001
+++ libc/sysdeps/ia64/fpu/Versions Fri Feb 1 13:22:20 2002
@@ -1,5 +1,5 @@
libc {
- GLIBC_2.2.3 {
+ GLIBC_PRIVATE {
__libm_frexp_4; __libm_frexp_4f; __libm_frexp_4l; __libm_error_support;
}
}
--- libc/sysdeps/ia64/Versions.jj Fri Feb 1 11:01:18 2002
+++ libc/sysdeps/ia64/Versions Fri Feb 1 13:22:47 2002
@@ -1,5 +1,5 @@
ld {
- GLIBC_2.2 {
+ GLIBC_PRIVATE {
# ia64 specific functions in the dynamic linker, but used by libc.so.
_dl_symbol_address; _dl_unmap; _dl_lookup_address;
_dl_function_address;
--- libc/sysdeps/unix/sysv/linux/ia64/Versions.jj Wed Jan 31 16:35:23 2001
+++ libc/sysdeps/unix/sysv/linux/ia64/Versions Fri Feb 1 13:22:20 2002
@@ -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;
}
}
--- libc/sysdeps/unix/sysv/linux/i386/Versions.jj Wed Nov 21 13:32:59 2001
+++ libc/sysdeps/unix/sysv/linux/i386/Versions Fri Feb 1 13:22:20 2002
@@ -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;
+ }
}
--- libc/sysdeps/unix/sysv/linux/x86_64/Versions.jj Mon Dec 10 19:19:21 2001
+++ libc/sysdeps/unix/sysv/linux/x86_64/Versions Fri Feb 1 13:22:20 2002
@@ -4,6 +4,9 @@ libc {
ioperm; iopl;
- __modify_ldt; modify_ldt;
+ modify_ldt;
+ }
+ GLIBC_PRIVATE {
+ __modify_ldt;
}
}
--- libc/sysdeps/unix/sysv/linux/Versions.jj Thu Nov 23 14:42:19 2000
+++ libc/sysdeps/unix/sysv/linux/Versions Fri Feb 1 13:22:20 2002
@@ -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;
+ }
}
--- libc/sysdeps/unix/sysv/linux/lxstat64.c.jj Thu Aug 23 18:50:44 2001
+++ libc/sysdeps/unix/sysv/linux/lxstat64.c Fri Feb 1 13:34:21 2002
@@ -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,
#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
--- libc/sysdeps/unix/sysv/linux/xstat64.c.jj Thu Aug 23 18:50:47 2001
+++ libc/sysdeps/unix/sysv/linux/xstat64.c Fri Feb 1 13:34:21 2002
@@ -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,
#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
--- libc/sysdeps/unix/sysv/linux/fxstat64.c.jj Thu Aug 23 18:50:44 2001
+++ libc/sysdeps/unix/sysv/linux/fxstat64.c Fri Feb 1 13:34:21 2002
@@ -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 st
#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
--- libc/termios/Versions.jj Fri Jul 3 00:33:49 1998
+++ libc/termios/Versions Fri Feb 1 13:22:20 2002
@@ -1,9 +1,5 @@
libc {
GLIBC_2.0 {
- # functions which have an additional interface since they are
- # are cancelable.
- __libc_tcdrain;
-
# c*
cfgetispeed; cfgetospeed; cfmakeraw; cfsetispeed; cfsetospeed; cfsetspeed;
@@ -15,4 +11,9 @@ libc {
# t*
tcgetsid;
}
+ GLIBC_PRIVATE {
+ # functions which have an additional interface since they are
+ # are cancelable.
+ __libc_tcdrain;
+ }
}
--- libc/Versions.def.jj Thu Jan 31 11:40:28 2002
+++ libc/Versions.def Fri Feb 1 13:41:16 2002
@@ -20,15 +20,11 @@ libc {
%ifdef EXPORT_UNWIND_FIND_FDE
GCC_3.0
%endif
+ GLIBC_PRIVATE
}
libcrypt {
GLIBC_2.0
}
-libdb {
- GLIBC_2.0
- GLIBC_2.1
- GLIBC_2.2
-}
libdl {
GLIBC_2.0
GLIBC_2.1
@@ -45,27 +41,22 @@ libnsl {
GLIBC_2.2
}
libnss_compat {
- GLIBC_2.0
-}
-libnss_db {
- GLIBC_2.0
+ GLIBC_PRIVATE
}
libnss_dns {
- GLIBC_2.0
+ GLIBC_PRIVATE
}
libnss_files {
- GLIBC_2.0
- GLIBC_2.1
+ GLIBC_PRIVATE
}
libnss_hesiod {
- GLIBC_2.1
- GLIBC_2.2
+ GLIBC_PRIVATE
}
libnss_nis {
- GLIBC_2.0
+ GLIBC_PRIVATE
}
libnss_nisplus {
- GLIBC_2.0
+ GLIBC_PRIVATE
}
libpthread {
GLIBC_2.0
@@ -74,11 +65,12 @@ libpthread {
GLIBC_2.1.2
GLIBC_2.2
GLIBC_2.2.3
+ GLIBC_PRIVATE
}
libresolv {
GLIBC_2.0
- GLIBC_2.1
GLIBC_2.2
+ GLIBC_PRIVATE
}
librt {
GLIBC_2.1
@@ -87,17 +79,10 @@ librt {
libutil {
GLIBC_2.0
}
-libdb1 {
- GLIBC_2.0
-}
ld {
GLIBC_2.0
GLIBC_2.1
- GLIBC_2.1.1
- GLIBC_2.2
- GLIBC_2.2.1
- GLIBC_2.2.3
- GLIBC_2.3
+ GLIBC_PRIVATE
}
libthread_db {
GLIBC_2.1.3
Jakub
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] Updated GLIBC_PRIVATE
2002-02-01 4:54 [PATCH] Updated GLIBC_PRIVATE Jakub Jelinek
@ 2002-02-01 15:27 ` Ulrich Drepper
0 siblings, 0 replies; 2+ messages in thread
From: Ulrich Drepper @ 2002-02-01 15:27 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: Glibc hackers
Jakub Jelinek <jakub@redhat.com> writes:
> Bootstrapped on i686, no make check failures.
Yep. And I've looked at some programs/libraries which could have
caused problems and found none. Thanks.
But we nevertheless means we need more testing. It would be really
good if the distribution makers could run a script on a fully loaded
machine which finds all executables and runs "ldd -v" on them. ldd
will report unknown versions or symbols etc.
I hope everybody here realizes how this change effects adding new
entries to Versions files. Every interface which is not exported
because it is meant to be used by users has to go in the GLIBC_PRIVATE
version.
--
---------------. ,-. 1325 Chesapeake Terrace
Ulrich Drepper \ ,-------------------' \ Sunnyvale, CA 94089 USA
Red Hat `--' drepper at redhat.com `------------------------
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2002-02-01 23:27 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-02-01 4:54 [PATCH] Updated GLIBC_PRIVATE Jakub Jelinek
2002-02-01 15:27 ` Ulrich Drepper
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).