diff options
author | maxim <maxim@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2009-06-26 11:00:47 +0000 |
---|---|---|
committer | maxim <maxim@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2009-06-26 11:00:47 +0000 |
commit | f9f7cb825fff4924ec283efd84ecb0a6977fb0af (patch) | |
tree | 462660f11c5c94f0681c331b099a3743a6ae88e3 /libc/scripts/versions.awk | |
parent | 005f335b4d902ebdf18187d713d58260ddc124e0 (diff) |
Make --disable-versioning work.
* scripts/versions.awk (versioning): New parameter, don't output
version information if it is defined to 'no'.
* include/shlib-compat.h (IS_IN_libc, versioned_symbol),
(versioned_symbol_1): Define when !DO_VERSIONING.
(invisible_compat_symbol): Define, instead of compat_symbol when
appropriate.
* include/libc-symbols.h (default_symbol_version): Define when
!DO_VERSIONING.
(versioned_weak): Define.
* Makerules: Generate version maps when !DO_VERSIONING to properly
set symbol binding.
(abi_versions_file): Define, use instead of abi-versions.h.
(libc_gcclibs): Define, link against libgcc_eh when !DO_VERSIONING.
* extra-lib.mk, elf/Makefile: Update, handle --disable-versioning.
* elf/do-rel.h: Handle !DO_VERSIONING.
* sysdeps/powerpc/powerpc32/dl-machine.c: Don't error when
!DO_VERSIONING.
* sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h: Define stuff when
!DO_VERSIONING.
* nptl/pthread_kill_other_threads.c (compat_symbol): Surround with
ifdef DO_VERSIONING.
* sysdeps/wordsize-32/divdi3.c: Use invisible_compat_symbol.
* nptl/Makefile (tst-_res1): Disable test when !DO_VERSIONING.
* sysdeps/powerpc/longjmp.c (_longjmp, longjmp, siglongjmp): Update.
* sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h (ldbl_weak_alias): Update.
* sysdeps/ieee754/ldbl-128ibm/s_isinfl.c (__isinfl): Update.
* sysdeps/ieee754/ldbl-128ibm/s_finitel.c (finitel): Update.
* sysdeps/ieee754/ldbl-128ibm/s_isnanl.c (__isnanl): Update.
* sysdeps/ieee754/ldbl-128ibm/strtold_l.c (wcstold_l, strtold_l):
Update.
git-svn-id: svn://svn.eglibc.org/trunk@8608 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/scripts/versions.awk')
-rw-r--r-- | libc/scripts/versions.awk | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libc/scripts/versions.awk b/libc/scripts/versions.awk index 22b1c8edc..1320f1f5c 100644 --- a/libc/scripts/versions.awk +++ b/libc/scripts/versions.awk @@ -6,6 +6,7 @@ # defsfile name of Versions.def file # buildroot name of build directory with trailing slash # move_if_change move-if-change command +# versioning "yes", if symbol versioning is being used # Read definitions for the versions. BEGIN { @@ -67,7 +68,10 @@ BEGIN { sortver=actver # Ensure GLIBC_ versions come always first sub(/^GLIBC_/," GLIBC_",sortver) - printf("%s %s %s\n", actlib, sortver, $0) | sort; + if (versioning == "yes") printf("%s %s %s\n", actlib, sortver, $0) | sort; + # When not using symbol versioning, assign all symbols non-existent GLIBC + # version 1.1; this will allow us to make all necessary symbols global. + else printf("%s GLIBC_1.1 %s\n", actlib, $0) | sort; } @@ -81,7 +85,7 @@ function closeversion(name, oldname) { # or FOO_x and FOO_y but not GLIBC_x and FOO_y. pfx = oldname; sub(/[0-9.]+/,".+",pfx); - if (oldname == "" || name !~ pfx) print "};" > outfile; + if (oldname == "" || name !~ pfx || versioning != "yes") print "};" > outfile; else printf("} %s;\n", oldname) > outfile; } @@ -121,7 +125,10 @@ END { closeversion(oldver, veryoldver); veryoldver = oldver; } - printf("%s {\n global:\n", $2) > outfile; + if (versioning == "yes") printf("%s {\n global:\n", $2) > outfile; + # When not using symbol versioning, just output which symbols should be + # made global. + else print "{\n global:\n" > outfile; oldver = $2; } printf(" ") > outfile; |