LLVM IR で最終的なバイナリを生成するために、LLVM で apache2 をコンパイルしようとしています。
コンパイルとリンクで flto オプションを使用し、clang を介して「also-emit-llvm」をリンカーに渡しました。ほとんどのステップでうまくいくようですが、2つの懸念がありました
1) 以前、私は LLVM 3.6 を使用しました。そのゴールド プラグインは also-emit-llvm を受け入れませんが、emit-llvm のみを持ち、基本的には elf または llvm のみを出力します。Autotoolsビルドシステムが気に入らないもの。configure および make スクリプトにはバイナリが必要ですが、私は llvm が必要です。これに対する解決策はありますか?
2) そこで、LLVM 3.5.2 に移行しました。ビルド プロセスはうまくいき、httpd.bc と httpd elf の両方のバイナリを生成できますが、リンカーはモジュールのリンクを望んでいません (バイナリのリンクはできました) 具体的には、このエラーが発生します
`
/usr/share/apr-1.0/build/libtool --silent --mode=link /home/rbhatia/Desktop/llvm-newbuild/bin/clang -pthread -flto -o mod_authn_file.la -rpath /home/rbhatia/Desktop/httpd-2.4.12/llvm/modules -module -avoid-version mod_authn_file.lo
/usr/bin/ld: error: .libs/mod_authn_file.o:1:3: invalid chaenter code hereracter
/usr/bin/ld: error: .libs/mod_authn_file.o:1:3: syntax error, unexpected $end
/usr/bin/ld: error: .libs/mod_authn_file.o: not an object or archive
collect2: error: ld returned 1 exit status
`
mod_authn_file.o は、llvm-dis で逆アセンブルできる有効な LLVM IR ファイルであることがわかります。また、このステップの直前に、リンカーは httpd と httpd.bc をリンクできます。
エラーの内容について何か助けはありますか?