netradiant-custom icon indicating copy to clipboard operation
netradiant-custom copied to clipboard

Cannot compile for arm macOS 26.1 Tahoe

Open rullinoiz opened this issue 1 month ago • 3 comments

I followed #167 for setting MACLIBDIR, installed the listed dependencies from macports, and modified the q_platform to set the ARCH_STRING and endianness, but I'm getting a bunch of linker errors for Qt despite having it installed and passed into LDFLAGS in the makefile:

Undefined symbols for architecture arm64: "qt_assert(char const*, char const*, int)", referenced from: DoLoadPortalFileDialog() (.cold.1) in LoadPortalFileDialog.o QtPrivate::QFunctorSlotObject<DoLoadPortalFileDialog()::$_0, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (.cold.1) in LoadPortalFileDialog.o "QArrayData::deallocate(QArrayData*, unsigned long, unsigned long)", referenced from: DoConfigDialog() in ConfigDialog.o DoConfigDialog() in ConfigDialog.o DoConfigDialog() in ConfigDialog.o DoConfigDialog() in ConfigDialog.o vbox_add_group(QVBoxLayout*, char const*, bool&, bool) in ConfigDialog.o form_add_slider(QFormLayout*, int&, int, int, char const*, char const*, bool) in ConfigDialog.o form_add_slider(QFormLayout*, int&, int, int, char const*, char const*, bool) in ConfigDialog.o form_add_slider(QFormLayout*, int&, int, int, char const*, char const*, bool) in ConfigDialog.o Undefined symbols for architecture arm64: "qt_assert(char const*, char const*, int)", referenced from: callbacks::OnExportClicked(bool) (.cold.1) in callbacks.o callbacks::OnAddMaterial() (.cold.1) in callbacks.o "QArrayData::deallocate(QArrayData*, unsigned long, unsigned long)", referenced from: callbacks::OnExportClicked(bool) in callbacks.o callbacks::OnExportClicked(bool) in callbacks.o callbacks::OnExportClicked(bool) in callbacks.o callbacks::OnAddMaterial() in callbacks.o callbacks::OnAddMaterial() in callbacks.o callbacks::OnAddMaterial() in callbacks.o create_w_plugplug2() in interface.o create_w_plugplug2() in interface.o create_w_plugplug2() in interface.o create_w_plugplug2() in interface.o create_w_plugplug2() in interface.o create_w_plugplug2() in interface.o create_w_plugplug2() in interface.o create_w_plugplug2() in interface.o create_w_plugplug2() in interface.o create_w_plugplug2() in interface.o form_add_slider(QFormLayout*, int&, int, int, char const*, char const*, bool) in ConfigDialog.o form_add_slider(QFormLayout*, int&, int, int, char const*, char const*, bool) in ConfigDialog.o ... "QBoxLayout::addStretch(int)", referenced from: form_add_color(QFormLayout*, unsigned int&) in ConfigDialog.o "QBoxLayout::addWidget(QWidget*, int, QFlags<Qt::AlignmentFlag>)", referenced from: DoConfigDialog() in ConfigDialog.o DoConfigDialog() in ConfigDialog.o DoConfigDialog() in ConfigDialog.o vbox_add_group(QVBoxLayout*, char const*, bool&, bool) in ConfigDialog.o form_add_color(QFormLayout*, unsigned int&) in ConfigDialog.o DoLoadPortalFileDialog() in LoadPortalFileDialog.o DoLoadPortalFileDialog() in LoadPortalFileDialog.o DoLoadPortalFileDialog() in LoadPortalFileDialog.o DoLoadPortalFileDialog() in LoadPortalFileDialog.o ...

I ran make with PKG_CONFIG_PATH=/opt/local/lib/pkgconfig make -j8

rullinoiz avatar Nov 18 '25 06:11 rullinoiz

Probably you've got Qt6, which conflicts with required Qt5?

You can see paths being used in linker call and even edit them and call manually

g++ tools/quake3/common/cmdlib.o tools/quake3/common/qimagelib.o ... libddslib.a libetclib.a libfilematch.a libl_net.a icons/q3map2.o -s -Wl,--stack,4194304 -LC:/msys66/mingw64/bin/../lib -lxml2 -LC:/msys66/mingw64/bin/../lib -lglib-2.0 -lintl -LC:/msys66/mingw64/bin/../lib -lpng16 -ljpeg -lz -L/mingw64/lib -lassimp -lws2_32 -luser32 -lgdi32 -lole32 -o install/q3map2.exe

Garux avatar Nov 18 '25 17:11 Garux

Probably you've got Qt6, which conflicts with required Qt5?

You can see paths being used in linker call and even edit them and call manually

g++ tools/quake3/common/cmdlib.o tools/quake3/common/qimagelib.o ... libddslib.a libetclib.a libfilematch.a libl_net.a icons/q3map2.o -s -Wl,--stack,4194304 -LC:/msys66/mingw64/bin/../lib -lxml2 -LC:/msys66/mingw64/bin/../lib -lglib-2.0 -lintl -LC:/msys66/mingw64/bin/../lib -lpng16 -ljpeg -lz -L/mingw64/lib -lassimp -lws2_32 -luser32 -lgdi32 -lole32 -o install/q3map2.exe

I made sure to uninstall qt6 through homebrew and macports. I'm using a completely clean installation of macports to build this

rullinoiz avatar Nov 18 '25 18:11 rullinoiz

Anyhow this is a path thing. Did you merge Qt-macOS2 branch? In particular it changes pkgconfig stuff. Normally --libs-only-l is passed, but in mac there if -F used, which is skipped then.

Garux avatar Nov 18 '25 19:11 Garux