Я недавно переключился с default binutils linker ld.bfd на ld.gold (чтобы получить оптимизацию времени ссылки и почему нет?). Это было сделано вручную (например, здесь: http://wiki.gentoo.org/wiki/Gold). В результате я получил цепочку символических ссылок из/usr/bin/ld в двоичный файл ld.gold, поэтому компоновщик был прозрачно изменен для процесса сборки.gentoo ld.gold failed on sys-libs/db
Но когда я попытался восстановить все пакеты, я обнаружил, что ld.gold иногда приводило к неудачам конфигурации/компиляции, как «C компилятор не может создавать исполняемые файлы»:
checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc
checking whether the C compiler works... no
configure: error: in `/var/tmp/portage/sys-libs/db-6.0.30-r1/work/db-6.0.30/build_unix-abi_x86_64.amd64':
configure: error: C compiler cannot create executables
Какой на самом деле была проблема линкер:
configure: checking whether the C compiler works
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.4/../../../../x86_64-pc-linux-gnu/bin/ld: --default-symver: unknown option
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.4/../../../../x86_64-pc-linux-gnu/bin/ld: use the --help option for usage information
collect2: error: ld returned 1 exit status
Но пакет можно успешно построить с помощью компоновщика bfd по умолчанию, поэтому вопрос заключается в том, как вернуться к компоновщику bfd для пакетов, которые нельзя создать с помощью ld.gold?
Пакет проблем - = sys-libs/db-6.0.30-r1 (тот, который привлек мое внимание на данный момент).