[LFS][LFS BOOK7.3]第5章 一時的環境の構築(p30)

■5.1. はじめに
・最小限のシステムを構築するために、以下の二段階の手順を踏むと。
  1.初めにホストシステムに依存しない新しいツールチェーン (コンパイラー、
    アセンブラー、リンカー、ライブラリ、その他の有用なユーティリティ) を構築。

  2.次にこのツールチェーンを使って、他の重要なツール類を構築。

・この章で生成されるファイル群は $LFS/tools ディレクトリ配下にインストールされる。
 次章にてインストールされるファイル群や、ホスト環境にあるファイル群とは区分けされる。
 ここでの作業は一時的なものなので、この後構築する LFS システムを汚さないため。

■5.2. ツールチェーンの技術的情報
 長文長いので、飛ばして、後から必要あれば読もう。

■5.3. 全般的なコンパイル手順
 重要な確認事項が書いてあるのでチェック。

・$LFSの設定 → echo $LFS /mnt/lfsだったからOK。
・bashシェル使用前提 → lfsユーザ作成時、bash指定したからOK。
・shはbashへのシンボリックリンク → /bin/sh -> bashってなってたからOK。
・/usr/bin/awkはgawkへのシンボリックリンク → /usr/bin/awk -> ../../bin/gawkでOKかな?
・/usr/bin/yaccはbisonへのシンボリックリンク → なんかyaccが見つからない。前にインストールしたはずだが。
  ※ suでrootにログインし、yum install bisonでインストールしたら、/usr/bin/bisonが生成された。
    あとはln -s bison yaccでリンク作成。



■5.4. Binutils-2.23.1 - 1回め
・説明では、ビルドする時ソースディレクトリではなく、以下のようなDIRを作るって書いてある。
 /mnt/lfs/sourcesから見たコマンドと理解。

mkdir -v ../binutils-build
cd ../binutils-build


 つまり、/mnt/lfsの下にbinutils-buildというDIRを作る事になる。
 やってみたが、root権限でないので、Permission Deniedって出た。実行場所間違ってるかな?


(2013/9/23追記)
・見落としてる内容はLFS BOOK7.3のp32のこれかな?

重要項目
ビルド作業では以下の点が重要です。
1. ソースやパッチファイルを配置するディレクトリは /mnt/lfs/sources/ などのように chroot 環境で
もアクセスが出来るディレクトリとしてください。 /mnt/lfs/tools/ ディレクトリにソースを置くこと
は やめて ください。
2. ソースディレクトリに入ります。
3. 各パッケージについて:
a. tar コマンドを使ってパッケージの tarball を伸張 (解凍) します。 第5章では、パッケージを伸
張 (解凍) するのは lfs ユーザーとします。
b. パッケージの伸張 (解凍) 後に生成されたディレクトリに入ります。
c. 本書の手順に従ってビルド作業を行っていきます。
d. ソースディレクトリに戻ります。
e. ビルド作業を通じて生成されたパッケージディレクトリを削除します。 さらに -
build なるディレクトリを生成していた場合は、特に指定がない限りはそれも削除します。



・上に従ってやってみる。まずはソースの置き場へ cd /mnt/lfs/sources で移動。

・最初にビルドするbinutilsのtar.gzを解凍する。

tar xvf binutils-2.23.1.tar.bz2



・コンパイル準備する。

../binutils-2.23.1/configure \
--prefix=/tools \
--with-sysroot=$LFS \
--with-lib-path=/tools/lib \
--target=$LFS_TGT \
--disable-nls \
--disable-werror



・展開後に生成されたbinutils-2.23.1ディレクトリへ移動してconfigure実行すると以下エラーが。

checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-lfs-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /bin/sed
checking for gawk... gawk
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/mnt/lfs/sources';
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.



・もともと、makeとかgccがインストールされてなかったのが問題と思い、インストール。

su でrootへログイン
yum install make
yum install gcc



・make、gccをインストールしてからconfigureやり直したら、エラー消えたっぽい。

・次にコンパイル。この時間が1SBUだとか。

make


 うちの環境ではmake終了までに約8分。

  ホストPC OS: ThinkPad X230 Win7 Home Pre 64bit SP1
  ホストPC CPU: Core i7-3520M 2.9GHz
  仮想PCソフト: VMware Player 5.0.2 build-1031769
  仮想PC OS: CentOS 6.4 i386 (32bit)
  仮想PCメモリ: 7888MB


・これでコンパイル終了し、通常ならここでテストスイートを実行するとか。
 しかし、システム構築初期のこの段階ではテストスイートのフレームワーク
  (Tcl, Expect, DejaGNU) が準備できてなく、さらにこの時点で生成されるプログラムは、
 すぐに次の生成作業によって置き換えられるので、この時点でテストを実行することは
 あまり意味が無いとの事。

 x86_64 にて作業をしている場合は、ツールチェーンの切り分けを適切に行うために
 シンボリックリンクを作成するとの事。
 しかし、今回の作業OSはCentOS 6.4 i386 (32bit)で、64bit版でないので、以下は不要と判断。
 下のコマンドは飛ばして、make installへ進む。

case $(uname -m) in
x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;;
esac



・パッケージをインストール。

make install



■5.5. GCC-4.7.2 - 1回め
・p35注記には、gccのtarballを展開して、そのディレクトリの中で後述の作業をすると書いてある。

注記
本節においては誤解が多く発生しています。 ここでの手順は他のものと同様であり、手順の概要 (パッ
ケージビルド手順) は説明済です。 まず初めに gcc の tarball を伸張 (解凍) し、生成されたソースディ
レクトリに移動します。 それに加えて本節では、以下の手順を行うものとなります。



・まずは、gccのtarballの展開。今思えばbinutilの時はtar xvfで解凍したが、.bz2の場合は
 tar jxvfでやるべきだったかな?出来てるっぽいし、まあ良いか。

tar jxvf gcc-4.7.2.tar.bz2

・次に、注記で書かれてたように、gcc-4.7.2ディレクトリ内で、次を実行すると。


tar -Jxf ../mpfr-3.1.1.tar.xz
mv -v mpfr-3.1.1 mpfr
tar -Jxf ../gmp-5.1.1.tar.xz
mv -v gmp-5.1.1 gmp
tar -zxf ../mpc-1.0.1.tar.gz
mv -v mpc-1.0.1 mpc



(2013/9/24追記)
 しかし、1つ目の「tar -Jxf ../mpfr-3.1.1.tar.xz」を実行すると、次のエラーが。

# tar -Jxf ../mpfr-3.1.1.tar.xz
tar (child): xz: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is ont recoverable: exiting now



 Web検索すると、このページで言ってるように、xzがインストールされてないからかな?

     tar v1.26によるxzファイル解凍には xz v5.0.3も必要

 おなじみのyumでインストールする。尚、rootでやらないとエラーが出る。
 suでrootログインしてから以下yumを実行し、インストール終わったらroot抜ける。

yum install xz


 今度は tar -Jxfコマンドで実行出来た。xzをインストールした後は実行成功。特にMSG無し。
 mpfr-3.1.1/ディレクトリが生成されたようだ。
 おそらく、CentOSインストール時に、Minimulの設定だったから、いろいろ不足してるみたい。

tar -Jxf ../mpfr-3.1.1.tar.xz



・その後も先に書いた手順で実行。エラー無く実行できた。

tar -Jxf ../mpfr-3.1.1.tar.xz
mv -v mpfr-3.1.1 mpfr
tar -Jxf ../gmp-5.1.1.tar.xz
mv -v gmp-5.1.1 gmp
tar -zxf ../mpc-1.0.1.tar.gz
mv -v mpc-1.0.1 mpc



・今度は以下の説明の通り、後述のコマンドを実行するとの事。

以下のコマンドは GCC のデフォルトのダイナミックリンカーの
配置ディレクトリを、既にインストールされている /tools とします。
また GCC のインクルードパスから /usr/include を除きます。


for file in \
$(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)
do
cp -uv $file{,.orig}
sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
-e 's@/usr@/tools@g' $file.orig > $file
echo '
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
touch $file.orig
done



