blob: a596a4805219e2a93685c4bd742200f8b8d335e8 [file] [log] [blame]
Colin Cross36ee4ab2014-02-12 21:58:47 -08001
2#
3# Instead of including $(BUILD_EXECUTABLE), we execute the steps to create an executable by
4# hand, as we want to insert an extra objcopy step that is not supported by the build
5# system, and is probably specific the linker only, so there's no need to modify the build
6# system for the purpose.
7#
8
9LOCAL_MODULE_CLASS := EXECUTABLES
10LOCAL_MODULE_SUFFIX := $(TARGET_EXECUTABLE_SUFFIX)
11
Chih-Hung Hsieh81fe2b12014-09-04 15:19:52 -070012# Clang calls /usr/bin/ld: unrecognized option '--icf=safe', http://b/17403674.
13LOCAL_CLANG := false
Colin Cross36ee4ab2014-02-12 21:58:47 -080014include $(BUILD_SYSTEM)/dynamic_binary.mk
15
16# See build/core/executable_internal.mk
17$(linked_module): PRIVATE_TARGET_GLOBAL_LD_DIRS := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_LD_DIRS)
18$(linked_module): PRIVATE_TARGET_GLOBAL_LDFLAGS := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_LDFLAGS)
19$(linked_module): PRIVATE_TARGET_FDO_LIB := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_LIB)
20$(linked_module): PRIVATE_TARGET_LIBGCC := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_LIBGCC)
21$(linked_module): PRIVATE_TARGET_CRTBEGIN_DYNAMIC_O := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_CRTBEGIN_DYNAMIC_O)
22$(linked_module): PRIVATE_TARGET_CRTBEGIN_STATIC_O := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_CRTBEGIN_STATIC_O)
23$(linked_module): PRIVATE_TARGET_CRTEND_O := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_CRTEND_O)
24$(linked_module): PRIVATE_TARGET_OBJCOPY := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_OBJCOPY)
25$(linked_module): $(TARGET_CRTBEGIN_STATIC_O) $(all_objects) $(all_libraries) $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_CRTEND_O)
26 $(transform-o-to-static-executable)
27 @echo "target PrefixSymbols: $(PRIVATE_MODULE) ($@)"
28 $(hide) $(PRIVATE_TARGET_OBJCOPY) --prefix-symbols=__dl_ $@