[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[UNIKRAFT PATCH v5 2/7] build: Link libgcc at the end of the link options list



To use newlib on arm64 plat kvm, libgcc should be linked at the end of
the options list, otherwise it will be ignored due to -stdlib.

Without this patch, there will be a linking error on arm kvm plat:
syslog.c:(.text+0x7d5cc): undefined reference to `__floatsitf'
syslog.c:(.text+0x7d5cc): relocation truncated to fit: R_AARCH64_CALL26 against 
undefined symbol `__floatsitf'
/root/hj/UK/unikraft_upstream/apps/helloworld/build/helloworld_kvm-arm64.o: In 
function `__ieee754_hypotl':
syslog.c:(.text+0x99434): undefined reference to `__multf3'
syslog.c:(.text+0x99434): relocation truncated to fit: R_AARCH64_CALL26 against 
undefined symbol `__multf3'
syslog.c:(.text+0x99444): undefined reference to `__multf3'
syslog.c:(.text+0x99444): additional relocation overflows omitted from the 
output
syslog.c:(.text+0x99450): undefined reference to `__addtf3'
/root/hj/UK/unikraft_upstream/apps/helloworld/build/helloworld_kvm-arm64.o: In 
function `sqrtl':
syslog.c:(.text+0xb12c0): undefined reference to `__trunctfdf2'
syslog.c:(.text+0xb12c8): undefined reference to `__extenddftf2'

Above undefined symbols are at libgcc.a

Signed-off-by: Jia He <justin.he@xxxxxxx>
---
 plat/kvm/Linker.uk | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/plat/kvm/Linker.uk b/plat/kvm/Linker.uk
index 5e42193..65a5f8e 100644
--- a/plat/kvm/Linker.uk
+++ b/plat/kvm/Linker.uk
@@ -2,6 +2,7 @@ ifeq (x86_64,$(CONFIG_UK_ARCH))
 KVM_LDFLAGS-y += -Wl,-m,elf_x86_64
 else ifeq (arm64,$(CONFIG_UK_ARCH))
 KVM_LDFLAGS-y   += -Wl,-m,aarch64elf
+KVM_LINK_LIBGCC_FLAG   := -lgcc
 endif
 
 
@@ -26,6 +27,7 @@ $(KVM_DEBUG_IMAGE): $(KVM_ALIBS) $(KVM_ALIBS-y) $(KVM_OLIBS) 
$(KVM_OLIBS-y) \
                        -Wl$(comma)--start-group \
                        $(KVM_ALIBS) $(KVM_ALIBS-y) \
                        $(UK_ALIBS) $(UK_ALIBS-y) \
+                       $(KVM_LINK_LIBGCC_FLAG) \
                        -Wl$(comma)--end-group \
                        -o $(KVM_IMAGE).ld.o)
        $(call build_cmd,OBJCOPY,,$(KVM_IMAGE).o,\
-- 
2.17.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.