[PATCH] arm: fix PIC vs SHARED typos

Joseph S. Myers joseph@codesourcery.com
Mon Sep 19 19:36:00 GMT 2011


On Mon, 19 Sep 2011, Mike Frysinger wrote:

> the logic in setjmp/__longjmp incorrectly tie to "PIC" to figure out
> whether the code is going into a shared library when it should be using
> "SHARED".  otherwise, building static PIC code goes wrong.

You'll need to give a better explanation (testcase) of what you mean by 
"goes wrong".

Static PIEs aren't supported on x86_64 so I don't suppose they are 
supported on ARM; PIEs have to use shared libraries.  But if they were 
supported, the PIC code here looks better than the non-PIC - you can't 
just put an absolute address in a constant pool in the text section in 
position-independent code the way the non-PIC code does; the conditional 
really does seem to be about "must the text be position-independent?".

In any case, the PIC builds of glibc objects (outside of libc_nonshared.a 
and crt*.o) should I expect only ever be used as part of building the 
shared library; static linking (absent any support for static PIEs) uses 
libc.a which I would expect always to be built non-PIC.

-- 
Joseph S. Myers
joseph@codesourcery.com



More information about the Libc-ports mailing list