Opened 10 years ago

Closed 7 years ago

#42416 closed defect (fixed)

py*-numpy +universal not actually universal

Reported by: larryv (Lawrence Velázquez) Owned by: michaelld (Michael Dickens)
Priority: Normal Milestone:
Component: ports Version: 2.2.1
Keywords: Cc: jeremyhu (Jeremy Huddleston Sequoia), dh@…, seanfarley (Sean Farley), cooljeanius (Eric Gallager), petrrr, anddam (Andrea D'Amore), ryandesign (Ryan Carsten Schmidt), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Port: py-numpy

Description

% port installed py27-numpy
The following ports are currently installed:
  py27-numpy @1.8.0_2+universal (active)
% port contents py27-numpy | grep '\.so$' | xargs file
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/_dotblas.so:           Mach-O 64-bit bundle x86_64
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/_dummy.so:             Mach-O 64-bit bundle x86_64
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/multiarray.so:         Mach-O 64-bit bundle x86_64
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/multiarray_tests.so:   Mach-O 64-bit bundle x86_64
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/operand_flag_tests.so: Mach-O 64-bit bundle x86_64
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/scalarmath.so:         Mach-O 64-bit bundle x86_64
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/struct_ufunc_test.so:  Mach-O 64-bit bundle x86_64
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/test_rational.so:      Mach-O 64-bit bundle x86_64
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/umath.so:              Mach-O 64-bit bundle x86_64
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/umath_tests.so:        Mach-O 64-bit bundle x86_64
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/fft/fftpack_lite.so:        Mach-O 64-bit bundle x86_64
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/_compiled_base.so:      Mach-O 64-bit bundle x86_64
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/linalg/_umath_linalg.so:    Mach-O 64-bit bundle x86_64
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/linalg/lapack_lite.so:      Mach-O 64-bit bundle x86_64
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/numarray/_capi.so:          Mach-O 64-bit bundle x86_64
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/random/mtrand.so:           Mach-O 64-bit bundle x86_64
%

The build environment doesn’t look correct for a universal build.

:notice:build --->  Building py27-numpy
:debug:build Executing proc-pre-org.macports.build-build-0
:debug:build Executing org.macports.build (py27-numpy)
:debug:build Environment: 
ARCHFLAGS='-arch x86_64'
ATLAS='None'
BLAS='/usr/lib'
CC='/usr/bin/clang'
CC_PRINT_OPTIONS='YES'
CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_Users_larryv_Projects_MacPorts_svn_trunk_dports_python_py-numpy/py27-numpy/work/.CC_PRINT_OPTIONS'
CFLAGS='-arch x86_64 -arch i386'
CPATH='/opt/local/include'
CXX='/usr/bin/clang++'
CXXFLAGS='-arch x86_64 -arch i386'
LAPACK='/usr/lib'
LDFLAGS='-arch x86_64 -arch i386'
LIBRARY_PATH='/opt/local/lib'
MACOSX_DEPLOYMENT_TARGET='10.9'
OBJC='/usr/bin/clang'
OBJCFLAGS='-arch x86_64 -arch i386'

Neither does destroot.

:debug:destroot Executing org.macports.destroot (py27-numpy)
:debug:destroot Environment: 
ARCHFLAGS='-arch x86_64'
ATLAS='None'
BLAS='/usr/lib'
CC='/usr/bin/clang'
CC_PRINT_OPTIONS='YES'
CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_Users_larryv_Projects_MacPorts_svn_trunk_dports_python_py-numpy/py27-numpy/work/.CC_PRINT_OPTIONS'
CFLAGS='-Os -arch x86_64'
CPATH='/opt/local/include'
CXX='/usr/bin/clang++'
CXXFLAGS='-Os -arch x86_64'
LAPACK='/usr/lib'
LDFLAGS='-L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64'
LIBRARY_PATH='/opt/local/lib'
MACOSX_DEPLOYMENT_TARGET='10.9'
OBJC='/usr/bin/clang'
OBJCFLAGS='-Os -arch x86_64'

Attachments (1)

py27-numpy_main.log (519.9 KB) - added by larryv (Lawrence Velázquez) 10 years ago.
main.log through destroot

Download all attachments as: .zip

Change History (17)

Changed 10 years ago by larryv (Lawrence Velázquez)

Attachment: py27-numpy_main.log added

main.log through destroot

comment:1 Changed 10 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:2 Changed 10 years ago by larryv (Lawrence Velázquez)

I have a functional installation of py27-numpy @1.8.0_3+universal, but my changes might not work with +atlas. I’ll compile Atlas tonight and continue working on it this week.

comment:3 Changed 10 years ago by michaelld (Michael Dickens)

IIRC, NumPy (and, related, SciPy) use some Python tools for handling various *FLAGS as found in the shell environment. Some FLAGS override the defaults, while others augment the defaults. I'll dig around, but once upon a time I had a working set of Portfiles using muniversal and handling the *FLAGS carefully to get +universal working correctly in both ports. Moving to muniversal means just about totally rewriting the Portfiles, which was the down side; but, the up side is that they are much easier to maintain -- for example: no wrapper for compiling.

comment:4 Changed 10 years ago by petrrr

Cc: Peter.Danecek@… added

Cc Me!

comment:5 Changed 9 years ago by michaelld (Michael Dickens)

NumPy 1.9.2 has a similar issue, so this ticket is still valid. It's issue is that +universal builds as just 32-bit when using GCC (which is the default, I believe). This is a tricky issue, so don't expect resolution too quickly ...

comment:6 Changed 9 years ago by anddam (Andrea D'Amore)

Cc: and.damore@… added

Cc Me!

comment:7 Changed 9 years ago by petrrr

Cc: petr@… added

Cc Me!

comment:8 Changed 9 years ago by michaelld (Michael Dickens)

Cc: jeremyhu@… added
Summary: py*-numpy @1.8.0_2+universal: C libraries are not universalpy*-numpy +universal not actually universal

Has duplicate #48263.

comment:9 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign@… added

Cc Me!

comment:10 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)

Now that numpy supports 32-bit builds (as of r143455), does that help the situation with the universal variant?

comment:11 Changed 8 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: mcalhoun@… added

Cc Me!

comment:12 Changed 8 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

r143455 would have worked if all compilers accepted multiple arch values.
Hopefully, r143470 and r143471 work for all compilers.

comment:13 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: jeremyhu, dh@macports.org, seanfarley, egall@gwmail.gwu.edu, petrrr, anddam, petrrr, ryandesign, MarcusCalhoun-Lopezjeremyhu, dh@macports.org, seanfarley, egall@gwmail.gwu.edu, petrrr, anddam, ryandesign, MarcusCalhoun-Lopez

Can this ticket be closed as fixed?

comment:14 Changed 7 years ago by michaelld (Michael Dickens)

No idea. Let me check.

comment:15 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Works for me.

$ port installed py27-numpy
The following ports are currently installed:
  py27-numpy @1.12.0_0+gfortran+universal (active)
$ port contents py27-numpy | grep '\.so$' | xargs file
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/_dummy.so:             Mach-O universal binary with 2 architectures: [x86_64: Mach-O 64-bit x86_64 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>] [i386: Mach-O i386 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>]
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/multiarray.so:         Mach-O universal binary with 2 architectures: [x86_64: Mach-O 64-bit x86_64 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|HAS_TLV_DESCRIPTORS>] [i386]
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/multiarray_tests.so:   Mach-O universal binary with 2 architectures: [x86_64: Mach-O 64-bit x86_64 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>] [i386: Mach-O i386 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>]
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/operand_flag_tests.so: Mach-O universal binary with 2 architectures: [x86_64: Mach-O 64-bit x86_64 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>] [i386: Mach-O i386 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>]
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/struct_ufunc_test.so:  Mach-O universal binary with 2 architectures: [x86_64: Mach-O 64-bit x86_64 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>] [i386: Mach-O i386 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>]
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/test_rational.so:      Mach-O universal binary with 2 architectures: [x86_64: Mach-O 64-bit x86_64 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>] [i386: Mach-O i386 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>]
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/umath.so:              Mach-O universal binary with 2 architectures: [x86_64: Mach-O 64-bit x86_64 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>] [i386]
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/umath_tests.so:        Mach-O universal binary with 2 architectures: [x86_64: Mach-O 64-bit x86_64 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>] [i386: Mach-O i386 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>]
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/fft/fftpack_lite.so:        Mach-O universal binary with 2 architectures: [x86_64: Mach-O 64-bit x86_64 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>] [i386: Mach-O i386 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>]
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/linalg/_umath_linalg.so:    Mach-O universal binary with 2 architectures: [x86_64: Mach-O 64-bit x86_64 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>] [i386: Mach-O i386 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>]
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/linalg/lapack_lite.so:      Mach-O universal binary with 2 architectures: [x86_64: Mach-O 64-bit x86_64 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>] [i386: Mach-O i386 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>]
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/random/mtrand.so:           Mach-O universal binary with 2 architectures: [x86_64: Mach-O 64-bit x86_64 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>] [i386: Mach-O i386 bundle, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL>]
$

comment:16 Changed 7 years ago by michaelld (Michael Dickens)

Resolution: fixed
Status: newclosed

Same same here; looks like this was fixed somehow.

Note: See TracTickets for help on using tickets.