2014-05-13 3 views
3

Je suis sur Arch Linux x86_64, en train de créer les bibliothèques WebRTC. Je reçois des erreurs de compilation quand je fais:Building Chromium, WebRTC sans LTO

[[email protected] trunk]$ ninja -C out/Release peerconnection_server 
ninja: Entering directory `out/Release' 
[1/1] LINK peerconnection_server 
FAILED: c++ -Wl,-z,now -Wl,-z,relro -Wl,--fatal-warnings -pthread -Wl,-z,noexecstack -fPIC -B/home/ghilliard/Code/webrtc-attempt2/trunk/third_party/binutils/Linux_x64/Release/bin -Wl,--disable-new-dtags -m64 -Wl,--icf=none -fuse-ld=gold -Wl,-O1 -Wl,--as-needed -Wl,--gc-sections -o peerconnection_server -Wl,--start-group obj/talk/examples/peerconnection/server/peerconnection_server.data_socket.o obj/talk/examples/peerconnection/server/peerconnection_server.main.o obj/talk/examples/peerconnection/server/peerconnection_server.peer_channel.o obj/talk/examples/peerconnection/server/peerconnection_server.utils.o obj/talk/libjingle.a obj/net/third_party/nss/libcrssl.a obj/third_party/jsoncpp/libjsoncpp.a -Wl,--end-group -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -ldl -lcrypto -lrt -lXext -lX11 -lXcomposite -lXrender -lexpat 
/home/ghilliard/Code/webrtc-attempt2/trunk/third_party/binutils/Linux_x64/Release/bin/ld.gold: -plugin: unknown option 
/home/ghilliard/Code/webrtc-attempt2/trunk/third_party/binutils/Linux_x64/Release/bin/ld.gold: use the --help option for usage information 
collect2: error: ld returned 1 exit status 
ninja: build stopped: subcommand failed. 

Il semble y avoir un problème avec l'optimisation des temps de liaison. Cependant, je ne peux pas comprendre comment construire WebRTC sans LTO activé. Si je lance manuellement la commande qui a échoué et ajoute -fno-lto, il est très bien lié. Comment puis-je ajouter ou modifier les indicateurs du compilateur/éditeur de liens dans la configuration gyp afin qu'il s'applique à tout?

Répondre

2

ninja ne respecte pas les variables d'environnement, mais gyp fait. Après avoir défini les variables d'environnement LDFAGS, vous devez exécuter gyp_chromium pour que le gyp génère le fichier de construction ninja correct.

export LDFLAGS='-fno-lto' build/gyp_chromium ninja -C out/Release peerconnection_server

+0

Je vais avoir d'autres erreurs de construction maintenant (je devrais probablement savoir comment vérifier la version stable de WebRTC) mais cela semble avoir fixé pleurnicheries de l'éditeur de liens. Merci! – thirtythreeforty

0

Vous pouvez essayer de définir compilateur/drapeaux de liens dans les variables d'environnement avant la construction:

export CFLAGS="${CFLAGS} -fno-lto" 
export CXXFLAGS="${CXXFLAGS} -fno-lto" 
export LDFLAGS="${LDFLAGS} -fno-lto" 
ninja -C out/Release