From 8350c4c540b6ad8a5e5ea01b6aacb9e92fa3d7dc Mon Sep 17 00:00:00 2001 From: Orion Hodson Date: Tue, 31 Oct 2017 17:40:19 +0000 Subject: [PATCH] Revert "CFI compatibility with static executables and nested archives" This reverts commit 3d3e1cf26002ce91a47351cd456dfe680a32b8fe. Rationale: part of a group of commits that left aosp_x86_64 not building. (See https://android-build.googleplex.com/builds/ submitted/4426589/aosp_x86_64-eng/latest/logs/build_error.log) Bug: 30227045 Test: builds Change-Id: Ie22590abe3d1cdccb8d141baf6480d49dedf8789 --- core/config_sanitizers.mk | 31 ++++++------------------------- core/definitions.mk | 2 +- 2 files changed, 7 insertions(+), 26 deletions(-) diff --git a/core/config_sanitizers.mk b/core/config_sanitizers.mk index 79604acdd..f5b45db88 100644 --- a/core/config_sanitizers.mk +++ b/core/config_sanitizers.mk @@ -235,11 +235,6 @@ ifneq ($(filter cfi,$(my_sanitize)),) # entire module. LOCAL_ARM_MODE := thumb my_cflags += $(CFI_EXTRA_CFLAGS) - # Only append the default visibility flag if -fvisibility has not already been - # set to hidden. - ifeq ($(filter -fvisibility=hidden,$(LOCAL_CFLAGS)),) - my_cflags += -fvisibility=default - endif my_ldflags += $(CFI_EXTRA_LDFLAGS) my_arflags += --plugin $(LLVM_PREBUILTS_PATH)/../lib64/LLVMgold.so # Workaround for b/33678192. CFI jumptables need Thumb2 codegen. Revert when @@ -247,15 +242,6 @@ ifneq ($(filter cfi,$(my_sanitize)),) ifneq ($(filter arm,$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)),) my_ldflags += -march=armv7-a endif - - ifeq ($(LOCAL_FORCE_STATIC_EXECUTABLE),true) - my_ldflags := $(filter-out -fsanitize-cfi-cross-dso,$(my_ldflags)) - my_cflags := $(filter-out -fsanitize-cfi-cross-dso,$(my_cflags)) - else - # Apply the version script to non-static executables - my_ldflags += -Wl,--version-script,build/soong/cc/config/cfi_exports.map - LOCAL_ADDITIONAL_DEPENDENCIES += build/soong/cc/config/cfi_exports.map - endif endif # If local or global modules need ASAN, add linker flags. @@ -307,16 +293,11 @@ ifneq ($(strip $(LOCAL_SANITIZE_RECOVER)),) endif ifneq ($(my_sanitize_diag),) - # TODO(vishwath): Add diagnostic support for static executables once - # we switch to clang-4393122 (which adds the static ubsan runtime - # that this depends on) - ifneq ($(LOCAL_FORCE_STATIC_EXECUTABLE),true) - notrap_arg := $(subst $(space),$(comma),$(my_sanitize_diag)), - my_cflags += -fno-sanitize-trap=$(notrap_arg) - # Diagnostic requires a runtime library, unless ASan or TSan are also enabled. - ifeq ($(filter address thread,$(my_sanitize)),) - # Does not have to be the first DT_NEEDED unlike ASan. - my_shared_libraries += $($(LOCAL_2ND_ARCH_VAR_PREFIX)UBSAN_RUNTIME_LIBRARY) - endif + notrap_arg := $(subst $(space),$(comma),$(my_sanitize_diag)), + my_cflags += -fno-sanitize-trap=$(notrap_arg) + # Diagnostic requires a runtime library, unless ASan or TSan are also enabled. + ifeq ($(filter address thread,$(my_sanitize)),) + # Does not have to be the first DT_NEEDED unlike ASan. + my_shared_libraries += $($(LOCAL_2ND_ARCH_VAR_PREFIX)UBSAN_RUNTIME_LIBRARY) endif endif diff --git a/core/definitions.mk b/core/definitions.mk index a8644d675..b988d1e44 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1556,7 +1556,7 @@ $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs; filelist="$$filelist $$ldir/$$ext$$f"; \ done ; \ $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_ARFLAGS) \ - $(PRIVATE_ARFLAGS) $(2) $$filelist + $(2) $$filelist endef