[ipxe-devel] src/util/get-pci-ids version.h, asm/linkage.h and generated/timeconst.h: No such file or directory

Martin Habets habetsm.xilinx at gmail.com
Tue May 3 08:24:53 UTC 2022


On Sat, Apr 30, 2022 at 07:33:31PM +0200, Geert Stappers wrote:
> 
> Hello,
> 
> 
> The iPXE source tree has a script named src/util/get-pci-ids
> that doesn't work for me.  I seek your advice to get it working.
> 
> 
> I have three errors.  The first error is that my Linux source tree
> has no `include/linux/version.h`

This file is generated when the kernel is built.
>From a quick glance your other issues are also due to this.

Groetjes,
Martin

> 
> <error1text>
> $ ./get-pci-ids /usr/src/linux/torvalds
> Could not find /usr/src/linux/torvalds/include/linux/version.h.
> /usr/src/linux/torvalds is probably no Linux kernel source tree.
> $
> </errror1text>
> 
> Based upon
> <screenshot>
> $ git log -- src/util/get-pci-ids
> commit c3b4860ce3fb25b907a2ca3e46955df34c0ae9fd
> Author: Michael Brown <mcb30 at ipxe.org>
> Date:   Fri Jul 20 19:55:45 2012 +0100
> 
>     [legal] Update FSF mailing address in GPL licence texts
>     
>     Suggested-by: Daniel P. Berrange <berrange at redhat.com>
>     Signed-off-by: Michael Brown <mcb30 at ipxe.org>
> 
> commit 3d6123e69ab879c72ff489afc5bf93ef0b7a94ce
> Author: Michael Brown <mcb30 at etherboot.org>
> Date:   Tue Mar 8 18:53:11 2005 +0000
> 
>     Initial revision
> $
> </screenshot>
> I assumed that the script is outdated, hence I tried this change:
> <fix_attempt>
> $ git diff
> diff --git a/src/util/get-pci-ids b/src/util/get-pci-ids
> index 42466221..1550677d 100755
> --- a/src/util/get-pci-ids
> +++ b/src/util/get-pci-ids
> @@ -47,8 +47,8 @@ if($#ARGV >= 0) {
>         exit 1;
>  }
>  
> -unless(-f "$kernel_src/include/linux/version.h") {
> -       print STDERR "Could not find $kernel_src/include/linux/version.h.\n";
> +unless(-f "$kernel_src/include/linux/vermagic.h") {
> +       print STDERR "Could not find $kernel_src/include/linux/vermagic.h.\n";
>         print STDERR "$kernel_src is probably no Linux kernel source tree.\n";
>         exit 1;
>  }
> @@ -64,7 +64,7 @@ my $cpp="gcc -E";
>  my @drivers = split /\s+/, `find $kernel_src/drivers/net -name '*.c' | sort`;
>  
>  # Kernel version
> -my $version = `grep UTS_RELEASE $kernel_src/include/linux/version.h`;
> +my $version = `grep UTS_RELEASE $kernel_src/include/linux/vermagic.h`;
>  chomp $version;
>  $version =~ s/\s*#define\s+UTS_RELEASE\s+"(\S+)".*$/$1/g;
>  
> </fix_attempt>
> 
> 
> <error2text>
> $ src/util/get-pci-ids /usr/src/linux/torvalds 2>&1 | head -n 25
> # PCI vendor/device ids extracted from Linux 	UTS_RELEASE " "							\ on x86_64 at Sat Apr 30 16:44:35 2022
> In file included from /usr/src/linux/torvalds/include/linux/kernel.h:8,
>                  from /usr/src/linux/torvalds/include/linux/list.h:9,
>                  from /usr/src/linux/torvalds/include/linux/module.h:12,
>                  from /usr/src/linux/torvalds/drivers/net/appletalk/cops.c:51:
> /usr/src/linux/torvalds/include/linux/linkage.h:8:10: fatal error: asm/linkage.h: No such file or directory
>     8 | #include <asm/linkage.h>
>       |          ^~~~~~~~~~~~~~~
> compilation terminated.
> In file included from /usr/src/linux/torvalds/include/linux/kernel.h:8,
>                  from /usr/src/linux/torvalds/include/linux/list.h:9,
>                  from /usr/src/linux/torvalds/include/linux/module.h:12,
>                  from /usr/src/linux/torvalds/drivers/net/appletalk/ipddp.c:26:
> /usr/src/linux/torvalds/include/linux/linkage.h:8:10: fatal error: asm/linkage.h: No such file or directory
>     8 | #include <asm/linkage.h>
>       |          ^~~~~~~~~~~~~~~
> compilation terminated.
> In file included from /usr/src/linux/torvalds/include/linux/kernel.h:8,
>                  from /usr/src/linux/torvalds/include/linux/list.h:9,
>                  from /usr/src/linux/torvalds/include/linux/module.h:12,
>                  from /usr/src/linux/torvalds/drivers/net/appletalk/ltpc.c:209:
> /usr/src/linux/torvalds/include/linux/linkage.h:8:10: fatal error: asm/linkage.h: No such file or directory
>     8 | #include <asm/linkage.h>
>       |          ^~~~~~~~~~~~~~~
> compilation terminated.
> $ 
> </error2text>
> 
> 
> That was "debugged" with
> <print_command>
> --- a/src/util/get-pci-ids
> +++ b/src/util/get-pci-ids
> @@ -82,6 +83,7 @@ foreach $driver (@drivers) {
>  
>         # Preprocess to expand macros
>         my $command = "$cpp $cflags -I" . dirname($driver) . " $driver";
> +       print "command: $command \n";
>         open  DRIVER, "$command |" or die "Could not execute\n\"$command\".\n";
>  
>         # Extract the pci_device_id structure
> </print_command>
> 
> <fix_attempt2>
> @@ -56,6 +56,8 @@ unless(-f "$kernel_src/include/linux/version.h") {
>  # Flags that are needed to preprocess the drivers.
>  # Some drivers need optimization
>  my $cflags="-D__KERNEL__ -I$kernel_src/include -I$kernel_src/net/inet -O2";
> +$cflags .= " -I$kernel_src/arch/x86/include";
> +$cflags .= " -I$kernel_src/arch/riscv/include";
>  
>  # The C preprocessor. It needs to spit out the preprocessed source on stdout.
>  my $cpp="gcc -E";
> </fix_attempt2>
> 
> 
> Now I'm stuck at
> <error3text>
> In file included from /usr/src/linux/torvalds/include/linux/ktime.h:25:
> /usr/src/linux/torvalds/include/linux/jiffies.h:13:10: fatal error: generated/timeconst.h: No such file or directory
>    13 | #include <generated/timeconst.h>
>       |          ^~~~~~~~~~~~~~~~~~~~~~~
> compilation terminated.
> </error3text>
> 
> What do you suggest to do next to get this fixed?
> 
>  
> Groeten
> Geert Stappers
> -- 
> Silence is hard to parse
> _______________________________________________
> ipxe-devel mailing list
> ipxe-devel at lists.ipxe.org
> https://lists.ipxe.org/mailman/listinfo/ipxe-devel



More information about the ipxe-devel mailing list