#17806: MPIR fails to build on 32-bit Linux with SAGE_FAT_BINARY=yes
-------------------------------------------------+-------------------------
       Reporter:  vbraun                         |        Owner:
           Type:  defect                         |       Status:  new
       Priority:  blocker                        |    Milestone:  sage-6.6
      Component:  packages: standard             |   Resolution:
       Keywords:                                 |    Merged in:
        Authors:                                 |    Reviewers:
Report Upstream:  Reported upstream. Developers  |  Work issues:
  acknowledge bug.                               |       Commit:
         Branch:                                 |     Stopgaps:
   Dependencies:                                 |
-------------------------------------------------+-------------------------

Comment (by leif):

 Ok, I ''think^TM^'' I do have an (initial, at least) fix now:

 {{{
 #!diff
 --- mpir-2.7.0-alpha12/mpn/x86/fat/fat.c.orig   2014-09-14
 21:59:13.000000000 +0200
 +++ mpir-2.7.0-alpha12/mpn/x86/fat/fat.c        2015-02-20
 20:16:13.909300216 +0100
 @@ -37,6 +37,8 @@
  long __gmpn_cpuid __GMP_PROTO ((char dst[12], int id));

  struct cpuvec_t __gmpn_cpuvec = {
 +  __MPN(add_err1_n_init),
 +  __MPN(add_err2_n_init),
    __MPN(add_n_init),
    __MPN(addmul_1_init),
    __MPN(copyd_init),
 @@ -55,11 +57,14 @@
    __MPN(modexact_1c_odd_init),
    __MPN(mul_1_init),
    __MPN(mul_basecase_init),
 +  __MPN(mulmid_basecase_init),
    __MPN(preinv_divrem_1_init),
    __MPN(preinv_mod_1_init),
    __MPN(redc_1_init),
    __MPN(rshift_init),
    __MPN(sqr_basecase_init),
 +  __MPN(sub_err1_n_init),
 +  __MPN(sub_err2_n_init),
    __MPN(sub_n_init),
    __MPN(submul_1_init),
    __MPN(sumdiff_n_init),
 @@ -102,6 +107,8 @@
  #define CPUSETUP_nehalem       CPUVEC_SETUP_nehalem
  #define CPUSETUP_westmere      CPUVEC_SETUP_nehalem
  #define CPUSETUP_sandybridge   CPUVEC_SETUP_nehalem
 +#define CPUSETUP_ivybridge     CPUVEC_SETUP_nehalem
 +#define CPUSETUP_haswell       CPUVEC_SETUP_nehalem
  #define CPUSETUP_atom
 CPUVEC_SETUP_p6;CPUVEC_SETUP_p6_mmx;CPUVEC_SETUP_p6_p3mmx
  #define CPUSETUP_nano
 CPUVEC_SETUP_p6;CPUVEC_SETUP_p6_mmx;CPUVEC_SETUP_p6_p3mmx
  #define CPUSETUP_pentium4
 CPUVEC_SETUP_pentium4;CPUVEC_SETUP_pentium4_mmx;CPUVEC_SETUP_pentium4_sse2
 @@ -116,6 +123,7 @@
  #define CPUSETUP_k102
 
CPUVEC_SETUP_k7;CPUVEC_SETUP_k7_mmx;CPUVEC_SETUP_k7_mmx_k8;CPUVEC_SETUP_k7_mmx_k8_k10;CPUVEC_SETUP_k7_mmx_k8_k10_k102
  #define CPUSETUP_k103
 
CPUVEC_SETUP_k7;CPUVEC_SETUP_k7_mmx;CPUVEC_SETUP_k7_mmx_k8;CPUVEC_SETUP_k7_mmx_k8_k10;CPUVEC_SETUP_k7_mmx_k8_k10_k102
  #define CPUSETUP_bulldozer
 
CPUVEC_SETUP_k7;CPUVEC_SETUP_k7_mmx;CPUVEC_SETUP_k7_mmx_k8;CPUVEC_SETUP_k7_mmx_k8_k10;CPUVEC_SETUP_k7_mmx_k8_k10_k102
 +#define CPUSETUP_piledriver
 
CPUVEC_SETUP_k7;CPUVEC_SETUP_k7_mmx;CPUVEC_SETUP_k7_mmx_k8;CPUVEC_SETUP_k7_mmx_k8_k10;CPUVEC_SETUP_k7_mmx_k8_k10_k102
  #define CPUSETUP_bobcat
 
CPUVEC_SETUP_k7;CPUVEC_SETUP_k7_mmx;CPUVEC_SETUP_k7_mmx_k8;CPUVEC_SETUP_k7_mmx_k8_k10;CPUVEC_SETUP_k7_mmx_k8_k10_k102
  #define CPUSETUP_viac3         do{}while(0)
  #define CPUSETUP_viac32                do{}while(0)
 }}}

 Works for me (i.e., builds and passes `make check`) on x86 as well as
 x86_64 with `ABI=32`.

 Feel free to create an "updated spkg" / Sage patch from that (presumably
 by simply adding the patch to the spkg "metadata") -- I won't soon.

--
Ticket URL: <http://trac.sagemath.org/ticket/17806#comment:8>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

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

Reply via email to