1

リリース テスト サイクルを実行しています。GNU Linux のテストの 1 つは、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 については言及されていません。ただし、Gold が含まれている Binutils を呼び出します。ポートは拒否しません-fuse-ld=gold

Cygwin は Gold リンカーをサポートしていますか? もしそうなら、私は何をすべきですか?


(Cygwin は、リンクに時間がかかるため、Gold の恩恵を受ける可能性があるようです。このテスト システムでは、リンクに約 15 ~ 20 秒かかりますcryptest.exe。したがって、これも個人的な目標です)。

4

1 に答える 1

4

いいえ。リンクした wiki ページによると、ゴールドは ELF 形式のみに制限されています。Windows は PE 形式を使用します。

于 2015-08-11T21:34:51.723 に答える