diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2012-05-26 10:46:59 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2012-05-30 08:33:26 -0700 |
commit | 0ab0291b84b45f2389a019af2c88bf5169d14f64 (patch) | |
tree | b1935225e76f2470640244918e3e1ae89ae88fb2 /scripts/lib-names.awk | |
parent | 3a85279c0b02c3fcbe47f08743cace8550bf618e (diff) | |
download | glibc-0ab0291b84b45f2389a019af2c88bf5169d14f64.tar glibc-0ab0291b84b45f2389a019af2c88bf5169d14f64.tar.gz glibc-0ab0291b84b45f2389a019af2c88bf5169d14f64.tar.bz2 glibc-0ab0291b84b45f2389a019af2c88bf5169d14f64.zip |
Convert WORDSIZE[32|64]/ld entries to abi-variants
Diffstat (limited to 'scripts/lib-names.awk')
-rw-r--r-- | scripts/lib-names.awk | 51 |
1 files changed, 9 insertions, 42 deletions
diff --git a/scripts/lib-names.awk b/scripts/lib-names.awk index 77e6668515..ccb7b7f431 100644 --- a/scripts/lib-names.awk +++ b/scripts/lib-names.awk @@ -1,18 +1,17 @@ # awk script for soversions.i -> gnu/lib-names.h; see Makeconfig. -$1 != "DEFAULT" { multi = 1 } - # { - lib = $2; - version = $3; - if ($3 !~ /^[0-9]/) { - soname = $3; - extra = $3; + split($1, fields, "=") + lib = fields[1]; + soname = version = fields[2]; + sub(/^.*=/, "", soname); + sub(/^lib.*\.so\./, "", version); + if ($soname !~ /^lib/) { + extra = soname; sub(/\.so.*$/, "", extra); } else { - soname = lib ".so." $3; extra = ""; } soname = "\"" soname "\""; @@ -26,41 +25,9 @@ $1 != "DEFAULT" { multi = 1 } } END { - print "/* This file is automatically generated."; - print " It defines macros to allow user program to find the shared"; - print " library files which come as part of GNU libc. */"; - print "#ifndef __GNU_LIB_NAMES_H"; - print "#define __GNU_LIB_NAMES_H 1"; - print ""; - - pfx = multi ? "# define " : "#define "; for (elt in macros) { split(elt, x); - line = sprintf("%-40s%s", pfx x[2], macros[elt]); - if (x[1] in lines) - lines[x[1]] = lines[x[1]] "\n" line; - else - lines[x[1]] = line; - } - - if (multi) { - # Print these in a fixed order so the result is identical - # on both sides of the coin. - if (!("WORDSIZE32" in lines)) - lines["WORDSIZE32"] = lines["DEFAULT"]; - if (!("WORDSIZE64" in lines)) - lines["WORDSIZE64"] = lines["DEFAULT"]; - print "#include <bits/wordsize.h>\n"; - print "#if __WORDSIZE == 32"; - cmd = "LC_ALL=C sort"; print lines["WORDSIZE32"] | cmd; close(cmd); - print "#else" - cmd = "LC_ALL=C sort"; print lines["WORDSIZE64"] | cmd; close(cmd); - print "#endif"; + pfx = multi ? "# define " : "#define "; + printf("%-40s%s\n", pfx x[2], macros[elt]); } - else { - cmd = "LC_ALL=C sort"; print lines["DEFAULT"] | cmd; close(cmd); - } - - print ""; - print "#endif /* gnu/lib-names.h */" } |