Force export symbols on all x86 variants in libc.
For silvermont, the __popcountsi2 symbol does not get exported by libc.
But for atom, this symbol is exported. Since we already exported this symbol
for previous releases, it's better to just follow through and force
the export, but only for 32 bit. x86 64 bit will not export this symbol.
Bug: 17681440
Change-Id: I6c62245f0960910f64baaaf6d9d090bf3ea5f435
diff --git a/libc/tools/genlibgcc_compat.py b/libc/tools/genlibgcc_compat.py
index cb5c3b3..628bf92 100755
--- a/libc/tools/genlibgcc_compat.py
+++ b/libc/tools/genlibgcc_compat.py
@@ -76,9 +76,6 @@
class Generator:
def process(self):
android_build_top_path = os.environ["ANDROID_BUILD_TOP"]
- build_path = android_build_top_path + "/bionic/libc"
- file_name = "libgcc_compat.c"
- file_path = build_path + "/arch-arm/bionic/" + file_name
print "* ANDROID_BUILD_TOP=" + android_build_top_path
@@ -86,8 +83,12 @@
arch = subprocess.check_output(["CALLED_FROM_SETUP=true BUILD_SYSTEM=build/core make --no-print-directory -f build/core/config.mk dumpvar-TARGET_ARCH"],
cwd=android_build_top_path, shell=True).strip()
- if arch != 'arm':
- sys.exit("Error: Invalid TARGET_ARCH='" + arch + "' expecting 'arm'")
+ if arch != 'arm' and arch != 'x86':
+ sys.exit("Error: Invalid TARGET_ARCH='" + arch + "' expecting 'arm' or 'x86'")
+
+ build_path = android_build_top_path + "/bionic/libc"
+ file_name = "libgcc_compat.c"
+ file_path = build_path + "/arch-" + arch + "/bionic/" + file_name
build_output_file_path = tempfile.mkstemp()[1]