Bug#1051946: libsdl2-dev: sdl2-config --static-libs will fail with clang-16 and above.
Bram Stolk
b.stolk at gmail.com
Thu Sep 14 18:39:51 BST 2023
Package: libsdl2-dev
Version: 2.28.3+dfsg-2
Justification: sdl2-config can fail to get the proper link flags.
This used to work with both gcc and clang, but now when using clang, it
fails:
$ CC=clang-16 sdl2-config --static-libs
clang: error: unsupported option '-print-multiarch'
clang: error: no input files
/usr/lib//libSDL2.a -lm -lasound -lm -ldl -lpthread -lpulse-simple -lpulse
-pthread -lsamplerate -lX11 -lXext -lXcursor -lXi -lXfixes -lXrandr -lXss
-ldrm -lgbm -lwayland-egl -lwayland-client -lwayland-cursor -lxkbcommon
-ldecor-0 -lpthread
The reason for this failure is the fact that clang has removed support for
the -print-multiarch flag.
See:
https://github.com/llvm/llvm-project/commit/e05edb19adbfd1b24f58d583e4b5b4d742f982ee
I first tried reporting this with Ubuntu, then with SDL2 upstream, but the
source of this bug actually stems from a debian patch.
See: debian/patches/no-libdir.patch
The author of the patch states that:
"a compiler for the host architecture that supports the -print-multiarch
argument (which Debian's gcc and clang do)"
This is no longer true, as clang will not take that flag.
The SDL2 upstream will not execute the compiler to determine the library
dir. This is debian-specific (and inherited by Ubuntu.)
>From my testing, it seems that clang v 16 and above is affected.
I have produced this bug on:
Ubuntu 23.04 Lunar Lobster
Ubuntu 23.10 Mantic Minotaur
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-sdl-maintainers/attachments/20230914/d902c541/attachment.htm>
More information about the Pkg-sdl-maintainers
mailing list