diff options
| author | 2012-11-26 14:07:01 -0800 | |
|---|---|---|
| committer | 2012-11-26 14:07:02 -0800 | |
| commit | 25c15cebebc6e816f27ffc520dd399944fa3f9fe (patch) | |
| tree | a7c85762ccd644061164bbba9450b428eaa24132 | |
| parent | 5bc252873e6e50f8257e33ca158d0e350413fcbf (diff) | |
| parent | 8c4bbb55d0d801e492d849ee636771c8b2840429 (diff) | |
Merge "Eliminate build of target-specific compiler .so" into dalvik-dev
| -rw-r--r-- | build/Android.libart-compiler.mk | 40 | ||||
| -rw-r--r-- | src/compiler.cc | 22 |
2 files changed, 14 insertions, 48 deletions
diff --git a/build/Android.libart-compiler.mk b/build/Android.libart-compiler.mk index 3d12527097..8084be2e9d 100644 --- a/build/Android.libart-compiler.mk +++ b/build/Android.libart-compiler.mk @@ -14,7 +14,7 @@ # limitations under the License. # -LIBART_COMPILER_COMMON_SRC_FILES += \ +LIBART_COMPILER_SRC_FILES += \ src/compiler/dataflow.cc \ src/compiler/frontend.cc \ src/compiler/ralloc.cc \ @@ -55,20 +55,10 @@ LIBART_COMPILER_COMMON_SRC_FILES += \ src/compiler/codegen/x86/int_x86.cc \ src/oat/jni/arm/jni_internal_arm.cc \ src/oat/jni/mips/jni_internal_mips.cc \ - src/oat/jni/x86/jni_internal_x86.cc \ - -LIBART_COMPILER_arm_SRC_FILES += \ - $(LIBART_COMPILER_COMMON_SRC_FILES) - -LIBART_COMPILER_mips_SRC_FILES += \ - $(LIBART_COMPILER_COMMON_SRC_FILES) - -LIBART_COMPILER_x86_SRC_FILES += \ - $(LIBART_COMPILER_COMMON_SRC_FILES) + src/oat/jni/x86/jni_internal_x86.cc # $(1): target or host # $(2): ndebug or debug -# $(3): architecture name define build-libart-compiler ifneq ($(1),target) ifneq ($(1),host) @@ -83,7 +73,6 @@ define build-libart-compiler art_target_or_host := $(1) art_ndebug_or_debug := $(2) - libart_compiler_arch := $(3) include $(CLEAR_VARS) ifeq ($$(art_target_or_host),target) @@ -91,15 +80,15 @@ define build-libart-compiler endif LOCAL_CPP_EXTENSION := $(ART_CPP_EXTENSION) ifeq ($$(art_ndebug_or_debug),ndebug) - LOCAL_MODULE := libart-compiler-$$(libart_compiler_arch) + LOCAL_MODULE := libart-compiler else # debug - LOCAL_MODULE := libartd-compiler-$$(libart_compiler_arch) + LOCAL_MODULE := libartd-compiler endif LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := SHARED_LIBRARIES - LOCAL_SRC_FILES := $$(LIBART_COMPILER_$$(libart_compiler_arch)_SRC_FILES) + LOCAL_SRC_FILES := $$(LIBART_COMPILER_SRC_FILES) ifeq ($$(art_target_or_host),target) LOCAL_CFLAGS := $(ART_TARGET_CFLAGS) @@ -128,11 +117,6 @@ define build-libart-compiler endif LOCAL_SHARED_LIBRARIES += libbcc - # TODO: temporary hack for testing. - ifeq ($$(libart_compiler_arch),mips) - LOCAL_CFLAGS += -D__mips_hard_float - endif - ifeq ($(ART_USE_PORTABLE_COMPILER),true) ART_TEST_CFLAGS += -DART_USE_PORTABLE_COMPILER=1 endif @@ -173,21 +157,15 @@ define build-libart-compiler endef -# $(1): target or host -# $(2): ndebug or debug -define build-libart-compilers - $(foreach arch,arm mips x86,$(eval $(call build-libart-compiler,$(1),$(2),$(arch)))) -endef - ifeq ($(ART_BUILD_TARGET_NDEBUG),true) - $(eval $(call build-libart-compiler,target,ndebug,$(TARGET_ARCH))) + $(eval $(call build-libart-compiler,target,ndebug)) endif ifeq ($(ART_BUILD_TARGET_DEBUG),true) - $(eval $(call build-libart-compiler,target,debug,$(TARGET_ARCH))) + $(eval $(call build-libart-compiler,target,debug)) endif ifeq ($(ART_BUILD_HOST_NDEBUG),true) - $(eval $(call build-libart-compilers,host,ndebug)) + $(eval $(call build-libart-compiler,host,ndebug)) endif ifeq ($(ART_BUILD_HOST_DEBUG),true) - $(eval $(call build-libart-compilers,host,debug)) + $(eval $(call build-libart-compiler,host,debug)) endif diff --git a/src/compiler.cc b/src/compiler.cc index 818b412344..522b8c844f 100644 --- a/src/compiler.cc +++ b/src/compiler.cc @@ -232,18 +232,7 @@ class AOTCompilationStats { DISALLOW_COPY_AND_ASSIGN(AOTCompilationStats); }; -static std::string MakeCompilerSoName(CompilerBackend compiler_backend, InstructionSet instruction_set) { - // TODO: is the ARM/Thumb2 instruction set distinction really buying us anything, - // or just causing hassle like this? - if (instruction_set == kThumb2) { - instruction_set = kArm; - } - - // Lower case the instruction set, because that's what we do in the build system. - std::string instruction_set_name(ToStr<InstructionSet>(instruction_set).str()); - for (size_t i = 0; i < instruction_set_name.size(); ++i) { - instruction_set_name[i] = tolower(instruction_set_name[i]); - } +static std::string MakeCompilerSoName(CompilerBackend compiler_backend) { // Bad things happen if we pull in the libartd-compiler to a libart dex2oat or vice versa, // because we end up with both libart and libartd in the same address space! @@ -254,7 +243,7 @@ static std::string MakeCompilerSoName(CompilerBackend compiler_backend, Instruct if ((compiler_backend == kPortable) || (compiler_backend == kIceland)) { library_name = StringPrintf("art%s-compiler-llvm", suffix); } else { - library_name = StringPrintf("art%s-compiler-%s", suffix, instruction_set_name.c_str()); + library_name = StringPrintf("art%s-compiler", suffix); } std::string filename(StringPrintf(OS_SHARED_LIB_FORMAT_STR, library_name.c_str())); @@ -314,7 +303,7 @@ Compiler::Compiler(CompilerBackend compiler_backend, InstructionSet instruction_ jni_compiler_(NULL), create_invoke_stub_(NULL) { - std::string compiler_so_name(MakeCompilerSoName(compiler_backend_, instruction_set_)); + std::string compiler_so_name(MakeCompilerSoName(compiler_backend_)); compiler_library_ = dlopen(compiler_so_name.c_str(), RTLD_LAZY); if (compiler_library_ == NULL) { LOG(FATAL) << "Couldn't find compiler library " << compiler_so_name << ": " << dlerror(); @@ -402,7 +391,7 @@ Compiler::~Compiler() { } CHECK_PTHREAD_CALL(pthread_key_delete, (tls_key_), "delete tls key"); typedef void (*UninitCompilerContextFn)(Compiler&); - std::string compiler_so_name(MakeCompilerSoName(compiler_backend_, instruction_set_)); + std::string compiler_so_name(MakeCompilerSoName(compiler_backend_)); UninitCompilerContextFn uninit_compiler_context; // Uninitialize compiler_context_ // TODO: rework to combine initialization/uninitialization @@ -1753,8 +1742,7 @@ void Compiler::SetBitcodeFileName(std::string const& filename) { typedef void (*SetBitcodeFileNameFn)(Compiler&, std::string const&); SetBitcodeFileNameFn set_bitcode_file_name = - FindFunction<SetBitcodeFileNameFn>(MakeCompilerSoName(compiler_backend_, instruction_set_), - compiler_library_, + FindFunction<SetBitcodeFileNameFn>(MakeCompilerSoName(compiler_backend_), compiler_library_, "compilerLLVMSetBitcodeFileName"); set_bitcode_file_name(*this, filename); |