-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Description
fwupd-efi failed to build on loongarch64 for Freedesktop-SDK.
Versions of components:
fwupd-efi 1.7
gnu-efi 4.0.2
binutils 2.45
ninja: Entering directory `_builddir'
[1/7] /usr/bin/cc -c ../efi/fwup-debug.c -o efi/fwup-debug.o -Og -g3 --param=ssp-buffer-size=4 -fexceptions -Wall -Wextra -Wvla -std=gnu11 -fpic -funsigned-char -fshort-wchar -ffreestanding -fno-strict-aliasing -fno-stack-protector -fno-stack-check -fno-merge-all-constants -Wsign-compare -Wno-missing-field-initializers -Wno-address-of-packed-member -grecord-gcc-switches '-DDEBUGDIR="/usr/lib/loongarch64-linux-gnu/debug"' -I. -isystem /usr/include/efi -isystem /usr/include/efi/loongarch64 -fno-merge-constants -DGNU_EFI_3_0_COMPAT
[2/7] /usr/bin/cc -c ../efi/fwup-efi.c -o efi/fwup-efi.o -Og -g3 --param=ssp-buffer-size=4 -fexceptions -Wall -Wextra -Wvla -std=gnu11 -fpic -funsigned-char -fshort-wchar -ffreestanding -fno-strict-aliasing -fno-stack-protector -fno-stack-check -fno-merge-all-constants -Wsign-compare -Wno-missing-field-initializers -Wno-address-of-packed-member -grecord-gcc-switches '-DDEBUGDIR="/usr/lib/loongarch64-linux-gnu/debug"' -I. -isystem /usr/include/efi -isystem /usr/include/efi/loongarch64 -fno-merge-constants -DGNU_EFI_3_0_COMPAT
[3/7] /usr/bin/cc -c ../efi/fwup-common.c -o efi/fwup-common.o -Og -g3 --param=ssp-buffer-size=4 -fexceptions -Wall -Wextra -Wvla -std=gnu11 -fpic -funsigned-char -fshort-wchar -ffreestanding -fno-strict-aliasing -fno-stack-protector -fno-stack-check -fno-merge-all-constants -Wsign-compare -Wno-missing-field-initializers -Wno-address-of-packed-member -grecord-gcc-switches '-DDEBUGDIR="/usr/lib/loongarch64-linux-gnu/debug"' -I. -isystem /usr/include/efi -isystem /usr/include/efi/loongarch64 -fno-merge-constants -DGNU_EFI_3_0_COMPAT
[4/7] /usr/bin/python3 ../efi/generate_sbat.py efi/fwup-sbat.o --cc cc --cflags '-Og -g3 --param=ssp-buffer-size=4 -fexceptions -Wall -Wextra -Wvla -std=gnu11 -fpic -funsigned-char -fshort-wchar -ffreestanding -fno-strict-aliasing -fno-stack-protector -fno-stack-check -fno-merge-all-constants -Wsign-compare -Wno-missing-field-initializers -Wno-address-of-packed-member -grecord-gcc-switches -DDEBUGDIR="/usr/lib/loongarch64-linux-gnu/debug" -I. -isystem /usr/include/efi -isystem /usr/include/efi/loongarch64 -fno-merge-constants -DGNU_EFI_3_0_COMPAT' --objcopy /usr/bin/objcopy --project-name fwupd-efi --project-version 1.7 --sbat-version 1 --sbat-generation 1 --sbat-distro-id freedesktop-sdk --sbat-distro-generation 0 --sbat-distro-summary 'Freedesktop SDK' --sbat-distro-pkgname '' --sbat-distro-version '' --sbat-distro-url https://freedesktop-sdk.io/
[5/7] /usr/bin/cc -c ../efi/fwupdate.c -o efi/fwupdate.o -Og -g3 --param=ssp-buffer-size=4 -fexceptions -Wall -Wextra -Wvla -std=gnu11 -fpic -funsigned-char -fshort-wchar -ffreestanding -fno-strict-aliasing -fno-stack-protector -fno-stack-check -fno-merge-all-constants -Wsign-compare -Wno-missing-field-initializers -Wno-address-of-packed-member -grecord-gcc-switches '-DDEBUGDIR="/usr/lib/loongarch64-linux-gnu/debug"' -I. -isystem /usr/include/efi -isystem /usr/include/efi/loongarch64 -fno-merge-constants -DGNU_EFI_3_0_COMPAT
[6/7] /usr/bin/cc -nostdlib -o efi/fwup.so -Wl,-T -Wl,/buildstream-build/efi/lds/elf_loongarch64_efi.lds -Wl,-shared -Wl,-Bsymbolic -Wl,-nostdlib -Wl,-znocombreloc -Wl,-znorelro -Wl,-L -Wl,/usr/lib/loongarch64-linux-gnu -Wl,-L -Wl,/usr/lib/loongarch64-linux-gnu -Wl,/usr/lib/loongarch64-linux-gnu/crt0-efi-loongarch64.o efi/fwupdate.o efi/fwup-debug.o efi/fwup-efi.o efi/fwup-common.o efi/fwup-sbat.o -lefi -lgnuefi /usr/lib/gcc/loongarch64-unknown-linux-gnu/15.2.0/libgcc.a
FAILED: [code=1] efi/fwup.so
/usr/bin/cc -nostdlib -o efi/fwup.so -Wl,-T -Wl,/buildstream-build/efi/lds/elf_loongarch64_efi.lds -Wl,-shared -Wl,-Bsymbolic -Wl,-nostdlib -Wl,-znocombreloc -Wl,-znorelro -Wl,-L -Wl,/usr/lib/loongarch64-linux-gnu -Wl,-L -Wl,/usr/lib/loongarch64-linux-gnu -Wl,/usr/lib/loongarch64-linux-gnu/crt0-efi-loongarch64.o efi/fwupdate.o efi/fwup-debug.o efi/fwup-efi.o efi/fwup-common.o efi/fwup-sbat.o -lefi -lgnuefi /usr/lib/gcc/loongarch64-unknown-linux-gnu/15.2.0/libgcc.a
/usr/lib/gcc/loongarch64-unknown-linux-gnu/15.2.0/../../../../loongarch64-unknown-linux-gnu/bin/ld: /usr/lib/loongarch64-linux-gnu/crt0-efi-loongarch64.o:(.text+0x1014): relocation R_LARCH_PCALA_HI20 against `ImageBase` can not be used when making a shared object; recompile with -fPIC and check the symbol visibility
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
Command 'ninja -v -j ${JOBS} -C _builddir' failed with exitcode 1
full build log: fwupd-efi-1.7.log
I am not familiar with assembly stuff, but this modification make the linking work.
diff --git a/efi/lds/elf_loongarch64_efi.lds b/efi/lds/elf_loongarch64_efi.lds
index c7a77a3..0cf1233 100644
--- a/efi/lds/elf_loongarch64_efi.lds
+++ b/efi/lds/elf_loongarch64_efi.lds
@@ -3,6 +3,8 @@ OUTPUT_ARCH(loongarch)
ENTRY(_start)
SECTIONS
{
+ . = 0;
+ ImageBase = .;
.text 0 : {
*(.text.head)
. = ALIGN(4096);
Metadata
Metadata
Assignees
Labels
No labels