LFS: GCC ссылки WORGN

Я застрял в главе 6.20 текущей книги LFS. Я получил:

$ readelf -l a.out | grep Requesting                                        
[Requesting program interpreter: /tools/lib64/ld-linux-x86-64.so.2]

вместо желаемого:

[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]

Все остальные тесты, приведенные ниже в этой главе, успешно пройдены.

Это мой второй раз, когда вся книга была чрезвычайно осторожной, и в прошлый раз я получил такой же результат. Может ли быть какая-то ошибка?

Для справки просто сказано: "Наиболее вероятная причина в том, что что-то пошло не так с настройкой файла спецификации". Это ссылка на 6.10, в которой говорится: "Это хорошая идея - визуально проверить файл спецификаций, чтобы убедиться, что предполагаемое изменение действительно было сделано", но нет никаких указаний относительно того, что это за предполагаемые изменения. Но во время второго раунда я проверил /tools/lib/gcc/x86_64-pc-linux-gnu/7.2.0/specs, что там не упоминалось о "инструментах" и были упомянуты пути /usr.

1 ответ

Кажется, я решил эту проблему, создав новый файл спецификаций для нового компилятора:

gcc -dumpspecs | sed -e 's@/tools@@g' > `dirname $(gcc --print-libgcc-file-name)`/specs

После этого я повторяю тест:

echo 'int main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep ': /lib'

И все хорошо.

Другие вопросы по тегам