Skip to content

macOS Catalina #16387

@Sjors

Description

@Sjors

New macOS releases have historically led to unpleasant surprises, so I decided to run the beta on an older machine. I installed both the beta of macOS and Xcode, and made the latter default using sudo xcode-select --switch /Applications/Xcode-beta.app/Contents/Developer.

Note that Apple switched the default shell to zsh: https://support.apple.com/kb/HT208050

Beta 3

TL&DR: binaries still work, but building QT from source doesn't and depends seems broken

The existing binary on my system kept working fine. I was also able to download and install v0.18 from bitcoincore.org.

Compling master (536590f) from source source fails, see (log).

Using Homebrew with boost 1.70.0 and qt 5.13.0.

The tests produce a bunch of warnings:

test/util_threadnames_tests.cpp:64:5: note: in instantiation of function template specialization 'boost::test_tools::tt_detail::check_frwd<boost::test_tools::tt_detail::equal_impl_frwd, unsigned long, int>' requested here
    BOOST_CHECK_EQUAL(names.size(), 100);
    ^
/usr/local/include/boost/test/tools/old/interface.hpp:154:45: note: expanded from macro 'BOOST_CHECK_EQUAL'
#define BOOST_CHECK_EQUAL( L, R )           BOOST_TEST_TOOL_IMPL( 0, \
                                            ^
/usr/local/include/boost/test/tools/old/interface.hpp:67:47: note: expanded from macro 'BOOST_TEST_TOOL_IMPL'
    BOOST_PP_IF( frwd_type, report_assertion, check_frwd ) (                    \

These warnings also occur in the Solaris problem in #15708.

QT produces warnings:

  CXX      qt/libbitcoinqt_a-bitcoinunits.o
qt/bitcoinamountfield.cpp:124:24: warning: 'width' is deprecated: Use QFontMetrics::horizontalAdvance [-Wdeprecated-declarations]
            int w = fm.width(BitcoinUnits::format(BitcoinUnits::BTC, BitcoinUnits::maxMoney(), false, BitcoinUnits::separatorAlways));
                       ^
/usr/local/Cellar/qt/5.13.0/lib/QtGui.framework/Headers/qfontmetrics.h:107:5: note: 'width' has been explicitly marked deprecated here
    QT_DEPRECATED_X("Use QFontMetrics::horizontalAdvance")
    ^
/usr/local/Cellar/qt/5.13.0/lib/QtCore.framework/Headers/qglobal.h:294:33: note: expanded from macro 'QT_DEPRECATED_X'
#  define QT_DEPRECATED_X(text) Q_DECL_DEPRECATED_X(text)
                                ^
/usr/local/Cellar/qt/5.13.0/lib/QtCore.framework/Headers/qcompilerdetection.h:649:55: note: expanded from macro 'Q_DECL_DEPRECATED_X'
#    define Q_DECL_DEPRECATED_X(text) __attribute__ ((__deprecated__(text)))
                                                      ^

And finally QT throws an error:

  CXX      qt/libbitcoinqt_a-networkstyle.o
qt/guiutil.cpp:365:14: error: no matching function for call to 'objc_msgSend'
    id app = objc_msgSend((id) objc_getClass("NSApplication"), sel_registerName("sharedApplication"));
             ^~~~~~~~~~~~
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 2 were provided
objc_msgSend(void /* id self, SEL op, ... */ )
^
qt/guiutil.cpp:366:5: error: no matching function for call to 'objc_msgSend'
    objc_msgSend(app, sel_registerName("activateIgnoringOtherApps:"), YES);
    ^~~~~~~~~~~~
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/message.h:63:1: note: candidate function not viable: requires 0 arguments, but 3 were provided
objc_msgSend(void /* id self, SEL op, ... */ )
^
2 errors generated.
make[2]: *** [qt/libbitcoinqt_a-guiutil.o] Error 1

I can ./configure --without-gui and run the test suite.

I reinstalled all of homebrew, but still get the above warnings and errors.

Using depends instead, I'm unable to build protobuf (see log). When I strip out protobuf, Boost fails in the same way as #13601 (log). However in this case xcode-select --install doesn't make the issue go away, and the other workaround /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg no longer exists. See also this dicussion.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions