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

Commit 90091bdf authored by Johannes Berg's avatar Johannes Berg Committed by Sasha Levin
Browse files

um: allow not setting extra rpaths in the linux binary



[ Upstream commit 386093c68ba3e8bcfe7f46deba901e0e80713c29 ]

There doesn't seem to be any reason for the rpath being set in
the binaries, at on systems that I tested on. On the other hand,
setting rpath is actually harming binaries in some cases, e.g.
if using nix-based compilation environments where /lib & /lib64
are not part of the actual environment.

Add a new Kconfig option (under EXPERT, for less user confusion)
that allows disabling the rpath additions.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
Stable-dep-of: 846cfbeed09b ("um: Fix adding '-no-pie' for clang")
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent abdbd5f3
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -88,6 +88,19 @@ config LD_SCRIPT_DYN
	depends on !LD_SCRIPT_STATIC
        select MODULE_REL_CRCS if MODVERSIONS

config LD_SCRIPT_DYN_RPATH
	bool "set rpath in the binary" if EXPERT
	default y
	depends on LD_SCRIPT_DYN
	help
	  Add /lib (and /lib64 for 64-bit) to the linux binary's rpath
	  explicitly.

	  You may need to turn this off if compiling for nix systems
	  that have their libraries in random /nix directories and
	  might otherwise unexpected use libraries from /lib or /lib64
	  instead of the desired ones.

config HOSTFS
	tristate "Host filesystem"
	help
+2 −1
Original line number Diff line number Diff line
@@ -119,7 +119,8 @@ archheaders:
archprepare: include/generated/user_constants.h

LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static
LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib $(call cc-option, -no-pie)
LINK-$(CONFIG_LD_SCRIPT_DYN) += $(call cc-option, -no-pie)
LINK-$(CONFIG_LD_SCRIPT_DYN_RPATH) += -Wl,-rpath,/lib

CFLAGS_NO_HARDENING := $(call cc-option, -fno-PIC,) $(call cc-option, -fno-pic,) \
	$(call cc-option, -fno-stack-protector,) \
+1 −1
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ ELF_FORMAT := elf64-x86-64

# Not on all 64-bit distros /lib is a symlink to /lib64. PLD is an example.

LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib64
LINK-$(CONFIG_LD_SCRIPT_DYN_RPATH) += -Wl,-rpath,/lib64
LINK-y += -m64

# Do unit-at-a-time unconditionally on x86_64, following the host