Re: linux-next: Tree for Apr 22 (adjust_autoksyms.sh)

2016-04-26 Thread Stephen Rothwell
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)

2016-04-26 Thread Stephen Rothwell
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)

2016-04-26 Thread Michal Marek
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)

2016-04-26 Thread Michal Marek
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)

2016-04-22 Thread Randy Dunlap
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)

2016-04-22 Thread Randy Dunlap
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)

2016-04-22 Thread Nicolas Pitre
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)

2016-04-22 Thread Nicolas Pitre
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)

2016-04-22 Thread Nicolas Pitre
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)

2016-04-22 Thread Nicolas Pitre
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)

2016-04-22 Thread Randy Dunlap
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)

2016-04-22 Thread Randy Dunlap
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)

2016-04-22 Thread Nicolas Pitre
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)

2016-04-22 Thread Nicolas Pitre
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)

2016-04-22 Thread Randy Dunlap
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


Re: linux-next: Tree for Apr 22 (adjust_autoksyms.sh)

2016-04-22 Thread Randy Dunlap
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