This shows you the differences between two versions of the page.
— |
cross_compile [2014/07/10 00:30] (current) Jan Stancek created |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | <code> | ||
+ | ===== binutils | ||
+ | # cd build-binutils | ||
+ | # cat a.sh | ||
+ | BUILD=`gcc -v 2>&1 | grep Target: | sed 's/.*: //'` | ||
+ | PREFIX=/opt/toolchain-le | ||
+ | TARGET=ppc64le-redhat-linux-gnu | ||
+ | |||
+ | ../binutils-2.24.51/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --disable-werror --with-sysroot="$PREFIX" | ||
+ | |||
+ | sh a.sh | ||
+ | make | ||
+ | make install | ||
+ | |||
+ | ===== gcc core | ||
+ | |||
+ | # cd build-gcc | ||
+ | # cat a.sh | ||
+ | BUILD=`gcc -v 2>&1 | grep Target: | sed 's/.*: //'` | ||
+ | PREFIX=/opt/toolchain-le | ||
+ | TARGET=ppc64le-redhat-linux-gnu | ||
+ | |||
+ | #../gcc-4.8.2-20140409/configure --target=$TARGET --prefix="$PREFIX" --disable-nls \ | ||
+ | # --enable-languages=c,c++ --without-headers --with-sysroot="$PREFIX" --disable-multilib --with-gnu-as --with-gnu-ld | ||
+ | |||
+ | ../gcc-4.8.2-20140409/configure --target=$TARGET --prefix="$PREFIX" --disable-nls \ | ||
+ | --enable-languages=c --without-headers --with-sysroot="$PREFIX" --with-gnu-as --with-gnu-ld --disable-multilib | ||
+ | |||
+ | echo 'lt_cv_shlibpath_overrides_runpath=no' > config.cache | ||
+ | echo 'gcc_cv_libc_provides_ssp=yes' >> config.cache | ||
+ | |||
+ | sh a.sh | ||
+ | |||
+ | make $J all-host gcc_cv_libc_provides_ssp=yes | ||
+ | make $J install-host gcc_cv_libc_provides_ssp=yes | ||
+ | |||
+ | |||
+ | ===== kernel headers | ||
+ | # cat a.sh | ||
+ | BUILD=`gcc -v 2>&1 | grep Target: | sed 's/.*: //'` | ||
+ | PREFIX=/opt/toolchain-le | ||
+ | ROOTFS="$PREFIX" | ||
+ | TARGET=ppc64le-redhat-linux-gnu | ||
+ | KERNELARGS="ARCH=powerpc CROSS_COMPILE=${TARGET}-" | ||
+ | C=gcc | ||
+ | make CC=$C $KERNELARGS INSTALL_HDR_PATH=$ROOTFS/usr headers_install | ||
+ | |||
+ | sh a.sh | ||
+ | |||
+ | ===== glibc headers | ||
+ | [root@ibm-p750e-01-lp3 build-glibc]# cat a.sh | ||
+ | BUILD=`gcc -v 2>&1 | grep Target: | sed 's/.*: //'` | ||
+ | PREFIX=/opt/toolchain-le | ||
+ | TARGET=ppc64le-redhat-linux-gnu | ||
+ | |||
+ | export ARCH=powerpc | ||
+ | export PATH=$PATH:${PREFIX}/bin | ||
+ | export GCC_PATH=${PREFIX}/bin | ||
+ | export CROSS_COMPILE=${TARGET}- | ||
+ | |||
+ | BUILD_CC=gcc CC=${GCC_PATH}/${CROSS_COMPILE}gcc ../glibc-2.19/configure --build $BUILD \ | ||
+ | --host $TARGET --target $TARGET --prefix=${PREFIX}/${TARGET} --disable-multilib \ | ||
+ | --disable-profile --without-cvs --with-elf --without-gd --disable-sanity-checks \ | ||
+ | --with-tls --with-__thread --enable-obsolete-rpc --enable-bind-now \ | ||
+ | --without-selinux --disable-selinux --with-glibc=../glibc-2.19 | ||
+ | |||
+ | make $J ARCH=powerpc cross-compiling=yes install-headers install_root=/opt/toolchain-le | ||
+ | make $J ARCH=powerpc cross-compiling=yes install-headers install_root=/ | ||
+ | |||
+ | mkdir -p /opt/toolchain-le/usr/include/gnu | ||
+ | touch /opt/toolchain-le/usr/include/gnu/stubs.h | ||
+ | mkdir -p /opt/toolchain-le/usr/include/bits | ||
+ | touch /opt/toolchain-le/usr/include/bits/stdio_lim.h | ||
+ | |||
+ | ===== gcc-libgcc half-broken | ||
+ | |||
+ | make -k all-target-libgcc | ||
+ | make -i install-target-libgcc | ||
+ | |||
+ | ===== glibc | ||
+ | make | ||
+ | make install | ||
+ | |||
+ | ===== gcc 2pass | ||
+ | rm -rf /opt/toolchain-le/opt | ||
+ | cd /opt/toolchain-le | ||
+ | ln -s /opt opt | ||
+ | |||
+ | make all-target-libgcc | ||
+ | make install-target-libgcc | ||
+ | |||
+ | make | ||
+ | make install | ||
+ | |||
+ | </code> |