summaryrefslogtreecommitdiff
path: root/gcc/mkmap-symver.awk
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/mkmap-symver.awk')
-rw-r--r--gcc/mkmap-symver.awk16
1 files changed, 10 insertions, 6 deletions
diff --git a/gcc/mkmap-symver.awk b/gcc/mkmap-symver.awk
index 855043f7e6c..4877e905147 100644
--- a/gcc/mkmap-symver.awk
+++ b/gcc/mkmap-symver.awk
@@ -46,7 +46,8 @@ state == "nm" && ($1 == "U" || $2 == "U") {
}
state == "nm" && NF == 3 {
- def[$3] = 1;
+ split ($3, s, "@")
+ def[s[1]] = 1;
sawsymbol = 1;
next;
}
@@ -82,10 +83,13 @@ $1 == "}" {
{
sym = prefix $1;
+ symbols[sym] = 1
if (thislib != "%exclude")
- ver[sym] = thislib;
- else
- delete ver[sym];
+ ver[sym, thislib] = 1;
+ else {
+ for (l in libs)
+ ver[sym, l] = 0;
+ }
next;
}
@@ -107,8 +111,8 @@ function output(lib) {
output(inherit[lib]);
empty=1
- for (sym in ver)
- if ((ver[sym] == lib) && (sym in def))
+ for (sym in symbols)
+ if ((ver[sym, lib] != 0) && (sym in def))
{
if (empty)
{