gcc をソースからビルドする1
準備
ソースのダウンロード
gcc-4.6-base を使う。
mkdir -p /home/andre/work/gcc/gcc
cd /home/andre/work/gcc/gcc
apt-get source gcc-4.6-base
最適化のため、debian/rules2を編集する。
【変更前】 CONFARGS += --with-tune=generic
【変更後】 CONFARGS += --with-tune=core2
build-essential パッケージのインストール
バイナリパッケージとソースパッケージをビルドする作業をすべてやってくれるみたい。よくわからんが、コマンド1つでみんなやってくれるみたい。
andre@andre-VirtualBox:~/work/gcc/gcc$ sudo apt-get install build-essential
[sudo] password for andre:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
build-essential はすでに最新バージョンです。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 395 個。
最新だったようだ。
依存パッケージのインストール
下記にgcc-4.6に必要なパッケージを示す。
i386以外のものも含む。
今回インストールしたものは、バージョンが記載されている。すでにインストールされていたものは、バージョンが「-」だったりする
最終的に、すべてインストールすると10Gくらい容量が増えていた。
依存パッケージ名 | インストールバージョン |
---|---|
dpkg-dev (>= 1.16.0~ubuntu4) | 1.16.0.3ubuntu5.1 |
debhelper (>= 5.0.62) | 8.9.0ubuntu1 |
g++-4.4 [armel] | - |
g++-multilib [amd64 armel armhf i386 kfreebsd-amd64 mips mipsel powerpc ppc64 s390 s390x sparc] | 4:4.6.1-2ubuntu5 |
g++-4.4 [kfreebsd-amd64 kfreebsd-i386] | - |
libc6.1-dev (>= 2.13-0ubuntu6) [alpha ia64] | - |
libc0.3-dev (>= 2.13-0ubuntu6) [hurd-i386] | - |
libc0.1-dev (>= 2.13-0ubuntu6) [kfreebsd-i386 kfreebsd-amd64] | - |
libc6-dev (>= 2.13-0ubuntu6) | - |
libc6-dev-amd64 [i386] | 2.13-20ubuntu5.1 |
libc6-dev-sparc64 [sparc] | - |
libc6-dev-s390 [s390x] | - |
libc6-dev-s390x [s390] | - |
libc6-dev-i386 [amd64] | - |
libc6-dev-powerpc [ppc64] | - |
libc6-dev-ppc64 [powerpc] | - |
libc0.1-dev-i386 [kfreebsd-amd64] | - |
lib32gcc1 [amd64 ppc64 kfreebsd-amd64 s390x] | - |
lib64gcc1 [i386 powerpc sparc s390] | 1:4.6.1-9ubuntu3 |
libc6-dev-mips64 [mips mipsel] | - |
libc6-dev-mipsn32 [mips mipsel] | - |
libc6-dev-armhf [armel] | - |
m4 | 1.4.16-1 |
libtool | 2.4-2ubuntu1 |
autoconf2.64 | 2.64-3 |
automake (>= 1:1.11) | 1:1.11.1-1ubuntu1 |
automake (<< 1:1.12) | - |
libunwind7-dev (>= 0.98.5-6) [ia64] | - |
libatomic-ops-dev [ia64] | - |
zlib1g-dev | 1:1.2.3.4.dfsg-3ubuntu3 |
gawk | 1:3.1.8+dfsg-0.1build1 |
lzma | 4.43-14ubuntu2 |
xz-utils | 5.0.0-2 |
patchutils | 0.3.2-1 |
binutils (>= 2.21.51~) | 2.21.53.20110810-0ubuntu5.1 |
binutils-multiarch (>= 2.21.51~) | - |
binutils-hppa64 (>= 2.21.51~) [hppa] | - |
gperf (>= 3.0.1) | 3.0.3-1build3 |
bison (>= 1:2.3) | 1:2.4.1.dfsg-3 |
flex | 2.5.35-10ubuntu1 |
gettext | 0.18.1.1-3ubuntu1 |
texinfo (>= 4.3) | 4.13a.dfsg.1-8ubuntu1 |
locales [!knetbsd-i386 !knetbsd-alpha] | - |
procps | 1:3.2.8-10ubuntu3 |
sharutils | 1:4.11-1 |
binutils-spu (>= 2.21.51~) [powerpc ppc64] | - |
newlib-spu (>= 1.16.0) [powerpc ppc64] | - |
libcloog-ppl-dev (>= 0.15.9-2~) | 0.15.9-3 |
libmpc-dev | 0.9-3 |
libmpfr-dev (>= 3.0.0-9~) | 3.0.1-5 |
libgmp-dev (>= 2:5.0.1~) | 2:5.0.1+dfsg-7ubuntu2 |
libelfg0-dev (>= 0.8.12) | 0.8.13-3 |
dejagnu [!m68k !hurd-i386 !hurd-alpha] | 1.4.4.git20080407-1.1 |
autogen | 1:5.12-0.1ubuntu1 |
realpath (>= 1.9.12) | 1.15build1 |
chrpath | 0.13-2build2 |
lsb-release | 4.0-0ubuntu11 |
make (>= 3.81) | GNU Make 3.81 |
quilt | 0.48-7 |
doxygen (>= 1.7.2) | 1.7.3-6ubuntu1 |
graphviz (>= 2.2) | 2.26.3-5ubuntu4 |
gsfonts-x11 | 0.22 |
texlive-latex-base | 2009-13 |
メモ:
gpref をソースからインストールしようとしたとき、stubs-32.h がないと怒られたので、リンクを貼った。
cd /usr/include/gnu
sudo ln -s /usr/include/i386-linux-gnu/gnu/stubs-32.h stubs-32.h
[エラーメッセージ]
make[1]: ディレクトリ `/home/andre/work/gperf/gperf-3.0.3/lib' に入ります
ccache gcc -g -O2 -I. -c ./getopt.c
In file included from /usr/include/features.h:388:0,
from /usr/include/stdio.h:28,
from ./getopt.c:42:
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory
compilation terminated.
make[1]: *** [getopt.o] エラー 1
make[1]: ディレクトリ `/home/andre/work/gperf/gperf-3.0.3/lib' から出ます
make: *** [all] エラー 2
(続く)