Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#6883 closed defect (fixed)

[with spkg, positive review] ECL 9.8.4 fails to build in 64-bit mode, OS X 10.5.8

Reported by: mvngu Owned by: mabshoff
Priority: critical Milestone: sage-4.1.2
Component: packages: standard Keywords: os x ecl cvs
Cc: mvngu Merged in: Sage 4.1.2.alpha4
Authors: David Kirkby, Minh Van Nguyen Reviewers: John Palmieri, William Stein
Report Upstream: Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by was)

I got the following failure when compiling Sage 4.1.2.alpha0:

checking for __gmpz_init in -lgmp... no
configure: error: System gmp library requested but not found.
Failed to configure ECL ... exiting

real    0m3.427s
user    0m1.095s
sys     0m2.049s
sage: An error occurred while installing ecl-9.8.4
Please email sage-devel http://groups.google.com/group/sage-devel
explaining the problem and send the relevant part of
of /scratch/mvngu/sandbox-64/sage-4.1.2.alpha0/install.log.  Describe your computer, operating system, etc.
If you want to try to fix the problem, yourself *don't* just cd to
/scratch/mvngu/sandbox-64/sage-4.1.2.alpha0/spkg/build/ecl-9.8.4 and type 'make'.
Instead type "/scratch/mvngu/sandbox-64/sage-4.1.2.alpha0/sage -sh"
in order to set all environment variables correctly, then cd to
/scratch/mvngu/sandbox-64/sage-4.1.2.alpha0/spkg/build/ecl-9.8.4
(When you are done debugging, you can type "exit" to leave the
subshell.)
make[1]: *** [installed/ecl-9.8.4] Error 1

real    0m7.189s
user    0m2.507s
sys     0m3.197s
Error building Sage.

This was on Mac OS X 10.5.8 (bsd.math.washington.edu), compiling in 64-bit mode.

BEFORE including in Sage, please see trac #6971

Attachments (2)

ecl-log.txt (252.2 KB) - added by drkirkby 12 years ago.
Log file of failed ECL build on OS X 64-bit.
trac_6883-proper-display.patch (679 bytes) - added by mvngu 12 years ago.
based on Sage 4.1.2.alpha1

Download all attachments as: .zip

Change History (14)

Changed 12 years ago by drkirkby

Log file of failed ECL build on OS X 64-bit.

comment:1 Changed 12 years ago by drkirkby

I'm not surprised you got the failure, as I had updated the spkg after you tested it. That was my fault.

But I copiled the version of the .spkg from Alex's directory, which is where you said you copied yours from, and it still failed for me.

I have created an updated one at

http://sage.math.washington.edu/home/kirkby/Solaris-fixes/ecl-9.8.4.p0/ecl-9.8.4.p0.spkg

which fixes the issue you had (not finding the gmp library), but it still fails to build for me.

I also downloaded the one from Alex's directory, which is where you copied yours from. That does not build for me either. So I'm somewhat surprised you managed to build this anyway.

Dave

comment:2 Changed 12 years ago by mvngu

  • Summary changed from ECL 9.8.4 fails to build in 64-bit mode, OS X 10.5.8 to [with spkg, needs review] ECL 9.8.4 fails to build in 64-bit mode, OS X 10.5.8

One of the problems is the following line in the file spkg-install of the ECL spkg:

./configure --prefix=$SAGE_LOCAL --with-system-gmp --enable-boehm=system

Deleting the argument --with-system-gmp and the build would go OK, but then it would fail on t2.math. Deleting --enable-boehm=system and the build would go fine. I have created an updated spkg at

http://sage.math.washington.edu/home/mvngu/release/spkg/standard/ecl-9.8.4.p0.spkg

whose file spkg-install now only has this configuration line:

./configure --prefix=$SAGE_LOCAL

I also did some general clean up such as removing the empty directory build and reformatting comments so that they are no more than 80 characters in length. I'm now building Sage 4.1.2.alpha0 from scratch with the above updated ECL package. The machines sage.math, mod.math, and geom.math are all near capacity so I have been experiencing difficulty getting Sage to compile on those machines since ATLAS complained about errors while tuning itself. Here are the platforms on which I'm currently compiling Sage 4.1.2.alpha0 from scratch with my updated ecl-9.8.4.p0.spkg:

  • bsd.math in 32-bit mode
  • bsd.math in 64-bit mode
  • t2.math
  • cicero on SkyNet? (x86 Fedora 9 with GCC 4.4.1)
  • eno on SkyNet? (x86_64 Fedora 9 with GCC 4.4.1)
  • lena on SkyNet? (x86_64 RHEL Server 5.3 with GeForce? GPUs and GCC 4.4.1)

