diff options
Diffstat (limited to 'libc/Android.mk')
-rw-r--r-- | libc/Android.mk | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/libc/Android.mk b/libc/Android.mk index 8b2108cff..30af6ca12 100644 --- a/libc/Android.mk +++ b/libc/Android.mk @@ -403,7 +403,7 @@ libc_common_src_files += \ arch-x86/string/memset_wrapper.S \ arch-x86/string/strcmp_wrapper.S \ arch-x86/string/strncmp_wrapper.S \ - arch-x86/string/strlen.S \ + arch-x86/string/strlen_wrapper.S \ bionic/pthread-rwlocks.c \ string/strcpy.c \ bionic/pthread-timers.c \ @@ -527,6 +527,10 @@ ifeq ($(BOARD_USE_NASTY_PTHREAD_CREATE_HACK),true) libc_common_cflags += -DNASTY_PTHREAD_CREATE_HACK endif +ifeq ($(TARGET_ARCH),arm) +libc_crt_target_cflags += -DCRT_LEGACY_WORKAROUND +endif + # Define some common includes # ======================================================== libc_common_c_includes := \ @@ -551,18 +555,24 @@ ifneq ($(filter arm x86,$(TARGET_ARCH)),) # that will call __cxa_finalize(&__dso_handle) in order to ensure that # static C++ destructors are properly called on dlclose(). # + +libc_crt_target_so_cflags := $(libc_crt_target_cflags) +ifeq ($(TARGET_ARCH),x86) + # This flag must be added for x86 targets, but not for ARM + libc_crt_target_so_cflags += -fPIC +endif GEN := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_so.o $(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtbegin_so.S @mkdir -p $(dir $@) - $(TARGET_CC) $(libc_crt_target_cflags) -o $@ -c $< + $(TARGET_CC) $(libc_crt_target_so_cflags) -o $@ -c $< ALL_GENERATED_SOURCES += $(GEN) GEN := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_so.o $(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtend_so.S @mkdir -p $(dir $@) - $(TARGET_CC) $(libc_crt_target_cflags) -o $@ -c $< + $(TARGET_CC) $(libc_crt_target_so_cflags) -o $@ -c $< ALL_GENERATED_SOURCES += $(GEN) -endif # TARGET_ARCH == x86 +endif # TARGET_ARCH == x86 || TARGET_ARCH == arm GEN := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_static.o @@ -605,6 +615,10 @@ asm_flags := \ LOCAL_CFLAGS+= \ $(foreach f,$(asm_flags),-Wa,"$(f)") endif + +ifeq ($(TARGET_ARCH),arm) +LOCAL_CFLAGS += -DCRT_LEGACY_WORKAROUND +endif LOCAL_C_INCLUDES := $(libc_common_c_includes) LOCAL_MODULE := libc_common LOCAL_SYSTEM_SHARED_LIBRARIES := @@ -721,6 +735,7 @@ LOCAL_MODULE:= libc_malloc_debug_leak LOCAL_SHARED_LIBRARIES := libc LOCAL_WHOLE_STATIC_LIBRARIES := libc_common LOCAL_SYSTEM_SHARED_LIBRARIES := +LOCAL_ALLOW_UNDEFINED_SYMBOLS := true # Don't prelink LOCAL_PRELINK_MODULE := false # Don't install on release build |