Sage 5.1 compilation problems (iconv-1.13.1.p3)

131 views
Skip to first unread message

Rob McMahon

unread,
Jul 13, 2012, 7:08:36 AM7/13/12
to sage-...@googlegroups.com
Trying to compile sage-5.1 on Solaris 10 5/09 s10s_u7wos_08 SPARC, gcc (GCC) 4.4.2.  iconv-1.13.1.p3 won't compile with the error:

libtool: link: gcc -g -O2 iconv.o -o iconv  ../srclib/libicrt.a /home/unit/cu/dcv/src/local/sage-5.1/local/lib/libiconv.so /usr/local/gnu/lib/libintl.so -L/usr/local/lib /usr/local/gnu/lib/libiconv.so -lc -R/home/unit/cu/dcv/src/local/sage-5.1/local/lib -R/usr/local/gnu/lib -R/home/unit/cu/dcv/src/local/sage-5.1/local/lib -R/usr/local/gnu/lib
ld: fatal: recording name conflict: file `/home/unit/cu/dcv/src/local/sage-5.1/local/lib/libiconv.so' and file `/usr/local/gnu/lib/libiconv.so' provide identical dependency names: libiconv.so.2  (possible multiple inclusion of the same file)
ld: fatal: File processing errors. No output written to iconv
collect2: ld returned 1 exit status

Note that it is indeed trying to include two versions of libiconv.so, the installed one from /usr/local/gnu/lib, and the one built from within sage.  If it had just used -L/home/unit/cu/dcv/src/local/sage-5.1/local/lib -L/usr/local/gnu/lib -liconv instead, all would have been well.

Relevant parts of the log file:

...
****************************************************
Host system:
SunOS mimosa 5.10 Generic_141444-09 sun4v sparc SUNW,SPARC-Enterprise-T5220 Solaris
****************************************************
C compiler: gcc
C compiler version:
Using built-in specs.
Target: sparc-sun-solaris2.10
Configured with: ../gcc-4.4.2/configure --prefix=/usr/local/gnu --with-gmp=/usr/local
Thread model: posix
gcc version 4.4.2 (GCC)
****************************************************
iconv will be installed as the operating system is Cygwin, HP-UX or Solaris.
These systems either lack iconv, or do not have a sufficiently capable
version of iconv. See:
    http://trac.sagemath.org/sage_trac/ticket/8567
    http://trac.sagemath.org/sage_trac/ticket/9603
...
libtool: link: gcc -g -O2 iconv.o -o iconv  ../srclib/libicrt.a /home/unit/cu/dcv/src/local/sage-5.1/local/lib/libiconv.so /usr/local/g
nu/lib/libintl.so -L/usr/local/lib /usr/local/gnu/lib/libiconv.so -lc -R/home/unit/cu/dcv/src/local/sage-5.1/local/lib -R/usr/local/gnu
/lib -R/home/unit/cu/dcv/src/local/sage-5.1/local/lib -R/usr/local/gnu/lib
ld: fatal: recording name conflict: file `/home/unit/cu/dcv/src/local/sage-5.1/local/lib/libiconv.so' and file `/usr/local/gnu/lib/libi
conv.so' provide identical dependency names: libiconv.so.2  (possible multiple inclusion of the same file)
ld: fatal: File processing errors. No output written to iconv
collect2: ld returned 1 exit status
gmake[3]: *** [install] Error 1
gmake[3]: Leaving directory `/home/unit/cu/dcv/src/local/sage-5.1/spkg/build/iconv-1.13.1.p3/src/src'
gmake[2]: *** [install] Error 2
gmake[2]: Leaving directory `/home/unit/cu/dcv/src/local/sage-5.1/spkg/build/iconv-1.13.1.p3/src'
Error installing iconv

How do I get it to skip this package, and carry on ?  I'm pretty confident the system libiconv.so would work.

Cheers,

Rob

Volker Braun

