On Wednesday, April 2, 2014 6:18:40 PM UTC+2, Jean-Pierre Flori wrote:
>
>
>
> On Wednesday, April 2, 2014 6:09:07 PM UTC+2, Jean-Pierre Flori wrote:
>>
>>
>>
>> On Wednesday, April 2, 2014 11:34:30 AM UTC+2, leif wrote:
>>>
>>> Jean-Pierre Flori wrote: 
>>> > On Wednesday, April 2, 2014 1:47:30 AM UTC+2, Bill Hart wrote: 
>>> > 
>>> >     All the C tests pass now. Just checking the C++ ones. 
>>> > 
>>> > 
>>> >     On 2 April 2014 00:49, Bill Hart <goodwi...@googlemail.com 
>>> >     <javascript:>> wrote: 
>>> > 
>>> >         Got it! 
>>> > 
>>> >         /* __GMP_DECLSPEC supports Windows DLL versions of libmpir, 
>>> and 
>>> >         is empty in 
>>> >             all other circumstances. 
>>>
>>> Just wonder how the correct declarations of the affected (called) 
>>> functions vanished. 
>>>
>>>
>>> > Great! 
>>> > 
>>> > By the way, this looks quite interesting: 
>>> > http://www.cygwin.com/ml/cygwin/2002-01/msg00236.html 
>>> > 
>>> > Maybe we could just get rid of the dllexport/import nightmare? at 
>>> least 
>>> > on Cygwin (and MinGW?). 
>>>
>>>
>>> Yes.  Just install Youbetcha... B) 
>>>
>> Ok, my bad, we just don't need the dllimport stuff anymore in gmp.h 
>> (outside gmp_within_gmp_within_gmp).
>> So we can actually build both static and shared libs now with a single 
>> header!
>>
> In fact we could also ignore the dllexport stuff with the "new"  
> auto-export --export-all-symbols (which is the default) ld option, as long 
> as there is no dllexport at all (see 
> https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/Using_ld_the_GNU_Linker/win32.html
> ).
> That will surely export more symbols as before though.
> And as, if I understood correctly, the dllexport thing is needed anyway 
> for msvc, that won't simplify things.
> (Whereas getting rid of dllimport allows to build both static and shared 
> with forcing us and the user to use dark magic.)
>
Ok, I think I mostly got the dllimport/segfault issue on Windows64.

It seems one has to use the yasm export directive (one may pass -DDLL to 
yasm to define DLL and trigger its use) or gcc somehow screws up and you 
end up with a wrong function call in your binary.
What is strange is that:
* if you use the dllimport magic, everything is fine without the export 
directive.
* with the export directive you don't need the dllimport magic.
And:
* everything is fine on Cygwin32 without both of them but there gas is used 
(for most files at least).

Any thought about that?

-- 
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mpir-devel+unsubscr...@googlegroups.com.
To post to this group, send email to mpir-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/mpir-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to