For bsd.math, I have copied fortran-OSX64-20090120.spkg and ecl-9.8.4.p0.spkg to the directory /Users/mvngu/apps/. Here are the steps I took to start building Sage 4.1.2.alpha0 in 64-bit mode with ecl-9.8.4.p0.spkg:

[mvngu@bsd ~]$ pwd
/Users/mvngu
[mvngu@bsd ~]$ tar -xf apps/sage-4.1.2.alpha0.tar -C /scratch/mvngu/sandbox-64/alpha/
[mvngu@bsd ~]$ cd /scratch/mvngu/sandbox-64/alpha/sage-4.1.2.alpha0/
[mvngu@bsd sage-4.1.2.alpha0]$ rm -rf spkg/standard/fortran-20071120.p5.spkg
[mvngu@bsd sage-4.1.2.alpha0]$ cp -rf /Users/mvngu/apps/fortran-OSX64-20090120.spkg spkg/standard/
[mvngu@bsd sage-4.1.2.alpha0]$ rm -rf spkg/standard/ecl-9.8.4.spkg 
[mvngu@bsd sage-4.1.2.alpha0]$ cp -rf /Users/mvngu/apps/ecl-9.8.4.p0.spkg spkg/standard/
[mvngu@bsd sage-4.1.2.alpha0]$ export SAGE64=yes
[mvngu@bsd sage-4.1.2.alpha0]$ make

When make terminates, it would report success. But actually if you then start Sage with

./sage -br main

you would get many errors. You now need to open the file

SAGE_ROOT/devel/sage-main/sage/graphs/all.py

and comment out the line

from sage.graphs.cliquer import *

Then start make again:

make

When it terminates, start Sage again with

./sage -br main

This time, Sage should load fine without any errors.

comment:3 follow-up: Changed 12 years ago by mvngu

David Kirkby's updated spkg with changes committed in his name:

http://sage.math.washington.edu/home/mvngu/release/spkg/standard/ecl-9.8.4.p0.spkg

comment:4 in reply to: ↑ 3 Changed 12 years ago by mvngu

Replying to mvngu:

David Kirkby's updated spkg with changes committed in his name:

http://sage.math.washington.edu/home/mvngu/release/spkg/standard/ecl-9.8.4.p0.spkg

kirkby's 4th attempt at an updated spkg is up at this same place. All changes have been committed in this name.

comment:5 Changed 12 years ago by jhpalmieri

With the most recent spkg ("kirby's 4th attempt"), I get a failure right after configuring in 64-bit OS X:

Configuration complete. To build ECL, issue make in this directory.
cd build; make
cp /Applications/sage_builds/sage-4.1.2.alpha0-64bit/spkg/build/ecl-9.8.4.p0/src/src/util/gdbinit .gdbinit
if (echo c gc gmp | grep gmp); then \
	  cd gmp && make install && \
	  cd .. && mv include/gmp.h ecl/ && rmdir include &&  \
	  mv ./libgmp.a ./libeclgmp.a; \
	fi
c gc gmp
make[2]: *** No rule to make target `install'.  Stop.
make[1]: *** [libeclgmp.a] Error 2

It seems to build successfully in 32-bit OS X.

After executing "export MAKE='make -j2' ", it fails in 32-bit OS X:

----------------------------------------------------------------------
Libraries have been installed in:
   /Applications/sage_builds/sage-4.1.2.alpha0/spkg/build/ecl-9.8.4.p0/src/build

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `DYLD_LIBRARY_PATH' environment variable
     during execution

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
cd c; make -j2
make[2]: warning: -jN forced in submake: disabling jobserver mode.
cat /Applications/sage_builds/sage-4.1.2.alpha0/spkg/build/ecl-9.8.4.p0/src/src/c/symbols_list.h | \
	sed -e 's%{\([A-Z ]*.*".*"\),[^,]*,[ ]*NULL,.*}%{\1,NULL}%g' \
	    -e 's%{\([A-Z ]*.*".*"\),[^,]*,[ ]*\([^,]*\),.*}%{\1,"\2"}%g' \
	    -e 's%{NULL.*%{NULL,NULL}};%' > /Applications/sage_builds/sage-4.1.2.alpha0/spkg/build/ecl-9.8.4.p0/src/src/c/symbols_list2.h
if test -f ../CROSS-DPP ; then ../CROSS-DPP /Applications/sage_builds/sage-4.1.2.alpha0/spkg/build/ecl-9.8.4.p0/src/src/c/main.d main.c ; else ./dpp /Applications/sage_builds/sage-4.1.2.alpha0/spkg/build/ecl-9.8.4.p0/src/src/c/main.d main.c ; fi
/bin/sh: ./dpp: No such file or directory
make[2]: *** [main.c] Error 127
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [libeclmin.a] Error 2
make: *** [all] Error 2

