summaryrefslogtreecommitdiffstats
path: root/libc/arch-arm/bionic
diff options
context:
space:
mode:
authorDmitriy Ivanov <dimitry@google.com>2014-04-18 16:03:03 -0700
committerDmitriy Ivanov <dimitry@google.com>2014-04-18 17:34:20 -0700
commit6a45fe98727f9ee39386d39fa18eea69c706bc9e (patch)
tree8e675712429d1b78d47fd905d81ab051eb5650b0 /libc/arch-arm/bionic
parent0e351e4011bc98cacc3e37292bfb0e86c3a3bb5b (diff)
downloadbionic-6a45fe98727f9ee39386d39fa18eea69c706bc9e.zip
bionic-6a45fe98727f9ee39386d39fa18eea69c706bc9e.tar.gz
bionic-6a45fe98727f9ee39386d39fa18eea69c706bc9e.tar.bz2
Fix for libgcc compat generation script.
Taking into account possibility that external symbol could have been an OBJECT instead of function. b/14090368 Change-Id: Iac173d2dd1309ed53024306578137c26b1dbbf15
Diffstat (limited to 'libc/arch-arm/bionic')
-rw-r--r--libc/arch-arm/bionic/libgcc_compat.c244
1 files changed, 156 insertions, 88 deletions
diff --git a/libc/arch-arm/bionic/libgcc_compat.c b/libc/arch-arm/bionic/libgcc_compat.c
index c45e6e2..10faf2d 100644
--- a/libc/arch-arm/bionic/libgcc_compat.c
+++ b/libc/arch-arm/bionic/libgcc_compat.c
@@ -1,91 +1,159 @@
/* Generated by genlibgcc_compat.py */
-#define COMPAT_FUNCTIONS_LIST \
- XX(__adddf3) \
- XX(__addsf3) \
- XX(__aeabi_cdcmpeq) \
- XX(__aeabi_cdcmple) \
- XX(__aeabi_cdrcmple) \
- XX(__aeabi_d2f) \
- XX(__aeabi_d2iz) \
- XX(__aeabi_dadd) \
- XX(__aeabi_dcmpeq) \
- XX(__aeabi_dcmpge) \
- XX(__aeabi_dcmpgt) \
- XX(__aeabi_dcmple) \
- XX(__aeabi_dcmplt) \
- XX(__aeabi_dcmpun) \
- XX(__aeabi_ddiv) \
- XX(__aeabi_dmul) \
- XX(__aeabi_drsub) \
- XX(__aeabi_dsub) \
- XX(__aeabi_f2d) \
- XX(__aeabi_f2iz) \
- XX(__aeabi_f2uiz) \
- XX(__aeabi_fadd) \
- XX(__aeabi_fcmpun) \
- XX(__aeabi_fdiv) \
- XX(__aeabi_fmul) \
- XX(__aeabi_frsub) \
- XX(__aeabi_fsub) \
- XX(__aeabi_i2d) \
- XX(__aeabi_i2f) \
- XX(__aeabi_idiv) \
- XX(__aeabi_idivmod) \
- XX(__aeabi_l2d) \
- XX(__aeabi_l2f) \
- XX(__aeabi_lasr) \
- XX(__aeabi_ldivmod) \
- XX(__aeabi_llsl) \
- XX(__aeabi_llsr) \
- XX(__aeabi_lmul) \
- XX(__aeabi_ui2d) \
- XX(__aeabi_ui2f) \
- XX(__aeabi_uidiv) \
- XX(__aeabi_uidivmod) \
- XX(__aeabi_ul2d) \
- XX(__aeabi_ul2f) \
- XX(__aeabi_uldivmod) \
- XX(__aeabi_unwind_cpp_pr0) \
- XX(__aeabi_unwind_cpp_pr1) \
- XX(__cmpdf2) \
- XX(__divdf3) \
- XX(__divsf3) \
- XX(__eqdf2) \
- XX(__extendsfdf2) \
- XX(__fixdfsi) \
- XX(__fixsfsi) \
- XX(__floatdidf) \
- XX(__floatdisf) \
- XX(__floatsidf) \
- XX(__floatsisf) \
- XX(__floatundidf) \
- XX(__floatundisf) \
- XX(__floatunsidf) \
- XX(__floatunsisf) \
- XX(__gedf2) \
- XX(__gtdf2) \
- XX(__ledf2) \
- XX(__ltdf2) \
- XX(__muldf3) \
- XX(__muldi3) \
- XX(__mulsf3) \
- XX(__nedf2) \
- XX(__popcount_tab) \
- XX(__popcountsi2) \
- XX(__subdf3) \
- XX(__subsf3) \
- XX(__truncdfsf2) \
- XX(__unorddf2) \
- XX(__unordsf2) \
+extern char __adddf3;
+extern char __addsf3;
+extern char __aeabi_cdcmpeq;
+extern char __aeabi_cdcmple;
+extern char __aeabi_cdrcmple;
+extern char __aeabi_d2f;
+extern char __aeabi_d2iz;
+extern char __aeabi_dadd;
+extern char __aeabi_dcmpeq;
+extern char __aeabi_dcmpge;
+extern char __aeabi_dcmpgt;
+extern char __aeabi_dcmple;
+extern char __aeabi_dcmplt;
+extern char __aeabi_dcmpun;
+extern char __aeabi_ddiv;
+extern char __aeabi_dmul;
+extern char __aeabi_drsub;
+extern char __aeabi_dsub;
+extern char __aeabi_f2d;
+extern char __aeabi_f2iz;
+extern char __aeabi_f2uiz;
+extern char __aeabi_fadd;
+extern char __aeabi_fcmpun;
+extern char __aeabi_fdiv;
+extern char __aeabi_fmul;
+extern char __aeabi_frsub;
+extern char __aeabi_fsub;
+extern char __aeabi_i2d;
+extern char __aeabi_i2f;
+extern char __aeabi_idiv;
+extern char __aeabi_idivmod;
+extern char __aeabi_l2d;
+extern char __aeabi_l2f;
+extern char __aeabi_lasr;
+extern char __aeabi_ldivmod;
+extern char __aeabi_llsl;
+extern char __aeabi_llsr;
+extern char __aeabi_lmul;
+extern char __aeabi_ui2d;
+extern char __aeabi_ui2f;
+extern char __aeabi_uidiv;
+extern char __aeabi_uidivmod;
+extern char __aeabi_ul2d;
+extern char __aeabi_ul2f;
+extern char __aeabi_uldivmod;
+extern char __aeabi_unwind_cpp_pr0;
+extern char __aeabi_unwind_cpp_pr1;
+extern char __cmpdf2;
+extern char __divdf3;
+extern char __divsf3;
+extern char __eqdf2;
+extern char __extendsfdf2;
+extern char __fixdfsi;
+extern char __fixsfsi;
+extern char __floatdidf;
+extern char __floatdisf;
+extern char __floatsidf;
+extern char __floatsisf;
+extern char __floatundidf;
+extern char __floatundisf;
+extern char __floatunsidf;
+extern char __floatunsisf;
+extern char __gedf2;
+extern char __gtdf2;
+extern char __ledf2;
+extern char __ltdf2;
+extern char __muldf3;
+extern char __muldi3;
+extern char __mulsf3;
+extern char __nedf2;
+extern char __popcount_tab;
+extern char __popcountsi2;
+extern char __subdf3;
+extern char __subsf3;
+extern char __truncdfsf2;
+extern char __unorddf2;
+extern char __unordsf2;
-
-#define XX(f) extern void f(void);
-COMPAT_FUNCTIONS_LIST
-#undef XX
-
-void __bionic_libgcc_compat_hooks(void) {
-#define XX(f) f();
-COMPAT_FUNCTIONS_LIST
-#undef XX
-}
+void* __bionic_libgcc_compat_symbols[] = {
+ &__adddf3,
+ &__addsf3,
+ &__aeabi_cdcmpeq,
+ &__aeabi_cdcmple,
+ &__aeabi_cdrcmple,
+ &__aeabi_d2f,
+ &__aeabi_d2iz,
+ &__aeabi_dadd,
+ &__aeabi_dcmpeq,
+ &__aeabi_dcmpge,
+ &__aeabi_dcmpgt,
+ &__aeabi_dcmple,
+ &__aeabi_dcmplt,
+ &__aeabi_dcmpun,
+ &__aeabi_ddiv,
+ &__aeabi_dmul,
+ &__aeabi_drsub,
+ &__aeabi_dsub,
+ &__aeabi_f2d,
+ &__aeabi_f2iz,
+ &__aeabi_f2uiz,
+ &__aeabi_fadd,
+ &__aeabi_fcmpun,
+ &__aeabi_fdiv,
+ &__aeabi_fmul,
+ &__aeabi_frsub,
+ &__aeabi_fsub,
+ &__aeabi_i2d,
+ &__aeabi_i2f,
+ &__aeabi_idiv,
+ &__aeabi_idivmod,
+ &__aeabi_l2d,
+ &__aeabi_l2f,
+ &__aeabi_lasr,
+ &__aeabi_ldivmod,
+ &__aeabi_llsl,
+ &__aeabi_llsr,
+ &__aeabi_lmul,
+ &__aeabi_ui2d,
+ &__aeabi_ui2f,
+ &__aeabi_uidiv,
+ &__aeabi_uidivmod,
+ &__aeabi_ul2d,
+ &__aeabi_ul2f,
+ &__aeabi_uldivmod,
+ &__aeabi_unwind_cpp_pr0,
+ &__aeabi_unwind_cpp_pr1,
+ &__cmpdf2,
+ &__divdf3,
+ &__divsf3,
+ &__eqdf2,
+ &__extendsfdf2,
+ &__fixdfsi,
+ &__fixsfsi,
+ &__floatdidf,
+ &__floatdisf,
+ &__floatsidf,
+ &__floatsisf,
+ &__floatundidf,
+ &__floatundisf,
+ &__floatunsidf,
+ &__floatunsisf,
+ &__gedf2,
+ &__gtdf2,
+ &__ledf2,
+ &__ltdf2,
+ &__muldf3,
+ &__muldi3,
+ &__mulsf3,
+ &__nedf2,
+ &__popcount_tab,
+ &__popcountsi2,
+ &__subdf3,
+ &__subsf3,
+ &__truncdfsf2,
+ &__unorddf2,
+ &__unordsf2,
+};