forked from openkylin/platform_build
Enforce linker version-scripts are valid
Currently, if a version script is passed to the linker (using -Wl,--version-script,...), it is used to limit symbol visibility and assign symbol versions. But if a symbol is listed in the version script but is not present in the binary, no error or warning is given. Pass -Wl,--no-undefined-version to the linker so that it verifies all (non-wildcard, C) entries in the version script match symbols in the binary. Change-Id: I65878931ab61124ae75e2c738cc733adfb107afc
This commit is contained in:
parent
643d466f7b
commit
da9c00da5f
|
@ -35,7 +35,7 @@ $(combo_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG := prebuilts/gcc/linux-x86/host
|
|||
|
||||
# We expect SSE3 floating point math.
|
||||
$(combo_2nd_arch_prefix)HOST_GLOBAL_CFLAGS += -msse3 -mfpmath=sse -m32 -Wa,--noexecstack -march=prescott
|
||||
$(combo_2nd_arch_prefix)HOST_GLOBAL_LDFLAGS += -m32 -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now
|
||||
$(combo_2nd_arch_prefix)HOST_GLOBAL_LDFLAGS += -m32 -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--no-undefined-version
|
||||
|
||||
ifneq ($(strip $(BUILD_HOST_static)),)
|
||||
# Statically-linked binaries are desirable for sandboxed environment
|
||||
|
|
|
@ -34,7 +34,7 @@ endef
|
|||
HOST_TOOLCHAIN_FOR_CLANG := prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8
|
||||
|
||||
HOST_GLOBAL_CFLAGS += -m64 -Wa,--noexecstack
|
||||
HOST_GLOBAL_LDFLAGS += -m64 -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now
|
||||
HOST_GLOBAL_LDFLAGS += -m64 -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--no-undefined-version
|
||||
|
||||
ifneq ($(strip $(BUILD_HOST_static)),)
|
||||
# Statically-linked binaries are desirable for sandboxed environment
|
||||
|
|
|
@ -138,6 +138,7 @@ $(combo_2nd_arch_prefix)TARGET_GLOBAL_LDFLAGS += \
|
|||
-Wl,--fatal-warnings \
|
||||
-Wl,--icf=safe \
|
||||
-Wl,--hash-style=gnu \
|
||||
-Wl,--no-undefined-version \
|
||||
$(arch_variant_ldflags)
|
||||
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += -mthumb-interwork
|
||||
|
|
|
@ -115,6 +115,7 @@ TARGET_GLOBAL_LDFLAGS += \
|
|||
-Wl,-maarch64linux \
|
||||
-Wl,--hash-style=gnu \
|
||||
-Wl,--fix-cortex-a53-843419 \
|
||||
-Wl,--no-undefined-version \
|
||||
$(arch_variant_ldflags)
|
||||
|
||||
# Disable transitive dependency library symbol resolving.
|
||||
|
|
|
@ -107,6 +107,7 @@ $(combo_2nd_arch_prefix)TARGET_GLOBAL_LDFLAGS += \
|
|||
-Wl,--build-id=md5 \
|
||||
-Wl,--warn-shared-textrel \
|
||||
-Wl,--fatal-warnings \
|
||||
-Wl,--no-undefined-version \
|
||||
$(arch_variant_ldflags)
|
||||
|
||||
# Disable transitive dependency library symbol resolving.
|
||||
|
|
|
@ -113,6 +113,7 @@ TARGET_GLOBAL_LDFLAGS += \
|
|||
-Wl,--build-id=md5 \
|
||||
-Wl,--warn-shared-textrel \
|
||||
-Wl,--fatal-warnings \
|
||||
-Wl,--no-undefined-version \
|
||||
$(arch_variant_ldflags)
|
||||
|
||||
# Disable transitive dependency library symbol resolving.
|
||||
|
|
|
@ -129,6 +129,7 @@ $(combo_2nd_arch_prefix)TARGET_GLOBAL_LDFLAGS += -Wl,--warn-shared-textrel
|
|||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_LDFLAGS += -Wl,--fatal-warnings
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_LDFLAGS += -Wl,--gc-sections
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_LDFLAGS += -Wl,--hash-style=gnu
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_LDFLAGS += -Wl,--no-undefined-version
|
||||
|
||||
$(combo_2nd_arch_prefix)TARGET_C_INCLUDES := \
|
||||
$(libc_root)/arch-x86/include \
|
||||
|
|
|
@ -138,6 +138,7 @@ TARGET_GLOBAL_LDFLAGS += -Wl,--warn-shared-textrel
|
|||
TARGET_GLOBAL_LDFLAGS += -Wl,--fatal-warnings
|
||||
TARGET_GLOBAL_LDFLAGS += -Wl,--gc-sections
|
||||
TARGET_GLOBAL_LDFLAGS += -Wl,--hash-style=gnu
|
||||
TARGET_GLOBAL_LDFLAGS += -Wl,--no-undefined-version
|
||||
|
||||
TARGET_C_INCLUDES := \
|
||||
$(libc_root)/arch-x86_64/include \
|
||||
|
|
Loading…
Reference in New Issue