public inbox for libc-hacker@sourceware.org
 help / color / mirror / Atom feed
* [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).