Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

aarch64 support #46

Open
hfiguiere opened this issue Dec 4, 2021 · 12 comments
Open

aarch64 support #46

hfiguiere opened this issue Dec 4, 2021 · 12 comments

Comments

@hfiguiere
Copy link
Contributor

hfiguiere commented Dec 4, 2021

This is the issue for aarch64 support.

tl;dr it doesn't work.

Some more details

It builds, thanks to some of the changes in #35. But the build crashes on RaspberryPi. It seems that it is related to how Qt5 is build in the KDE SDK where it is build without desktop GL support. Building the SDK with GL support actually fix the problem on RaspberryPi, but not on other aarch64 platforms (I don't have any to test)

The KDE sdk issue https://invent.kde.org/packaging/flatpak-kde-runtime/-/issues/19

@luzpaz
Copy link

luzpaz commented Dec 4, 2021

The FreeCAD v0.19.3 Release notes have been updated to link to #46 (this issue)
Thanks @hfiguiere!

@hfiguiere
Copy link
Contributor Author

On a Rapsberry Pi4 or Pi 400, the current test build in #47 crashes this way when opening any of the default sample:

$ flatpak run org.freecadweb.FreeCAD
FreeCAD 0.19, Libs: 0.19R14555 (Git shallow)
© Juergen Riegel, Werner Mayer, Yorik van Havre and others 2001-2021
FreeCAD is free and open-source software licensed under the terms of LGPL2+ license.
FreeCAD wouldn't be possible without FreeCAD community.
  #####                 ####  ###   ####
  #                    #      # #   #   #
  #     ##  #### ####  #     #   #  #   #
  ####  # # #  # #  #  #     #####  #   #
  #     #   #### ####  #    #     # #   #
  #     #   #    #     #    #     # #   #  ##  ##  ##
  #     #   #### ####   ### #     # ####   ##  ##  ##

