This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: cygwin, libtool, dlpreopen, and .rdata
Charles Wilson wrote:
Actually, *function* addresses are fine; they don't get relocated (at
least, not by the runtime-pseudo-reloc gobbledygook). It's only the
addresses of DATA items exported by DLLs that get relocated in this way.
AND, they get relocated IF AND ONLY IF you are linking to a DLL.
On x86/PE, anyway. The rules for other platforms and object-file formats
vary.
Leaving this as "implementation-defined" (may or may not work -
documented, but how easy is it to track down this documentation?) makes
the programmer's task more difficult - they can never be sure where they
can use 'const' on an initialized structure definition. What if function
addresses are also 'bad' on some other platform?
Gcc should either warn about this usage, or it should silently "do the
right thing" on each platform based on its capabilities.
But I'm just being picky, being an old compiler fart..
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- References:
- cygwin, libtool, dlpreopen, and .rdata
- Re: cygwin, libtool, dlpreopen, and .rdata
- Re: cygwin, libtool, dlpreopen, and .rdata
- Re: cygwin, libtool, dlpreopen, and .rdata