2012-02-15

llvm-gccとgccと

PythonやRubyの環境を整えようと思うと、「llvm-gccとgccとの違い」が気になってきました。その中で、
と言うサイトは、参考になりそうです。が、私の所
とは;
  • Mac mini(mid 2011)
  • Lion 10.7.3(11D50)
  • Xcode 4.1(4B110)
と微妙に違うので、比較の為には自分の情報を整理してみる必要がありそうです。

「/usr/bin」でのgcc関連を調べてみた;

div-mm:/usr/bin u1$ lla |grep gcc
lrwxr-xr-x     1 root   wheel        12 10  1 11:49 cc@ -> llvm-gcc-4.2
lrwxr-xr-x     1 root   wheel        12 10  1 11:49 gcc@ -> llvm-gcc-4.2
-rwxr-xr-x     1 root   wheel    113024  5 16  2011 gcc-4.2*
-rwxr-xr-x     1 root   wheel    562992  5 16  2011 i686-apple-darwin11-gcc-4.2.1*
lrwxr-xr-x     1 root   admin        52 10  1 11:48 i686-apple-darwin11-llvm-g++-4.2@ -> ../llvm-gcc-4.2/bin/i686-apple-darwin11-llvm-g++-4.2
lrwxr-xr-x     1 root   admin        52 10  1 11:48 i686-apple-darwin11-llvm-gcc-4.2@ -> ../llvm-gcc-4.2/bin/i686-apple-darwin11-llvm-gcc-4.2
lrwxr-xr-x     1 root   admin        32 10  1 11:48 llvm-cpp-4.2@ -> ../llvm-gcc-4.2/bin/llvm-cpp-4.2
lrwxr-xr-x     1 root   admin        32 10  1 11:48 llvm-g++@ -> ../llvm-gcc-4.2/bin/llvm-g++-4.2
lrwxr-xr-x     1 root   admin        32 10  1 11:48 llvm-g++-4.2@ -> ../llvm-gcc-4.2/bin/llvm-g++-4.2
lrwxr-xr-x     1 root   admin        32 10  1 11:48 llvm-gcc@ -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2
lrwxr-xr-x     1 root   admin        32 10  1 11:48 llvm-gcc-4.2@ -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2
div-mm:/usr/bin u1$ 

このように、自分のLionでは、gcc-4.2もllvm-gccも存在している。けれど、gccはllvm-gccにシンボリック・リンクされている。gcc-4.2が存在するのは、Xcode4.1で留めているからそうなっているのかもしれない。従って、
  • Xcode4.2に上げても、gcc-4.2を上記サイトを参考にインストールすれば良いだけかもしれない。
  • Lion10.7.3では強い障害が起る場合が散見するが、自分の所はあまり大事はおこっていないのは、gcc-4.2があるお陰か???
    • 小さな障害として、Docのアイコンを右クリックしてオプションから
      • 「このデスクトップ 」→ 固定成功。
      • 「すべてのデスクトップ」→ 開いたデスクトップに固定されて、駄目。
なお、直接にヴァージョン情報を見てみたら;

div-mm:~ u1$ gcc-4.2 --version
i686-apple-darwin11-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

div-mm:~ u1$ gcc --version
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

div-mm:~ u1$ 

参考の為に、IMac(late 2009)で、「Snow Leopard 10.6.8」についても調べてみた;

curl:~ u1$ lla /usr/bin/ |grep gcc
lrwxr-xr-x     1 root   wheel           7  7 22  2011 cc@ -> gcc-4.2
lrwxr-xr-x     1 root   wheel           7  7 22  2011 gcc@ -> gcc-4.2
-rwxr-xr-x     1 root   wheel       97392 10 24  2010 gcc-4.0*
-rwxr-xr-x     1 root   wheel      166128 10 24  2010 gcc-4.2*
-rwxr-xr-x     1 root   wheel      369696 10 24  2010 i686-apple-darwin10-gcc-4.0.1*
-rwxr-xr-x     1 root   wheel      816560 10 24  2010 i686-apple-darwin10-gcc-4.2.1*
lrwxr-xr-x     1 root   admin          52  7 22  2011 i686-apple-darwin10-llvm-g++-4.2@ -> ../llvm-gcc-4.2/bin/i686-apple-darwin10-llvm-g++-4.2
lrwxr-xr-x     1 root   admin          52  7 22  2011 i686-apple-darwin10-llvm-gcc-4.2@ -> ../llvm-gcc-4.2/bin/i686-apple-darwin10-llvm-gcc-4.2
lrwxr-xr-x     1 root   admin          32  7 22  2011 llvm-cpp-4.2@ -> ../llvm-gcc-4.2/bin/llvm-cpp-4.2
lrwxr-xr-x     1 root   admin          32  7 22  2011 llvm-g++@ -> ../llvm-gcc-4.2/bin/llvm-g++-4.2
lrwxr-xr-x     1 root   admin          32  7 22  2011 llvm-g++-4.2@ -> ../llvm-gcc-4.2/bin/llvm-g++-4.2
lrwxr-xr-x     1 root   admin          32  7 22  2011 llvm-gcc@ -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2
lrwxr-xr-x     1 root   admin          32  7 22  2011 llvm-gcc-4.2@ -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2
-rwxr-xr-x     1 root   wheel      373792 10 24  2010 powerpc-apple-darwin10-gcc-4.0.1*
-rwxr-xr-x     1 root   wheel      820496 10 24  2010 powerpc-apple-darwin10-gcc-4.2.1*
lrwxr-xr-x     1 root   admin          55  7 22  2011 powerpc-apple-darwin10-llvm-g++-4.2@ -> ../llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-g++-4.2
lrwxr-xr-x     1 root   admin          55  7 22  2011 powerpc-apple-darwin10-llvm-gcc-4.2@ -> ../llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-gcc-4.2
curl:~ u1$ 
 

確かに雪豹ではgccはgcc-4.2にシンボリック・リンクされている。 llvm-gcc-4.2も在るが、gcc-4.0もまだあるようだ。

Wikipediaで調べてみると、LLVM → Clang;
と言う伸展があるらしい。そこでターミナルを叩くと;

div-mm:~ u1$ which clang
/usr/bin/clang
div-mm:~ u1$ man clang
div-mm:~ u1$ clang --version
Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn)
Target: x86_64-apple-darwin11.3.0
Thread model: posix
div-mm:~ u1$ ll /usr/bin/ |grep clang
-rwxrwxr-x    1 root   admin  39612800  6 22  2011 clang*
lrwxr-xr-x    1 root   admin         5 10  1 11:48 clang++@ -> clang
div-mm:~ u1$ 
 なんと「巨大なclang」が既に実装されているようだ。全然理解できていないが、面白そうだなぁ。


ーーーー このポストの履歴
  1. 開始 2012-02-15 (水) 18:39
  2. 追加 2012-02-16  (木) 13:05  「巨大なclang」

0 件のコメント:

コメントを投稿

注目の投稿

Terminalでの、なんちゃってViモドキ

近頃、ようやくKarabiner-Elementsに慣れてきたので、 Terminalで動作する「擬似Vi-Mode」を作って見たので、ご紹介します。 『概要』 「擬似Vi-Mode」の所以は、方向キー「←↓↑→」を通常の「hjkl」ではなくて「jkil」としました。これ...