Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#8089 closed defect (duplicate)

ecl 9.10.2-20091105cvs.p1 faiils to build on Open Solaris x64

Reported by: drkirkby Owned by: drkirkby
Priority: major Milestone: sage-duplicate/invalid/wontfix
Component: porting: Solaris Keywords:
Cc: jas Merged in:
Authors: David Kirkby Reviewers:
Report Upstream: None of the above - read trac for reasoning. Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description

Build environment

  • Sun Ultra 27 3.33 GHz Intel W3580 Xeon. Quad core. 8 threads. 12 GB RAM
  • OpenSolaris 2009.06 snv_111b X86
  • Sage 4.3.1 (with a few packages hacked to work on 64-bit)
  • gcc 4.3.4 configured with Sun linker and GNU assembler from binutils version 2.20.
  • 64-bit build. SAGE64 was set to yes, plus various other tricks to get -m64 into packages.

The problem

This looks like an assembly code issue.

/ecl-9.10.2-20091105cvs.p1/src/src/c/arch/ffi_x86.d -> ffi_x86.c
gcc -DECLDIR="\"/export/home/drkirkby/sage-4.3.1/local/lib/ecl-9.10.2\"" -I. -I/export/home/drkirkby/sage-4.3.1/spkg/build/ecl-9.10.2-20091105cvs.p1/src/build -I/export/home/drkirkby/sage-4.3.1/spkg/build/ecl-9.10.2-20091105cvs.p1/src/src/c -I../ecl/gc -DECL_API -DECL_NO_LEGACY   -I/export/home/drkirkby/sage-4.3.1/local/include  -O2  -m64  -g  -Wall  -fPIC  -Dsun4sol2 -c -o ffi_x86.o ffi_x86.c
/var/tmp//ccvhai7u.s: Assembler messages:
/var/tmp//ccvhai7u.s:49: Error: suffix or operands invalid for `mov'
/var/tmp//ccvhai7u.s:51: Error: suffix or operands invalid for `mov'
/var/tmp//ccvhai7u.s:136: Error: suffix or operands invalid for `mov'
make[4]: *** [ffi_x86.o] Error 1
make[4]: Leaving directory `/export/home/drkirkby/sage-4.3.1/spkg/build/ecl-9.10.2-20091105cvs.p1/src/build/c'
make[3]: *** [libeclmin.a] Error 2
make[3]: Leaving directory `/export/home/drkirkby/sage-4.3.1/spkg/build/ecl-9.10.2-20091105cvs.p1/src/build'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/export/home/drkirkby/sage-4.3.1/spkg/build/ecl-9.10.2-20091105cvs.p1/src'
Failed to build ECL ... exiting

real	0m32.626s
user	0m21.119s
sys	0m10.626s
sage: An error occurred while installing ecl-9.10.2-20091105cvs.p1

Possible solution

I note from the ECL mailing list, that this option to configure might fix this, though it might need a later CVS snapshot.

# --with-dffi=no is required to bypass inline assembly errors

Attachments (1)

disable-assembly-code-on-OpenSolaris.patch (1.5 KB) - added by drkirkby 11 years ago.
Mercurial patch to disable assembly code on OpenSolaris x64

Download all attachments as: .zip

Change History (8)

comment:1 Changed 11 years ago by drkirkby

  • Authors set to David Kirkby
  • Status changed from new to needs_review

The latest version of Sage has ECL 10.2.1. Whilst the problem observed above still exists, the configure option

--with-dffi=no

is implemented in this version of ECL.

A new spkg which resolves this problem by adding that option can be found at:

http://boxen.math.washington.edu/home/kirkby/patches/ecl-10.2.1.p0.spkg

All I needed to do was add this bit of code:

if [ "x`uname -rsm`" = "xSunOS 5.11 i86pc" ] && [ "x$SAGE64" = xyes ]  ; then
   # Need to add --with-dffi=no to disable assembly code on OpenSolaris x64. 
   # This may be needed for other variants of Solaris, but for now at least
   # the option is only given if all the following are true
   # 1) OpenSolaris (SunOS 5.11)
   # 2) Intel or AMD CPU 
   # 3) 64-bit build
   ./configure --prefix=$SAGE_LOCAL --with-dffi=no
else
   ./configure --prefix=$SAGE_LOCAL 
fi

to ensure the option is only given on OpenSolaris (SunOS 5.11) with an Intel/AMD CPU if built in 64-bit mode. Whether the option would be needed on Solaris 10, or with SPARC processors I don't know. So for now it is applied in very specific circumstances.

With that configure option added, ECL then builds properly.

make[1]: Leaving directory `/export/home/drkirkby/sage-4.4.2/spkg/build/ecl-10.2.1.p0/src/build'

real	1m41.880s
user	1m26.518s
sys	0m14.183s
Successfully installed ecl-10.2.1.p0

Changed 11 years ago by drkirkby

Mercurial patch to disable assembly code on OpenSolaris x64

comment:2 Changed 11 years ago by drkirkby

  • Status changed from needs_review to needs_work

This needs to be closed, not reviewed. I realised I have already got positive review for a later version of ECL, which dod not need this fix - see #8951.

comment:3 Changed 11 years ago by drkirkby

  • Resolution set to fixed
  • Status changed from needs_work to closed

comment:4 Changed 11 years ago by drkirkby

  • Resolution fixed deleted
  • Status changed from closed to new

I was wrong to close this, as the issues are not incorporated in the 10.4.1 package. I'm reopening this.

comment:5 Changed 11 years ago by drkirkby

#9264 Solves this issue, and several others related to ECL, so when #9264 is merged (it already has positive review), this issue will be resolved anyway.

Dave

comment:6 Changed 11 years ago by rlm

  • Resolution set to duplicate
  • Status changed from new to closed

comment:7 Changed 11 years ago by rlm

  • Milestone changed from sage-4.5 to sage-duplicate/invalid/wontfix
Note: See TracTickets for help on using tickets.