comment:6 Changed 12 years ago by drkirkby

  • Authors set to David Kirkby, Minh Nguyen
  • Cc mvngu added
  • Keywords os x ecl cvs added

This is now solved I believe. I have tested a revised .spkg on

  • 32-bit OS X (bsd.math)
  • 64-bit OS X (bsd.math)
  • 32-bit Solaris (Sun of mine)
  • 64-bit Solaris (Sun of mine)
  • 64-bit linux (sage.math)

The basic problem was that ecl 9.8.4 would not build on OS X in 64-bit mode. That is acknowledged by the main ECL developer. Hence no changes to spkg-install alone will solve that.

This is a package I created from a CVS snapshot of ECL.

http://sage.math.washington.edu/home/kirkby/Solaris-fixes/ecl-9.8.4-cvs-13th-Sept-2009-3rd-try/ecl-9.8.4-cvs-13th-Sept-2009.spkg

The snapshot was taken on 13th September (as indicated by the name). It incorporates changes by Minh Nguyen too, so now the configure line is simply:

./configure --prefix=$SAGE_LOCAL

Here's the build results from 64-bit OS X (the subject of this ticket), but it also works on the other systems I have tried it on.

Extracting package /Users/kirkby/64/sage-4.1.2.alpha1/spkg/standard/ecl-9.8.4-cvs-13th-Sept-2009.spkg ...
-rw-r--r-- 1 kirkby staff 4797805 Sep 15 00:08 /Users/kirkby/64/sage-4.1.2.alpha1/spkg/standard/ecl-9.8.4-cvs-13th-Sept-2009.spkg
ecl-9.8.4-cvs-13th-Sept-2009/
ecl-9.8.4-cvs-13th-Sept-2009/build/
ecl-9.8.4-cvs-13th-Sept-2009/build/build/
<SNIP>
ecl-9.8.4-cvs-13th-Sept-2009/spkg-install
ecl-9.8.4-cvs-13th-Sept-2009/ecl-9.8.4-cvs-13th-Sept-2009.spkg
Finished extraction
****************************************************
Host system
uname -a:
Darwin bsd.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386 i386 MacPro1,1 Darwin
****************************************************
****************************************************
CC Version
gcc -v
Using built-in specs.
Target: i686-apple-darwin9
Configured with: /var/tmp/gcc/gcc-5493~1/src/configure --disable-checking -enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.0/ --with-gxx-include-dir=/include/c++/4.0.0 --with-slibdir=/usr/lib --build=i686-apple-darwin9 --with-arch=apple --with-tune=generic --host=i686-apple-darwin9 --target=i686-apple-darwin9
Thread model: posix
gcc version 4.0.1 (Apple Inc. build 5493)
****************************************************
Building a 64-bit version of ECL
Code will be built with debugging information present. Set 'SAGE_DEBUG' to 'no' if you don't want that.
No Fortran compiler has been defined. This is not normally a problem.
Using CC=gcc
Using CXX=g++
Using FC=
Using F77=
Using SAGE_FORTRAN=
Using SAGE_FORTRAN_LIB=
The following environment variables will be exported
Using CFLAGS= -O2  -m64  -g  -Wall
Using CXXFLAGS= -O2  -m64  -g  -Wall
Using FCFLAGS= -O2  -m64  -g  -Wall
Using F77FLAGS= -O2  -m64  -g  -Wall
Using CPPFLAGS= -I/Users/kirkby/64/sage-4.1.2.alpha1/local/include
Using LDFLAGS= -L/Users/kirkby/64/sage-4.1.2.alpha1/local/lib -m64
Using ABI=64
configure scripts and/or makefiles might override these later

Creating directory `build'
Switching to directory `build' to continue configuration.
checking build system type... pentium3-apple-darwin9.8.0
checking host system type... pentium3-apple-darwin9.8.0
checking for gcc... gcc
<SNIP>
for i in *.asd; do /Users/mvngu/usr/bin/install -c -m 644 ${i} /Users/kirkby/64/sage-4.1.2.alpha1/local/lib/ecl-9.8.4/; done
for i in c/dpp ecl_min `cat MODULES`; do \
          case $i in \
            *.fas) /Users/mvngu/usr/bin/install -c $i /Users/kirkby/64/sage-4.1.2.alpha1/local/lib/ecl-9.8.4/;; \
            *) /Users/mvngu/usr/bin/install -c -m 644 $i /Users/kirkby/64/sage-4.1.2.alpha1/local/lib/ecl-9.8.4/;; \
          esac \
        done

