Opened 10 years ago

Closed 10 years ago

#46120 closed defect (fixed)

dcmtk @3.6.1_20140617_1: error: no matching function for call to ‘test::test()’

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: eborisch (Eric A. Borisch)
Priority: Normal Milestone:
Component: ports Version: 2.3.3
Keywords: Cc:
Port: dcmtk

Description

dcmtk @3.6.1_20140617_1 is failing to build for me on Snow Leopard:

:info:build [  4%] Building CXX object ofstd/tests/CMakeFiles/ofstd_tests.dir/toption.cc.o
:info:build cd /Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/ofstd/tests && /usr/bin/llvm-g++-4.2   -DDCMTK_BUILD_IN_PROGRESS -DUSE_NULL_SAFE_OFSTRING -D_BSD_COMPAT -D_BSD_SOURCE -D_OSF_SOURCE -D_REENTRANT -D_XOPEN_SOURCE_EXTENDED -pipe -Os -arch x86_64  -fvisibility=hidden -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE -D_BSD_COMPAT -D_OSF_SOURCE -D_DARWIN_C_SOURCE -DNDEBUG -arch x86_64 -mmacosx-version-min=10.6 -I/Volumes/Data/macports/snowleopard/include -I/Volumes/Data/macports/snowleopard/include/libxml2 -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/config/include -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/ofstd/include -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/oflog/include -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/dcmdata/include -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/dcmimgle/include -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/dcmimage/include -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/dcmjpeg/include -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/dcmjpls/include -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/dcmtls/include -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/dcmnet/include -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/dcmsr/include -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/dcmsign/include -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/dcmwlm/include -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/dcmqrdb/include -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/dcmpstat/include -I/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/dcmrt/include    -DDCMTK_BUILD_DATE=\"2014-06-17\" -o CMakeFiles/ofstd_tests.dir/toption.cc.o -c /Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/ofstd/tests/toption.cc
:info:build /Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/ofstd/include/dcmtk/ofstd/ofoption.h: In instantiation of ‘OFoptional<test>::if_constructible<char, std::char_traits<char> >’:
:info:build /Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/ofstd/tests/toption.cc:67:   instantiated from here
:info:build /Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/ofstd/include/dcmtk/ofstd/ofoption.h:330: error: no matching function for call to ‘test::test()’
:info:build /Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/ofstd/tests/toption.cc:7: note: candidates are: test::test(int, bool)
:info:build /Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/ofstd/tests/toption.cc:7: note:                 test::test(const test&)
:info:build /Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/ofstd/include/dcmtk/ofstd/ofoption.h: In instantiation of ‘OFoptional<test>::if_not_constructible<char, std::char_traits<char> >’:
:info:build /Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/ofstd/tests/toption.cc:67:   instantiated from here
:info:build /Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/ofstd/include/dcmtk/ofstd/ofoption.h:332: error: no matching function for call to ‘test::test()’
:info:build /Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/ofstd/tests/toption.cc:7: note: candidates are: test::test(int, bool)
:info:build /Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617/ofstd/tests/toption.cc:7: note:                 test::test(const test&)
:info:build make[2]: *** [ofstd/tests/CMakeFiles/ofstd_tests.dir/toption.cc.o] Error 1
:info:build make[2]: Leaving directory `/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617'
:info:build make[1]: *** [ofstd/tests/CMakeFiles/ofstd_tests.dir/all] Error 2
:info:build make[1]: Leaving directory `/Volumes/Data/macports/snowleopard/var/macports/build/_Volumes_Data_macports_dports_graphics_dcmtk/dcmtk/work/dcmtk-3.6.1_20140617'
:info:build make: *** [all] Error 2

Attachments (5)

main.log.bz2 (8.5 KB) - added by ryandesign (Ryan Carsten Schmidt) 10 years ago.
main.log (12.6 KB) - added by potmj (Michael Pot) 10 years ago.
Failure (Configure) on Leopard
dcmtk-compiler.diff (638 bytes) - added by ryandesign (Ryan Carsten Schmidt) 10 years ago.
main.log.blacklist.gz (6.5 KB) - added by potmj (Michael Pot) 10 years ago.
Latest Leopard build (blacklist modified Portfile rev 129080)
main.log.deact.gz (6.3 KB) - added by potmj (Michael Pot) 10 years ago.
Leopard, r129112 bits/c++config.h file not found

Download all attachments as: .zip

Change History (22)

Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: main.log.bz2 added

comment:1 Changed 10 years ago by eborisch (Eric A. Borisch)

Hrmm. It's not using clang++. Try setting configure.compiler=macports-clang-3.5 and see if that builds, if you have a chance.

comment:2 in reply to:  1 ; Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to eborisch@…:

Hrmm. It's not using clang++.

The version of clang included with Xcode 3.2.6 does not include clang++

Try setting configure.compiler=macports-clang-3.5 and see if that builds, if you have a chance.

Ok, I can try that later.

Changed 10 years ago by potmj (Michael Pot)

Attachment: main.log added

Failure (Configure) on Leopard

comment:3 in reply to:  2 Changed 10 years ago by potmj (Michael Pot)

Replying to ryandesign@…:

Replying to eborisch@…:

And it is not configuring for me on Leopard.

% port installed cmake
The following ports are currently installed:
  cmake @2.8.5_0+universal
  cmake @3.0.0_3
  cmake @3.0.2_1 (active)
Last edited 10 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:4 Changed 10 years ago by eborisch (Eric A. Borisch)

Can you try macports' clang, too? (See my comment above.)

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

I know that using MacPorts llvm 3.5 and later means forcing the use of libc++, which can be problematic on OS X 10.8 and earlier. I'm not sure if using MacPorts clang 3.5 and later has the same effect.

Still, you're allowing earlier versions of clang on later versions of OS X, so I'm guessing clang 3.5 is not required, merely that clang and clang++ are required.

The normal solution to this problem is to blacklist the older clang that doesn't have clang++ and let MacPorts choose an alternative; at the moment, it chooses clang 3.4. Patch attached, which builds for me on Snow Leopard.

Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: dcmtk-compiler.diff added

comment:6 in reply to:  5 ; Changed 10 years ago by larryv (Lawrence Velázquez)

Replying to ryandesign@…:

I know that using MacPorts llvm 3.5 and later means forcing the use of libc++, which can be problematic on OS X 10.8 and earlier. I'm not sure if using MacPorts clang 3.5 and later has the same effect.

Since clang-3.5 requires llvm-3.5, it requires libcxx transitively. I wouldn’t be surprised if it also uses libc++ directly.

comment:7 Changed 10 years ago by eborisch (Eric A. Borisch)

Committed patch in r129080. Let me know if that's working for everyone.

comment:8 in reply to:  4 ; Changed 10 years ago by potmj (Michael Pot)

Replying to eborisch@…:

Can you try macports' clang, too? (See my comment above.)

I think one of the problems is a missing dependency check or something, as configure was trying to use /Developer/usr/bin/clang which does not exist on my 10.5.8

OK I have edited my local Portfile (which I guess is the easiest / OK way) to add:-

configure.compiler      macports-clang-3.5
compiler.blacklist      *gcc* {clang < 137}

This has pulled in the dependency clang-3.4 (Building.......) :-)
Next dependency: libcxx

Error: libcxx is not supported on Leopard or earlier.

So now I am a bit lost as to what to do next - dcmtk would build fine, but now does not.

Last edited 10 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:9 in reply to:  8 ; Changed 10 years ago by larryv (Lawrence Velázquez)

You cannot install Clang 3.5 or LLVM 3.5 on Leopard.

Delete your local modifications and run port selfupdate to pull in Eric’s change. That will allow MacPorts to automatically use Clang 3.4.

Changed 10 years ago by potmj (Michael Pot)

Attachment: main.log.blacklist.gz added

Latest Leopard build (blacklist modified Portfile rev 129080)

comment:10 in reply to:  9 Changed 10 years ago by potmj (Michael Pot)

Replying to larryv@…:

You cannot install Clang 3.5 or LLVM 3.5 on Leopard.

Delete your local modifications and run port selfupdate to pull in Eric’s change. That will allow MacPorts to automatically use Clang 3.4.

OK.

% sudo port clean dcmtk
% sudo port upgrade dcmtk build.jobs=1
Error: org.macports.build for port dcmtk returned: command execution failed

Looks like an include file is wrong/missing ?????
See logfile

Last edited 10 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:11 Changed 10 years ago by eborisch (Eric A. Borisch)

Looking through the log, I see that it is grabbing headers from an installed (active) prior install of dcmtk. Try 'port deactivate dcmtk' followed by a clean and install of the updated dcmtk.

comment:12 in reply to:  6 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to larryv@…:

Replying to ryandesign@…:

I know that using MacPorts llvm 3.5 and later means forcing the use of libc++, which can be problematic on OS X 10.8 and earlier. I'm not sure if using MacPorts clang 3.5 and later has the same effect.

Since clang-3.5 requires llvm-3.5, it requires libcxx transitively. I wouldn’t be surprised if it also uses libc++ directly.

I understand that clang uses llvm and links with its libraries, and that since llvm-3.5 requires libc++, that means clang-3.5 requires libc++. But clang is a compiler. Software compiled using that compiler does not automatically use llvm nor link with its libraries, just by virtue of having used that compiler. Therefore, it does not follow that software compiled with clang-3.5 need necessarily itself require libc++.

comment:13 Changed 10 years ago by eborisch (Eric A. Borisch)

Please try with r129112. Forces deactivation of previous version before config/build/install.

Last edited 10 years ago by eborisch (Eric A. Borisch) (previous) (diff)

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

To be clear: it now requires the user to manually force a deactivation of the port before building it. MacPorts deliberately does not attempt to do that forced deactivation for the user; it only prints instructions telling the user to do so.

comment:15 Changed 10 years ago by potmj (Michael Pot)

OK, have upgraded to bring in r129112, deactivated, ..... looks like there are still some header problems, or config is not quite selecting the right ones, or something.......

% sudo port selfupdate
% sudo port deactivate dcmtk
% sudo port clean  dcmtk
% sudo port upgrade dcmtk build.jobs=1
.....
--->  Building dcmtk
Error: org.macports.build for port dcmtk returned: command execution failed
Last edited 10 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

Changed 10 years ago by potmj (Michael Pot)

Attachment: main.log.deact.gz added

Leopard, r129112 bits/c++config.h file not found

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

We should resolve this ticket as fixed and file a new ticket for the new problem.

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

Resolution: fixed
Status: newclosed

New ticket is #46149.

Note: See TracTickets for help on using tickets.