From bbbf85901d1ada1b7b186b076f1604d9a144c246 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Thu, 24 Aug 2017 11:00:03 +0200 Subject: moved cross compilation docu to doc dir --- README.CrossCompiling | 174 -------------------------------------------------- 1 file changed, 174 deletions(-) delete mode 100644 README.CrossCompiling (limited to 'README.CrossCompiling') diff --git a/README.CrossCompiling b/README.CrossCompiling deleted file mode 100644 index 74f31ce..0000000 --- a/README.CrossCompiling +++ /dev/null @@ -1,174 +0,0 @@ -Intro ------ - -You can compile AbaOS from a 32-bit host or chroot (e.g. Arch32 chroot). -But you have to be extremly careful that nothing ceeps into the kernel -from the host system. - -You can also create a cross-compilation environment. Now, we don't need -a full fledged chain, linker and C compiler is enough. AbaOs has a small -integrated C library which is sufficient to build the kernel. - -gcc ---- - -mkdir -p $HOME/cross-compilers/gcc -cd $HOME/cross-compilers/gcc -wget https://ftp.gnu.org/gnu/binutils/binutils-2.28.tar.gz -tar xf binutils-2.28.tar.gz -mkdir binutils-build -cd binutils-build -../binutils-2.28/configure --target=i486-elf --prefix=$HOME/cross-compilers --disable-nls -v -make all -make check -make install -cd .. - -wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.lz -tar xf gmp-6.1.2.tar.lz -mkdir gmp-build -cd gmp-build -../gmp-6.1.2/configure --build=i486-elf --host=i486-elf --prefix=$HOME/cross-compilers -make all -make check -make install -cd .. - -wget http://www.mpfr.org/mpfr-current/mpfr-3.1.5.tar.gz -tar xf mpfr-3.1.5.tar.gz -mkdir mpfr-build -cd mpfr-build -../mpfr-3.1.5/configure --build=i486-elf --host=i486-elf --prefix=$HOME/cross-compilers \ - --with-gmp=$HOME/cross-compilers -make all -make check -make install -cd .. - -wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz -tar xf mpc-1.0.3.tar.gz -mkdir mpc-build -cd mpc-build -../mpc-1.0.3/configure --host=i486-elf --target=i486-elf \ - --prefix=$HOME/cross-compilers \ - --with-gmp=$HOME/cross-compilers \ - --with-mpfr=$HOME/cross-compilers -make all -make check -make install -cd .. - -wget ftp://ftp.mpi-sb.mpg.de/pub/gnu/mirror/gcc.gnu.org/pub/gcc/releases/gcc-7.1.0/gcc-7.1.0.tar.gz -tar zxf gcc-7.1.0.tar.gz -mkdir gcc-build -cd gcc-build -../gcc-7.1.0/configure --target=i486-elf --prefix=$HOME/cross-compilers \ - --with-gnu-as --with-gnu-ld \ - --disable-nls --enable-languages=c --disable-libgcj --without-headers \ - --with-gmp=$HOME/cross-compilers \ - --with-mpfr=$HOME/cross-compilers \ - --with-mpc=$HOME/cross-compilers -make all-gcc -make all-target-libgcc -make install-gcc -make install-target-libgcc - -Compile abaos and libc tests with: - -setenv PATH "${PATH}:$HOME/cross-compilers" -make clean all CC=i486-elf-gcc LD=i486-elf-ld - - -tcc ---- - -mkdir -p $HOME/cross-compilers/tcc -cd $HOME/cross-compilers/tcc -wget https://ftp.gnu.org/gnu/binutils/binutils-2.28.tar.gz -tar xf binutils-2.28.tar.gz -mkdir binutils-build -cd binutils-build -../binutils-2.28/configure --target=i486-elf --prefix=$HOME/cross-compilers --disable-nls -v -make all -make check -make install -cd .. - -mkdir -p $HOME/cross-compilers/tcc -cd $HOME/cross-compilers/tcc -git clone git://repo.or.cz/tinycc.git -cd tinycc -./configure --cpu=i386 --enable-cross --prefix=$HOME/cross-compilers -make -cd .. - -Compile abaos and libc tests with: - -setenv PATH "${PATH}:$HOME/cross-compilers" -make clean all CC=i386-tcc LD=i486-elf-ld - -pcc ---- - -mkdir -p $HOME/cross-compilers/pcc -cd $HOME/cross-compilers/pcc -wget https://ftp.gnu.org/gnu/binutils/binutils-2.28.tar.gz -tar xf binutils-2.28.tar.gz -mkdir binutils-build -cd binutils-build -../binutils-2.28/configure --target=i486-unknown-linux-gnu --prefix=$HOME/cross-compilers --disable-nls -v -make all -make check -make install -cd .. - -mkdir -p $HOME/cross-compilers/pcc -cvs -d :pserver:anonymous@pcc.ludd.ltu.se:/cvsroot co pcc-libs -mkdir pcc-libs-build -cd pcc-libs-build -../pcc-libs/configure --target=i486-unknown-linux-gnu --prefix=$HOME/cross-compilers -make -make install -cd .. - -cvs -d :pserver:anonymous@pcc.ludd.ltu.se:/cvsroot co pcc -mkdir pcc-build -cd pcc-build -../pcc/configure --target=i486-unknown-linux-gnu --prefix=$HOME/cross-compilers -make -make install - -Compile abaos and libc tests with: - -setenv PATH "${PATH}:$HOME/cross-compilers" -make clean all CC=i486-unknown-linux-gnu-pcc LD=i486-unknown-linux-gnu-ld - -clang ------ - -Clang is easy, usually it already supports common targets. Just -for the kernel we need a i486 linker from binutils: - -mkdir -p $HOME/cross-compilers/pcc -cd $HOME/cross-compilers/pcc -wget https://ftp.gnu.org/gnu/binutils/binutils-2.28.tar.gz -tar xf binutils-2.28.tar.gz -mkdir binutils-build -cd binutils-build -../binutils-2.28/configure --target=i486-unknown-linux-gnu --prefix=$HOME/cross-compilers --disable-nls -v -make all -make check -make install -cd .. - -Compile abaos and libc tests with: - -setenv PATH "${PATH}:$HOME/cross-compilers" -make clean all run-qemu CC='clang -target i386-pc-none-abi' LD=i486-unknown-linux-gnu-ld - -Links ------ - -https://ftp.gnu.org/gnu/binutils/ -http://wiki.osdev.org/Target_Triplet -http://wiki.osdev.org/GCC_Cross-Compiler -- cgit v1.2.3-54-g00ecf