(2013/9/27追記)
・上のバッチの説明がp35にあるが、説明書きでは、以下3つのいずれかが存在すると言ってるが、
 なぜか存在しない。

上のコマンドがよく分からない場合は一つ一つ読み下していってください。
まず gcc/config ディレクトリにはlinux.h, linux64.h, sysv4.h といった
ファイルのいずれかがあります。


・とりあえずバッチ実行してみた。PDFからコピーして、共有フォルダ経由で
 WindowsからVMware仮想マシンへファイルをコピー。
 バッチの先頭に「#!/bin/bash」を追加。
 実行すると、改行コードの問題っぽいMSG(^M)が出たので、dos2unixをrootでインストール。

yum install dos2unix


dos2unix  で改行コードをLinuxへ変換。それからバッチ実行したら何やら成功っぽい以下ログ。

   :
   :
`gcc/config/sparc/linux64.h' -> `gcc/config/sparc/linux64.h.orig'
`gcc/config/sparc/sysv4.h' -> `gcc/config/sparc/sysv4.h.orig'
`gcc/config/alpha/linux.h' -> `gcc/config/alpha/linux.h.orig'
`gcc/config/vax/linux.h' -> `gcc/config/vax/linux.h.orig'
`gcc/config/linux.h' -> `gcc/config/linux.h.orig'
`gcc/config/m32r/linux.h' -> `gcc/config/m32r/linux.h.orig'
`gcc/config/m68k/linux.h' -> `gcc/config/m68k/linux.h.orig'
`gcc/config/tilepro/linux.h' -> `gcc/config/tilepro/linux.h.orig'
`gcc/config/i386/linux.h' -> `gcc/config/i386/linux.h.orig'
`gcc/config/i386/linux64.h' -> `gcc/config/i386/linux64.h.orig'
`gcc/config/i386/sysv4.h' -> `gcc/config/i386/sysv4.h.orig'
`gcc/config/xtensa/linux.h' -> `gcc/config/xtensa/linux.h.orig'
`gcc/config/sh/linux.h' -> `gcc/config/sh/linux.h.orig'
`gcc/config/cris/linux.h' -> `gcc/config/cris/linux.h.orig'
`gcc/config/mips/linux.h' -> `gcc/config/mips/linux.h.orig'
`gcc/config/mips/linux64.h' -> `gcc/config/mips/linux64.h.orig'
`gcc/config/s390/linux.h' -> `gcc/config/s390/linux.h.orig'
`gcc/config/mn10300/linux.h' -> `gcc/config/mn10300/linux.h.orig'
`gcc/config/frv/linux.h' -> `gcc/config/frv/linux.h.orig'
`gcc/config/bfin/linux.h' -> `gcc/config/bfin/linux.h.orig'
`gcc/config/ia64/linux.h' -> `gcc/config/ia64/linux.h.orig'
`gcc/config/ia64/sysv4.h' -> `gcc/config/ia64/sysv4.h.orig'
`gcc/config/microblaze/linux.h' -> `gcc/config/microblaze/linux.h.orig'
`gcc/config/tilegx/linux.h' -> `gcc/config/tilegx/linux.h.orig'



・次の理由で、後述のsedコマンドを実行すると。内容はよく分からんけど実行してみる。
 何もMSGなく、正常に実行出来たようだ。

GCC はスタックプロテクション (stack protection) を正しく検出しません。
このことは Glibc-2.17 においてビルドする際には問題となります。
そこで以下のコマンドを実行することで解消します。


sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure



・次もよく分からないが、次の理由で後述のsedコマンドを実行と。

.info ファイルはビルドしないようにします。
このファイルは今時点は不要なものであり、また現在の makeinfo で生成しても
不十分なものが生成されてしまうためです。


sed -i 's/BUILD_INFO=info/BUILD_INFO=/' gcc/configure



・GCCドキュメントではソースDIR以外の専用ビルドDIRの作成が推奨、という事で、
 以下の通りDIR生成して、そこへ移動する。今の場所を示すためにあえてpwdしてる。

# pwd
/mnt/lfs/sources/gcc-4.7.2
# mkdir -v ../gcc-build
# cd ../gcc-build



・gccコンパイルのための準備。

../gcc-4.7.2/configure \
--target=$LFS_TGT \
--prefix=/tools \
--with-sysroot=$LFS \
--with-newlib \
--without-headers \
--with-local-prefix=/tools \
--with-native-system-header-dir=/tools/include \
--disable-nls \
--disable-shared \
--disable-multilib \
--disable-decimal-float \
--disable-threads \
--disable-libmudflap \
--disable-libssp \
--disable-libgomp \
--disable-libquadmath \
--enable-languages=c \
--with-mpfr-include=$(pwd)/../gcc-4.7.2/mpfr/src \
--with-mpfr-lib=$(pwd)/mpfr/src/.libs



・/mnt/lfs/sources/gcc-build でconfigureしたログが以下。

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by configure, which was
generated by GNU Autoconf 2.64. Invocation command line was

$ ../gcc-4.7.2/configure --target=i686-lfs-linux-gnu --prefix=/tools --with-sysroot=/mnt/lfs --with-newlib --without-headers --with-local-prefix=/tools --with-native-system-header-dir=/tools/include --disable-nls --disable-shared --disable-multilib --disable-decimal-float --disable-threads --disable-libmudflap --disable-libssp --disable-libgomp --disable-libquadmath --enable-languages=c --with-mpfr-include=/mnt/lfs/sources/gcc-build/../gcc-4.7.2/mpfr/src --with-mpfr-lib=/mnt/lfs/sources/gcc-build/mpfr/src/.libs

## --------- ##
## Platform. ##
## --------- ##

hostname = lfs
uname -m = i686
uname -r = 2.6.32-358.el6.i686
uname -s = Linux
uname -v = #1 SMP Thu Feb 21 21:50:49 UTC 2013

/usr/bin/uname -p = unknown
/bin/uname -X = unknown

/bin/arch = i686
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown

PATH: /tools/bin
PATH: /bin
PATH: /usr/bin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:2237: checking build system type
configure:2251: result: i686-pc-linux-gnu
configure:2298: checking host system type
configure:2311: result: i686-pc-linux-gnu
configure:2331: checking target system type
configure:2344: result: i686-lfs-linux-gnu
configure:2398: checking for a BSD-compatible install
configure:2466: result: /usr/bin/install -c
configure:2477: checking whether ln works
configure:2499: result: yes
configure:2503: checking whether ln -s works
configure:2507: result: yes
configure:2514: checking for a sed that does not truncate output
configure:2578: result: /bin/sed
configure:2587: checking for gawk
configure:2603: found /bin/gawk
configure:2614: result: gawk
configure:3070: checking for libitm support
configure:3080: result: yes
configure:3776: checking for gcc
configure:3792: found /usr/bin/gcc
configure:3803: result: gcc
configure:4032: checking for C compiler version
configure:4041: gcc --version >&5
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3)
Copyright (C) 2010 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.

configure:4052: $? = 0
configure:4041: gcc -v >&5
Using built-in specs.
Target: i686-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux
Thread model: posix
gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)
configure:4052: $? = 0
configure:4041: gcc -V >&5
gcc: '-V' option must have argument
configure:4052: $? = 1
configure:4041: gcc -qversion >&5
gcc: unrecognized option '-qversion'
gcc: no input files
configure:4052: $? = 1
configure:4072: checking for C compiler default output file name
configure:4094: gcc conftest.c >&5
configure:4098: $? = 0
configure:4135: result: a.out
configure:4151: checking whether the C compiler works
configure:4160: ./a.out
configure:4164: $? = 0
configure:4179: result: yes
configure:4186: checking whether we are cross compiling
configure:4188: result: no
configure:4191: checking for suffix of executables
configure:4198: gcc -o conftest conftest.c >&5
configure:4202: $? = 0
configure:4224: result:
configure:4230: checking for suffix of object files
configure:4252: gcc -c conftest.c >&5
configure:4256: $? = 0
configure:4277: result: o
configure:4281: checking whether we are using the GNU C compiler
configure:4300: gcc -c conftest.c >&5
configure:4300: $? = 0
configure:4309: result: yes
configure:4318: checking whether gcc accepts -g
configure:4338: gcc -c -g conftest.c >&5
configure:4338: $? = 0
configure:4379: result: yes
configure:4396: checking for gcc option to accept ISO C89
configure:4460: gcc -c -g -O2 conftest.c >&5
configure:4460: $? = 0
configure:4473: result: none needed
configure:4551: checking for g++
configure:4581: result: no
configure:4551: checking for c++
configure:4581: result: no
configure:4551: checking for gpp
configure:4581: result: no
configure:4551: checking for aCC
configure:4581: result: no
configure:4551: checking for CC
configure:4581: result: no
configure:4551: checking for cxx
configure:4581: result: no
configure:4551: checking for cc++
configure:4581: result: no
configure:4551: checking for cl.exe
configure:4581: result: no
configure:4551: checking for FCC
configure:4581: result: no
configure:4551: checking for KCC
configure:4581: result: no
configure:4551: checking for RCC
configure:4581: result: no
configure:4551: checking for xlC_r
configure:4581: result: no
configure:4551: checking for xlC
configure:4581: result: no
configure:4605: checking for C++ compiler version
configure:4614: g++ --version >&5
../gcc-4.7.2/configure: line 4616: g++: command not found
configure:4625: $? = 127
configure:4614: g++ -v >&5
../gcc-4.7.2/configure: line 4616: g++: command not found
configure:4625: $? = 127
configure:4614: g++ -V >&5
../gcc-4.7.2/configure: line 4616: g++: command not found
configure:4625: $? = 127
configure:4614: g++ -qversion >&5
../gcc-4.7.2/configure: line 4616: g++: command not found
configure:4625: $? = 127
configure:4629: checking whether we are using the GNU C++ compiler
configure:4648: g++ -c conftest.cpp >&5
../gcc-4.7.2/configure: line 1754: g++: command not found
configure:4648: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h. */
|
| int
| main ()
| {
| #ifndef __GNUC__
| choke me
| #endif
|
| ;
| return 0;
| }
configure:4657: result: no
configure:4666: checking whether g++ accepts -g
configure:4686: g++ -c -g conftest.cpp >&5
../gcc-4.7.2/configure: line 1754: g++: command not found
configure:4686: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:4701: g++ -c conftest.cpp >&5
../gcc-4.7.2/configure: line 1754: g++: command not found
configure:4701: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:4717: g++ -c -g conftest.cpp >&5
../gcc-4.7.2/configure: line 1754: g++: command not found
configure:4717: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:4727: result: no
configure:4816: checking for gnatbind
configure:4846: result: no
configure:4908: checking for gnatmake
configure:4938: result: no
configure:4957: checking whether compiler driver understands Ada
configure:4980: result: no
configure:4989: checking how to compare bootstrapped objects
configure:5014: result: cmp --ignore-initial=16 $$f1 $$f2
configure:5086: checking for objdir
configure:5101: result: .libs
configure:5643: checking for PWL_handle_timeout in -lpwl
configure:5668: gcc -o conftest -g -O2 conftest.c -lpwl -lstdc++ -lm >&5
/usr/bin/ld: cannot find -lpwl
collect2: ld returned 1 exit status
configure:5668: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h. */
|
| /* Override any GCC internal prototype to avoid an error.
| Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply. */
| #ifdef __cplusplus
| extern "C"
| #endif
| char PWL_handle_timeout ();
| int
| main ()
| {
| return PWL_handle_timeout ();
| ;
| return 0;
| }
configure:5677: result: no
configure:5691: checking for version 0.11 (revision 0 or later) of PPL
configure:5708: gcc -c -g -O2 -I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp -I/mnt/lfs/sources/gcc-build/../gcc-4.7.2/mpfr/src -I$$s/mpc/src conftest.c >&5
conftest.c:10:19: error: ppl_c.h: No such file or directory
conftest.c: In function 'main':
conftest.c:16: error: 'choke' undeclared (first use in this function)
conftest.c:16: error: (Each undeclared identifier is reported only once
conftest.c:16: error: for each function it appears in.)
conftest.c:16: error: expected ';' before 'me'
configure:5708: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h. */
| #include "ppl_c.h"
| int
| main ()
| {
|
| #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
| choke me
| #endif
|
| ;
| return 0;
| }
configure:5712: result: no
configure:7026: checking for default BUILD_CONFIG
configure:7058: result:
configure:7547: checking for bison
configure:7563: found /usr/bin/bison
configure:7574: result: bison -y
configure:7594: checking for bison
configure:7610: found /usr/bin/bison
configure:7621: result: bison
configure:7641: checking for gm4
configure:7671: result: no
configure:7641: checking for gnum4
configure:7671: result: no
configure:7641: checking for m4
configure:7657: found /usr/bin/m4
configure:7668: result: m4
configure:7688: checking for flex
configure:7718: result: no
configure:7688: checking for lex
configure:7718: result: no
configure:7736: checking for flex
configure:7766: result: no
configure:7783: checking for makeinfo
configure:7813: result: no
configure:7844: checking for expect
configure:7874: result: no
configure:7893: checking for runtest
configure:7923: result: no
configure:8038: checking for ar
configure:8054: found /usr/bin/ar
configure:8065: result: ar
configure:8179: checking for as
configure:8195: found /usr/bin/as
configure:8206: result: as
configure:8320: checking for dlltool
configure:8350: result: no
configure:8461: checking for ld
configure:8477: found /usr/bin/ld
configure:8488: result: ld
configure:8602: checking for lipo
configure:8632: result: no
configure:8743: checking for nm
configure:8759: found /usr/bin/nm
configure:8770: result: nm
configure:8884: checking for ranlib
configure:8900: found /usr/bin/ranlib
configure:8911: result: ranlib
configure:9020: checking for strip
configure:9036: found /usr/bin/strip
configure:9047: result: strip
configure:9156: checking for windres
configure:9186: result: no
configure:9297: checking for windmc
configure:9327: result: no
configure:9438: checking for objcopy
configure:9454: found /usr/bin/objcopy
configure:9465: result: objcopy
configure:9579: checking for objdump
configure:9595: found /usr/bin/objdump
configure:9606: result: objdump
configure:9720: checking for readelf
configure:9736: found /usr/bin/readelf
configure:9747: result: readelf
configure:9861: checking for i686-lfs-linux-gnu-cc
configure:9891: result: no
configure:9861: checking for i686-lfs-linux-gnu-gcc
configure:9891: result: no
configure:10022: checking for i686-lfs-linux-gnu-c++
configure:10052: result: no
configure:10022: checking for i686-lfs-linux-gnu-g++
configure:10052: result: no
configure:10022: checking for i686-lfs-linux-gnu-cxx
configure:10052: result: no
configure:10022: checking for i686-lfs-linux-gnu-gxx
configure:10052: result: no
configure:10183: checking for i686-lfs-linux-gnu-gcc
configure:10213: result: no
configure:10339: checking for i686-lfs-linux-gnu-gcj
configure:10369: result: no
configure:10500: checking for i686-lfs-linux-gnu-gfortran
configure:10530: result: no
configure:10661: checking for i686-lfs-linux-gnu-gccgo
configure:10691: result: no
configure:10791: checking for ar
configure:10809: found /tools/i686-lfs-linux-gnu/bin/ar
configure:10821: result: /tools/i686-lfs-linux-gnu/bin/ar
configure:11021: checking for as
configure:11039: found /tools/i686-lfs-linux-gnu/bin/as
configure:11051: result: /tools/i686-lfs-linux-gnu/bin/as
configure:11251: checking for dlltool
configure:11284: result: no
configure:11362: checking for i686-lfs-linux-gnu-dlltool
configure:11392: result: no
configure:11481: checking for ld
configure:11499: found /tools/i686-lfs-linux-gnu/bin/ld
configure:11511: result: /tools/i686-lfs-linux-gnu/bin/ld
configure:11711: checking for lipo
configure:11744: result: no
configure:11822: checking for i686-lfs-linux-gnu-lipo
configure:11852: result: no
configure:11941: checking for nm
configure:11959: found /tools/i686-lfs-linux-gnu/bin/nm
configure:11971: result: /tools/i686-lfs-linux-gnu/bin/nm
configure:12171: checking for objdump
configure:12189: found /tools/i686-lfs-linux-gnu/bin/objdump
configure:12201: result: /tools/i686-lfs-linux-gnu/bin/objdump
configure:12401: checking for ranlib
configure:12419: found /tools/i686-lfs-linux-gnu/bin/ranlib
configure:12431: result: /tools/i686-lfs-linux-gnu/bin/ranlib
configure:12631: checking for readelf
configure:12664: result: no
configure:12742: checking for i686-lfs-linux-gnu-readelf
configure:12758: found /tools/bin/i686-lfs-linux-gnu-readelf
configure:12769: result: i686-lfs-linux-gnu-readelf
configure:12861: checking for strip
configure:12879: found /tools/i686-lfs-linux-gnu/bin/strip
configure:12891: result: /tools/i686-lfs-linux-gnu/bin/strip
configure:13091: checking for windres
configure:13124: result: no
configure:13202: checking for i686-lfs-linux-gnu-windres
configure:13232: result: no
configure:13321: checking for windmc
configure:13354: result: no
configure:13432: checking for i686-lfs-linux-gnu-windmc
configure:13462: result: no
configure:13529: checking where to find the target ar
configure:13557: result: pre-installed in /tools/i686-lfs-linux-gnu/bin
configure:13571: checking where to find the target as
configure:13599: result: pre-installed in /tools/i686-lfs-linux-gnu/bin
configure:13613: checking where to find the target cc
configure:13636: result: just compiled
configure:13655: checking where to find the target c++
configure:13695: result: pre-installed
configure:13700: checking where to find the target c++ for libstdc++
configure:13740: result: pre-installed
configure:13745: checking where to find the target dlltool
configure:13782: result: pre-installed
configure:13787: checking where to find the target gcc
configure:13810: result: just compiled
configure:13829: checking where to find the target gcj
configure:13869: result: pre-installed
configure:13874: checking where to find the target gfortran
configure:13914: result: pre-installed
configure:13919: checking where to find the target gccgo
configure:13959: result: pre-installed
configure:13964: checking where to find the target ld
configure:13992: result: pre-installed in /tools/i686-lfs-linux-gnu/bin
configure:14006: checking where to find the target lipo
configure:14032: result: pre-installed
configure:14037: checking where to find the target nm
configure:14065: result: pre-installed in /tools/i686-lfs-linux-gnu/bin
configure:14079: checking where to find the target objdump
configure:14107: result: pre-installed in /tools/i686-lfs-linux-gnu/bin
configure:14121: checking where to find the target ranlib
configure:14149: result: pre-installed in /tools/i686-lfs-linux-gnu/bin
configure:14163: checking where to find the target readelf
configure:14200: result: pre-installed
configure:14205: checking where to find the target strip
configure:14233: result: pre-installed in /tools/i686-lfs-linux-gnu/bin
configure:14247: checking where to find the target windres
configure:14284: result: pre-installed
configure:14289: checking where to find the target windmc
configure:14326: result: pre-installed
configure:14359: checking whether to enable maintainer-specific portions of Makefiles
configure:14368: result: no
configure:14401: checking whether -fkeep-inline-functions is supported
configure:14420: gcc -c -g -O2 -fkeep-inline-functions conftest.c >&5
configure:14420: $? = 0
configure:14421: result: yes
configure:14627: creating ./config.status

