[MacPorts] #53044: octave @4.2.0_1: error: 'cstdint' file not found with libstdc++

MacPorts noreply at macports.org
Mon Dec 12 14:48:53 CET 2016


#53044: octave @4.2.0_1: error: 'cstdint' file not found with libstdc++
---------------------+---------------------------------
  Reporter:  mojca   |      Owner:  MarcusCalhoun-Lopez
      Type:  defect  |     Status:  new
  Priority:  Normal  |  Milestone:
 Component:  ports   |    Version:
Resolution:          |   Keywords:  snowleopard lion
      Port:  octave  |
---------------------+---------------------------------

Comment (by mojca):

 Replying to [comment:6 MarcusCalhoun-Lopez]:
 > Octave only silently defaults to macports-gcc-6 if
 {{{${configure.cxx_stdlib} eq "libstdc++"}}}.

 OK, but how exactly doe that help?

 > On 10.12, 10.11, and 10.10, the system clang is used.[[BR]]
 > On 10.9, macports-clang is used because the buildbot failure seems to
 indicate the system clang doesn't work.

 That's both fine.

 > On 10.8, macports-gcc is used since C++11 is required.

 That's generally bad.
 Unless you make sure that all dependencies were built with macports-gcc as
 well, but even then it's better to switch to `libc++` for all.

 > If the user specifically requests a {{{gcc*}}} variant, then the
 {{{graphicsmagick}}} variant is not the default and is marked in conflict.

 This doesn't seem to be the case with your current code:
 {{{
 #!tcl
 if { [variant_isset graphicsmagick] && ${configure.cxx_stdlib} eq
 "libstdc++"} {
     compiler.blacklist-append   {macports-clang-*}
     compiler.whitelist-append   \
         macports-gcc-6          \
         macports-gcc-5          \
         macports-gcc-4.9        \
         macports-gcc-4.8        \
         macports-gcc-4.7
 }
 }}}
 You don't set any variant anywhere and you actually switch to macports-gcc
 when you specifically '''know''' that graphicsmagic is being used.

 If you set a whitelist, you don't need a blacklist.

 I also noticed that you blacklist clang at various places in a redundant
 way:
 {{{
 #!tcl
 compiler.blacklist-append   {*gcc-3*} {*gcc-4.[0-6]} {clang < 700} cc
 compiler.blacklist-append { clang <= 318.0.61 }
 }}}

 > Won't this keep the C++ standard library consistent?

 No. The macports-gcc compiler is specifically not compatible with the
 default compiler. And in a very bad way.

 Replying to [comment:9 MarcusCalhoun-Lopez]:
 > As of version 4.2, C++11 is a requirement of Octave, so we must find a
 way of using a C++11 compliant compiler.

 My suggestion would be to switch to `libc++` and disable `graphicsmagic`
 unless `libc++` is default already (in that case `graphicsmagic` can
 stay). The only other alternative is to provide an alternative build of
 graphicsmagic against `libc++` (I do that with a subport
 `wxWidgets-3.0-libcxx` for example, but it might not always be always
 possible or practical or reasonable to do so.)

 What exactly does graphicsmagic bring?

--
Ticket URL: <https://trac.macports.org/ticket/53044#comment:10>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list