Thanks. Unfortunately, I haven't been able to figure out what is causing 
this.

It looks like your gmp.h is turning either mpn_com or mpn_com_n into 
__gmpn_com_n as it should. It certainly doesn't turn it into ___gmpn_com. 

I have absolutely no idea what could be causing the extra underscore, or 
the com instead of com_n.

Somehow, a header file has to be being picked up from somewhere else that 
is doing the wrong thing.

You could verify that mpir and flint build standalone by downloading 
mpir-2.7.0-alpha (from mpir.org), mpfr-3.1.2 (from mpfr.org) and flint-2.4 
(from flintlib.org).

Untar the files in your home directory.

cd mpir-2.7.0
./configure -- enable-gmpcompat ABI=64
make
make check
cd ../mpfr-3.1.2
./configure --with-gmp-build=/home/xander/mpir-2.7.0
make
cd ../flint2
./configure --with-mpir=/home/xander/mpir-2.7.0 
--with-mpfr=/home/xander/mpfr-3.1.2 ABI=64
make

where I am assuming your home directory is /home/xander. If not, just 
change it to whatever it is.

If all that works, then the issue must surely be sage specific.

I honestly have no idea how this particular issue can happen. After more 
thought, I think the only thing that should matter is gmp.h. And your gmp.h 
looks correct.

Bill.

On Thursday, 5 February 2015 23:18:20 UTC+1, Xander Faber wrote:
>
> attached!
>
> On Thursday, February 5, 2015 at 4:17:26 PM UTC-5, Bill Hart wrote:
>>
>> Can you post sage/local/include/gmp.h here. I can't see how it is getting 
>> the wrong symbol name, under any circumstances.
>>
>> On Thursday, 5 February 2015 22:04:55 UTC+1, Bill Hart wrote:
>>>
>>> Actually, we call mpn_com_n in flint. In flint.h this becomes mpn_com.
>>>
>>> In gmp.h in MPIR this becomes __MPN(com_n) which must be ___gmpn_com_n 
>>> on your machine.
>>>
>>> If headers are included in the reverse order, mpn_com_n becomes directly 
>>> ___gmpn_com_n in gmp.h.
>>>
>>> This is indeed the name of the symbol we export. I can't see why it 
>>> should be looking for the symbol ___gmpn_com, which certainly doesn't exist.
>>>
>>> I don't see why this is happening.
>>>
>>> On Thursday, 5 February 2015 21:50:59 UTC+1, Bill Hart wrote:
>>>>
>>>> I can't shed much light on this.
>>>>
>>>> We do indeed call mpn_com_n from those flint functions. In flint.h 
>>>> mpn_com_n is #defined to mpn_com for compatibility with various versions 
>>>> of 
>>>> MPIR.
>>>>
>>>> The latter becomes xxxmpn_com where xxx can be g, _g, __g or ___g 
>>>> depending on the global symbol prefix on your platform.
>>>>
>>>> On lines 23 and 24 of mpn/generic/com_n.c in MPIR we have
>>>>
>>>> #undef mpn_com_n
>>>> #define mpn_com_n __MPN(com_n)
>>>>
>>>> Who knows what the effect of this is.
>>>>
>>>> But on a core i5, this should all be irrelevant, since for all core2 
>>>> and later Intel processors, mpn/x86_64/core2/com_n.as should be 
>>>> compiled and should use the standard symbol prefix for your system 
>>>> regardless.
>>>>
>>>> I'd be inclined to look at the MPIR build log and see if it detected 
>>>> your processor correctly, or whether it thought it was just a generic 
>>>> x86_64.
>>>>
>>>> Unless your OS kernel is 32 bits somehow. But even in that case, 
>>>> mpn/x86/core2/com_n.asm should take care of it for you.
>>>>
>>>> Bill.
>>>>
>>>> On Tuesday, 3 February 2015 13:33:18 UTC+1, Xander Faber wrote:
>>>>>
>>>>> I was building Sage 6.4 on a Mac Pro 2.6 GHz Intel Core i5. 
>>>>>
>>>>> Tail end of the flint log file:
>>>>>
>>>>>
>>>>>  
>>>>>
>>>>>  CC ../build/fq_zech_poly_factor/../fq_zech_poly_factor.lo 
>>>>>
>>>>>  CXX build/interfaces/NTL-interface.lo 
>>>>>
>>>>> Undefined symbols for architecture x86_64: 
>>>>>
>>>>>  "___gmpn_com", referenced from: 
>>>>>
>>>>>  _fmpz_bit_pack in fmpz.lo 
>>>>>
>>>>>  _fmpz_bit_unpack in fmpz.lo 
>>>>>
>>>>> ld: symbol(s) not found for architecture x86_64 
>>>>>
>>>>> collect2: error: ld returned 1 exit status 
>>>>>
>>>>> make[4]: *** [libflint.dylib] Error 1 
>>>>>
>>>>> make[3]: *** [library] Error 2 
>>>>>
>>>>> Error: Failed to build FLINT shared library. 
>>>>>
>>>>>
>>>>>  
>>>>>
>>>>> real 3m30.826s 
>>>>>
>>>>> user 2m32.253s 
>>>>>
>>>>> sys 0m51.078s 
>>>>>
>>>>>
>>>>> ************************************************************************ 
>>>>>
>>>>> Error installing package flint-2.4.4 
>>>>>
>>>>>
>>>>> ************************************************************************ 
>>>>>
>>>>> Please email sage-devel (http://groups.google.com/group/sage-devel) 
>>>>>
>>>>> explaining the problem and including the relevant part of the log 
>>>>> file 
>>>>>
>>>>>  /Users/xander/sage/logs/pkgs/flint-2.4.4.log 
>>>>>
>>>>> Describe your computer, operating system, etc. 
>>>>>
>>>>> If you want to try to fix the problem yourself, *don't* just cd to 
>>>>>
>>>>> /Users/xander/sage/local/var/tmp/sage/build/flint-2.4.4 and type 'make' 
>>>>> or whatever is appropriate. 
>>>>>
>>>>> Instead, the following commands setup all environment variables 
>>>>>
>>>>> correctly and load a subshell for you to debug the error: 
>>>>>
>>>>>  (cd '/Users/xander/sage/local/var/tmp/sage/build/flint-2.4.4' && '/
>>>>> Users/xander/sage/sage' --sh) 
>>>>>
>>>>> When you are done debugging, you can type "exit" to leave the 
>>>>> subshell. 
>>>>>
>>>>>
>>>>> ************************************************************************
>>>>>
>>>>> Any thoughts on what's going on?
>>>>>
>>>>>

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

Reply via email to