From e49a4f6db74f4e66486a6aaf6564f997a94e230f Mon Sep 17 00:00:00 2001 From: Dmitriy Ivanov Date: Mon, 20 Oct 2014 14:11:00 -0700 Subject: [PATCH] Link libsigchain.a instead of sigchain.o Relative paths may sometimes lead to failed builds if sources are built in particular order. Also it is possible to export symbols from static lib with LOCAL_WHOLE_STATIC_LIBRARIES variable. Change-Id: I6d62594c2e84020d67254747c1fd465e1144920e --- build/Android.executable.mk | 3 ++- build/Android.gtest.mk | 3 ++- dalvikvm/Android.mk | 6 ++++-- sigchainlib/Android.mk | 26 ++++++++++++++++++++++++++ 4 files changed, 34 insertions(+), 4 deletions(-) diff --git a/build/Android.executable.mk b/build/Android.executable.mk index 81f329751..86f445faa 100644 --- a/build/Android.executable.mk +++ b/build/Android.executable.mk @@ -54,9 +54,10 @@ define build-art-executable include $(CLEAR_VARS) LOCAL_CPP_EXTENSION := $(ART_CPP_EXTENSION) LOCAL_MODULE_TAGS := optional - LOCAL_SRC_FILES := $$(art_source) ../sigchainlib/sigchain.cc + LOCAL_SRC_FILES := $$(art_source) LOCAL_C_INCLUDES += $(ART_C_INCLUDES) art/runtime $$(art_c_includes) LOCAL_SHARED_LIBRARIES += $$(art_shared_libraries) + LOCAL_WHOLE_STATIC_LIBRARIES += libsigchain ifeq ($$(art_ndebug_or_debug),ndebug) LOCAL_MODULE := $$(art_executable) diff --git a/build/Android.gtest.mk b/build/Android.gtest.mk index f782d5c6a..db7257a94 100644 --- a/build/Android.gtest.mk +++ b/build/Android.gtest.mk @@ -332,9 +332,10 @@ define define-art-gtest LOCAL_MODULE_TAGS := tests endif LOCAL_CPP_EXTENSION := $$(ART_CPP_EXTENSION) - LOCAL_SRC_FILES := $$(art_gtest_filename) sigchainlib/sigchain.cc + LOCAL_SRC_FILES := $$(art_gtest_filename) LOCAL_C_INCLUDES += $$(ART_C_INCLUDES) art/runtime $$(art_gtest_extra_c_includes) LOCAL_SHARED_LIBRARIES += libartd $$(art_gtest_extra_shared_libraries) libart-gtest + LOCAL_WHOLE_STATIC_LIBRARIES += libsigchain LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common_build.mk LOCAL_ADDITIONAL_DEPENDENCIES += art/build/Android.gtest.mk diff --git a/dalvikvm/Android.mk b/dalvikvm/Android.mk index 0bab429e8..0ef20d60d 100644 --- a/dalvikvm/Android.mk +++ b/dalvikvm/Android.mk @@ -24,10 +24,11 @@ include $(CLEAR_VARS) LOCAL_MODULE := dalvikvm LOCAL_MODULE_TAGS := optional LOCAL_CPP_EXTENSION := cc -LOCAL_SRC_FILES := dalvikvm.cc ../sigchainlib/sigchain.cc +LOCAL_SRC_FILES := dalvikvm.cc LOCAL_CFLAGS := $(dalvikvm_cflags) LOCAL_C_INCLUDES := art/runtime LOCAL_SHARED_LIBRARIES := libdl liblog libnativehelper +LOCAL_WHOLE_STATIC_LIBRARIES := libsigchain LOCAL_LDFLAGS := -Wl,--version-script,art/sigchainlib/version-script.txt -Wl,--export-dynamic LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_ADDITIONAL_DEPENDENCIES += art/build/Android.common.mk @@ -51,10 +52,11 @@ LOCAL_MODULE := dalvikvm LOCAL_MODULE_TAGS := optional LOCAL_CLANG := true LOCAL_CPP_EXTENSION := cc -LOCAL_SRC_FILES := dalvikvm.cc ../sigchainlib/sigchain.cc +LOCAL_SRC_FILES := dalvikvm.cc LOCAL_CFLAGS := $(dalvikvm_cflags) LOCAL_C_INCLUDES := art/runtime LOCAL_SHARED_LIBRARIES := libnativehelper +LOCAL_WHOLE_STATIC_LIBRARIES := libsigchain LOCAL_LDFLAGS := -ldl -lpthread # Mac OS linker doesn't understand --export-dynamic. ifneq ($(HOST_OS),darwin) diff --git a/sigchainlib/Android.mk b/sigchainlib/Android.mk index e52adfc65..b7ff3606f 100644 --- a/sigchainlib/Android.mk +++ b/sigchainlib/Android.mk @@ -30,6 +30,18 @@ LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_ADDITIONAL_DEPENDENCIES += art/build/Android.common_build.mk include $(BUILD_SHARED_LIBRARY) +include $(CLEAR_VARS) +LOCAL_CPP_EXTENSION := $(ART_CPP_EXTENSION) +LOCAL_MODULE_TAGS := optional +LOCAL_CFLAGS += $(ART_TARGET_CFLAGS) +LOCAL_SRC_FILES := sigchain.cc +LOCAL_CLANG = $(ART_TARGET_CLANG) +LOCAL_MODULE:= libsigchain +LOCAL_SHARED_LIBRARIES := liblog +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk +LOCAL_ADDITIONAL_DEPENDENCIES += art/build/Android.common_build.mk +include $(BUILD_STATIC_LIBRARY) + # Build host library. include $(CLEAR_VARS) LOCAL_CPP_EXTENSION := $(ART_CPP_EXTENSION) @@ -43,3 +55,17 @@ LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk LOCAL_LDLIBS = -ldl LOCAL_MULTILIB := both include $(BUILD_HOST_SHARED_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_CPP_EXTENSION := $(ART_CPP_EXTENSION) +LOCAL_MODULE_TAGS := optional +LOCAL_IS_HOST_MODULE := true +LOCAL_CFLAGS += $(ART_HOST_CFLAGS) +LOCAL_CLANG = $(ART_HOST_CLANG) +LOCAL_SRC_FILES := sigchain.cc +LOCAL_MODULE:= libsigchain +LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk +LOCAL_LDLIBS = -ldl +LOCAL_MULTILIB := both +include external/libcxx/libcxx.mk +include $(BUILD_HOST_STATIC_LIBRARY) -- 2.11.0