Opened 6 years ago

Closed 6 years ago

#52316 closed defect (fixed)

scalapack @2.0.2_1 Configure error - build failure on macOS Sierra

Reported by: naupacte@… Owned by: seanfarley (Sean Farley)
Priority: Normal Milestone:
Component: ports Version: 2.3.99
Keywords: Cc: dstrubbe (David Strubbe), dershow, aaschwanden (Andy Aschwanden)
Port: scalapack

Description

OUTPUT of /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_scalapack/scalapack/main.log:

...
:info:configure -- Compiling and Building BLACS INSTALL Testing to set correct variables
:info:configure -- Configure in the INSTALL directory successful
:info:configure CMake Error at CMAKE/FortranMangling.cmake:39 (MESSAGE):
:info:configure    Build in the BLACS INSTALL directory FAILED
:info:configure Call Stack (most recent call first):
:info:configure   CMakeLists.txt:122 (COMPILE)
:info:configure -- Configuring incomplete, errors occurred!

Change History (13)

comment:1 Changed 6 years ago by mf2k (Frank Schima)

Owner: changed from macports-tickets@… to sean@…
Port: scalapack added

In the future, please fill in the Port field and Cc the port maintainers (port info --maintainers scalapack), if any.

comment:2 Changed 6 years ago by dstrubbe (David Strubbe)

I get this too. Not sure if this sheds any light, but I looked for more info in CMakeFiles/CMakeOutput.log and it says:

Determining if the Fortran compiler supports Fortran 90 passed with the following output:
Change Dir: /opt/local/var/macports/build/_Users_dstrubbe_Software_MacPorts_macports-ports_math_scalapack/scalapack/work/scalapack-2.0.2/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_620af/fast"
/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_620af.dir/build.make CMakeFiles/cmTC_620af.dir/build
Building Fortran object CMakeFiles/cmTC_620af.dir/testFortranCompilerF90.f90.o
/opt/local/bin/mpif90-mpich-mp    -pipe -Os  -mmacosx-version-min=10.12   -c /opt/local/var/macports/build/_Users_dstrubbe_Software_MacPorts_macports-ports_math_scalapack/scalapack/work/scalapack-2.0.2/CMakeFiles/CMakeTmp/testFortranCompilerF90.f90 -o CMakeFiles/cmTC_620af.dir/testFortranCompilerF90.f90.o
Linking Fortran executable cmTC_620af
/opt/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_620af.dir/link.txt --verbose=1
/opt/local/bin/mpif90-mpich-mp   -L/opt/local/lib -Wl,-headerpad_max_install_names  -pipe -Os  -mmacosx-version-min=10.12 CMakeFiles/cmTC_620af.dir/testFortranCompilerF90.f90.o  -o cmTC_620af  
Last edited 6 years ago by dstrubbe (David Strubbe) (previous) (diff)

comment:3 Changed 6 years ago by dstrubbe (David Strubbe)

Cc: dstrubbe added

comment:4 Changed 6 years ago by dershow

Cc: dershow added

comment:5 Changed 6 years ago by dstrubbe (David Strubbe)

This issue was reported for homebrew also (but no more information provided unfortunately): https://github.com/Homebrew/homebrew-science/issues/3042

comment:6 Changed 6 years ago by dstrubbe (David Strubbe)

Ok I have found the real error info, in BLACS/INSTALL/CMakeFiles/CMakeError.log:

Determining if the Fortran compiler works failed with the following output:
Change Dir: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/INSTALL/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_1bae1/fast"
/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_1bae1.dir/build.make CMakeFiles/cmTC_1bae1.dir/build
Building Fortran object CMakeFiles/cmTC_1bae1.dir/testFortranCompiler.f.o
/opt/local/bin/mpif90-openmpi-mp    -pipe -Os  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -mmacosx-version-min=10.12   -c /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/INSTALL/CMakeFiles/CMakeTmp/testFortranCompiler.f -o CMakeFiles/cmTC_1bae1.dir/testFortranCompiler.f.o
Linking Fortran executable cmTC_1bae1
/opt/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1bae1.dir/link.txt --verbose=1
/opt/local/bin/mpif90-openmpi-mp   -L/opt/local/lib -Wl,-headerpad_max_install_names  -pipe -Os  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -mmacosx-version-min=10.12 CMakeFiles/cmTC_1bae1.dir/testFortranCompiler.f.o  -o cmTC_1bae1  
ld: unexpected token: !tapi-tbd-v2 file '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/lib/libSystem.tbd' for architecture x86_64
collect2: error: ld returned 1 exit status
make[1]: *** [cmTC_1bae1] Error 1
make: *** [cmTC_1bae1/fast] Error 2

comment:7 Changed 6 years ago by dstrubbe (David Strubbe)

Apparently this is actually a system bug as noted in ticket #53151

comment:8 Changed 6 years ago by seanfarley (Sean Farley)

Damn.

comment:9 Changed 6 years ago by gaming-hacker (G Alexander)

can't you build it by hand? i cringe when i see cmake being used. download the src tarball, configure the makefile? i don't know why you need sys libs, these are number crunching routines.

comment:10 Changed 6 years ago by aaschwanden (Andy Aschwanden)

Cc: aaschwanden added

comment:11 Changed 6 years ago by aaschwanden (Andy Aschwanden)

I eventually found a solution to this, see https://groups.google.com/forum/#!topic/v8-users/JfOxG8xiH6M.

It appears the the wrong

ld

command (the one from MacPorts in /opt/local/bin' is used. A workaround is to rename

/opt/local/bin/ld

before compiling scalapack and then undo the change afterwards. This lets me compile scalapack successfully.

There might be a more elegant solution, but I'm not a MacPorts expert.

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

Thanks for the tip, Andy! I'll try it out this weekend.

comment:13 Changed 6 years ago by seanfarley (Sean Farley)

Resolution: fixed
Status: newclosed

Finally figured out the fix for this, committed here: https://github.com/macports/macports-ports/commit/9b1bac79563d8402d6352ffb0a86c9f3bad9fe88

Basically, just make sure port install ld64 +ld64_xcode is active. Then it'll compile and run.

Note: See TracTickets for help on using tickets.