am 7d5fe242: am a05a04cc: Merge "Refactor transform-o-to-* definitions."
* commit '7d5fe24251846ef70f423f15bf941be35750c2e8': Refactor transform-o-to-* definitions.
This commit is contained in:
commit
cf559ed073
|
@ -191,81 +191,4 @@ $(combo_2nd_arch_prefix)TARGET_STRIP_MODULE:=true
|
||||||
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libm
|
$(combo_2nd_arch_prefix)TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libm
|
||||||
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_CUSTOM_LD_COMMAND := true
|
$(combo_2nd_arch_prefix)TARGET_LINKER := /system/bin/linker
|
||||||
|
|
||||||
define $(combo_2nd_arch_prefix)transform-o-to-shared-lib-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) \
|
|
||||||
-nostdlib -Wl,-soname,$(notdir $@) \
|
|
||||||
-Wl,--gc-sections \
|
|
||||||
$(if $(filter true,$(PRIVATE_CLANG)),-shared,-Wl,-shared) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
|
||||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_SO_O)) \
|
|
||||||
$(PRIVATE_LDLIBS)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define $(combo_2nd_arch_prefix)transform-o-to-executable-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -pie \
|
|
||||||
-Wl,-dynamic-linker,/system/bin/linker \
|
|
||||||
-Wl,--gc-sections \
|
|
||||||
-Wl,-z,nocopyreloc \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
-Wl,-rpath-link=$(PRIVATE_TARGET_OUT_INTERMEDIATE_LIBRARIES) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_DYNAMIC_O)) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
|
||||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O)) \
|
|
||||||
$(PRIVATE_LDLIBS)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define $(combo_2nd_arch_prefix)transform-o-to-static-executable-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) -nostdlib -Bstatic \
|
|
||||||
-Wl,--gc-sections \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_STATIC_O)) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(filter-out %libcompiler_rt.a,$(filter-out %libc_nomalloc.a,$(filter-out %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))))) \
|
|
||||||
-Wl,--start-group \
|
|
||||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(call normalize-target-libraries,$(filter %libcompiler_rt.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
-Wl,--end-group \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O))
|
|
||||||
endef
|
|
||||||
|
|
|
@ -157,81 +157,4 @@ TARGET_STRIP_MODULE:=true
|
||||||
|
|
||||||
TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libm
|
TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libm
|
||||||
|
|
||||||
TARGET_CUSTOM_LD_COMMAND := true
|
TARGET_LINKER := /system/bin/linker64
|
||||||
|
|
||||||
define transform-o-to-shared-lib-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) \
|
|
||||||
-nostdlib -Wl,-soname,$(notdir $@) \
|
|
||||||
-Wl,--gc-sections \
|
|
||||||
$(if $(filter true,$(PRIVATE_CLANG)),-shared,-Wl,-shared) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
|
||||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_SO_O)) \
|
|
||||||
$(PRIVATE_LDLIBS)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define transform-o-to-executable-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -pie \
|
|
||||||
-Wl,-dynamic-linker,/system/bin/linker64 \
|
|
||||||
-Wl,--gc-sections \
|
|
||||||
-Wl,-z,nocopyreloc \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
-Wl,-rpath-link=$(PRIVATE_TARGET_OUT_INTERMEDIATE_LIBRARIES) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_DYNAMIC_O)) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
|
||||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O)) \
|
|
||||||
$(PRIVATE_LDLIBS)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define transform-o-to-static-executable-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) -nostdlib -Bstatic \
|
|
||||||
-Wl,--gc-sections \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_STATIC_O)) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(filter-out %libcompiler_rt.a,$(filter-out %libc_nomalloc.a,$(filter-out %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))))) \
|
|
||||||
-Wl,--start-group \
|
|
||||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(call normalize-target-libraries,$(filter %libcompiler_rt.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
-Wl,--end-group \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O))
|
|
||||||
endef
|
|
||||||
|
|
|
@ -162,81 +162,4 @@ $(combo_2nd_arch_prefix)TARGET_STRIP_MODULE:=true
|
||||||
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libm
|
$(combo_2nd_arch_prefix)TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libm
|
||||||
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_CUSTOM_LD_COMMAND := true
|
$(combo_2nd_arch_prefix)TARGET_LINKER := /system/bin/linker
|
||||||
|
|
||||||
define $(combo_2nd_arch_prefix)transform-o-to-shared-lib-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) \
|
|
||||||
-nostdlib -Wl,-soname,$(notdir $@) \
|
|
||||||
-Wl,--gc-sections \
|
|
||||||
$(if $(filter true,$(PRIVATE_CLANG)),-shared,-Wl,-shared) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
|
||||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_SO_O)) \
|
|
||||||
$(PRIVATE_LDLIBS)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define $(combo_2nd_arch_prefix)transform-o-to-executable-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -pie \
|
|
||||||
-Wl,-dynamic-linker,/system/bin/linker \
|
|
||||||
-Wl,--gc-sections \
|
|
||||||
-Wl,-z,nocopyreloc \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
-Wl,-rpath-link=$(PRIVATE_TARGET_OUT_INTERMEDIATE_LIBRARIES) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_DYNAMIC_O)) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
|
||||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O)) \
|
|
||||||
$(PRIVATE_LDLIBS)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define $(combo_2nd_arch_prefix)transform-o-to-static-executable-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) -nostdlib -Bstatic \
|
|
||||||
-Wl,--gc-sections \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_STATIC_O)) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(filter-out %libcompiler_rt.a,$(filter-out %libc_nomalloc.a,$(filter-out %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))))) \
|
|
||||||
-Wl,--start-group \
|
|
||||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(call normalize-target-libraries,$(filter %libcompiler_rt.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
-Wl,--end-group \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O))
|
|
||||||
endef
|
|
||||||
|
|
|
@ -166,81 +166,4 @@ TARGET_STRIP_MODULE:=true
|
||||||
|
|
||||||
TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm
|
TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm
|
||||||
|
|
||||||
TARGET_CUSTOM_LD_COMMAND := true
|
TARGET_LINKER := /system/bin/linker64
|
||||||
|
|
||||||
define transform-o-to-shared-lib-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) \
|
|
||||||
-nostdlib -Wl,-soname,$(notdir $@) \
|
|
||||||
-Wl,--gc-sections \
|
|
||||||
$(if $(filter true,$(PRIVATE_CLANG)),-shared,-Wl,-shared) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
|
||||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_SO_O)) \
|
|
||||||
$(PRIVATE_LDLIBS)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define transform-o-to-executable-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -pie \
|
|
||||||
-Wl,-dynamic-linker,/system/bin/linker64 \
|
|
||||||
-Wl,--gc-sections \
|
|
||||||
-Wl,-z,nocopyreloc \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
-Wl,-rpath-link=$(PRIVATE_TARGET_OUT_INTERMEDIATE_LIBRARIES) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_DYNAMIC_O)) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
|
||||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O)) \
|
|
||||||
$(PRIVATE_LDLIBS)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define transform-o-to-static-executable-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) -nostdlib -Bstatic \
|
|
||||||
-Wl,--gc-sections \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_STATIC_O)) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(filter-out %libcompiler_rt.a,$(filter-out %libc_nomalloc.a,$(filter-out %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))))) \
|
|
||||||
-Wl,--start-group \
|
|
||||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(call normalize-target-libraries,$(filter %libcompiler_rt.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
-Wl,--end-group \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O))
|
|
||||||
endef
|
|
||||||
|
|
|
@ -145,79 +145,4 @@ $(combo_2nd_arch_prefix)TARGET_STRIP_MODULE:=true
|
||||||
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libm
|
$(combo_2nd_arch_prefix)TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libm
|
||||||
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_CUSTOM_LD_COMMAND := true
|
$(combo_2nd_arch_prefix)TARGET_LINKER := /system/bin/linker
|
||||||
define $(combo_2nd_arch_prefix)transform-o-to-shared-lib-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
-nostdlib -Wl,-soname,$(notdir $@) \
|
|
||||||
$(if $(filter true,$(PRIVATE_CLANG)),-shared,-Wl,-shared) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
|
||||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_SO_O)) \
|
|
||||||
$(PRIVATE_LDLIBS)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define $(combo_2nd_arch_prefix)transform-o-to-executable-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
-nostdlib -Bdynamic \
|
|
||||||
-Wl,-z,nocopyreloc \
|
|
||||||
-pie \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
-Wl,-rpath-link=$(PRIVATE_TARGET_OUT_INTERMEDIATE_LIBRARIES) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_DYNAMIC_O)) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
|
||||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O)) \
|
|
||||||
$(PRIVATE_LDLIBS)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define $(combo_2nd_arch_prefix)transform-o-to-static-executable-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
-nostdlib -Bstatic \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_STATIC_O)) \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
-Wl,--start-group \
|
|
||||||
$(call normalize-target-libraries,$(filter-out %libcompiler_rt.a,$(filter-out %libc_nomalloc.a,$(filter-out %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))))) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(call normalize-target-libraries,$(filter %libcompiler_rt.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
-Wl,--end-group \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O))
|
|
||||||
endef
|
|
||||||
|
|
|
@ -150,79 +150,4 @@ TARGET_STRIP_MODULE:=true
|
||||||
|
|
||||||
TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libm
|
TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libm
|
||||||
|
|
||||||
TARGET_CUSTOM_LD_COMMAND := true
|
TARGET_LINKER := /system/bin/linker64
|
||||||
define transform-o-to-shared-lib-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
-nostdlib -Wl,-soname,$(notdir $@) \
|
|
||||||
$(if $(filter true,$(PRIVATE_CLANG)),-shared,-Wl,-shared) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
|
||||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_SO_O)) \
|
|
||||||
$(PRIVATE_LDLIBS)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define transform-o-to-executable-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
-nostdlib -Bdynamic \
|
|
||||||
-Wl,-z,nocopyreloc \
|
|
||||||
-pie \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
-Wl,-rpath-link=$(PRIVATE_TARGET_OUT_INTERMEDIATE_LIBRARIES) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_DYNAMIC_O)) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
|
||||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O)) \
|
|
||||||
$(PRIVATE_LDLIBS)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define transform-o-to-static-executable-inner
|
|
||||||
$(hide) $(PRIVATE_CXX) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
|
||||||
-nostdlib -Bstatic \
|
|
||||||
-o $@ \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_STATIC_O)) \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
|
||||||
-Wl,--whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
||||||
-Wl,--no-whole-archive \
|
|
||||||
$(call normalize-target-libraries,$(filter-out %libcompiler_rt.a,$(filter-out %libc_nomalloc.a,$(filter-out %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))))) \
|
|
||||||
-Wl,--start-group \
|
|
||||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
|
||||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
|
||||||
$(call normalize-target-libraries,$(filter %libcompiler_rt.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
|
||||||
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
|
||||||
-Wl,--end-group \
|
|
||||||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O))
|
|
||||||
endef
|
|
||||||
|
|
|
@ -1310,17 +1310,13 @@ endef
|
||||||
|
|
||||||
# -Wl,--version-script=$@.vers \
|
# -Wl,--version-script=$@.vers \
|
||||||
|
|
||||||
# ld just seems to be so finicky with command order that we allow
|
|
||||||
# it to be overriden en-masse see combo/linux-arm.make for an example.
|
|
||||||
ifneq ($(TARGET_CUSTOM_LD_COMMAND),true)
|
|
||||||
define transform-o-to-shared-lib-inner
|
define transform-o-to-shared-lib-inner
|
||||||
$(hide) $(PRIVATE_CXX) \
|
$(hide) $(PRIVATE_CXX) \
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
-nostdlib -Wl,-soname,$(notdir $@) \
|
||||||
-Wl,-rpath-link=$(PRIVATE_TARGET_OUT_INTERMEDIATE_LIBRARIES) \
|
-Wl,--gc-sections \
|
||||||
-Wl,-rpath,\$$ORIGIN/../lib \
|
$(if $(filter true,$(PRIVATE_CLANG)),-shared,-Wl,-shared) \
|
||||||
-Wl,-shared -Wl,-soname,$(notdir $@) \
|
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
||||||
|
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
$(PRIVATE_ALL_OBJECTS) \
|
||||||
-Wl,--whole-archive \
|
-Wl,--whole-archive \
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
||||||
|
@ -1328,16 +1324,22 @@ $(hide) $(PRIVATE_CXX) \
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||||
|
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||||
-o $@ \
|
-o $@ \
|
||||||
|
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||||
|
$(PRIVATE_LDFLAGS) \
|
||||||
|
$(PRIVATE_TARGET_LIBATOMIC) \
|
||||||
|
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
||||||
|
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
||||||
|
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_SO_O)) \
|
||||||
$(PRIVATE_LDLIBS)
|
$(PRIVATE_LDLIBS)
|
||||||
endef
|
endef
|
||||||
endif
|
|
||||||
|
|
||||||
define transform-o-to-shared-lib
|
define transform-o-to-shared-lib
|
||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
@echo "target SharedLib: $(PRIVATE_MODULE) ($@)"
|
@echo "target SharedLib: $(PRIVATE_MODULE) ($@)"
|
||||||
$($(PRIVATE_2ND_ARCH_VAR_PREFIX)transform-o-to-shared-lib-inner)
|
$(transform-o-to-shared-lib-inner)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
||||||
|
@ -1370,14 +1372,15 @@ endef
|
||||||
## Commands for running gcc to link an executable
|
## Commands for running gcc to link an executable
|
||||||
###########################################################
|
###########################################################
|
||||||
|
|
||||||
ifneq ($(TARGET_CUSTOM_LD_COMMAND),true)
|
|
||||||
define transform-o-to-executable-inner
|
define transform-o-to-executable-inner
|
||||||
$(hide) $(PRIVATE_CXX) \
|
$(hide) $(PRIVATE_CXX) -pie \
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
-nostdlib -Bdynamic \
|
||||||
|
-Wl,-dynamic-linker,$($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_LINKER) \
|
||||||
|
-Wl,--gc-sections \
|
||||||
|
-Wl,-z,nocopyreloc \
|
||||||
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
||||||
-Wl,-rpath-link=$(PRIVATE_TARGET_OUT_INTERMEDIATE_LIBRARIES) \
|
-Wl,-rpath-link=$(PRIVATE_TARGET_OUT_INTERMEDIATE_LIBRARIES) \
|
||||||
-Wl,-rpath,\$$ORIGIN/../lib \
|
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_DYNAMIC_O)) \
|
||||||
$(PRIVATE_LDFLAGS) \
|
|
||||||
$(PRIVATE_ALL_OBJECTS) \
|
$(PRIVATE_ALL_OBJECTS) \
|
||||||
-Wl,--whole-archive \
|
-Wl,--whole-archive \
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
||||||
|
@ -1385,35 +1388,60 @@ $(hide) $(PRIVATE_CXX) \
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||||
|
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||||
-o $@ \
|
-o $@ \
|
||||||
|
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||||
|
$(PRIVATE_LDFLAGS) \
|
||||||
|
$(PRIVATE_TARGET_LIBATOMIC) \
|
||||||
|
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
||||||
|
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
||||||
|
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O)) \
|
||||||
$(PRIVATE_LDLIBS)
|
$(PRIVATE_LDLIBS)
|
||||||
endef
|
endef
|
||||||
endif
|
|
||||||
|
|
||||||
define transform-o-to-executable
|
define transform-o-to-executable
|
||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
@echo "target Executable: $(PRIVATE_MODULE) ($@)"
|
@echo "target Executable: $(PRIVATE_MODULE) ($@)"
|
||||||
$($(PRIVATE_2ND_ARCH_VAR_PREFIX)transform-o-to-executable-inner)
|
$(transform-o-to-executable-inner)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
## Commands for running gcc to link a statically linked
|
## Commands for linking a static executable. In practice,
|
||||||
## executable. In practice, we only use this on arm, so
|
## we only use this on arm, so the other platforms don't
|
||||||
## the other platforms don't have the
|
## have transform-o-to-static-executable defined.
|
||||||
## transform-o-to-static-executable defined
|
|
||||||
###########################################################
|
###########################################################
|
||||||
|
|
||||||
ifneq ($(TARGET_CUSTOM_LD_COMMAND),true)
|
|
||||||
define transform-o-to-static-executable-inner
|
define transform-o-to-static-executable-inner
|
||||||
|
$(hide) $(PRIVATE_CXX) \
|
||||||
|
-nostdlib -Bstatic \
|
||||||
|
-Wl,--gc-sections \
|
||||||
|
-o $@ \
|
||||||
|
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
|
||||||
|
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_STATIC_O)) \
|
||||||
|
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||||
|
$(PRIVATE_LDFLAGS) \
|
||||||
|
$(PRIVATE_ALL_OBJECTS) \
|
||||||
|
-Wl,--whole-archive \
|
||||||
|
$(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
||||||
|
-Wl,--no-whole-archive \
|
||||||
|
$(call normalize-target-libraries,$(filter-out %libcompiler_rt.a,$(filter-out %libc_nomalloc.a,$(filter-out %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))))) \
|
||||||
|
-Wl,--start-group \
|
||||||
|
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||||
|
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||||
|
$(PRIVATE_TARGET_LIBATOMIC) \
|
||||||
|
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
||||||
|
$(call normalize-target-libraries,$(filter %libcompiler_rt.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||||
|
$(if $(PRIVATE_LIBCXX),,$(PRIVATE_TARGET_LIBGCC)) \
|
||||||
|
-Wl,--end-group \
|
||||||
|
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O))
|
||||||
endef
|
endef
|
||||||
endif
|
|
||||||
|
|
||||||
define transform-o-to-static-executable
|
define transform-o-to-static-executable
|
||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
@echo "target StaticExecutable: $(PRIVATE_MODULE) ($@)"
|
@echo "target StaticExecutable: $(PRIVATE_MODULE) ($@)"
|
||||||
$($(PRIVATE_2ND_ARCH_VAR_PREFIX)transform-o-to-static-executable-inner)
|
$(transform-o-to-static-executable-inner)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue