Ragnar Rüütel
2014-07-02 12:43:27 UTC
Hi,
I've been trying to wrap my head around this for weeks and I'm almost
ready to give up. I need a i686-elf compiler to build generic linux
binaries. So, first I created native compiler (like advised here:
http://wiki.osdev.org/Building_GCC) into
/home/ragnar/cpp-tools/compiler/local/gcc. Then exported these:
export CC="/home/ragnar/cpp-tools/compiler/local/gcc/bin/gcc"
export CXX="/home/ragnar/cpp-tools/compiler/local/gcc/bin/g++"
export CPP="/home/ragnar/cpp-tools/compiler/local/gcc/bin/cpp"
export LD="/home/ragnar/cpp-tools/compiler/local/gcc/bin/ld"
export PATH="/home/ragnar/cpp-tools/compiler/local/gcc/bin:$PATH"
export LD_LIBRARY_PATH="/home/ragnar/cpp-tools/compiler/local/gcc/lib32"
and started to build i686-elf compiler (as advised here
http://wiki.osdev.org/GCC_Cross-Compiler) with following commands:
#GMP
$gmp_src/configure
--prefix="/home/ragnar/cpp-tools/compiler/linux32/gcc" --enable-cxx
--disable-shared
make CPPFLAGS="-fexceptions"
make install
#MPFR
$mpfr_src/configure
--prefix="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--with-gmp="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--disable-shared
make
make install
#MPC
$mpc_src/configure
--prefix="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--with-gmp="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--with-mpfr="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--disable-shared
make
make install
export LD_LIBRARY_PATH="/home/ragnar/cpp-tools/compiler/linux32/gcc/lib:$LD_LIBRARY_PATH"
#BINUTILS
$binutils_src/configure
--prefix="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--target=i686-elf --disable-multilib
--with-gmp="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--with-mpfr="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--with-mpc="/home/ragnar/cpp-tools/compiler/linux32/gcc" --disable-nls
--disable-shared --disable-werror
make
make check
make install
#GCC
$gcc_src/configure
--prefix="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--target=i686-elf --enable-32bit --disable-64bit
--enable-languages="c,c++" --disable-multilib --enable-libssp
--enable-threads=posix --disable-nls --disable-shared
--with-gmp="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--with-mpfr="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--with-mpc="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--enable-checking=release --enable-lto
--enable-version-specific-runtime-libs
make all-gcc
make all-target-libgcc
while building libcc I get following error message:
...
/home/ragnar/cpp-tools/compiler/cpp-build-tools/build-linux32/gcc/./gcc/xgcc
-B/home/ragnar/cpp-tools/compiler/cpp-build-tools/build-linux32/gcc/./gcc/
-B/home/ragnar/cpp-tools/compiler/cpp-build-tools/../linux32/gcc/i686-elf/bin/
-B/home/ragnar/cpp-tools/compiler/cpp-build-tools/../linux32/gcc/i686-elf/lib/
-isystem /home/ragnar/cpp-tools/compiler/cpp-build-tools/../linux32/gcc/i686-elf/include
-isystem /home/ragnar/cpp-tools/compiler/cpp-build-tools/../linux32/gcc/i686-elf/sys-include
-g -O2 -O2 -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall
-Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition -isystem ./include
-fpic -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector
-Dinhibit_libc -fpic -I. -I. -I../.././gcc
-I/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc/libgcc
-I/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc/libgcc/.
-I/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc/libgcc/../gcc
-I/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc/libgcc/../include
-DHAVE_CC_TLS -o unwind-dw2.o -MT unwind-dw2.o -MD -MP -MF
unwind-dw2.dep -fexceptions -c
/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc/libgcc/unwind-dw2.c
-fvisibility=hidden -DHIDE_EXPORTS
In file included from
/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc/libgcc/gthr.h:148:0,
from
/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc/libgcc/unwind-dw2.c:37:
./gthr-default.h:35:21: fatal error: pthread.h: No such file or directory
#include <pthread.h>
^
compilation terminated.
make[1]: *** [unwind-dw2.o] Error 1
make[1]: Leaving directory
`/home/ragnar/cpp-tools/compiler/cpp-build-tools/build-linux32/gcc/i686-elf/libgcc'
make: *** [all-target-libgcc] Error 2
when I seach for phtread.h I get following results:
/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc-4.9.0/fixincludes/tests/base/pthread.h
/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc-4.9.0/fixincludes/tests/base/sys/pthread.h
/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc-4.9.0/gcc/config/openbsd-libpthread.h
/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc-4.9.0/gcc/config/i386/mingw-pthread.h
/usr/include/pthread.h
I've attached config.log from
/home/ragnar/cpp-tools/compiler/cpp-build-tools/build-linux32/gcc/i686-elf/libgcc
Any help is greatly appreciated.
I've been trying to wrap my head around this for weeks and I'm almost
ready to give up. I need a i686-elf compiler to build generic linux
binaries. So, first I created native compiler (like advised here:
http://wiki.osdev.org/Building_GCC) into
/home/ragnar/cpp-tools/compiler/local/gcc. Then exported these:
export CC="/home/ragnar/cpp-tools/compiler/local/gcc/bin/gcc"
export CXX="/home/ragnar/cpp-tools/compiler/local/gcc/bin/g++"
export CPP="/home/ragnar/cpp-tools/compiler/local/gcc/bin/cpp"
export LD="/home/ragnar/cpp-tools/compiler/local/gcc/bin/ld"
export PATH="/home/ragnar/cpp-tools/compiler/local/gcc/bin:$PATH"
export LD_LIBRARY_PATH="/home/ragnar/cpp-tools/compiler/local/gcc/lib32"
and started to build i686-elf compiler (as advised here
http://wiki.osdev.org/GCC_Cross-Compiler) with following commands:
#GMP
$gmp_src/configure
--prefix="/home/ragnar/cpp-tools/compiler/linux32/gcc" --enable-cxx
--disable-shared
make CPPFLAGS="-fexceptions"
make install
#MPFR
$mpfr_src/configure
--prefix="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--with-gmp="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--disable-shared
make
make install
#MPC
$mpc_src/configure
--prefix="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--with-gmp="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--with-mpfr="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--disable-shared
make
make install
export LD_LIBRARY_PATH="/home/ragnar/cpp-tools/compiler/linux32/gcc/lib:$LD_LIBRARY_PATH"
#BINUTILS
$binutils_src/configure
--prefix="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--target=i686-elf --disable-multilib
--with-gmp="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--with-mpfr="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--with-mpc="/home/ragnar/cpp-tools/compiler/linux32/gcc" --disable-nls
--disable-shared --disable-werror
make
make check
make install
#GCC
$gcc_src/configure
--prefix="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--target=i686-elf --enable-32bit --disable-64bit
--enable-languages="c,c++" --disable-multilib --enable-libssp
--enable-threads=posix --disable-nls --disable-shared
--with-gmp="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--with-mpfr="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--with-mpc="/home/ragnar/cpp-tools/compiler/linux32/gcc"
--enable-checking=release --enable-lto
--enable-version-specific-runtime-libs
make all-gcc
make all-target-libgcc
while building libcc I get following error message:
...
/home/ragnar/cpp-tools/compiler/cpp-build-tools/build-linux32/gcc/./gcc/xgcc
-B/home/ragnar/cpp-tools/compiler/cpp-build-tools/build-linux32/gcc/./gcc/
-B/home/ragnar/cpp-tools/compiler/cpp-build-tools/../linux32/gcc/i686-elf/bin/
-B/home/ragnar/cpp-tools/compiler/cpp-build-tools/../linux32/gcc/i686-elf/lib/
-isystem /home/ragnar/cpp-tools/compiler/cpp-build-tools/../linux32/gcc/i686-elf/include
-isystem /home/ragnar/cpp-tools/compiler/cpp-build-tools/../linux32/gcc/i686-elf/sys-include
-g -O2 -O2 -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall
-Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition -isystem ./include
-fpic -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector
-Dinhibit_libc -fpic -I. -I. -I../.././gcc
-I/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc/libgcc
-I/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc/libgcc/.
-I/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc/libgcc/../gcc
-I/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc/libgcc/../include
-DHAVE_CC_TLS -o unwind-dw2.o -MT unwind-dw2.o -MD -MP -MF
unwind-dw2.dep -fexceptions -c
/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc/libgcc/unwind-dw2.c
-fvisibility=hidden -DHIDE_EXPORTS
In file included from
/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc/libgcc/gthr.h:148:0,
from
/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc/libgcc/unwind-dw2.c:37:
./gthr-default.h:35:21: fatal error: pthread.h: No such file or directory
#include <pthread.h>
^
compilation terminated.
make[1]: *** [unwind-dw2.o] Error 1
make[1]: Leaving directory
`/home/ragnar/cpp-tools/compiler/cpp-build-tools/build-linux32/gcc/i686-elf/libgcc'
make: *** [all-target-libgcc] Error 2
when I seach for phtread.h I get following results:
/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc-4.9.0/fixincludes/tests/base/pthread.h
/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc-4.9.0/fixincludes/tests/base/sys/pthread.h
/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc-4.9.0/gcc/config/openbsd-libpthread.h
/home/ragnar/cpp-tools/compiler/cpp-build-tools/sources/gcc-4.9.0/gcc/config/i386/mingw-pthread.h
/usr/include/pthread.h
I've attached config.log from
/home/ragnar/cpp-tools/compiler/cpp-build-tools/build-linux32/gcc/i686-elf/libgcc
Any help is greatly appreciated.