Dear List

So far, uclibc relied on the informal behaviour of GNU ld to put the link 
address of the _DYNAMIC symbol in the first GOT
entry. This does not work with LLVM lld which does not follow this convention. 
Consequently, glibc has abandoned its usage
in favour of using __ehdr_start as magic symbol to infer the load address [1]. 

Note that this implies that the link time address of __ehdr_start is *always* 
0! So far, this seems to be the case on all
platforms.

We implemented this change only for the platforms which we actively support and 
test at Kernkonzept (arm64, arm, i386,
x86_64 and and riscv). The riscv64 dl-sysdep.h already used the method we 
converted the others to. For the other platforms
we do not have the capacity to port this, but as long as noone wants to build 
them using lld this should not be an issue.

Please feel free to test this on the relevant platforms before merging, to be 
sure it works as intended with the upstream
version of the lib. 

Best regards,

- Marcus


[1] https://sourceware.org/bugzilla/show_bug.cgi?id=28203




-- 
+++++++++++++++++++


Register now for our workshop "Get to know L4Re in 3 days" on April 8-10. Learn 
to design and deploy secure system
architectures for your product with L4Re: 
https://www.kernkonzept.com/workshop-getting-started-with-l4re/

+++++++++++++++++++

Kernkonzept GmbH
Sitz: Dresden
HRB 31129
Geschäftsführer: Dr.-Ing. Michael Hohmuth


Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to