Re: linux-next: Tree for Apr 22 (adjust_autoksyms.sh)
Hi Michal, On Tue, 26 Apr 2016 13:19:40 +0200 Michal Marek wrote: > > On 2016-04-23 00:55, Randy Dunlap wrote: > > On 04/22/16 12:44, Nicolas Pitre wrote: > >> On Fri, 22 Apr 2016, Nicolas Pitre wrote: > >> > >>> On Fri, 22 Apr 2016, Randy Dunlap wrote: > >>> > Yes, this patch helps, but I think there is still a problem. > I think that trim needs to be done after CONFIG_BUILD_DOCSRC and possibly > after CONFIG_SAMPLES are built. > >>> > >>> The later is already taken care of with commit dd92478a15. > >>> > At least CONFIG_BUILD_DOCSRC seems to > cause this error: > > Setup is 16508 bytes (padded to 16896 bytes). > System is 6125 kB > CRC 8aa70f94 > Kernel: arch/x86/boot/bzImage is ready (#9) > ERROR: "cn_del_callback" [Documentation/connector/cn_test.ko] undefined! > ERROR: "cn_add_callback" [Documentation/connector/cn_test.ko] undefined! > ERROR: "cn_netlink_send" [Documentation/connector/cn_test.ko] undefined! > ../scripts/Makefile.modpost:91: recipe for target '__modpost' failed > make[2]: *** [__modpost] Error 1 > >>> > >>> This one is indeed a problem. > >> > >> Please try the following: > > > > Yes, this works. Thanks. > > > > Acked-by: Randy Dunlap > > Tested-by: Randy Dunlap > > Applied to kbuild.git#kbuild. Unfortunately, that was the commit I had to revert from linux-next today - see my email report. It breaks what looks like correct additions to the block tree. -- Cheers, Stephen Rothwell
Re: linux-next: Tree for Apr 22 (adjust_autoksyms.sh)
On 2016-04-23 00:55, Randy Dunlap wrote: > On 04/22/16 12:44, Nicolas Pitre wrote: >> On Fri, 22 Apr 2016, Nicolas Pitre wrote: >> >>> On Fri, 22 Apr 2016, Randy Dunlap wrote: >>> Yes, this patch helps, but I think there is still a problem. I think that trim needs to be done after CONFIG_BUILD_DOCSRC and possibly after CONFIG_SAMPLES are built. >>> >>> The later is already taken care of with commit dd92478a15. >>> At least CONFIG_BUILD_DOCSRC seems to cause this error: Setup is 16508 bytes (padded to 16896 bytes). System is 6125 kB CRC 8aa70f94 Kernel: arch/x86/boot/bzImage is ready (#9) ERROR: "cn_del_callback" [Documentation/connector/cn_test.ko] undefined! ERROR: "cn_add_callback" [Documentation/connector/cn_test.ko] undefined! ERROR: "cn_netlink_send" [Documentation/connector/cn_test.ko] undefined! ../scripts/Makefile.modpost:91: recipe for target '__modpost' failed make[2]: *** [__modpost] Error 1 >>> >>> This one is indeed a problem. >> >> Please try the following: > > Yes, this works. Thanks. > > Acked-by: Randy Dunlap > Tested-by: Randy Dunlap Applied to kbuild.git#kbuild. Michal
Re: linux-next: Tree for Apr 22 (adjust_autoksyms.sh)
On 04/22/16 12:44, Nicolas Pitre wrote: > On Fri, 22 Apr 2016, Nicolas Pitre wrote: > >> On Fri, 22 Apr 2016, Randy Dunlap wrote: >> >>> Yes, this patch helps, but I think there is still a problem. >>> I think that trim needs to be done after CONFIG_BUILD_DOCSRC and possibly >>> after CONFIG_SAMPLES are built. >> >> The later is already taken care of with commit dd92478a15. >> >>> At least CONFIG_BUILD_DOCSRC seems to >>> cause this error: >>> >>> Setup is 16508 bytes (padded to 16896 bytes). >>> System is 6125 kB >>> CRC 8aa70f94 >>> Kernel: arch/x86/boot/bzImage is ready (#9) >>> ERROR: "cn_del_callback" [Documentation/connector/cn_test.ko] undefined! >>> ERROR: "cn_add_callback" [Documentation/connector/cn_test.ko] undefined! >>> ERROR: "cn_netlink_send" [Documentation/connector/cn_test.ko] undefined! >>> ../scripts/Makefile.modpost:91: recipe for target '__modpost' failed >>> make[2]: *** [__modpost] Error 1 >> >> This one is indeed a problem. > > Please try the following: Yes, this works. Thanks. Acked-by: Randy Dunlap Tested-by: Randy Dunlap > - >8 > Subject: [PATCH] kbuild: better abstract vmlinux sequential prerequisites > > When CONFIG_TRIM_UNUSED_KSYMS=y and CONFIG_BUILD_DOCSRC=y it is possible > to get the following error: > > ERROR: "cn_del_callback" [Documentation/connector/cn_test.ko] undefined! > ERROR: "cn_add_callback" [Documentation/connector/cn_test.ko] undefined! > ERROR: "cn_netlink_send" [Documentation/connector/cn_test.ko] undefined! > ../scripts/Makefile.modpost:91: recipe for target '__modpost' failed > > It is not sufficient to do "vmlinux-dirs += Documentation" as this also > depends on the headers_check target, and all of this needs to be done > before adjust_autoksyms.sh is executed. > > Let's sort this out by gathering those sequential prerequisites in a make > target of their own, separate from the vmlinux target. And by doing so, > the special autoksyms_recursive target is no longer needed. > > Signed-off-by: Nicolas Pitre > > diff --git a/Makefile b/Makefile > index e9ad498238..3f1eb6a1bf 100644 > --- a/Makefile > +++ b/Makefile > @@ -926,17 +926,11 @@ export KBUILD_ALLDIRS := $(sort $(filter-out > arch/%,$(vmlinux-alldirs)) arch Doc > > vmlinux-deps := $(KBUILD_LDS) $(KBUILD_VMLINUX_INIT) $(KBUILD_VMLINUX_MAIN) > > -# Final link of vmlinux > - cmd_link-vmlinux = $(CONFIG_SHELL) $< $(LD) $(LDFLAGS) > $(LDFLAGS_vmlinux) > -quiet_cmd_link-vmlinux = LINK$@ > - > -# Include targets which we want to > -# execute if the rest of the kernel build went well. > -vmlinux: scripts/link-vmlinux.sh $(vmlinux-deps) FORCE > -ifdef CONFIG_TRIM_UNUSED_KSYMS > - $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \ > - "$(MAKE) KBUILD_MODULES=1 -f $(srctree)/Makefile autoksyms_recursive" > -endif > +# Include targets which we want to execute sequentially if the rest of the > +# kernel build went well. If CONFIG_TRIM_UNUSED_KSYMS is set, this might be > +# evaluated more than once. > +PHONY += vmlinux_prereq > +vmlinux_prereq: $(vmlinux-deps) FORCE > ifdef CONFIG_HEADERS_CHECK > $(Q)$(MAKE) -f $(srctree)/Makefile headers_check > endif > @@ -946,17 +940,22 @@ endif > ifdef CONFIG_GDB_SCRIPTS > $(Q)ln -fsn `cd $(srctree) && /bin/pwd`/scripts/gdb/vmlinux-gdb.py > endif > - +$(call if_changed,link-vmlinux) > - > -autoksyms_recursive: $(vmlinux-deps) > +ifdef CONFIG_TRIM_UNUSED_KSYMS > $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \ > - "$(MAKE) KBUILD_MODULES=1 -f $(srctree)/Makefile autoksyms_recursive" > -PHONY += autoksyms_recursive > + "$(MAKE) KBUILD_MODULES=1 -f $(srctree)/Makefile vmlinux_prereq" > +endif > > # standalone target for easier testing > include/generated/autoksyms.h: FORCE > $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh true > > +# Final link of vmlinux > + cmd_link-vmlinux = $(CONFIG_SHELL) $< $(LD) $(LDFLAGS) > $(LDFLAGS_vmlinux) > +quiet_cmd_link-vmlinux = LINK$@ > + > +vmlinux: scripts/link-vmlinux.sh vmlinux_prereq FORCE > + +$(call if_changed,link-vmlinux) > + > # Build samples along the rest of the kernel > ifdef CONFIG_SAMPLES > vmlinux-dirs += samples > -- -- ~Randy
Re: linux-next: Tree for Apr 22 (adjust_autoksyms.sh)
On Fri, 22 Apr 2016, Nicolas Pitre wrote: > On Fri, 22 Apr 2016, Randy Dunlap wrote: > > > Yes, this patch helps, but I think there is still a problem. > > I think that trim needs to be done after CONFIG_BUILD_DOCSRC and possibly > > after CONFIG_SAMPLES are built. > > The later is already taken care of with commit dd92478a15. > > > At least CONFIG_BUILD_DOCSRC seems to > > cause this error: > > > > Setup is 16508 bytes (padded to 16896 bytes). > > System is 6125 kB > > CRC 8aa70f94 > > Kernel: arch/x86/boot/bzImage is ready (#9) > > ERROR: "cn_del_callback" [Documentation/connector/cn_test.ko] undefined! > > ERROR: "cn_add_callback" [Documentation/connector/cn_test.ko] undefined! > > ERROR: "cn_netlink_send" [Documentation/connector/cn_test.ko] undefined! > > ../scripts/Makefile.modpost:91: recipe for target '__modpost' failed > > make[2]: *** [__modpost] Error 1 > > This one is indeed a problem. Please try the following: - >8 Subject: [PATCH] kbuild: better abstract vmlinux sequential prerequisites When CONFIG_TRIM_UNUSED_KSYMS=y and CONFIG_BUILD_DOCSRC=y it is possible to get the following error: ERROR: "cn_del_callback" [Documentation/connector/cn_test.ko] undefined! ERROR: "cn_add_callback" [Documentation/connector/cn_test.ko] undefined! ERROR: "cn_netlink_send" [Documentation/connector/cn_test.ko] undefined! ../scripts/Makefile.modpost:91: recipe for target '__modpost' failed It is not sufficient to do "vmlinux-dirs += Documentation" as this also depends on the headers_check target, and all of this needs to be done before adjust_autoksyms.sh is executed. Let's sort this out by gathering those sequential prerequisites in a make target of their own, separate from the vmlinux target. And by doing so, the special autoksyms_recursive target is no longer needed. Signed-off-by: Nicolas Pitre diff --git a/Makefile b/Makefile index e9ad498238..3f1eb6a1bf 100644 --- a/Makefile +++ b/Makefile @@ -926,17 +926,11 @@ export KBUILD_ALLDIRS := $(sort $(filter-out arch/%,$(vmlinux-alldirs)) arch Doc vmlinux-deps := $(KBUILD_LDS) $(KBUILD_VMLINUX_INIT) $(KBUILD_VMLINUX_MAIN) -# Final link of vmlinux - cmd_link-vmlinux = $(CONFIG_SHELL) $< $(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) -quiet_cmd_link-vmlinux = LINK$@ - -# Include targets which we want to -# execute if the rest of the kernel build went well. -vmlinux: scripts/link-vmlinux.sh $(vmlinux-deps) FORCE -ifdef CONFIG_TRIM_UNUSED_KSYMS - $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \ - "$(MAKE) KBUILD_MODULES=1 -f $(srctree)/Makefile autoksyms_recursive" -endif +# Include targets which we want to execute sequentially if the rest of the +# kernel build went well. If CONFIG_TRIM_UNUSED_KSYMS is set, this might be +# evaluated more than once. +PHONY += vmlinux_prereq +vmlinux_prereq: $(vmlinux-deps) FORCE ifdef CONFIG_HEADERS_CHECK $(Q)$(MAKE) -f $(srctree)/Makefile headers_check endif @@ -946,17 +940,22 @@ endif ifdef CONFIG_GDB_SCRIPTS $(Q)ln -fsn `cd $(srctree) && /bin/pwd`/scripts/gdb/vmlinux-gdb.py endif - +$(call if_changed,link-vmlinux) - -autoksyms_recursive: $(vmlinux-deps) +ifdef CONFIG_TRIM_UNUSED_KSYMS $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \ - "$(MAKE) KBUILD_MODULES=1 -f $(srctree)/Makefile autoksyms_recursive" -PHONY += autoksyms_recursive + "$(MAKE) KBUILD_MODULES=1 -f $(srctree)/Makefile vmlinux_prereq" +endif # standalone target for easier testing include/generated/autoksyms.h: FORCE $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh true +# Final link of vmlinux + cmd_link-vmlinux = $(CONFIG_SHELL) $< $(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) +quiet_cmd_link-vmlinux = LINK$@ + +vmlinux: scripts/link-vmlinux.sh vmlinux_prereq FORCE + +$(call if_changed,link-vmlinux) + # Build samples along the rest of the kernel ifdef CONFIG_SAMPLES vmlinux-dirs += samples
Re: linux-next: Tree for Apr 22 (adjust_autoksyms.sh)
On Fri, 22 Apr 2016, Randy Dunlap wrote: > On 04/22/16 10:48, Nicolas Pitre wrote: > > On Fri, 22 Apr 2016, Randy Dunlap wrote: > > > >> on x86_64: > >> > >> I'm seeing: > >> > >> /bin/sh: scripts/adjust_autoksyms.sh: No such file or directory > >> /local/lnx/next/linux-next-20160422/Makefile:937: recipe for target > >> 'vmlinux' failed > >> > >> when using O=subdir for the build output directory. > >> > >> > >> Is there a missing $(objtree) somewhere? > > > > Rather a $(srctree). Please try the patch below. > > Hi, > > Yes, this patch helps, but I think there is still a problem. > I think that trim needs to be done after CONFIG_BUILD_DOCSRC and possibly > after CONFIG_SAMPLES are built. The later is already taken care of with commit dd92478a15. > At least CONFIG_BUILD_DOCSRC seems to > cause this error: > > Setup is 16508 bytes (padded to 16896 bytes). > System is 6125 kB > CRC 8aa70f94 > Kernel: arch/x86/boot/bzImage is ready (#9) > ERROR: "cn_del_callback" [Documentation/connector/cn_test.ko] undefined! > ERROR: "cn_add_callback" [Documentation/connector/cn_test.ko] undefined! > ERROR: "cn_netlink_send" [Documentation/connector/cn_test.ko] undefined! > ../scripts/Makefile.modpost:91: recipe for target '__modpost' failed > make[2]: *** [__modpost] Error 1 This one is indeed a problem. Nicolas
Re: linux-next: Tree for Apr 22 (adjust_autoksyms.sh)
On 04/22/16 10:48, Nicolas Pitre wrote: > On Fri, 22 Apr 2016, Randy Dunlap wrote: > >> on x86_64: >> >> I'm seeing: >> >> /bin/sh: scripts/adjust_autoksyms.sh: No such file or directory >> /local/lnx/next/linux-next-20160422/Makefile:937: recipe for target >> 'vmlinux' failed >> >> when using O=subdir for the build output directory. >> >> >> Is there a missing $(objtree) somewhere? > > Rather a $(srctree). Please try the patch below. Hi, Yes, this patch helps, but I think there is still a problem. I think that trim needs to be done after CONFIG_BUILD_DOCSRC and possibly after CONFIG_SAMPLES are built. At least CONFIG_BUILD_DOCSRC seems to cause this error: Setup is 16508 bytes (padded to 16896 bytes). System is 6125 kB CRC 8aa70f94 Kernel: arch/x86/boot/bzImage is ready (#9) ERROR: "cn_del_callback" [Documentation/connector/cn_test.ko] undefined! ERROR: "cn_add_callback" [Documentation/connector/cn_test.ko] undefined! ERROR: "cn_netlink_send" [Documentation/connector/cn_test.ko] undefined! ../scripts/Makefile.modpost:91: recipe for target '__modpost' failed make[2]: *** [__modpost] Error 1 If I'm reading it incorrectly, just yell at me. :) > - >8 > > Subject: [PATCH] kbuild: fix CONFIG_TRIM_UNUSED_KSYMS=y with a separate > output directory > > This fixes the following: > > /bin/sh: scripts/adjust_autoksyms.sh: No such file or directory > > Signed-off-by: Nicolas Pitre > > diff --git a/Makefile b/Makefile > index e3af48068c..e9ad498238 100644 > --- a/Makefile > +++ b/Makefile > @@ -934,7 +934,7 @@ quiet_cmd_link-vmlinux = LINK$@ > # execute if the rest of the kernel build went well. > vmlinux: scripts/link-vmlinux.sh $(vmlinux-deps) FORCE > ifdef CONFIG_TRIM_UNUSED_KSYMS > - $(Q)$(CONFIG_SHELL) scripts/adjust_autoksyms.sh \ > + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \ > "$(MAKE) KBUILD_MODULES=1 -f $(srctree)/Makefile autoksyms_recursive" > endif > ifdef CONFIG_HEADERS_CHECK > @@ -949,13 +949,13 @@ endif > +$(call if_changed,link-vmlinux) > > autoksyms_recursive: $(vmlinux-deps) > - $(Q)$(CONFIG_SHELL) scripts/adjust_autoksyms.sh \ > + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \ > "$(MAKE) KBUILD_MODULES=1 -f $(srctree)/Makefile autoksyms_recursive" > PHONY += autoksyms_recursive > > # standalone target for easier testing > include/generated/autoksyms.h: FORCE > - $(Q)$(CONFIG_SHELL) scripts/adjust_autoksyms.sh true > + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh true > > # Build samples along the rest of the kernel > ifdef CONFIG_SAMPLES > -- -- ~Randy
Re: linux-next: Tree for Apr 22 (adjust_autoksyms.sh)
On Fri, 22 Apr 2016, Randy Dunlap wrote: > on x86_64: > > I'm seeing: > > /bin/sh: scripts/adjust_autoksyms.sh: No such file or directory > /local/lnx/next/linux-next-20160422/Makefile:937: recipe for target 'vmlinux' > failed > > when using O=subdir for the build output directory. > > > Is there a missing $(objtree) somewhere? Rather a $(srctree). Please try the patch below. - >8 Subject: [PATCH] kbuild: fix CONFIG_TRIM_UNUSED_KSYMS=y with a separate output directory This fixes the following: /bin/sh: scripts/adjust_autoksyms.sh: No such file or directory Signed-off-by: Nicolas Pitre diff --git a/Makefile b/Makefile index e3af48068c..e9ad498238 100644 --- a/Makefile +++ b/Makefile @@ -934,7 +934,7 @@ quiet_cmd_link-vmlinux = LINK$@ # execute if the rest of the kernel build went well. vmlinux: scripts/link-vmlinux.sh $(vmlinux-deps) FORCE ifdef CONFIG_TRIM_UNUSED_KSYMS - $(Q)$(CONFIG_SHELL) scripts/adjust_autoksyms.sh \ + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \ "$(MAKE) KBUILD_MODULES=1 -f $(srctree)/Makefile autoksyms_recursive" endif ifdef CONFIG_HEADERS_CHECK @@ -949,13 +949,13 @@ endif +$(call if_changed,link-vmlinux) autoksyms_recursive: $(vmlinux-deps) - $(Q)$(CONFIG_SHELL) scripts/adjust_autoksyms.sh \ + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \ "$(MAKE) KBUILD_MODULES=1 -f $(srctree)/Makefile autoksyms_recursive" PHONY += autoksyms_recursive # standalone target for easier testing include/generated/autoksyms.h: FORCE - $(Q)$(CONFIG_SHELL) scripts/adjust_autoksyms.sh true + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh true # Build samples along the rest of the kernel ifdef CONFIG_SAMPLES
Re: linux-next: Tree for Apr 22 (adjust_autoksyms.sh)
On 04/21/16 22:35, Stephen Rothwell wrote: > Hi all, > > There will be no linux-next release on Monday (ANZAC Day). > > Changes since 20160421: > on x86_64: I'm seeing: /bin/sh: scripts/adjust_autoksyms.sh: No such file or directory /local/lnx/next/linux-next-20160422/Makefile:937: recipe for target 'vmlinux' failed when using O=subdir for the build output directory. Is there a missing $(objtree) somewhere? thanks, -- ~Randy