This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: libtool weirdness (was Re: Broken MPIR 2.6.0 on Cygwin64)


Le Fri, 21 Jun 2013 18:07:00 +0000, Jean-Pierre Flori a ÃcritÂ:

> Le Fri, 21 Jun 2013 17:27:22 +0000, Jean-Pierre Flori a ÃcritÂ:
> 
>> Le Fri, 21 Jun 2013 17:06:03 +0000, Jean-Pierre Flori a ÃcritÂ:
>> 
>>>> I'll also check without assembly optimizations, or lowering gcc
>>>> optimization level, etc.
>>> So I'm going to try that now.
>> If i disable ASM routines by passing MPN_PATH=generic to configure,
>> then (in the static setting at least) most tests now pass.
> 
> Using the default MPN_PATH I get "x86_64/sandybridge x86_64 generic",
> the first segfault I get is in the first test in the mpn dir:
> t-addadd_n.c. GDB points to the loop1() function:
> 
> jp@napoleon-7 ~/mpir-2.6.0/tests/mpn $ gdb t-addadd_n.exe GNU gdb (GDB)
> 7.6.50.20130320-cvs Copyright (C) 2013 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/
> gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show
> copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-unknown-cygwin".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>...
> Reading symbols from
> /home/jp/mpir-2.6.0/tests/mpn/t-addadd_n.exe...done. (gdb) r Starting
> program: /home/jp/mpir-2.6.0/tests/mpn/t-addadd_n.exe [New Thread
> 2576.0x9b8]
> [New Thread 2576.0x398]
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x00000001004020ae in loop1 ()
> (gdb) bt #0  0x00000001004020ae in loop1 ()
> #1  0x0000000100401fe7 in __gmpn_addadd_n (t=0x1c8fc0, x=<optimized
> out>,
>     y=<optimized out>, z=<optimized out>, n=1) at addadd_n.c:50
> #2  0x0000000100425fb6 in main () at t-addadd_n.c:58
> 
> apparently coming from add_n.as.
> If someone sees something wrong in the asm files, I have no experience
> with them.

Ok, I think I got it.
The asm code in the x86_64 dir and subdirs expects System V AMD64 ABI for 
argument passing (so first int or pointer in rdi and so on), but of 
course on win64 the convention is different so this is fundamentally 
incompatible.

Now there is also a x86_64w dir for windows assembly but yasm does not 
like its syntax.
I'll be looking into that.


--
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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]