diff --git a/libc/arch-x86/bionic/libgcc_compat.c b/libc/arch-x86/bionic/libgcc_compat.c new file mode 100644 index 000000000..c7232638f --- /dev/null +++ b/libc/arch-x86/bionic/libgcc_compat.c @@ -0,0 +1,15 @@ +/* Generated by genlibgcc_compat.py */ + +extern char __divdi3; +extern char __moddi3; +extern char __popcountsi2; +extern char __udivdi3; +extern char __umoddi3; + +void* __bionic_libgcc_compat_symbols[] = { + &__divdi3, + &__moddi3, + &__popcountsi2, + &__udivdi3, + &__umoddi3, +}; diff --git a/libc/arch-x86/x86.mk b/libc/arch-x86/x86.mk index 9f2188c2c..e73ed1da4 100644 --- a/libc/arch-x86/x86.mk +++ b/libc/arch-x86/x86.mk @@ -38,6 +38,7 @@ libc_freebsd_src_files_x86 += \ libc_bionic_src_files_x86 += \ arch-x86/bionic/__bionic_clone.S \ arch-x86/bionic/_exit_with_stack_teardown.S \ + arch-x86/bionic/libgcc_compat.c \ arch-x86/bionic/__restore_rt.S \ arch-x86/bionic/__restore.S \ arch-x86/bionic/_setjmp.S \ diff --git a/libc/tools/genlibgcc_compat.py b/libc/tools/genlibgcc_compat.py index cb5c3b38e..628bf9217 100755 --- a/libc/tools/genlibgcc_compat.py +++ b/libc/tools/genlibgcc_compat.py @@ -76,9 +76,6 @@ libgcc_compat_header = "/* Generated by genlibgcc_compat.py */\n\n" 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 @@ class Generator: 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]