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

Re: [Minios-devel] [UNIKRAFT PATCH v3 2/7] build: Link libgcc at the end of the link options list



Hello Justin,

Please find the comment inline.

Thanks & Regards

Sharan

On 4/2/20 6:18 AM, Jia He wrote:
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) \
I think it is fine if we could directly include the libgcc.a into our statically built binary as this come GPL v3. Do you know if this has an impact on the BSD license?
                        -Wl$(comma)--end-group \
                        -o $(KVM_IMAGE).ld.o)
        $(call build_cmd,OBJCOPY,,$(KVM_IMAGE).o,\

_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

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