connect failed: No such file or directory
Coin warning in cc_glglue_instance(): Error when setting up the GL context. This can happen if there is no current context, or if the context has been set up incorrectly.
Program received signal SIGSEGV, Segmentation fault.
#0  linux-vdso.so.1(__kernel_rt_sigreturn+0) [0x7f8c7477d8]
#1  /usr/lib/aarch64-linux-gnu/libX11.so.6(XDefaultScreenOfDisplay+0) [0x7f85d99080]
#2  /app/lib/libCoin.so.80(+0x474124) [0x7f893fe124]
#3  /app/lib/libCoin.so.80(glxglue_init+0x3c) [0x7f893feacc]
#4  /app/lib/libCoin.so.80(cc_glglue_instance+0x1fc) [0x7f893f89f0]
#5  0x7f8926a708 in SoGLRenderActionP::isDirectRendering(SoState const*) const from /app/lib/libCoin.so.80+0x48
#6  0x7f8926c6a4 in SoGLRenderActionP::render(SoNode*) from /app/lib/libCoin.so.80+0xc4
#7  0x7f892663dc in SoAction::apply(SoNode*) from /app/lib/libCoin.so.80+0x39c
#8  0x7f8bd6b734 in Gui::SoBoxSelectionRenderAction::apply(SoNode*) from /app/freecad/lib/libFreeCADGui.so+0x30
#9  0x7f8be19940 in Gui::View3DInventorViewer::renderScene() from /app/freecad/lib/libFreeCADGui.so+0x13c
#10  0x7f8bdde378 in SIM::Coin3D::Quarter::QuarterWidget::paintEvent(QPaintEvent*) from /app/freecad/lib/libFreeCADGui.so+0x288
#11  0x7f8bde506c in SIM::Coin3D::Quarter::SoQTQuarterAdaptor::paintEvent(QPaintEvent*) from /app/freecad/lib/libFreeCADGui.so+0x4c
#12  0x7f8a75d2a4 in QWidget::event(QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x178
#13  0x7f8a7cc890 in QFrame::event(QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x38
#14  0x7f89e447c8 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Core.so.5+0x134
#15  0x7f8a72a7bc in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x40
#16  0x7f8bb04f34 in Gui::GUIApplication::notify(QObject*, QEvent*) from /app/freecad/lib/libFreeCADGui.so+0xc4
#17  0x7f89e44a60 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Core.so.5+0xe4
#18  0x7f8a756ee4 in QWidgetPrivate::sendPaintEvent(QRegion const&) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x44
#19  0x7f8a757730 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x7fc
#20  0x7f8a758138 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x2b4
#21  0x7f8a757850 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x91c
#22  0x7f8a758138 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x2b4
#23  0x7f8a757850 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x91c
#24  0x7f8a758138 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x2b4
#25  0x7f8a757850 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x91c
#26  0x7f8a758138 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x2b4
#27  0x7f8a757850 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x91c
#28  /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5(+0x1a5068) [0x7f8a736068]
#29  0x7f8a75da24 in QWidget::event(QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x8f8
#30  0x7f8a72a7d8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x5c
#31  0x7f8bb04f34 in Gui::GUIApplication::notify(QObject*, QEvent*) from /app/freecad/lib/libFreeCADGui.so+0xc4
#32  0x7f89e44a60 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Core.so.5+0xe4
#33  0x7f89e454d4 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) from /usr/lib/aarch64-linux-gnu/libQt5Core.so.5+0x274
#34  /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5(+0x3e9088) [0x7f8a97a088]
#35  0x7f89e614d4 in QObject::event(QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Core.so.5+0x158
#36  0x7f8a72a7d8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x5c
#37  0x7f8bb04f34 in Gui::GUIApplication::notify(QObject*, QEvent*) from /app/freecad/lib/libFreeCADGui.so+0xc4
#38  0x7f89e44a60 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Core.so.5+0xe4
#39  0x7f89e454d4 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) from /usr/lib/aarch64-linux-gnu/libQt5Core.so.5+0x274
#40  /usr/lib/aarch64-linux-gnu/libQt5Core.so.5(+0x25350c) [0x7f89e8250c]
#41  /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x254) [0x7f85fd36b8]
#42  /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0(+0x57948) [0x7f85fd3948]
#43  /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x34) [0x7f85fd3a14]
#44  0x7f89e82034 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/aarch64-linux-gnu/libQt5Core.so.5+0x50
#45  0x7f8bef5d30 in Gui::SequencerBar::setValue(int) from /app/freecad/lib/libFreeCADGui.so+0x1d0
#46  0x7f8b02a948 in Base::SequencerBase::next(bool) from /app/freecad/lib/libFreeCADBase.so+0x68
#47  0x7f8b02b2c8 in Base::SequencerLauncher::next(bool) from /app/freecad/lib/libFreeCADBase.so+0xa8
#48  0x7f8b020848 in Base::XMLReader::readFiles(zipios::ZipInputStream&) const from /app/freecad/lib/libFreeCADBase.so+0x118
#49  0x7f8b2df40c in App::Document::restore(char const*, bool, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) from /app/freecad/lib/libFreeCADApp.so+0x318
#50  0x7f8b4a9488 in App::Application::openDocumentPrivate(char const*, char const*, char const*, bool, bool, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) from /app/freecad/lib/libFreeCADApp.so+0x558
#51  0x7f8b4a9fd4 in App::Application::openDocuments(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, bool) from /app/freecad/lib/libFreeCADApp.so+0x460
#52  0x7f8b4aae38 in App::Application::openDocument(char const*, bool) from /app/freecad/lib/libFreeCADApp.so+0xc8
#53  0x7f8b4c5824 in App::Application::sOpenDocument(_object*, _object*, _object*) from /app/freecad/lib/libFreeCADApp.so+0xd4
#54  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(+0x127158) [0x7f8ac93158]
#55  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(_PyObject_MakeTpCall+0x9c) [0x7f8aca713c]
#56  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(_PyEval_EvalFrameDefault+0x6d38) [0x7f8abdcfd8]
#57  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(+0x228e38) [0x7f8ad94e38]
#58  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(_PyEval_EvalCodeWithName+0x64) [0x7f8ad95258]
#59  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(PyEval_EvalCodeEx+0x40) [0x7f8ad952a4]
#60  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(PyEval_EvalCode+0x2c) [0x7f8ad952dc]
#61  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(+0x229b4c) [0x7f8ad95b4c]
#62  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(+0x229c38) [0x7f8ad95c38]
#63  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(PyRun_StringFlags+0xa8) [0x7f8ad95d5c]
#64  0x7f8afe324c in Base::InterpreterSingleton::runString[abi:cxx11](char const*) from /app/freecad/lib/libFreeCADBase.so+0x68
#65  0x7f8b4c7c9c in App::Application::sLoadFile(_object*, _object*) from /app/freecad/lib/libFreeCADApp.so+0x33c
#66  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(+0x127130) [0x7f8ac93130]
#67  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(_PyObject_MakeTpCall+0x9c) [0x7f8aca713c]
#68  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(_PyEval_EvalFrameDefault+0x6d38) [0x7f8abdcfd8]
#69  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(+0x228e38) [0x7f8ad94e38]
#70  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(_PyEval_EvalCodeWithName+0x64) [0x7f8ad95258]
#71  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(PyEval_EvalCodeEx+0x40) [0x7f8ad952a4]
#72  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(PyEval_EvalCode+0x2c) [0x7f8ad952dc]
#73  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(+0x229b4c) [0x7f8ad95b4c]
#74  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(+0x229c38) [0x7f8ad95c38]
#75  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(PyRun_StringFlags+0xa8) [0x7f8ad95d5c]
#76  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(+0x22bc94) [0x7f8ad97c94]
#77  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(+0x16198c) [0x7f8accd98c]
#78  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(_PyEval_EvalFrameDefault+0x4e00) [0x7f8abdb0a0]
#79  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(+0x228e38) [0x7f8ad94e38]
#80  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(_PyEval_EvalCodeWithName+0x64) [0x7f8ad95258]
#81  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(PyEval_EvalCodeEx+0x40) [0x7f8ad952a4]
#82  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(PyEval_EvalCode+0x2c) [0x7f8ad952dc]
#83  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(+0x229b4c) [0x7f8ad95b4c]
#84  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(+0x229c38) [0x7f8ad95c38]
#85  /usr/lib/aarch64-linux-gnu/libpython3.9.so.1.0(PyRun_StringFlags+0xa8) [0x7f8ad95d5c]
#86  0x7f8afe324c in Base::InterpreterSingleton::runString[abi:cxx11](char const*) from /app/freecad/lib/libFreeCADBase.so+0x68
#87  0x7f8bb35d24 in Gui::Command::_runCommand(char const*, int, Gui::Command::DoCmd_Type, char const*) from /app/freecad/lib/libFreeCADGui.so+0xa4
#88  0x7f8bb35ee8 in Gui::Command::_doCommand(char const*, int, Gui::Command::DoCmd_Type, char const*, ...) from /app/freecad/lib/libFreeCADGui.so+0xd4
#89  0x7f628e222c in WebGui::BrowserView::onLinkClicked(QUrl const&) from /app/freecad/lib/WebGui.so+0x80c
#90  /usr/lib/aarch64-linux-gnu/libQt5Core.so.5(+0x239e50) [0x7f89e68e50]
#91  0x7f62884198 in QWebView::linkClicked(QUrl const&) from /app/lib/libQt5WebKitWidgets.so.5+0x38
#92  /usr/lib/aarch64-linux-gnu/libQt5Core.so.5(+0x239e50) [0x7f89e68e50]
#93  0x7f628787f8 in QWebPage::linkClicked(QUrl const&) from /app/lib/libQt5WebKitWidgets.so.5+0x38
#94  /app/lib/libQt5WebKitWidgets.so.5(+0x2dc2c) [0x7f62879c2c]
#95  /app/lib/libQt5WebKit.so.5(+0x588394) [0x7f56109394]
#96  /app/lib/libQt5WebKit.so.5(+0x1354890) [0x7f56ed5890]
#97  /app/lib/libQt5WebKit.so.5(+0x1337af8) [0x7f56eb8af8]
#98  /app/lib/libQt5WebKit.so.5(+0x1338000) [0x7f56eb9000]
#99  /app/lib/libQt5WebKit.so.5(+0x13388e8) [0x7f56eb98e8]
#100  0x7f56eba30c in WebCore::FrameLoader::loadFrameRequest(WebCore::FrameLoadRequest const&, WebCore::Event*, WTF::PassRefPtr<WebCore::FormState>) from /app/lib/libQt5WebKit.so.5+0x38c
#101  /app/lib/libQt5WebKit.so.5(+0x1339728) [0x7f56eba728]
#102  0x7f56eba9c4 in WebCore::FrameLoader::urlSelected(WebCore::URL const&, WTF::String const&, WebCore::Event*, WebCore::LockHistory, WebCore::LockBackForwardList, WebCore::ShouldSendReferrer, WebCore::ShouldOpenExternalURLsPolicy) from /app/lib/libQt5WebKit.so.5+0x1a4
#103  /app/lib/libQt5WebKit.so.5(+0xee1bf8) [0x7f56a62bf8]
#104  /app/lib/libQt5WebKit.so.5(+0xfb393c) [0x7f56b3493c]
#105  /app/lib/libQt5WebKit.so.5(+0x1030954) [0x7f56bb1954]
#106  /app/lib/libQt5WebKit.so.5(+0x102ed60) [0x7f56bafd60]
#107  /app/lib/libQt5WebKit.so.5(+0x13d58d0) [0x7f56f568d0]
#108  0x7f56f5b240 in WebCore::EventHandler::handleMouseReleaseEvent(WebCore::PlatformMouseEvent const&) from /app/lib/libQt5WebKit.so.5+0x520
#109  0x7f5612d934 in QWebPageAdapter::mouseReleaseEvent(QMouseEvent*) from /app/lib/libQt5WebKit.so.5+0x74
#110  0x7f62882e78 in QWebPage::event(QEvent*) from /app/lib/libQt5WebKitWidgets.so.5+0xa68
#111  0x7f62883db0 in QWebView::mouseReleaseEvent(QMouseEvent*) from /app/lib/libQt5WebKitWidgets.so.5+0x30
#112  0x7f8a75d2a4 in QWidget::event(QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x178
#113  0x7f8a72a7d8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x5c
#114  0x7f8a72fa8c in QApplication::notify(QObject*, QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x764
#115  0x7f8bb04f34 in Gui::GUIApplication::notify(QObject*, QEvent*) from /app/freecad/lib/libFreeCADGui.so+0xc4
#116  0x7f89e44a60 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Core.so.5+0xe4
#117  0x7f8a72ee7c in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x1d4
#118  /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5(+0x1ddaf8) [0x7f8a76eaf8]
#119  /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5(+0x1def34) [0x7f8a76ff34]
#120  0x7f8a72a7d8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5+0x5c
#121  0x7f8bb04f34 in Gui::GUIApplication::notify(QObject*, QEvent*) from /app/freecad/lib/libFreeCADGui.so+0xc4
#122  0x7f89e44a60 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Core.so.5+0xe4
#123  0x7f8a20502c in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) from /usr/lib/aarch64-linux-gnu/libQt5Gui.so.5+0x5d8
#124  0x7f8a1ed200 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/aarch64-linux-gnu/libQt5Gui.so.5+0xbc
#125  /usr/lib/aarch64-linux-gnu/libQt5XcbQpa.so.5(+0x62960) [0x7f83f52960]

