summaryrefslogtreecommitdiff
path: root/libstdc++-v3/scripts/extract_symvers.pl
diff options
context:
space:
mode:
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>2013-03-06 13:34:35 +0000
committerRainer Orth <ro@gcc.gnu.org>2013-03-06 13:34:35 +0000
commit9ac0b8414cd523ab9c60c72011a8578660506970 (patch)
tree9cd8c5cc8e99593fa7a95b30995dfc6a838300c9 /libstdc++-v3/scripts/extract_symvers.pl
parentfa5556deb30c805414137700342441f3186b075a (diff)
downloadgcc-9ac0b8414cd523ab9c60c72011a8578660506970.tar.gz
Filter out basever symbols on Solaris
* scripts/extract_symvers.pl: Omit symbols bound to base versions. * scripts/extract_symvers.in: Likewise. * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerate. * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Likewise. * config/abi/post/solaris2.10/baseline_symbols.txt: Likewise. * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise. * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise. From-SVN: r196489
Diffstat (limited to 'libstdc++-v3/scripts/extract_symvers.pl')
-rw-r--r--libstdc++-v3/scripts/extract_symvers.pl10
1 files changed, 9 insertions, 1 deletions
diff --git a/libstdc++-v3/scripts/extract_symvers.pl b/libstdc++-v3/scripts/extract_symvers.pl
index 31723fbccc1..d43c53e231f 100644
--- a/libstdc++-v3/scripts/extract_symvers.pl
+++ b/libstdc++-v3/scripts/extract_symvers.pl
@@ -67,7 +67,11 @@ while (<PVS>) {
if ($version eq $symbol or $version eq $basever) {
# Emit versions or symbols bound to base versions as objects.
$type{$symbol} = "OBJECT";
- $version{$symbol} = $symbol;
+ if ($version eq $basever) {
+ $version{$symbol} = $version;
+ } else {
+ $version{$symbol} = $symbol;
+ }
$size{$symbol} = 0;
} else {
# Everything else without a size field is a function.
@@ -120,6 +124,10 @@ foreach $symbol (keys %type) {
if ($type{$symbol} eq "FUNC" || $type{$symbol} eq "NOTYPE") {
push @lines, "$type{$symbol}:$symbol\@\@$version{$symbol}\n";
} elsif ($type{$symbol} eq "OBJECT" and $size{$symbol} == 0) {
+ # Omit symbols bound to base version; details can differ depending
+ # on the toolchain used.
+ next if $version{$symbol} eq $basever;
+
push @lines, "$type{$symbol}:$size{$symbol}:$version{$symbol}\n";
} else {
push @lines, "$type{$symbol}:$size{$symbol}:$symbol\@\@$version{$symbol}\n";