Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#47007 closed defect (fixed)

SuiteSparse @4.2.1_3 fails with undefined symbol

Reported by: flatjunk1@… Owned by: michaelld (Michael Dickens)
Priority: Normal Milestone:
Component: ports Version: 2.3.3
Keywords: Cc:
Port: SuiteSparse

Description (last modified by ryandesign (Ryan Carsten Schmidt))

Apparently same as ticket:45728, similar to ticket:39072 (SuiteSparse 4.1.0_0). Fixes proposed in latter did not work for me.

Attempting to install octave (sudo port install octave +atlas+docs). Fails repeatedly despite cleaning SuiteSparse and updating ports. Occurred in Yosemite 10.10.1, and still in 10.10.2. Xcode 6.1.1.

Logs and consoles attached. First attempt shown in console was to clean SuiteSparse then install octave. Second attempt follows directions per the "fix" of ticket:39072.

Stymied. Solution MUCH appreciated.

Attachments (4)

a clean SS install octave.txt (5.0 KB) - added by flatjunk1@… 10 years ago.
b main.log for (a).txt (407.7 KB) - added by flatjunk1@… 10 years ago.
c recommended redo from 39072 (1.7 KB) - added by flatjunk1@… 10 years ago.
d main.log for (c) (408.7 KB) - added by flatjunk1@… 10 years ago.

Download all attachments as: .zip

Change History (21)

Changed 10 years ago by flatjunk1@…

Changed 10 years ago by flatjunk1@…

Attachment: b main.log for (a).txt added

Changed 10 years ago by flatjunk1@…

Changed 10 years ago by flatjunk1@…

Attachment: d main.log for (c) added

comment:1 Changed 10 years ago by flatjunk1@…

Just realized the four attachments filenames may be confusing. They are in order and should be read as

a)... b)... c)... d)...

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

Description: modified (diff)
Owner: changed from macports-tickets@… to michaelld@…

comment:3 Changed 10 years ago by seanfarley (Sean Farley)

So, ATLAS seems to be throwing a wrench into this whole mess. I will need to recompile ATLAS ... which will probably take all night for me. If someone else can debug, that'd be great.

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

Just out of curiosity, what do the following return:

nm -a /opt/local/lib/libtatlas.dylib | grep dgemm
lipo -info /opt/local/lib/libtatlas.dylib

comment:5 in reply to:  4 Changed 10 years ago by flatjunk1@…

Replying to michaelld@…:

Just out of curiosity, what do the following return:

nm -a /opt/local/lib/libtatlas.dylib | grep dgemm
lipo -info /opt/local/lib/libtatlas.dylib

Not sure what that's supposed to do, but no joy:

kflaton% nm -a /opt/local/lib/libtatlas.dylib | grep dgemm
nm: object: /opt/local/lib/libtatlas.dylib malformed object (unknown load command 9)

and

kflaton% lipo -info /opt/local/lib/libtatlas.dylib
Non-fat file: /opt/local/lib/libtatlas.dylib is architecture: x86_64

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

OK; well that's the issue then: libtatlas is corrupt. So, let's go back a step & see if that issue can get fixed. What does "port installed atlas" return for you?

comment:7 in reply to:  6 ; Changed 10 years ago by flatjunk1@…

Replying to michaelld@…:

OK; well that's the issue then: libtatlas is corrupt. So, let's go back a step & see if that issue can get fixed. What does "port installed atlas" return for you?

I get:

kflaton% port installed atlas
The following ports are currently installed:
  atlas @3.10.2_1+clang+nofortran (active)

comment:8 in reply to:  7 Changed 10 years ago by flatjunk1@…

Replying to flatjunk1@…:

Replying to michaelld@…:

OK; well that's the issue then: libtatlas is corrupt. So, let's go back a step & see if that issue can get fixed. What does "port installed atlas" return for you?

I get:

kflaton% port installed atlas
The following ports are currently installed:
  atlas @3.10.2_1+clang+nofortran (active)

FWIW, I did a clean install of MacPorts less than a week ago...

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

So I'm thinking it's the +nofortran option that's the issue. Just a guess at this time without more testing / statistics.

Can you do the following:

sudo port clean suitesparse atlas octave
sudo port selfupdate
sudo port -f uninstall atlas @3.10.2_1+clang+nofortran
sudo port install atlas
sudo port install suitesparse +atlas

and see if that works. If so, then go forth with:

sudo port install octave +atlas

and then if that works make sure octave executes as desired.

comment:10 Changed 10 years ago by flatjunk1@…

Chokes on installing atlas:

kflaton% sudo port install atlas
--->  Fetching archive for atlas
--->  Attempting to fetch atlas-3.10.2_1+clang.darwin_14.x86_64.tbz2 from http://packages.macports.org/atlas
--->  Attempting to fetch atlas-3.10.2_1+clang.darwin_14.x86_64.tbz2 from http://mse.uk.packages.macports.org/sites/packages.macports.org/atlas
--->  Attempting to fetch atlas-3.10.2_1+clang.darwin_14.x86_64.tbz2 from http://lil.fr.packages.macports.org/atlas
--->  Fetching distfiles for atlas
--->  Verifying checksums for atlas
--->  Extracting atlas
--->  Applying patches to atlas
--->  Configuring atlas
Selected C compiler: /usr/bin/clang
Error: org.macports.configure for port atlas returned: Atlas could not detect any fortran compiler. If you really don’t need the fortran interface to be built, please use the +nofortran option, else install a fortran compiler (e.g. gcc4X) before building Atlas.
Please see the log file for port atlas for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_math_atlas/atlas/main.log
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: Processing of port atlas failed

and then again while installing SuiteSparse:

kflaton% sudo port install suitesparse +atlas
--->  Computing dependencies for SuiteSparse
--->  Dependencies to be installed: atlas
--->  Configuring atlas
Selected C compiler: /usr/bin/clang
Error: org.macports.configure for port atlas returned: Atlas could not detect any fortran compiler. If you really don’t need the fortran interface to be built, please use the +nofortran option, else install a fortran compiler (e.g. gcc4X) before building Atlas.
Error: Failed to install atlas
Please see the log file for port atlas for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_math_atlas/atlas/main.log
Error: The following dependencies were not installed: atlas
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: Processing of port suitesparse failed

(Thanks, btw.)

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

Grr ... the atlas Portfile should handle this condition. How about:

sudo port install gcc49
sudo port clean atlas suitesparse
sudo port install atlas +gcc49
sudo port install suitesparse +atlas

and see if that works.

comment:12 Changed 10 years ago by seanfarley (Sean Farley)

Sigh, bitten again by the +nofortran variant.

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

"again"? seems like this would be a good one to get fixed properly ;)

comment:14 Changed 10 years ago by flatjunk1@…

Ok, that did it! Megathanks. You totally da man!

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

On my system (OSX 10.8, Xcode 5.1.1), the +nofortran variant produces a library without the symbol "_dgemm_", so it won't work with suitesparse +atlas. I'm fixing suitesparse +atlas to check for +nofortran and bomb out when that happens so that we don't encounter this specific issue again (hopefully).

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

Resolution: fixed
Status: newclosed

Done in r133519. Thanks for bringing this to our attention!

comment:17 Changed 10 years ago by seanfarley (Sean Farley)

For future reference, by "again" I meant the ability to install atlas without a full lapack library (missing _dgemm_). Without removing the +nofortran variant or implement a 'lapack' port group, then each port that depends on atlas and needs a full lapack library needs to check for that variant.

Note: See TracTickets for help on using tickets.