summaryrefslogtreecommitdiff
path: root/libc/scripts/versions.awk
diff options
context:
space:
mode:
authormaxim <maxim@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2009-06-26 11:00:47 +0000
committermaxim <maxim@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2009-06-26 11:00:47 +0000
commitf9f7cb825fff4924ec283efd84ecb0a6977fb0af (patch)
tree462660f11c5c94f0681c331b099a3743a6ae88e3 /libc/scripts/versions.awk
parent005f335b4d902ebdf18187d713d58260ddc124e0 (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.awk13
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;