-fPIC and 32-bit dmd.conf settings
Joseph Rushton Wakeling via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Apr 9 02:23:07 PDT 2017
On Sunday, 9 April 2017 at 07:12:51 UTC, Patrick Schluter wrote:
> 32 bit modes support for PIC is painful because the RIP
> relative addressing mode does not exist. AMD introduced it when
> they added 64 bit support in the Opteron processors. In 32 bit
> mode it was possible to generate PIC code but it required some
> ugly hacks (CALL 0) which broke some hardware optimization (the
> return address target cache) and adds a layer of indirection
> for shared libraries (GOT), which had the consequence of
> breaking the sharing, i.e. .so and .dll weren't really shared
> in 32 bit mode.
> Here an in depth article that I haven't yet read but seem to be
> interesting on the subject
> https://www.technovelty.org/c/position-independent-code-and-x86-64-libraries.html
> Of course, this has nothing to do with D per se.
Thanks for the explanation. TBH I find myself wondering whether
`-fPIC` should be in the flags defined in dmd.conf _at all_ (even
for 64-bit environments); surely that should be on request of
individual project builds ... ?
More information about the Digitalmars-d-learn
mailing list