View previous topic :: View next topic |
Author |
Message |
ipic Guru
Joined: 29 Dec 2003 Posts: 400 Location: UK
|
Posted: Wed Sep 04, 2024 5:58 pm Post subject: [SOLVED] gentoo-sources 6.10.8 32bit fails: relocation issue |
|
|
I just pulled gentoo-sources 6.10.8 for a routine kernel build for my 32-bit VMs (with 64bit config option disabled/off). The kernel is built on a 64 bit VM. Usually 'just works'. This time I get:
Code: |
ld: relocatable linking with relocations from format elf32-i386 (init/main.o) to format elf64-x86-64 (vmlinux.o) is not supported
make[2]: *** [scripts/Makefile.vmlinux_o:79: vmlinux.o] Error 1
make[1]: *** [/usr/src/linux-6.10.8-gentoo/Makefile:1153: vmlinux_o] Error 2
make: *** [Makefile:240: __sub-make] Error 2
|
Does any one know what I have to do to make it work again?
Thanks
Last edited by ipic on Thu Sep 05, 2024 6:25 pm; edited 1 time in total |
|
Back to top |
|
|
sam_ Developer
Joined: 14 Aug 2020 Posts: 1948
|
Posted: Thu Sep 05, 2024 1:26 am Post subject: |
|
|
Please share the full output, via a pastebin, of make V=1. .config may be useful too. |
|
Back to top |
|
|
ipic Guru
Joined: 29 Dec 2003 Posts: 400 Location: UK
|
Posted: Thu Sep 05, 2024 7:49 am Post subject: |
|
|
output from make V=1 and .config file are here:
https://gist.github.com/pickworthi/90f491c37ec39582939ecd1509769825
The build process I follow is: Code: |
make mrproper
cp /var/tmp/vmkernel/kernel-config-32bit .config
make olddefconfig
make menuconfig
make V=1
|
The fail message is as follows: Code: | catalyst /usr/src/linux # make V=1 >>pastebinmake
ld: relocatable linking with relocations from format elf32-i386 (init/main.o) to format elf64-x86-64 (vmlinux.o) is not supported
make[2]: *** [scripts/Makefile.vmlinux_o:79: vmlinux.o] Error 1
make[1]: *** [/usr/src/linux-6.10.8-gentoo/Makefile:1153: vmlinux_o] Error 2
make: *** [Makefile:240: __sub-make] Error 2
|
The failing line in the output (last line) is: Code: |
# LD vmlinux.o
ld -m elf_i386 -z noexecstack --no-warn-rwx-segments -r -o vmlinux.o -T .tmp_remove-ctf.lds --whole-archive vmlinux.a --no-whole-archive --start-group lib/lib.a arch/x86/lib/lib.a --end-group
|
|
|
Back to top |
|
|
VoVaN l33t
Joined: 02 Jul 2003 Posts: 701 Location: The Netherlands
|
Posted: Thu Sep 05, 2024 8:48 am Post subject: |
|
|
I have problem building 6.10.8 kernel as well and I'm aware of the implementation of the experimental USE flag https://bugs.gentoo.org/706294.
Code: |
make[2]: *** [/mnt/portage/tmp/portage/sys-kernel/gentoo-kernel-6.10.8/work/linux-6.10/Makefile:1942: .] Error 2
make[1]: *** [/mnt/portage/tmp/portage/sys-kernel/gentoo-kernel-6.10.8/work/linux-6.10/Makefile:240: __sub-make] Error 2
make[1]: Leaving directory '/mnt/portage/tmp/portage/sys-kernel/gentoo-kernel-6.10.8/work/build'
|
Rebuilding 6.10.7 kernel still works without issues. |
|
Back to top |
|
|
sam_ Developer
Joined: 14 Aug 2020 Posts: 1948
|
Posted: Thu Sep 05, 2024 11:32 am Post subject: |
|
|
VoVaN wrote: | I have problem building 6.10.8 kernel as well and I'm aware of the implementation of the experimental USE flag https://bugs.gentoo.org/706294.
Code: |
make[2]: *** [/mnt/portage/tmp/portage/sys-kernel/gentoo-kernel-6.10.8/work/linux-6.10/Makefile:1942: .] Error 2
make[1]: *** [/mnt/portage/tmp/portage/sys-kernel/gentoo-kernel-6.10.8/work/linux-6.10/Makefile:240: __sub-make] Error 2
make[1]: Leaving directory '/mnt/portage/tmp/portage/sys-kernel/gentoo-kernel-6.10.8/work/build'
|
Rebuilding 6.10.7 kernel still works without issues. |
Your issue may well be different. Please start a new thread and share the full build.log and emerge --info. |
|
Back to top |
|
|
sam_ Developer
Joined: 14 Aug 2020 Posts: 1948
|
Posted: Thu Sep 05, 2024 11:33 am Post subject: |
|
|
ipic wrote: | output from make V=1 and .config file are here:
https://gist.github.com/pickworthi/90f491c37ec39582939ecd1509769825
The build process I follow is: Code: |
make mrproper
cp /var/tmp/vmkernel/kernel-config-32bit .config
make olddefconfig
make menuconfig
make V=1
|
The fail message is as follows: Code: | catalyst /usr/src/linux # make V=1 >>pastebinmake
ld: relocatable linking with relocations from format elf32-i386 (init/main.o) to format elf64-x86-64 (vmlinux.o) is not supported
make[2]: *** [scripts/Makefile.vmlinux_o:79: vmlinux.o] Error 1
make[1]: *** [/usr/src/linux-6.10.8-gentoo/Makefile:1153: vmlinux_o] Error 2
make: *** [Makefile:240: __sub-make] Error 2
|
The failing line in the output (last line) is: Code: |
# LD vmlinux.o
ld -m elf_i386 -z noexecstack --no-warn-rwx-segments -r -o vmlinux.o -T .tmp_remove-ctf.lds --whole-archive vmlinux.a --no-whole-archive --start-group lib/lib.a arch/x86/lib/lib.a --end-group
|
|
This log misses stderr. Try &> pastebinmake if using bash. |
|
Back to top |
|
|
ipic Guru
Joined: 29 Dec 2003 Posts: 400 Location: UK
|
Posted: Thu Sep 05, 2024 11:46 am Post subject: |
|
|
Does the text I included in the post not provide the STDERR output?
It is everything that appeared.
I reran make V=1 and captured all output, and placed it in the gist (third file)
https://gist.github.com/pickworthi/90f491c37ec39582939ecd1509769825
Since it is a re-run - nothing was compiled (since nothing changed).
The STDERR is as I posted above nothing added as far as I can see. |
|
Back to top |
|
|
sam_ Developer
Joined: 14 Aug 2020 Posts: 1948
|
Posted: Thu Sep 05, 2024 12:04 pm Post subject: |
|
|
It added the actual linker error and I wanted to be sure there wasn't more. Thanks, looking. |
|
Back to top |
|
|
sam_ Developer
Joined: 14 Aug 2020 Posts: 1948
|
Posted: Thu Sep 05, 2024 2:14 pm Post subject: |
|
|
EDIT: Please ignore previous text, I'm a fool and didn't read your instructions properly. Indeed it happens with a 32-bit build on a 64-bit host. Looking. |
|
Back to top |
|
|
sam_ Developer
Joined: 14 Aug 2020 Posts: 1948
|
Posted: Thu Sep 05, 2024 3:23 pm Post subject: |
|
|
Please try this patch:
Code: |
--- a/scripts/Makefile.vmlinux_o 2024-09-05 16:22:47.594384762 +0100
+++ b/scripts/Makefile.vmlinux_o 2024-09-05 16:23:03.427561105 +0100
@@ -32,7 +32,7 @@
quiet_cmd_gen_remove_ctf.lds = GEN $@
cmd_gen_remove_ctf.lds = \
- $(LD) -r --verbose | awk -f $(real-prereqs) > $@
+ $(LD) $(KBUILD_LDFLAGS) -r --verbose | awk -f $(real-prereqs) > $@
.tmp_remove-ctf.lds: $(srctree)/scripts/remove-ctf-lds.awk FORCE
$(call if_changed,gen_remove_ctf.lds)
|
|
|
Back to top |
|
|
ipic Guru
Joined: 29 Dec 2003 Posts: 400 Location: UK
|
Posted: Thu Sep 05, 2024 5:02 pm Post subject: |
|
|
I could not get the patch to apply, it did this:
Code: |
catalyst /usr/src/linux # patch --dry-run -p1 -i 32bit.patch
checking file scripts/Makefile.vmlinux_o
Hunk #1 FAILED at 32.
1 out of 1 hunk FAILED
...and...
catalyst /usr/src/linux # patch -p1 -i 32bit.patch
patching file scripts/Makefile.vmlinux_o
Hunk #1 FAILED at 32.
1 out of 1 hunk FAILED -- saving rejects to file scripts/Makefile.vmlinux_o.rej
|
So, I edited in the change to scripts/Makefile.vmlinux_o by hand using vi. The change I applied is: Code: |
line 35
change: $(LD) -r --verbose | ..etc..
to: $(LD) $(KBUILD_LDFLAGS) -r --verbose | ..etc..
|
I then ran make again (no other changes) and it worked.
I have no idea why the patch would not apply - it looks OK to me. However, what it does, works.
Does this mean that gentoo-sources has to be patched?
(EDIT: Just for completeness, I ran a 64-bit make on the same patched source, and that worked as well.) |
|
Back to top |
|
|
sam_ Developer
Joined: 14 Aug 2020 Posts: 1948
|
Posted: Thu Sep 05, 2024 5:37 pm Post subject: |
|
|
Thanks! Whitespace probably got mangled. The call to LD was wrong because it's used to generate a linker script. By not passing -m XXX, it hardcodes OUTPUT_FORMAT of whatever the native linker output format is. By passing KBUILD_LDFLAGS, which has the right -m XXX value, the issue is fixed.
I've sent the fix for inclusion in the next version of gentoo-sources (it's not an upstream bug, it's from a patch we added recently). Thank you again for the help. |
|
Back to top |
|
|
ipic Guru
Joined: 29 Dec 2003 Posts: 400 Location: UK
|
Posted: Thu Sep 05, 2024 6:26 pm Post subject: |
|
|
Cool, and thank you for fixing it.
I've marked the thread as [SOLVED]. |
|
Back to top |
|
|
ipic Guru
Joined: 29 Dec 2003 Posts: 400 Location: UK
|
Posted: Sun Sep 08, 2024 3:38 pm Post subject: |
|
|
6.10.9 compiled and linked OK. So patch must have made it to the release. |
|
Back to top |
|
|
|