Opened 10 years ago

Last modified 10 years ago

#12954 closed defect

Make MPIR support SAGE_FAT_BINARY on all systems — at Version 10

Reported by: Volker Braun Owned by: tbd
Priority: blocker Milestone: sage-5.0.1
Component: packages: standard Keywords: sd40.5
Cc: Jeroen Demeyer, Leif Leonhardy, Jean-Pierre Flori, Mike Hansen, Karl-Dieter Crisman, Volker Braun Merged in:
Authors: Jeroen Demeyer Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by Jeroen Demeyer)

The OSX binary sage-5.0-OSX-64bit-10.6-x86_64-Darwin.dmg dies in MPFR on Core 2 Duo processors. This is because the MPIR spkg only checks SAGE_FAT_BINARY on Linux systems.

Reported on https://groups.google.com/d/topic/sage-support/IfJCisKo7Ao/discussion

spkg: http://boxen.math.washington.edu/home/jdemeyer/spkg/mpir-2.4.0.p4.spkg

mpir-2.4.0.p4 (Jeroen Demeyer, 18 May 2012)

  • Trac #12954: when SAGE_FAT_BINARY=yes is specified on a system which doesn't support --enable-fat, instead build for a generic CPU by removing all -march= and -mpcu= CFLAGS.
  • Disable SAGE_FAT_BINARY when bootstrapping GCC.
  • Rename MPIR_EXTRA_OPTS to MPIR_CONFIGURE.
  • Add configure options directly to MPIR_CONFIGURE, no longer use SAGE_CONF_OPTS for this.
  • When user specifies CFLAGS, append them to MPIR's flags instead of completely replacing MPIR's flags.
  • Remove $default_cflags and get_processor_specific_cflags().

Change History (10)

comment:1 Changed 10 years ago by Volker Braun

Cc: Jeroen Demeyer Leif Leonhardy Jean-Pierre Flori Mike Hansen added

comment:2 Changed 10 years ago by Karl-Dieter Crisman

Cc: Karl-Dieter Crisman added

comment:3 Changed 10 years ago by Jeroen Demeyer

Can you disassemble to see which instruction failed?

This MPFR binary was built with

-Wall -Wmissing-prototypes -Wpointer-arith -O2 -m64 -march=corei7 -mtune=corei7 

MPIR was built with

-O2 -m64 -march=corei7 -mtune=corei7

So, SAGE_FAT_BINARY indeed doesn't work as it should.

Last edited 10 years ago by Jeroen Demeyer (previous) (diff)

comment:4 in reply to:  3 Changed 10 years ago by Karl-Dieter Crisman

Can you disassemble to see which instruction failed?

If you tell me how to do that (explicit commands) I have the offending binary on the right CPU and could at least get you a dump of the info that came out.

comment:5 Changed 10 years ago by Jeroen Demeyer

Component: buildpackages
Owner: changed from Georg S. Weber to tbd
Priority: majorblocker

comment:6 Changed 10 years ago by Jeroen Demeyer

Description: modified (diff)
Summary: MPFR illegal instruction in OSX binariesMake MPIR support SAGE_FAT_BINARY on all systems

The problem is with MPIR (as MPFR simply uses MPIR's flags). The current MPIR spkg only checks SAGE_FAT_BINARY on Linux systems.

comment:7 Changed 10 years ago by Jeroen Demeyer

Description: modified (diff)

comment:8 Changed 10 years ago by Jeroen Demeyer

Authors: Jeroen Demeyer
Description: modified (diff)

comment:9 Changed 10 years ago by Jeroen Demeyer

Description: modified (diff)

comment:10 Changed 10 years ago by Jeroen Demeyer

Description: modified (diff)
Milestone: sage-5.1sage-5.0.1
Status: newneeds_review
Note: See TracTickets for help on using tickets.