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.