If I rebuild the KDE SDK to enable "desktop GL" then it works. But that runtime will not work with GLES only system I have been told (I don't have hardware to test that). And Qt doesn't seem to offer an option to have both.

@hfiguiere
Copy link
Contributor Author

hfiguiere commented Dec 9, 2021

Related:

coin3d/coin#449

Edit: this might be the major showstopper

@luzpaz
Copy link

luzpaz commented Jan 7, 2022

Upstream Coin3d just provided a fix see coin3d/coin#470

@hfiguiere
Copy link
Contributor Author

not it didn't. EGL is not GLES. EGL is akin to GLX, but for Wayland.

What this would allow is FreeCAD working on Wayland.

@luzpaz
Copy link

luzpaz commented Jan 10, 2022

😞

@hfiguiere
Copy link
Contributor Author

I a new plot twist, the current 0.20 fails to build now without Qt5 GLES

ok so now 0.20 doesn't build with GLES anymore:

[3274/4252] Building CXX object src/Gui/CMakeFiles/FreeCADGui.dir/Quarter/QuarterWidget.cpp.o
FAILED: src/Gui/CMakeFiles/FreeCADGui.dir/Quarter/QuarterWidget.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBUILD_ADDONMGR -DCMAKE_BUILD_TYPE=\"RelWithDebInfo\" -DFreeCADGui_EXPORTS -DHAVE_CONFIG_H -DHAVE_FREEIMAGE -DHAVE_GLES2 -DHAVE_PYSIDE2 -DHAVE_SHIBOKEN2 -DHAVE_TBB -DHAVE_VTK -DOCC_CONVERT_SIGNALS -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_SVG_LIB -DQT_UITOOLS_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -DSPNAV_FOUND -DVTK_OPENGL2_BACKEND -D_OCC64 -DvtkDomainsChemistry_AUTOINIT="1(vtkDomainsChemistryOpenGL2)" -DvtkIOExport_AUTOINIT="2(vtkIOExportOpenGL2,vtkIOExportPDF)" -DvtkRenderingContext2D_AUTOINIT="1(vtkRenderingContextOpenGL2)" -DvtkRenderingCore_AUTOINIT="3(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingOpenGL2)" -DvtkRenderingOpenGL2_AUTOINIT="1(vtkRenderingGL2PSOpenGL2)" -DvtkRenderingVolume_AUTOINIT="1(vtkRenderingVolumeOpenGL2)" -I/run/build/FreeCAD/_flatpak_build/src/Gui/FreeCADGui_autogen/include -I/run/build/FreeCAD/_flatpak_build -I/run/build/FreeCAD/_flatpak_build/src -I/run/build/FreeCAD/src -I/run/build/FreeCAD/src/Gui -I/run/build/FreeCAD/src/Gui/Quarter -I/run/build/FreeCAD/_flatpak_build/src/Gui -I/run/build/FreeCAD/src/Gui/.. -I/run/build/FreeCAD/_flatpak_build/src/Gui/.. -I/run/build/FreeCAD/_flatpak_build/src/Gui/Language -I/run/build/FreeCAD/_flatpak_build/src/Gui/propertyeditor -I/run/build/FreeCAD/_flatpak_build/src/Gui/TaskView -I/run/build/FreeCAD/_flatpak_build/src/Gui/Quarter -I/run/build/FreeCAD/_flatpak_build/src/Gui/DAGView -I/app/include/eigen3 -I/usr/include/python3.9 -I/app/include/shiboken2 -I/app/include/PySide2 -I/app/include/PySide2/QtCore -I/app/include/PySide2/QtGui -I/app/include/PySide2/QtWidgets -isystem /usr/include/QtCore -isystem /usr/lib/mkspecs/linux-g++ -isystem /usr/include/QtWidgets -isystem /usr/include/QtGui -isystem /usr/include/QtOpenGL -isystem /usr/include/QtPrintSupport -isystem /usr/include/QtSvg -isystem /usr/include/QtNetwork -isystem /usr/include/QtUiTools -isystem /usr/include/QtXml -Wall -Wextra -Wno-write-strings -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -O2 -g -DNDEBUG -fPIC -pthread -fPIC -std=gnu++17 -Wno-deprecated-copy -MD -MT src/Gui/CMakeFiles/FreeCADGui.dir/Quarter/QuarterWidget.cpp.o -MF src/Gui/CMakeFiles/FreeCADGui.dir/Quarter/QuarterWidget.cpp.o.d -o src/Gui/CMakeFiles/FreeCADGui.dir/Quarter/QuarterWidget.cpp.o -c /run/build/FreeCAD/src/Gui/Quarter/QuarterWidget.cpp
/run/build/FreeCAD/src/Gui/Quarter/QuarterWidget.cpp: In member function ‘virtual void SIM::Coin3D::Quarter::QuarterWidget::paintEvent(QPaintEvent*)’:
/run/build/FreeCAD/src/Gui/Quarter/QuarterWidget.cpp:869:18: error: ‘GL_PROJECTION’ was not declared in this scope; did you mean ‘GL_LOCATION’?
  869 |     glMatrixMode(GL_PROJECTION);
      |                  ^~~~~~~~~~~~~
      |                  GL_LOCATION
/run/build/FreeCAD/src/Gui/Quarter/QuarterWidget.cpp:869:5: error: ‘glMatrixMode’ was not declared in this scope
  869 |     glMatrixMode(GL_PROJECTION);
      |     ^~~~~~~~~~~~
/run/build/FreeCAD/src/Gui/Quarter/QuarterWidget.cpp:910:5: error: ‘glPushAttrib’ was not declared in this scope
  910 |     glPushAttrib(GL_MULTISAMPLE_BIT_EXT);
      |     ^~~~~~~~~~~~
/run/build/FreeCAD/src/Gui/Quarter/QuarterWidget.cpp:912:5: error: ‘glPopAttrib’ was not declared in this scope
  912 |     glPopAttrib();
      |     ^~~~~~~~~~~
[3275/4252] Building CXX object src/Gui/CMakeFiles/FreeCADGui.dir/CallTips.cpp.o
[3276/4252] Building CXX object src/Gui/CMakeFiles/FreeCADGui.dir/Quarter/QuarterWidgetP.cpp.o

@hfiguiere
Copy link
Contributor Author

This is with commit d0485c6bef of FreeCAD

@luzpaz
Copy link

luzpaz commented Apr 16, 2022

CC @wmayer since FreeCAD/FreeCAD@d0485c6 is your commit

@luzpaz
Copy link

luzpaz commented Apr 18, 2022

@donovaly just sending you a heads up about this issue. (For context, this repo builds the FreeCAD flatpack)

@hfiguiere
Copy link
Contributor Author

New issue: the latest version of pyside2 seems to fail to build on the aarch64 SDK (GLES2)

@hfiguiere
Copy link
Contributor Author

Downgrading pyside2 works for aarch64.

Now FreeCAD fails to build:

[3291/4266] Building CXX object src/Gui/CMakeFiles/FreeCADGui.dir/Quarter/QuarterWidget.cpp.o
FAILED: src/Gui/CMakeFiles/FreeCADGui.dir/Quarter/QuarterWidget.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_DATE_TIME_DYN_LINK -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_REGEX_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_THREAD_DYN_LINK -DBUILD_ADDONMGR -DCMAKE_BUILD_TYPE=\"RelWithDebInfo\" -DFreeCADGui_EXPORTS -DHAVE_CONFIG_H -DHAVE_FREEIMAGE -DHAVE_FREETYPE -DHAVE_GLES2_EXT -DHAVE_OPENGL_EXT -DHAVE_PYSIDE2 -DHAVE_RAPIDJSON -DHAVE_SHIBOKEN2 -DHAVE_TBB -DHAVE_TK -DHAVE_VTK -DHAVE_XLIB -DOCC_CONVERT_SIGNALS -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_SVG_LIB -DQT_UITOOLS_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -DSPNAV_FOUND -DVTK_OPENGL2_BACKEND -D_OCC64 -DvtkDomainsChemistry_AUTOINIT="1(vtkDomainsChemistryOpenGL2)" -DvtkIOExport_AUTOINIT="2(vtkIOExportOpenGL2,vtkIOExportPDF)" -DvtkRenderingContext2D_AUTOINIT="1(vtkRenderingContextOpenGL2)" -DvtkRenderingCore_AUTOINIT="3(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingOpenGL2)" -DvtkRenderingOpenGL2_AUTOINIT="1(vtkRenderingGL2PSOpenGL2)" -DvtkRenderingVolume_AUTOINIT="1(vtkRenderingVolumeOpenGL2)" -I/run/build/FreeCAD/_flatpak_build/src/Gui/FreeCADGui_autogen/include -I/run/build/FreeCAD/_flatpak_build -I/run/build/FreeCAD/_flatpak_build/src -I/run/build/FreeCAD/src -I/run/build/FreeCAD/src/Gui -I/run/build/FreeCAD/src/Gui/Quarter -I/run/build/FreeCAD/_flatpak_build/src/Gui -I/run/build/FreeCAD/src/Gui/.. -I/run/build/FreeCAD/_flatpak_build/src/Gui/.. -I/run/build/FreeCAD/_flatpak_build/src/Gui/Language -I/run/build/FreeCAD/_flatpak_build/src/Gui/propertyeditor -I/run/build/FreeCAD/_flatpak_build/src/Gui/TaskView -I/run/build/FreeCAD/_flatpak_build/src/Gui/Quarter -I/run/build/FreeCAD/_flatpak_build/src/Gui/DAGView -I/app/include/eigen3 -I/usr/include/python3.9 -I/app/include/shiboken2 -I/app/include/PySide2 -I/app/include/PySide2/QtCore -I/app/include/PySide2/QtGui -I/app/include/PySide2/QtWidgets -isystem /usr/include/QtCore -isystem /usr/lib/mkspecs/linux-g++ -isystem /usr/include/QtWidgets -isystem /usr/include/QtGui -isystem /usr/include/QtOpenGL -isystem /usr/include/QtPrintSupport -isystem /usr/include/QtSvg -isystem /usr/include/QtNetwork -isystem /usr/include/QtUiTools -isystem /usr/include/QtXml -Wall -Wextra -Wno-write-strings -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -O2 -g -DNDEBUG -fPIC -pthread -fPIC -std=gnu++17 -Wno-deprecated-copy -MD -MT src/Gui/CMakeFiles/FreeCADGui.dir/Quarter/QuarterWidget.cpp.o -MF src/Gui/CMakeFiles/FreeCADGui.dir/Quarter/QuarterWidget.cpp.o.d -o src/Gui/CMakeFiles/FreeCADGui.dir/Quarter/QuarterWidget.cpp.o -c /run/build/FreeCAD/src/Gui/Quarter/QuarterWidget.cpp
/run/build/FreeCAD/src/Gui/Quarter/QuarterWidget.cpp: In member function ‘virtual void SIM::Coin3D::Quarter::QuarterWidget::paintEvent(QPaintEvent*)’:
/run/build/FreeCAD/src/Gui/Quarter/QuarterWidget.cpp:869:18: error: ‘GL_PROJECTION’ was not declared in this scope; did you mean ‘GL_LOCATION’?
  869 |     glMatrixMode(GL_PROJECTION);
      |                  ^~~~~~~~~~~~~
      |                  GL_LOCATION
/run/build/FreeCAD/src/Gui/Quarter/QuarterWidget.cpp:869:5: error: ‘glMatrixMode’ was not declared in this scope
  869 |     glMatrixMode(GL_PROJECTION);
      |     ^~~~~~~~~~~~
/run/build/FreeCAD/src/Gui/Quarter/QuarterWidget.cpp:910:5: error: ‘glPushAttrib’ was not declared in this scope
  910 |     glPushAttrib(GL_MULTISAMPLE_BIT_EXT);
      |     ^~~~~~~~~~~~
/run/build/FreeCAD/src/Gui/Quarter/QuarterWidget.cpp:912:5: error: ‘glPopAttrib’ was not declared in this scope
  912 |     glPopAttrib();
      |     ^~~~~~~~~~~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants