On 04/11/2015 18:46, KI7MT wrote:
> To be honest, I'm a bit fuzzy on the -fPIC v.s.
> -fPIE flag usage.
Hi Greg,

PIC code is required if the relocatable object code is to be linked into 
a shared library. This is necessary so that the image loader can map the 
library into more than one process address space without wasting large 
amounts of address space (which would be the case if it had to be mapped 
at the same address in every process that needed it).

PIE executables are executables that contain only PIC code and therefore 
can be loaded at any address. This is not normally required since 
executables are normally loaded at he same address. PIE executables can 
be used in a form of security hardening when load addresses are randomized.

The gcc compiler suite recognizes -fPIC and -fpic (also -fPIE and 
-fpie), the lower case forms are more efficient on some processors but 
the differences are not very significant.

Richard KF5OIM recently reported that WSJT-X code that is not used in a 
shared library had to be compiled as PIC, this make no sense to me but 
it is possible that recent versions of gcc have changed the meaning or 
requirements for PIC code. He was using a recent Fedora (FC23) which 
uses gcc v5. Having said that I have built Hamlib 3 and WSJT-X on FC23, 
which is now released, without having to change any compiler flags. So I 
am not yet sure what is going on.

73
Bill
G4WJS.

------------------------------------------------------------------------------
_______________________________________________
wsjt-devel mailing list
wsjt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

Reply via email to