Замена ld на золото - есть опыт?

Кто-нибудь пытался использовать gold вместо ld ?

gold обещает, что будет намного быстрее, чем ld , поэтому это может помочь ускорить циклы тестирования для больших приложений C ++, но может его можно использовать как замену ld?

Может ли gcc / g ++ напрямую вызывать gold .?

Есть ли какие-нибудь известные ошибки или проблемы?

Хотя gold уже давно входит в состав GNU binutils, я почти не нашел "историй успеха" или даже "Howtos" в Интернете.

( Обновление: добавлены ссылки на золото и запись в блоге, объясняющая это )

79
задан madth3 22 February 2013 в 01:49
поделиться

2 ответа

В настоящее время он компилирует более крупные проекты на Ubuntu 10.04. Здесь вы можете легко установить и интегрировать его с пакетом binutils-gold (если вы удалите этот пакет, вы получите старый ld ). Тогда Gcc автоматически будет использовать золото.

Некоторый опыт:

  • gold не ищет в / usr / local / lib
  • gold не предполагает библиотеки, такие как pthread или rt, пришлось добавлять их вручную
  • это быстрее и требует меньше памяти (последнее важно для больших проектов C ++ с большим ускорением и т. д.)

Что не работает: он не может компилировать материал ядра и, следовательно, не может использовать модули ядра. Ubuntu делает это автоматически через DKMS, если обновляет проприетарные драйверы, такие как fglrx. Это не удается с ld-gold (необходимо удалить gold, перезапустить DKMS, переустановить ld-gold .

52
ответ дан 24 November 2019 в 10:15
поделиться

Вы можете связать ld с gold (в локальном бинарном каталоге, если у вас установлен ld, чтобы избежать перезаписи):

ln -s `which gold` ~/bin/ld

или

ln -s `which gold` /usr/local/bin/ld
9
ответ дан 24 November 2019 в 10:15
поделиться