aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2018-09-06 16:04:08 -0700
committerElliott Hughes <enh@google.com>2018-12-17 12:26:42 -0800
commitd19b3c527427770164437d258744828acadb6e42 (patch)
treed7628a87508447e39dd5a090481b357ad9ca5876 /tools
parent9ea997a2ac4eeb26230e65d2b680ebff6fe0b8a4 (diff)
downloadbionic-d19b3c527427770164437d258744828acadb6e42.tar.gz
Generate the per-arch .map files at build time.
We shouldn't be checking in these generated files... Bug: N/A Test: ran tests Change-Id: Ib67c1ba839eacd7acebd713e1dcd4dd2c25d67f0
Diffstat (limited to 'tools')
-rw-r--r--tools/Android.bp5
-rwxr-xr-xtools/generate-version-script.py30
2 files changed, 35 insertions, 0 deletions
diff --git a/tools/Android.bp b/tools/Android.bp
index b44c29601..c540c3cea 100644
--- a/tools/Android.bp
+++ b/tools/Android.bp
@@ -1 +1,6 @@
subdirs = ["*"]
+
+filegroup {
+ name: "bionic-generate-version-script",
+ srcs: ["generate-version-script.py"],
+}
diff --git a/tools/generate-version-script.py b/tools/generate-version-script.py
new file mode 100755
index 000000000..acfe21859
--- /dev/null
+++ b/tools/generate-version-script.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+
+# This tool is used to generate the version scripts for libc, libm, libdl,
+# and libstdc++ for every architecture.
+
+# usage: generate-version-script.py ARCH INPUT OUTPUT
+
+import sys
+
+def has_arch_tags(tags):
+ for arch in ["arm", "arm64", "x86", "x86_64"]:
+ if arch in tags:
+ return True
+ return False
+
+def GenerateVersionScript(arch, in_filename, out_filename):
+ with open(out_filename, "w") as fout:
+ with open(in_filename, "r") as fin:
+ for line in fin:
+ index = line.find("#")
+ if index != -1:
+ tags = line[index+1:].split()
+ if arch not in tags and has_arch_tags(tags):
+ continue
+ fout.write(line)
+
+arch = sys.argv[1]
+in_filename = sys.argv[2]
+out_filename = sys.argv[3]
+GenerateVersionScript(arch, in_filename, out_filename)