## ---------------------- ##
## Running config.status. ##
## ---------------------- ##

This file was extended by config.status, which was
generated by GNU Autoconf 2.64. Invocation command line was

CONFIG_FILES =
CONFIG_HEADERS =
CONFIG_LINKS =
CONFIG_COMMANDS =
$ ./config.status

on lfs

config.status:964: creating Makefile

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=i686-pc-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_cxx_compiler_gnu=no
ac_cv_env_AR_FOR_TARGET_set=
ac_cv_env_AR_FOR_TARGET_value=
ac_cv_env_AR_set=
ac_cv_env_AR_value=
ac_cv_env_AS_FOR_TARGET_set=
ac_cv_env_AS_FOR_TARGET_value=
ac_cv_env_AS_set=
ac_cv_env_AS_value=
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_FOR_TARGET_set=
ac_cv_env_CC_FOR_TARGET_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_FOR_TARGET_set=
ac_cv_env_CXX_FOR_TARGET_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_DLLTOOL_FOR_TARGET_set=
ac_cv_env_DLLTOOL_FOR_TARGET_value=
ac_cv_env_DLLTOOL_set=
ac_cv_env_DLLTOOL_value=
ac_cv_env_GCC_FOR_TARGET_set=
ac_cv_env_GCC_FOR_TARGET_value=
ac_cv_env_GCJ_FOR_TARGET_set=
ac_cv_env_GCJ_FOR_TARGET_value=
ac_cv_env_GFORTRAN_FOR_TARGET_set=
ac_cv_env_GFORTRAN_FOR_TARGET_value=
ac_cv_env_GOC_FOR_TARGET_set=
ac_cv_env_GOC_FOR_TARGET_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LD_FOR_TARGET_set=
ac_cv_env_LD_FOR_TARGET_value=
ac_cv_env_LD_set=
ac_cv_env_LD_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_LIPO_FOR_TARGET_set=
ac_cv_env_LIPO_FOR_TARGET_value=
ac_cv_env_LIPO_set=
ac_cv_env_LIPO_value=
ac_cv_env_NM_FOR_TARGET_set=
ac_cv_env_NM_FOR_TARGET_value=
ac_cv_env_NM_set=
ac_cv_env_NM_value=
ac_cv_env_OBJCOPY_set=
ac_cv_env_OBJCOPY_value=
ac_cv_env_OBJDUMP_FOR_TARGET_set=
ac_cv_env_OBJDUMP_FOR_TARGET_value=
ac_cv_env_OBJDUMP_set=
ac_cv_env_OBJDUMP_value=
ac_cv_env_RANLIB_FOR_TARGET_set=
ac_cv_env_RANLIB_FOR_TARGET_value=
ac_cv_env_RANLIB_set=
ac_cv_env_RANLIB_value=
ac_cv_env_READELF_FOR_TARGET_set=
ac_cv_env_READELF_FOR_TARGET_value=
ac_cv_env_READELF_set=
ac_cv_env_READELF_value=
ac_cv_env_STRIP_FOR_TARGET_set=
ac_cv_env_STRIP_FOR_TARGET_value=
ac_cv_env_STRIP_set=
ac_cv_env_STRIP_value=
ac_cv_env_WINDMC_FOR_TARGET_set=
ac_cv_env_WINDMC_FOR_TARGET_value=
ac_cv_env_WINDMC_set=
ac_cv_env_WINDMC_value=
ac_cv_env_WINDRES_FOR_TARGET_set=
ac_cv_env_WINDRES_FOR_TARGET_value=
ac_cv_env_WINDRES_set=
ac_cv_env_WINDRES_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_build_configargs_set=
ac_cv_env_build_configargs_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_host_configargs_set=
ac_cv_env_host_configargs_value=
ac_cv_env_target_alias_set=set
ac_cv_env_target_alias_value=i686-lfs-linux-gnu
ac_cv_env_target_configargs_set=
ac_cv_env_target_configargs_value=
ac_cv_host=i686-pc-linux-gnu
ac_cv_lib_pwl_PWL_handle_timeout=no
ac_cv_objext=o
ac_cv_path_AR_FOR_TARGET=/tools/i686-lfs-linux-gnu/bin/ar
ac_cv_path_AS_FOR_TARGET=/tools/i686-lfs-linux-gnu/bin/as
ac_cv_path_LD_FOR_TARGET=/tools/i686-lfs-linux-gnu/bin/ld
ac_cv_path_NM_FOR_TARGET=/tools/i686-lfs-linux-gnu/bin/nm
ac_cv_path_OBJDUMP_FOR_TARGET=/tools/i686-lfs-linux-gnu/bin/objdump
ac_cv_path_RANLIB_FOR_TARGET=/tools/i686-lfs-linux-gnu/bin/ranlib
ac_cv_path_SED=/bin/sed
ac_cv_path_STRIP_FOR_TARGET=/tools/i686-lfs-linux-gnu/bin/strip
ac_cv_path_install='/usr/bin/install -c'
ac_cv_prog_AR=ar
ac_cv_prog_AS=as
ac_cv_prog_AWK=gawk
ac_cv_prog_BISON=bison
ac_cv_prog_LD=ld
ac_cv_prog_M4=m4
ac_cv_prog_NM=nm
ac_cv_prog_OBJCOPY=objcopy
ac_cv_prog_OBJDUMP=objdump
ac_cv_prog_RANLIB=ranlib
ac_cv_prog_READELF=readelf
ac_cv_prog_READELF_FOR_TARGET=i686-lfs-linux-gnu-readelf
ac_cv_prog_STRIP=strip
ac_cv_prog_YACC='bison -y'
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_cc_c89=
ac_cv_prog_cc_g=yes
ac_cv_prog_cxx_g=no
ac_cv_target=i686-lfs-linux-gnu
acx_cv_cc_gcc_supports_ada=no
acx_cv_prog_LN=ln
gcc_cv_prog_cmp_skip='cmp --ignore-initial=16 $$f1 $$f2'
gcc_cv_tool_dirs=/tools/libexec/gcc/i686-lfs-linux-gnu/4.7.2:/tools/libexec/gcc/i686-lfs-linux-gnu:/usr/lib/gcc/i686-lfs-linux-gnu/4.7.2:/usr/lib/gcc/i686-lfs-linux-gnu:/tools/i686-lfs-linux-gnu/bin/i686-lfs-linux-gnu/4.7.2:/tools/i686-lfs-linux-gnu/bin:
gcc_cv_tool_prefix=/tools
lt_cv_objdir=.libs

## ----------------- ##
## Output variables. ##
## ----------------- ##

AR='ar'
AR_FOR_BUILD='$(AR)'
AR_FOR_TARGET='/tools/i686-lfs-linux-gnu/bin/ar'
AS='as'
AS_FOR_BUILD='$(AS)'
AS_FOR_TARGET='/tools/i686-lfs-linux-gnu/bin/as'
AWK='gawk'
BISON='bison'
BUILD_CONFIG=''
CC='gcc'
CC_FOR_BUILD='$(CC)'
CC_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/'
CFLAGS='-g -O2'
CFLAGS_FOR_BUILD='-g -O2'
CFLAGS_FOR_TARGET='-g -O2'
COMPILER_AS_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/as'
COMPILER_LD_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/collect-ld'
COMPILER_NM_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/nm'
CONFIGURE_GDB_TK=''
CPPFLAGS=''
CXX='g++'
CXXFLAGS=''
CXXFLAGS_FOR_BUILD=''
CXXFLAGS_FOR_TARGET='-g '
CXX_FOR_BUILD='$(CXX)'
CXX_FOR_TARGET='i686-lfs-linux-gnu-c++'
DEBUG_PREFIX_CFLAGS_FOR_TARGET=''
DEFS='-DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DLT_OBJDIR=\".libs/\"'
DLLTOOL='dlltool'
DLLTOOL_FOR_BUILD='$(DLLTOOL)'
DLLTOOL_FOR_TARGET='i686-lfs-linux-gnu-dlltool'
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EXEEXT=''
EXPECT='expect'
EXTRA_CONFIGARGS_LIBJAVA='--disable-static'
FLAGS_FOR_TARGET=' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
FLEX='/mnt/lfs/sources/gcc-4.7.2/missing flex'
GCC_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/'
GCC_SHLIB_SUBDIR=''
GCJ_FOR_BUILD='$(GCJ)'
GCJ_FOR_TARGET='i686-lfs-linux-gnu-gcj'
GDB_TK=''
GFORTRAN_FOR_BUILD='$(GFORTRAN)'
GFORTRAN_FOR_TARGET='i686-lfs-linux-gnu-gfortran'
GNATBIND='no'
GNATMAKE='no'
GOC_FOR_BUILD='$(GOC)'
GOC_FOR_TARGET='i686-lfs-linux-gnu-gccgo'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_GDB_TK=''
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
LD='ld'
LDFLAGS=''
LDFLAGS_FOR_BUILD=''
LDFLAGS_FOR_TARGET=''
LD_FOR_BUILD='$(LD)'
LD_FOR_TARGET='/tools/i686-lfs-linux-gnu/bin/ld'
LEX='/mnt/lfs/sources/gcc-4.7.2/missing flex'
LIBOBJS=''
LIBS=''
LIPO='lipo'
LIPO_FOR_TARGET='i686-lfs-linux-gnu-lipo'
LN='ln'
LN_S='ln -s'
LTLIBOBJS=''
M4='m4'
MAINT='#'
MAINTAINER_MODE_FALSE=''
MAINTAINER_MODE_TRUE='#'
MAKEINFO='/mnt/lfs/sources/gcc-4.7.2/missing makeinfo'
NM='nm'
NM_FOR_BUILD='$(NM)'
NM_FOR_TARGET='/tools/i686-lfs-linux-gnu/bin/nm'
OBJCOPY='objcopy'
OBJDUMP='objdump'
OBJDUMP_FOR_TARGET='/tools/i686-lfs-linux-gnu/bin/objdump'
OBJEXT='o'
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_URL=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
POSTSTAGE1_CONFIGURE_FLAGS='--enable-build-with-cxx'
RANLIB='ranlib'
RANLIB_FOR_BUILD='$(RANLIB)'
RANLIB_FOR_TARGET='/tools/i686-lfs-linux-gnu/bin/ranlib'
RAW_CXX_FOR_TARGET='i686-lfs-linux-gnu-c++'
READELF='readelf'
READELF_FOR_TARGET='i686-lfs-linux-gnu-readelf'
RPATH_ENVVAR='LD_LIBRARY_PATH'
RUNTEST='runtest'
SED='/bin/sed'
SHELL='/bin/sh'
STRIP='strip'
STRIP_FOR_TARGET='/tools/i686-lfs-linux-gnu/bin/strip'
SYSROOT_CFLAGS_FOR_TARGET=''
TOPLEVEL_CONFIGURE_ARGUMENTS='../gcc-4.7.2/configure --target=i686-lfs-linux-gnu --prefix=/tools --with-sysroot=/mnt/lfs --with-newlib --without-headers --with-local-prefix=/tools --with-native-system-header-dir=/tools/include --disable-nls --disable-shared --disable-multilib --disable-decimal-float --disable-threads --disable-libmudflap --disable-libssp --disable-libgomp --disable-libquadmath --enable-languages=c --with-mpfr-include=/mnt/lfs/sources/gcc-build/../gcc-4.7.2/mpfr/src --with-mpfr-lib=/mnt/lfs/sources/gcc-build/mpfr/src/.libs'
WINDMC='windmc'
WINDMC_FOR_BUILD='$(WINDMC)'
WINDMC_FOR_TARGET='i686-lfs-linux-gnu-windmc'
WINDRES='windres'
WINDRES_FOR_BUILD='$(WINDRES)'
WINDRES_FOR_TARGET='i686-lfs-linux-gnu-windres'
YACC='bison -y'
ac_ct_CC='gcc'
ac_ct_CXX=''
bindir='${exec_prefix}/bin'
build='i686-pc-linux-gnu'
build_alias=''
build_configargs=' --cache-file=../config.cache '\''--prefix=/tools'\'' '\''--with-sysroot=/mnt/lfs'\'' '\''--with-newlib'\'' '\''--without-headers'\'' '\''--with-local-prefix=/tools'\'' '\''--with-native-system-header-dir=/tools/include'\'' '\''--disable-nls'\'' '\''--disable-shared'\'' '\''--disable-multilib'\'' '\''--disable-decimal-float'\'' '\''--disable-threads'\'' '\''--disable-libmudflap'\'' '\''--disable-libssp'\'' '\''--disable-libgomp'\'' '\''--disable-libquadmath'\'' '\''--with-mpfr-include=/mnt/lfs/sources/gcc-build/../gcc-4.7.2/mpfr/src'\'' '\''--with-mpfr-lib=/mnt/lfs/sources/gcc-build/mpfr/src/.libs'\'' '\''--enable-languages=c,lto'\'' --program-transform-name='\''s&^&i686-lfs-linux-gnu-&'\'' --disable-option-checking'
build_configdirs=' libiberty fixincludes'
build_cpu='i686'
build_libsubdir='build-i686-pc-linux-gnu'
build_noncanonical='i686-pc-linux-gnu'
build_os='linux-gnu'
build_subdir='build-i686-pc-linux-gnu'
build_tooldir='${exec_prefix}/i686-lfs-linux-gnu'
build_vendor='pc'
clooginc=''
clooglibs=''
compare_exclusions='gcc/cc*-checksum$(objext) | gcc/ada/*tools/*'
configdirs=' intl libiberty zlib libcpp libdecnumber gmp mpfr mpc fixincludes gcc lto-plugin'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
do_compare='cmp --ignore-initial=16 $$f1 $$f2'
docdir='${datarootdir}/doc/${PACKAGE}'
dvidir='${docdir}'
exec_prefix='${prefix}'
extra_host_libiberty_configure_flags='--enable-shared'
extra_mpc_gmp_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/.libs'
extra_mpc_mpfr_configure_flags=''
extra_mpfr_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/.libs'
gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp -I/mnt/lfs/sources/gcc-build/../gcc-4.7.2/mpfr/src -I$$s/mpc/src '
gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/.libs -L/mnt/lfs/sources/gcc-build/mpfr/src/.libs -L$$r/$(HOST_SUBDIR)/mpc/src/.libs -lmpc -lmpfr -lgmp'
host='i686-pc-linux-gnu'
host_alias=''
host_configargs=' --cache-file=./config.cache '\''--prefix=/tools'\'' '\''--with-sysroot=/mnt/lfs'\'' '\''--with-newlib'\'' '\''--without-headers'\'' '\''--with-local-prefix=/tools'\'' '\''--with-native-system-header-dir=/tools/include'\'' '\''--disable-nls'\'' '\''--disable-shared'\'' '\''--disable-multilib'\'' '\''--disable-decimal-float'\'' '\''--disable-threads'\'' '\''--disable-libmudflap'\'' '\''--disable-libssp'\'' '\''--disable-libgomp'\'' '\''--disable-libquadmath'\'' '\''--with-mpfr-include=/mnt/lfs/sources/gcc-build/../gcc-4.7.2/mpfr/src'\'' '\''--with-mpfr-lib=/mnt/lfs/sources/gcc-build/mpfr/src/.libs'\'' '\''--enable-languages=c,lto'\'' --program-transform-name='\''s&^&i686-lfs-linux-gnu-&'\'' --disable-option-checking'
host_cpu='i686'
host_noncanonical='i686-pc-linux-gnu'
host_os='linux-gnu'
host_subdir='.'
host_vendor='pc'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
poststage1_ldflags='-static-libstdc++ -static-libgcc'
poststage1_libs=''
pplinc=''
ppllibs=''
prefix='/tools'
program_transform_name='s&^&i686-lfs-linux-gnu-&'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
stage1_cflags='-g -fkeep-inline-functions'
stage1_checking='--enable-checking=yes,types'
stage1_languages='c,lto'
stage1_ldflags=''
stage1_libs=''
stage2_werror_flag=''
sysconfdir='${prefix}/etc'
target='i686-lfs-linux-gnu'
target_alias='i686-lfs-linux-gnu'
target_configargs='--cache-file=./config.cache --with-cross-host=i686-pc-linux-gnu '\''--prefix=/tools'\'' '\''--with-sysroot=/mnt/lfs'\'' '\''--with-newlib'\'' '\''--without-headers'\'' '\''--with-local-prefix=/tools'\'' '\''--with-native-system-header-dir=/tools/include'\'' '\''--disable-nls'\'' '\''--disable-shared'\'' '\''--disable-multilib'\'' '\''--disable-decimal-float'\'' '\''--disable-threads'\'' '\''--disable-libmudflap'\'' '\''--disable-libssp'\'' '\''--disable-libgomp'\'' '\''--disable-libquadmath'\'' '\''--enable-languages=c,lto'\'' --program-transform-name='\''s&^&i686-lfs-linux-gnu-&'\'' --disable-option-checking'
target_configdirs=' libgcc'
target_cpu='i686'
target_noncanonical='i686-lfs-linux-gnu'
target_os='linux-gnu'
target_subdir='i686-lfs-linux-gnu'
target_vendor='lfs'
tooldir='${exec_prefix}/i686-lfs-linux-gnu'

