From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: 51664@debbugs.gnu.org
Subject: bug#51664: kexec-tools fails to build on i686-linux, breaks GTK/GNOME
Date: Sun, 07 Nov 2021 22:41:12 -0500 [thread overview]
Message-ID: <87sfw71fhj.fsf@gmail.com> (raw)
In-Reply-To: <87wnlk0yn4.fsf@gmail.com> (Maxim Cournoyer's message of "Sun, 07 Nov 2021 10:32:47 -0500")
Hi again,
Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
[...]
>
> In the Ubuntu VM, the following include directive is passed to gcc:
>
> -I/usr/lib/gcc/x86_64-linux-gnu/10/include
>
> while on Guix it uses:
>
> -I/gnu/store/4vafjcwi9vlks5y67naf9gdia9l42pfz-gcc-10.3.0-lib/lib/gcc/i686-unknown-linux-gnu/10.3.0/include;
>
> i.e. it selects the i686 include directory of GCC instead of the x86_64
> one. That probably explains the missing .code64 and other
> x86_64-related symbols in the compilation errors.
>
> kexec-tools is a required input of elogind since at least 246.10, which
> means GTK/GNOME is broken by this problem on i686
> (core-updates-frozen-batched-changes).
As suggested in OFTC's #debian channel, I attempted to build kexec-tools
on a i686 Debian system to ensure the problem is not in kexec-tools; and
it built fine there too,
--8<---------------cut here---------------start------------->8---
[...]
gcc -I./purgatory/include -I./purgatory/arch/i386/include -I./util_lib/include -I./include -Iinclude -I/usr/lib/gcc/i686-linux-gnu/8/include -c -MD -o purgatory/arch/i386/compat_x86_64.o purgatory/arch/i386/compat_x86_64.S
gcc -fno-zero-initialized-in-bss -Os -fno-builtin -ffreestanding -fno-zero-initialized-in-bss -fno-PIC -fno-PIE -fno-stack-protector -I./purgatory/include -I./purgatory/arch/i386/include -I./util_lib/include -I./include -Iinclude -I/usr/lib/gcc/i686-linux-gnu/8/include -c -MD -o purgatory/arch/i386/purgatory-x86.o purgatory/arch/i386/purgatory-x86.c
gcc -fno-zero-initialized-in-bss -Os -fno-builtin -ffreestanding -fno-zero-initialized-in-bss -fno-PIC -fno-PIE -fno-stack-protector -I./purgatory/include -I./purgatory/arch/i386/include -I./util_lib/include -I./include -Iinclude -I/usr/lib/gcc/i686-linux-gnu/8/include -c -MD -o purgatory/arch/i386/console-x86.o purgatory/arch/i386/console-x86.c
gcc -fno-zero-initialized-in-bss -Os -fno-builtin -ffreestanding -fno-zero-initialized-in-bss -fno-PIC -fno-PIE -fno-stack-protector -I./purgatory/include -I./purgatory/arch/i386/include -I./util_lib/include -I./include -Iinclude -I/usr/lib/gcc/i686-linux-gnu/8/include -c -MD -o purgatory/arch/i386/vga.o purgatory/arch/i386/vga.c
gcc -fno-zero-initialized-in-bss -Os -fno-builtin -ffreestanding -fno-zero-initialized-in-bss -fno-PIC -fno-PIE -fno-stack-protector -I./purgatory/include -I./purgatory/arch/i386/include -I./util_lib/include -I./include -Iinclude -I/usr/lib/gcc/i686-linux-gnu/8/include -c -MD -o purgatory/arch/i386/pic.o purgatory/arch/i386/pic.c
gcc -fno-zero-initialized-in-bss -Os -fno-builtin -ffreestanding -fno-zero-initialized-in-bss -fno-PIC -fno-PIE -fno-stack-protector -I./purgatory/include -I./purgatory/arch/i386/include -I./util_lib/include -I./include -Iinclude -I/usr/lib/gcc/i686-linux-gnu/8/include -c -MD -o purgatory/arch/i386/crashdump_backup.o purgatory/arch/i386/crashdump_backup.c
mkdir -p purgatory
gcc -fno-zero-initialized-in-bss -Os -fno-builtin -ffreestanding -fno-zero-initialized-in-bss -fno-PIC -fno-PIE -fno-stack-protector -O2 -I./purgatory/include -I./purgatory/arch/i386/include -I./util_lib/include -I./include -Iinclude -I/usr/lib/gcc/i686-linux-gnu/8/include -c -o purgatory/sha256.o util_lib/sha256.c
mkdir -p purgatory
gcc -fno-zero-initialized-in-bss -Os -fno-builtin -ffreestanding -fno-zero-initialized-in-bss -fno-PIC -fno-PIE -fno-stack-protector -Wl,--no-undefined -nostartfiles -nostdlib -nodefaultlibs -e purgatory_start -r -Wl,-Map=purgatory/purgatory.map -o purgatory/purgatory.ro.sym purgatory/purgatory.o purgatory/printf.o purgatory/string.o purgatory/arch/i386/entry32-16.o purgatory/arch/i386/entry32-16-debug.o purgatory/arch/i386/entry32.o purgatory/arch/i386/setup-x86.o purgatory/arch/i386/stack.o purgatory/arch/i386/compat_x86_64.o purgatory/arch/i386/purgatory-x86.o purgatory/arch/i386/console-x86.o purgatory/arch/i386/vga.o purgatory/arch/i386/pic.o purgatory/arch/i386/crashdump_backup.o purgatory/sha256.o
strip --strip-debug -o purgatory/purgatory.ro purgatory/purgatory.ro.sym
gcc -O2 -Wall -o bin/bin-to-hex util/bin-to-hex.c
mkdir -p kexec
bin/bin-to-hex purgatory < purgatory/purgatory.ro > kexec/purgatory.c
gcc -g -O2 -fno-strict-aliasing -Wall -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/ -I./kexec/arch/i386/include -c -MD -o kexec/purgatory.o kexec/purgatory.c
gcc -g -O2 -fno-strict-aliasing -Wall -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/ -I./kexec/arch/i386/include -I./util_lib/include -c -MD -o util_lib/compute_ip_checksum.o util_lib/compute_ip_checksum.c
gcc -g -O2 -fno-strict-aliasing -Wall -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/ -I./kexec/arch/i386/include -I./util_lib/include -c -MD -o util_lib/elf_info.o util_lib/elf_info.c
gcc -g -O2 -fno-strict-aliasing -Wall -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/ -I./kexec/arch/i386/include -I./util_lib/include -c -MD -o util_lib/sha256.o util_lib/sha256.c
ar rs libutil.a util_lib/compute_ip_checksum.o util_lib/elf_info.o util_lib/sha256.o
ar: creating libutil.a
gcc -o build/sbin/kexec kexec/kexec.o kexec/ifdown.o kexec/kexec-elf.o kexec/kexec-elf-exec.o kexec/kexec-elf-core.o kexec/kexec-elf-rel.o kexec/kexec-elf-boot.o kexec/kexec-iomem.o kexec/firmware_memmap.o kexec/crashdump.o kexec/crashdump-xen.o kexec/phys_arch.o kexec/lzma.o kexec/zlib.o kexec/kexec-xen.o kexec/symbols.o kexec/proc_iomem.o kexec/virt_to_phys.o kexec/phys_to_virt.o kexec/add_segment.o kexec/add_buffer.o kexec/arch_reuse_initrd.o kexec/arch/i386/kexec-x86.o kexec/arch/i386/kexec-x86-common.o kexec/arch/i386/kexec-elf-x86.o kexec/arch/i386/kexec-elf-rel-x86.o kexec/arch/i386/kexec-bzImage.o kexec/arch/i386/kexec-multiboot-x86.o kexec/arch/i386/kexec-mb2-x86.o kexec/arch/i386/kexec-beoboot-x86.o kexec/arch/i386/kexec-nbi.o kexec/arch/i386/x86-linux-setup.o kexec/arch/i386/crashdump-x86.o kexec/purgatory.o libutil.a -g -O2 -fno-strict-aliasing -Wall -Wstrict-prototypes
gcc -g -O2 -fno-strict-aliasing -Wall -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/ -c -MD -o vmcore-dmesg/vmcore-dmesg.o vmcore-dmesg/vmcore-dmesg.c
gcc -o build/sbin/vmcore-dmesg vmcore-dmesg/vmcore-dmesg.o libutil.a -g -O2 -fno-strict-aliasing -Wall -Wstrict-prototypes
gcc -m32 -I./include -I./util_lib/include -Iinclude/ -DRELOC=0x10000 -c -MD -o kexec_test/kexec_test16.o kexec_test/kexec_test16.S
gcc -m32 -I./include -I./util_lib/include -Iinclude/ -DRELOC=0x10000 -c -MD -o kexec_test/kexec_test.o kexec_test/kexec_test.S
mkdir -p build/lib/kexec-tools
ld -melf_i386 -e _start -Ttext 0x10000 -o build/lib/kexec-tools/kexec_test kexec_test/kexec_test16.o kexec_test/kexec_test.o
cp kexec/kexec.8 build/man/man8/kexec.8
mkdir -p build/man/man8
cp vmcore-dmesg/vmcore-dmesg.8 build/man/man8/vmcore-dmesg.8
--8<---------------cut here---------------end--------------->8---
So everything so far seems to suggest the problem is in Guix rather than
somewhere else.
Maxim
next prev parent reply other threads:[~2021-11-08 3:42 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-07 15:32 bug#51664: kexec-tools fails to build on i686-linux, breaks GTK/GNOME Maxim Cournoyer
2021-11-08 3:41 ` Maxim Cournoyer [this message]
2021-11-11 18:52 ` Maxim Cournoyer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87sfw71fhj.fsf@gmail.com \
--to=maxim.cournoyer@gmail.com \
--cc=51664@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).