real    2m34.619s
user    1m50.851s
sys     0m41.021s
Successfully installed ecl-9.8.4-cvs-13th-Sept-2009
Now cleaning up tmp files.
Making Sage/Python scripts relocatable...
Making script relocatable
Finished installing ecl-9.8.4-cvs-13th-Sept-2009.spkg

comment:7 Changed 12 years ago by mvngu

Here is David Kirkby's updated ECL package with all changes checked in his name:

http://sage.math.washington.edu/home/mvngu/release/spkg/standard/ecl-9.8.4-cvs-13th-Sept-2009.spkg

I deleted the empty directory "build" and the file "ecl-9.8.4-cvs-13th-Sept-2009.spkg", which is about 46 bytes. As I'm listed as an author, someone other than David and myself should review this ticket. A thorough test would be to compile the latest alpha release of Sage from source with this updated ECL package, on various platforms including t2.

comment:8 Changed 12 years ago by jhpalmieri

I didn't build from scratch: just "sage -f ecl...spkg" followed by "sage -f spkg/standard/maxima...spkg". This is with Sage 4.1.2.alpha1.

On 32-bit Mac OS X, compiled successfully. One nonrepeatable test failure: "sage -t -long "devel/sage/sage/graphs/graph_plot.py". I'm not going to worry about it, because it passes tests when I do it again.

On 64-bit Mac OS X, compiled successfully. Apart from the test failures because of the lack of cliquer, one failure:

sage -t -long "devel/sage/sage/interfaces/maxima.py"        
**********************************************************************
File "/Applications/sage_builds/sage-4.1.2.alpha1-64bit/devel/sage/sage/interfaces/maxima.py", line 2108:
    sage: list(v)
Expected:
    [0, x, 2*x^2, 3*x^3, 4*x^4, 5*x^5]
Got:
    [0, x, , 3*x^3, 4*x^4, 5*x^5]
**********************************************************************

Is this a serious issue, or just something to do with the new version of maxima? Why do I only get it in a 64-bit build?

Changed 12 years ago by mvngu

based on Sage 4.1.2.alpha1

comment:9 Changed 12 years ago by mvngu

  • Authors changed from David Kirkby, Minh Nguyen to David Kirkby, Minh Van Nguyen

Replying to jhpalmieri:

Is this a serious issue, or just something to do with the new version of maxima?

It's an issue with data representation. On the surface you see nothing wrong, even on sage.math:

sage: v = maxima('create_list(i*x^i,i,0,5)')
sage: L = list(v)
sage: [e for e in L]
[0, x, 2*x^2, 3*x^3, 4*x^4, 5*x^5]
sage: L
[0, x, 2*x^2, 3*x^3, 4*x^4, 5*x^5]

Each member of the list L is a MaximaElement object. So we should use the method _sage_() to convert these objects to Sage objects:

sage: [type(e) for e in L]
[<class 'sage.interfaces.maxima.MaximaElement'>,
 <class 'sage.interfaces.maxima.MaximaElement'>,
 <class 'sage.interfaces.maxima.MaximaElement'>,
 <class 'sage.interfaces.maxima.MaximaElement'>,
 <class 'sage.interfaces.maxima.MaximaElement'>,
 <class 'sage.interfaces.maxima.MaximaElement'>]
sage: [e._sage_() for e in L]
[0, x, 2*x^2, 3*x^3, 4*x^4, 5*x^5]

Displaying MaximaElement objects as is can be dangerous because sometimes they have escape sequences, which result in unexpected behaviours:

sage: [str(e) for e in L]

['                                       0',
 '                                       x',
 '                                        2\r\n                                     2 x',
 '                                        3\r\n                                     3 x',
 '                                        4\r\n                                     4 x',
 '                                        5\r\n                                     5 x']
sage: [latex(e) for e in L]
[0, x, 2\,x^2, 3\,x^3, 4\,x^4, 5\,x^5]

The patch trac_6883-proper-display.patch should fix the doctest problem on 64-bit OS X 10.5.

comment:10 Changed 12 years ago by was

  • Description modified (diff)
  • Summary changed from [with spkg, needs review] ECL 9.8.4 fails to build in 64-bit mode, OS X 10.5.8 to [with spkg, positive review] ECL 9.8.4 fails to build in 64-bit mode, OS X 10.5.8

comment:11 Changed 12 years ago by mvngu

  • Merged in set to Sage 4.1.2.alpha3
  • Resolution set to fixed
  • Reviewers set to John Palmieri, William Stein
  • Status changed from new to closed

comment:12 Changed 12 years ago by mvngu

  • Merged in changed from Sage 4.1.2.alpha3 to Sage 4.1.2.alpha4

There is no 4.1.2.alpha3. Sage 4.1.2.alpha3 was William Stein's release for working on making the notebook a standalone package.

Note: See TracTickets for help on using tickets.