-
Notifications
You must be signed in to change notification settings - Fork 274
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
Symbol not found: _aligned_alloc on MacOS 10.9.5 #543
Comments
@ferdnyc I would love your thoughts on this, if you have any. This just feels like a "CMake" or "GCC flag" type fix... your specialty! haha. |
I can also verify this error happens on MacOS 10.13 (High Sierra). But interestingly, the error message includes a hint:
|
Hmm. First thought: Support for Python 3.6 was officially added in cx_Freeze 5.0.1. cx_Freeze 5.0 might just be too old. |
What happens if you take cx_Freeze out of the mix and just try to run OpenShot from the source tree? That is, from a Mac Terminal, do a cd /path/to/the/cloned/openshot-qt/src
PYTHONPATH=/path/to/libopenshot/build_dir/src/bindings/python/ python3 launch.py ? |
Hmm. It looks like neither How/when was PyQt5 built for this system? If it wasn't compiled on the MacOS release currently installed, it may need to be rebuilt. Finding a way to work |
Also, regarding |
I think the PyQt and Qt releases are older and almost certainly were compiled on an ancient toolchain. Perhaps that is a great place to start, updating Python, cx_freeze, Qt, Sip, and PyQt. Of course, this will break our Mac builds again for a few days while I sort through the chaos, but it makes since that I need to update the dependencies. |
@ferdnyc Okay, this is actually a nightmare situation, similar to our older Linux builder. Qt 5.5 is the last official release to contain qtwebkit. Of course, I was using the prebuild MacOS version from qt.io (brew versions had issues with packaging and deployment), and manually compiling Sip and PyQt. The oldest official MacOS build I can get is Qt 5.9.9, which of course, has long since removed QtWebKit. I'm having trouble finding source code for any of these old versions, from qt.io or riverbank. So... Long story short, I think it's finally time for QtWebEngine!!!! This is too painful... |
@jonoomph Nahh, in some ways QtWebKit is better supported now than when it was part of Qt. It's just an external project, which lives here: https://github.com/qtwebkit/qtwebkit |
You may even be able to use their binary package: qtwebkit-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z
...If that doesn't work, AIUI building it is fairly easy if you have a working Qt install, it's just a matter of unpack source, |
@jonoomph, does this mean you are rebuilding the entire interface using HTML? |
@jeffski No, just the timeline, which is already in HTML. (He's switching the backend from QtWebKit to QtWebEngine.) |
You know this means we're going to HAVE to upgrade the Linux builder too, now, right? QtWebEngine was pretty much broken in Qt 5.2. (It was broken until Qt 5.6, from what I hear.) ...Not that we shouldn't upgrade the Linux builder regardless, to move it off an EOL'd Ubuntu release, of course. |
@ferdnyc Yup, this is probably also the time to drop support for some older Linux distros with old versions of glib. I'm open to recommendations on what version of Ubuntu (but I would prefer we keep it on Ubuntu, since I most experienced with it). Not sure what distro AppImage recommends these days... I guess I need to do some research. I'm already so deep in this from completely rebuilding the Mac builder, I figure, bring it on. Let's rebuild all the builders! |
@jonoomph The AppImage recommendation is still "use the oldest supported", AFAIK, but... I've somewhat lost faith in that recommendation. (Actually, it's fairer to say that I've become somewhat disillusioned with AppImages, period. Because it's become apparent that their recommendation — which is essential to the entire AppImage concept — is based on a faulty.premise. The notion that software which uses older dependencies will run on newer systems any better than newer software will run on older systems may be true, for simple userspace applications, but it breaks down the moment you need to access any of the underlying system resources, and especially if you need to talk to hardware. Then, incompatibilities in either direction are equally likely to screw you over.) The reason that hardware acceleration completely blew up in the AppImage builds (OpenShot/openshot-qt#3210), and why ultimately it had to be disabled, is because our AppImage bundles
...So, personally, I think if we're going to upgrade the builder to a newer Ubuntu release, it should be 18.04 (Bionic). I do see some value in sticking with the oldest release that's workable, so there's no point in going with the just-released Focal — that's too new. But the actual "oldest supported", Xenial (16.04) (which still technically has almost a year left before EOL), is a bad idea because it was still on Bionic does bring us |
Just a little information. I had this libva problem already while programming the hardware acceleration and wrote to Jonathan about it way back. But it doesn't stop there, the SVT_* encoders tent you only compile for CPU with AVX2 commands. Unfortunately on new multi core CPU they are quite fast, like really fast. |
Want to cover more PCs or to make soft more reliable? AppImage is step back. Old Mac is step back too. Really, programmers are living in other world than users. Interesting, is the switch to the QtWebEngine (and dependencies update) actually solves the |
Yeah, I saw the notes about it in the
Some Fedora developers tried to push moving the distro baseline to AVX2 around a year ago. After a rather deafening outcry from the community as a whole, the proposal was soundly rejected. They're still trying to "explore" AVX2-only builds in roundabout ways, but frankly they're just nuts. The proposal was made following "discussions with CPU vendors" (who are of course gung-ho about it, can't imagine why ), but as was pointed out in the feedback email I don't doubt that the benefits are significant, but moving to an AVX2 build just feels like a non-starter, especially for the AppImage which is meant to be sort of lowest-common-denominator. And it's not like hardware-accel, a "be nice if it worked, but it doesn't so you're stuck with software encoding" kind of thing. If your hardware doesn't support AVX2 (which most doesn't, today) the app just doesn't run, period.
There is one way we could possibly make that work, though it's a tricky tightrope act even still and it's debatable whether the hassle would be worth it. This is something I'd come up with in thinking about the Imagine an AppImage with multiple library directories, instead of everything dumped in
Currently when the AppImage launches, what happens is:
But in our new setup, the
Once There's at least the possibility that a setup like that could get us a little closer to actually achieving that (frankly, overstated/sorely-lacking) holy grail of universal binary compatibility. Which, even though it's the entire premise upon which AppImages were based, is something they've never really lived up to so far. |
Well, you're the Linux expert.
It's not intended to. Or, rather, you've got that the wrong way around. The intention is to move to a newer version of Qt / PyQt5, because the one we're currently shipping for Macs is Qt 5.5 which is ancient, And it does bad things like link with The belief is that a newer Qt build — something actually-modern like The move to a Qt version > 5.5, though, means having to deal with the fact that QtWebKit was removed from the Qt distribution starting with the 5.6 release. QtWebEngine is Qt's still-supported replacement for QtWebKit.
How do you propose they do that, when it isn't even finished yet? For a user to test an OpenShot build that uses Qt > 5.5 without QtWebKit available, there needs to be some alternative solution for how it can run the timeline. |
@ferdnyc it is simple management. You deviate from the issue itself. And you are spending a lot of time on side tasks. Qt itself is major issue in libopenshot by the way. |
@SuslikV Please refer once again to https://github.com/OpenShot/openshot-qt/wiki/Code-of-Conduct. I've been very patient with your rudeness and lack of respect, but after 3 warnings to be respectful and follow our Code of Conduct, your behavior remains unchanged. You are now blocked from contributing on OpenShot's GitHub repos. Thanks for the positive things you contributed, and I hope you find a better outlet for yourself. |
@ferdnyc Well said! |
@ferdnyc |
@ferdnyc |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
A user reported this to me on MacOS 10.9.5 running our latest Mac builds. When launching OpenShot, an error during loading PyQt5.QtCore.so, looking for a missing symbol:
Symbol not found: _aligned_alloc
. It is expecting that symbol in/usr/lib/System.B.dylib
.We are currently building with GCC 8.4 on MacOS 10.15 (Catalina), and using the MacOS 10.9 SDK while building. Hopefully this can be solved with some compiler flags, or something simple. Our current CMake command used on our Mac builder:
cmake -DCMAKE_CXX_FLAGS=-I\ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -D"CMAKE_INSTALL_PREFIX:PATH=$CI_PROJECT_DIR/build/install-x64" -DCMAKE_CXX_COMPILER=/usr/local/opt/gcc@8/bin/g++-8 -DCMAKE_C_COMPILER=/usr/local/opt/gcc@8/bin/gcc-8 -DCMAKE_PREFIX_PATH=/usr/local/qt5/5.5/clang_64 -DPYTHON_INCLUDE_DIR=/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m -DPYTHON_LIBRARY=/Library/Frameworks/Python.framework/Versions/3.6/lib/libpython3.6.dylib -DPYTHON_MODULE_PATH=python -DPython_FRAMEWORKS=/Library/Frameworks/Python.framework/ -D"CMAKE_BUILD_TYPE:STRING=Release" -D"CMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" -D"CMAKE_OSX_DEPLOYMENT_TARGET=10.9" -D"CMAKE_INSTALL_RPATH_USE_LINK_PATH=1" -D"ENABLE_RUBY=0" ../
The text was updated successfully, but these errors were encountered: