Merge changes I070d3a26,Ie9176587
am: e65558a0a4
Change-Id: I2b417a5e1e801485e012ec49b39296ca6cd4078a
diff --git a/libc/Android.bp b/libc/Android.bp
index 262d951..669ffc0 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -85,6 +85,9 @@
no_libcrt: true,
},
},
+ // lld complains about duplicate symbols in libcrt and libgcc. Suppress the
+ // warning since this is intended right now.
+ ldflags: ["-Wl,-z,muldefs"],
}
// ========================================================
diff --git a/libc/arch-arm/bionic/libcrt_compat.c b/libc/arch-arm/bionic/libcrt_compat.c
index 22a3387..ce77a5d 100644
--- a/libc/arch-arm/bionic/libcrt_compat.c
+++ b/libc/arch-arm/bionic/libcrt_compat.c
@@ -31,8 +31,12 @@
extern char __aeabi_cdcmpeq;
extern char __aeabi_cdcmple;
extern char __aeabi_cdrcmple;
+extern char __aeabi_cfcmpeq;
+extern char __aeabi_cfcmple;
+extern char __aeabi_cfrcmple;
extern char __aeabi_d2f;
extern char __aeabi_d2iz;
+extern char __aeabi_d2uiz;
extern char __aeabi_dadd;
extern char __aeabi_dcmpeq;
extern char __aeabi_dcmpge;
@@ -48,6 +52,11 @@
extern char __aeabi_f2iz;
extern char __aeabi_f2uiz;
extern char __aeabi_fadd;
+extern char __aeabi_fcmpeq;
+extern char __aeabi_fcmpge;
+extern char __aeabi_fcmpgt;
+extern char __aeabi_fcmple;
+extern char __aeabi_fcmplt;
extern char __aeabi_fcmpun;
extern char __aeabi_fdiv;
extern char __aeabi_fmul;
@@ -74,12 +83,15 @@
extern char __aeabi_unwind_cpp_pr0;
extern char __aeabi_unwind_cpp_pr1;
extern char __cmpdf2;
+extern char __cmpsf2;
extern char __divdf3;
extern char __divsf3;
extern char __eqdf2;
+extern char __eqsf2;
extern char __extendsfdf2;
extern char __fixdfsi;
extern char __fixsfsi;
+extern char __fixunsdfsi;
extern char __floatdidf;
extern char __floatdisf;
extern char __floatsidf;
@@ -89,15 +101,20 @@
extern char __floatunsidf;
extern char __floatunsisf;
extern char __gedf2;
+extern char __gesf2;
extern char __gtdf2;
+extern char __gtsf2;
extern char __gnu_ldivmod_helper;
extern char __gnu_uldivmod_helper;
extern char __ledf2;
+extern char __lesf2;
extern char __ltdf2;
+extern char __ltsf2;
extern char __muldf3;
extern char __muldi3;
extern char __mulsf3;
extern char __nedf2;
+extern char __nesf2;
extern char __popcount_tab;
extern char __popcountsi2;
extern char __subdf3;
@@ -113,8 +130,12 @@
&__aeabi_cdcmpeq,
&__aeabi_cdcmple,
&__aeabi_cdrcmple,
+ &__aeabi_cfcmpeq,
+ &__aeabi_cfcmple,
+ &__aeabi_cfrcmple,
&__aeabi_d2f,
&__aeabi_d2iz,
+ &__aeabi_d2uiz,
&__aeabi_dadd,
&__aeabi_dcmpeq,
&__aeabi_dcmpge,
@@ -130,6 +151,11 @@
&__aeabi_f2iz,
&__aeabi_f2uiz,
&__aeabi_fadd,
+ &__aeabi_fcmpeq,
+ &__aeabi_fcmpge,
+ &__aeabi_fcmpgt,
+ &__aeabi_fcmple,
+ &__aeabi_fcmplt,
&__aeabi_fcmpun,
&__aeabi_fdiv,
&__aeabi_fmul,
@@ -156,12 +182,15 @@
&__aeabi_unwind_cpp_pr0,
&__aeabi_unwind_cpp_pr1,
&__cmpdf2,
+ &__cmpsf2,
&__divdf3,
&__divsf3,
&__eqdf2,
+ &__eqsf2,
&__extendsfdf2,
&__fixdfsi,
&__fixsfsi,
+ &__fixunsdfsi,
&__floatdidf,
&__floatdisf,
&__floatsidf,
@@ -171,15 +200,20 @@
&__floatunsidf,
&__floatunsisf,
&__gedf2,
+ &__gesf2,
&__gtdf2,
+ &__gtsf2,
&__gnu_ldivmod_helper,
&__gnu_uldivmod_helper,
&__ledf2,
+ &__lesf2,
&__ltdf2,
+ &__ltsf2,
&__muldf3,
&__muldi3,
&__mulsf3,
&__nedf2,
+ &__nesf2,
&__popcount_tab,
&__popcountsi2,
&__subdf3,
diff --git a/libc/libc.map.txt b/libc/libc.map.txt
index 62aea27..7d30c26 100644
--- a/libc/libc.map.txt
+++ b/libc/libc.map.txt
@@ -1500,8 +1500,12 @@
__aeabi_cdcmpeq; # arm
__aeabi_cdcmple; # arm
__aeabi_cdrcmple; # arm
+ __aeabi_cfcmpeq; # arm
+ __aeabi_cfcmple; # arm
+ __aeabi_cfrcmple; # arm
__aeabi_d2f; # arm
__aeabi_d2iz; # arm
+ __aeabi_d2uiz; # arm
__aeabi_dadd; # arm
__aeabi_dcmpeq; # arm
__aeabi_dcmpge; # arm
@@ -1517,6 +1521,11 @@
__aeabi_f2iz; # arm
__aeabi_f2uiz; # arm
__aeabi_fadd; # arm
+ __aeabi_fcmpeq; # arm
+ __aeabi_fcmpge; # arm
+ __aeabi_fcmpgt; # arm
+ __aeabi_fcmple; # arm
+ __aeabi_fcmplt; # arm
__aeabi_fcmpun; # arm
__aeabi_fdiv; # arm
__aeabi_fmul; # arm
@@ -1563,15 +1572,18 @@
__bionic_brk; # arm x86 mips
__bionic_libcrt_compat_symbols; # arm x86
__cmpdf2; # arm
+ __cmpsf2; # arm
__divdf3; # arm
__divdi3; # arm x86 mips
__divsf3; # arm
__divsi3; # arm
__dso_handle; # arm
__eqdf2; # arm
+ __eqsf2; # arm
__extendsfdf2; # arm
__fixdfsi; # arm
__fixsfsi; # arm
+ __fixunsdfsi; # arm
__fixunssfsi; # arm
__floatdidf; # arm
__floatdisf; # arm
@@ -1584,6 +1596,7 @@
__futex_wait; # arm x86 mips
__futex_wake; # arm x86 mips
__gedf2; # arm
+ __gesf2; # arm
__get_thread; # arm x86 mips
__get_tls; # arm x86 mips
__getdents64; # arm x86 mips
@@ -1608,13 +1621,17 @@
__gnu_Unwind_Save_WMMXC; # arm
__gnu_Unwind_Save_WMMXD; # arm
__gtdf2; # arm
+ __gtsf2; # arm
__ledf2; # arm
+ __lesf2; # arm
__lshrdi3; # arm
__ltdf2; # arm
+ __ltsf2; # arm
__muldf3; # arm
__muldi3; # arm
__mulsf3; # arm
__nedf2; # arm
+ __nesf2; # arm
__open; # arm x86 mips
__page_shift; # arm x86 mips
__page_size; # arm x86 mips
diff --git a/libm/Android.bp b/libm/Android.bp
index ec319e2..5075fb2 100644
--- a/libm/Android.bp
+++ b/libm/Android.bp
@@ -508,10 +508,6 @@
},
stl: "none",
- // TODO(ivanlozano): Remove after b/118321713
- no_libcrt: true,
- xom: false,
-
stubs: {
symbol_file: "libm.map.txt",
versions: ["10000"],
diff --git a/libm/libm.map.txt b/libm/libm.map.txt
index 1f9a3f9..00ea7ee 100644
--- a/libm/libm.map.txt
+++ b/libm/libm.map.txt
@@ -301,58 +301,19 @@
___Unwind_RaiseException; # arm
___Unwind_Resume; # arm
___Unwind_Resume_or_Rethrow; # arm
- __adddf3; # arm
- __aeabi_cdcmpeq; # arm
- __aeabi_cdcmple; # arm
- __aeabi_cdrcmple; # arm
- __aeabi_cfcmpeq; # arm
- __aeabi_cfcmple; # arm
- __aeabi_cfrcmple; # arm
__aeabi_d2lz; # arm
- __aeabi_d2uiz; # arm
__aeabi_d2ulz; # arm
- __aeabi_dadd; # arm
- __aeabi_dcmpeq; # arm
- __aeabi_dcmpge; # arm
- __aeabi_dcmpgt; # arm
- __aeabi_dcmple; # arm
- __aeabi_dcmplt; # arm
- __aeabi_ddiv; # arm
- __aeabi_dmul; # arm
- __aeabi_drsub; # arm
- __aeabi_dsub; # arm
- __aeabi_f2d; # arm
__aeabi_f2lz; # arm
__aeabi_f2ulz; # arm
- __aeabi_fcmpeq; # arm
- __aeabi_fcmpge; # arm
- __aeabi_fcmpgt; # arm
- __aeabi_fcmple; # arm
- __aeabi_fcmplt; # arm
- __aeabi_i2d; # arm
__aeabi_l2d; # arm
- __aeabi_ui2d; # arm
- __aeabi_ul2d; # arm
__aeabi_unwind_cpp_pr0; # arm
__aeabi_unwind_cpp_pr1; # arm
__aeabi_unwind_cpp_pr2; # arm
- __cmpdf2; # arm
- __cmpsf2; # arm
- __divdf3; # arm
- __eqdf2; # arm
- __eqsf2; # arm
- __extendsfdf2; # arm
__fixdfdi; # arm mips
__fixsfdi; # arm mips
__fixunsdfdi; # arm mips
- __fixunsdfsi; # arm
__fixunssfdi; # arm mips
__floatdidf; # arm
- __floatsidf; # arm
- __floatundidf; # arm
- __floatunsidf; # arm
- __gedf2; # arm
- __gesf2; # arm
__gnu_Unwind_Backtrace; # arm
__gnu_unwind_execute; # arm
__gnu_Unwind_ForcedUnwind; # arm
@@ -370,17 +331,7 @@
__gnu_Unwind_Save_VFP_D_16_to_31; # arm
__gnu_Unwind_Save_WMMXC; # arm
__gnu_Unwind_Save_WMMXD; # arm
- __gtdf2; # arm
- __gtsf2; # arm
- __ledf2; # arm
- __lesf2; # arm
- __ltdf2; # arm
- __ltsf2; # arm
- __muldf3; # arm
- __nedf2; # arm
- __nesf2; # arm
__restore_core_regs; # arm
- __subdf3; # arm
_Unwind_Backtrace; # arm
_Unwind_Complete; # arm
_Unwind_DeleteException; # arm