This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Possibly wrong address passed to callq asm instruction within MPIR test binaries
- From: Jean-Pierre Flori <jpflori at gmail dot com>
- To: cygwin at cygwin dot com
- Date: Mon, 7 Apr 2014 09:49:27 +0000 (UTC)
- Subject: Re: Possibly wrong address passed to callq asm instruction within MPIR test binaries
- Authentication-results: sourceware.org; auth=none
- References: <CAHhGz8_eESbCpCWivD_G9ciFbE4VsZntZyRdOOOtd2PXUSsmgg at mail dot gmail dot com> <20140402090750 dot GP2508 at calimero dot vinschen dot de> <lhsctu$56e$1 at ger dot gmane dot org> <20140407084312 dot GA2061 at calimero dot vinschen dot de> <lhtqa1$ie3$1 at ger dot gmane dot org>
Le Mon, 07 Apr 2014 09:14:41 +0000, Jean-Pierre Flori a ÃcritÂ:
> Looking a little further, it seems the problematic functions are those
> directly assembled from assembly code.
> That was the case of mpn_store on x86_64.
>
> And when I remove all dllimport, the call to the function mpn_addadd_n
> also gives a segfault when executing t-addadd_n.exe.
>
> Note that the test t-aors.exe does not segfault, and indeed it only uses
> the mpn_add_1 and mpn_sub_1 functions which are not from assembly.
>
It seems the dll produced at least has different treatment for these tow
kinds of functions.
jp@napoleon-7 ~
$ nm local/bin/cygmpir-16.dll | grep store
00000004ff238170 T __gmpn_store
00000004ff238198 t __gmpn_store.1
00000004ff2381a0 t __gmpn_store.2
00000004ff2381b3 t __gmpn_store.3
00000004ff2381bd t __gmpn_store.4
00000004ff2381be t __gmpn_store.5
00000004ff2381c3 t __gmpn_store.6
00000004ff2381c9 t __gmpn_store.7
...
jp@napoleon-7 ~
$ nm local/bin/cygmpir-16.dll | grep addadd_n
00000004ff208e10 T __gmpn_addadd_n
00000004ff208e50 t __gmpn_addadd_n.1
00000004ff208eac t __gmpn_addadd_n.2
00000004ff208ebe t __gmpn_addadd_n.3
00000004ff208f0f t __gmpn_addadd_n.4
00000004ff208f54 t __gmpn_addadd_n.5
00000004ff208f6e t __gmpn_addadd_n.6
jp@napoleon-7 ~
$ nm local/bin/cygmpir-16.dll | grep add_1
00000004ff207d40 T __gmpn_add_1
And
jp@napoleon-7 ~/mpir
$ nm .libs/libmpir.dll.a | grep add_1
0000000000000000 T __gmpn_add_1
0000000000000000 I __imp___gmpn_add_1
jp@napoleon-7 ~/mpir
$ nm .libs/libmpir.dll.a | grep addadd_n
0000000000000000 I __imp___gmpn_addadd_n
0000000000000000 I __nm___gmpn_addadd_n
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple