diff options
Diffstat (limited to 'scripts/gen-libc-modules.awk')
-rw-r--r-- | scripts/gen-libc-modules.awk | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/scripts/gen-libc-modules.awk b/scripts/gen-libc-modules.awk new file mode 100644 index 0000000..2f92cd4 --- /dev/null +++ b/scripts/gen-libc-modules.awk @@ -0,0 +1,34 @@ +# Generate a header file that defines the MODULE_* macros for each library and +# module we build in glibc. The library names are pulled in from soversions.i +# and the additional modules are passed in the BUILDLIST variable. +BEGIN { + # BUILDLIST is set from the build-list variable in Makeconfig and is a space + # separated list of non-library modules that we build in glibc. + num = split (buildlist, libs, " ") + # Separate the built modules from the libraries. + libs[++num] = "LIBS_BEGIN" +} + +# Skip over comments. +$1 == "#" { + next +} + +# We have only one special case in soversions.i parsing, which is to replace ld +# with rtld since that's what we call it throughout the sources. +match (FILENAME, ".*soversions.i") { + name = $2 + if (name == "ld") + name = "rtld" + + # Library names are not duplicated in soversions.i. + libs[++num] = name +} + +# Finally, print out the header file. +END { + printf ("/* AUTOGENERATED BY gen-libc-modules.awk, DO NOT EDIT. */\n\n") + for (l in libs) { + printf ("#define MODULE_%s %d\n", libs[l], l) + } +} |