Bug 47750 - Не работает с -D_FILE_OFFSET_BITS=64
Summary: Не работает с -D_FILE_OFFSET_BITS=64
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: libmpg123-devel (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Yuri N. Sedunov
QA Contact: qa-sisyphus
URL:
Keywords:
: 47751 (view as bug list)
Depends on:
Blocks:
 
Reported: 2023-09-27 10:11 MSK by Ivan A. Melnikov
Modified: 2023-10-03 11:10 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan A. Melnikov 2023-09-27 10:11:27 MSK
/usr/include/mpg123.h из libmpg123-devel 1.32.1-alt1 совершает особые препроцессорные трюки, после которых, если при компиляции определён символ препроцессора _FILE_OFFSET_BITS, многие функции libmpg123 преобретают суффикс '_64' в названии.

$ cat test.c
#include <mpg123.h>
int main() {
    void* p = &mpg123_open_handle;
    return p == 0;
}
$ gcc test.c -lmpg123
$ gcc -D_FILE_OFFSET_BITS=64 test.c -lmpg123
ld: /tmp/.private/iv/ccODy4Re.o: in function `main':
test.c:(.text+0x7): undefined reference to `mpg123_open_handle_64'
collect2: error: ld returned 1 exit status

То есть, просто собрать получается, а с -D_FILE_OFFSET_BITS=64. От этого развалилась сборка audacity:

ld: /usr/src/tmp/ccoKem8v.ltrans78.ltrans.o: in function `(anonymous namespace)::MP3ImportFileHandle::MP3ImportFileHandle(wxString const&)':
/usr/src/RPM/BUILD/audacity-src-3.3.3/src/import/ImportMP3_MPG123.cpp:205:(.text+0x1464): undefined reference to `mpg123_replace_reader_handle_64'
ld: /usr/src/tmp/ccoKem8v.ltrans78.ltrans.o: in function `(anonymous namespace)::MP3ImportPlugin::Open(wxString const&, AudacityProject*)':
/usr/src/RPM/BUILD/audacity-src-3.3.3/src/import/ImportMP3_MPG123.cpp:478:(.text+0x1abc): undefined reference to `mpg123_open_handle_64'
ld: /usr/src/tmp/ccoKem8v.ltrans78.ltrans.o:/usr/src/RPM/BUILD/audacity-src-3.3.3/src/import/ImportMP3_MPG123.cpp:490:(.text+0x1ae6): undefined reference to `mpg123_decode_frame_64'
ld: /usr/src/tmp/ccoKem8v.ltrans78.ltrans.o: in function `(anonymous namespace)::MP3ImportFileHandle::Import(WaveTrackFactory*, std::vector<std::vector<std::shared_ptr<WaveTrack>, std::allocator<std::shared_ptr<WaveTrack> > >, std::allocator<std::vector<std::shared_ptr<WaveTrack>, std::allocator<std::shared_ptr<WaveTrack> > > > >&, Tags*)':
/usr/src/RPM/BUILD/audacity-src-3.3.3/src/import/ImportMP3_MPG123.cpp:276:(.text+0x7e6d): undefined reference to `mpg123_framelength_64'
ld: /usr/src/RPM/BUILD/audacity-src-3.3.3/src/import/ImportMP3_MPG123.cpp:294:(.text+0x8494): undefined reference to `mpg123_decode_frame_64'
collect2: error: ld returned 1 exit status

Кажется, VLC тоже пострадал от этого.
Comment 1 Ivan A. Melnikov 2023-09-27 10:13:12 MSK
Кажется, нужно или добавить в configure --disable-portable, чтобы функции *_64 появились в библиотеке, или пропатчить заголовочный файл чтобы он ничего такого не делал.
Comment 2 Ivan A. Melnikov 2023-09-27 10:17:39 MSK
> Кажется, VLC тоже пострадал от этого.

Примерный список пострадавших:

audacity-3.3.3-alt2
gst-plugins-good1.0-1.22.6-alt1
mpd-0.23.13-alt1
mplayer-1.5-alt1.38416.2
slade-3.2.4-alt1
vlc-3.0.18-alt3
Comment 3 Yuri N. Sedunov 2023-09-27 12:37:06 MSK
*** Bug 47751 has been marked as a duplicate of this bug. ***
Comment 4 Yuri N. Sedunov 2023-09-27 12:44:33 MSK
Откатил на 1.31.3.
#330461 BUILDING #1 [locked] [test-only] sisyphus srpm=mpg123-1.31.3-alt1.src.rpm

На всякий проверьте перед отправкой в сизиф.
Comment 5 Ivan A. Melnikov 2023-09-27 15:14:06 MSK
(In reply to Yuri N. Sedunov from comment #4)
> Откатил на 1.31.3.
> #330461 BUILDING #1 [locked] [test-only] sisyphus
> srpm=mpg123-1.31.3-alt1.src.rpm
> 
> На всякий проверьте перед отправкой в сизиф.

Сборке audacity помогло.
Comment 6 Repository Robot 2023-09-27 16:03:49 MSK
mpg123-1:1.31.3-alt1 -> sisyphus:

 Wed Sep 27 2023 Yuri N. Sedunov <aris@altlinux> 1:1.31.3-alt1
 - rollback to 1.31.3 (ALT #47750)