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.
This commit is contained in:
Ulrich Drepper 2002-02-01 23:24:05 +00:00
parent 9c1084a380
commit fb23eb252f
42 changed files with 317 additions and 176 deletions

View File

@ -1,3 +1,81 @@
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.
2002-01-18 Isamu Hasegawa <isamu@yamato.ibm.com> 2002-01-18 Isamu Hasegawa <isamu@yamato.ibm.com>
* locale/program/ld-collate.c (collate_finish): Assign a wide * locale/program/ld-collate.c (collate_finish): Assign a wide

View File

@ -20,15 +20,11 @@ libc {
%ifdef EXPORT_UNWIND_FIND_FDE %ifdef EXPORT_UNWIND_FIND_FDE
GCC_3.0 GCC_3.0
%endif %endif
GLIBC_PRIVATE
} }
libcrypt { libcrypt {
GLIBC_2.0 GLIBC_2.0
} }
libdb {
GLIBC_2.0
GLIBC_2.1
GLIBC_2.2
}
libdl { libdl {
GLIBC_2.0 GLIBC_2.0
GLIBC_2.1 GLIBC_2.1
@ -45,27 +41,22 @@ libnsl {
GLIBC_2.2 GLIBC_2.2
} }
libnss_compat { libnss_compat {
GLIBC_2.0 GLIBC_PRIVATE
}
libnss_db {
GLIBC_2.0
} }
libnss_dns { libnss_dns {
GLIBC_2.0 GLIBC_PRIVATE
} }
libnss_files { libnss_files {
GLIBC_2.0 GLIBC_PRIVATE
GLIBC_2.1
} }
libnss_hesiod { libnss_hesiod {
GLIBC_2.1 GLIBC_PRIVATE
GLIBC_2.2
} }
libnss_nis { libnss_nis {
GLIBC_2.0 GLIBC_PRIVATE
} }
libnss_nisplus { libnss_nisplus {
GLIBC_2.0 GLIBC_PRIVATE
} }
libpthread { libpthread {
GLIBC_2.0 GLIBC_2.0
@ -74,11 +65,12 @@ libpthread {
GLIBC_2.1.2 GLIBC_2.1.2
GLIBC_2.2 GLIBC_2.2
GLIBC_2.2.3 GLIBC_2.2.3
GLIBC_PRIVATE
} }
libresolv { libresolv {
GLIBC_2.0 GLIBC_2.0
GLIBC_2.1
GLIBC_2.2 GLIBC_2.2
GLIBC_PRIVATE
} }
librt { librt {
GLIBC_2.1 GLIBC_2.1
@ -87,17 +79,10 @@ librt {
libutil { libutil {
GLIBC_2.0 GLIBC_2.0
} }
libdb1 {
GLIBC_2.0
}
ld { ld {
GLIBC_2.0 GLIBC_2.0
GLIBC_2.1 GLIBC_2.1
GLIBC_2.1.1 GLIBC_PRIVATE
GLIBC_2.2
GLIBC_2.2.1
GLIBC_2.2.3
GLIBC_2.3
} }
libthread_db { libthread_db {
GLIBC_2.1.3 GLIBC_2.1.3

View File

@ -1,9 +1,10 @@
libc { libc {
GLIBC_2.0 { GLIBC_2.0 {
# functions with required interface outside normal name space
__open_catalog;
# c* # c*
catclose; catgets; catopen; catclose; catgets; catopen;
} }
GLIBC_PRIVATE {
# functions with required interface outside normal name space
__open_catalog;
}
} }

View File

@ -37,7 +37,8 @@ elide-routines.os = $(all-dl-routines) dl-support enbl-secure \
# ld.so uses those routines, plus some special stuff for being the program # ld.so uses those routines, plus some special stuff for being the program
# interpreter and operating independent of libc. # 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) all-rtld-routines = $(rtld-routines) $(sysdep-rtld-routines)
distribute := $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \ distribute := $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \

View File

@ -1,7 +1,5 @@
libc { libc {
GLIBC_2.0 { GLIBC_2.0 {
# functions used in other libraries
_dl_open; _dl_close; _dl_addr;
%ifdef EXPORT_UNWIND_FIND_FDE %ifdef EXPORT_UNWIND_FIND_FDE
__register_frame_info; __deregister_frame_info; __register_frame_info; __deregister_frame_info;
%endif %endif
@ -10,13 +8,6 @@ libc {
# functions used in other libraries # functions used in other libraries
_dl_mcount_wrapper; _dl_mcount_wrapper_check; _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 { GLIBC_2.2.4 {
dl_iterate_phdr; dl_iterate_phdr;
} }
@ -26,44 +17,34 @@ libc {
__register_frame_info_table_bases; _Unwind_Find_FDE; __register_frame_info_table_bases; _Unwind_Find_FDE;
} }
%endif %endif
GLIBC_PRIVATE {
# functions used in other libraries
_dl_open; _dl_close; _dl_addr;
_dl_sym; _dl_vsym; _dl_init_first;
}
} }
ld { ld {
GLIBC_2.0 { 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. # Function from libc.so which must be shared with libc.
calloc; free; malloc; realloc; calloc; free; malloc; realloc;
_r_debug;
} }
GLIBC_2.1 { GLIBC_2.1 {
# global variables
__libc_stack_end;
# functions used in other libraries # functions used in other libraries
_dl_start_profile; _dl_mcount; _dl_unload_cache; _dl_mcount;
} }
GLIBC_2.1.1 { GLIBC_PRIVATE {
# functions used in other libraries # Those are in the dynamic linker, but used by libc.so.
_dl_dst_count; _dl_dst_substitute; __libc_enable_secure; __libc_stack_end;
} _dl_argv; _dl_catch_error; _dl_check_all_versions; _dl_check_map_versions;
GLIBC_2.2 { _dl_debug_initialize; _dl_debug_printf; _dl_debug_state; _dl_dst_count;
_dl_init; _dl_argv; _dl_check_map_versions; _dl_dst_substitute; _dl_init; _dl_lookup_symbol; _dl_lookup_symbol_skip;
_dl_lookup_versioned_symbol; _dl_lookup_versioned_symbol_skip;
# variables used elsewhere _dl_map_object; _dl_map_object_deps; _dl_out_of_memory;
_dl_out_of_memory; _dl_relocate_object; _dl_signal_error; _dl_start_profile; _dl_starting_up;
} _dl_sysdep_start; _dl_unload_cache;
GLIBC_2.2.3 {
_dl_debug_printf;
}
GLIBC_2.3 {
_rtld_global; _rtld_global;
} }
} }

25
elf/dl-fxstat64.c Normal file
View File

@ -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>

View File

@ -661,7 +661,7 @@ _dl_debug_bindings (const char *undef_name, struct link_map *undef_map,
/* These are here so that we only inline do_lookup{,_versioned} in the common /* These are here so that we only inline do_lookup{,_versioned} in the common
case, not everywhere. */ case, not everywhere. */
static int static int __attribute_noinline__
internal_function internal_function
_dl_do_lookup (const char *undef_name, unsigned long int hash, _dl_do_lookup (const char *undef_name, unsigned long int hash,
const ElfW(Sym) *ref, struct sym_val *result, const ElfW(Sym) *ref, struct sym_val *result,
@ -672,7 +672,7 @@ _dl_do_lookup (const char *undef_name, unsigned long int hash,
type_class); type_class);
} }
static int static int __attribute_noinline__
internal_function internal_function
_dl_do_lookup_versioned (const char *undef_name, unsigned long int hash, _dl_do_lookup_versioned (const char *undef_name, unsigned long int hash,
const ElfW(Sym) *ref, struct sym_val *result, const ElfW(Sym) *ref, struct sym_val *result,

25
elf/dl-xstat64.c Normal file
View File

@ -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>

View File

@ -1,13 +1,11 @@
libnss_hesiod { libnss_hesiod {
GLIBC_2.1 { GLIBC_PRIVATE {
_nss_hesiod_setpwent; _nss_hesiod_endpwent; _nss_hesiod_setpwent; _nss_hesiod_endpwent;
_nss_hesiod_getpwnam_r; _nss_hesiod_getpwuid_r; _nss_hesiod_getpwnam_r; _nss_hesiod_getpwuid_r;
_nss_hesiod_setgrent; _nss_hesiod_endgrent; _nss_hesiod_setgrent; _nss_hesiod_endgrent;
_nss_hesiod_getgrnam_r; _nss_hesiod_getgrgid_r; _nss_hesiod_getgrnam_r; _nss_hesiod_getgrgid_r;
_nss_hesiod_setservent; _nss_hesiod_endservent; _nss_hesiod_setservent; _nss_hesiod_endservent;
_nss_hesiod_getservbyname_r; _nss_hesiod_getservbyname_r;
}
GLIBC_2.2 {
_nss_hesiod_initgroups_dyn; _nss_hesiod_initgroups_dyn;
_nss_hesiod_getservbyport_r; _nss_hesiod_getservbyport_r;
_nss_hesiod_setprotoent; _nss_hesiod_endprotoent; _nss_hesiod_setprotoent; _nss_hesiod_endprotoent;

View File

@ -1,13 +1,10 @@
libc { libc {
GLIBC_2.1 { GLIBC_2.1 {
# global variables
__gconv_alias_db; __gconv_modules_db;
# i* # i*
iconv_open; iconv; iconv_close; iconv_open; iconv; iconv_close;
} }
GLIBC_2.2.5 { GLIBC_PRIVATE {
# variable shared with iconv program # variables shared with iconv program
__gconv_cache; __gconv_alias_db; __gconv_modules_db; __gconv_cache;
} }
} }

View File

@ -3,10 +3,6 @@ libc {
# functions with required interface outside normal name space # functions with required interface outside normal name space
__ivaliduser; __check_rhosts_file; __rcmd_errstr; __ivaliduser; __check_rhosts_file; __rcmd_errstr;
# functions used in other libraries
__internal_endnetgrent; __internal_getnetgrent_r;
__internal_setnetgrent;
# variables in normal name space # variables in normal name space
rexecoptions; rexecoptions;
@ -68,4 +64,9 @@ libc {
# r* # r*
rcmd_af; rexec_af; rresvport_af; ruserok_af; rcmd_af; rexec_af; rresvport_af; ruserok_af;
} }
GLIBC_PRIVATE {
# functions used in other libraries
__internal_endnetgrent; __internal_getnetgrent_r;
__internal_setnetgrent;
}
} }

View File

@ -1,10 +1,5 @@
libc { libc {
GLIBC_2.0 { 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 # functions used in inline functions or macros
__xstat; __fxstat; __lxstat; __xmknod; __write; __close; __fcntl; __xstat; __fxstat; __lxstat; __xmknod; __write; __close; __fcntl;
__lseek; __open; __read; __lseek; __open; __read;
@ -83,14 +78,16 @@ libc {
# s* # s*
statfs64; statvfs; statvfs64; statfs64; statvfs; statvfs64;
} }
GLIBC_2.1.3 {
# For the cancelation wrappers.
__libc_open64; __libc_lseek64;
}
GLIBC_2.2 { GLIBC_2.2 {
# p* # p*
posix_fadvise; posix_fadvise64; posix_fallocate; posix_fallocate64; posix_fadvise; posix_fadvise64; posix_fallocate; posix_fallocate64;
__open64; __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;
}
} }

View File

@ -1,3 +1,13 @@
2002-02-01 Jakub Jelinek <jakub@redhat.com>
* 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 file.
* sysdeps/sparc/sparc64/Versions: New file.
* sysdeps/ia64/Versions: Move all symbols to GLIBC_PRIVATE.
2002-01-31 Ulrich Drepper <drepper@redhat.com> 2002-01-31 Ulrich Drepper <drepper@redhat.com>
* pthread.c: _dl_cpuclock_offset is not any longer a global variable * pthread.c: _dl_cpuclock_offset is not any longer a global variable

View File

@ -13,17 +13,18 @@ libc {
pthread_mutexattr_getkind_np; pthread_mutexattr_setkind_np; pthread_mutexattr_getkind_np; pthread_mutexattr_setkind_np;
pthread_self; pthread_setcancelstate; pthread_setcanceltype; pthread_self; pthread_setcancelstate; pthread_setcanceltype;
pthread_setschedparam; pthread_setschedparam;
# Internal libc interface to libpthread
__libc_internal_tsd_get; __libc_internal_tsd_set;
} }
GLIBC_2.1 { GLIBC_2.1 {
pthread_attr_init; pthread_attr_init;
} }
GLIBC_PRIVATE {
# Internal libc interface to libpthread
__libc_internal_tsd_get; __libc_internal_tsd_set;
}
} }
ld { ld {
GLIBC_2.0 { GLIBC_PRIVATE {
# Internal libc interface to libpthread # Internal libc interface to libpthread
__libc_internal_tsd_get; __libc_internal_tsd_set; __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_pop; _pthread_cleanup_pop_restore; _pthread_cleanup_push;
_pthread_cleanup_push_defer; _pthread_cleanup_push_defer;
# Internal libc interface to libpthread
__libc_internal_tsd_get; __libc_internal_tsd_set;
# Overwritten libc functions. # Overwritten libc functions.
accept; close; connect; fcntl; fork; fsync; longjmp; lseek; msync; accept; close; connect; fcntl; fork; fsync; longjmp; lseek; msync;
nanosleep; open; pause; raise; read; recv; recvfrom; recvmsg; send; nanosleep; open; pause; raise; read; recv; recvfrom; recvmsg; send;
@ -118,7 +116,6 @@ libpthread {
sem_close; sem_open; sem_unlink; sem_close; sem_open; sem_unlink;
} }
GLIBC_2.1.2 { GLIBC_2.1.2 {
__pthread_kill_other_threads_np;
__vfork; __vfork;
} }
GLIBC_2.2 { GLIBC_2.2 {
@ -156,4 +153,9 @@ libpthread {
# Extensions. # Extensions.
pthread_getattr_np; pthread_getattr_np;
} }
GLIBC_PRIVATE {
# Internal libc interface to libpthread
__libc_internal_tsd_get; __libc_internal_tsd_set;
__pthread_kill_other_threads_np;
}
} }

View File

@ -1,5 +1,5 @@
libpthread { libpthread {
GLIBC_2.2.3 { GLIBC_PRIVATE {
__pthread_clock_gettime; __pthread_clock_settime; __pthread_clock_gettime; __pthread_clock_settime;
} }
} }

View File

@ -1,5 +1,5 @@
libpthread { libpthread {
GLIBC_2.2.3 { GLIBC_PRIVATE {
__pthread_clock_gettime; __pthread_clock_settime; __pthread_clock_gettime; __pthread_clock_settime;
} }
} }

View File

@ -1,5 +1,5 @@
libpthread { libpthread {
GLIBC_2.2.3 { GLIBC_PRIVATE {
__pthread_clock_gettime; __pthread_clock_settime; __pthread_clock_gettime; __pthread_clock_settime;
} }
} }

View File

@ -0,0 +1,5 @@
libpthread {
GLIBC_PRIVATE {
__pthread_clock_gettime; __pthread_clock_settime;
}
}

View File

@ -0,0 +1,5 @@
libpthread {
GLIBC_PRIVATE {
__pthread_clock_gettime; __pthread_clock_settime;
}
}

View File

@ -7,9 +7,7 @@ libBrokenLocale {
libc { libc {
GLIBC_2.0 { GLIBC_2.0 {
# global variables # global variables
__collate_element_hash; __collate_element_strings; _libc_intl_domainname;
__collate_symbol_classes; __collate_symbol_hash; __collate_symbol_strings;
_libc_intl_domainname; _nl_current_LC_COLLATE; _nl_current_LC_CTYPE;
# functions used in inline functions or macros # functions used in inline functions or macros
__ctype_get_mb_cur_max; __ctype_get_mb_cur_max;
@ -48,4 +46,10 @@ libc {
# missing function from the experimental locale implementation # missing function from the experimental locale implementation
__nl_langinfo_l; __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;
}
} }

View File

@ -3,10 +3,6 @@ libc {
# global variables # global variables
___brk_addr; __curbrk; __progname; __progname_full; ___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 # interface of malloc functions
__sbrk; __getpagesize; __sbrk; __getpagesize;
@ -112,4 +108,9 @@ libc {
# p* # p*
posix_madvise; posix_madvise;
} }
GLIBC_PRIVATE {
# functions which have an additional interface since they are
# cancelable.
__libc_fsync; __libc_msync;
}
} }

View File

@ -165,8 +165,10 @@
(although this would be possible) since it generates warnings. */ (although this would be possible) since it generates warnings. */
#if __GNUC_PREREQ (3,1) #if __GNUC_PREREQ (3,1)
# define __attribute_used__ __attribute__ ((__used__)) # define __attribute_used__ __attribute__ ((__used__))
# define __attribute_noinline__ __attribute__ ((__noinline__))
#else #else
# define __attribute_used__ __attribute__ ((__unused__)) # define __attribute_used__ __attribute__ ((__unused__))
# define __attribute_noinline__ /* Ignore */
#endif #endif
/* At some point during the gcc 2.8 development the `format_arg' attribute /* At some point during the gcc 2.8 development the `format_arg' attribute

View File

@ -60,20 +60,18 @@ libnsl {
} }
libnss_compat { libnss_compat {
GLIBC_2.0 { GLIBC_PRIVATE {
_nss_compat_endgrent; _nss_compat_endpwent; _nss_compat_endspent; _nss_compat_endgrent; _nss_compat_endpwent; _nss_compat_endspent;
_nss_compat_getgrent_r; _nss_compat_getgrgid_r; _nss_compat_getgrnam_r; _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_getpwent_r; _nss_compat_getpwnam_r; _nss_compat_getpwuid_r;
_nss_compat_getspent_r; _nss_compat_getspnam_r; _nss_compat_getspent_r; _nss_compat_getspnam_r;
_nss_compat_setgrent; _nss_compat_setpwent; _nss_compat_setspent; _nss_compat_setgrent; _nss_compat_setpwent; _nss_compat_setspent;
}
GLIBC_2.2 {
_nss_compat_initgroups_dyn; _nss_compat_initgroups_dyn;
} }
} }
libnss_nis { libnss_nis {
GLIBC_2.0 { GLIBC_PRIVATE {
_nss_nis_endaliasent; _nss_nis_endetherent; _nss_nis_endgrent; _nss_nis_endaliasent; _nss_nis_endetherent; _nss_nis_endgrent;
_nss_nis_endhostent; _nss_nis_endnetent; _nss_nis_endnetgrent; _nss_nis_endhostent; _nss_nis_endnetent; _nss_nis_endnetgrent;
_nss_nis_endprotoent; _nss_nis_endpwent; _nss_nis_endrpcent; _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_setgrent; _nss_nis_sethostent; _nss_nis_setnetent;
_nss_nis_setnetgrent; _nss_nis_setprotoent; _nss_nis_setpwent; _nss_nis_setnetgrent; _nss_nis_setprotoent; _nss_nis_setpwent;
_nss_nis_setrpcent; _nss_nis_setservent; _nss_nis_setspent; _nss_nis_setrpcent; _nss_nis_setservent; _nss_nis_setspent;
}
GLIBC_2.2 {
_nss_nis_initgroups_dyn; _nss_nis_initgroups_dyn;
} }
} }
libnss_nisplus { libnss_nisplus {
GLIBC_2.1 { GLIBC_PRIVATE {
_nss_nisplus_endaliasent; _nss_nisplus_endetherent; _nss_nisplus_endgrent; _nss_nisplus_endaliasent; _nss_nisplus_endetherent; _nss_nisplus_endgrent;
_nss_nisplus_endhostent; _nss_nisplus_endnetent; _nss_nisplus_endnetgrent; _nss_nisplus_endhostent; _nss_nisplus_endnetent; _nss_nisplus_endnetgrent;
_nss_nisplus_endprotoent; _nss_nisplus_endpwent; _nss_nisplus_endrpcent; _nss_nisplus_endprotoent; _nss_nisplus_endpwent; _nss_nisplus_endrpcent;

View File

@ -2,16 +2,18 @@ libc {
GLIBC_2.0 { GLIBC_2.0 {
# functions used in other libraries # functions used in other libraries
__nss_passwd_lookup; __nss_group_lookup; __nss_hosts_lookup; __nss_next; __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; __nss_database_lookup; __nss_configure_lookup;
} }
GLIBC_2.2.2 { GLIBC_2.2.2 {
__nss_hostname_digits_dots; __nss_hostname_digits_dots;
} }
GLIBC_PRIVATE {
_nss_files_parse_grent; _nss_files_parse_pwent; _nss_files_parse_spent;
}
} }
libnss_files { libnss_files {
GLIBC_2.0 { GLIBC_PRIVATE {
_nss_files_setaliasent; _nss_files_setaliasent;
_nss_files_endaliasent; _nss_files_endaliasent;
_nss_files_getaliasbyname_r; _nss_files_getaliasbyname_r;
@ -81,8 +83,6 @@ libnss_files {
_nss_files_getspnam_r; _nss_files_getspnam_r;
_nss_netgroup_parseline; _nss_netgroup_parseline;
}
GLIBC_2.1 {
_nss_files_getpublickey; _nss_files_getpublickey;
_nss_files_getsecretkey; _nss_files_getsecretkey;
} }

View File

@ -3,10 +3,6 @@ libc {
# functions with special/multiple interfaces # functions with special/multiple interfaces
__bsd_getpgrp; __setpgid; __getpgid; __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 # functions with required interface outside normal name space
_exit; _exit;
@ -86,11 +82,7 @@ libc {
} }
GLIBC_2.1.2 { GLIBC_2.1.2 {
# functions used in other libraries # functions used in other libraries
__libc_fork; __vfork; __vfork;
}
GLIBC_2.1.3 {
# For the cancelation wrappers.
__libc_pread; __libc_pread64; __libc_pwrite; __libc_pwrite64;
} }
GLIBC_2.2 { GLIBC_2.2 {
# p* # p*
@ -113,4 +105,10 @@ libc {
# Extended Interface. # Extended Interface.
fnmatch; 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;
}
} }

View File

@ -22,7 +22,7 @@ libc {
# r* # r*
__res_state; __res_init; __res_nclose; __res_ninit; _res_hconf; __res_state; __res_init; __res_nclose; __res_ninit; _res_hconf;
} }
GLIBC_2.2.3 { GLIBC_PRIVATE {
__gai_sigqueue; __gai_sigqueue;
} }
} }
@ -49,21 +49,21 @@ libresolv {
__res_send; __res_send;
__sym_ntop; __sym_ntos; __sym_ston; __sym_ntop; __sym_ntos; __sym_ston;
} }
GLIBC_2.1 {
# Needed in libnss_dns.
__ns_name_unpack; __ns_name_ntop;
}
GLIBC_2.2 { GLIBC_2.2 {
__dn_expand; __dn_expand;
__ns_get16; __ns_samename;
__res_hostalias; __res_mkquery; __res_nmkquery; __res_nquery; __res_hostalias; __res_mkquery; __res_nmkquery; __res_nquery;
__res_nquerydomain; __res_nsearch; __res_nsend; __res_query; __res_nquerydomain; __res_nsearch; __res_nsend; __res_query;
__res_querydomain; __res_search; __res_querydomain; __res_search;
} }
GLIBC_PRIVATE {
# Needed in libnss_dns.
__ns_name_unpack; __ns_name_ntop;
__ns_get16; __ns_samename;
}
} }
libnss_dns { libnss_dns {
GLIBC_2.0 { GLIBC_PRIVATE {
_nss_dns_gethostbyaddr_r; _nss_dns_gethostbyname2_r; _nss_dns_gethostbyaddr_r; _nss_dns_gethostbyname2_r;
_nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r; _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r;
_nss_dns_getnetbyname_r; _nss_dns_getnetbyname_r;

View File

@ -9,7 +9,7 @@ libc {
# s* # s*
setjmp; setjmp;
} }
GLIBC_2.1 { GLIBC_PRIVATE {
# helper functions # helper functions
__libc_longjmp; __libc_siglongjmp; __libc_longjmp; __libc_siglongjmp;
} }

View File

@ -1,10 +1,5 @@
libc { libc {
GLIBC_2.0 { 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 # functions used in other libraries
__connect; __send; __connect; __send;
@ -36,4 +31,10 @@ libc {
# Addition from P1003.1-200x # Addition from P1003.1-200x
sockatmark; 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;
}
} }

View File

@ -1,8 +1,7 @@
libc { libc {
GLIBC_2.0 { GLIBC_2.0 {
# global variables # global variables
_itoa_lower_digits; _itoa_upper_digits; _sys_errlist; _sys_nerr; _sys_errlist; _sys_nerr; _sys_siglist;
_sys_siglist;
# functions used in other libraries # functions used in other libraries
__printf_fp; __vfscanf; __printf_fp; __vfscanf;
@ -47,4 +46,7 @@ libc {
# t* # t*
tmpfile; tmpfile64; tmpfile; tmpfile64;
} }
GLIBC_PRIVATE {
# global variables
_itoa_lower_digits; _itoa_upper_digits;
} }

View File

@ -1,9 +1,5 @@
libc { libc {
GLIBC_2.0 { GLIBC_2.0 {
# functions which have an additional interface since they are
# are cancelable.
__libc_system;
# functions with required interface outside normal name space # functions with required interface outside normal name space
__xpg_basename; __xpg_basename;
@ -94,4 +90,9 @@ libc {
# used by new G++ ABI # used by new G++ ABI
__cxa_atexit; __cxa_finalize; __cxa_atexit; __cxa_finalize;
} }
GLIBC_PRIVATE {
# functions which have an additional interface since they are
# are cancelable.
__libc_system;
}
} }

View File

@ -110,7 +110,11 @@ libc {
svc_getreq_common; svc_getreq_poll; svc_max_pollfd; svc_pollfd; svc_getreq_common; svc_getreq_poll; svc_max_pollfd; svc_pollfd;
} }
GLIBC_2.2.3 { 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; __rpc_thread_svc_pollfd; __rpc_thread_svc_max_pollfd;
} }
GLIBC_PRIVATE {
# needed by libpthread.
__rpc_thread_destroy;
}
} }

View File

@ -1,5 +1,5 @@
ld { ld {
GLIBC_2.2 { GLIBC_PRIVATE {
# hppa specific functions in the dynamic linker, but used by libc.so. # hppa specific functions in the dynamic linker, but used by libc.so.
_dl_symbol_address; _dl_unmap; _dl_lookup_address; _dl_symbol_address; _dl_unmap; _dl_lookup_address;
_dl_function_address; _dl_function_address;

View File

@ -1,5 +1,5 @@
ld { ld {
GLIBC_2.2 { GLIBC_PRIVATE {
# ia64 specific functions in the dynamic linker, but used by libc.so. # ia64 specific functions in the dynamic linker, but used by libc.so.
_dl_symbol_address; _dl_unmap; _dl_lookup_address; _dl_symbol_address; _dl_unmap; _dl_lookup_address;
_dl_function_address; _dl_function_address;

View File

@ -1,5 +1,5 @@
libc { libc {
GLIBC_2.2.3 { GLIBC_PRIVATE {
__libm_frexp_4; __libm_frexp_4f; __libm_frexp_4l; __libm_error_support; __libm_frexp_4; __libm_frexp_4f; __libm_frexp_4l; __libm_error_support;
} }
} }

View File

@ -55,9 +55,6 @@ libc {
# functions used in inline functions or macros # functions used in inline functions or macros
__libc_sa_len; __libc_sa_len;
# functions used in other libraries
__syscall_rt_sigqueueinfo;
# Since we have new signals this structure changed. # Since we have new signals this structure changed.
_sys_siglist; sys_siglist; sys_sigabbrev; _sys_siglist; sys_siglist; sys_sigabbrev;
@ -84,8 +81,7 @@ libc {
} }
GLIBC_2.2 { GLIBC_2.2 {
# needed in other libraries. # needed in other libraries.
__endmntent; __getmntent_r; __setmntent; __statfs; __libc_sigaction; __endmntent; __getmntent_r; __setmntent; __statfs; __sysctl;
__sysctl;
# ipc ctl interface change. # ipc ctl interface change.
semctl; shmctl; msgctl; semctl; shmctl; msgctl;
@ -94,4 +90,11 @@ libc {
# p* # p*
pivot_root; pivot_root;
} }
GLIBC_PRIVATE {
# needed by libpthread.
__libc_sigaction;
# functions used in other libraries
__syscall_rt_sigqueueinfo;
}
} }

View File

@ -1,5 +1,5 @@
/* fxstat64 using old-style Unix fstat system call. /* 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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or 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 #endif
} }
#include <shlib-compat.h> #ifndef RTLD_STAT64
# include <shlib-compat.h>
versioned_symbol (libc, ___fxstat64, __fxstat64, GLIBC_2_2); 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) strong_alias (___fxstat64, __old__fxstat64)
compat_symbol (libc, __old__fxstat64, __fxstat64, GLIBC_2_1); compat_symbol (libc, __old__fxstat64, __fxstat64, GLIBC_2_1);
# endif
#else
strong_alias (___fxstat64, __fxstat64);
#endif #endif

View File

@ -9,7 +9,7 @@ libc {
vm86; vm86;
} }
GLIBC_2.1 { GLIBC_2.1 {
__modify_ldt; modify_ldt; modify_ldt;
} }
GLIBC_2.2 { GLIBC_2.2 {
# functions used in other libraries # functions used in other libraries
@ -33,4 +33,7 @@ libc {
# v* # v*
versionsort64; versionsort64;
} }
GLIBC_PRIVATE {
__modify_ldt;
}
} }

View File

@ -1,9 +1,5 @@
ld { ld {
GLIBC_2.2 { GLIBC_PRIVATE {
# global variables needed in the libc.
_dl_pagesize;
}
GLIBC_2.2.1 {
_dl_var_init; _dl_var_init;
} }
} }

View File

@ -1,5 +1,5 @@
/* lxstat64 using old-style Unix lstat system call. /* 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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or 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 #endif
} }
#include <shlib-compat.h> #ifndef RTLD_STAT64
# include <shlib-compat.h>
versioned_symbol (libc, ___lxstat64, __lxstat64, GLIBC_2_2); 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) strong_alias (___lxstat64, __old__lxstat64)
compat_symbol (libc, __old__lxstat64, __lxstat64, GLIBC_2_1); compat_symbol (libc, __old__lxstat64, __lxstat64, GLIBC_2_1);
# endif
#else
strong_alias (___lxstat64, __lxstat64);
#endif #endif

View File

@ -4,6 +4,9 @@ libc {
ioperm; iopl; ioperm; iopl;
__modify_ldt; modify_ldt; modify_ldt;
}
GLIBC_PRIVATE {
__modify_ldt;
} }
} }

View File

@ -1,5 +1,5 @@
/* xstat64 using old-style Unix stat system call. /* 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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or 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 #endif
} }
#include <shlib-compat.h> #ifndef RTLD_STAT64
# include <shlib-compat.h>
versioned_symbol (libc, ___xstat64, __xstat64, GLIBC_2_2); 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) strong_alias (___xstat64, __old__xstat64)
compat_symbol (libc, __old__xstat64, __xstat64, GLIBC_2_1); compat_symbol (libc, __old__xstat64, __xstat64, GLIBC_2_1);
# endif
#else
strong_alias (___xstat64, __xstat64);
#endif #endif

View File

@ -1,9 +1,5 @@
libc { libc {
GLIBC_2.0 { GLIBC_2.0 {
# functions which have an additional interface since they are
# are cancelable.
__libc_tcdrain;
# c* # c*
cfgetispeed; cfgetospeed; cfmakeraw; cfsetispeed; cfsetospeed; cfsetspeed; cfgetispeed; cfgetospeed; cfmakeraw; cfsetispeed; cfsetospeed; cfsetspeed;
@ -15,4 +11,9 @@ libc {
# t* # t*
tcgetsid; tcgetsid;
} }
GLIBC_PRIVATE {
# functions which have an additional interface since they are
# are cancelable.
__libc_tcdrain;
}
} }