unread,
Jul 13, 2012, 9:01:04 AM7/13/12
to sage-...@googlegroups.com
I think the only working way to build Sage on SPARC Solaris is to use GCC + Sun ld. You seem to have gcc compiled with the gnu linker, which has various issues on SPARC. See also

Rob McMahon

unread,
Jul 13, 2012, 9:59:45 AM7/13/12
to sage-...@googlegroups.com

On Friday, July 13, 2012 7:08:36 AM UTC-4, Rob McMahon wrote:
Trying to compile sage-5.1 on Solaris 10 5/09 s10s_u7wos_08 SPARC, gcc (GCC) 4.4.2.  iconv-1.13.1.p3 won't compile with the error:

libtool: link: gcc -g -O2 iconv.o -o iconv  ../srclib/libicrt.a /home/unit/cu/dcv/src/local/sage-5.1/local/lib/libiconv.so /usr/local/gnu/lib/libintl.so -L/usr/local/lib /usr/local/gnu/lib/libiconv.so -lc -R/home/unit/cu/dcv/src/local/sage-5.1/local/lib -R/usr/local/gnu/lib -R/home/unit/cu/dcv/src/local/sage-5.1/local/lib -R/usr/local/gnu/lib
ld: fatal: recording name conflict: file `/home/unit/cu/dcv/src/local/sage-5.1/local/lib/libiconv.so' and file `/usr/local/gnu/lib/libiconv.so' provide identical dependency names: libiconv.so.2  (possible multiple inclusion of the same file)
ld: fatal: File processing errors. No output written to iconv
collect2: ld returned 1 exit status

I notice this in .../sage-5.1/spkg/build/iconv-1.13.1.p3/src/src/Makefile

# We cannot link with libintl until libiconv is installed. (When we call
# libtool with arguments "../lib/libiconv.la -lintl", libtool will call ld
# with "../lib/.libs/libiconv.so $libdir/libintl.so $libdir/libiconv.so",
# (remember that $libdir/libintl.la lists $libdir/libiconv.so as a dependency),
# and this gives a fatal linker error on Solaris because the two libiconv.so
# files are different but have the same soname.
# So we can link the iconv executable only after we have installed libiconv,
# i.e. during "make install". The intermediate 'iconv' executable is built
# without internationalization and not linked with libintl.

This is exactly what I'm seeing.

Rob
-- 
E-Mail:	Rob.M...@warwick.ac.uk		PHONE:  +44 24 7652 3037
Rob McMahon, IT Services, Warwick University, Coventry, CV4 7AL, England

Rob McMahon

unread,
Jul 13, 2012, 9:25:35 AM7/13/12
to sage-...@googlegroups.com
On 13/07/2012 14:01, Volker Braun wrote:
I think the only working way to build Sage on SPARC Solaris is to use GCC + Sun ld. You seem to have gcc compiled with the gnu linker, which has various issues on SPARC. See also



I definitely don't.  I've always avoided GNU as & ld, and I did read that page.  Here's a compilation of a little test file:

 > gcc -v c.c

Using built-in specs.
Target: sparc-sun-solaris2.10
Configured with: ../gcc-4.4.2/configure --prefix=/usr/local/gnu --with-gmp=/usr/local
Thread model: posix
gcc version 4.4.2 (GCC)
COLLECT_GCC_OPTIONS='-v' '-mcpu=v9'
 /usr/local/gnu/libexec/gcc/sparc-sun-solaris2.10/4.4.2/cc1 -quiet -v -D__sparcv8 c.c -quiet -dumpbase c.c -mcpu=v9 -auxbase c -version -o /var/tmp//ccOblGgT.s
ignoring nonexistent directory "/usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2/../../../../sparc-sun-solaris2.10/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/local/gnu/include
 /usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2/include
 /usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2/include-fixed
 /usr/include
End of search list.
GNU C (GCC) version 4.4.2 (sparc-sun-solaris2.10)
        compiled by GNU C version 4.4.2, GMP version 4.3.1, MPFR version 2.4.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 638e7f856fcc294126213f11e11eedd0
