This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch i386]: PR/39356 name collision of __chkstk
Kai Tietz wrote:
>> How does the ntdll.dll export of "_chkstk" cause you problems in 4.4
>> but not in 4.3.
>> WTF has changed.
>
> The change is the shared libgcc.dll. This symbol is now exported by
> it. For 4.3 the static version was used. So the exports from
> kernel32/ntdll can collide with libgcc version, when the link order is
> changed in that way, that kernel32 is linked before libgcc.
Still, why would anyone do that? It is wrong, after all. The specs get all
the -l options in the right order for you automatically, bypass them and
you're in undefined behaviour territory.
(On cygwin we're still currently using the "shove _chkstk.o bodily into the
import lib" technique.)
cheers,
DaveK