Как переопределить местоположение для динамически связанных libgcc_s?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как переопределить местоположение для динамически связанных libgcc_s?

Сообщение Anonymous »

Я пытаюсь создать исполняемый файл в системе Debian Bookworm для запуска в Debian Bullseye.
Я загрузил и распаковал пакеты библиотек для Bullseye в специальные каталоги для создания ссылок.
Однако, несмотря на то, что я добавляю расположение старого libgcc_s.so в путь выполнения, общесистемная версия по-прежнему предпочтительнее. Что не так?

Код: Выделить всё

bodqhrohro@debian:~/git/td/build$ ldd tdutils/generate/generate_mime_types_gperf
tdutils/generate/generate_mime_types_gperf: /home/bodqhrohro/git/glibc/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by tdutils/generate/generate_mime_types_gperf)
tdutils/generate/generate_mime_types_gperf: /home/bodqhrohro/git/glibc/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_ABI_DT_RELR' not found (required by /lib/x86_64-linux-gnu/libm.so.6)
tdutils/generate/generate_mime_types_gperf: /home/bodqhrohro/git/glibc/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.35' not found (required by /lib/x86_64-linux-gnu/libgcc_s.so.1)
tdutils/generate/generate_mime_types_gperf: /home/bodqhrohro/git/glibc/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /lib/x86_64-linux-gnu/libgcc_s.so.1)
linux-vdso.so.1 (0x00007fffc6be8000)
libstdc++.so.6 => /home/bodqhrohro/git/libstdc++/usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fd49918c000)
libc.so.6 => /home/bodqhrohro/git/glibc/lib/x86_64-linux-gnu/libc.so.6 (0x00007fd498fb8000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd498ebd000)
/home/bodqhrohro/git/glibc/lib64/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x00007fd499364000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd498e9d000)
bodqhrohro@debian:~/git/td/build$ objdump -p tdutils/generate/generate_mime_types_gperf |grep RUNPATH
RUNPATH              /home/bodqhrohro/git/glibc/lib/x86_64-linux-gnu:/home/bodqhrohro/git/libstdc++/usr/lib/x86_64-linux-gnu:/home/bodqhrohro/git/libgcc-s1/lib/x86_64-linux-gnu:/home/bodqhrohro/git/libssl/usr/lib/x86_64-linux-gnu
bodqhrohro@debian:~/git/td/build$ ls -l /home/bodqhrohro/git/libgcc-s1/lib/x86_64-linux-gnu/
total 100
-rw-r--r-- 1 bodqhrohro bodqhrohro 100736 Jan 10  2021 libgcc_s.so.1
Я пытался использовать -static -Wl,-Bdynamic,-lgcc_s,-Bstatic, таким образом компиляция каким-то образом завершается успешно, и эта небольшая промежуточная утилита запускается во время процесса сборки успешно в той же системе, но ldd показывает, что это не динамический исполняемый файл. Действительно ли это так и должно работать? И этот подход не подходит, поскольку основной исполняемый файл должен быть динамически связан с OpenSSL, а не быть полностью статическим.

Подробнее здесь: https://stackoverflow.com/questions/781 ... d-libgcc-s
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»