#9034: flintqs builds as 32-bit despite SAGE64=yes on OpenSolaris x64
------------------------+---------------------------------------------------
Reporter: drkirkby | Owner: drkirkby
Type: defect | Status: new
Priority: major | Milestone: sage-4.4.3
Component: solaris | Keywords:
Author: | Upstream: Not yet reported upstream; Will do
shortly.
Reviewer: | Merged:
Work_issues: |
------------------------+---------------------------------------------------
== 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.4.2
* gcc 4.4.4
== How gcc 4.4.4 was configured ==
Since the configuration of gcc is fairly critical on !OpenSolaris, here's
how it was built.
{{{
drkir...@hawk:~/sage-4.4.2$ gcc -v
Using built-in specs.
Target: i386-pc-solaris2.11
Configured with: ../gcc-4.4.4/configure --prefix=/usr/local/gcc-4.4.4
--with-as=/usr/local/binutils-2.20/bin/as --with-ld=/usr/ccs/bin/ld
--with-gmp=/usr/local --with-mpfr=/usr/local
Thread model: posix
gcc version 4.4.4 (GCC)
}}}
gcc 4.3.4 was failing to build iconv on !OpenSolaris x64, suggesting it
may be essential to have a very recent gcc in order to build Sage on
!OpenSolaris.
== How the Sage build was attempted ==
* 64-bit build. SAGE64 was set to "yes"
* #9008 update zlib to latest upstream release to allow a 64-bit library
to be built.
* #9009 update mercurial spkg to build 64-bit.
* #7982 update sage_fortran so it can build 64-bit binaries.
* Run 'make -k' to find as many issues as possible quickly on
!OpenSolaris - see #9026 for a list of the issues known to date.
== The problem with flintqs ==
{{{
flintqs-20070817.p4/src/._TonelliShanks.h
flintqs-20070817.p4/src/TonelliShanks.h
Finished extraction
****************************************************
Host system
uname -a:
SunOS hawk 5.11 snv_134 i86pc i386 i86pc
****************************************************
****************************************************
CC Version
gcc -v
Using built-in specs.
Target: i386-pc-solaris2.11
Configured with: ../gcc-4.4.4/configure --prefix=/usr/local/gcc-4.4.4
--with-as=/usr/local/binutils-2.20/bin/as --with-ld=/usr/ccs/bin/ld
--with-gmp=/usr/local --with-mpfr=/usr/local
Thread model: posix
gcc version 4.4.4 (GCC)
****************************************************
g++ -ansi -c lprels.c -o lprels.o
-I/export/home/drkirkby/sage-4.4.2/local/include -Wall -Wno-sign-compare
-fomit-frame-pointer -O3
lprels.c: In function ‘FILE* flint_fopen(char*, char*)’:
<snip>
Successfully installed flintqs-20070817.p4
}}}
So no '-m64' flag is added to the g++ command line, so not surprisingly
'flintqs' does not build as a 64-bit binary. The output from the 'file'
command confirms this:
{{{
drkir...@hawk:~/sage-4.4.2$ file local/bin/QuadraticSieve
local/bin/QuadraticSieve: ELF 32-bit LSB executable 80386 Version 1
[FPU], dynamically linked, not stripped, no debugging information
available
}}}
== The likely reason for the flintqs problem ==
spkg-install has this bit of code:
{{{
if [ `uname -m` = "x86_64" ]; then
$CP makefile.opteron makefile
else
if [ `uname` = "Darwin" -a "$SAGE64" = "yes" ]; then
$CP makefile.osx64 makefile
else
$CP makefile.sage makefile
fi
fi
}}}
A cursory glance would suggest the 'makefile.osx64' would work for
!OpenSolaris, Solaris or most other Unix operating systems, though this
has not been tested yet.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9034>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.