## ------------------- ##
## File substitutions. ##
## ------------------- ##

alphaieee_frag='/dev/null'
host_makefile_frag='/dev/null'
ospace_frag='/dev/null'
serialization_dependencies='serdep.tmp'
target_makefile_frag='../gcc-4.7.2/config/mt-gnu'

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL ""
#define LT_OBJDIR ".libs/"

configure: exit 0



・次にmakeとmake installを実行。

make
make install



・LFS BOOK7.3 p37の最後には以下コマンドが書いてあるが、/mnt/lfs/sources/gcc-buildの下には
 libgcc.aが存在しない。おそらくlibgcc.aが存在する/mnt/lfs/sources/gcc-build/gccに移動してから
 実行するものと予想し、そうした。

ln -sv libgcc.a `$LFS_TGT-gcc -print-libgcc-file-name | sed 's/libgcc/&_eh/'`



■5.6. Linux-3.8.1 API ヘッダー
・標準のビルド手順に従い、まずは/mnt/lfs/sourcesへ移動し、対象パッケージを展開。

tar -Jxf linux-3.8.1.tar.xz



・展開したディレクトリ/mnt/lfs/sources/linux-3.8.1 へ移動して以下実行。

make mrproper


・次に、make headers_check を実行。

# make headers_check
CHK include/generated/uapi/linux/version.h
UPD include/generated/uapi/linux/version.h
HOSTCC scripts/basic/fixdep
WRAP arch/x86/include/generated/asm/clkdev.h
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_x32.h
SYSTBL arch/x86/syscalls/../include/generated/asm/syscalls_32.h
HOSTCC arch/x86/tools/relocs
HOSTCC scripts/unifdef
INSTALL include/asm-generic (35 files)
INSTALL include/drm (15 files)
INSTALL include/linux/byteorder (2 files)
INSTALL include/linux/caif (2 files)
INSTALL include/linux/can (5 files)
INSTALL include/linux/dvb (8 files)
INSTALL include/linux/hdlc (1 file)
INSTALL include/linux/hsi (1 file)
INSTALL include/linux/isdn (1 file)
INSTALL include/linux/mmc (1 file)
INSTALL include/linux/netfilter/ipset (4 files)
INSTALL include/linux/netfilter (76 files)
INSTALL include/linux/netfilter_arp (2 files)
INSTALL include/linux/netfilter_bridge (18 files)
INSTALL include/linux/netfilter_ipv4 (10 files)
INSTALL include/linux/netfilter_ipv6 (12 files)
INSTALL include/linux/nfsd (5 files)
INSTALL include/linux/raid (2 files)
INSTALL include/linux/spi (1 file)
INSTALL include/linux/sunrpc (1 file)
INSTALL include/linux/tc_act (7 files)
INSTALL include/linux/tc_ematch (4 files)
INSTALL include/linux/usb (10 files)
INSTALL include/linux/wimax (1 file)
INSTALL include/linux (381 files)
   :
   :



・次は以下実行。

make INSTALL_HDR_PATH=dest headers_install


・次はこれ。

