[PATCH] eisa: address link failure

Arnd Bergmann posted 1 patch 7 months, 4 weeks ago
drivers/eisa/Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] eisa: address link failure
Posted by Arnd Bergmann 7 months, 4 weeks ago
From: Arnd Bergmann <arnd@arndb.de>

The devlist.h file is generated at build time but is not an object file,
so linking fails, at least in some configurations:

ld.lld-21: error: vmlinux.a(drivers/eisa/devlist.h): not an ELF file

Make this an extra-y instead of obj-y target in Kbuild.

Fixes: dd09eb0e2cc4 ("EISA: Increase length of device names")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/eisa/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/eisa/Makefile b/drivers/eisa/Makefile
index f0d6cf7d1f32..562d8797e3b4 100644
--- a/drivers/eisa/Makefile
+++ b/drivers/eisa/Makefile
@@ -1,7 +1,8 @@
 # SPDX-License-Identifier: GPL-2.0
 # Makefile for the Linux device tree
 
-obj-$(CONFIG_EISA)	        += devlist.h eisa-bus.o
+obj-$(CONFIG_EISA)	        += eisa-bus.o
+extra-$(CONFIG_EISA)		+= devlist.h
 obj-${CONFIG_EISA_PCI_EISA}     += pci_eisa.o
 
 # virtual_root.o should be the last EISA root device to initialize,
-- 
2.39.5
Re: [PATCH] eisa: address link failure
Posted by Kees Cook 7 months, 4 weeks ago
On Wed, Apr 23, 2025 at 06:27:50PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The devlist.h file is generated at build time but is not an object file,
> so linking fails, at least in some configurations:
> 
> ld.lld-21: error: vmlinux.a(drivers/eisa/devlist.h): not an ELF file
> 
> Make this an extra-y instead of obj-y target in Kbuild.
> 
> Fixes: dd09eb0e2cc4 ("EISA: Increase length of device names")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Thanks! I already sent this one:

https://lore.kernel.org/all/20250423023743.work.350-kees@kernel.org/

-Kees

> ---
>  drivers/eisa/Makefile | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/eisa/Makefile b/drivers/eisa/Makefile
> index f0d6cf7d1f32..562d8797e3b4 100644
> --- a/drivers/eisa/Makefile
> +++ b/drivers/eisa/Makefile
> @@ -1,7 +1,8 @@
>  # SPDX-License-Identifier: GPL-2.0
>  # Makefile for the Linux device tree
>  
> -obj-$(CONFIG_EISA)	        += devlist.h eisa-bus.o
> +obj-$(CONFIG_EISA)	        += eisa-bus.o
> +extra-$(CONFIG_EISA)		+= devlist.h
>  obj-${CONFIG_EISA_PCI_EISA}     += pci_eisa.o
>  
>  # virtual_root.o should be the last EISA root device to initialize,
> -- 
> 2.39.5
> 

-- 
Kees Cook