aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Schlemmer <azarah@gentoo.org>2005-12-01 01:00:40 +0000
committerMartin Schlemmer <azarah@gentoo.org>2005-12-01 01:00:40 +0000
commitdd7fcf79c15562adeb22e4b08f326d4d40970082 (patch)
tree994302094f13e939cffe3b6ecf69df236e9003d7 /scripts
parentRename configure.in to configure.ac. (diff)
downloadsandbox-dd7fcf79c15562adeb22e4b08f326d4d40970082.tar.gz
sandbox-dd7fcf79c15562adeb22e4b08f326d4d40970082.tar.bz2
sandbox-dd7fcf79c15562adeb22e4b08f326d4d40970082.zip
Fix non-versioned libc's to also prepend '__' to internal symbols by using
strong aliases. Signed-off-by: Martin Schlemmer <azarah@gentoo.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/gen_symbol_header.awk6
1 files changed, 5 insertions, 1 deletions
diff --git a/scripts/gen_symbol_header.awk b/scripts/gen_symbol_header.awk
index 0426106..f6e877d 100644
--- a/scripts/gen_symbol_header.awk
+++ b/scripts/gen_symbol_header.awk
@@ -27,7 +27,8 @@ END {
# Defualt symbol have '@@' and not '@', so name it by
# prepending '__' rather than the symbol version so
# that we know what the name is in libsandbox.c ...
- if (sym_full_names[x] ~ /@@/) {
+ # Also do this for non-versioned libc's ...
+ if (sym_full_names[x] ~ /@@/ || !symbol_array[2]) {
sym_real_name = "__" sym_index;
} else {
sym_real_name = sym_full_names[x];
@@ -54,6 +55,9 @@ END {
else
printf("symbol_version(%s, %s, %s);\n",
sym_real_name, sym_index, symbol_array[2]);
+ } else {
+ printf("strong_alias(%s, %s);\n", sym_real_name,
+ sym_index);
}
printf("\n");