COLLECT_GCC_OPTIONS='-v' '-mcpu=v9'
 /usr/ccs/bin/as -V -Qy -s -xarch=v8plus -o /var/tmp//ccuANRWI.o /var/tmp//ccOblGgT.s
/usr/ccs/bin/as: SunOS 5.10 118683-05 Patch 04/30/2010
COMPILER_PATH=/usr/local/gnu/libexec/gcc/sparc-sun-solaris2.10/4.4.2/:/usr/local/gnu/libexec/gcc/sparc-sun-solaris2.10/4.4.2/:/usr/local/gnu/libexec/gcc/sparc-sun-solaris2.10/:/usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2/:/usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/:/usr/ccs/bin/
LIBRARY_PATH=/usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2/:/usr/ccs/lib/:/usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-mcpu=v9'
 /usr/ccs/bin/as -V -Qy -s -xarch=v8plus -o /var/tmp//ccuANRWI.o /var/tmp//ccOblGgT.s
/usr/ccs/bin/as: SunOS 5.10 118683-05 Patch 04/30/2010
COMPILER_PATH=/usr/local/gnu/libexec/gcc/sparc-sun-solaris2.10/4.4.2/:/usr/local/gnu/libexec/gcc/sparc-sun-solaris2.10/4.4.2/:/usr/local/gnu/libexec/gcc/sparc-sun-solaris2.10/:/usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2/:/usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/:/usr/ccs/bin/
LIBRARY_PATH=/usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2/:/usr/ccs/lib/:/usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-mcpu=v9'
 /usr/local/gnu/libexec/gcc/sparc-sun-solaris2.10/4.4.2/collect2 -V -Y P,/usr/ccs/lib:/usr/lib -Qy /usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2/crt1.o /usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2/crti.o /usr/ccs/lib/values-Xa.o /usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2/crtbegin.o -L/usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2 -L/usr/ccs/lib -L/usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2/../../.. /var/tmp//ccuANRWI.o -lgcc -lgcc_eh -lc -lgcc -lgcc_eh -lc /usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2/crtend.o /usr/local/gnu/lib/gcc/sparc-sun-solaris2.10/4.4.2/crtn.o
ld: Software Generation Utilities - Solaris Link Editors: 5.10-1.497




On Friday, July 13, 2012 7:08:36 AM UTC-4, Rob McMahon wrote:
Trying to compile sage-5.1 on Solaris 10 5/09 s10s_u7wos_08 SPARC, gcc (GCC) 4.4.2.  iconv-1.13.1.p3 won't compile with the error:

libtool: link: gcc -g -O2 iconv.o -o iconv  ../srclib/libicrt.a /home/unit/cu/dcv/src/local/sage-5.1/local/lib/libiconv.so /usr/local/gnu/lib/libintl.so -L/usr/local/lib /usr/local/gnu/lib/libiconv.so -lc -R/home/unit/cu/dcv/src/local/sage-5.1/local/lib -R/usr/local/gnu/lib -R/home/unit/cu/dcv/src/local/sage-5.1/local/lib -R/usr/local/gnu/lib
ld: fatal: recording name conflict: file `/home/unit/cu/dcv/src/local/sage-5.1/local/lib/libiconv.so' and file `/usr/local/gnu/lib/libiconv.so' provide identical dependency names: libiconv.so.2  (possible multiple inclusion of the same file)
ld: fatal: File processing errors. No output written to iconv
collect2: ld returned 1 exit status

Jeroen Demeyer

unread,
Jul 13, 2012, 10:35:22 AM7/13/12
to sage-...@googlegroups.com
On 2012-07-13 13:08, Rob McMahon wrote:
> How do I get it to skip this package, and carry on ?
$ touch spkg/installed/iconv-1.13.1.p3
$ make
Reply all
Reply to author
Forward
0 new messages