OSDN Git Service

Move __aeabi* symbols to LIBC_N version
authorDimitry Ivanov <dimitry@google.com>
Fri, 8 Jan 2016 18:06:44 +0000 (10:06 -0800)
committerDimitry Ivanov <dimitry@google.com>
Fri, 8 Jan 2016 18:13:16 +0000 (10:13 -0800)
We had these symbols incorrectly versioned as LIBC_PRIVATE
in M release. This change moves __aeabi* symbols from LIBC
to LIBC_N and adds __gnu_Unwind_Find_exidx to the list

Bug: https://github.com/android-ndk/ndk/issues/1
Change-Id: I0b353012adeacb00ae29ea10c63b9d1cf1cadbe7

libc/arch-arm/bionic/__aeabi.c
libc/arch-arm/bionic/exidx_dynamic.c
libc/libc.arm.brillo.map
libc/libc.arm.map
libc/libc.map.txt

index 098c553..1620d45 100644 (file)
@@ -165,7 +165,7 @@ void __attribute__((weak)) __aeabi_memclr_impl2(void *dest, size_t n) {
 }
 
 #define __AEABI_SYMVERS(fn_name) \
-__asm__(".symver " #fn_name "_impl, " #fn_name "@@LIBC"); \
+__asm__(".symver " #fn_name "_impl, " #fn_name "@@LIBC_N"); \
 __asm__(".symver " #fn_name "_impl2, " #fn_name "@LIBC_PRIVATE")
 
 __AEABI_SYMVERS(__aeabi_atexit);
index c7b7156..60ac8af 100644 (file)
  * the expectation that libc will define it and call through to
  * a differently-named function in the dynamic linker.
  */
-_Unwind_Ptr __gnu_Unwind_Find_exidx(_Unwind_Ptr pc, int *pcount)
-{
+_Unwind_Ptr __gnu_Unwind_Find_exidx_impl(_Unwind_Ptr pc, int *pcount) {
     return dl_unwind_find_exidx(pc, pcount);
 }
+
+_Unwind_Ptr __gnu_Unwind_Find_exidx_impl2(_Unwind_Ptr pc, int *pcount) {
+    return dl_unwind_find_exidx(pc, pcount);
+}
+
+__asm__(".symver __gnu_Unwind_Find_exidx_impl,__gnu_Unwind_Find_exidx@LIBC_PRIVATE");
+__asm__(".symver __gnu_Unwind_Find_exidx_impl2,__gnu_Unwind_Find_exidx@@LIBC_N");
index f7033a0..4ebdc45 100644 (file)
@@ -1,19 +1,6 @@
 # Generated by genversionscripts.py. Do not edit.
 LIBC {
   global:
-    __aeabi_atexit; # arm
-    __aeabi_memclr; # arm
-    __aeabi_memclr4; # arm
-    __aeabi_memclr8; # arm
-    __aeabi_memcpy; # arm
-    __aeabi_memcpy4; # arm
-    __aeabi_memcpy8; # arm
-    __aeabi_memmove; # arm
-    __aeabi_memmove4; # arm
-    __aeabi_memmove8; # arm
-    __aeabi_memset; # arm
-    __aeabi_memset4; # arm
-    __aeabi_memset8; # arm
     __assert;
     __assert2;
     __atomic_cmpxchg; # arm
@@ -1224,9 +1211,23 @@ LIBC {
 
 LIBC_N {
   global:
+    __aeabi_atexit; # arm
+    __aeabi_memclr; # arm
+    __aeabi_memclr4; # arm
+    __aeabi_memclr8; # arm
+    __aeabi_memcpy; # arm
+    __aeabi_memcpy4; # arm
+    __aeabi_memcpy8; # arm
+    __aeabi_memmove; # arm
+    __aeabi_memmove4; # arm
+    __aeabi_memmove8; # arm
+    __aeabi_memset; # arm
+    __aeabi_memset4; # arm
+    __aeabi_memset8; # arm
     __fread_chk;
     __fwrite_chk;
     __getcwd_chk;
+    __gnu_Unwind_Find_exidx; # arm
     __pwrite_chk;
     __pwrite64_chk;
     __write_chk;
index a88c549..a2fc481 100644 (file)
@@ -1,19 +1,6 @@
 # Generated by genversionscripts.py. Do not edit.
 LIBC {
   global:
-    __aeabi_atexit; # arm
-    __aeabi_memclr; # arm
-    __aeabi_memclr4; # arm
-    __aeabi_memclr8; # arm
-    __aeabi_memcpy; # arm
-    __aeabi_memcpy4; # arm
-    __aeabi_memcpy8; # arm
-    __aeabi_memmove; # arm
-    __aeabi_memmove4; # arm
-    __aeabi_memmove8; # arm
-    __aeabi_memset; # arm
-    __aeabi_memset4; # arm
-    __aeabi_memset8; # arm
     __assert;
     __assert2;
     __atomic_cmpxchg; # arm
@@ -1225,9 +1212,23 @@ LIBC {
 
 LIBC_N {
   global:
+    __aeabi_atexit; # arm
+    __aeabi_memclr; # arm
+    __aeabi_memclr4; # arm
+    __aeabi_memclr8; # arm
+    __aeabi_memcpy; # arm
+    __aeabi_memcpy4; # arm
+    __aeabi_memcpy8; # arm
+    __aeabi_memmove; # arm
+    __aeabi_memmove4; # arm
+    __aeabi_memmove8; # arm
+    __aeabi_memset; # arm
+    __aeabi_memset4; # arm
+    __aeabi_memset8; # arm
     __fread_chk;
     __fwrite_chk;
     __getcwd_chk;
+    __gnu_Unwind_Find_exidx; # arm
     __pwrite_chk;
     __pwrite64_chk;
     __write_chk;
index dba1b90..8306463 100644 (file)
@@ -1,18 +1,5 @@
 LIBC {
   global:
-    __aeabi_atexit; # arm
-    __aeabi_memclr; # arm
-    __aeabi_memclr4; # arm
-    __aeabi_memclr8; # arm
-    __aeabi_memcpy; # arm
-    __aeabi_memcpy4; # arm
-    __aeabi_memcpy8; # arm
-    __aeabi_memmove; # arm
-    __aeabi_memmove4; # arm
-    __aeabi_memmove8; # arm
-    __aeabi_memset; # arm
-    __aeabi_memset4; # arm
-    __aeabi_memset8; # arm
     __assert;
     __assert2;
     __atomic_cmpxchg; # arm
@@ -1252,9 +1239,23 @@ LIBC {
 
 LIBC_N {
   global:
+    __aeabi_atexit; # arm
+    __aeabi_memclr; # arm
+    __aeabi_memclr4; # arm
+    __aeabi_memclr8; # arm
+    __aeabi_memcpy; # arm
+    __aeabi_memcpy4; # arm
+    __aeabi_memcpy8; # arm
+    __aeabi_memmove; # arm
+    __aeabi_memmove4; # arm
+    __aeabi_memmove8; # arm
+    __aeabi_memset; # arm
+    __aeabi_memset4; # arm
+    __aeabi_memset8; # arm
     __fread_chk;
     __fwrite_chk;
     __getcwd_chk;
+    __gnu_Unwind_Find_exidx; # arm
     __pwrite_chk;
     __pwrite64_chk;
     __write_chk;