Поддерживает ли Cygwin золотой компоновщик?
Я выполняю тестовый цикл релиза. Одним из тестов для GNU Linux является интеграция с компоновщиком Gold:
export LD=ld.gold
make
Makefile имеет следующую логику для распознавания компоновщика Gold:
# LD gold linker testing
ifeq ($(findstring ld.gold,$(LD)),ld.gold)
GOLD_OPTION = -Wl,-fuse-ld=gold
endif # Gold
Тогда рецепт, который использует это:
cryptest.exe: libcryptopp.a $(TESTOBJS)
$(CXX) -o $@ $(CXXFLAGS) $(TESTOBJS) ./libcryptopp.a $(LDFLAGS) $(GOLD_OPTION) $(LDLIBS)
Тем не менее, при запуске против Cygwin:
g++ -o cryptest.exe -DNDEBUG -g3 -O3 -march=native -pipe bench.o bench2.o test.o \
validat1.o validat2.o validat3.o adhoc.o datatest.o regtest.o fipsalgt.o dlltest.o \
./libcryptopp.a -Wl,-fuse-ld=gold
collect2: fatal error: cannot find 'ld'
Я проверил Cygwin FAQ, но там не упоминается Gold. Тем не менее, он вызывает Binutils, частью которого является золото. И порт не отклоняет -fuse-ld=gold
,
Поддерживает ли Cygwin золотой компоновщик? Если так, что я должен делать?
(Похоже, что Cygwin может извлечь выгоду из Gold, так как связывание занимает так много времени. В этой тестовой системе соединение занимает около 15-20 секунд cryptest.exe
, Так что это тоже личная цель).
1 ответ
Нет. На вики-странице, на которую вы ссылаетесь, золото ограничено только форматом ELF. Windows использует формат PE.