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.