問題タブ [lto]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - TileGX ツールチェーンと LTO を使用した LLVM 3.3 が機能しない
私は単純な HelloWorld.c プログラムを持っています (そのため、ここに配置します)、奇妙なエラーをスローしている LTO を有効にして、clang バージョン 3.3 でビルドしようとしています。cmake
を使用して構築してい-DCMAKE_TOOLCHAIN_FILE
ます。なしでこのプログラムを正常にビルドおよびリンク-flto
できますが、この修飾子を使用できるようにする必要があります。ツールチェーンは TileGX 用です (したがって、clang バージョン 3.3 のままにする必要があります)。だからここに私の環境があります:
これが私のCMakeLists.txt
ファイルです:
フラグを追加した-v
ので、clang で何が起こっているかを確認してください。
リンクしようとしているclangからの出力は次のとおりです(読みやすいように再フォーマットされています):
LLVMgold.so
最初は、 Ubuntu 16.04 でビルドされた共有可能なオブジェクト ( ) と 14.04 でビルドされたリンカーを使用することの問題だと思いました。リンカは共有可能なオブジェクトを呼び出し、それがリンカにコールバックします。しかし、16.04 でリンカーをビルドしたので、まだエラーが発生します。
ビルドしたのでLLVMgold.so
、リンカーが共有可能オブジェクトを呼び出したときに何が起こっていたかを追跡するコードをいくつか入れましたが、そこにあるものはすべて問題ないように見えます。奇妙な名前のファイルが見つからないことはわかりld
ますが、提供されているファイルのセットに含まれている可能性があるファイルはわかりません。
-flto
この環境で使用できるように、想像できるすべてを試しました。誰もこれを見たことがありますか?それを解決する解決策はありますか?私ができること、またはすべきことは他にありますか?