Opened 3 years ago
Closed 7 months ago
#63418 closed defect (fixed)
mkvtoolnix @41.0.0_1: fatal error: static_assert failed due to requirement 'sizeof(char) == 0' "If you want to output boost::optional, include header <boost/optional/optional_io.hpp>"
Reported by: | sambthompson (Sam Thompson) | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.7.1 |
Keywords: | elcapitan | Cc: | |
Port: | mkvtoolnix |
Description
Trying to upgrade from 41.0.0_0 to _1; (seems to be the boost pg change). Calls for boost 1.76 and successfully installs it, but the mkvtoolnix build fails at:
... If you want to output boost::optional, include header <boost/optional/optional_io.hpp> ...
Log attached. Not sure if related, but based on notes in the portfile about being limited to 41.00 due to:
# mkvtoolnix 42.0.0 and later do not build on macOS 10.12 or earlier # (at least not with the versions of libc++ included on those systems) because: # The following features of the C++11/C++14/C++17 standards are not supported by /usr/bin/clang++: # * std::optional (C++17)
However, not sure if boost is relying on the underlying std library feature?
Attachments (2)
Change History (8)
Changed 3 years ago by sambthompson (Sam Thompson)
comment:1 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ryandesign removed |
---|---|
Keywords: | elcapitan added; boost optional removed |
Owner: | set to ryandesign |
Status: | new → assigned |
Summary: | mkvtoolnix @ 41.0.0_1 fails to build on 10.11.6 with boost 1.76 → mkvtoolnix @41.0.0_1: fatal error: static_assert failed due to requirement 'sizeof(char) == 0' "If you want to output boost::optional, include header <boost/optional/optional_io.hpp>" |
This is probably fallout from the recent reorganization (splitting) of boost ports. We probably just need to tell the build where boost is located now.
Changed 3 years ago by sambthompson (Sam Thompson)
Log of install with trace option
comment:2 Changed 3 years ago by sambthompson (Sam Thompson)
Additional data points on this. After inadvertently uninstalling mkvtoolnix, I tried a fresh install with trace on and the GUI variant suppressed, and it the build and install was successful:
% sudo port -t install mkvtoolnix -qtgui
The trace showed masses of boost include files were accessed:
Warning: The following files inside the MacPorts prefix not installed by a port were accessed: /opt/local/etc/xml/catalog /opt/local/include/boost/algorithm/string.hpp /opt/local/include/boost/algorithm/string/case_conv.hpp ... /opt/local/include/boost/variant/variant_fwd.hpp /opt/local/include/boost/variant/visitor_ptr.hpp
Not sure if this warning suggests there's an issue with the port install, since I have boost showing as installed:
% sudo port installed | grep boost boost @1.76_0 (active) boost176 @1.76.0_3+clang13+no_single+no_static+python39 (active)
With the trace, but not the variant suppression:
% sudo port -t install mkvtoolnix
This also succeeded, but I got an additional set of warnings on non-port accessed files during configuration phase as well:
Warning: The following files inside the MacPorts prefix not installed by a port were accessed: /opt/local/libexec/qt5/include/QtCore/QCoreApplication /opt/local/libexec/qt5/include/QtCore/QObject ... /opt/local/libexec/qt5/include/QtCore/qwineventnotifier.h /opt/local/libexec/qt5/include/QtCore/qxmlstream.h /opt/local/libexec/qt5/lib/QtConcurrent.framework/Versions/Current/QtConcurrent /opt/local/libexec/qt5/lib/QtCore.framework/Versions/Current/QtCore /opt/local/libexec/qt5/lib/QtGui.framework/Versions/Current/QtGui /opt/local/libexec/qt5/lib/QtMultimedia.framework/Versions/Current/QtMultimedia /opt/local/libexec/qt5/lib/QtNetwork.framework/Versions/Current/QtNetwork /opt/local/libexec/qt5/lib/QtWidgets.framework/Versions/Current/QtWidgets
Again, I have qt5 installed:
% sudo port installed | grep qt5 qscintilla-qt5 @2.13.1_0 (active) qt511-qtbase @5.11.3_7+openssl (active) qt511-qtdeclarative @5.11.3_0 (active) qt511-qtmacextras @5.11.3_0 (active) qt511-qtmultimedia @5.11.3_0 (active) qt511-qtsvg @5.11.3_0 (active) qt511-qttools @5.11.3_1 (active) qt511-qttranslations @5.11.3_0 (active) qt511-qtxmlpatterns @5.11.3_0 (active) wireshark2 @2.6.19_2+cares+chmodbpf+geoip+gnutls+kerberos5+libgcrypt+libsmi+portaudio+qt5+zlib (active)
Not sure if that offers any insights, but hope so. Trace from second run attached.
comment:3 Changed 21 months ago by sambthompson (Sam Thompson)
Recent port upgrade (41.0.0_4+qtgui -> 41.0.0_5+qtgui) seems to not show this issue anymore, and this ticket could be closed? Assume it was fixed by commit 1ddea5e back in July 2022.
comment:4 Changed 19 months ago by sambthompson (Sam Thompson)
OK, broken again with change of default clang from 14 to 16 (per ticket:65895). Need to patch boost176 to get it building again, per this comment: ticket:67324#comment:2
comment:5 Changed 15 months ago by sambthompson (Sam Thompson)
As #67324 is fixed and closed (thanks to mascguy), this is also fixed and can be closed, too. Thanks.
comment:6 Changed 7 months ago by i0ntempest
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
mkvtoolnix upgrade main.log