Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit da9c00da authored by Dan Willemsen's avatar Dan Willemsen
Browse files

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
parent 643d466f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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.
+1 −0
Original line number Diff line number Diff line
@@ -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.
Loading