Comments (10)
The ci failure mode(s) have also been changed since GitHub macos runners switched to arm64:
Before, there were errors about surface mismatches.
Now, IMG_Init(IMG_INIT_JXL)
fails because it cannot find libjxl.0.10.dylib
.
There is also an issue with libwebpdemux.2.dylib
from sdl_image.
Now,
IMG_Init(IMG_INIT_JXL)
fails because it cannot findlibjxl.0.10.dylib
. There is also an issue with libwebpdemux.2.dylib
Ouch. How is that happening? Something wrong with brew (e.g. not adding to dyld cache or something)?
from sdl_image.
Ouch. How is that happening? Something wrong with brew (e.g. not adding to dyld cache or something)?
I don't know how macOS dyld works but it seems like no homebrew library can be loaded at all.
All libraries provided by homebrew cannot be found: libavif, libjxl, and libwebp. (I removed installation of libjpeg, libpng, and libtiff)
The macOS job now uploads CMake logs that hint homebrew installs to /opt/homebrew
(e.g. the CMake cache contains libjxl_LIBRARY:FILEPATH=/opt/homebrew/lib/libjxl.dylib
).
But the IMG_Init
error message is:
Initialization should succeed (Failed loading libjxl.0.10.dylib: dlopen(libjxl.0.10.dylib, 0x0006): tried: 'libjxl.0.10.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibjxl.0.10.dylib' (no such file), '/Users/runner/work/SDL_image/SDL_image/build/libjxl.0.10.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/runner/work/SDL_image/SDL_image/build/libjxl.0.10.dylib' (no such file), '/var/folders/3m/p59k4qdj0f17st0gn2cmj3640000gn/T/setupsdl/66c57facf1111a4ec08d3d1abdf3c87f3062ffbea8d9eb4c9c412e9b5e7f59b7/package/lib/libjxl.0.10.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/var/folders/3m/p59k4qdj0f17st0gn2cmj3640000gn/T/setupsdl/66c57facf1111a4ec08d3d1abdf3c87f3062ffbea8d9eb4c9c412e9b5e7f59b7/package/lib/libjxl.0.10.dylib' (no such file), '/usr/lib/libjxl.0.10.dylib' (no such file, not in dyld cache), 'libjxl.0.10.dylib' (no such file))
There is no /opt/homebrew/lib
path in the error message.
from sdl_image.
Looks like macos >= 13 has the issue. Changing the runner to macos-12, we get the old surface mismatch
There is no /opt/homebrew/lib path in the error message.
I guess the path is on macos libs path, because cmake can found them, yes?
Is it possible that macos-13 (arm64?) versions somehow quarantine those libs
and dlopen fails because of it?
from sdl_image.
Looks like CMake hardcodes /opt/homebrew
.
This is also the default homebrew installation path.
This homebrew discussion is related.
The shellenv suggestion might work for our purposes.
from sdl_image.
Yes, looks like we'll need to add homebrew lib directory to dyld path somehow in our workflows
from sdl_image.
When I add the homebrew library path to DYLD_LIBRARY_PATH
, the test fails with a BUS error.
https://github.com/madebr/SDL_image/actions/runs/8927177439/job/24519945832#step:13:152
It fails during the BMP test, after successfully completing the avif test.
Or at least, that is what it appears like because the logs might be incomplete.
When doing a search for "bus error DYLD_LIBRARY_PATH`, it looks like these errors are not uncommon.
Adding /opt/homebrew/lib
to SDL_image's rpath won't fix the issue: it must be added to SDL3 (dlopen
happens there)
from sdl_image.
When I add the homebrew library path to
DYLD_LIBRARY_PATH
, the test fails with a BUS error. https://github.com/madebr/SDL_image/actions/runs/8927177439/job/24519945832#step:13:152It fails during the BMP test, after successfully completing the avif test. Or at least, that is what it appears like because the logs might be incomplete. When doing a search for "bus error DYLD_LIBRARY_PATH`, it looks like these errors are not uncommon.
Misalinged stack or something? I wonder whether or not it happens in SDL2 too.
from sdl_image.
Looks like msys started installing libjxl 0.10.2 and our tests started failing there too: https://github.com/libsdl-org/SDL_image/actions/runs/9005679096/job/24741542312
from sdl_image.
Can we not raise this issue in libjxl bug tracker somehow?
from sdl_image.
Related Issues (20)
- Build fails on MSYS2 HOT 4
- Failure to build SDL3_image HOT 4
- [2.8.x] Double-free if IMG_SaveJPG_RW_jpeglib() fails and IMG_SaveJPG_RW_tinyjpeg() is tried HOT 4
- Failing to save a JPEG with libjpeg crashes when it uses an uninitialized jmp_buf HOT 1
- [2.x] Autotools build can detect the wrong libjpeg HOT 10
- Factor out the parts of IMG_LoadJPG_RW where locals can be clobbered by setjmp()/longjmp()
- `SDL_RWops_renamed_SDL_IOStream` with latest SDL3 commit
- Create SDL3 stub library (.tbd) for use by the xcode projects of SDL satellite libraries
- CMake configure error on install with libavif with FetchContent on main (for SDL3) HOT 1
- Statically linking an executable with JPEG XL enabled breaks the build at link time HOT 2
- Build failed: too few arguments to function ‘SDL_CreateWindowAndRenderer’ HOT 1
- CI: macos ninja setup failure HOT 12
- -Wmaybe-uninitialized warnings from gcc-14 HOT 4
- -Wstringop-overflow warning from gcc-14 HOT 1
- libwebp DLLs aren't detected by CMake's `$<TARGET_RUNTIME_DLLS:...>` with FetchContent HOT 2
- Build failing because a macro has been removed from SDL HOT 1
- SDL_image + libpng load some PNGs incorrectly HOT 4
- cmake: SDL_Image enabling PNG_BUILD_ZLIB ON for libpng submodule resulting in code deprecation
- Build is broken with gcc due to a wrong placement of `__attribute__ ((optnone))`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sdl_image.