2011/3/21 NightStrike <[email protected]>:
> On Mon, Feb 28, 2011 at 7:16 PM, Dock, Dion <[email protected]> wrote:
>>> -----Original Message-----
>>> From: Jon [mailto:[email protected]] On Behalf Of JonY
>>> Sent: Thursday, January 27, 2011 5:50 PM
>>> To: Dock, Dion
>>> Cc: [email protected]
>>> Subject: Re: [Mingw-w64-public] undefined reference to __GSHandlerCheck
>>>
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> On 1/28/2011 09:29, Dock, Dion wrote:
>>> > I've searched and searched for an answer but maybe my Google-fu is
>>> weak.
>>> >
>>> > We produce a library with VS 2005.  When I try to link it into a test
>>> > program using g++, I get lots of messages like
>>> >
>>> >     ...
>>> >
>>> C:\Views\dockd_headers\lip__mgls_nt\mgls_nt\src\release\mgls64.lib(./x6
>>> 4/release/lpclsdll.obj):(.text[?messageBox@@YAXPEAD@Z]+0xcb):
>>> undefined reference to `__security_check_cookie'
>>> >
>>> C:\Views\dockd_headers\lip__mgls_nt\mgls_nt\src\release\mgls64.lib(./x6
>>> 4/release/lpclsdll.obj):(.xdata[$unwind$?messageBox@@YAXPEAD@Z]+0xc)
>>> : undefined reference to `__GSHandlerCheck'
>>> >     ...
>>> >
>>> > If I recompile our library without the "Buffer Security Check" option 
>>> > (/GS-),
>>> then ld.exe crashes after the compile:
>>> >
>>> >     C:\Temp>C:\mingw_64\bin\x86_64-w64-mingw32-g++.exe checkout.cpp
>>> C:\Views\dockd_headers\lip__mgls_nt\mgls_nt\src\release\mgls64.lib -I
>>> C:\Views\dockd_headers\lip__mgls_nt\mgls_nt\src\include
>>> >     checkout.cpp: In function 'int main()':
>>> >     checkout.cpp:12:47: warning: deprecated conversion from string
>>> constant to 'char *'
>>> >     collect2: ld returned 5 exit status
>>> >
>>> > Any thoughts on where `__GSHandlerCheck' and
>>> `__security_check_cookie' are defined?  There has to be a way to link with a
>>> Visual Studio created lib.
>>> >
>>> > thanks,
>>> > -Dion
>>>
>>> Hi,
>>>
>>> you should never link C++ libraries from different compilers together as 
>>> they
>>> have different ABIs underneath, though C is usually fine. I'm surprised 
>>> that it
>>> even worked.
>>>
>>> I don't know what __GSHandlerCheck and __security_check_cookie are,
>>> possibly found only in MSVC libraries.
>>
>> I tried recompiling the source as C code (not C++) with Visual Studio and 
>> these
>> problems still occurred.  They go away if I compile the source with gcc.
>>
>> I thought C compilers produced interchangeable code?
>
> I'm guessing this is still an issue.  How much farther along are you?

Yes, we don't provide __GSHandlerCheck and __security_check_cookie in
our runtime. Patches are welcome for this.

Nevertheless be careful about mixing VC and gcc compiled code. At
least for C++ you will run into issues for sure. The name-mangling
isn't standarized and so VC and g++ are using here different mangling
algorithms.

Kai

------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to