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

From: Randy Dunlap
Date: Fri Apr 22 2016 - 14:22:24 EST


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 <nico@xxxxxxxxxx>
>
> 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