LINUX.ORG.RU
ФорумTalks

[вещества] [пятница] [бред] [amd64] Динамические библиотеки

 , , ,


0

1

Как известно, на 64-битных системах для запуска 32-битных бинарников требуется полный комплект 32-битных библиотек. А что, если сделать универсальный ABI-переходник, который бы парсил хидеры и создавал 32-битную библиотеку-враппер, которая экспортировала бы те же символы, но была бы 32-битной?

Мну представляет примерную реализацию так: есть некий демон, порождаемый враппером при старте программы, к которому линкуются 64-битные библиотеки. Когда 32-битная программа делает вызов к функции враппера, враппер по некоторому IPC передает демону параметры функции, демон вызывает функцию и по тому же IPC возвращает результат.

Только вот возникает две проблемы: у библиотеки может быть какая-либо привязка к PID-у вызванного процесса (в том числе, она юзает или предоставляет доступ к ресурсам, которые привязаны ядром к конкретному процессу, как, например, открытые файлы), и главаня проблема - что делать с указателями? (тут можно пойти разными путями, но все они требуют знания враппера о том, для чего в данном конкретном случае применяются указатели).

Обосrите идею и предложите методы решения проблемм.

Deleted

Зачем плодить тормоза? Надо просто собрать 64-битные либы, устраняя мешающие этому препятствия, а не страдать хернёй, изобретая эмуляторы и врапперы.

const86 ★★★★★
()
Ответ на: комментарий от const86

Надо просто собрать 64-битные либы, устраняя мешающие этому препятствия, а не страдать хернёй, изобретая эмуляторы и врапперы.

Предложите метод линковки 32-битных приложений и 64-битных библиотек.

А насчет тормозов - все зависит от реализации. При нормальной реализации оверхед будеи небольшой.

Deleted
()

>предложите методы решения проблемм.
Предлагаю купить жесткий диск побольше, не так дорого. Тормоза и глюки дороже.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

Спасибо за совет, но не угадали. Пишу с компьютера, на котором 640 Гб, из которых больше половины свободно. Рядом стоит компьютер, у которого 500 Гб, и тоже больше половины свободно. Просто уже задрали:

1) ни один дистростроитель не ложит все-все-все 32-битные сборки библиотек

2) версии 32-битных библиотек иногда отличаются от версий 64-битных

Deleted
()
Ответ на: комментарий от Deleted

> Предложите метод линковки 32-битных приложений и 64-битных библиотек.

Собрать приложения под 64 бита ;)

При нормальной реализации оверхед будеи небольшой.

Особенно когда в либу передаётся ссылочка на большую кучу данных, с которыми работают и либы, и вызывающая прога.

const86 ★★★★★
()
Ответ на: комментарий от Deleted

>1) ни один дистростроитель не ложит все-все-все 32-битные сборки библиотек
А все-все все обычно и не надо.

>2) версии 32-битных библиотек иногда отличаются от версий 64-битных
Ну, это уже либо проблема конкретного дистрибутива, либо, если в самой библе так, сделано с каким-то умыслом, и, наверное, так и надо.

Пока такой костыль допилят до рабочего состояния, уже, наверное, x86 загнется. Особенно с учетом того, что большинство скажет: «Нафиг нам это в опенсорсе не надо», так же, как сказали Райану Гордону про FatELF.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

так же, как сказали Райану Гордону про FatELF

А зря, в если бы его жирные эльфы, да в библиотеки...

Deleted
()
Ответ на: комментарий от thunar

У меня таких немного, но даже те, которые есть, доставляют достаточно неудобств. Именно из-за различных версий библиотек либо отсутствия некоторых библиотек.

Deleted
()
Ответ на: комментарий от thunar

Да элементарный wine, например, линкуется с libGL.so, который линкуется с dri-модулями, а в ia32-libs debian wheezy dri-модули явно устаревшие без поддержки моего sandy bridge (матерятся, что не знают такой карты).

Хотя debian вроде исправляется - придумали multiarch, который решил бы все проблемы, дав возможность ставить обычные 32-битные пакеты.

Deleted
()
Ответ на: комментарий от Deleted

> 1) ни один дистростроитель не ложит все-все-все 32-битные сборки библиотек


2) версии 32-битных библиотек иногда отличаются от версий 64-битных

Пользователи арча и осилившие настоящий мультилиб гентушники смотрят на тебя с недоумением.

pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

Пользователи арча и осилившие настоящий мультилиб гентушники смотрят на тебя с недоумением.

+1

DarkAmateur ★★★★
()
Ответ на: комментарий от Deleted

А насчет тормозов - все зависит от реализации. При нормальной реализации оверхед будеи небольшой.

ну разве что транслировать бинарный код как-то, иначе тормоза гарантированы.

true_admin ★★★★★
()

имхо:
1) тормозно
2) сложно в реализации, а значит будут глюки и будет часто ломаться. Чем топорнее решение, тем оно надёжнее

koirn
()

Ещё один извращенец.

Deleted
()
Ответ на: комментарий от Deleted

>1) ни один дистростроитель не ложит все-все-все 32-битные сборки библиотек
Плохой дистрибутив? Собери в чруте хороший.

x3al ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.