Hi,
I followed the wiki to rebuild the fedora 32 kernel from the fedora source tree (with the aim to enable a few configs and apply some patches - for now it is just trying to re-build the kernel).
I followed the instructions step by step but it seems that it is unable to find an include (during the fedpkg local
step). Here are the steps I took and the output.
$ toolbox enter # I'm using silverblue
$ sudo dnf install fedpkg fedora-packager rpmdevtools ncurses-devel pesign grubby
...
Complete!
$ fedpkg clone -a kernel
Cloning into 'kernel'...
...
Resolving deltas: 100% (47534/47534), done.
$ cd kernel
$ sudo dnf builddep kernel.spec
...
Complete!
$ git checkout -b my_branch origin/f32
Branch 'my_branch' set up to track remote branch 'f32' from 'origin'.
Switched to a new branch 'my_branch'
$ sed -i 's/# define buildid .local/%define buildid .local/g' kernel.spec
$ make release
warning: Macro expanded in comment on line 744: %{rpmversion}-%{distro_build}.tar.bz2
warning: Macro expanded in comment on line 745: %{rpmversion}-%{distro_build}.tar.bz2
warning: Macro expanded in comment on line 753: %{rpmversion}-redhat.patch
$ fedpkg local
...
/kernel-5.6.14-x86_64.config ... done
Processed config files are in /var/home/twoertwein/kernel/kernel-5.6.fc32/linux-5.6.14-301.local.fc32.x86_64/configs
+ cp /var/home/twoertwein/kernel/update_scripts.sh .
+ RPM_SOURCE_DIR=/var/home/twoertwein/kernel
+ ./update_scripts.sh fedora
+ cd ..
+ find . '(' -name '*.orig' -o -name '*~' ')' -delete
+ find . -name .gitignore -delete
+ cd ..
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.7tOkiu
+ umask 022
+ cd /var/home/twoertwein/kernel
+ cd kernel-5.6.fc32
+ rm -rf /var/home/twoertwein/rpmbuild/BUILDROOT/kernel-5.6.14-301.local.fc32.x86_64
+ mkdir -p /var/home/twoertwein/rpmbuild/BUILDROOT/kernel-5.6.14-301.local.fc32.x86_64/boot
+ mkdir -p /var/home/twoertwein/rpmbuild/BUILDROOT/kernel-5.6.14-301.local.fc32.x86_64/usr/libexec
+ cd linux-5.6.14-301.local.fc32.x86_64
+ BuildKernel bzImage arch/x86/boot/bzImage 1 debug
+ MakeTarget=bzImage
+ KernelImage=arch/x86/boot/bzImage
+ Flavour=debug
+ DoVDSO=1
+ Flav=+debug
+ InstallName=vmlinuz
+ DoModules=1
+ '[' debug = zfcpdump ']'
+ Config=kernel-5.6.14-x86_64-debug.config
+ DevelDir=/usr/src/kernels/5.6.14-301.local.fc32.x86_64+debug
+ '[' arch/x86/boot/bzImage = vmlinux ']'
+ CopyKernel=cp
+ KernelVer=5.6.14-301.local.fc32.x86_64+debug
+ echo BUILDING A KERNEL FOR debug x86_64...
BUILDING A KERNEL FOR debug x86_64...
+ perl -p -i -e 's/^SUBLEVEL.*/SUBLEVEL = 14/' Makefile
+ perl -p -i -e 's/^EXTRAVERSION.*/EXTRAVERSION = -301.local.fc32.x86_64+debug/' Makefile
+ make -s 'HOSTCFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fcommon -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' 'HOSTLDFLAGS=-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' -j4 mrproper
+ cp configs/kernel-5.6.14-x86_64-debug.config .config
+ cp /var/home/twoertwein/kernel/x509.genkey certs/.
++ head -1 .config
++ cut -b 3-
+ Arch=x86_64
+ echo USING ARCH=x86_64
USING ARCH=x86_64
+ KCFLAGS=
+ '[' debug == '' ']'
+ make -s 'HOSTCFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fcommon -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' 'HOSTLDFLAGS=-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' ARCH=x86_64 olddefconfig
+ perl -p -i -e 's/^CONFIG_BUILD_SALT.*/CONFIG_BUILD_SALT="5.6.14-301.local.fc32.x86_64"/' .config
+ make -s 'HOSTCFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fcommon -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' 'HOSTLDFLAGS=-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' ARCH=x86_64 KCFLAGS= WITH_GCOV=0 -j4 bzImage
In file included from /usr/include/gelf.h:32,
from arch/x86/../../elf.h:10,
from arch/x86/decode.c:14:
/usr/include/libelf.h:46:4: error: unknown type name 'Elf32_Word'
46 | Elf32_Word ch_type; /* Compression format. */
| ^~~~~~~~~~
/usr/include/libelf.h:47:4: error: unknown type name 'Elf32_Word'
47 | Elf32_Word ch_size; /* Uncompressed data size. */
| ^~~~~~~~~~
/usr/include/libelf.h:48:4: error: unknown type name 'Elf32_Word'
48 | Elf32_Word ch_addralign; /* Uncompressed data alignment. */
| ^~~~~~~~~~
/usr/include/libelf.h:53:4: error: unknown type name 'Elf64_Word'
53 | Elf64_Word ch_type; /* Compression format. */
| ^~~~~~~~~~
/usr/include/libelf.h:54:4: error: unknown type name 'Elf64_Word'
54 | Elf64_Word ch_reserved;
| ^~~~~~~~~~
/usr/include/libelf.h:55:4: error: unknown type name 'Elf64_Xword'
55 | Elf64_Xword ch_size; /* Uncompressed data size. */
| ^~~~~~~~~~~
/usr/include/libelf.h:56:4: error: unknown type name 'Elf64_Xword'
56 | Elf64_Xword ch_addralign; /* Uncompressed data alignment. */
| ^~~~~~~~~~~
/usr/include/libelf.h:255:8: error: unknown type name 'Elf32_Ehdr'
255 | extern Elf32_Ehdr *elf32_getehdr (Elf *__elf);
| ^~~~~~~~~~
/usr/include/libelf.h:257:8: error: unknown type name 'Elf64_Ehdr'
257 | extern Elf64_Ehdr *elf64_getehdr (Elf *__elf);
| ^~~~~~~~~~
/usr/include/libelf.h:260:8: error: unknown type name 'Elf32_Ehdr'
260 | extern Elf32_Ehdr *elf32_newehdr (Elf *__elf);
| ^~~~~~~~~~
/usr/include/libelf.h:262:8: error: unknown type name 'Elf64_Ehdr'
262 | extern Elf64_Ehdr *elf64_newehdr (Elf *__elf);
| ^~~~~~~~~~
/usr/include/libelf.h:271:8: error: unknown type name 'Elf32_Phdr'
271 | extern Elf32_Phdr *elf32_getphdr (Elf *__elf);
| ^~~~~~~~~~
/usr/include/libelf.h:273:8: error: unknown type name 'Elf64_Phdr'
273 | extern Elf64_Phdr *elf64_getphdr (Elf *__elf);
| ^~~~~~~~~~
/usr/include/libelf.h:276:8: error: unknown type name 'Elf32_Phdr'
276 | extern Elf32_Phdr *elf32_newphdr (Elf *__elf, size_t __cnt);
| ^~~~~~~~~~
/usr/include/libelf.h:278:8: error: unknown type name 'Elf64_Phdr'
278 | extern Elf64_Phdr *elf64_newphdr (Elf *__elf, size_t __cnt);
| ^~~~~~~~~~
/usr/include/libelf.h:285:43: error: unknown type name 'Elf32_Off'
285 | extern Elf_Scn *elf32_offscn (Elf *__elf, Elf32_Off __offset);
| ^~~~~~~~~
/usr/include/libelf.h:287:43: error: unknown type name 'Elf64_Off'
287 | extern Elf_Scn *elf64_offscn (Elf *__elf, Elf64_Off __offset);
| ^~~~~~~~~
/usr/include/libelf.h:327:8: error: unknown type name 'Elf32_Shdr'
327 | extern Elf32_Shdr *elf32_getshdr (Elf_Scn *__scn);
| ^~~~~~~~~~
/usr/include/libelf.h:329:8: error: unknown type name 'Elf64_Shdr'
329 | extern Elf64_Shdr *elf64_getshdr (Elf_Scn *__scn);
| ^~~~~~~~~~
In file included from arch/x86/../../elf.h:10,
from arch/x86/decode.c:14:
/usr/include/gelf.h:44:9: error: unknown type name 'Elf64_Half'
44 | typedef Elf64_Half GElf_Half;
| ^~~~~~~~~~
/usr/include/gelf.h:47:9: error: unknown type name 'Elf64_Word'
47 | typedef Elf64_Word GElf_Word;
| ^~~~~~~~~~
/usr/include/gelf.h:48:9: error: unknown type name 'Elf64_Sword'
48 | typedef Elf64_Sword GElf_Sword;
| ^~~~~~~~~~~
/usr/include/gelf.h:51:9: error: unknown type name 'Elf64_Xword'
51 | typedef Elf64_Xword GElf_Xword;
| ^~~~~~~~~~~
/usr/include/gelf.h:52:9: error: unknown type name 'Elf64_Sxword'
52 | typedef Elf64_Sxword GElf_Sxword;
| ^~~~~~~~~~~~
/usr/include/gelf.h:55:9: error: unknown type name 'Elf64_Addr'
55 | typedef Elf64_Addr GElf_Addr;
| ^~~~~~~~~~
/usr/include/gelf.h:58:9: error: unknown type name 'Elf64_Off'
58 | typedef Elf64_Off GElf_Off;
| ^~~~~~~~~
/usr/include/gelf.h:62:9: error: unknown type name 'Elf64_Ehdr'
62 | typedef Elf64_Ehdr GElf_Ehdr;
| ^~~~~~~~~~
/usr/include/gelf.h:65:9: error: unknown type name 'Elf64_Shdr'
65 | typedef Elf64_Shdr GElf_Shdr;
| ^~~~~~~~~~
/usr/include/gelf.h:70:9: error: unknown type name 'Elf64_Section'
70 | typedef Elf64_Section GElf_Section;
| ^~~~~~~~~~~~~
/usr/include/gelf.h:73:9: error: unknown type name 'Elf64_Sym'
73 | typedef Elf64_Sym GElf_Sym;
| ^~~~~~~~~
/usr/include/gelf.h:77:9: error: unknown type name 'Elf64_Syminfo'
77 | typedef Elf64_Syminfo GElf_Syminfo;
| ^~~~~~~~~~~~~
/usr/include/gelf.h:80:9: error: unknown type name 'Elf64_Rel'
80 | typedef Elf64_Rel GElf_Rel;
| ^~~~~~~~~
/usr/include/gelf.h:83:9: error: unknown type name 'Elf64_Rela'
83 | typedef Elf64_Rela GElf_Rela;
| ^~~~~~~~~~
/usr/include/gelf.h:86:9: error: unknown type name 'Elf64_Phdr'
86 | typedef Elf64_Phdr GElf_Phdr;
| ^~~~~~~~~~
/usr/include/gelf.h:92:9: error: unknown type name 'Elf64_Dyn'
92 | typedef Elf64_Dyn GElf_Dyn;
| ^~~~~~~~~
/usr/include/gelf.h:96:9: error: unknown type name 'Elf64_Verdef'
96 | typedef Elf64_Verdef GElf_Verdef;
| ^~~~~~~~~~~~
/usr/include/gelf.h:99:9: error: unknown type name 'Elf64_Verdaux'
99 | typedef Elf64_Verdaux GElf_Verdaux;
| ^~~~~~~~~~~~~
/usr/include/gelf.h:102:9: error: unknown type name 'Elf64_Verneed'
102 | typedef Elf64_Verneed GElf_Verneed;
| ^~~~~~~~~~~~~
/usr/include/gelf.h:105:9: error: unknown type name 'Elf64_Vernaux'
105 | typedef Elf64_Vernaux GElf_Vernaux;
| ^~~~~~~~~~~~~
/usr/include/gelf.h:109:9: error: unknown type name 'Elf64_Versym'
109 | typedef Elf64_Versym GElf_Versym;
| ^~~~~~~~~~~~
/usr/include/gelf.h:113:9: error: unknown type name 'Elf64_auxv_t'
113 | typedef Elf64_auxv_t GElf_auxv_t;
| ^~~~~~~~~~~~
/usr/include/gelf.h:117:9: error: unknown type name 'Elf64_Nhdr'
117 | typedef Elf64_Nhdr GElf_Nhdr;
| ^~~~~~~~~~
/usr/include/gelf.h:121:9: error: unknown type name 'Elf64_Move'
121 | typedef Elf64_Move GElf_Move;
| ^~~~~~~~~~
/usr/include/gelf.h:125:9: error: unknown type name 'Elf64_Lib'
125 | typedef Elf64_Lib GElf_Lib;
| ^~~~~~~~~
/usr/include/gelf.h:232:8: error: unknown type name 'Elf32_Word'; did you mean 'GElf_Word'?
232 | Elf32_Word *__xshndx);
| ^~~~~~~~~~
| GElf_Word
/usr/include/gelf.h:238:6: error: unknown type name 'Elf32_Word'; did you mean 'GElf_Word'?
238 | Elf32_Word __xshndx);
| ^~~~~~~~~~
| GElf_Word
arch/x86/decode.c: In function 'is_x86_64':
arch/x86/decode.c:31:19: error: request for member 'e_machine' in something not a structure or union
31 | switch (elf->ehdr.e_machine) {
| ^
arch/x86/decode.c:32:7: error: 'EM_X86_64' undeclared (first use in this function); did you mean 'is_x86_64'?
32 | case EM_X86_64:
| ^~~~~~~~~
| is_x86_64
arch/x86/decode.c:32:7: note: each undeclared identifier is reported only once for each function it appears in
arch/x86/decode.c:34:7: error: 'EM_386' undeclared (first use in this function)
34 | case EM_386:
| ^~~~~~
In file included from arch/x86/decode.c:16:
arch/x86/decode.c:37:51: error: request for member 'e_machine' in something not a structure or union
37 | WARN("unexpected ELF machine type %d", elf->ehdr.e_machine);
| ^
arch/x86/../../warn.h:46:14: note: in definition of macro 'WARN'
46 | objname, ##__VA_ARGS__)
| ^~~~~~~~~~~
arch/x86/decode.c:40:1: error: control reaches end of non-void function [-Werror=return-type]
40 | }
| ^
cc1: all warnings being treated as errors
mv: cannot stat '/var/home/twoertwein/kernel/kernel-5.6.fc32/linux-5.6.14-301.local.fc32.x86_64/tools/objtool/arch/x86/.decode.o.tmp': No such file or directory
make[4]: *** [/var/home/twoertwein/kernel/kernel-5.6.fc32/linux-5.6.14-301.local.fc32.x86_64/tools/build/Makefile.build:97: /var/home/twoertwein/kernel/kernel-5.6.fc32/linux-5.6.14-301.local.fc32.x86_64/tools/objtool/arch/x86/decode.o] Error 1
make[3]: *** [/var/home/twoertwein/kernel/kernel-5.6.fc32/linux-5.6.14-301.local.fc32.x86_64/tools/build/Makefile.build:139: arch/x86] Error 2
make[2]: *** [Makefile:46: /var/home/twoertwein/kernel/kernel-5.6.fc32/linux-5.6.14-301.local.fc32.x86_64/tools/objtool/objtool-in.o] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:68: objtool] Error 2
make: *** [Makefile:1794: tools/objtool] Error 2
make: *** Waiting for unfinished jobs....
error: Bad exit status from /var/tmp/rpm-tmp.7tOkiu (%build)
RPM build errors:
Macro expanded in comment on line 744: %{rpmversion}-%{distro_build}.tar.bz2
Macro expanded in comment on line 745: %{rpmversion}-%{distro_build}.tar.bz2
Macro expanded in comment on line 753: %{rpmversion}-redhat.patch
Bad exit status from /var/tmp/rpm-tmp.7tOkiu (%build)
Could not execute local: rpmbuild --define '_sourcedir /var/home/twoertwein/kernel' --define '_specdir /var/home/twoertwein/kernel' --define '_builddir /var/home/twoertwein/kernel' --define '_srcrpmdir /var/home/twoertwein/kernel' --define '_rpmdir /var/home/twoertwein/kernel' --define 'dist %{?distprefix}.fc32' --define 'fedora 32' --eval '%undefine rhel' --define 'fc32 1' -ba /var/home/twoertwein/kernel/kernel.spec 2>&1 | tee .build-5.6.14-301.local.fc32.log
I tried the same with export CPATH="/usr/include/:"
(the location of /usr/include/elf.h) but I got the same error message.