From 03273f8fc0a7ac2b54fa2c983d4a647580e34458 Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Tue, 10 Apr 2012 17:24:24 -0700 Subject: [PATCH] __on_dlclose should be aligned Marking segments read-only was pushing the alignment of __on_dlclose by 2 bytes making it unaligned. This change makes sure the ARM code is aligned to the 4 byte boundary. Bug: 6313309 Change-Id: Ic2bf475e120dd61225ec19e5d8a9a8b1d0b7f081 --- libc/Android.mk | 3 ++- libc/arch-arm/bionic/crtbegin_so.S | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libc/Android.mk b/libc/Android.mk index 5e417410c..885fb932d 100644 --- a/libc/Android.mk +++ b/libc/Android.mk @@ -514,8 +514,9 @@ libc_common_c_includes := \ # Needed to access private/__dso_handle.S from # crtbegin_xxx.S and crtend_xxx.S +# and machine/asm.h # -libc_crt_target_cflags += -I$(LOCAL_PATH)/private +libc_crt_target_cflags += -I$(LOCAL_PATH)/private -I$(LOCAL_PATH)/arch-$(TARGET_ARCH)/include # Define the libc run-time (crt) support object files that must be built, # which are needed to build all other objects (shared/static libs and diff --git a/libc/arch-arm/bionic/crtbegin_so.S b/libc/arch-arm/bionic/crtbegin_so.S index 9275b1e01..a54ed0d15 100644 --- a/libc/arch-arm/bionic/crtbegin_so.S +++ b/libc/arch-arm/bionic/crtbegin_so.S @@ -26,6 +26,10 @@ * SUCH DAMAGE. */ +#include + +ENTRY(__on_dlclose) + # Implement static C++ destructors when the shared # library is unloaded through dlclose(). # @@ -52,6 +56,8 @@ __FINI_ARRAY__: .long -1 .long __on_dlclose +END(__on_dlclose) + #ifdef CRT_LEGACY_WORKAROUND #include "__dso_handle.S" #else -- 2.11.0