#9042: Cython fails to build on OpenSolaris x64
------------------------------------+-------------------------------
       Reporter:  drkirkby          |        Owner:  drkirkby
           Type:  defect            |       Status:  closed
       Priority:  major             |    Milestone:  sage-4.5
      Component:  porting: Solaris  |   Resolution:  fixed
       Keywords:                    |    Merged in:  sage-4.5.alpha0
        Authors:  Robert Bradshaw   |    Reviewers:  David Kirkby
Report Upstream:  N/A               |  Work issues:
         Branch:                    |       Commit:
   Dependencies:                    |     Stopgaps:
------------------------------------+-------------------------------
Description changed by chapoton:

Old description:

> == Build environment ==
>  * Sun Ultra 27 3.33 GHz Intel W3580 Xeon. Quad core. 8 threads. 12 GB
> RAM
>  * !OpenSolaris 2009.06 snv_134 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.
>
> {{{
> drkirkby@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.
>
> == 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' so make did not stop on errors, so errors can be listed.
>

> == How Python was build ==
>
> It should be noted that python builds as a 64-bit application. There is
> no need to set any environment variables like CFLAGS for Python to build
> 64-bit.
>
> {{{
> drkirkby@hawk:~/sage-4.4.2$ file local/bin/python
> local/bin/python:       ELF 64-bit LSB executable AMD64 Version 1,
> dynamically linked, not stripped
> }}}
>
> We can see a few modules did not build
>
> {{{
> ailed to find the necessary bits to build these modules:
> _bsddb             bsddb185           dl
> gdbm               imageop            linuxaudiodev
> ossaudiodev
> To find the necessary bits, look in setup.py in detect_modules() for the
> module's name.
>

> Failed to build these modules:
> _curses            _curses_panel      _socket
> _ssl               _tkinter           sunaudiodev
> }}}
>
> The faillure of _socket to build has caused problems with pygments
> (#9041) and ipython (#9022), but does not seem to be the cause of the
> problem with Cython.
>
> == The problem with Cython ==
> This is related to #8116, which was closed as invalid, but it would
> appear the problem can still rear its ugly head.
>
> {{{
> copying Cython/Includes/python_version.pxd ->
> build/lib.solaris-2.11-i86pc-2.6/Cython/Includes
> copying Cython/Includes/numpy.pxd ->
> build/lib.solaris-2.11-i86pc-2.6/Cython/Includes
> copying Cython/Includes/python_bytes.pxd ->
> build/lib.solaris-2.11-i86pc-2.6/Cython/Includes
> copying Cython/Includes/python_method.pxd ->
> build/lib.solaris-2.11-i86pc-2.6/Cython/Includes
> copying Cython/Includes/python_ref.pxd ->
> build/lib.solaris-2.11-i86pc-2.6/Cython/Includes
> copying Cython/Plex/Scanners.pxd ->
> build/lib.solaris-2.11-i86pc-2.6/Cython/Plex
> copying Cython/Compiler/Parsing.pxd ->
> build/lib.solaris-2.11-i86pc-2.6/Cython/Compiler
> copying Cython/Compiler/Scanning.pxd ->
> build/lib.solaris-2.11-i86pc-2.6/Cython/Compiler
> copying Cython/Compiler/Visitor.pxd ->
> build/lib.solaris-2.11-i86pc-2.6/Cython/Compiler
> copying Cython/Runtime/refnanny.pyx ->
> build/lib.solaris-2.11-i86pc-2.6/Cython/Runtime
> running build_ext
> building 'Cython.Plex.Scanners' extension
> creating build/temp.solaris-2.11-i86pc-2.6
> creating build/temp.solaris-2.11-i86pc-2.6/export
> creating build/temp.solaris-2.11-i86pc-2.6/export/home
> creating build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby
> creating
> build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2
> creating
> build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2/spkg
> creating
> build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2/spkg/build
> creating
> build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2/spkg/build/cython-0.12.1
> creating
> build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2/spkg/build/cython-0.12.1/src
> creating
> build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2/spkg/build/cython-0.12.1/src/Cython
> creating
> build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2/spkg/build/cython-0.12.1/src/Cython/Plex
> gcc -fno-strict-aliasing -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC
> -I/export/home/drkirkby/sage-4.4.2/local/include/python2.6 -c
> /export/home/drkirkby/sage-4.4.2/spkg/build/cython-0.12.1/src/Cython/Plex/Scanners.c
> -o
> build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2/spkg/build/cython-0.12.1/src/Cython/Plex/Scanners.o
> In file included from
> /export/home/drkirkby/sage-4.4.2/local/include/python2.6/Python.h:58,
>                  from
> /export/home/drkirkby/sage-4.4.2/spkg/build/cython-0.12.1/src/Cython/Plex/Scanners.c:4:
> /export/home/drkirkby/sage-4.4.2/local/include/python2.6/pyport.h:685:2:
> error: #error "LONG_BIT definition appears wrong for platform (bad
> gcc/glibc config?)."
> error: command 'gcc' failed with exit status 1
> Error installing Cython
>
> real    0m4.426s
> user    0m3.907s
> sys     0m0.505s
> sage: An error occurred while installing cython-0.12.1
> }}}
>
> == The likely cause ==
> The -m64 flag is not being used in the compile line shown, but Python was
> built 64-bit, so I suspect the issue is related to a mix of 32-bit and
> 64-bit code.
>
> == Other !OpenSolaris issues ==
> Some other problems which are failing to allow Sage to build 64-bit on
> !OpenSolaris are listed at #9026.

New description:

 == Build environment ==
  * Sun Ultra 27 3.33 GHz Intel W3580 Xeon. Quad core. 8 threads. 12 GB RAM
  * !OpenSolaris 2009.06 snv_134 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.

 {{{
 drkirkby@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.

 == 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' so make did not stop on errors, so errors can be listed.


 == How Python was build ==

 It should be noted that python builds as a 64-bit application. There is no
 need to set any environment variables like CFLAGS for Python to build
 64-bit.

 {{{
 drkirkby@hawk:~/sage-4.4.2$ file local/bin/python
 local/bin/python: ELF 64-bit LSB executable AMD64 Version 1, dynamically
 linked, not stripped
 }}}

 We can see a few modules did not build

 {{{
 ailed to find the necessary bits to build these modules:
 _bsddb             bsddb185           dl
 gdbm               imageop            linuxaudiodev
 ossaudiodev
 To find the necessary bits, look in setup.py in detect_modules() for the
 module's name.


 Failed to build these modules:
 _curses            _curses_panel      _socket
 _ssl               _tkinter           sunaudiodev
 }}}

 The faillure of _socket to build has caused problems with pygments (#9041)
 and ipython (#9022), but does not seem to be the cause of the problem with
 Cython.

 == The problem with Cython ==
 This is related to #8116, which was closed as invalid, but it would appear
 the problem can still rear its ugly head.

 {{{
 copying Cython/Includes/python_version.pxd ->
 build/lib.solaris-2.11-i86pc-2.6/Cython/Includes
 copying Cython/Includes/numpy.pxd ->
 build/lib.solaris-2.11-i86pc-2.6/Cython/Includes
 copying Cython/Includes/python_bytes.pxd ->
 build/lib.solaris-2.11-i86pc-2.6/Cython/Includes
 copying Cython/Includes/python_method.pxd ->
 build/lib.solaris-2.11-i86pc-2.6/Cython/Includes
 copying Cython/Includes/python_ref.pxd ->
 build/lib.solaris-2.11-i86pc-2.6/Cython/Includes
 copying Cython/Plex/Scanners.pxd ->
 build/lib.solaris-2.11-i86pc-2.6/Cython/Plex
 copying Cython/Compiler/Parsing.pxd ->
 build/lib.solaris-2.11-i86pc-2.6/Cython/Compiler
 copying Cython/Compiler/Scanning.pxd ->
 build/lib.solaris-2.11-i86pc-2.6/Cython/Compiler
 copying Cython/Compiler/Visitor.pxd ->
 build/lib.solaris-2.11-i86pc-2.6/Cython/Compiler
 copying Cython/Runtime/refnanny.pyx ->
 build/lib.solaris-2.11-i86pc-2.6/Cython/Runtime
 running build_ext
 building 'Cython.Plex.Scanners' extension
 creating build/temp.solaris-2.11-i86pc-2.6
 creating build/temp.solaris-2.11-i86pc-2.6/export
 creating build/temp.solaris-2.11-i86pc-2.6/export/home
 creating build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby
 creating build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2
 creating
 build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2/spkg
 creating
 build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2/spkg/build
 creating
 
build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2/spkg/build/cython-0.12.1
 creating
 
build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2/spkg/build/cython-0.12.1/src
 creating
 
build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2/spkg/build/cython-0.12.1/src/Cython
 creating
 
build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2/spkg/build/cython-0.12.1/src/Cython/Plex
 gcc -fno-strict-aliasing -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC
 -I/export/home/drkirkby/sage-4.4.2/local/include/python2.6 -c
 
/export/home/drkirkby/sage-4.4.2/spkg/build/cython-0.12.1/src/Cython/Plex/Scanners.c
 -o
 
build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/sage-4.4.2/spkg/build/cython-0.12.1/src/Cython/Plex/Scanners.o
 In file included from
 /export/home/drkirkby/sage-4.4.2/local/include/python2.6/Python.h:58,
                  from
 
/export/home/drkirkby/sage-4.4.2/spkg/build/cython-0.12.1/src/Cython/Plex/Scanners.c:4:
 /export/home/drkirkby/sage-4.4.2/local/include/python2.6/pyport.h:685:2:
 error: #error "LONG_BIT definition appears wrong for platform (bad
 gcc/glibc config?)."
 error: command 'gcc' failed with exit status 1
 Error installing Cython

 real    0m4.426s
 user    0m3.907s
 sys     0m0.505s
 sage: An error occurred while installing cython-0.12.1
 }}}

 == The likely cause ==
 The -m64 flag is not being used in the compile line shown, but Python was
 built 64-bit, so I suspect the issue is related to a mix of 32-bit and
 64-bit code.

 == Other !OpenSolaris issues ==
 Some other problems which are failing to allow Sage to build 64-bit on
 !OpenSolaris are listed at #9026.

--

--
Ticket URL: <http://trac.sagemath.org/ticket/9042#comment:12>
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to