CentOS 5のllvmとclangにroot権限がありませんか?

CentOS 5のllvmとclangにroot権限がありませんか?

root権限なしでcentOS 5でllvmとclangを使用しようとしています。 llvm と clang src パッケージをダウンロードし、次のように一般的な設定、make、make のインストール手順を試しました。

wget http://llvm.org/releases/3.3/llvm-3.3.src.tar.gz
wget http://llvm.org/releases/3.3/cfe-3.3.src.tar.gz
tar xzf llvm-3.3.src.tar.gz && cd llvm-3.3.src/tools/ && tar xzf ../../cfe-3.3.src.tar.gz

以前のバージョンは機能しなかったため、この64ビットCentOSシステム用にコンパイルされた最新バージョンのgccを試してみました(下記参照)。新しいバージョンを使用しようとすると、次のメッセージが表示されます。

export LD_LIBRARY_PATH=/home/avilella/src/gcc/gcc-4.7.2/lib64:/home/avilella/src/gcc/gcc-4.7.2/lib
export CC=/home/avilella/src/gcc/gcc-4.7.2/bin/gcc
export CXX=/home/avilella/src/gcc/gcc-4.7.2/bin/g++  
export PATH=/home/avilella/src/python/python-2.7.3/bin:$PATH
cd ~/src/llvm/latest/llvm-3.3.src
./configure --prefix=/home/avilella/src/llvm/latest/llvm && make clean && make -j8 && make install

次の手順を完了した後、binディレクトリにclangは表示されません。

/home/avilella/src/llvm/latest/llvm/bin    

だからclangディレクトリの指示に従いましたmake -j8

cd ~/src/llvm/latest/llvm-3.3.src/tools/cfe-3.3.src
make -j8

これを行うと、次のclange/Config/config.hエラーが発生します。

[...]
InitHeaderSearch.cpp:17:51: fatal error: clang/Config/config.h: No such file or directory
[...]

これは2011年のバグレポートで言及され、今解決されました。

http://llvm.org/bugs/show_bug.cgi?id=11903

どんなアイデアがありますか?


前の試み:

cd ~/src/llvm/latest/llvm-3.3.src
./configure --prefix=/home/avilella/src/llvm/latest/llvm && make clean && make -j8 && make install

checking for clang... clang
checking for C compiler default output file name... configure: error: C compiler cannot create executables
See `config.log' for more details.

部分config.log:

configure:2047: checking for clang
configure:2063: found /home/avilella/bin/clang
configure:2074: result: clang
configure:2110: checking for C compiler version
configure:2117: clang --version >&5
clang: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by clang)
clang: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by clang)
clang: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by clang)
clang: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by clang)
clang: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by clang)
[...]

llvmのウェブサイトで提供されているfedora18バイナリバージョンを試してみましたが、システムがGLIBCバージョンを見つけることができないと文句を言いました。

[~/src/llvm/clang+llvm-3.3-x86_64-fedora18/bin] $ ./clang
./clang: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by ./clang)
./clang: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./clang)

このシステムには最新バージョンのgccがインストールされていますが、機能するにはバイナリをダウンロードするか、libcバージョンを再コンパイルする必要があるようです。問題は方法です。

ここからrpmをダウンロードしてみました。

http://pkgs.org/centos-5-rhel-5/centos-rhel-updates-x86_64/glibc-2.5-107.el5_9.5.x86_64.rpm/download/

rpmの内容をフォルダに入れました。

rpm2cpio $rpm | cpio -idmv

lib64フォルダをLD_LIBRARY_PATH環境変数に追加しましたが、問題は解決しませんでした(そしてlscrashのような単純なコマンドを作成しましたless)。

clang: /home/avilella/src/llvm/glibc/lib64/libc.so.6: version `GLIBC_2.15' not found (required by clang)
clang: /home/avilella/src/llvm/glibc/lib64/libc.so.6: version `GLIBC_2.14' not found (required by clang)

答え1

あなたが行ったステップの修正版に従ってclangを構築することができました。

# Preliminary:
#  Get source
#  Extract source
#  Set environmental variables

cd /home/avilella/src/llvm/latest
# Clang is expected to be at `tools/clang`.
mv tools/cfe-3.3.src tools/clang
# You should clean before configuring, not after.
make clean
# The missing config.h file is created by the configure script
#  if clang is in the correct location 
./configure --prefix=/home/avilella/src/llvm/latest/llvm
make -j8
make install

答え2

一般的に言えば、単にRPMを解凍してその内容を試してみるのは良い考えではありません。その理由は次のとおりです。

  1. 依存関係を解決する必要があります。

  2. 正しい操作のために重要なRPMスクリプトがありません。

  3. 正しい操作に重要な可能性がある元のディレクトリ構造が失われます。

数字2と3は実際にはほとんど問題ではありませんが(RPMパッケージが正しく準備されていない場合にのみ発生します)、この場合の問題は最初の問題です... glibc-common = 2.5-107.el5_9.5が依存関係そうです。良い...

しかし、とにかくあなたが選んだこのアプローチは少し不幸です...ルートアクセスを必要とせずにサーバー上で新しいコンパイラを使用する必要がある場合は、ソースからコンパイルしてディレクトリのどこにでもインストールできます。 clangを最初に見てください。始めるページ。そして電話するときはぜひconfigureご利用ください--prefix=/path_to/my_favorite_directory

関連情報