diff options
author | Martin Schlemmer <azarah@gentoo.org> | 2005-12-05 14:34:25 +0000 |
---|---|---|
committer | Martin Schlemmer <azarah@gentoo.org> | 2005-12-05 14:34:25 +0000 |
commit | cf8e49e0a601b1d5ffd30472a92a514e0df76cb0 (patch) | |
tree | a2db4d7193c41f6d35326b8880f168015db2e740 /scripts/gen_symbol_header.awk | |
parent | Release sandbox-1.2.17. (diff) | |
download | sandbox-cf8e49e0a601b1d5ffd30472a92a514e0df76cb0.tar.gz sandbox-cf8e49e0a601b1d5ffd30472a92a514e0df76cb0.tar.bz2 sandbox-cf8e49e0a601b1d5ffd30472a92a514e0df76cb0.zip |
Fix weak symbols on 32bit glibc where it have a different version.
Signed-off-by: Martin Schlemmer <azarah@gentoo.org>
Diffstat (limited to 'scripts/gen_symbol_header.awk')
-rw-r--r-- | scripts/gen_symbol_header.awk | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/scripts/gen_symbol_header.awk b/scripts/gen_symbol_header.awk index 6c14c92..9e1700d 100644 --- a/scripts/gen_symbol_header.awk +++ b/scripts/gen_symbol_header.awk @@ -36,9 +36,9 @@ BEGIN { } } - sym_regex = "^__" SYMBOLS[x] "(@|$)"; + sym_regex = "^__" SYMBOLS[x] "(@@|$)"; if (($5 == "WEAK") && ($8 ~ sym_regex)) { - split($8, symbol_array, /@|@@/); + split($8, symbol_array, /@@/); # Don't add local symbols of versioned libc's if (VERSIONED_LIBC && !symbol_array[2]) @@ -118,23 +118,14 @@ END { split(WEAK_SYMBOLS[sym_index], sym_weak_full); for (y in sym_weak_full) { - split(sym_weak_full[y], sym_weak_array, /@|@@/); + split(sym_weak_full[y], sym_weak_array, /@@/); - # Make sure for unversioned libc's that the - # variable is valid ... - if (!symbol_array[2]) - symbol_array[2] = ""; - if (!sym_weak_array[2]) - sym_weak_array[2] = ""; - # Add weak symbols for libc's like glibc that # have them - if ((sym_weak_array[1] == "__" sym_index) && - (sym_weak_array[2] == symbol_array[2])) { + if (sym_weak_array[1] == "__" sym_index) printf("weak_alias(%s, %s);\n", sym_real_name, "__" sym_index); - } } } |