1

Здравствуйте!

Как в 64-разрядной системе сказать ld, что ему передаётся 32-разрядный объектный модуль,
чтобы он подключал 32-разрядные библиотеки и 32-разрядный crt1.o?
Там в примере есть и Makefile и небольшой скрипт на /bin/sh, т.е. на /bin/dash,
он возвращает в Makefile версию liibc. В нём также есть команда, с помощью которой
можно получить правильный путь (/usr/lib32).

Но как в 64-разрядной системе указать ld, чтобы он использовал 32-разрядное окружение?
Я пробовал с помощью опций "-z nodefaultlib" и -rpath и -rpath-link, но "-z" не принимается.

Пётр.

Пётр.

2

Оказалось, надо было добавить опцию компилятора "-m32" не только в команду,
по которой строится объекьный модуль, но и в ту, по которой создаётся исполнимый файл.
Теперь построился 32-разрядный ELF.

Пётр.

Пётр.