From 65e80cf62200085f72c1c081aea2d6e9b800cde2 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Wed, 18 Jun 2014 17:18:33 -0700 Subject: [PATCH] Prevent symbols from libgcc from being reexported. Since this was not done earlier, there are binary compatibility concerns that prevent us from being able to apply this to LP32. Bug: 11156955 Change-Id: Ie717c3ae4b81c749548a45a993c834e109700b27 --- libc/Android.mk | 7 +++++++ libm/Android.mk | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/libc/Android.mk b/libc/Android.mk index 1b3965e03..7febccd8d 100644 --- a/libc/Android.mk +++ b/libc/Android.mk @@ -971,6 +971,13 @@ LOCAL_SHARED_LIBRARIES := libdl LOCAL_WHOLE_STATIC_LIBRARIES := libc_common LOCAL_SYSTEM_SHARED_LIBRARIES := +# We'd really like to do this for all architectures, but since this wasn't done +# before, these symbols must continue to be exported on LP32 for binary +# compatibility. +LOCAL_LDFLAGS_arm64 := -Wl,--exclude-libs,libgcc.a +LOCAL_LDFLAGS_mips64 := -Wl,--exclude-libs,libgcc.a +LOCAL_LDFLAGS_x86_64 := -Wl,--exclude-libs,libgcc.a + $(eval $(call patch-up-arch-specific-flags,LOCAL_CFLAGS,libc_common_cflags)) $(eval $(call patch-up-arch-specific-flags,LOCAL_SRC_FILES,libc_arch_dynamic_src_files)) $(eval $(call patch-up-arch-specific-flags,LOCAL_SRC_FILES,libc_static_common_src_files)) diff --git a/libm/Android.mk b/libm/Android.mk index 90b4906e1..994caa0c6 100644 --- a/libm/Android.mk +++ b/libm/Android.mk @@ -291,5 +291,12 @@ LOCAL_MODULE:= libm LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_SYSTEM_SHARED_LIBRARIES := libc LOCAL_WHOLE_STATIC_LIBRARIES := libm + +# We'd really like to do this for all architectures, but since this wasn't done +# before, these symbols must continue to be exported on LP32 for binary +# compatibility. +LOCAL_LDFLAGS_arm64 := -Wl,--exclude-libs,libgcc.a +LOCAL_LDFLAGS_mips64 := -Wl,--exclude-libs,libgcc.a +LOCAL_LDFLAGS_x86_64 := -Wl,--exclude-libs,libgcc.a include $(BUILD_SHARED_LIBRARY) endif