oprofileクロスコンパイル

とりあえず紆余曲折のあとにoprofileのコンパイルが通ったのでまとめてみた。



crosstool以外に必要だったもの

  • popt
  • zlib
  • libbfd
  • libiberty

手順みたいな何か。

popt-1.14 $> ac_cv_va_copy=yes ./configure --prefix=/hoge/sysroot --build=i386-pc-linux-gnu --host=x86_64-unknown-linux-gnu
popt-1.14 $> make
popt-1.14 $> make install

zlib-1.2.3 $> CC=x86_64-unknown-linux-gnu-gcc ./configure --prefix=/hoge/sysroot --shared
zlib-1.2.3 $> make
zlib-1.2.3 $> make install

binutils-2.16.1 $> ./configure --prefix=/hoge/sysroot --build=i386-pc-linux-gnu --host=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu
binutils-2.16.1 $> cd bfd
bfd $> ./configure --prefix=/hoge/sysroot --build=i386-pc-linux-gnu --host=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu CFLAGS=-fPIC
bfd $> make
bfd $> make install
bfd $> cd ../libiberty
libiberty $> ./configure --prefix=/hoge/sysroot --build=i386-pc-linux-gnu --host=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu CFLAGS=-fPIC
libiberty $> make
libiberty $> make install

$> cd /hoge/sysroot
$> cp -a lib/libpopt.* /opt/crosstool/gcc-4.0.2-glibc-2.3.6/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sys-root/lib64/
$> cp -a lib/libz.* /opt/crosstool/gcc-4.0.2-glibc-2.3.6/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sys-root/lib64/
$> cp -a lib/libbfd.* /opt/crosstool/gcc-4.0.2-glibc-2.3.6/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sys-root/lib64/
$> cp -a lib/libiberty.a /opt/crosstool/gcc-4.0.2-glibc-2.3.6/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sys-root/lib64/
$> cp -a include/*.h /opt/crosstool/gcc-4.0.2-glibc-2.3.6/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sys-root/usr/include/

oprofile-0.9.6 $> ./configure --prefix=/hoge/sysroot --with-kernel-support --without-x --build=i386-pc-linux-gnu --host=x86_64-unknown-linux-gnu
oprofile-0.9.6 $> make

解析のためにいったん/hoge/sysrootにinstallしてるけど、直接「--prefix=/opt/crosstool/gcc-4.0.2-glibc-2.3.6/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sys-root」にしてもたぶん大丈夫。
もしかしたらbinutils自体のconfigureは不要かもしれない。


とりあえずこれでコンパイルは通ったからあとは実際に動かしてみてかな。
まだ長そうだなあ…