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

Re: [Minios-devel] [UNIKRAFT/NEWLIB PATCH 1/2] Makefile.uk: Fix link issues on arm64



Hi Julien,  
    
    On 15/01/2020 10:50, Felipe Huici wrote:
    > Hi Julien,
    > 
    > On 23.12.19, 19:06, "Minios-devel on behalf of Julien Grall" 
<minios-devel-bounces@xxxxxxxxxxxxxxxxxxxx on behalf of julien@xxxxxxx> wrote:
    > 
    >      Hi,
    >      
    >      Title: how about "Makefile.uk: arm64: Add -D_HAVE_LONG_DOUBLE in the
    >      cflags"?
    > 
    > Agreed, the commit title and message definitely needs reworking.
    >      
    >      On 20/12/2019 05:54, Jia He wrote:
    >      > Without this patch, when starting helloworld app with newlib on arm
    >      > kvm plat, it will report a link error as follows:
    >      > apps/helloworld.newlib/build/helloworld_kvm-arm64.o: In function 
`wcstold_l':
    >      > 
apps/helloworld.newlib/build/libnewlibc/origin/newlib-2.5.0.20170922/newlib/libc/stdlib/wcstold.c:77:
 undefined reference to `strtold_l'
    >      > 
apps/helloworld.newlib/build/libnewlibc/origin/newlib-2.5.0.20170922/newlib/libc/stdlib/wcstold.c:77:(.text+0x7c4e4):
 relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol 
`strtold_l'
    >      >
    >      > I once did configure and build of newlib from uptream, this macro 
is
    >      > defined on my Thunderx2 armv8a server (Unbuntu 18.04 + gcc version 
7.4.0)
    >      
    >      This message gives me the error but does not explain the root cause. 
So
    >      it is not clear why -D_HAVE_LONG_DOUBLE solves the problem below.
    > 
    > newlib's strtold.c compile-guards the definition of strtold_l (and other 
related functions) with the _HAVE_LONG_DOUBLE macro, this is why setting that 
flag fixes the linker error.
    >      
    >      But it feels slightly supicious to me that newlib would try to build
    >      wcstold.c but not strtold.c (where strtold_l is included). So what is
    >      the exact problem?
    > 
    > I think this has more to do with a mistake when porting newlib to 
Unikraft (i.e., in our Makefile.uk, which this patch fixes) than with newlib 
(i.e., newlib's build system correctly includes strtold_l by setting 
_HAVE_LONG_DOUBLE).
    > 
    > Hope this clarifies things.
    
    Thank you for the clarification. Can this discussion be summarize in the 
    commit message?

Yes, of course, will do.

-- Felipe
    
    Cheers,
    
    -- 
    Julien Grall
    

_______________________________________________
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®.