Messages in this thread | | | Date | Thu, 1 Dec 2016 12:42:36 -0500 (EST) | From | Nicolas Pitre <> | Subject | Re: Odd build breakage in 4.9-rc7 |
| |
On Thu, 1 Dec 2016, Paul Bolle wrote:
> On Thu, 2016-12-01 at 10:01 +0100, Paul Bolle wrote: > > Perhaps this is all documented somewhere. But even then it would be nice if > > the build would fail right at the start. Ie, the build probably should fail if > > one does "make bzImage" while having a .config with > > CONFIG_TRIM_UNUSED_KSYMS=y > > CONFIG_MODULES=y > > # CONFIG_MODVERSIONS is not set > > > > Because it seems in that case the subsequent "make modules" will then end in > > this flood of ERRORs. > > Or, alternatively, we could use something like the following hack to keep a > two step build (ie, "make bzImage" and "make modules") do the right thing even > if CONFING_MODVERSIONS is not set. > > The hack was cobbled together with a fair amount of cargo-cult coding so > perhaps a hunk or two aren't really needed. We'll see.
OK I understand what the problem is. However most of those hunks below are definitely wrong. ;-)
I'm trying to determine the best way to fix it. Stay tuned.
> Paul Bolle > > diff --git a/Makefile b/Makefile > index 694111b43cf8..5820f803ca64 100644 > --- a/Makefile > +++ b/Makefile > @@ -321,7 +321,7 @@ KBUILD_BUILTIN := 1 > # make sure the checksums are up to date before we record them. > > ifeq ($(MAKECMDGOALS),modules) > - KBUILD_BUILTIN := $(if $(CONFIG_MODVERSIONS),1) > + KBUILD_BUILTIN := $(if $(or $(CONFIG_MODVERSIONS),$(CONFIG_TRIM_UNUSED_KSYMS)),1) > endif > > # If we have "make <whatever> modules", compile modules > diff --git a/scripts/Makefile b/scripts/Makefile > index 1d80897a9644..f23e5c4f2496 100644 > --- a/scripts/Makefile > +++ b/scripts/Makefile > @@ -40,7 +40,9 @@ build_docproc: $(obj)/docproc > build_check-lc_ctype: $(obj)/check-lc_ctype > @: > > -subdir-$(CONFIG_MODVERSIONS) += genksyms > +ifeq ($(or $(CONFIG_MODVERSIONS),$(CONFIG_TRIM_UNUSED_KSYMS)),y) > +subdir-y += genksyms > +endif > subdir-y += mod > subdir-$(CONFIG_SECURITY_SELINUX) += selinux > subdir-$(CONFIG_DTC) += dtc > diff --git a/scripts/Makefile.build b/scripts/Makefile.build > index 7675d11ee65e..50ce2cf86b7c 100644 > --- a/scripts/Makefile.build > +++ b/scripts/Makefile.build > @@ -182,7 +182,7 @@ $(obj)/%.symtypes : $(src)/%.c FORCE > > quiet_cmd_cc_o_c = CC $(quiet_modtag) $@ > > -ifndef CONFIG_MODVERSIONS > +ifneq ($(if $(CONFIG_MODVERSIONS),1,$(if $(CONFIG_TRIM_UNUSED_KSYMS),1)),1) > cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $< > > else > @@ -358,7 +358,7 @@ $(obj)/%.s: $(src)/%.S FORCE > > quiet_cmd_as_o_S = AS $(quiet_modtag) $@ > > -ifndef CONFIG_MODVERSIONS > +ifneq ($(if $(CONFIG_MODVERSIONS),1,$(if $(CONFIG_TRIM_UNUSED_KSYMS),1)),1) > cmd_as_o_S = $(CC) $(a_flags) -c -o $@ $< > > else > diff --git a/scripts/adjust_autoksyms.sh b/scripts/adjust_autoksyms.sh > index 8dc1918b6783..7525da1cc2f7 100755 > --- a/scripts/adjust_autoksyms.sh > +++ b/scripts/adjust_autoksyms.sh > @@ -68,7 +68,7 @@ while read sym; do > done >> "$new_ksyms_file" > > # Special case for modversions (see modpost.c) > -if [ -n "$CONFIG_MODVERSIONS" ]; then > +if [ -n "$CONFIG_MODVERSIONS" -o -n "$CONFIG_TRIM_UNUSED_KSYMS" ]; then > echo "#define __KSYM_module_layout 1" >> "$new_ksyms_file" > fi > > | |