diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-07-02 22:51:40 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-07-02 22:51:40 +0000 |
commit | b0b67c47a5812eae16b0ae3b0a8eeca5a4be9528 (patch) | |
tree | 36a758869687c8c769a896ccfeac99cc1efffee8 | |
parent | 4c223a7cf65bead4a78da1495bebd2df020b9722 (diff) | |
download | glibc-b0b67c47a5812eae16b0ae3b0a8eeca5a4be9528.tar glibc-b0b67c47a5812eae16b0ae3b0a8eeca5a4be9528.tar.gz glibc-b0b67c47a5812eae16b0ae3b0a8eeca5a4be9528.tar.bz2 glibc-b0b67c47a5812eae16b0ae3b0a8eeca5a4be9528.zip |
Update.
1998-07-02 21:51 Ulrich Drepper <drepper@cygnus.com>
* Makeconfig: Define list of subdirs as all-subdirs and make subdirs
a copy.
* Makefile: Add rules to generate map files.
(distribute): Remove libc.map, add Versions.def and versions.awk.
* Makerules: Change rules to find map files on common-objpfx.
* elf/Makefile: Likewise.
* md5-crypt/Makefile: Likewise.
* nis/Makefile (libnsl-map): Remove.
* Versions.def: New file.
* versions.awk: New file.
* argp/Versions: New file.
* assert/Versions: New file.
* catgets/Versions: New file.
* csu/Versions: New file.
* ctype/Versions: New file.
* db/Versions: New file.
* debug/Versions: New file.
* dirent/Versions: New file.
* elf/Versions: New file.
* gmon/Versions: New file.
* grp/Versions: New file.
* hesiod/Versions: New file.
* hurd/Versions: New file.
* iconv/Versions: New file.
* inet/Versions: New file.
* intl/Versions: New file.
* io/Versions: New file.
* libio/Versions: New file.
* linuxthreads/Versions: New file.
* locale/Versions: New file.
* login/Versions: New file.
* malloc/Versions: New file.
* math/Versions: New file.
* md5-crypt/Versions: New file.
* misc/Versions: New file.
* nis/Versions: New file.
* nss/Versions: New file.
* posix/Versions: New file.
* pwd/Versions: New file.
* resolv/Versions: New file.
* resource/Versions: New file.
* rt/Versions: New file.
* setjmp/Versions: New file.
* shadow/Versions: New file.
* signal/Versions: New file.
* socket/Versions: New file.
* stdio/Versions: New file.
* stdio-common/Versions: New file.
* stdlib/Versions: New file.
* streams/Versions: New file.
* string/Versions: New file.
* sunrpc/Versions: New file.
* sysdeps/alpha/Versions: New file.
* sysdeps/alpha/fpu/Versions: New file.
* sysdeps/i386/Versions: New file.
* sysdeps/sparc/Versions: New file.
* sysdeps/unix/sysv/Versions: New file.
* sysdeps/unix/sysv/linux/Versions: New file.
* sysdeps/unix/sysv/linux/alpha/Versions: New file.
* sysdeps/unix/sysv/linux/i386/Versions: New file.
* sysdeps/unix/sysv/linux/mips/Versions: New file.
* sysvipc/Versions: New file.
* termios/Versions: New file.
* time/Versions: New file.
* wcsmbs/Versions: New file.
* wctype/Versions: New file.
* libc.map: Removed.
* db/libdb.map: Removed.
* elf/libdl.map: Removed.
* hesiod/libnss_hesiod.map: Removed.
* hurd/libhurduser.map: Removed.
* hurd/libmachuser.map: Removed.
* linuxthreads/libpthread.map: Removed.
* locale/libBrokenLocale.map: Removed.
* login/libutil.map: Removed.
* math/libm.map: Removed.
* md5-crypt/libcrypt.map: Removed.
* nis/libnsl.map: Removed.
* nis/libnsl_compat.map: Removed.
* nis/libnss_nis.map: Removed.
* nis/libnss_nisplus.map: Removed.
* nss/libnss_db.map: Removed.
* nss/libnss_files.map: Removed.
* resolv/libnss_dns.map: Removed.
* resolv/libresolv.map: Removed.
* rt/librt.map: Removed.
* elf/dl-load.c (fillin_rpath): Fix test for trusted directory.
Fix typos.
* elf/rtld.c (process_dl_debug): Recognize 'all'.
(process_envvars): LD_BIND_NOW must be followed by y, Y, or 1.
* sysdeps/generic/elf/backtracesyms.c: Allocate string memory of
correct size.
* sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path): Fix typo
in comment.
-rw-r--r-- | ChangeLog | 101 | ||||
-rw-r--r-- | Makeconfig | 12 | ||||
-rw-r--r-- | Makefile | 26 | ||||
-rw-r--r-- | Makerules | 8 | ||||
-rw-r--r-- | Versions.def | 66 | ||||
-rw-r--r-- | argp/Versions | 11 | ||||
-rw-r--r-- | assert/Versions | 6 | ||||
-rw-r--r-- | catgets/Versions | 9 | ||||
-rw-r--r-- | csu/Versions | 29 | ||||
-rw-r--r-- | ctype/Versions | 13 | ||||
-rw-r--r-- | db/Versions (renamed from db/libdb.map) | 10 | ||||
-rw-r--r-- | debug/Versions | 9 | ||||
-rw-r--r-- | dirent/Versions | 40 | ||||
-rw-r--r-- | elf/Makefile | 2 | ||||
-rw-r--r-- | elf/Versions | 35 | ||||
-rw-r--r-- | elf/dl-load.c | 19 | ||||
-rw-r--r-- | elf/libdl.map | 7 | ||||
-rw-r--r-- | elf/rtld.c | 20 | ||||
-rw-r--r-- | gmon/Versions | 15 | ||||
-rw-r--r-- | grp/Versions | 19 | ||||
-rw-r--r-- | hesiod/Versions (renamed from hesiod/libnss_hesiod.map) | 10 | ||||
-rw-r--r-- | hurd/Versions (renamed from hurd/libhurduser.map) | 153 | ||||
-rw-r--r-- | hurd/libmachuser.map | 113 | ||||
-rw-r--r-- | iconv/Versions | 9 | ||||
-rw-r--r-- | inet/Versions | 58 | ||||
-rw-r--r-- | intl/Versions | 21 | ||||
-rw-r--r-- | io/Versions | 83 | ||||
-rw-r--r-- | libc.map | 629 | ||||
-rw-r--r-- | libio/Versions | 103 | ||||
-rw-r--r-- | linuxthreads/Versions (renamed from linuxthreads/libpthread.map) | 35 | ||||
-rw-r--r-- | locale/Versions | 29 | ||||
-rw-r--r-- | locale/libBrokenLocale.map | 7 | ||||
-rw-r--r-- | login/Versions | 41 | ||||
-rw-r--r-- | login/libutil.map | 7 | ||||
-rw-r--r-- | malloc/Versions | 47 | ||||
-rw-r--r-- | math/Versions (renamed from math/libm.map) | 49 | ||||
-rw-r--r-- | md5-crypt/Makefile | 2 | ||||
-rw-r--r-- | md5-crypt/Versions (renamed from md5-crypt/libcrypt.map) | 10 | ||||
-rw-r--r-- | misc/Versions | 102 | ||||
-rw-r--r-- | nis/Makefile | 1 | ||||
-rw-r--r-- | nis/Versions | 121 | ||||
-rw-r--r-- | nis/libnsl.map | 62 | ||||
-rw-r--r-- | nis/libnss_compat.map | 11 | ||||
-rw-r--r-- | nis/libnss_nis.map | 25 | ||||
-rw-r--r-- | nis/libnss_nisplus.map | 32 | ||||
-rw-r--r-- | nss/Versions (renamed from nss/libnss_files.map) | 41 | ||||
-rw-r--r-- | nss/libnss_db.map | 20 | ||||
-rw-r--r-- | posix/Versions | 80 | ||||
-rw-r--r-- | pwd/Versions | 15 | ||||
-rw-r--r-- | resolv/Versions (renamed from resolv/libresolv.map) | 38 | ||||
-rw-r--r-- | resolv/libnss_dns.map | 9 | ||||
-rw-r--r-- | resource/Versions | 25 | ||||
-rw-r--r-- | rt/Versions (renamed from rt/librt.map) | 11 | ||||
-rw-r--r-- | setjmp/Versions | 16 | ||||
-rw-r--r-- | shadow/Versions | 27 | ||||
-rw-r--r-- | signal/Versions | 44 | ||||
-rw-r--r-- | socket/Versions | 35 | ||||
-rw-r--r-- | stdio-common/Versions | 35 | ||||
-rw-r--r-- | stdio/Versions | 6 | ||||
-rw-r--r-- | stdlib/Versions | 86 | ||||
-rw-r--r-- | streams/Versions | 15 | ||||
-rw-r--r-- | string/Versions | 53 | ||||
-rw-r--r-- | sunrpc/Versions | 99 | ||||
-rw-r--r-- | sysdeps/alpha/Versions | 7 | ||||
-rw-r--r-- | sysdeps/alpha/fpu/Versions | 6 | ||||
-rw-r--r-- | sysdeps/generic/elf/backtracesyms.c | 4 | ||||
-rw-r--r-- | sysdeps/i386/Versions | 6 | ||||
-rw-r--r-- | sysdeps/sparc/Versions | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/Versions | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/Versions | 76 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/Versions | 49 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/getsysstats.c | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/Versions | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/Versions | 9 | ||||
-rw-r--r-- | sysvipc/Versions | 12 | ||||
-rw-r--r-- | termios/Versions | 18 | ||||
-rw-r--r-- | time/Versions | 52 | ||||
-rw-r--r-- | versions.awk | 105 | ||||
-rw-r--r-- | wcsmbs/Versions | 23 | ||||
-rw-r--r-- | wctype/Versions | 20 |
80 files changed, 2260 insertions, 1020 deletions
@@ -1,5 +1,106 @@ +1998-07-02 21:51 Ulrich Drepper <drepper@cygnus.com> + + * Makeconfig: Define list of subdirs as all-subdirs and make subdirs + a copy. + * Makefile: Add rules to generate map files. + (distribute): Remove libc.map, add Versions.def and versions.awk. + * Makerules: Change rules to find map files on common-objpfx. + * elf/Makefile: Likewise. + * md5-crypt/Makefile: Likewise. + * nis/Makefile (libnsl-map): Remove. + * Versions.def: New file. + * versions.awk: New file. + * argp/Versions: New file. + * assert/Versions: New file. + * catgets/Versions: New file. + * csu/Versions: New file. + * ctype/Versions: New file. + * db/Versions: New file. + * debug/Versions: New file. + * dirent/Versions: New file. + * elf/Versions: New file. + * gmon/Versions: New file. + * grp/Versions: New file. + * hesiod/Versions: New file. + * hurd/Versions: New file. + * iconv/Versions: New file. + * inet/Versions: New file. + * intl/Versions: New file. + * io/Versions: New file. + * libio/Versions: New file. + * linuxthreads/Versions: New file. + * locale/Versions: New file. + * login/Versions: New file. + * malloc/Versions: New file. + * math/Versions: New file. + * md5-crypt/Versions: New file. + * misc/Versions: New file. + * nis/Versions: New file. + * nss/Versions: New file. + * posix/Versions: New file. + * pwd/Versions: New file. + * resolv/Versions: New file. + * resource/Versions: New file. + * rt/Versions: New file. + * setjmp/Versions: New file. + * shadow/Versions: New file. + * signal/Versions: New file. + * socket/Versions: New file. + * stdio/Versions: New file. + * stdio-common/Versions: New file. + * stdlib/Versions: New file. + * streams/Versions: New file. + * string/Versions: New file. + * sunrpc/Versions: New file. + * sysdeps/alpha/Versions: New file. + * sysdeps/alpha/fpu/Versions: New file. + * sysdeps/i386/Versions: New file. + * sysdeps/sparc/Versions: New file. + * sysdeps/unix/sysv/Versions: New file. + * sysdeps/unix/sysv/linux/Versions: New file. + * sysdeps/unix/sysv/linux/alpha/Versions: New file. + * sysdeps/unix/sysv/linux/i386/Versions: New file. + * sysdeps/unix/sysv/linux/mips/Versions: New file. + * sysvipc/Versions: New file. + * termios/Versions: New file. + * time/Versions: New file. + * wcsmbs/Versions: New file. + * wctype/Versions: New file. + * libc.map: Removed. + * db/libdb.map: Removed. + * elf/libdl.map: Removed. + * hesiod/libnss_hesiod.map: Removed. + * hurd/libhurduser.map: Removed. + * hurd/libmachuser.map: Removed. + * linuxthreads/libpthread.map: Removed. + * locale/libBrokenLocale.map: Removed. + * login/libutil.map: Removed. + * math/libm.map: Removed. + * md5-crypt/libcrypt.map: Removed. + * nis/libnsl.map: Removed. + * nis/libnsl_compat.map: Removed. + * nis/libnss_nis.map: Removed. + * nis/libnss_nisplus.map: Removed. + * nss/libnss_db.map: Removed. + * nss/libnss_files.map: Removed. + * resolv/libnss_dns.map: Removed. + * resolv/libresolv.map: Removed. + * rt/librt.map: Removed. + + * elf/dl-load.c (fillin_rpath): Fix test for trusted directory. + Fix typos. + + * elf/rtld.c (process_dl_debug): Recognize 'all'. + (process_envvars): LD_BIND_NOW must be followed by y, Y, or 1. + + * sysdeps/generic/elf/backtracesyms.c: Allocate string memory of + correct size. + 1998-07-01 Ulrich Drepper <drepper@cygnus.com> + * sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path): Fix typo + in comment. + * nscd/nscd.c: Include unistd.h. 1998-07-01 09:32 Ulrich Drepper <drepper@cygnus.com> diff --git a/Makeconfig b/Makeconfig index 137e6c10e1..ee1cc6e79b 100644 --- a/Makeconfig +++ b/Makeconfig @@ -756,11 +756,13 @@ sysdep-subdirs := $(subst $(\n), ,$(sysdep-subdirs)) endif # These are the subdirectories containing the library source. -subdirs = csu assert ctype db2 locale intl catgets math setjmp signal stdlib \ - stdio-common $(stdio) malloc string wcsmbs time dirent grp pwd \ - posix io termios resource misc socket sysvipc gmon gnulib iconv \ - iconvdata wctype manual shadow md5-crypt po argp $(add-ons) nss \ - localedata timezone rt debug $(sysdep-subdirs) $(binfmt-subdir) +all-subdirs = csu assert ctype db2 locale intl catgets math setjmp signal \ + stdlib stdio-common $(stdio) malloc string wcsmbs time dirent \ + grp pwd posix io termios resource misc socket sysvipc gmon \ + gnulib iconv iconvdata wctype manual shadow md5-crypt po argp \ + $(add-ons) nss localedata timezone rt debug $(sysdep-subdirs) \ + $(binfmt-subdir) +subdirs = $(all-subdirs) # The mach and hurd subdirectories have many generated header files which # much of the rest of the library depends on, so it is best to build them @@ -77,6 +77,10 @@ ifeq (yes,$(build-shared)) install-others += $(inst_includedir)/gnu/lib-names.h endif +ifeq ($(versioning),yes) +lib-noranlib: $(common-objpfx)sysd-versions +endif + include Makerules ifeq ($(build-programs),yes) @@ -241,12 +245,12 @@ parent_echo-distinfo: distribute := README README.libm INSTALL FAQ FAQ.in NOTES NEWS BUGS \ PROJECTS COPYING.LIB COPYING ChangeLog ChangeLog.[0-9] \ Makefile Makeconfig Makerules Rules Make-dist MakeTAGS \ - extra-lib.mk o-iterator.mk libc.map configure \ - configure.in aclocal.m4 config.h.in config.make.in \ - config-name.in Makefile.in sysdep.h set-hooks.h \ - libc-symbols.h version.h shlib-versions rpm/Makefile \ - rpm/template rpm/rpmrc glibcbug.in abi-tags stub-tag.h \ - test-skeleton.c include/des.h \ + extra-lib.mk o-iterator.mk configure configure.in \ + aclocal.m4 config.h.in config.make.in config-name.in \ + Makefile.in sysdep.h set-hooks.h libc-symbols.h \ + version.h shlib-versions rpm/Makefile rpm/template \ + rpm/rpmrc glibcbug.in abi-tags stub-tag.h \ + test-skeleton.c include/des.h Versions.def versions.awk \ $(addprefix scripts/, \ rellns-sh config.sub config.guess \ mkinstalldirs move-if-change install-sh \ @@ -311,3 +315,13 @@ headers2_0 := __math.h bytesex.h confname.h direntry.h elfclass.h \ .PHONY: remove-old-headers remove-old-headers: rm -f $(addprefix $(inst_includedir)/, $(headers2_0)) + +# Generate version maps. +ifeq ($(versioning),yes) +$(common-objpfx)sysd-versions: versions.awk \ + $(wildcard $(all-subdirs:%=%/Versions)) \ + $(wildcard $(+sysdep_dirs:%=%/Versions)) + $(AWK) -v 'buildroot=$(common-objpfx)' -f $^ + rm -f $@ + echo > $@ +endif @@ -325,8 +325,8 @@ ifeq (yes,$(build-shared)) # Reference map file only when versioning is selected and a map file name # is given. ifeq ($(versioning),yes) -map-file = $(firstword $(wildcard \ - $($(@F:.so=-map)) $(@F:.so=.map) $(..)$(@F:.so=.map))) +map-file = $(firstword $(wildcard $($(@F:.so=-map)) \ + $(common-objpfx)$(@F:.so=.map))) load-map-file = $(map-file:%=-Wl,--version-script=%) endif @@ -345,7 +345,7 @@ $(LINK.o) -shared -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS) \ $(LDFLAGS.so) $(LDFLAGS-$(@F:lib%.so=%).so) \ -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link) \ -Wl,--whole-archive \ - $(filter-out $(map-file) $(+preinit) $(+postinit),$^) \ + $(filter-out $(map-file) $(@F:.so=.map) $(+preinit) $(+postinit),$^) \ $(no-whole-archive) $(LDLIBS-$(@F:lib%.so=%).so) endef @@ -386,7 +386,7 @@ $(common-objpfx)libc.so: $(elfobjdir)/soinit.os \ $(common-objpfx)libc_pic.os \ $(elfobjdir)/sofini.os \ $(elfobjdir)/interp.os $(elfobjdir)/ld.so \ - $(..)libc.map + $(common-objpfx)libc.map $(build-shlib) common-generated += libc.so libc_pic.os ifdef libc.so-version diff --git a/Versions.def b/Versions.def new file mode 100644 index 0000000000..233119bf14 --- /dev/null +++ b/Versions.def @@ -0,0 +1,66 @@ +libBrokenLocale { + GLIBC_2.0 +} +libc { + GLIBC_2.0 + GLIBC_2.1 GLIBC_2.0 +} +libcrypt { + GLIBC_2.0 +} +libdb { + GLIBC_2.0 +} +libdl { + GLIBC_2.0 + GLIBC_2.1 GLIBC_2.0 +} +libhurduser { + GLIBC_2.0 +} +libm { + GLIBC_2.0 + GLIBC_2.1 GLIBC_2.0 +} +libmachuser { + GLIBC_2.0 +} +libnsl { + GLIBC_2.0 + GLIBC_2.1 GLIBC_2.0 +} +libnss_compat { + GLIBC_2.0 +} +libnss_db { + GLIBC_2.0 +} +libnss_dns { + GLIBC_2.0 +} +libnss_files { + GLIBC_2.0 + GLIBC_2.1 GLIBC_2.0 +} +libnss_hesiod { + GLIBC_2.1 +} +libnss_nis { + GLIBC_2.0 +} +libnss_nisplus { + GLIBC_2.0 +} +libpthread { + GLIBC_2.0 + GLIBC_2.1 GLIBC_2.0 +} +libresolv { + GLIBC_2.0 +} +librt { + GLIBC_2.1 +} +libutil { + GLIBC_2.0 +} diff --git a/argp/Versions b/argp/Versions new file mode 100644 index 0000000000..bf13642066 --- /dev/null +++ b/argp/Versions @@ -0,0 +1,11 @@ +libc { + GLIBC_2.1 { + # variables in normal name space + argp_err_exit_status; argp_program_bug_address; argp_program_version; + argp_program_version_hook; + + # a* + argp_error; argp_failure; argp_help; argp_parse; argp_state_help; + argp_usage; + } +} diff --git a/assert/Versions b/assert/Versions new file mode 100644 index 0000000000..0761373f0e --- /dev/null +++ b/assert/Versions @@ -0,0 +1,6 @@ +libc { + GLIBC_2.0 { + # functions used in inline functions or macros + __assert_fail; __assert_perror_fail; + } +} diff --git a/catgets/Versions b/catgets/Versions new file mode 100644 index 0000000000..f225be2634 --- /dev/null +++ b/catgets/Versions @@ -0,0 +1,9 @@ +libc { + GLIBC_2.0 { + # functions with required interface outside normal name space + __open_catalog; + + # c* + catclose; catgets; catopen; + } +} diff --git a/csu/Versions b/csu/Versions new file mode 100644 index 0000000000..5cae3c47d0 --- /dev/null +++ b/csu/Versions @@ -0,0 +1,29 @@ +libc { + GLIBC_2.0 { + # global variables + _errno; __environ; _environ; + + # helper functions + __errno_location; __libc_init_first; __libc_start_main; + + # Exception handling support functions from libgcc + __register_frame; __register_frame_table; __deregister_frame; + __register_frame_info; __deregister_frame_info; + + # variables in normal name space + environ; errno; + + # b* + brk; + + # s* + sbrk; + } + GLIBC_2.1 { + # global variables + __libc_stack_end; + + # New special glibc functions. + gnu_get_libc_release; gnu_get_libc_version; + } +} diff --git a/ctype/Versions b/ctype/Versions new file mode 100644 index 0000000000..6e7ed9b345 --- /dev/null +++ b/ctype/Versions @@ -0,0 +1,13 @@ +libc { + GLIBC_2.0 { + # global variables + __ctype_b; __ctype_tolower; __ctype_toupper; + + # i* + isalnum; isalpha; isascii; isblank; iscntrl; isdigit; isgraph; islower; + isprint; ispunct; isspace; isupper; isxdigit; + + # t* + toascii; tolower; toupper; + } +} diff --git a/db/libdb.map b/db/Versions index 01414a1708..65c1ae7586 100644 --- a/db/libdb.map +++ b/db/Versions @@ -1,12 +1,10 @@ -GLIBC_2.0 { - global: +libdb { + GLIBC_2.0 { # the real DB entry point. dbopen; __dbopen; # The compatibility functions. dbm_clearerr; dbm_close; dbm_delete; dbm_dirfno; dbm_error; dbm_fetch; dbm_firstkey; dbm_nextkey; dbm_open; dbm_store; - - local: - *; -}; + } +} diff --git a/debug/Versions b/debug/Versions new file mode 100644 index 0000000000..28518d5084 --- /dev/null +++ b/debug/Versions @@ -0,0 +1,9 @@ +libc { + GLIBC_2.1 { + # functions used in other libraries + __backtrace; __backtrace_symbols; + + # b* + backtrace; backtrace_symbols; + } +} diff --git a/dirent/Versions b/dirent/Versions new file mode 100644 index 0000000000..aa7693e8be --- /dev/null +++ b/dirent/Versions @@ -0,0 +1,40 @@ +libc { + GLIBC_2.0 { + # a* + alphasort; + + # c* + closedir; + + # d* + dirfd; + + # g* + getdirentries; + + # o* + opendir; + + # r* + readdir; readdir_r; rewinddir; + + # s* + scandir; seekdir; + + # t* + telldir; + } + GLIBC_2.1 { + # a* + alphasort64; + + # r* + readdir64; readdir64_r; + + # s* + scandir64; + + # v* + versionsort; versionsort64; + } +} diff --git a/elf/Makefile b/elf/Makefile index dedc3d5074..243761cd04 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -35,7 +35,7 @@ elide-routines.os = $(dl-routines) dl-support enbl-secure # 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-minimal -ld-map = $(..)libc.map +ld-map = $(common-objpfx)libc.map distribute = $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \ dl-hash.h soinit.c sofini.c ldd.sh.in ldd.bash.in eval.c \ genrtldtbl.awk atomicity.h dl-procinfo.h ldsodefs.h \ diff --git a/elf/Versions b/elf/Versions new file mode 100644 index 0000000000..d908c59fd4 --- /dev/null +++ b/elf/Versions @@ -0,0 +1,35 @@ +libc { + GLIBC_2.0 { + # global variables + _dl_debug_impcalls; _dl_debug_fd; + + # functions used in other libraries + _dl_open; _dl_close; _dl_addr; _dl_sysdep_output; _dl_debug_message; + + # 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_default_scope; + _dl_global_scope_end; _dl_init_next; _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_global_scope; _dl_lookup_symbol_skip; + _dl_lookup_versioned_symbol; _dl_lookup_versioned_symbol_skip; + } + GLIBC_2.1 { + # global variables + _dl_profile; _dl_profile_map; _dl_profile_output; _dl_start_profile; + + # functions used in other libraries + _dl_mcount; _dl_mcount_wrapper; + } +} + +libdl { + GLIBC_2.0 { + dladdr; dlclose; dlerror; dlopen; dlsym; + } + GLIBC_2.1 { + dlvsym; + } +} diff --git a/elf/dl-load.c b/elf/dl-load.c index ad981bc238..b14e52f101 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -204,13 +204,14 @@ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep, { const char **trun = trusted; - /* All trusted directory must be complete name. */ + /* All trusted directories must be complete names. */ if (cp[0] != '/') continue; while (*trun != NULL && (memcmp (*trun, cp, len) != 0 - || ((*trun)[len] != '/' && (*trun)[len + 1] != '\0'))) + || (*trun)[len] != '/' + || (*trun)[len + 1] != '\0')) ++trun; if (*trun == NULL) @@ -392,7 +393,7 @@ _dl_init_paths (const char *llp) if (rtld_search_dirs[0] == NULL) _dl_signal_error (ENOMEM, NULL, "cannot create cache for search path"); - pelem = all_dirs= rtld_search_dirs[0]; + pelem = all_dirs = rtld_search_dirs[0]; for (strp = system_dirs; *strp != NULL; ++strp, pelem += round_size) { size_t cnt; @@ -904,12 +905,13 @@ open_path (const char *name, size_t namelen, int preloaded, return -1; } - buf = __alloca (max_dirnamelen + max_capstrlen + namelen + 1); + buf = __alloca (max_dirnamelen + max_capstrlen + namelen); do { struct r_search_path_elem *this_dir = *dirs; size_t buflen = 0; size_t cnt; + char *edp; /* If we are debugging the search for libraries print the path now if it hasn't happened now. */ @@ -919,6 +921,7 @@ open_path (const char *name, size_t namelen, int preloaded, print_search_path (dirs, current_what, this_dir->where); } + edp = (char *) __mempcpy (buf, this_dir->dirname, this_dir->dirnamelen); for (cnt = 0; fd == -1 && cnt < ncapstr; ++cnt) { /* Skip this directory if we know it does not exist. */ @@ -926,8 +929,7 @@ open_path (const char *name, size_t namelen, int preloaded, continue; buflen = - ((char *) __mempcpy (__mempcpy (__mempcpy (buf, this_dir->dirname, - this_dir->dirnamelen), + ((char *) __mempcpy (__mempcpy (edp, capstr[cnt].str, capstr[cnt].len), name, namelen) - buf); @@ -946,12 +948,11 @@ open_path (const char *name, size_t namelen, int preloaded, test whether there is any directory at all. */ struct stat st; - buf[this_dir->dirnamelen - + MAX (capstr[cnt].len - 1, 0)] = '\0'; + buf[buflen - namelen - 1] = '\0'; if (__xstat (_STAT_VER, buf, &st) != 0 || ! S_ISDIR (st.st_mode)) - /* The directory does not exist ot it is no directory. */ + /* The directory does not exist or it is no directory. */ this_dir->status[cnt] = nonexisting; else this_dir->status[cnt] = existing; diff --git a/elf/libdl.map b/elf/libdl.map deleted file mode 100644 index 4bd2145a47..0000000000 --- a/elf/libdl.map +++ /dev/null @@ -1,7 +0,0 @@ -GLIBC_2.0 { - global: - dladdr; dlclose; dlerror; dlopen; dlsym; dlvsym; - - local: - *; -}; diff --git a/elf/rtld.c b/elf/rtld.c index 5bd4b7cd97..bf4a142dba 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -968,6 +968,22 @@ process_dl_debug (const char *dl_debug) switch (len) { + case 3: + /* This option is not documented since it is not generally + useful. */ + if (memcmp (dl_debug, "all", 3) == 0) + { + _dl_debug_libs = 1; + _dl_debug_impcalls = 1; + _dl_debug_reloc = 1; + _dl_debug_files = 1; + _dl_debug_symbols = 1; + _dl_debug_bindings = 1; + _dl_debug_versions = 1; + any_debug = 1; + } + break; + case 4: if (memcmp (dl_debug, "help", 4) == 0) { @@ -1117,7 +1133,9 @@ process_envvars (enum mode *modep, int *lazyp) case 8: /* Do we bind early? */ - if (memcmp (&envline[3], "BIND_NOW", 8) == 0) + if (memcmp (&envline[3], "BIND_NOW", 8) == 0 + && (envline[12] == '1' || envline[12] == 'y' + || envline[12] == 'Y')) bind_now = 1; break; diff --git a/gmon/Versions b/gmon/Versions new file mode 100644 index 0000000000..d546690b8e --- /dev/null +++ b/gmon/Versions @@ -0,0 +1,15 @@ +libc { + GLIBC_2.0 { + # functions with special/multiple interfaces + _mcount; + + # Profiling support + __monstartup; _mcleanup; __profile_frequency; + + # m* + moncontrol; monstartup; + + # p* + profil; profil_counter; + } +} diff --git a/grp/Versions b/grp/Versions new file mode 100644 index 0000000000..1e13e5574c --- /dev/null +++ b/grp/Versions @@ -0,0 +1,19 @@ +libc { + GLIBC_2.0 { + # e* + endgrent; + + # f* + fgetgrent; fgetgrent_r; + + # g* + getgrent; getgrent_r; getgrgid; getgrgid_r; getgrnam; getgrnam_r; + getgroups; + + # i* + initgroups; + + # s* + setgrent; setgroups; + } +} diff --git a/hesiod/libnss_hesiod.map b/hesiod/Versions index d05ad373a8..eeb0d576a5 100644 --- a/hesiod/libnss_hesiod.map +++ b/hesiod/Versions @@ -1,12 +1,10 @@ -GLIBC_2.1 { - global: +libnss_hesiod { + GLIBC_2.1 { _nss_hesiod_setpwent; _nss_hesiod_endpwent; _nss_hesiod_getpwnam_r; _nss_hesiod_getpwuid; _nss_hesiod_setgrent; _nss_hesiod_endgrent; _nss_hesiod_getgrnam_r; _nss_hesiod_getgrgid; _nss_hesiod_setservent; _nss_hesiod_endservent; _nss_hesiod_getservbyname_r; - - local: - *; -}; + } +} diff --git a/hurd/libhurduser.map b/hurd/Versions index 005b397f2c..5b4ab6179c 100644 --- a/hurd/libhurduser.map +++ b/hurd/Versions @@ -1,6 +1,42 @@ -GLIBC_2.0 { - global: +libc { + GLIBC_2.0 { + # Hurd-specific variables + __hurd_sigthread_stack_base; __hurd_sigthread_stack_end; + __hurd_sigthread_variables; + __hurd_threadvar_stack_mask; __hurd_threadvar_stack_offset; + # Internal functions referenced by libmachuser and libhurduser. + __mach_msg; + __mig_allocate; __mig_deallocate; + __mig_get_reply_port; __mig_put_reply_port; __mig_dealloc_reply_port; + _S_catch_exception_raise; + _S_msg_add_auth; _S_msg_del_auth; + _S_msg_describe_ports; + _S_msg_get_dtable; _S_msg_set_dtable; + _S_msg_get_env_variable; _S_msg_set_env_variable; + _S_msg_get_environment; _S_msg_set_environment; + _S_msg_get_fd; _S_msg_set_fd; + _S_msg_get_init_int; _S_msg_set_init_int; + _S_msg_get_init_ints; _S_msg_set_init_ints; + _S_msg_get_init_port; _S_msg_set_init_port; + _S_msg_get_init_ports; _S_msg_set_init_ports; + _S_msg_proc_newids; _S_msg_report_wait; + _S_msg_sig_post; _S_msg_sig_post_untraced; + _hurd_intr_rpc_mach_msg; _hurdsig_fault_catch_exception_raise; + + # Placeholders for the Hurd libthreads implementation. + cthread_getspecific; cthread_keycreate; cthread_setspecific; + __libc_getspecific; + + # Function versions of Hurd macros. + __mutex_init; __mutex_trylock; + __mutex_lock; __mutex_unlock; + __mutex_lock_solid; __mutex_unlock_solid; + } +} + +libhurduser { + GLIBC_2.0 { # These functions are used internally by libc. _S_msg_server; __auth_getids; __auth_makeauth; __auth_user_authenticate; __crash_dump_task; __dir_link; @@ -149,7 +185,114 @@ GLIBC_2.0 { tioctl_tiocsetd; tioctl_tiocsig; tioctl_tiocspgrp; tioctl_tiocstart; tioctl_tiocsti; tioctl_tiocstop; tioctl_tiocswinsz; tioctl_tiocucntl; + } +} +libmachuser { + GLIBC_2.0 { + # These functions are used internally by libc. + _S_exc_server; __host_adjust_time; __host_get_time; __host_info; + __host_set_time; __mach_port_allocate_name_rpc; + __mach_port_allocate_rpc; __mach_port_deallocate_rpc; + __mach_port_destroy; __mach_port_extract_right; + __mach_port_get_refs; __mach_port_insert_right_rpc; + __mach_port_mod_refs; __mach_port_move_member; __mach_port_names; + __mach_port_set_qlimit; __task_create_rpc; + __task_disable_pc_sampling; __task_enable_pc_sampling; + __task_get_special_port; __task_priority; __task_resume; + __task_set_special_port_rpc; __task_suspend_rpc; + __task_terminate_rpc; __task_threads; __thread_abort; + __thread_create; __thread_depress_abort_rpc; __thread_get_state; + __thread_resume; __thread_set_special_port; __thread_set_state; + __thread_suspend; __thread_terminate; __vm_allocate_rpc; + __vm_deallocate_rpc; __vm_map_rpc; __vm_protect; __vm_read; + __vm_region; __vm_statistics; __vm_write; + + # functions in normal name space + # Please keep them sorted by name! + + # d* + default_pager_info; default_pager_object_create; + default_pager_object_pages; default_pager_objects; + default_pager_paging_file; default_pager_register_fileserver; + device_close; device_get_status; device_map; device_open; + device_open_request; device_read; device_read_inband; + device_read_request; device_read_request_inband; device_set_filter; + device_set_status; device_write; device_write_inband; + device_write_request; device_write_request_inband; + dp_helper_paging_space; + + # e* + exception_raise; + + # h* + host_adjust_time; host_get_boot_info; host_get_time; host_info; + host_kernel_version; host_processor_set_priv; host_processor_sets; + host_processors; host_reboot; host_set_time; + + # m* + mach_port_allocate_name_rpc; mach_port_allocate_rpc; + mach_port_deallocate_rpc; mach_port_destroy; + mach_port_extract_right; mach_port_get_receive_status; + mach_port_get_refs; mach_port_get_set_status; + mach_port_insert_right_rpc; mach_port_mod_refs; + mach_port_move_member; mach_port_names; mach_port_rename; + mach_port_request_notification; mach_port_set_mscount; + mach_port_set_qlimit; mach_port_set_seqno; mach_port_type; + mach_ports_lookup; mach_ports_register; + memory_object_change_attributes; memory_object_change_completed; + memory_object_copy; memory_object_create; + memory_object_data_error; memory_object_data_initialize; + memory_object_data_provided; memory_object_data_request; + memory_object_data_return; memory_object_data_supply; + memory_object_data_unavailable; memory_object_data_unlock; + memory_object_data_write; memory_object_destroy; + memory_object_get_attributes; memory_object_init; + memory_object_lock_completed; memory_object_lock_request; + memory_object_ready; memory_object_set_attributes; + memory_object_supply_completed; memory_object_terminate; + + # o* + old_mach_port_get_receive_status; + + # p* + processor_assign; processor_control; processor_exit; + processor_get_assignment; processor_info; processor_set_create; + processor_set_default; processor_set_destroy; processor_set_info; + processor_set_max_priority; processor_set_policy_disable; + processor_set_policy_enable; processor_set_tasks; + processor_set_threads; processor_start; + + # t* + task_assign; task_assign_default; task_create_rpc; + task_disable_pc_sampling; task_enable_pc_sampling; + task_get_assignment; task_get_emulation_vector; + task_get_sampled_pcs; task_get_special_port; task_info; + task_priority; task_ras_control; task_resume; task_set_emulation; + task_set_emulation_vector; task_set_special_port_rpc; + task_suspend_rpc; task_terminate_rpc; task_threads; thread_abort; + thread_assign; thread_assign_default; thread_create; + thread_depress_abort_rpc; thread_disable_pc_sampling; + thread_enable_pc_sampling; thread_get_assignment; + thread_get_sampled_pcs; thread_get_special_port; thread_get_state; + thread_info; thread_max_priority; thread_policy; thread_priority; + thread_resume; thread_set_special_port; thread_set_state; + thread_suspend; thread_terminate; thread_wire; + + # v* + vm_allocate_rpc; vm_copy; vm_deallocate_rpc; vm_inherit; + vm_machine_attribute; vm_map_rpc; vm_protect; vm_read; vm_region; + vm_set_default_memory_manager; vm_statistics; vm_wire; vm_write; + + # x* + xxx_cpu_control; xxx_device_get_status; xxx_device_set_filter; + xxx_device_set_status; xxx_host_info; + xxx_memory_object_lock_request; xxx_processor_set_default_priv; + xxx_slot_info; xxx_task_get_emulation_vector; xxx_task_info; + xxx_task_set_emulation_vector; xxx_thread_get_state; + xxx_thread_info; xxx_thread_set_state; - local: - *; -}; + # y* + yyy_host_info; yyy_processor_control; yyy_processor_info; + yyy_processor_set_info; + } +} diff --git a/hurd/libmachuser.map b/hurd/libmachuser.map deleted file mode 100644 index d14797f748..0000000000 --- a/hurd/libmachuser.map +++ /dev/null @@ -1,113 +0,0 @@ -# libmachuser.map - symbol version and export information for libmachuser.so -GLIBC_2.0 { - global: - - # These functions are used internally by libc. - _S_exc_server; __host_adjust_time; __host_get_time; __host_info; - __host_set_time; __mach_port_allocate_name_rpc; - __mach_port_allocate_rpc; __mach_port_deallocate_rpc; - __mach_port_destroy; __mach_port_extract_right; - __mach_port_get_refs; __mach_port_insert_right_rpc; - __mach_port_mod_refs; __mach_port_move_member; __mach_port_names; - __mach_port_set_qlimit; __task_create_rpc; - __task_disable_pc_sampling; __task_enable_pc_sampling; - __task_get_special_port; __task_priority; __task_resume; - __task_set_special_port_rpc; __task_suspend_rpc; - __task_terminate_rpc; __task_threads; __thread_abort; - __thread_create; __thread_depress_abort_rpc; __thread_get_state; - __thread_resume; __thread_set_special_port; __thread_set_state; - __thread_suspend; __thread_terminate; __vm_allocate_rpc; - __vm_deallocate_rpc; __vm_map_rpc; __vm_protect; __vm_read; - __vm_region; __vm_statistics; __vm_write; - - # functions in normal name space - # Please keep them sorted by name! - - # d* - default_pager_info; default_pager_object_create; - default_pager_object_pages; default_pager_objects; - default_pager_paging_file; default_pager_register_fileserver; - device_close; device_get_status; device_map; device_open; - device_open_request; device_read; device_read_inband; - device_read_request; device_read_request_inband; device_set_filter; - device_set_status; device_write; device_write_inband; - device_write_request; device_write_request_inband; - dp_helper_paging_space; - - # e* - exception_raise; - - # h* - host_adjust_time; host_get_boot_info; host_get_time; host_info; - host_kernel_version; host_processor_set_priv; host_processor_sets; - host_processors; host_reboot; host_set_time; - - # m* - mach_port_allocate_name_rpc; mach_port_allocate_rpc; - mach_port_deallocate_rpc; mach_port_destroy; - mach_port_extract_right; mach_port_get_receive_status; - mach_port_get_refs; mach_port_get_set_status; - mach_port_insert_right_rpc; mach_port_mod_refs; - mach_port_move_member; mach_port_names; mach_port_rename; - mach_port_request_notification; mach_port_set_mscount; - mach_port_set_qlimit; mach_port_set_seqno; mach_port_type; - mach_ports_lookup; mach_ports_register; - memory_object_change_attributes; memory_object_change_completed; - memory_object_copy; memory_object_create; - memory_object_data_error; memory_object_data_initialize; - memory_object_data_provided; memory_object_data_request; - memory_object_data_return; memory_object_data_supply; - memory_object_data_unavailable; memory_object_data_unlock; - memory_object_data_write; memory_object_destroy; - memory_object_get_attributes; memory_object_init; - memory_object_lock_completed; memory_object_lock_request; - memory_object_ready; memory_object_set_attributes; - memory_object_supply_completed; memory_object_terminate; - - # o* - old_mach_port_get_receive_status; - - # p* - processor_assign; processor_control; processor_exit; - processor_get_assignment; processor_info; processor_set_create; - processor_set_default; processor_set_destroy; processor_set_info; - processor_set_max_priority; processor_set_policy_disable; - processor_set_policy_enable; processor_set_tasks; - processor_set_threads; processor_start; - - # t* - task_assign; task_assign_default; task_create_rpc; - task_disable_pc_sampling; task_enable_pc_sampling; - task_get_assignment; task_get_emulation_vector; - task_get_sampled_pcs; task_get_special_port; task_info; - task_priority; task_ras_control; task_resume; task_set_emulation; - task_set_emulation_vector; task_set_special_port_rpc; - task_suspend_rpc; task_terminate_rpc; task_threads; thread_abort; - thread_assign; thread_assign_default; thread_create; - thread_depress_abort_rpc; thread_disable_pc_sampling; - thread_enable_pc_sampling; thread_get_assignment; - thread_get_sampled_pcs; thread_get_special_port; thread_get_state; - thread_info; thread_max_priority; thread_policy; thread_priority; - thread_resume; thread_set_special_port; thread_set_state; - thread_suspend; thread_terminate; thread_wire; - - # v* - vm_allocate_rpc; vm_copy; vm_deallocate_rpc; vm_inherit; - vm_machine_attribute; vm_map_rpc; vm_protect; vm_read; vm_region; - vm_set_default_memory_manager; vm_statistics; vm_wire; vm_write; - - # x* - xxx_cpu_control; xxx_device_get_status; xxx_device_set_filter; - xxx_device_set_status; xxx_host_info; - xxx_memory_object_lock_request; xxx_processor_set_default_priv; - xxx_slot_info; xxx_task_get_emulation_vector; xxx_task_info; - xxx_task_set_emulation_vector; xxx_thread_get_state; - xxx_thread_info; xxx_thread_set_state; - - # y* - yyy_host_info; yyy_processor_control; yyy_processor_info; - yyy_processor_set_info; - - local: - *; -}; diff --git a/iconv/Versions b/iconv/Versions new file mode 100644 index 0000000000..25d16429f8 --- /dev/null +++ b/iconv/Versions @@ -0,0 +1,9 @@ +libc { + GLIBC_2.1 { + # global variables + __gconv_alias_db; __gconv_nmodules; __gconv_modules_db; + + # i* + iconv_open; iconv; iconv_close; + } +} diff --git a/inet/Versions b/inet/Versions new file mode 100644 index 0000000000..3d2e4c7320 --- /dev/null +++ b/inet/Versions @@ -0,0 +1,58 @@ +libc { + GLIBC_2.0 { + # 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; + + # e* + endaliasent; endhostent; endnetent; endnetgrent; endprotoent; endrpcent; + endservent; + + # e* + ether_aton; ether_aton_r; ether_hostton; ether_line; ether_ntoa; + ether_ntoa_r; ether_ntohost; + + # g* + getaliasbyname; getaliasbyname_r; getaliasent; getaliasent_r; + getdomainname; gethostbyaddr; gethostbyaddr_r; gethostbyname; + gethostbyname2; gethostbyname2_r; gethostbyname_r; gethostent; + gethostent_r; getnetbyaddr; getnetbyaddr_r; getnetbyname; + getnetbyname_r; getnetent; getnetent_r; getnetgrent; getnetgrent_r; + getprotobyname; getprotobyname_r; getprotobynumber; + getprotobynumber_r; getprotoent; getprotoent_r; getrpcbyname; + getrpcbyname_r; getrpcbynumber; getrpcbynumber_r; getrpcent; getrpcent_r; + getrpcport; getservbyname; getservbyname_r; getservbyport; + getservbyport_r; getservent; getservent_r; + + # h* + htonl; htons; + + # i* + inet_addr; inet_aton; inet_lnaof; inet_makeaddr; inet_netof; inet_network; + inet_nsap_addr; inet_nsap_ntoa; inet_ntoa; inet_ntop; inet_pton; innetgr; + iruserok; + + # n* + ntohl; ntohs; + + # r* + rcmd; rexec; rresvport; ruserok; ruserpass; + + # s* + setaliasent; setnetent; setnetgrent; setprotoent; setrpcent; setservent; + } + GLIBC_2.1 { + # variables in normal name space + in6addr_any; in6addr_loopback; + + # i* + if_freenameindex; if_indextoname; if_nameindex; if_nametoindex; + inet6_isipv4mapped; + } +} diff --git a/intl/Versions b/intl/Versions new file mode 100644 index 0000000000..acf0ce0ed9 --- /dev/null +++ b/intl/Versions @@ -0,0 +1,21 @@ +libc { + GLIBC_2.0 { + # global variables + _nl_msg_cat_cntr; _nl_default_dirname; _nl_domain_bindings; + + # functions used in inline functions or macros + __dcgettext; + + # functions used in other libraries + __dgettext; + + # b* + bindtextdomain; + + # d* + dcgettext; dgettext; gettext; + + # t* + textdomain; + } +} diff --git a/io/Versions b/io/Versions new file mode 100644 index 0000000000..7892eebd0a --- /dev/null +++ b/io/Versions @@ -0,0 +1,83 @@ +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; + + # a* + access; + + # c* + chdir; chmod; chown; close; creat; + + # d* + dup; dup2; + + # e* + euidaccess; + + # f* + fchdir; fchmod; fchown; fcntl; flock; fstatfs; fts_children; fts_close; + fts_open; fts_read; fts_set; ftw; + + # g* + get_current_dir_name; getcwd; getwd; + + # i* + isatty; + + # l* + lchown; link; lockf; lseek; + + # m* + mkdir; mkfifo; + + # o* + open; + + # p* + pipe; poll; + + # r* + read; readlink; rmdir; + + # s* + statfs; symlink; + + # t* + ttyname; ttyname_r; + + # u* + umask; unlink; utime; + + # w* + write; + } + GLIBC_2.1 { + # functions used in other libraries + __xstat64; __fxstat64; __lxstat64; __poll; + + # c* + creat64; + + # f* + fstatfs64; fstatvfs; fstatvfs64; ftw64; + + # l* + lockf64; lseek64; + + # n* + nftw; nftw64; + + # o* + open64; + + # s* + statfs64; statvfs; statvfs64; + } +} diff --git a/libc.map b/libc.map deleted file mode 100644 index 1917fcbac7..0000000000 --- a/libc.map +++ /dev/null @@ -1,629 +0,0 @@ -GLIBC_2.0 { - global: - # global variables - _errno; _h_errno; _itoa_lower_digits; _itoa_upper_digits; - __ctype_b; __ctype_tolower; __ctype_toupper; - _nl_msg_cat_cntr; __environ; _environ; _res; - ___brk_addr; __curbrk; _nl_current_LC_CTYPE; _libc_intl_domainname; - _sys_errlist; _sys_nerr; _sys_siglist; __progname; _nl_default_dirname; - _nl_domain_bindings; __timezone; __daylight; __tzname; - _nl_current_LC_COLLATE; __collate_element_hash; - __collate_element_strings; __collate_symbol_classes; - __collate_symbol_hash; __collate_symbol_strings; - _obstack; - __progname_full; __progname; _dl_debug_impcalls; _dl_debug_fd; - - _IO_list_all; _IO_stderr_; _IO_stdin_; _IO_stdout_; - - # This is for sparc only. - .div; .mul; .rem; .udiv; .umul; .urem; - - # For alpha, unfortunately in wider use. - _inb; _inw; _inl; _outb; _outw; _outl; _bus_base; _bus_base_sparse; - _hae_shift; - - # helper functions - __errno_location; __libc_init_first; __h_errno_location; __libc_start_main; - - # functions with special/multiple interfaces - __sigsetjmp; _setjmp; __sigaddset; __sigdelset; __sigismember; - __sysv_signal; __bsd_getpgrp; _longjmp; _mcount; - __divqu; __remqu; __divqs; __remqs; __divlu; __remlu; __divls; - __remls; __divl; __reml; __divq; __remq; __divqu; __remqu; - __setpgid; __getpgid; __adjtimex; - - # functions which have an additional interface since they are - # are cancelable. - __libc_wait; __libc_waitpid; __libc_pause; __libc_nanosleep; - __libc_open; __libc_close; __libc_read; __libc_write; - __libc_lseek; __libc_fcntl; __libc_tcdrain; __libc_fsync; - __libc_msync; __libc_system; __libc_accept; __libc_send; __libc_recvfrom; - __libc_recvmsg; __libc_sendmsg; __libc_recv; __libc_sendto; __libc_connect; - - # interface of malloc functions - __libc_calloc; __libc_free; __libc_mallinfo; __libc_malloc; - __libc_mallopt; __libc_memalign; __libc_pvalloc; __libc_realloc; - __libc_valloc; - __malloc_initialize_hook; __free_hook; __malloc_hook; __realloc_hook; - __memalign_hook; __after_morecore_hook; - __malloc_initialized; __default_morecore; __morecore; __sbrk; - __getpagesize; - - # functions with required interface outside normal name space - _exit; __ivaliduser; __open_catalog; - __argz_count; __argz_stringify; __argz_next; - __check_rhosts_file; __rcmd_errstr; __xpg_basename; - - # functions from the experimental locale implementation - __*_l; __newlocale; __duplocale; __freelocale; - - # functions used in inline functions or macros - __strto*_internal; __wcsto*_internal; __getdelim; - __isnan; __isnanf; __isnanl; __finite; __finitef; __finitel; - __isinf; __isinff; __isinfl; - __cmsg_nxthdr; - _obstack_allocated_p; _obstack_begin; _obstack_begin_1; - _obstack_free; _obstack_memory_used; _obstack_newchunk; - __assert_fail; __assert_perror_fail; - _IO_getc; _IO_peekc_unlocked; _IO_putc; _IO_feof; _IO_ferror; - __xstat; __fxstat; __lxstat; __xmknod; - __dcgettext; __uflow; __underflow; __overflow; __iswctype; __sigpause; - __ctype_get_mb_cur_max; __bzero; - __strtok_r; - - # functions used in other libraries - __printf_fp; __stpncpy; __stpcpy; __strdup; __mempcpy; - __nss_passwd_lookup; __nss_group_lookup; __nss_next; - _nss_files_parse_grent; _nss_files_parse_pwent; _nss_files_parse_spent; - __nss_database_lookup; __internal_endnetgrent; __internal_getnetgrent_r; - __internal_setnetgrent; __gmtime_r; __secure_getenv; - __select; __sched_get_priority_max; __sched_get_priority_min; - __sched_getparam; __sched_getscheduler; __sched_setscheduler; - __sched_yield; __on_exit; __gettimeofday; __fork; __clone; - __nss_configure_lookup; _dl_open; _dl_close; _dl_addr; - __vsscanf; __vfscanf; __vsnprintf; - _rpc_dtablesize; _null_auth; _seterr_reply; - __res_randomid; __getpid; - __strcasecmp; __strerror_r; __write; _dl_sysdep_output; - _dl_debug_message; - __ffs; - __close; __connect; __fcntl; __lseek; __open; __read; __send; __wait; - __ieee_get_fp_control; __ieee_set_fp_control; - __dgettext; __sigaction; - - # libio - _IO_adjust_column; _IO_clearerr; _IO_default_doallocate; - _IO_default_finish; _IO_default_pbackfail; _IO_default_uflow; - _IO_default_xsgetn; _IO_default_xsputn; _IO_do_write; - _IO_doallocbuf; _IO_fclose; _IO_fdopen; _IO_feof; _IO_ferror; - _IO_fflush; _IO_fgetc; _IO_fgetpos; _IO_fgets; _IO_file_attach; - _IO_file_close; _IO_file_close_it; _IO_file_doallocate; - _IO_file_fopen; _IO_file_init; _IO_file_jumps; _IO_file_open; - _IO_file_overflow; _IO_file_read; _IO_file_seek; _IO_file_seekoff; - _IO_file_setbuf; _IO_file_stat; _IO_file_sync; _IO_file_underflow; - _IO_file_write; _IO_file_xsputn; _IO_fileno; _IO_flockfile; - _IO_flush_all; _IO_flush_all_linebuffered; _IO_fopen; _IO_fprintf; - _IO_fputs; _IO_fread; _IO_free_backup_area; _IO_freopen; - _IO_fscanf; _IO_fseek; _IO_fsetpos; _IO_ftell; _IO_ftrylockfile; - _IO_funlockfile; _IO_fwrite; _IO_getc; _IO_getline; _IO_gets; - _IO_init; _IO_init_marker; _IO_link_in; _IO_marker_delta; - _IO_marker_difference; _IO_padn; _IO_pclose; _IO_peekc_locked; - _IO_perror; _IO_popen; _IO_printf; _IO_proc_close; _IO_proc_open; - _IO_putc; _IO_puts; _IO_remove_marker; _IO_rewind; _IO_scanf; - _IO_seekmark; _IO_seekoff; _IO_seekpos; _IO_setb; _IO_setbuf; - _IO_setbuffer; _IO_setlinebuf; _IO_setvbuf; _IO_sgetn; - _IO_sprintf; _IO_sputbackc; _IO_sscanf; _IO_str_init_readonly; - _IO_str_init_static; _IO_str_overflow; _IO_str_pbackfail; - _IO_str_seekoff; _IO_str_underflow; _IO_sungetc; - _IO_switch_to_get_mode; _IO_un_link; _IO_ungetc; - _IO_unsave_markers; _IO_vfprintf; _IO_vfscanf; _IO_vsprintf; - - # Exception handling support functions from libgcc - __register_frame; __register_frame_table; __deregister_frame; - __register_frame_info; __deregister_frame_info; - - # Profiling support - __monstartup; _mcleanup; __profile_frequency; - - # Hurd-specific variables - __hurd_sigthread_stack_base; __hurd_sigthread_stack_end; - __hurd_sigthread_variables; - __hurd_threadvar_stack_mask; __hurd_threadvar_stack_offset; - - # functions from stdio - __fillbf; __flshfp; - - # Internal functions referenced by libmachuser and libhurduser. - __mach_msg; - __mig_allocate; __mig_deallocate; - __mig_get_reply_port; __mig_put_reply_port; __mig_dealloc_reply_port; - _S_catch_exception_raise; - _S_msg_add_auth; _S_msg_del_auth; - _S_msg_describe_ports; - _S_msg_get_dtable; _S_msg_set_dtable; - _S_msg_get_env_variable; _S_msg_set_env_variable; - _S_msg_get_environment; _S_msg_set_environment; - _S_msg_get_fd; _S_msg_set_fd; - _S_msg_get_init_int; _S_msg_set_init_int; - _S_msg_get_init_ints; _S_msg_set_init_ints; - _S_msg_get_init_port; _S_msg_set_init_port; - _S_msg_get_init_ports; _S_msg_set_init_ports; - _S_msg_proc_newids; _S_msg_report_wait; - _S_msg_sig_post; _S_msg_sig_post_untraced; - _hurd_intr_rpc_mach_msg; _hurdsig_fault_catch_exception_raise; - - # Placeholders for the Hurd libthreads implementation. - cthread_getspecific; cthread_keycreate; cthread_setspecific; - __libc_getspecific; - - # Function versions of Hurd macros. - __mutex_init; __mutex_trylock; - __mutex_lock; __mutex_unlock; - __mutex_lock_solid; __mutex_unlock_solid; - - # variables in normal name space - argp_err_exit_status; argp_program_bug_address; argp_program_version; - argp_program_version_hook; - daylight; - environ; - errno; error_message_count; error_one_per_line; error_print_progname; - h_errlist; h_errno; h_nerr; - loc1; loc2; locs; - mallwatch; - obstack_alloc_failed_handler; obstack_exit_failure; - optarg; opterr; optind; optopt; - program_invocation_name; program_invocation_short_name; - re_max_failures; re_syntax_options; rexecoptions; rpc_createerr; - stderr; stdin; stdout; svc_fdset; svcauthdes_stats; - sys_errlist; sys_nerr; sys_sigabbrev; sys_siglist; - timezone; tzname; - - # functions in normal name space - # Please keep them sorted by name! - - # a* - a64l; abort; abs; accept; access; acct; addmntent; adjtime; adjtimex; - advance; alarm; alphasort; - - argz_add; argz_add_sep; argz_append; argz_count; argz_create; - argz_create_sep; argz_delete; argz_extract; argz_insert; argz_next; - argz_replace; argz_stringify; - - asctime; asctime_r; asprintf; atexit; atof; atoi; atol; atoll; - authnone_create; authunix_create; authunix_create_default; - - # b* - basename; bcmp; bcopy; bdflush; bind; bindresvport; - bindtextdomain; brk; bsd_signal; bsearch; btowc; bus_base; bus_base_sparse; - bzero; - - # c* - cachectl; cacheflush; calloc; callrpc; canonicalize_file_name; - catclose; catgets; catopen; - cfgetispeed; cfgetospeed; cfmakeraw; cfree; - cfsetispeed; cfsetospeed; cfsetspeed; chdir; chflags; chmod; chown; - chroot; clearenv; clearerr; clearerr_unlocked; - - clnt_broadcast; clnt_create; clnt_pcreateerror; clnt_perrno; - clnt_perror; clnt_spcreateerror; clnt_sperrno; clnt_sperror; - clntraw_create; clnttcp_create; clntudp_bufcreate; clntudp_create; - - clock; clone; close; closedir; closelog; confstr; connect; copysign; - copysignf; copysignl; creat; create_module; ctermid; ctime; - ctime_r; cuserid; - - # d* - daemon; dcgettext; delete_module; dgettext; - difftime; dirfd; dirname; div; dprintf; drand48; drand48_r; dup; dup2; - dysize; - - # e* - ecvt; ecvt_r; endaliasent; endfsent; endgrent; endhostent; - endmntent; endnetent; endnetgrent; endprotoent; endpwent; endrpcent; - endservent; endspent; endttyent; endusershell; endutent; - envz_add; envz_entry; envz_get; envz_merge; envz_remove; - envz_strip; erand48; erand48_r; err; error; error_at_line; errx; - - ether_aton; ether_aton_r; ether_hostton; ether_line; ether_ntoa; - ether_ntoa_r; ether_ntohost; - - euidaccess; execl; execle; execlp; execv; execve; execvp; exit; - - # f* - fchdir; fchflags; fchmod; fchown; fclose; fcloseall; fcntl; fcvt; - fcvt_r; fdatasync; fdopen; feof; feof_locked; feof_unlocked; ferror; - ferror_locked; ferror_unlocked; fexecve; fflush; fflush_locked; - fflush_unlocked; ffs; - fgetc; fgetgrent; fgetgrent_r; fgetpos; fgetpwent; fgetpwent_r; fgets; - fgetspent; fgetspent_r; fileno; fileno_locked; fileno_unlocked; finite; - finitef; finitel; flock; flockfile; fnmatch; fopen; fopencookie; - fork; fpathconf; fprintf; fputc; fputc_locked; fputc_unlocked; fputs; - fread; free; freeaddrinfo; freopen; frexp; frexpf; frexpl; fscanf; fseek; - fsetpos; fstatfs; fsync; ftell; ftime; ftok; ftruncate; ftrylockfile; - fts_children; fts_close; fts_open; fts_read; fts_set; ftw; - funlockfile; fwrite; - - # g* - gcvt; get_avphys_pages; get_current_dir_name; - get_kernel_syms; get_myaddress; get_nprocs; get_nprocs_conf; - get_phys_pages; getaddrinfo; getaliasbyname; getaliasbyname_r; - getaliasent; getaliasent_r; getc; getc_locked; getc_unlocked; getchar; - getchar_unlocked; getcwd; getdelim; getdirentries; - getdomainname; getdtablesize; getegid; getenv; geteuid; getfsent; - getfsfile; getfsspec; getgid; getgrent; getgrent_r; getgrgid; - getgrgid_r; getgrnam; getgrnam_r; getgroups; gethostbyaddr; - gethostbyaddr_r; gethostbyname; gethostbyname2; gethostbyname2_r; - gethostbyname_r; gethostent; gethostent_r; gethostid; gethostname; - getitimer; getline; getlogin; getlogin_r; getmntent; getmntent_r; - getnetbyaddr; getnetbyaddr_r; getnetbyname; - getnetbyname_r; getnetent; getnetent_r; getnetgrent; getnetgrent_r; - getopt; getopt_long; getopt_long_only; getpagesize; - getpass; getpeername; getpgid; getpgrp; getpid; getppid; getpriority; - getprotobyname; getprotobyname_r; getprotobynumber; - getprotobynumber_r; getprotoent; getprotoent_r; getpublickey; - getpw; getpwent; getpwent_r; getpwnam; getpwnam_r; getpwuid; getpwuid_r; - getresgid; getresuid; - getrlimit; getrpcbyname; getrpcbyname_r; getrpcbynumber; - getrpcbynumber_r; getrpcent; getrpcent_r; getrpcport; getrusage; gets; - getsecretkey; getservbyname; getservbyname_r; getservbyport; - getservbyport_r; getservent; getservent_r; getsid; getsockname; - getsockopt; getspent; getspent_r; getspnam; getspnam_r; getsubopt; - gettext; gettimeofday; getttyent; getttynam; getuid; getusershell; - getutent; getutent_r; getutid; getutid_r; getutline; getutline_r; - getw; getwd; glob; glob_pattern_p; - globfree; gmtime; gmtime_r; group_member; gsignal; gtty; - - # h* - hae_shift; hasmntopt; hcreate; hcreate_r; hdestroy; hdestroy_r; herror; - hsearch; hsearch_r; hstrerror; htonl; htons; - - # i* - inb; index; inet_addr; inet_aton; inet_lnaof; inet_makeaddr; - inet_netof; inet_network; inet_nsap_addr; inet_nsap_ntoa; inet_ntoa; - inet_ntop; inet_pton; init_module; initgroups; initstate; initstate_r; - inl; innetgr; insque; inw; ioctl; ioperm; iopl; iruserok; - - isalnum; isalpha; isascii; isatty; isblank; iscntrl; isdigit; - isfdtype; isgraph; isinf; isinff; isinfl; islower; isnan; isnanf; - isnanl; isprint; ispunct; isspace; isupper; iswalnum; iswalpha; - iswcntrl; iswctype; iswdigit; iswgraph; iswlower; iswprint; - iswpunct; iswspace; iswupper; iswxdigit; isxdigit; - - # j* - jrand48; jrand48_r; - - # k* - kill; killpg; klogctl; - - # l* - l64a; labs; lchown; lckpwdf; lcong48; lcong48_r; ldexp; ldexpf; - ldexpl; ldiv; lfind; link; listen; llabs; lldiv; llseek; localeconv; - localtime; localtime_r; lockf; longjmp; lrand48; lrand48_r; - lsearch; lseek; - - # m* - madvise; - - mallinfo; malloc; malloc_get_state; malloc_set_state; - malloc_stats; malloc_trim; malloc_usable_size; mallopt; - - mblen; mbrlen; mbrtowc; mbsinit; mbsnrtowcs; mbsrtowcs; mbstowcs; - mbtowc; mcheck; mcount; - - memalign; memccpy; memchr; memcmp; memcpy; memfrob; memmem; - memmove; memset; - - mkdir; mkfifo; mkstemp; mktemp; mktime; mlock; - mlockall; mmap; modf; modff; modfl; moncontrol; monstartup; mount; - mprobe; mprotect; mrand48; mrand48_r; mremap; msgctl; msgget; msgrcv; - msgsnd; msync; mtrace; munlock; munlockall; munmap; muntrace; - - # n* - nanosleep; nfsservctl; nice; nl_langinfo; nrand48; nrand48_r; - ntohl; ntohs; - - # o* - obstack_free; obstack_printf; obstack_vprintf; on_exit; open; - open_memstream; opendir; openlog; outb; outl; outw; - - # p* - parse_printf_format; pathconf; pause; pciconfig_read; - pciconfig_write; pclose; perror; - personality; pipe; pmap_getmaps; pmap_getport; pmap_rmtcall; pmap_set; - pmap_unset; poll; popen; prctl; printf; profil; profil_counter; - pselect; psignal; - - pthread_attr_destroy; - pthread_attr_getdetachstate; pthread_attr_getinheritsched; - pthread_attr_getschedparam; pthread_attr_getschedpolicy; - pthread_attr_getscope; pthread_attr_init; pthread_attr_setdetachstate; - pthread_attr_setinheritsched; pthread_attr_setschedparam; - pthread_attr_setschedpolicy; pthread_attr_setscope; - pthread_cond_broadcast; pthread_cond_destroy; pthread_cond_init; - pthread_cond_signal; pthread_cond_wait; pthread_condattr_destroy; - pthread_condattr_init; pthread_equal; pthread_exit; - pthread_getschedparam; pthread_mutex_destroy; pthread_mutex_init; - pthread_mutex_lock; pthread_mutex_unlock; - pthread_mutexattr_getkind_np; pthread_mutexattr_setkind_np; - pthread_self; pthread_setcancelstate; pthread_setcanceltype; - pthread_setschedparam; - - ptrace; putc; putc_locked; putc_unlocked; putchar; putchar_unlocked; - putenv; putpwent; puts; putspent; pututline; putw; pvalloc; - - # q* - qecvt; qecvt_r; qfcvt; qfcvt_r; qgcvt; qsort; query_module; quotactl; - - # r* - raise; rand; rand_r; random; random_r; rcmd; - - re_comp; re_compile_fastmap; re_compile_pattern; re_exec; re_match; - re_match_2; re_search; re_search_2; re_set_registers; re_set_syntax; - - read; readdir; readdir_r; readlink; readv; - realloc; realpath; reboot; recv; recvfrom; recvmsg; regcomp; regerror; - regexec; regfree; register_printf_function; registerrpc; remove; remque; - rename; res_init; revoke; rewind; rewinddir; rexec; rindex; rmdir; rpmatch; - rresvport; ruserok; ruserpass; - - # s* - sbrk; scalbn; scalbnf; scalbnl; scandir; scanf; - - sched_get_priority_max; sched_get_priority_min; sched_getparam; - sched_getscheduler; sched_rr_get_interval; sched_setparam; - sched_setscheduler; sched_yield; - - seed48; seed48_r; seekdir; select; - semctl; semget; semop; send; sendmsg; sendto; setaliasent; setbuf; - setbuffer; setcontext; - setdomainname; setegid; setenv; seteuid; setfsent; - setfsgid; setfsuid; setgid; setgrent; setgroups; sethae; sethostent; - sethostid; sethostname; setitimer; setjmp; setlinebuf; setlocale; - setlogin; setlogmask; setmntent; setnetent; setnetgrent; setpgid; - setpgrp; setpriority; setprotoent; setpwent; setregid; setresgid; - setresuid; setreuid; setrlimit; setrpcent; setservent; - setsid; setsockopt; setspent; - setstate; setstate_r; settimeofday; setttyent; setuid; setusershell; - setutent; setvbuf; sgetspent; sgetspent_r; shmat; shmctl; - shmdt; shmget; shutdown; - - sigaction; sigaddset; sigaltstack; sigandset; sigblock; sigdelset; - sigemptyset; sigfillset; siggetmask; siginterrupt; sigisemptyset; - sigismember; siglongjmp; signal; sigorset; sigpause; sigpending; - sigprocmask; sigreturn; sigsetmask; sigstack; sigsuspend; sigvec; - sigwait; - - sleep; snprintf; socket; socketpair; sprintf; srand; srand48; - srand48_r; srandom; srandom_r; sscanf; ssignal; sstk; statfs; - step; stime; stpcpy; stpncpy; strcasecmp; strcat; - strchr; strcmp; strcoll; - strcpy; strcspn; strdup; strerror; strerror_r; strfmon; strfry; - strftime; strlen; strncasecmp; strncat; strncmp; strncpy; strndup; - strnlen; strpbrk; strptime; strrchr; strsep; strsignal; strspn; - strstr; strtod; strtof; strtok; strtok_r; strtol; strtold; strtoll; - strtoq; strtoul; strtoull; strtouq; strxfrm; stty; - - svc_exit; svc_getreq; svc_getreqset; svc_register; svc_run; - svc_sendreply; svc_unregister; svcerr_auth; svcerr_decode; - svcerr_noproc; svcerr_noprog; svcerr_progvers; svcerr_systemerr; - svcerr_weakauth; svcfd_create; svcraw_create; svctcp_create; - svcudp_bufcreate; svcudp_create; svcudp_enablecache; - - swab; swapoff; swapon; symlink; sync; - syscall; sysconf; sysctl; sysinfo; syslog; sysmips; - system; - - # t* - tcdrain; tcflow; tcflush; tcgetattr; tcgetpgrp; tcsendbreak; - tcsetattr; tcsetpgrp; tdelete; telldir; tempnam; textdomain; - tfind; time; timegm; timelocal; times; tmpfile; tmpnam; - tmpnam_r; - - toascii; tolower; toupper; towctrans; towlower; towupper; - tr_break; truncate; tsearch; ttyname; ttyname_r; ttyslot; - twalk; tzset; - - # u* - ualarm; ulckpwdf; ulimit; umask; umount; uname; ungetc; unlink; - unsetenv; updwtmp; uselib; usleep; ustat; utime; utimes; utmpname; - - # v* - valloc; vasprintf; vdprintf; verr; verrx; vfork; vfprintf; vfscanf; - vhangup; vlimit; vm86; vprintf; vscanf; vsnprintf; vsprintf; vsscanf; - vsyslog; vtimes; vwarn; vwarnx; - - # w* - wait; wait3; wait4; waitpid; warn; warnx; - - wcpcpy; wcpncpy; wcrtomb; wcscat; wcschr; wcscmp; wcscoll; - wcscpy; wcscspn; wcsdup; wcslen; wcsncat; wcsncmp; - wcsncpy; wcsnrtombs; wcspbrk; wcsrchr; wcsrtombs; wcsspn; wcsstr; - wcstod; wcstof; wcstok; wcstol; wcstold; wcstombs; wcstoq; wcstoul; - wcstouq; wcswidth; wcsxfrm; wctob; wctomb; wctrans; wctype; wcwidth; - - wmemchr; wmemcmp; wmemcpy; wmemmove; wmemset; - - write; writev; - - # x* - xdr_accepted_reply; xdr_array; xdr_authunix_parms; xdr_bool; xdr_bytes; - xdr_callhdr; xdr_callmsg; xdr_char; xdr_cryptkeyarg; xdr_cryptkeyarg2; - xdr_cryptkeyres; xdr_des_block; xdr_double; xdr_enum; xdr_float; - xdr_free; xdr_int; xdr_key_netstarg; xdr_key_netstres; xdr_keybuf; - xdr_keystatus; xdr_long; xdr_netobj; xdr_opaque; xdr_opaque_auth; - xdr_pmap; xdr_pmaplist; xdr_pointer; xdr_reference; xdr_rejected_reply; - xdr_replymsg; xdr_rmtcall_args; xdr_rmtcallres; xdr_short; xdr_string; - xdr_u_char; xdr_u_int; xdr_u_long; xdr_u_short; xdr_union; xdr_vector; - xdr_void; xdr_wrapstring; xdrmem_create; xdrrec_create; - xdrrec_endofrecord; xdrrec_eof; xdrrec_skiprecord; xdrstdio_create; - xencrypt; xprt_register; xprt_unregister; - - # 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_default_scope; - _dl_global_scope_end; _dl_init_next; _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_global_scope; _dl_lookup_symbol_skip; - _dl_lookup_versioned_symbol; _dl_lookup_versioned_symbol_skip; - - local: - *; -}; - -GLIBC_2.1 { - global: - # global variables - _IO_2_1_stdin_; _IO_2_1_stdout_; _IO_2_1_stderr_; - __gconv_alias_db; __gconv_nmodules; __gconv_modules_db; - _dl_profile; _dl_profile_map; _dl_profile_output; _dl_start_profile; - __libc_stack_end; - - # This is for ix86 only. - _fp_hw; - - # variables in normal name space - getdate_err; in6addr_any; in6addr_loopback; - - # functions used in inline functions or macros - __signbit; __signbitf; __signbitl; __libc_sa_len; - - # functions used in other libraries - _IO_fclose; _IO_fopen; _IO_fdopen; __asprintf; __strcasestr; - __syscall_rt_sigqueueinfo; - __xstat64; __fxstat64; __lxstat64; - __pread64; __pwrite64; - __backtrace; __backtrace_symbols; - _dl_mcount; _dl_mcount_wrapper; __poll; - - # helper functions - __libc_current_sigrtmin; __libc_current_sigrtmax; __libc_allocate_rtsig; - __libc_longjmp; __libc_siglongjmp; - - # Since we have new signals this structure changed. - _sys_siglist; sys_siglist; sys_sigabbrev; - - # Linux/Alpha 64-bit timeval functions. - __select; select; - adjtime; adjtimex; __adjtimex; - __gettimeofday; - - # New errlist. - _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; - - - # Changed getline function in libio. - _IO_getline_info; - - # Special Pointer to avoid keyserv deadlock - __key_decryptsession_pk_LOCAL; __key_encryptsession_pk_LOCAL; - __key_gendes_LOCAL; - - # chown interface change. - chown; glob; globfree; - - # Change in pthread_attr_t. - pthread_attr_init; - - # functions in normal name space - # Please keep them sorted by name! - - # a* - addseverity; alphasort64; - - argp_error; argp_failure; argp_help; argp_parse; argp_state_help; - argp_usage; - - authdes_create; authdes_getucred; authdes_pk_create; - - # b* - backtrace; backtrace_symbols; - - # c* - capget; capset; cbc_crypt; creat64; - - # d* - des_setparity; - - # e* - ecb_crypt; endutxent; - - # f* - fattach; fdetach; - fgetpos64; fmtmsg; fopen64; freopen64; fseeko; fseeko64; fsetpos64; - fstatfs64; fstatvfs; fstatvfs64; ftello; ftello64; ftruncate64; ftw64; - fopen; fclose; fdopen; - - # g* - gai_strerror; getcontext; getdate; getdate_r; getitimer; getmsg; - getnameinfo; getnetname; getpmsg; getpt; getrlimit64; getrusage; - gettimeofday; getutxent; getutxid; getutxline; grantpt; - - # New special glibc functions. - gnu_get_libc_release; gnu_get_libc_version; - - # h* - host2netname; - - # i* - iconv_open; iconv; iconv_close; - ieee_get_fp_control; ieee_set_fp_control; - if_freenameindex; if_indextoname; if_nameindex; if_nametoindex; - inet6_isipv4mapped; isastream; iswblank; - - # k* - key_decryptsession; key_decryptsession_pk; key_encryptsession; - key_encryptsession_pk; key_gendes; key_get_conv; key_secretkey_is_set; - key_setnet; key_setsecret; - - # l* - lockf64; lseek64; - - # m* - makecontext; mmap64; mempcpy; - - # n* - netname2host; netname2user; nftw; nftw64; - - # o* - open64; - - # p* - passwd2des; pread; pread64; printf_size; printf_size_info; - ptsname; ptsname_r; putmsg; putpmsg; pututxline; pwrite; pwrite64; - - # r* - readdir64; readdir64_r; rtime; - - # s* - scalbln; scalblnf; scalblnl; - scandir64; setitimer; setrlimit64; setutxent; settimeofday; - sighold; sigrelse; sigignore; sigset; statfs64; statvfs; statvfs64; - strcasestr; strtoimax; strtoumax; strverscmp; strfxtime; - swapcontext; sysv_signal; - - # New RT signal functions. - sigqueue; sigtimedwait; sigwaitinfo; - - # t* - tcgetsid; tdestroy; tmpfile64; truncate64; - - # u* - unlockpt; updwtmpx; user2netname; utimes; utmpxname; - - # v* - versionsort; versionsort64; - - # w* - wait4; waitid; wcscasecmp; wcsncasecmp; wcsnlen; wcstoll; - wcstoimax; wcstoumax; wcstoull; wcswcs; wmemrtombs; wmemrtowcs; - wordexp; wordfree; - - # x* - xdecrypt; xdr_authdes_cred; xdr_authdes_verf; - xdr_cryptkeyarg; xdr_cryptkeyarg2; xdr_cryptkeyres; xdr_des_block; - xdr_getcredres; xdr_key_netstarg; xdr_key_netstres; - xdr_keybuf; xdr_keystatus; xdr_netnamestr; xdr_sizeof; xdr_unixcred; - -} GLIBC_2.0; diff --git a/libio/Versions b/libio/Versions new file mode 100644 index 0000000000..ea58a29321 --- /dev/null +++ b/libio/Versions @@ -0,0 +1,103 @@ +libc { + GLIBC_2.0 { + # global variables + _IO_list_all; _IO_stderr_; _IO_stdin_; _IO_stdout_; + + # functions used in inline functions or macros + __getdelim; + + # functions used in inline functions or macros + _IO_getc; _IO_peekc_unlocked; _IO_putc; _IO_feof; _IO_ferror; + __uflow; __underflow; __overflow; + + # functions used in other libraries + __vsscanf; __vsnprintf; + + # libio + _IO_adjust_column; _IO_clearerr; _IO_default_doallocate; + _IO_default_finish; _IO_default_pbackfail; _IO_default_uflow; + _IO_default_xsgetn; _IO_default_xsputn; _IO_do_write; + _IO_doallocbuf; _IO_fclose; _IO_fdopen; _IO_feof; _IO_ferror; + _IO_fflush; _IO_fgetc; _IO_fgetpos; _IO_fgets; _IO_file_attach; + _IO_file_close; _IO_file_close_it; _IO_file_doallocate; + _IO_file_fopen; _IO_file_init; _IO_file_jumps; _IO_file_open; + _IO_file_overflow; _IO_file_read; _IO_file_seek; _IO_file_seekoff; + _IO_file_setbuf; _IO_file_stat; _IO_file_sync; _IO_file_underflow; + _IO_file_write; _IO_file_xsputn; _IO_fileno; _IO_flockfile; + _IO_flush_all; _IO_flush_all_linebuffered; _IO_fopen; _IO_fprintf; + _IO_fputs; _IO_fread; _IO_free_backup_area; _IO_freopen; + _IO_fscanf; _IO_fseek; _IO_fsetpos; _IO_ftell; _IO_ftrylockfile; + _IO_funlockfile; _IO_fwrite; _IO_getc; _IO_getline; _IO_gets; + _IO_init; _IO_init_marker; _IO_link_in; _IO_marker_delta; + _IO_marker_difference; _IO_padn; _IO_pclose; _IO_peekc_locked; + _IO_perror; _IO_popen; _IO_printf; _IO_proc_close; _IO_proc_open; + _IO_putc; _IO_puts; _IO_remove_marker; _IO_rewind; _IO_scanf; + _IO_seekmark; _IO_seekoff; _IO_seekpos; _IO_setb; _IO_setbuf; + _IO_setbuffer; _IO_setlinebuf; _IO_setvbuf; _IO_sgetn; + _IO_sprintf; _IO_sputbackc; _IO_sscanf; _IO_str_init_readonly; + _IO_str_init_static; _IO_str_overflow; _IO_str_pbackfail; + _IO_str_seekoff; _IO_str_underflow; _IO_sungetc; + _IO_switch_to_get_mode; _IO_un_link; _IO_ungetc; + _IO_unsave_markers; _IO_vfprintf; _IO_vfscanf; _IO_vsprintf; + + # variables in normal name space + stderr; stdin; stdout; + + # a* + asprintf; + + # c* + clearerr; clearerr_unlocked; + + # d* + dprintf; + + # f* + fclose; fcloseall; fdopen; feof; feof_locked; feof_unlocked; ferror; + ferror_locked; ferror_unlocked; fflush; fflush_locked; fflush_unlocked; + fgetc; fgetpos; fgets; fileno; fileno_locked; fileno_unlocked; flockfile; + fopen; fopencookie; fprintf; fputc; fputc_locked; fputc_unlocked; fputs; + fread; freopen; fscanf; fseek; fsetpos; ftell; ftrylockfile; funlockfile; + fwrite; + + # g* + getc; getc_locked; getc_unlocked; getchar; getchar_unlocked; getdelim; + getline; gets; getw; + + # o* + obstack_printf; obstack_vprintf; open_memstream; + + # p* + pclose; popen; printf; putc; putc_locked; putc_unlocked; putchar; + putchar_unlocked; puts; + + # p* + putw; rewind; + + # s* + scanf; setbuf; setbuffer; setlinebuf; + + # s* + setvbuf; snprintf; sprintf; sscanf; + + # u* + ungetc; + + # v* + vasprintf; vdprintf; vprintf; vscanf; vsnprintf; vsprintf; vsscanf; + } + GLIBC_2.1 { + # global variables + _IO_2_1_stdin_; _IO_2_1_stdout_; _IO_2_1_stderr_; + + # functions used in other libraries + _IO_fclose; _IO_fopen; _IO_fdopen; __asprintf; + + # Changed getline function in libio. + _IO_getline_info; + + # f* + fgetpos64; fopen64; freopen64; fseeko; fseeko64; fsetpos64; ftello; + ftello64; fopen; fclose; fdopen; + } +} diff --git a/linuxthreads/libpthread.map b/linuxthreads/Versions index 8174f7d95d..4c36f2c393 100644 --- a/linuxthreads/libpthread.map +++ b/linuxthreads/Versions @@ -1,5 +1,23 @@ -GLIBC_2.0 { - global: +libc { + GLIBC_2.0 { + pthread_attr_destroy; pthread_attr_getdetachstate; + pthread_attr_getinheritsched; pthread_attr_getschedparam; + pthread_attr_getschedpolicy; pthread_attr_getscope; pthread_attr_init; + pthread_attr_setdetachstate; pthread_attr_setinheritsched; + pthread_attr_setschedparam; pthread_attr_setschedpolicy; + pthread_attr_setscope; pthread_cond_broadcast; pthread_cond_destroy; + pthread_cond_init; pthread_cond_signal; pthread_cond_wait; + pthread_condattr_destroy; pthread_condattr_init; pthread_equal; + pthread_exit; pthread_getschedparam; pthread_mutex_destroy; + pthread_mutex_init; pthread_mutex_lock; pthread_mutex_unlock; + pthread_mutexattr_getkind_np; pthread_mutexattr_setkind_np; + pthread_self; pthread_setcancelstate; pthread_setcanceltype; + pthread_setschedparam; + } +} + +libpthread { + GLIBC_2.0 { # Hidden entry point (through macros). _pthread_cleanup_pop; _pthread_cleanup_pop_restore; _pthread_cleanup_push; _pthread_cleanup_push_defer; @@ -53,14 +71,8 @@ GLIBC_2.0 { # The error functions. __errno_location; __h_errno_location; - - local: - *; -}; - - -GLIBC_2.1 { - global: + } + GLIBC_2.1 { # Functions with changed interface. pthread_attr_init; pthread_create; @@ -76,4 +88,5 @@ GLIBC_2.1 { pthread_attr_getstacksize; pthread_attr_setstacksize; pthread_getconcurrency; pthread_setconcurrency; -} GLIBC_2.0; + } +} diff --git a/locale/Versions b/locale/Versions new file mode 100644 index 0000000000..bccb3cbb9d --- /dev/null +++ b/locale/Versions @@ -0,0 +1,29 @@ +libBrokenLocale { + GLIBC_2.0 { + __ctype_get_mb_cur_max; + } +} + +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; + + # functions from the experimental locale implementation + __*_l; __newlocale; __duplocale; __freelocale; + + # functions used in inline functions or macros + __ctype_get_mb_cur_max; + + # l* + localeconv; + + # n* + nl_langinfo; + + # s* + setlocale; + } +} diff --git a/locale/libBrokenLocale.map b/locale/libBrokenLocale.map deleted file mode 100644 index b96a65c4c0..0000000000 --- a/locale/libBrokenLocale.map +++ /dev/null @@ -1,7 +0,0 @@ -GLIBC_2.0 { - global: - __ctype_get_mb_cur_max; - - local: - *; -}; diff --git a/login/Versions b/login/Versions new file mode 100644 index 0000000000..b7cc90c7da --- /dev/null +++ b/login/Versions @@ -0,0 +1,41 @@ +libc { + GLIBC_2.0 { + # e* + endutent; + + # g* + getlogin; getlogin_r; getutent; getutent_r; getutid; getutid_r; getutline; + getutline_r; + + # p* + pututline; + + # s* + setutent; + + # u* + updwtmp; utmpname; + } + GLIBC_2.1 { + # e* + endutxent; + + # g* + getpt; getutxent; getutxid; getutxline; grantpt; + + # p* + ptsname; ptsname_r; pututxline; + + # s* + setutxent; + + # u* + unlockpt; updwtmpx; utmpxname; + } +} + +libutil { + GLIBC_2.0 { + forkpty; login; login_tty; logout; logwtmp; openpty; + } +} diff --git a/login/libutil.map b/login/libutil.map deleted file mode 100644 index 3063790dd0..0000000000 --- a/login/libutil.map +++ /dev/null @@ -1,7 +0,0 @@ -GLIBC_2.0 { - global: - forkpty; login; login_tty; logout; logwtmp; openpty; - - local: - *; -}; diff --git a/malloc/Versions b/malloc/Versions new file mode 100644 index 0000000000..9cbec55846 --- /dev/null +++ b/malloc/Versions @@ -0,0 +1,47 @@ +libc { + GLIBC_2.0 { + # global variables + _obstack; + + # interface of malloc functions + __libc_calloc; __libc_free; __libc_mallinfo; __libc_malloc; + __libc_mallopt; __libc_memalign; __libc_pvalloc; __libc_realloc; + __libc_valloc; + __malloc_initialize_hook; __free_hook; __malloc_hook; __realloc_hook; + __memalign_hook; __after_morecore_hook; + __malloc_initialized; __default_morecore; __morecore; + + # functions used in inline functions or macros + _obstack_allocated_p; _obstack_begin; _obstack_begin_1; + _obstack_free; _obstack_memory_used; _obstack_newchunk; + + # variables in normal name space + mallwatch; obstack_alloc_failed_handler; obstack_exit_failure; + + # c* + calloc; cfree; + + # f* + free; + + # m* + mallinfo; malloc; malloc_get_state; malloc_set_state; malloc_stats; + malloc_trim; malloc_usable_size; mallopt; memalign; mprobe; mtrace; + muntrace; + + # o* + obstack_free; + + # p* + pvalloc; + + # r* + realloc; + + # t* + tr_break; + + # v* + valloc; + } +} diff --git a/math/libm.map b/math/Versions index 3fc4167213..9c71d3233d 100644 --- a/math/libm.map +++ b/math/Versions @@ -1,5 +1,35 @@ -GLIBC_2.0 { - global: +libc { + GLIBC_2.0 { + # functions used in inline functions or macros + __isnan; __isnanf; __isnanl; __finite; __finitef; __finitel; + __isinf; __isinff; __isinfl; + + # c* + copysign; copysignf; copysignl; + + # f* + finite; finitef; finitel; frexp; frexpf; frexpl; + + # i* + isinf; isinff; isinfl; isnan; isnanf; isnanl; ldexp; ldexpf; ldexpl; + + # m* + modf; modff; modfl; + + # s* + scalbn; scalbnf; scalbnl; + } + GLIBC_2.1 { + # functions used in inline functions or macros + __signbit; __signbitf; __signbitl; + + # s* + scalbln; scalblnf; scalblnl; + } +} + +libm { + GLIBC_2.0 { # mathematical functions acos; acosf; acosl; acosh; acoshf; acoshl; @@ -61,15 +91,8 @@ GLIBC_2.0 { # functions used in inline functions or macros __log1p; __atan2; - - local: - *; -}; - - -GLIBC_2.1 { - global: - + } + GLIBC_2.1 { # mathematical functions exp2; exp2f; exp2l; exp10; exp10f; exp10l; @@ -131,5 +154,5 @@ GLIBC_2.1 { # symbols used in macros from sysdeps/powerpc/bits/fenv.h __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env; - -} GLIBC_2.0; + } +} diff --git a/md5-crypt/Makefile b/md5-crypt/Makefile index 27a8b0098a..40186eceef 100644 --- a/md5-crypt/Makefile +++ b/md5-crypt/Makefile @@ -66,7 +66,7 @@ libmd5crypt: $(objpfx)libmd5crypt.so # drop in replacement. LDFLAGS-md5crypt.so = -Wl,-soname=lib$(libprefix)crypt.so$(libcrypt.so-version) # We also use the same version script. -libmd5crypt-map := libcrypt.map +libmd5crypt-map := $(common-objpfx)libcrypt.map endif define o-iterator-doit diff --git a/md5-crypt/libcrypt.map b/md5-crypt/Versions index 9e0c20792f..389e7d544a 100644 --- a/md5-crypt/libcrypt.map +++ b/md5-crypt/Versions @@ -1,7 +1,5 @@ -GLIBC_2.0 { - global: +libcrypt { + GLIBC_2.0 { crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; - - local: - *; -}; + } +} diff --git a/misc/Versions b/misc/Versions new file mode 100644 index 0000000000..abde3e713c --- /dev/null +++ b/misc/Versions @@ -0,0 +1,102 @@ +libc { + GLIBC_2.0 { + # 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; + + # functions used in other libraries + __select; + + # variables in normal name space + error_message_count; error_one_per_line; error_print_progname; + + # variables in normal name space + loc1; loc2; locs; + program_invocation_name; program_invocation_short_name; + + # a* + acct; addmntent; advance; + + # c* + chflags; chroot; closelog; + + # d* + daemon; dirname; + + # e* + ecvt; ecvt_r; endfsent; endmntent; endttyent; endusershell; + + # e* + err; error; error_at_line; errx; + + # f* + fchflags; fcvt; fcvt_r; fdatasync; fsync; ftruncate; + + # g* + gcvt; get_avphys_pages; get_nprocs; get_nprocs_conf; get_phys_pages; + getfsent; getfsfile; getfsspec; gethostid; gethostname; getmntent; + getmntent_r; getpagesize; getpass; getttyent; getttynam; getusershell; + gtty; + + # h* + hasmntopt; hcreate; hcreate_r; hdestroy; hdestroy_r; hsearch; hsearch_r; + + # i* + insque; ioctl; + + # j* + jrand48; jrand48_r; lfind; lsearch; + + # m* + madvise; mkstemp; mktemp; mlock; mlockall; mmap; mount; mprotect; msync; + munlock; munlockall; munmap; + + # o* + openlog; + + # p* + ptrace; + + # q* + qecvt; qecvt_r; qfcvt; qfcvt_r; qgcvt; + + # r* + readv; remque; revoke; + + # s* + select; setdomainname; setfsent; sethostent; sethostid; sethostname; + setlogmask; setmntent; setregid; setreuid; setttyent; setusershell; sstk; + stty; sync; syscall; syslog; + + # t* + tdelete; tfind; truncate; tsearch; ttyslot; twalk; + + # u* + ualarm; usleep; ustat; utimes; + + # v* + verr; verrx; vhangup; vsyslog; vwarn; vwarnx; + + # w* + warn; warnx; + + # w* + writev; + } + GLIBC_2.1 { + # f* + ftruncate64; + + # m* + mmap64; + + # t* + tdestroy; truncate64; + } +} diff --git a/nis/Makefile b/nis/Makefile index 30d356dcb2..c736b5a59a 100644 --- a/nis/Makefile +++ b/nis/Makefile @@ -53,7 +53,6 @@ libnsl-routines = yp_xdr ypclnt ypupdate_xdr \ nis_modify nis_remove nis_add nis_defaults\ nis_findserv nis_callback nis_clone_dir nis_clone_obj\ nis_clone_res -libnsl-map = libnsl.map libnss_compat-routines := $(addprefix compat-,grp pwd spwd initgroups) \ nisplus-parser diff --git a/nis/Versions b/nis/Versions new file mode 100644 index 0000000000..aa2df3a048 --- /dev/null +++ b/nis/Versions @@ -0,0 +1,121 @@ +libnsl { + GLIBC_2.0 { + # Many programs expect this, but every user program should + # have it's own version, since the interface is different on + # various platforms. + xdr_domainname; xdr_keydat; xdr_mapname; + xdr_peername; xdr_valdat; xdr_yp_buf; + xdr_ypbind_binding; xdr_ypbind_resp; xdr_ypbind_resptype; + xdr_ypbind_setdom; xdr_ypdelete_args; xdr_ypmap_parms; + xdr_ypmaplist; xdr_yppush_status; xdr_yppushresp_xfr; + xdr_ypreq_key; xdr_ypreq_nokey; xdr_ypreq_xfr; + xdr_ypresp_all; xdr_ypresp_key_val; xdr_ypresp_maplist; + xdr_ypresp_master; xdr_ypresp_order; xdr_ypresp_val; + xdr_ypresp_xfr; xdr_ypstat; xdr_ypupdate_args; + xdr_ypxfrstat; + + __yp_check; + yp_all; yp_bind; yp_first; + yp_get_default_domain; yp_maplist; yp_master; + yp_match; yp_next; yp_order; + yp_unbind; yp_update; ypbinderr_string; + yperr_string; ypprot_err; + } + GLIBC_2.1 { + nis_add; nis_add_entry; nis_addmember; + nis_checkpoint; nis_clone_directory; nis_clone_object; + nis_clone_result; nis_creategroup; nis_destroy_object; + nis_destroygroup; nis_dir_cmp; nis_domain_of; + nis_domain_of_r; nis_first_entry; nis_free_directory; + nis_free_object; nis_free_request; nis_freenames; + nis_freeresult; nis_freeservlist; nis_freetags; + nis_getnames; nis_getservlist; nis_ismember; + nis_leaf_of; nis_leaf_of_r; nis_lerror; + nis_list; nis_local_directory; nis_local_group; + nis_local_host; nis_local_principal; nis_lookup; + nis_mkdir; nis_modify; nis_modify_entry; + nis_name_of; nis_name_of_r; nis_next_entry; + nis_perror; nis_ping; nis_print_directory; + nis_print_entry; nis_print_group; nis_print_group_entry; + nis_print_link; nis_print_object; nis_print_result; + nis_print_rights; nis_print_table; nis_read_obj; + nis_remove; nis_remove_entry; nis_removemember; + nis_rmdir; nis_servstate; nis_sperrno; + nis_sperror; nis_sperror_r; nis_stats; + nis_verifygroup; nis_write_obj; + + xdr_cback_data; xdr_obj_p; + + # This functions are needed by the NIS+ tools and rpc.nisd, + # they should never be used in a normal user program ! + __do_niscall2; __free_fdresult; __nis_default_access; + __nis_default_group; __nis_default_owner; __nis_default_ttl; + __nis_finddirectory; __nis_hash; + readColdStartFile; writeColdStartFile; + } +} + +libnss_compat { + GLIBC_2.0 { + _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_initgroups; + _nss_compat_setgrent; _nss_compat_setpwent; _nss_compat_setspent; + } +} + +libnss_nis { + GLIBC_2.0 { + _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; + _nss_nis_endservent; _nss_nis_endspent; _nss_nis_getaliasbyname_r; + _nss_nis_getaliasent_r; _nss_nis_getetherent_r; _nss_nis_getgrent_r; + _nss_nis_getgrgid_r; _nss_nis_getgrnam_r; _nss_nis_gethostbyaddr_r; + _nss_nis_gethostbyname2_r; _nss_nis_gethostbyname_r; _nss_nis_gethostent_r; + _nss_nis_gethostton_r; _nss_nis_getnetbyaddr_r; _nss_nis_getnetbyname_r; + _nss_nis_getnetent_r; _nss_nis_getnetgrent_r; _nss_nis_getntohost_r; + _nss_nis_getprotobyname_r; _nss_nis_getprotobynumber_r; + _nss_nis_getprotoent_r; _nss_nis_getpublickey; _nss_nis_getpwent_r; + _nss_nis_getpwnam_r; _nss_nis_getpwuid_r; _nss_nis_getrpcbyname_r; + _nss_nis_getrpcbynumber_r; _nss_nis_getrpcent_r; _nss_nis_getsecretkey; + _nss_nis_getservbyname_r; _nss_nis_getservbyport_r; _nss_nis_getservent_r; + _nss_nis_getspent_r; _nss_nis_getspnam_r; _nss_nis_initgroups; + _nss_nis_netname2user; _nss_nis_setaliasent; _nss_nis_setetherent; + _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; + } +} + +libnss_nisplus { + GLIBC_2.1 { + _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; + _nss_nisplus_endservent; _nss_nisplus_endspent; + _nss_nisplus_getaliasbyname_r; _nss_nisplus_getaliasent_r; + _nss_nisplus_getetherent_r; _nss_nisplus_getgrent_r; + _nss_nisplus_getgrgid_r; _nss_nisplus_getgrnam_r; + _nss_nisplus_gethostbyaddr_r; _nss_nisplus_gethostbyname2_r; + _nss_nisplus_gethostbyname_r; _nss_nisplus_gethostent_r; + _nss_nisplus_gethostton_r; _nss_nisplus_getnetbyaddr_r; + _nss_nisplus_getnetbyname_r; _nss_nisplus_getnetent_r; + _nss_nisplus_getnetgrent_r; _nss_nisplus_getntohost_r; + _nss_nisplus_getprotobyname_r; _nss_nisplus_getprotobynumber_r; + _nss_nisplus_getprotoent_r; _nss_nisplus_getpublickey; + _nss_nisplus_getpwent_r; _nss_nisplus_getpwnam_r; _nss_nisplus_getpwuid_r; + _nss_nisplus_getrpcbyname_r; _nss_nisplus_getrpcbynumber_r; + _nss_nisplus_getrpcent_r; _nss_nisplus_getsecretkey; + _nss_nisplus_getservbyname_r; _nss_nisplus_getservbynumber_r; + _nss_nisplus_getservent_r; _nss_nisplus_getspent_r; + _nss_nisplus_getspnam_r; _nss_nisplus_netname2user; + _nss_nisplus_parse_grent; _nss_nisplus_parse_pwent; + _nss_nisplus_parse_spent; _nss_nisplus_setaliasent; + _nss_nisplus_setetherent; _nss_nisplus_setgrent; _nss_nisplus_sethostent; + _nss_nisplus_setnetent; _nss_nisplus_setnetgrent; _nss_nisplus_setprotoent; + _nss_nisplus_setpwent; _nss_nisplus_setrpcent; _nss_nisplus_setservent; + _nss_nisplus_setspent; + } +} diff --git a/nis/libnsl.map b/nis/libnsl.map deleted file mode 100644 index 9d0efd0567..0000000000 --- a/nis/libnsl.map +++ /dev/null @@ -1,62 +0,0 @@ -GLIBC_2.0 { - global: - - # Many programs expect this, but every user program should - # have it's own version, since the interface is different on - # various platforms. - xdr_domainname; xdr_keydat; xdr_mapname; - xdr_peername; xdr_valdat; xdr_yp_buf; - xdr_ypbind_binding; xdr_ypbind_resp; xdr_ypbind_resptype; - xdr_ypbind_setdom; xdr_ypdelete_args; xdr_ypmap_parms; - xdr_ypmaplist; xdr_yppush_status; xdr_yppushresp_xfr; - xdr_ypreq_key; xdr_ypreq_nokey; xdr_ypreq_xfr; - xdr_ypresp_all; xdr_ypresp_key_val; xdr_ypresp_maplist; - xdr_ypresp_master; xdr_ypresp_order; xdr_ypresp_val; - xdr_ypresp_xfr; xdr_ypstat; xdr_ypupdate_args; - xdr_ypxfrstat; - - __yp_check; - yp_all; yp_bind; yp_first; - yp_get_default_domain; yp_maplist; yp_master; - yp_match; yp_next; yp_order; - yp_unbind; yp_update; ypbinderr_string; - yperr_string; ypprot_err; - - local: - *; -}; - -GLIBC_2.1 { - global: - - nis_add; nis_add_entry; nis_addmember; - nis_checkpoint; nis_clone_directory; nis_clone_object; - nis_clone_result; nis_creategroup; nis_destroy_object; - nis_destroygroup; nis_dir_cmp; nis_domain_of; - nis_domain_of_r; nis_first_entry; nis_free_directory; - nis_free_object; nis_free_request; nis_freenames; - nis_freeresult; nis_freeservlist; nis_freetags; - nis_getnames; nis_getservlist; nis_ismember; - nis_leaf_of; nis_leaf_of_r; nis_lerror; - nis_list; nis_local_directory; nis_local_group; - nis_local_host; nis_local_principal; nis_lookup; - nis_mkdir; nis_modify; nis_modify_entry; - nis_name_of; nis_name_of_r; nis_next_entry; - nis_perror; nis_ping; nis_print_directory; - nis_print_entry; nis_print_group; nis_print_group_entry; - nis_print_link; nis_print_object; nis_print_result; - nis_print_rights; nis_print_table; nis_read_obj; - nis_remove; nis_remove_entry; nis_removemember; - nis_rmdir; nis_servstate; nis_sperrno; - nis_sperror; nis_sperror_r; nis_stats; - nis_verifygroup; nis_write_obj; - - xdr_cback_data; xdr_obj_p; - - # This functions are needed by the NIS+ tools and rpc.nisd, - # they should never be used in a normal user program ! - __do_niscall2; __free_fdresult; __nis_default_access; - __nis_default_group; __nis_default_owner; __nis_default_ttl; - __nis_finddirectory; __nis_hash; - readColdStartFile; writeColdStartFile; -} GLIBC_2.0; diff --git a/nis/libnss_compat.map b/nis/libnss_compat.map deleted file mode 100644 index 6178bb903a..0000000000 --- a/nis/libnss_compat.map +++ /dev/null @@ -1,11 +0,0 @@ -GLIBC_2.0 { - global: - _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_initgroups; - _nss_compat_setgrent; _nss_compat_setpwent; _nss_compat_setspent; - - local: - *; -}; diff --git a/nis/libnss_nis.map b/nis/libnss_nis.map deleted file mode 100644 index 5d84fdcc6d..0000000000 --- a/nis/libnss_nis.map +++ /dev/null @@ -1,25 +0,0 @@ -GLIBC_2.0 { - global: - _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; - _nss_nis_endservent; _nss_nis_endspent; _nss_nis_getaliasbyname_r; - _nss_nis_getaliasent_r; _nss_nis_getetherent_r; _nss_nis_getgrent_r; - _nss_nis_getgrgid_r; _nss_nis_getgrnam_r; _nss_nis_gethostbyaddr_r; - _nss_nis_gethostbyname2_r; _nss_nis_gethostbyname_r; _nss_nis_gethostent_r; - _nss_nis_gethostton_r; _nss_nis_getnetbyaddr_r; _nss_nis_getnetbyname_r; - _nss_nis_getnetent_r; _nss_nis_getnetgrent_r; _nss_nis_getntohost_r; - _nss_nis_getprotobyname_r; _nss_nis_getprotobynumber_r; - _nss_nis_getprotoent_r; _nss_nis_getpublickey; _nss_nis_getpwent_r; - _nss_nis_getpwnam_r; _nss_nis_getpwuid_r; _nss_nis_getrpcbyname_r; - _nss_nis_getrpcbynumber_r; _nss_nis_getrpcent_r; _nss_nis_getsecretkey; - _nss_nis_getservbyname_r; _nss_nis_getservbyport_r; _nss_nis_getservent_r; - _nss_nis_getspent_r; _nss_nis_getspnam_r; _nss_nis_initgroups; - _nss_nis_netname2user; _nss_nis_setaliasent; _nss_nis_setetherent; - _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; - - local: - *; -}; diff --git a/nis/libnss_nisplus.map b/nis/libnss_nisplus.map deleted file mode 100644 index 07f4660758..0000000000 --- a/nis/libnss_nisplus.map +++ /dev/null @@ -1,32 +0,0 @@ -GLIBC_2.1 { - global: - _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; - _nss_nisplus_endservent; _nss_nisplus_endspent; - _nss_nisplus_getaliasbyname_r; _nss_nisplus_getaliasent_r; - _nss_nisplus_getetherent_r; _nss_nisplus_getgrent_r; - _nss_nisplus_getgrgid_r; _nss_nisplus_getgrnam_r; - _nss_nisplus_gethostbyaddr_r; _nss_nisplus_gethostbyname2_r; - _nss_nisplus_gethostbyname_r; _nss_nisplus_gethostent_r; - _nss_nisplus_gethostton_r; _nss_nisplus_getnetbyaddr_r; - _nss_nisplus_getnetbyname_r; _nss_nisplus_getnetent_r; - _nss_nisplus_getnetgrent_r; _nss_nisplus_getntohost_r; - _nss_nisplus_getprotobyname_r; _nss_nisplus_getprotobynumber_r; - _nss_nisplus_getprotoent_r; _nss_nisplus_getpublickey; - _nss_nisplus_getpwent_r; _nss_nisplus_getpwnam_r; _nss_nisplus_getpwuid_r; - _nss_nisplus_getrpcbyname_r; _nss_nisplus_getrpcbynumber_r; - _nss_nisplus_getrpcent_r; _nss_nisplus_getsecretkey; - _nss_nisplus_getservbyname_r; _nss_nisplus_getservbynumber_r; - _nss_nisplus_getservent_r; _nss_nisplus_getspent_r; - _nss_nisplus_getspnam_r; _nss_nisplus_netname2user; - _nss_nisplus_parse_grent; _nss_nisplus_parse_pwent; - _nss_nisplus_parse_spent; _nss_nisplus_setaliasent; - _nss_nisplus_setetherent; _nss_nisplus_setgrent; _nss_nisplus_sethostent; - _nss_nisplus_setnetent; _nss_nisplus_setnetgrent; _nss_nisplus_setprotoent; - _nss_nisplus_setpwent; _nss_nisplus_setrpcent; _nss_nisplus_setservent; - _nss_nisplus_setspent; - - local: - *; -}; diff --git a/nss/libnss_files.map b/nss/Versions index 8daa75f5bb..217f4da7a2 100644 --- a/nss/libnss_files.map +++ b/nss/Versions @@ -1,5 +1,33 @@ -GLIBC_2.0 { - global: +libc { + GLIBC_2.0 { + # functions used in other libraries + __nss_passwd_lookup; __nss_group_lookup; __nss_next; + _nss_files_parse_grent; _nss_files_parse_pwent; _nss_files_parse_spent; + __nss_database_lookup; __nss_configure_lookup; + } +} + +libnss_db { + GLIBC_2.0 { + _nss_db_endaliasent; _nss_db_endetherent; _nss_db_endgrent; + _nss_db_endnetgrent; _nss_db_endprotoent; _nss_db_endpwent; + _nss_db_endrpcent; _nss_db_endservent; _nss_db_endspent; + _nss_db_getaliasbyname_r; _nss_db_getaliasent_r; _nss_db_getetherent_r; + _nss_db_getgrent_r; _nss_db_getgrgid_r; _nss_db_getgrnam_r; + _nss_db_gethostton_r; _nss_db_getnetgrent_r; _nss_db_getntohost_r; + _nss_db_getprotobyname_r; _nss_db_getprotobynumber_r; + _nss_db_getprotoent_r; _nss_db_getpwent_r; _nss_db_getpwnam_r; + _nss_db_getpwuid_r; _nss_db_getrpcbyname_r; _nss_db_getrpcbynumber_r; + _nss_db_getrpcent_r; _nss_db_getservbyname_r; _nss_db_getservbyport_r; + _nss_db_getservent_r; _nss_db_getspent_r; _nss_db_getspnam_r; + _nss_db_setaliasent; _nss_db_setetherent; _nss_db_setgrent; + _nss_db_setnetgrent; _nss_db_setprotoent; _nss_db_setpwent; + _nss_db_setrpcent; _nss_db_setservent; _nss_db_setspent; + } +} + +libnss_files { + GLIBC_2.0 { _nss_files_setaliasent; _nss_files_endaliasent; _nss_files_getaliasbyname_r; @@ -69,10 +97,9 @@ GLIBC_2.0 { _nss_files_getspnam_r; _nss_netgroup_parseline; - + } + GLIBC_2.1 { _nss_files_getpublickey; _nss_files_getsecretkey; - - local: - *; -}; + } +} diff --git a/nss/libnss_db.map b/nss/libnss_db.map deleted file mode 100644 index f0765c7522..0000000000 --- a/nss/libnss_db.map +++ /dev/null @@ -1,20 +0,0 @@ -GLIBC_2.0 { - global: - _nss_db_endaliasent; _nss_db_endetherent; _nss_db_endgrent; - _nss_db_endnetgrent; _nss_db_endprotoent; _nss_db_endpwent; - _nss_db_endrpcent; _nss_db_endservent; _nss_db_endspent; - _nss_db_getaliasbyname_r; _nss_db_getaliasent_r; _nss_db_getetherent_r; - _nss_db_getgrent_r; _nss_db_getgrgid_r; _nss_db_getgrnam_r; - _nss_db_gethostton_r; _nss_db_getnetgrent_r; _nss_db_getntohost_r; - _nss_db_getprotobyname_r; _nss_db_getprotobynumber_r; - _nss_db_getprotoent_r; _nss_db_getpwent_r; _nss_db_getpwnam_r; - _nss_db_getpwuid_r; _nss_db_getrpcbyname_r; _nss_db_getrpcbynumber_r; - _nss_db_getrpcent_r; _nss_db_getservbyname_r; _nss_db_getservbyport_r; - _nss_db_getservent_r; _nss_db_getspent_r; _nss_db_getspnam_r; - _nss_db_setaliasent; _nss_db_setetherent; _nss_db_setgrent; - _nss_db_setnetgrent; _nss_db_setprotoent; _nss_db_setpwent; - _nss_db_setrpcent; _nss_db_setservent; _nss_db_setspent; - - local: - *; -}; diff --git a/posix/Versions b/posix/Versions new file mode 100644 index 0000000000..049d232629 --- /dev/null +++ b/posix/Versions @@ -0,0 +1,80 @@ +libc { + GLIBC_2.0 { + # 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; + + # functions used in other libraries + __sched_get_priority_max; __sched_get_priority_min; + __sched_getparam; __sched_getscheduler; __sched_setscheduler; + __sched_yield; __fork; __getpid; __wait; + + # variables in normal name space + optarg; opterr; optind; optopt; re_max_failures; re_syntax_options; + + # a* + alarm; + + # c* + confstr; + + # e* + execl; execle; execlp; execv; execve; execvp; fexecve; + + # f* + fnmatch; fork; fpathconf; freeaddrinfo; + + # g* + getaddrinfo; getdtablesize; getegid; geteuid; getgid; getopt; getopt_long; + getopt_long_only; getpgid; getpgrp; getpid; getppid; getsid; getuid; glob; + glob_pattern_p; globfree; group_member; + + # n* + nanosleep; + + # p* + pathconf; pause; pselect; + + # r* + re_comp; re_compile_fastmap; re_compile_pattern; re_exec; re_match; + re_match_2; re_search; re_search_2; re_set_registers; re_set_syntax; + regcomp; regerror; regexec; regfree; + + # s* + sched_get_priority_max; sched_get_priority_min; sched_getparam; + sched_getscheduler; sched_rr_get_interval; sched_setparam; + sched_setscheduler; sched_yield; setegid; seteuid; setgid; setlogin; + setpgid; setpgrp; setsid; setuid; sleep; sysconf; + + # t* + times; + + # u* + uname; + + # v* + vfork; + + # w* + wait; wait3; wait4; waitpid; + } + GLIBC_2.1 { + # functions used in other libraries + __pread64; __pwrite64; + + # g* + gai_strerror; getnameinfo; + + # p* + pread; pread64; pwrite; pwrite64; + + # w* + waitid; wordexp; wordfree; + } +} diff --git a/pwd/Versions b/pwd/Versions new file mode 100644 index 0000000000..45a750eb41 --- /dev/null +++ b/pwd/Versions @@ -0,0 +1,15 @@ +libc { + GLIBC_2.0 { + # e* + endpwent; + + # f* + fgetpwent; fgetpwent_r; + + # g* + getpw; getpwent; getpwent_r; getpwnam; getpwnam_r; getpwuid; getpwuid_r; + + # p* + putpwent; setpwent; + } +} diff --git a/resolv/libresolv.map b/resolv/Versions index 8cb621072a..112f55a19e 100644 --- a/resolv/libresolv.map +++ b/resolv/Versions @@ -1,5 +1,27 @@ -GLIBC_2.0 { - global: +libc { + GLIBC_2.0 { + # global variables + _h_errno; _res; + + # helper functions + __h_errno_location; + + # functions used in other libraries + __res_randomid; + + # variables in normal name space + h_errlist; h_errno; h_nerr; + + # h* + herror; hstrerror; + + # r* + res_init; + } +} + +libresolv { + GLIBC_2.0 { _gethtbyaddr; _gethtbyname; _gethtbyname2; _gethtent; _getlong; _getshort; _res_opcodes; _res_resultcodes; _sethtent; dn_expand; inet_net_ntop; inet_net_pton; inet_neta; res_gethostbyaddr; @@ -19,7 +41,13 @@ GLIBC_2.0 { __res_nameinquery; __res_ownok; __res_queriesmatch; __res_send; __sym_ntop; __sym_ntos; __sym_ston; + } +} - local: - *; -}; +libnss_dns { + GLIBC_2.0 { + _nss_dns_gethostbyaddr_r; _nss_dns_gethostbyname2_r; + _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r; + _nss_dns_getnetbyname_r; + } +} diff --git a/resolv/libnss_dns.map b/resolv/libnss_dns.map deleted file mode 100644 index 423cdf98bb..0000000000 --- a/resolv/libnss_dns.map +++ /dev/null @@ -1,9 +0,0 @@ -GLIBC_2.0 { - global: - _nss_dns_gethostbyaddr_r; _nss_dns_gethostbyname2_r; - _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r; - _nss_dns_getnetbyname_r; - - local: - *; -}; diff --git a/resource/Versions b/resource/Versions new file mode 100644 index 0000000000..caff6a2f50 --- /dev/null +++ b/resource/Versions @@ -0,0 +1,25 @@ +libc { + GLIBC_2.0 { + # g* + getpriority; getrlimit; getrusage; + + # n* + nice; + + # s* + setpriority; setrlimit; + + # u* + ulimit; + + # v* + vlimit; vtimes; + } + GLIBC_2.1 { + # g* + getrlimit64; + + # s* + setrlimit64; + } +} diff --git a/rt/librt.map b/rt/Versions index 13381ec800..abe9e33423 100644 --- a/rt/librt.map +++ b/rt/Versions @@ -1,11 +1,8 @@ -GLIBC_2.1 { - global: - +librt { + GLIBC_2.1 { # AIO functions. aio_cancel; aio_cancel64; aio_error; aio_error64; aio_fsync; aio_fsync64; aio_init; aio_read; aio_read64; aio_return; aio_return64; aio_suspend; aio_suspend64; aio_write; aio_write64; lio_listio; lio_listio64; - - local: - *; -}; + } +} diff --git a/setjmp/Versions b/setjmp/Versions new file mode 100644 index 0000000000..68292ee70a --- /dev/null +++ b/setjmp/Versions @@ -0,0 +1,16 @@ +libc { + GLIBC_2.0 { + # functions with special/multiple interfaces + _longjmp; __sigsetjmp; _setjmp; + + # l* + longjmp; + + # s* + setjmp; + } + GLIBC_2.1 { + # helper functions + __libc_longjmp; __libc_siglongjmp; + } +} diff --git a/shadow/Versions b/shadow/Versions new file mode 100644 index 0000000000..7a0dae565e --- /dev/null +++ b/shadow/Versions @@ -0,0 +1,27 @@ +libc { + GLIBC_2.0 { + # e* + endspent; + + # f* + fgetspent; fgetspent_r; + + # g* + getspent; getspent_r; getspnam; getspnam_r; + + # l* + lckpwdf; + + # p* + putspent; + + # s* + setspent; + + # s* + sgetspent; sgetspent_r; + + # u* + ulckpwdf; + } +} diff --git a/signal/Versions b/signal/Versions new file mode 100644 index 0000000000..a24dc03aa6 --- /dev/null +++ b/signal/Versions @@ -0,0 +1,44 @@ +libc { + GLIBC_2.0 { + # functions with special/multiple interfaces + __sigaddset; __sigdelset; __sigismember; __sysv_signal; + + # functions used in inline functions or macros + __sigpause; + + # functions used in other libraries + __sigaction; + + # b* + bsd_signal; + + # g* + gsignal; + + # k* + kill; killpg; + + # p* + psignal; + + # r* + raise; + + # s* + sigaction; sigaddset; sigaltstack; sigandset; sigblock; sigdelset; + sigemptyset; sigfillset; siggetmask; siginterrupt; sigisemptyset; + sigismember; siglongjmp; signal; sigorset; sigpause; sigpending; + sigprocmask; sigreturn; sigsetmask; sigstack; sigsuspend; sigvec; + sigwait; ssignal; + } + GLIBC_2.1 { + # helper functions + __libc_current_sigrtmin; __libc_current_sigrtmax; __libc_allocate_rtsig; + + # s* + sighold; sigrelse; sigignore; sigset; sysv_signal; + + # New RT signal functions. + sigqueue; sigtimedwait; sigwaitinfo; + } +} diff --git a/socket/Versions b/socket/Versions new file mode 100644 index 0000000000..36c7653ac3 --- /dev/null +++ b/socket/Versions @@ -0,0 +1,35 @@ +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; + + # a* + accept; + + # b* + bind; + + # c* + connect; + + # g* + getpeername; getsockname; getsockopt; + + # i* + isfdtype; + + # l* + listen; + + # r* + recv; recvfrom; recvmsg; + + # s* + send; sendmsg; sendto; setsockopt; socket; socketpair; + } +} diff --git a/stdio-common/Versions b/stdio-common/Versions new file mode 100644 index 0000000000..5db571db92 --- /dev/null +++ b/stdio-common/Versions @@ -0,0 +1,35 @@ +libc { + GLIBC_2.0 { + # global variables + _itoa_lower_digits; _itoa_upper_digits; _sys_errlist; _sys_nerr; + _sys_siglist; + + # functions used in other libraries + __printf_fp; __vfscanf; + + # variables in normal name space + sys_errlist; sys_nerr; sys_sigabbrev; sys_siglist; + + # c* + ctermid; cuserid; + + # p* + parse_printf_format; perror; + + # r* + register_printf_function; remove; rename; + + # t* + tempnam; tmpfile; tmpnam; tmpnam_r; + + # v* + vfprintf; vfscanf; + } + GLIBC_2.1 { + # p* + printf_size; printf_size_info; + + # t* + tmpfile64; + } +} diff --git a/stdio/Versions b/stdio/Versions new file mode 100644 index 0000000000..5c6bbe35c5 --- /dev/null +++ b/stdio/Versions @@ -0,0 +1,6 @@ +libc { + GLIBC_2.0 { + # more or less standard functions + __fillbf; __flshfp; + } +} diff --git a/stdlib/Versions b/stdlib/Versions new file mode 100644 index 0000000000..6e92552794 --- /dev/null +++ b/stdlib/Versions @@ -0,0 +1,86 @@ +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; + + # functions used in inline functions or macros + __strto*_internal; + + # functions used in other libraries + __secure_getenv; __on_exit; + + # a* + a64l; abort; abs; atexit; atof; atoi; atol; atoll; + + # b* + bsearch; + + # c* + canonicalize_file_name; clearenv; + + # d* + div; drand48; drand48_r; + + # e* + erand48; erand48_r; exit; + + # g* + getenv; getsubopt; + + # i* + initstate; initstate_r; + + # l* + l64a; labs; lcong48; lcong48_r; ldiv; llabs; lldiv; lrand48; lrand48_r; + + # m* + mblen; mbrlen; mbrtowc; mbsinit; mbsnrtowcs; mbsrtowcs; mbstowcs; + mbtowc; mcheck; mcount; mrand48; mrand48_r; + + # n* + nrand48; nrand48_r; + + # o* + on_exit; + + # p* + putenv; + + # q* + qsort; + + # r* + rand; rand_r; random; random_r; realpath; rpmatch; + + # s* + seed48; seed48_r; setcontext; setenv; setstate; setstate_r; srand; srand48; + srand48_r; srandom; srandom_r; step; strfmon; strtod; strtof; strtol; + strtold; strtoll; strtoq; strtoul; strtoull; strtouq; system; + + # u* + unsetenv; + + # w* + wcstombs; wctomb; + } + GLIBC_2.1 { + # a* + addseverity; + + # f* + fmtmsg; + + # g* + getcontext; + + # m* + makecontext; + + # s* + strtoimax; strtoumax; swapcontext; + } +} diff --git a/streams/Versions b/streams/Versions new file mode 100644 index 0000000000..9a6f4d756c --- /dev/null +++ b/streams/Versions @@ -0,0 +1,15 @@ +libc { + GLIBC_2.1 { + # f* + fattach; fdetach; + + # g* + getmsg; getpmsg; + + # i* + isastream; + + # p* + putmsg; putpmsg; + } +} diff --git a/string/Versions b/string/Versions new file mode 100644 index 0000000000..977413902d --- /dev/null +++ b/string/Versions @@ -0,0 +1,53 @@ +libc { + GLIBC_2.0 { + # functions with required interface outside normal name space + __argz_count; __argz_stringify; __argz_next; + + # functions used in inline functions or macros + __bzero; __strtok_r; + + # functions used in other libraries + __stpncpy; __stpcpy; __strdup; __mempcpy; __strcasecmp; __strerror_r; + __ffs; + + # a* + argz_add; argz_add_sep; argz_append; argz_count; argz_create; + argz_create_sep; argz_delete; argz_extract; argz_insert; argz_next; + argz_replace; argz_stringify; + + # b* + basename; bcmp; bcopy; bzero; + + # e* + envz_add; envz_entry; envz_get; envz_merge; envz_remove; + envz_strip; + + # f* + ffs; + + # i* + index; + + # m* + memccpy; memchr; memcmp; memcpy; memfrob; memmem; memmove; memset; + + # r* + rindex; + + # s* + stpcpy; stpncpy; strcasecmp; strcat; strchr; strcmp; strcoll; strcpy; + strcspn; strdup; strerror; strerror_r; strfry; strlen; strncasecmp; + strncat; strncmp; strncpy; strndup; strnlen; strpbrk; strrchr; strsep; + strsignal; strspn; strstr; strtok; strtok_r; strxfrm; swab; + } + GLIBC_2.1 { + # functions used in other libraries + __strcasestr; + + # m* + mempcpy; + + # s* + strcasestr; strverscmp; + } +} diff --git a/sunrpc/Versions b/sunrpc/Versions new file mode 100644 index 0000000000..d956486f9f --- /dev/null +++ b/sunrpc/Versions @@ -0,0 +1,99 @@ +libc { + GLIBC_2.0 { + # global variables. + _null_auth; + + # functions used in other libraries + _rpc_dtablesize; _seterr_reply; + + # variables in normal name space + rpc_createerr; svc_fdset; svcauthdes_stats; + + # a* + authnone_create; authunix_create; authunix_create_default; + + # b* + bindresvport; + + # c* + callrpc; + clnt_broadcast; clnt_create; clnt_pcreateerror; clnt_perrno; + clnt_perror; clnt_spcreateerror; clnt_sperrno; clnt_sperror; + clntraw_create; clnttcp_create; clntudp_bufcreate; clntudp_create; + + # g* + get_myaddress; getpublickey; getsecretkey; + + # p* + pmap_getmaps; pmap_getport; pmap_rmtcall; pmap_set; pmap_unset; + + # r* + registerrpc; + + # s* + svc_exit; svc_getreq; svc_getreqset; svc_register; svc_run; + svc_sendreply; svc_unregister; svcerr_auth; svcerr_decode; + svcerr_noproc; svcerr_noprog; svcerr_progvers; svcerr_systemerr; + svcerr_weakauth; svcfd_create; svcraw_create; svctcp_create; + svcudp_bufcreate; svcudp_create; svcudp_enablecache; + + # x* + xdr_accepted_reply; xdr_array; xdr_authunix_parms; xdr_bool; xdr_bytes; + xdr_callhdr; xdr_callmsg; xdr_char; xdr_cryptkeyarg; xdr_cryptkeyarg2; + xdr_cryptkeyres; xdr_des_block; xdr_double; xdr_enum; xdr_float; + xdr_free; xdr_int; xdr_key_netstarg; xdr_key_netstres; xdr_keybuf; + xdr_keystatus; xdr_long; xdr_netobj; xdr_opaque; xdr_opaque_auth; + xdr_pmap; xdr_pmaplist; xdr_pointer; xdr_reference; xdr_rejected_reply; + xdr_replymsg; xdr_rmtcall_args; xdr_rmtcallres; xdr_short; xdr_string; + xdr_u_char; xdr_u_int; xdr_u_long; xdr_u_short; xdr_union; xdr_vector; + xdr_void; xdr_wrapstring; xdrmem_create; xdrrec_create; + xdrrec_endofrecord; xdrrec_eof; xdrrec_skiprecord; xdrstdio_create; + xencrypt; xprt_register; xprt_unregister; + } + GLIBC_2.1 { + # Special Pointer to avoid keyserv deadlock + __key_decryptsession_pk_LOCAL; __key_encryptsession_pk_LOCAL; + __key_gendes_LOCAL; + + # a* + authdes_create; authdes_getucred; authdes_pk_create; + + # c* + cbc_crypt; + + # d* + des_setparity; + + # e* + ecb_crypt; + + # g* + getnetname; + + # h* + host2netname; + + # k* + key_decryptsession; key_decryptsession_pk; key_encryptsession; + key_encryptsession_pk; key_gendes; key_get_conv; key_secretkey_is_set; + key_setnet; key_setsecret; + + # n* + netname2host; netname2user; + + # p* + passwd2des; + + # r* + rtime; + + # u* + user2netname; + + # x* + xdecrypt; xdr_authdes_cred; xdr_authdes_verf; + xdr_cryptkeyarg; xdr_cryptkeyarg2; xdr_cryptkeyres; xdr_des_block; + xdr_getcredres; xdr_key_netstarg; xdr_key_netstres; + xdr_keybuf; xdr_keystatus; xdr_netnamestr; xdr_sizeof; xdr_unixcred; + } +} diff --git a/sysdeps/alpha/Versions b/sysdeps/alpha/Versions new file mode 100644 index 0000000000..c7c1f047f6 --- /dev/null +++ b/sysdeps/alpha/Versions @@ -0,0 +1,7 @@ +libc { + GLIBC_2.0 { + # functions with special/multiple interfaces + __divqu; __remqu; __divqs; __remqs; __divlu; __remlu; __divls; + __remls; __divl; __reml; __divq; __remq; __divqu; __remqu; + } +} diff --git a/sysdeps/alpha/fpu/Versions b/sysdeps/alpha/fpu/Versions new file mode 100644 index 0000000000..fa3d810c74 --- /dev/null +++ b/sysdeps/alpha/fpu/Versions @@ -0,0 +1,6 @@ +libc { + GLIBC_2.0 { + # functions used in other libraries + __ieee_get_fp_control; __ieee_set_fp_control; + } +} diff --git a/sysdeps/generic/elf/backtracesyms.c b/sysdeps/generic/elf/backtracesyms.c index 9941644f66..4147d956eb 100644 --- a/sysdeps/generic/elf/backtracesyms.c +++ b/sysdeps/generic/elf/backtracesyms.c @@ -53,8 +53,8 @@ __backtrace_symbols (array, size) "<fct-name>(<sym-name>)[+offset]. */ total += (strlen (info[cnt].dli_fname ?: "") + (info[cnt].dli_sname - ? strlen (info[cnt].dli_sname) + 2 - : 0) + ? strlen (info[cnt].dli_sname) + 3 + : 1) + WORD_WIDTH + 6); else total += 6 + WORD_WIDTH; diff --git a/sysdeps/i386/Versions b/sysdeps/i386/Versions new file mode 100644 index 0000000000..e5caa559b4 --- /dev/null +++ b/sysdeps/i386/Versions @@ -0,0 +1,6 @@ +libc { + GLIBC_2.1 { + # global variable + _fp_hw; + } +} diff --git a/sysdeps/sparc/Versions b/sysdeps/sparc/Versions new file mode 100644 index 0000000000..aa36082e9e --- /dev/null +++ b/sysdeps/sparc/Versions @@ -0,0 +1,5 @@ +libc { + GLIBC_2.0 { + .div; .mul; .rem; .udiv; .umul; .urem; + } +} diff --git a/sysdeps/unix/sysv/Versions b/sysdeps/unix/sysv/Versions new file mode 100644 index 0000000000..bdb8ba836c --- /dev/null +++ b/sysdeps/unix/sysv/Versions @@ -0,0 +1,5 @@ +libc { + GLIBC_2.0 { + sysinfo; + } +} diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions new file mode 100644 index 0000000000..52de4aa251 --- /dev/null +++ b/sysdeps/unix/sysv/linux/Versions @@ -0,0 +1,76 @@ +libc { + GLIBC_2.0 { + # functions used in inline functions or macros + __cmsg_nxthdr; + + # functions used in other libraries + __clone; + + # b* + bdflush; + + # c* + clone; create_module; + + # d* + delete_module; + + # g* + get_kernel_syms; getresgid; getresuid; + + # i* + init_module; + + # k* + klogctl; + + # l* + llseek; + + # m* + mremap; + + # n* + nfsservctl; + + # p* + personality; prctl; + + # q* + query_module; quotactl; + + # r* + reboot; + + # s* + setfsgid; setfsuid; + + # s* + setresgid; setresuid; shutdown; swapoff; swapon; sysctl; + + # u* + umount; uselib; + } + GLIBC_2.1 { + # 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; + + # New errlist. + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + + # chown interface change. + chown; + + # Change in pthread_attr_t. + pthread_attr_init; + + # c* + capget; capset; + } +} diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions new file mode 100644 index 0000000000..ad490400fb --- /dev/null +++ b/sysdeps/unix/sysv/linux/alpha/Versions @@ -0,0 +1,49 @@ +libc { + GLIBC_2.0 { + # Unfortunately in wider use. + _inb; _inw; _inl; _outb; _outw; _outl; _bus_base; _bus_base_sparse; + _hae_shift; + + # b* + bus_base; bus_base_sparse; + + # h* + hae_shift; + + # i* + inb; inl; inw; ioperm; iopl; + + # o* + outb; outl; outw; + + # p* + pciconfig_read; pciconfig_write; sethae; + } + GLIBC_2.1 { + # Linux/Alpha 64-bit timeval functions. + __select; select; + adjtime; adjtimex; __adjtimex; + __gettimeofday; + + # glob interface change + glob; globfree; + + # limit type change + getrusage; + + # time type change + gettimeofday; + + # i* + ieee_get_fp_control; ieee_set_fp_control; + + # s* + setitimer; settimeofday; + + # u* + utimes; + + # w* + wait4; + } +} diff --git a/sysdeps/unix/sysv/linux/getsysstats.c b/sysdeps/unix/sysv/linux/getsysstats.c index dd1c77a99e..26f8179afe 100644 --- a/sysdeps/unix/sysv/linux/getsysstats.c +++ b/sysdeps/unix/sysv/linux/getsysstats.c @@ -1,5 +1,5 @@ /* Determine various system internal values, Linux version. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -62,7 +62,7 @@ get_proc_path (char *buffer, size_t bufsize) series to add this, though. One possibility to implement it for systems using Linux 2.0 is to - examine the pseudo file /proc/meminfo. Here we have one entry for + examine the pseudo file /proc/cpuinfo. Here we have one entry for each processor. But not all systems have support for the /proc filesystem. If it diff --git a/sysdeps/unix/sysv/linux/i386/Versions b/sysdeps/unix/sysv/linux/i386/Versions new file mode 100644 index 0000000000..1ec868a57c --- /dev/null +++ b/sysdeps/unix/sysv/linux/i386/Versions @@ -0,0 +1,7 @@ +libc { + GLIBC_2.0 { + ioperm; iopl; + + vm86; + } +} diff --git a/sysdeps/unix/sysv/linux/mips/Versions b/sysdeps/unix/sysv/linux/mips/Versions new file mode 100644 index 0000000000..11614a4cd5 --- /dev/null +++ b/sysdeps/unix/sysv/linux/mips/Versions @@ -0,0 +1,9 @@ +libc { + GLIBC_2.0 { + # c* + cachectl; cacheflush; + + # s* + sysmips; + } +} diff --git a/sysvipc/Versions b/sysvipc/Versions new file mode 100644 index 0000000000..cc9284fc7a --- /dev/null +++ b/sysvipc/Versions @@ -0,0 +1,12 @@ +libc { + GLIBC_2.0 { + # f* + ftok; + + # m* + msgctl; msgget; msgrcv; msgsnd; + + # s* + semctl; semget; semop; shmat; shmctl; shmdt; shmget; + } +} diff --git a/termios/Versions b/termios/Versions new file mode 100644 index 0000000000..c6acfb2047 --- /dev/null +++ b/termios/Versions @@ -0,0 +1,18 @@ +libc { + GLIBC_2.0 { + # functions which have an additional interface since they are + # are cancelable. + __libc_tcdrain; + + # c* + cfgetispeed; cfgetospeed; cfmakeraw; cfsetispeed; cfsetospeed; cfsetspeed; + + # t* + tcdrain; tcflow; tcflush; tcgetattr; tcgetpgrp; tcsendbreak; tcsetattr; + tcsetpgrp; + } + GLIBC_2.1 { + # t* + tcgetsid; + } +} diff --git a/time/Versions b/time/Versions new file mode 100644 index 0000000000..24039f9630 --- /dev/null +++ b/time/Versions @@ -0,0 +1,52 @@ +libc { + GLIBC_2.0 { + # global variables + __timezone; __daylight; __tzname; + + # functions with special/multiple interfaces + __adjtimex; + + # functions used in other libraries + __gmtime_r; __gettimeofday; + + # variables in normal name space + daylight; timezone; tzname; + + # a* + adjtime; adjtimex; asctime; asctime_r; + + # c* + clock; ctime; ctime_r; + + # d* + difftime; dysize; + + # f* + ftime; + + # g* + getitimer; gettimeofday; gmtime; gmtime_r; + + # l* + localtime; localtime_r; + + # m* + mktime; + + # s* + setitimer; settimeofday; stime; strftime; strptime; + + # t* + time; timegm; timelocal; tzset; + } + GLIBC_2.1 { + # variables in normal name space + getdate_err; + + # g* + getdate; getdate_r; getitimer; + + # s* + strfxtime; + } +} diff --git a/versions.awk b/versions.awk new file mode 100644 index 0000000000..57660d235a --- /dev/null +++ b/versions.awk @@ -0,0 +1,105 @@ +# Combine version map fragments into version files for the generated +# shared object. +# (C) Copyright 1998 Free Software Foundation, Inc. +# Written by Ulrich Drepper <drepper@cygnus.com>, 1998. + +# Read definitions for the versions. +BEGIN { + nlibs=0; + while (getline < "Versions.def") { + if (/^[a-zA-Z_]+ {/) { + libs[$1] = 1; + curlib = $1; + while (getline < "Versions.def" && ! /^}/) { + if (NF > 1) { + versions[$1] = 1; + derived[curlib, $1] = (" " $2); + for (n = 3; n <= NF; ++n) { + derived[curlib, $1] = sprintf("%s, %s", derived[curlib, $1], $n); + } + } else { + versions[$1] = 1; + } + } + } + } + close("Versions.def"); + + tmpfile = (buildroot "/Versions.tmp"); + sort = ("sort -n >" tmpfile); +} + +# Remove comment lines. +/^ *#/ { + next; +} + +# This matches the beginning of the version information for a new library. +/^[a-zA-Z_]+/ { + actlib = $1; + if (libs[$1] != 1) { + printf("no versions defined for %s\n", $1); + exit 1; + } + next; +} + +# This matches the beginning of a new version for the current library. +/^ [A-Za-z_]/ { + actver = $1; + if (versions[$1] != 1) { + printf("version %s not defined\n", $1); + exit 1; + } + next; +} + +# This matches lines with names to be added to the current version in the +# current library. This is the only place where we print something to +# the intermediate file. +/^ / { + printf("%s %s %s\n", actlib, actver, $0) | sort; +} + + +function closeversion(name) { + if (firstinfile) { + printf(" local:\n *;\n") > outfile; + firstinfile = 0; + } + printf("}%s;\n", derived[oldlib, name]) > outfile; +} + +# Now print the accumulated information. +END { + close(sort); + oldlib=""; + oldver=""; + while(getline < tmpfile) { + if ($1 != oldlib) { + if (oldlib != "") { + closeversion(oldver); + oldver = ""; + close(outfile); + } + oldlib = $1; + outfile = (buildroot oldlib ".map"); + firstinfile = 1; + } + if ($2 != oldver) { + if (oldver != "") { + closeversion(oldver); + } + printf("%s {\n global:\n", $2) > outfile; + oldver = $2; + } + printf(" ") > outfile; + for (n = 3; n <= NF; ++n) { + printf(" %s", $n) > outfile; + } + printf("\n") > outfile; + } + closeversion(oldver); + close(outfile); + rm tmpfile; +} diff --git a/wcsmbs/Versions b/wcsmbs/Versions new file mode 100644 index 0000000000..4e6c399eb4 --- /dev/null +++ b/wcsmbs/Versions @@ -0,0 +1,23 @@ +libc { + GLIBC_2.0 { + # functions used in inline functions or macros + __wcsto*_internal; + + # b* + btowc; + + # w* + wcpcpy; wcpncpy; wcrtomb; wcscat; wcschr; wcscmp; wcscoll; + wcscpy; wcscspn; wcsdup; wcslen; wcsncat; wcsncmp; + wcsncpy; wcsnrtombs; wcspbrk; wcsrchr; wcsrtombs; wcsspn; wcsstr; + wcstod; wcstof; wcstok; wcstol; wcstold; wcstoq; wcstoul; + wcstouq; wcswidth; wcsxfrm; wctob; + + wmemchr; wmemcmp; wmemcpy; wmemmove; wmemset; + } + GLIBC_2.1 { + # w* + wcscasecmp; wcsncasecmp; wcsnlen; wcstoll; + wcstoimax; wcstoumax; wcstoull; wcswcs; wmemrtombs; wmemrtowcs; + } +} diff --git a/wctype/Versions b/wctype/Versions new file mode 100644 index 0000000000..3c24c22570 --- /dev/null +++ b/wctype/Versions @@ -0,0 +1,20 @@ +libc { + GLIBC_2.0 { + # functions used in inline functions or macros + __iswctype; + + # i* + iswalnum; iswalpha; iswcntrl; iswctype; iswdigit; iswgraph; iswlower; + iswprint; iswpunct; iswspace; iswupper; iswxdigit; + + # t* + towctrans; towlower; towupper; + + # w* + wctrans; wctype; wcwidth; + } + GLIBC_2.1 { + # i* + iswblank; + } +} |