Commit 8d0b7288 authored by Yifan Hong's avatar Yifan Hong Committed by Luis Chamberlain

module: allow UNUSED_KSYMS_WHITELIST to be relative against objtree.

If UNUSED_KSYMS_WHITELIST is a file generated
before Kbuild runs, and the source tree is in
a read-only filesystem, the developer must put
the file somewhere and specify an absolute
path to UNUSED_KSYMS_WHITELIST. This worked,
but if IKCONFIG=y, an absolute path is embedded
into .config and eventually into vmlinux, causing
the build to be less reproducible when building
on a different machine.

This patch makes the handling of
UNUSED_KSYMS_WHITELIST to be similar to
MODULE_SIG_KEY.

First, check if UNUSED_KSYMS_WHITELIST is an
absolute path, just as before this patch. If so,
use the path as is.

If it is a relative path, use wildcard to check
the existence of the file below objtree first.
If it does not exist, fall back to the original
behavior of adding $(srctree)/ before the value.

After this patch, the developer can put the generated
file in objtree, then use a relative path against
objtree in .config, eradicating any absolute paths
that may be evaluated differently on different machines.
Signed-off-by: default avatarYifan Hong <elsk@google.com>
Reviewed-by: default avatarElliot Berman <quic_eberman@quicinc.com>
Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
parent a5131c3f
...@@ -392,7 +392,7 @@ config UNUSED_KSYMS_WHITELIST ...@@ -392,7 +392,7 @@ config UNUSED_KSYMS_WHITELIST
exported at all times, even in absence of in-tree users. The value to exported at all times, even in absence of in-tree users. The value to
set here is the path to a text file containing the list of symbols, set here is the path to a text file containing the list of symbols,
one per line. The path can be absolute, or relative to the kernel one per line. The path can be absolute, or relative to the kernel
source tree. source or obj tree.
config MODULES_TREE_LOOKUP config MODULES_TREE_LOOKUP
def_bool y def_bool y
......
...@@ -94,7 +94,7 @@ targets += .vmlinux.objs ...@@ -94,7 +94,7 @@ targets += .vmlinux.objs
ifdef CONFIG_TRIM_UNUSED_KSYMS ifdef CONFIG_TRIM_UNUSED_KSYMS
ksym-wl := $(CONFIG_UNUSED_KSYMS_WHITELIST) ksym-wl := $(CONFIG_UNUSED_KSYMS_WHITELIST)
ksym-wl := $(if $(filter-out /%, $(ksym-wl)),$(srctree)/)$(ksym-wl) ksym-wl := $(if $(filter-out /%, $(ksym-wl)),$(if $(wildcard $(ksym-wl)),,$(srctree)/))$(ksym-wl)
modpost-args += -t $(addprefix -u , $(ksym-wl)) modpost-args += -t $(addprefix -u , $(ksym-wl))
modpost-deps += $(ksym-wl) modpost-deps += $(ksym-wl)
endif endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment