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