Summary: | media-libs/sdl2-mixer-2.8.1-r1: fails to compile (src/codecs/music_mpg123.c.o: in function `MPG123_Load': music_mpg123.c:(.text+0xaa): undefined reference to `mpg123_open_handle') | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Sam James <sam> |
Component: | Current packages | Assignee: | Gentoo Games <games> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | ionen, mechakotik, proxy-maint |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: |
https://bugs.gentoo.org/show_bug.cgi?id=945154 https://bugs.gentoo.org/show_bug.cgi?id=946818 https://bugs.gentoo.org/show_bug.cgi?id=950965 https://bugs.gentoo.org/show_bug.cgi?id=951124 |
||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 942561 | ||
Attachments: | build.log |
Description
Sam James
![]() ![]() ![]() ![]() $ CFLAGS="-O2" CXXFLAGS="-O2" LDFLAGS="-Wl,-O1" e sdl2-mixer-2.8.1-r1.ebuild clean compile I'll look at it but tomorrow unless beaten to it. Could've sworn that I tried abi_x86_32, maybe I had mp3 disabled when I did. Not really looked, but giving vibes of issue being on mpg123's side unless there's some macro to select the right symbol or something. # nm -D /usr/lib64/libmpg123.so | grep mpg123_seek 0000000000024330 T mpg123_seek 0000000000013c90 T mpg123_seek64 00000000000244d0 T mpg123_seek_64 0000000000024370 T mpg123_seek_frame 00000000000138e0 T mpg123_seek_frame64 00000000000244f0 T mpg123_seek_frame_64 # nm -D /usr/lib/libmpg123.so | grep mpg123_seek 00015340 T mpg123_seek64 00029aa0 T mpg123_seek_64 00014c70 T mpg123_seek_frame64 00029b20 T mpg123_seek_frame_64 Probably related to: src/libmpg123/lfs_wrap.c:off_t attribute_align_arg mpg123_seek(... Maybe these wrappers are not being built or something. (only) when doing abi_x86_32, mpg123 gives: configure: Detected system with enforced 64 bit offsets, dropping suffixless symbols for uncryptic ABI breakage. sets FORCED_OFF_64, and wrappers are behind #ifndef FORCED_OFF_64 Dropping `append-lfs-flags` fixes it, not sure what to think of this but given all its internal handling for LFS maybe we don't need to pass that? (In reply to Ionen Wolkens from comment #4) > Dropping `append-lfs-flags` fixes it, not sure what to think of this but > given all its internal handling for LFS maybe we don't need to pass that? Seems append-lfs-flags appeared for the first time as part of mpg123-1.31.1 bump (commit 3b489d9604c80f3ec45826d21fe16c0ca6836e5a) without any specific note about it back in 2022. Should we drop it? It only adds symbols and not remove, so I think it's safe. I think that sounds right. append-lfs-flags is really for two things: 1) making off_t 64-bit, and 2) exposing the dual *64 interfaces for programs which want to use those Neither of those apply here as mpg123 rolls its own, and it reasonably bails out from its mechanism when it sees 1). Drop it, I think. The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=292006da0e16c60ff4f9592edc2f594e3b4924b3 commit 292006da0e16c60ff4f9592edc2f594e3b4924b3 Author: Ionen Wolkens <ionen@gentoo.org> AuthorDate: 2025-03-10 08:13:44 +0000 Commit: Ionen Wolkens <ionen@gentoo.org> CommitDate: 2025-03-10 08:21:21 +0000 media-sound/mpg123-base: do not use append-lfs-flags mpg123 does its own lfs handling, and passing this causes the 32bit version of libmpg123 to drop its non-*64 symbols leading to revdeps that expect these to exist to fail. Bug: https://bugs.gentoo.org/945154 Closes: https://bugs.gentoo.org/946818 Closes: https://bugs.gentoo.org/951101 Signed-off-by: Ionen Wolkens <ionen@gentoo.org> .../{mpg123-base-1.32.10.ebuild => mpg123-base-1.32.10-r1.ebuild} | 2 -- .../{mpg123-base-1.32.9.ebuild => mpg123-base-1.32.9-r1.ebuild} | 2 -- 2 files changed, 4 deletions(-) |