Как изменить каталог поиска GCC по умолчанию для crti.o?

Я хотел бы указать каталог поиска GCC для startfile и endfile: crt1.o, crti.o и crtn.o. Передача -B в командной строке драйверу GCC работает, но неудобно. Как изменить файл спецификаций (lib/gcc/x86_64-unknown-linux-gnu/4.9.2/specs), чтобы указать путь поиска для startfile?

Я попытался добавить опцию -B к спецификации startfile и получил ошибку: ld: unrecognized option '-B/gsc/btl/linuxbrew/lib'

Затем я попытался добавить параметр -B к спецификации cc1 и получил ошибку: cc1: error: command line option '-B/gsc/btl/linuxbrew/lib' is valid for the driver but not for C

Если это невозможно сделать с помощью файла specs, есть ли переменная среды или параметр конфигурации для GCC, который выполняет ту же цель?

Я установил последнюю версию glibc в свой домашний каталог. Все отлично работает. Я изменил файл specs, чтобы связать его с новой версией glibc, но он по-прежнему связан со старой версией системы в /usr из startfile и endfile.

Вот вопрос без ответа в списке рассылки gcc-help. Вот связанная ошибка Linuxbrew, gfortran не работает с автономным Linuxbrew, и предлагаемое исправление, gcc, binutils: ссылка на Cellar вместо системных библиотек.

Спасибо,
Шон


person Shaun Jackman    schedule 06.03.2015    source источник


Ответы (2)


Вы можете использовать абсолютный путь в разделах *startfile: и *endfile: файла спецификаций вместо относительных путей по умолчанию. Это переопределит выбор GCC местоположения по умолчанию.

person Florian Weimer    schedule 09.02.2019

Согласно https://wiki.debian.org/Multiarch/LibraryPathOverview, gcc будет искать файлы запуска, такие как crt1.o в $(sysroot)/lib, поэтому вы можете указать параметр --sysroot при запуске gcc или скомпилировать gcc с --with-sysroot.

person Michael    schedule 15.11.2018
comment
К сожалению, когда я попробовал --sysroot с пользовательской сборкой glibc, она потерпела неудачу с другой ошибкой: cannot find libgcc_s.so.1 и, похоже, все еще использовала хостовые: stackoverflow.com/questions /10412684/ - person Ciro Santilli 新疆再教育营六四事件ۍ 25.03.2021