cp -rv dest/include/* /tools/include



■5.7. Glibc-2.17
・/mnt/lfs/sources で以下実行。

tar -Jxf glibc-2.17.tar.xz



・次の理由で後述のコマンドを実行すると。ちなみに「#!/bin/bash」は自分で判断し追加。

例えば LFS 7.1 などにおいて、rpc ヘッダーが適切にインストールされていない場合がある。
ホストシステムにそれらがインストールされているかを確認し、なければそれらをインストールする。

#!/bin/bash

if [ ! -r /usr/include/rpc/types.h ]; then
su -c 'mkdir -p /usr/include/rpc'
su -c 'cp -v sunrpc/rpc/*.h /usr/include/rpc'
fi


・ビルド用にまたDIR作って移動。

mkdir -v ../glibc-build
cd ../glibc-build


・コンパイル準備のため以下コマンド実行。

#!/bin/bash

../glibc-2.17/configure \
--prefix=/tools \
--host=$LFS_TGT \
--build=$(../glibc-2.17/scripts/config.guess) \
--disable-profile \
--enable-kernel=2.6.25 \
--with-headers=/tools/include \
libc_cv_forced_unwind=yes \
libc_cv_ctors_header=yes \
libc_cv_c_cleanup=yes



・config.logに以下MSG。

configure:5407: WARNING:
*** These auxiliary programs are missing or incompatible versions: msgfmt makeinfo autoconf
*** some features will be disabled.
*** Check the INSTALL file for required versions.


 これはLFS BOOK7.3 p40にも説明あるように問題無いとの事。

msgfmt プログラムがない場合 (missing) や互換性がない場合 (incompatible) でも特に問題はありません。
msgfmtプログラムは Gettext パッケージが提供するもので、ホストシステムに含まれているかもしれません。


・makeする。

make
make install


・ここで注意書きがあって、以下を必ず実行すると。理由は以下。

新しいツールチェーンの基本的な機能 (コンパイルやリンク) が正常に
処理されるかどうかを確認することです。


echo 'main(){}' > dummy.c
$LFS_TGT-gcc dummy.c
readelf -l a.out | grep ': /tools'


・上のコマンドを実行すると、次の結果だった。

bash-4.1$ readelf -l a.out | grep ': /tools'
[Requesting program interpreter: /tools/lib/ld-linux.so.2]


 これは、p40の以下説明書きにも一致。問題無しだ。

すべてが正常に処理され、エラーが発生しなければ、最終のコマンドの実行結果として以下が
出力されるはずです。
[Requesting program interpreter: /tools/lib/ld-linux.so.2]
ダイナミックリンカーのプリフィックスは /tools/lib、あるいは 64 ビットマシンであれば
/tools/lib64 となります。



■5.8. Binutils-2.23.1 - 2回め
・前回展開してるから/mnt/lfs/sources/binutils-2.23.1 が既に存在する。
 以下から実行と思ったが、binutils-buildも存在する。作成せずに移動。

mkdir -v ../binutils-build
cd ../binutils-build



・make 実行したら、以下のエラー。

  :
  :
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
configure: error: source directory already configured; run "make distclean" there first
make[1]: *** [configure-bfd] Error 1
make[1]: Leaving directory `/mnt/lfs/sources/binutils-build'
make: *** [all] Error 2



(2013/10/2追記)
・LFS BOOK7.3 p42をよくよく見ると、DIR移動してからmakeする前に、
 コンパイル準備とかいう作業が書いてある。以下実行。

#!/bin/bash

CC=$LFS_TGT-gcc \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-ranlib \
../binutils-2.23.1/configure \
--prefix=/tools \
--disable-nls \
--with-lib-path=/tools/lib



・makeやり直しても、同じエラーだった。

configure: error: source directory already configured; run "make distclean" there first
make[1]: *** [configure-bfd] Error 1
make[1]: Leaving directory `/mnt/lfs/sources/binutils-build'
make: *** [all] Error 2



・メッセージに出てるように「make distclean」を実行してみた。
 メモるのを忘れたが、エラーっぽいメッセージが。

・その後、Makefileが消されたので、再度、makeの前にやったコンパイル準備の
 コマンドを実行してから、makeを実行した。でもやっぱりエラーが。

  :
  :
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
configure: error: source directory already configured; run "make distclean" there first
make[1]: *** [configure-bfd] Error 1
make[1]: Leaving directory `/mnt/lfs/sources/binutils-build'
make: *** [all] Error 2



・makeを飛ばして、make installを実行してみたが、以下のエラーが。

bash-4.1$ make install
make[1]: Entering directory `/mnt/lfs/sources/binutils-build'
/bin/sh ../binutils-2.23.1/mkinstalldirs /tools /tools
make[2]: Entering directory `/mnt/lfs/sources/binutils-build/bfd'
make[2]: *** No rule to make target `install'. Stop.
make[2]: Leaving directory `/mnt/lfs/sources/binutils-build/bfd'
make[1]: *** [install-bfd] Error 2
make[1]: Leaving directory `/mnt/lfs/sources/binutils-build'
make: *** [install] Error 2



 メッセージ見ると、ログの3行目に /mnt/lfs/sources/binutils-build/bfd に移動してから
 「No rule to make target `install'. Stop.」と言っている。
  /mnt/lfs/sources/binutils-build/bfd をのぞいてみると、config.log が存在。
 中をチェックしてみると、66行目や71行目でerrorがある。さらに121行目では、
 make distcleanをやれと言ってる。

    :
    :
62 Thread model: single
63 gcc version 4.7.2 (GCC)
64 configure:2992: $? = 0
65 configure:2981: i686-lfs-linux-gnu-gcc -V >&5
66 i686-lfs-linux-gnu-gcc: error: unrecognized command line option '-V'
67 i686-lfs-linux-gnu-gcc: fatal error: no input files
68 compilation terminated.
69 configure:2992: $? = 1
70 configure:2981: i686-lfs-linux-gnu-gcc -qversion >&5
71 i686-lfs-linux-gnu-gcc: error: unrecognized command line option '-qversion'
72 i686-lfs-linux-gnu-gcc: fatal error: no input files
73 compilation terminated.
74 configure:2992: $? = 1
    :
119 configure:3919: checking for style of include used by make
120 configure:3947: result: GNU
121 configure:3975: error: source directory already configured; run "make distclean" there first

スポンサーサイト

[LFS][LFS BOOK7.3]第4章 準備作業の仕上げ(p26)

・もうやってるけど以下を/etc/bashrcへ登録。

export LFS=/mnt/lfs


・mkdir -v $LFS/tools

・LFS BOOK7.3にも注意書きあるが、以下コマンドは正しいとのこと。

# ln -sv $LFS/tools /
'/tools' -> '/mnt/lfs/tools'


マニュアルによると、
「シンボリックリンクを作成することで、ツールチェーンをコンパイルする準備が整いました。
 これにより常に /tools ディレクトリを参照したツールチェーンが生成できます。」

■4.3. LFS ユーザーの追加
・今後rootで作業続けると、深刻なミスを引き起こす恐れがあるとの事で別途
 作業ユーザを作る事に。

groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs


コマンドラインオプションの意味:
-s /bin/bash
  lfs ユーザーが利用するデフォルトのシェルを bash にします。
-g lfs
  lfs ユーザーのグループを lfs とします。
-m
  lfs ユーザーのホームディレクトリを生成します。
-k /dev/null
  このパラメーターは、ディレクトリ名をヌルデバイス (null device) に指定しています。
  こうすることでスケルトンディレクトリ (デフォルトは /etc/skel) からの
  ファイル群のコピーを無効とします。
lfs
  生成するグループおよびユーザーの名称を与えます。



・passwd lfs → lfsユーザのパスワードを設定。

・chown -v lfs $LFS/tools

・chown -v lfs $LFS/sources

・su - lfs
 lfsユーザへ切り替える。

■4.4. 環境設定
・以下コマンドで.bash_profile ファイルを生成します。

cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF


 このコマンドを実行すると、次の一文が記載された.bash_profileというファイルが、
 /home/lfsの下に生成される。(lfsでログインしてるため、~/は/home/lfsとなった。

exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash



・この作業についての説明として以下のようにされている。

lfs ユーザーとしてログインした時、起動されるシェルは普通はログインシェルとなります。
この時、ホストシステムの /etc/profile ファイル (おそらく環境変数がいくつか定義されている)
と .bash_profile が読み込まれます。
.bash_profile ファイル内の exec env -i.../bin/bash というコマンドが、
起動しているシェルを全くの空の環境として起動し直し HOME、 TERM、PS1 という
環境変数だけを設定します。 これはホストシステム内の不要な設定や危険をはらんだ設定を、
ビルド環境に持ち込まないようにするためです。
このようにすることできれいな環境作りを実現できます。

新しく起動するシェルはログインシェルではなくなります。
したがってこのシェルは /etc/profile ファイルや.bash_profile ファイルは読み込まず、
代わりに .bashrc ファイルを読み込みます。 そこで以下のようにして
.bashrc ファイルを生成します。



・そこで、上の説明で指定されている、.bashrcを次のコマンドで生成する。

cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH
EOF



・上の.bashrcの説明がのってたので、そのままコピーしとく。

set +h コマンドは bash のハッシュ機能を無効にします。 通常このハッシュ機能は有用なものです。
実行ファイルのフルパスをハッシュテーブルに記憶しておき、再度そのパスを探し出す際に
PATH 変数の探査を省略します。
しかしこれより作り出すツール類はインストール直後にすぐ利用していきます。
ハッシュ機能を無効にすることで、プログラム実行が行われる際に、シェルは必ず PATH を探しにいきます。
つまり $LFS/tools ディレクトリ以下に新たに構築したツール類は必ず実行されるようになるわけです。
そのツールの古いバージョンがどこか別のディレクトリにあったとしても、その場所を覚えていて
実行されるということがなくなります。

ユーザーのファイル生成マスク (file-creation mask; umask) を 022 にセットするのは、
新たなファイルやディレクトリの生成はその所有者にのみ許可し、他者は読み取りと実行を可能と
するためです。
(システムコール open(2)にてデフォルトモードが適用される場合、新規生成ファイルの
パーミッションモードは 644、同じくディレクトリは755 となります。)

環境変数 LFS は常に指定したマウントポイントを指し示すように設定します。

LC_ALL 変数は特定のプログラムが扱う国情報を制御します。 そのプログラムが出力するメッセージを、
指定された国情報に基づいて構成します。

ホストシステムの Glibc が 2.2.4 よりも古いものであって、この LC_ALL を (本章の作業中に)
「POSIX」でもなく「C」でもない値にセットしていた場合、chroot 環境からの exit と再度の環境移行を
行う際に問題が発生します。 LC_ALL 変数は「POSIX」か「C」にセットしてください。
(両者は同じです。) そのようにセットしておけば、chroot 環境下での作業が問題なく進められます。

LFS_TGT 変数は標準にないマシン名称を設定します。 しかしこれはこの先、クロスコンパイラーや
クロスリンカーの構築、これを用いたツールチェーンの構築の際に、うまく動作させるための設定です。
詳しくは 5.2.「ツールチェーンの技術的情報」にて説明しているので参照してください。

/tools/bin ディレクトリを PATH 変数の先頭に設定します。 第5章にてインストールするプログラムは、
インストールした直後からシェルによって実行指示が下されます。
この設定は、ハッシュ機能をオフとしたことと連携して、古いプログラムが実行されないようにします。
たとえホストシステムとの間で同一の実行プログラムがあったとしても、
第5章の作業環境下では適切なプログラム実行が実現されます。



・source ~/.bash_profile

■4.5. SBU 値について
・なんかちょっと、かゆい所に手を貸してくれるような内容の章ですね。

・要するに言ってる事は、以下と。

いろんなパッケージをコンパイルする時、みんなのマシンスペックがまちまちで時間が読めないから
標準ビルド単位 (Standard Build Unit; SBU)っていう単位を使って教えてやるよ、と。
本書で最初にコンパイルする第5章のBinutilsを1SBUと規定して、他のパッケージが相対的に
何SBUか書いておいてやるよ!このURL見てよ。http://www.linuxfromscratch.org/~sbu/



■4.6. テストスイートについて
・うだうだ言ってますが、要するに以下と。

通常の方は5章の作業ではテストスイートしなくても良いよ。

[LFS][LFS BOOK7.3]第3章 パッケージとパッチ(p18)

これまで同様、rootでログインして作業。


・/etc/bashrc末尾へ「export LFS=/mnt/lfs」を追加。

・source /etc/bashrc

・mkdir -v $LFS/sources

・chmod -v a+wt $LFS/sources
 このディレクトリには書き込み権限とスティッキーを与えます。
  「スティッキー (Sticky) 」は複数ユーザーに対して書き込み権限が与えられても、
 削除については所有者しか実行出来ないようにします。

・yum install wget
 wgetがインストールされてなかったので、インストール。

・wget-listなるものを利用してwgetするとの事。
 しかし、wget-listが何か詳しく書いてない。おそらく3.2章に記載のダウンロード先だろう。
 よって、3.2章の内容をコピーして、テキスト編集して、ダウンロードのURLの羅列にした。
 これが元々のURLなので「wget-list.orig」とする。

3.2. 全パッケージ
以下に示すパッケージをダウンロードするなどしてすべて入手してください。
• Autoconf (2.69) - 1,186 KB:
ホームページ: http://www.gnu.org/software/autoconf/
ダウンロード: http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.xz
MD5 sum: 50f97f4159805e374639a73e2636f22e
• Automake (1.13.1) - 1,392 KB:



・LFS BOOK7.3のp19に注記(日本語訳情報)があって、言ってる事は、上で作成した
 wget-listのオリジナルは、海外の遠いサイトばかりなので、インターネットマナー
 として国内の近いサイトで代替しよう、というもの。
 また、オリジナルサイトから日本国内ミラーへの反映のタイムラグがあるかもしれないから、
 以下のように、漏れが無いようにオリジナルサイトでもwgetしておく、というもの。

wget -N -i wget-list -P $LFS/sources
wget -N -i wget-list.orig -P $LFS/sources



・具体的な手順はまず、国内サイトへの置換sedスクリプトを作る。

wget-list-ja.sed の内容

s|ftp\.gnu\.org/gnu/|ftp.riken.jp/GNU/gnu/|g
s|www\.kernel\.org/pub/linux/|ftp.riken.jp/Linux/kernel.org/linux/|g
s|www\.cpan\.org|ftp.riken.jp/lang/CPAN|g
s|ftp\.vim\.org|ftp.jp.vim.org|g



・sed -f wget-list-ja.sed wget-list.orig > wget-list
 これで日本国内サイトへ置換したリスト(wget-list)が生成された。

・上でも書いたけど、以下の通りコマンドを2重にして実行。

wget -N -i wget-list -P $LFS/sources
wget -N -i wget-list.orig -P $LFS/sources


 一個目のコマンドで、何やらごちゃごちゃダウンロードが始まった。
 完了すると、$LFS/sourcesの中にパッケージデータがダウンロードされた。

 本当は、tee | logでログを取ろうかと思ったが、ログが取れなかった。

・3.2. 全パッケージ についてもURLを羅列したリストを作り、wgetコマンドでダウンロード。
wget -N -i -P $LFS/sources

[LFS][LFS BOOK7.3]第2章 新しいパーティションの準備(p14)

・USB2.0ポートへUSB SDメモリリーダーを接続。
・自動認識されて、デバイス名は/dev/sdbと判明。
・fdiskコマンドでパーティションを作成。
 fdisk > n(add new partition) > primary > 番号
 > 開始シリンダ番号:そのままEnter > 終了シリンダ番号:+5G(この例では5GB分確保)
  > t > パーティションタイプ番号(swap=82、Linux=83、defaultなので指定不要)
  > 4つ全て終わったらwでWriteして終了。

  primary 1: 200MB(/boot用)
  primary 2: 5GB(swap用)
  primary 3: 5GB(/home用)
  primary 4: 20GB(残り全て)(/用)


・mkfsコマンドで各パーティションをext3でフォーマットする。

 mkfs -t ext3 /dev/sdb1  ※sdb2~4も同様


・/mnt/lfs、/mnt/lfs/boot、/mnt/lfs/homeフォルダを作成。
・各パーティションをマウントして行く。

mount /dev/sdb1 /mnt/lfs/boot
mount /dev/sdb3 /mnt/lfs/home
mount /dev/sdb4 /mnt/lfs

swapパーティションは上の方法とは異なる。
新規にswapパーティションを用意したので、mkswapで初期化する。
それからswaponで利用可能にする。
mkswap /dev/sdb2
swapon /dev/sdb2

[LFS][LFS BOOK7.3]パッケージとパッチ(p18)

p14 第2章 新しいパーティションの準備
はよくわからん。これってCentOSインストール時に作ったパーティションの事??

すっとばして、パッケージとパッチをインストールしてみよう。
カレンダー
06 | 2018/07 | 08
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード