Merge changes Ibce7bd9d,Ieab5af35
* changes:
Turn on XOM for libc
Switch libc to libcrt.builtins
diff --git a/libc/Android.bp b/libc/Android.bp
index 1487975..262d951 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -77,9 +77,14 @@
native_coverage: false,
recovery_available: true,
- // TODO(ivanlozano): Remove after b/118321713
- no_libcrt: true,
- xom: false,
+ arch: {
+ x86: {
+ no_libcrt: true,
+ },
+ x86_64: {
+ no_libcrt: true,
+ },
+ },
}
// ========================================================
@@ -765,7 +770,7 @@
"arch-arm/bionic/atomics_arm.c",
"arch-arm/bionic/__bionic_clone.S",
"arch-arm/bionic/_exit_with_stack_teardown.S",
- "arch-arm/bionic/libgcc_compat.c",
+ "arch-arm/bionic/libcrt_compat.c",
"arch-arm/bionic/popcount_tab.c",
"arch-arm/bionic/__restore.S",
"arch-arm/bionic/setjmp.S",
@@ -849,7 +854,7 @@
"arch-mips/bionic/__bionic_clone.S",
"arch-mips/bionic/cacheflush.cpp",
"arch-mips/bionic/_exit_with_stack_teardown.S",
- "arch-mips/bionic/libgcc_compat.c",
+ "arch-mips/bionic/libcrt_compat.c",
"arch-mips/bionic/setjmp.S",
"arch-mips/bionic/syscall.S",
"arch-mips/bionic/vfork.S",
@@ -919,7 +924,7 @@
"arch-x86/bionic/__bionic_clone.S",
"arch-x86/bionic/_exit_with_stack_teardown.S",
- "arch-x86/bionic/libgcc_compat.c",
+ "arch-x86/bionic/libcrt_compat.c",
"arch-x86/bionic/__restore.S",
"arch-x86/bionic/setjmp.S",
"arch-x86/bionic/syscall.S",
diff --git a/libc/arch-arm/bionic/libgcc_compat.c b/libc/arch-arm/bionic/libcrt_compat.c
similarity index 95%
rename from libc/arch-arm/bionic/libgcc_compat.c
rename to libc/arch-arm/bionic/libcrt_compat.c
index abd1422..22a3387 100644
--- a/libc/arch-arm/bionic/libgcc_compat.c
+++ b/libc/arch-arm/bionic/libcrt_compat.c
@@ -90,6 +90,8 @@
extern char __floatunsisf;
extern char __gedf2;
extern char __gtdf2;
+extern char __gnu_ldivmod_helper;
+extern char __gnu_uldivmod_helper;
extern char __ledf2;
extern char __ltdf2;
extern char __muldf3;
@@ -101,10 +103,11 @@
extern char __subdf3;
extern char __subsf3;
extern char __truncdfsf2;
+extern char __udivdi3;
extern char __unorddf2;
extern char __unordsf2;
-void* __bionic_libgcc_compat_symbols[] = {
+void* __bionic_libcrt_compat_symbols[] = {
&__adddf3,
&__addsf3,
&__aeabi_cdcmpeq,
@@ -169,6 +172,8 @@
&__floatunsisf,
&__gedf2,
&__gtdf2,
+ &__gnu_ldivmod_helper,
+ &__gnu_uldivmod_helper,
&__ledf2,
&__ltdf2,
&__muldf3,
@@ -180,6 +185,7 @@
&__subdf3,
&__subsf3,
&__truncdfsf2,
+ &__udivdi3,
&__unorddf2,
&__unordsf2,
};
diff --git a/libc/arch-mips/bionic/libgcc_compat.c b/libc/arch-mips/bionic/libcrt_compat.c
similarity index 97%
rename from libc/arch-mips/bionic/libgcc_compat.c
rename to libc/arch-mips/bionic/libcrt_compat.c
index 1a0f566..cfa41f2 100644
--- a/libc/arch-mips/bionic/libgcc_compat.c
+++ b/libc/arch-mips/bionic/libcrt_compat.c
@@ -32,7 +32,7 @@
extern char __udivdi3;
extern char __umoddi3;
-void* __bionic_libgcc_compat_symbols[] = {
+void* __bionic_libcrt_compat_symbols[] = {
&__divdi3,
&__moddi3,
&__popcountsi2,
diff --git a/libc/arch-x86/bionic/libgcc_compat.c b/libc/arch-x86/bionic/libcrt_compat.c
similarity index 97%
rename from libc/arch-x86/bionic/libgcc_compat.c
rename to libc/arch-x86/bionic/libcrt_compat.c
index 1a0f566..cfa41f2 100644
--- a/libc/arch-x86/bionic/libgcc_compat.c
+++ b/libc/arch-x86/bionic/libcrt_compat.c
@@ -32,7 +32,7 @@
extern char __udivdi3;
extern char __umoddi3;
-void* __bionic_libgcc_compat_symbols[] = {
+void* __bionic_libcrt_compat_symbols[] = {
&__divdi3,
&__moddi3,
&__popcountsi2,
diff --git a/libc/libc.map.txt b/libc/libc.map.txt
index 6a6ea7d..62aea27 100644
--- a/libc/libc.map.txt
+++ b/libc/libc.map.txt
@@ -1561,7 +1561,7 @@
__ashldi3; # arm
__ashrdi3; # arm
__bionic_brk; # arm x86 mips
- __bionic_libgcc_compat_symbols; # arm x86
+ __bionic_libcrt_compat_symbols; # arm x86
__cmpdf2; # arm
__divdf3; # arm
__divdi3; # arm x86 mips