Opened 10 years ago

Closed 10 years ago

#46014 closed defect (duplicate)

scantailor @0.9.11.1_4 build fails with macports-clang-3.4

Reported by: Martin.vGagern@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.3.2
Keywords: Cc:
Port: scantailor

Description

This is using port 2.3.2 on OS X 10.8.5.

As discussed in #37877, scantailor fails to build with clang, which I assume (after reading wiki:UsingTheRightCompiler) means the XCode version of clang. However, scantailor also fails with the macports-provided clang, with pretty much the same errors:

:info:build In file included from .../scantailor-0.9.11.1/interaction/InteractiveXSpline.cpp:22:
:info:build .../scantailor-0.9.11.1/math/MatrixCalc.h:132:10: error: calling a private constructor of class 'mcalc::Mat<double>'
:info:build                 return mcalc::Mat<T>(&m_alloc, vec.data(), rows, cols);
:info:build                        ^
:info:build .../scantailor-0.9.11.1/interaction/InteractiveXSpline.cpp:233:8: note: in instantiation of function template specialization 'MatrixCalc<double, mcalc::StaticPoolAllocator<double, 128, 9> >::operator()<4>' requested here
:info:build                                 (mc(mat, 2, 2)*mc(pt, 2, 1)).write(pt);
:info:build                                    ^
:info:build .../scantailor-0.9.11.1/math/MatrixCalc.h:107:2: note: declared private here
:info:build         Mat(AbstractAllocator<T>* alloc, T const* data, int rows, int cols)
:info:build         ^
:info:build .../scantailor-0.9.11.1/math/MatrixCalc.h:132:10: error: calling a private constructor of class 'mcalc::Mat<double>'
:info:build                 return mcalc::Mat<T>(&m_alloc, vec.data(), rows, cols);
:info:build                        ^
:info:build .../scantailor-0.9.11.1/interaction/InteractiveXSpline.cpp:233:22: note: in instantiation of function template specialization 'MatrixCalc<double, mcalc::StaticPoolAllocator<double, 128, 9> >::operator()<2>' requested here
:info:build                                 (mc(mat, 2, 2)*mc(pt, 2, 1)).write(pt);
:info:build                                                  ^
:info:build .../scantailor-0.9.11.1/math/MatrixCalc.h:107:2: note: declared private here
:info:build         Mat(AbstractAllocator<T>* alloc, T const* data, int rows, int cols)
:info:build         ^
:info:build 2 errors generated.
:info:build make[2]: *** [interaction/CMakeFiles/interaction.dir/InteractiveXSpline.cpp.o] Error 1

Trying to work out the compiler which has been used in the light of this blacklist, I did the following:

$ grep -E 'clang|blacklist' .../main.log | grep -v '^:info:build '
:debug:main Sourcing PortGroup compiler_blacklist_versions 1.0 from /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/_resources/port1.0/group/compiler_blacklist_versions-1.0.tcl
:debug:main compiler clang 503.0.38 not blacklisted because it doesn't match {clang < 211.10.1}
:debug:main clang-3.4 3.4.2_2 exists in the ports tree
:debug:main clang-3.4 3.4.2_2 +analyzer+arm_runtime is the latest installed
:debug:main clang-3.4 3.4.2_2 +analyzer+arm_runtime is active
:debug:main Sourcing PortGroup compiler_blacklist_versions 1.0 from /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/_resources/port1.0/group/compiler_blacklist_versions-1.0.tcl
:debug:main compiler clang 503.0.38 not blacklisted because it doesn't match {clang < 421}
:debug:main No need to upgrade! clang-3.4 3.4.2_2 >= clang-3.4 3.4.2_2
:debug:main Sourcing PortGroup compiler_blacklist_versions 1.0 from /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/_resources/port1.0/group/compiler_blacklist_versions-1.0.tcl
:debug:main compiler clang 503.0.38 not blacklisted because it doesn't match {clang < 421}
:debug:main clang_select 1.0_0 exists in the ports tree
:debug:main clang_select 1.0_0  is the latest installed
:debug:main clang_select 1.0_0  is active
:debug:main Changing to port directory: /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/sysutils/clang_select
:debug:main No need to upgrade! clang_select 1.0_0 >= clang_select 1.0_0
:debug:main Sourcing PortGroup compiler_blacklist_versions 1.0 from /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/_resources/port1.0/group/compiler_blacklist_versions-1.0.tcl
:debug:main compiler clang 503.0.38 not blacklisted because it doesn't match { clang <= 318.0.61 }
:debug:main Sourcing PortGroup compiler_blacklist_versions 1.0 from /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/_resources/port1.0/group/compiler_blacklist_versions-1.0.tcl
:debug:main compiler clang 503.0.38 not blacklisted because it doesn't match {clang < 421}
:debug:main Searching for dependency: clang-3.4
:debug:main Found Dependency: receipt exists for clang-3.4
CC='/opt/local/bin/clang-mp-3.4'
CXX='/opt/local/bin/clang++-mp-3.4'
OBJC='/opt/local/bin/clang-mp-3.4'
OBJCXX='/opt/local/bin/clang++-mp-3.4'
:info:configure -- Check for working C compiler: /opt/local/bin/clang-mp-3.4
:info:configure -- Check for working C compiler: /opt/local/bin/clang-mp-3.4 -- works
:info:configure -- Check for working CXX compiler: /opt/local/bin/clang++-mp-3.4
:info:configure -- Check for working CXX compiler: /opt/local/bin/clang++-mp-3.4 -- works

So it seems to me as if the compiler being used were the clang version from MacPorts, and that isn't subject to the blacklist but probably should be.

Using compiler.whitelist macports-gcc-4.8 I was able to successfully build scantailor. It took me a moment to realize that the GUI version was not a scantailor binary on the path but instead /Applications/MacPorts/ScanTailor.app, but once I found that I could confirm that the application works at least well enough to start up its GUI.

Attachments (1)

main.log.bz2 (13.0 KB) - added by Martin.vGagern@… 10 years ago.

Download all attachments as: .zip

Change History (2)

Changed 10 years ago by Martin.vGagern@…

Attachment: main.log.bz2 added

comment:1 Changed 10 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: duplicate
Status: newclosed

Does it build with newer clang, or is this still an issue as of clang-3.5 and clang-3.6? Please followup in #37877

Note: See TracTickets for help on using tickets.