/builders/bootstrap/gcc/builder.sh (4047c01b810218b5809cd3f3f7e70171f41f1b03) (7946 bytes) (mode 100644) (type blob)
. $nyan_root/conf.bootstrap.sh
src_name=gcc
slot=0
#TODO: move to gcc "4.7.5"
version=4.7.4
archive_name=$src_name-$version.tar.bz2
url0=https://ftpmirror.gnu.org/$src_name/$src_name-$version/$archive_name
pkg_dir=$pkgs_dir_root/$src_name-$version
rm -Rf $pkg_dir
mkdir -p $pkgs_dir_root
cp -f $src_dir_root/$archive_name $pkgs_dir_root
cd $pkgs_dir_root
tar xf $archive_name
#-------------------------------------------------------------------------------
# copy a fixed version of gperf hash file, pending for a non-gperf alternative
cp -f $nyan_root/builders/bootstrap/$pkg_name/cfns.h $pkg_dir/gcc/cp
#-------------------------------------------------------------------------------
# patch a linux troublesome bug
# https://gcc.gnu.org/bugzilla/attachment.cgi?id=30653
cp -f $nyan_root/builders/bootstrap/$pkg_name/tree-sra.c.patch $pkg_dir/gcc
cd $pkg_dir/gcc
patch -p0 -N -i ./tree-sra.c.patch
#-------------------------------------------------------------------------------
# add the missing bswap16
# https://gcc.gnu.org/legacy-ml/gcc-patches/2012-04/msg00452.html
cp -f $nyan_root/builders/bootstrap/$pkg_name/bswap16.patch $pkg_dir/gcc
patch -p0 -i ./bswap16.patch
#-------------------------------------------------------------------------------
PATH_SAVED=$PATH
export PATH=$bootstrap_target_cross_toolchain/bin:$PATH
build_dir=$builds_dir_root/$pkg_name-$version-$bootstrap_target_gnu_triple
rm -Rf $build_dir
mkdir -p $build_dir
cd $build_dir
export "CFLAGS_FOR_BUILD=$bootstrap_build_cflags"
export "CPPFLAGS=\
-I$bootstrap_target_sysroot/nyan/zlib/current/include \
-isystem $bootstrap_target_sysroot/nyan/glibc/current/include \
-isystem $bootstrap_target_sysroot/nyan/linux-headers/current/include"
export "CFLAGS=-O2 -pipe -fPIC"
# missing pthread for mpfr
export "LDFLAGS=-B$bootstrap_target_sysroot/nyan/glibc/current/lib \
-L$bootstrap_target_sysroot/nyan/glibc/current/lib \
-lpthread \
-L$bootstrap_target_sysroot/nyan/zlib/current/lib \
-L$bootstrap_target_sysroot/nyan/toolchains/binutils-2.36.1-$src_name-$version/$slot/lib \
-Wl,-s"
export "CC_FOR_BUILD=$bootstrap_build_cc $bootstrap_build_cppflags $bootstrap_build_ccld_flags"
export "AR_FOR_BUILD=$bootstrap_build_ar"
export "RANLIB_FOR_BUILD=$bootstrap_build_ranlib"
export "CPP=$bootstrap_target_gnu_triple-cpp $CPPFLAGS"
export "CC=$bootstrap_target_gnu_triple-gcc $CPPFLAGS $LDFLAGS -static-libgcc"
export "CXX=none_please"
# native system header dir is relative to sysroot
mkdir $build_dir/gcc
# only way to pass a proper cxxcpp down to gcc subdir
printf "ac_cv_prog_CXXCPP=\"$bootstrap_target_gnu_triple-cpp $CPPFLAGS\"" >$build_dir/gcc/config.cache
# to use the right build system compiler, and use the right build system c++
# preprocessor (actually useless) passed down the only way we found working...
# jez... this sdk needs to be flatten and re-orthogonalized.
sed -r \
-e "11428 i\\
\tprintf \"ac_cv_prog_CXXCPP=\\\\\"$bootstrap_build_cpp\\\\\"\">\$tempdir/config.cache" \
-e "11437 i\\
\t\t--cache-file=./config.cache \\\\" \
-e "11931 i\\
CC_FOR_BUILD='$CC_FOR_BUILD'" -i $pkg_dir/gcc/configure
$pkg_dir/configure \
--prefix=/nyan/toolchains/binutils-2.36.1-$src_name-$version/$slot \
\
--build=$bootstrap_build_gnu_triple \
--host=$bootstrap_target_gnu_triple \
--target=$bootstrap_target_gnu_triple \
\
--enable-decimal-float=no \
--enable-threads=posix \
--enable-tls \
--enable-shared \
--enable-languages=c,c++ \
--disable-rpath \
--enable-version-specific-runtime-libs \
--disable-plugin \
--disable-libquadmath-support \
--with-sysroot=$bootstrap_target_sysroot \
--with-native-system-header-dir=/nyan/glibc/current/include \
--with-gmp=$bootstrap_target_sysroot/nyan/toolchains/binutils-2.36.1-gcc-4.7.4/$slot \
--with-mpfr=$bootstrap_target_sysroot/nyan/toolchains/binutils-2.36.1-gcc-4.7.4/$slot \
--with-mpc=$bootstrap_target_sysroot/nyan/toolchains/binutils-2.36.1-gcc-4.7.4/$slot \
--disable-libquadmath \
--disable-libada \
--disable-libssp \
--disable-bootstrap \
--disable-lto \
--disable-nls \
--with-system-zlib
unset CFLAGS_FOR_BUILD
unset CPPFLAGS
unset CFLAGS
unset LDFLAGS
unset CC_FOR_BUILD
unset AR_FOR_BUILD
unset RANLIB_FOR_BUILD
unset CPP
unset CC
unset CXX
make -j $threads_n all-gcc
make install-gcc DESTDIR=$bootstrap_target_sysroot
ln -sTf $slot $bootstrap_target_sysroot/nyan/toolchains/binutils-2.36.1-$src_name-$version/current
#===============================================================================
# link the already cross-compiled "libgcc"
cd $bootstrap_target_sysroot/nyan/toolchains/binutils-2.36.1-$src_name-$version/current/lib/gcc/$bootstrap_target_gnu_triple/$version
ln -sTf /nyan/bootstrap/$bootstrap_build_gnu_triple/cross-toolchains/$bootstrap_target_gnu_triple/lib/gcc/$bootstrap_target_gnu_triple/$version/crtbegin.o crtbegin.o
ln -sTf /nyan/bootstrap/$bootstrap_build_gnu_triple/cross-toolchains/$bootstrap_target_gnu_triple/lib/gcc/$bootstrap_target_gnu_triple/$version/crtbeginS.o crtbeginS.o
ln -sTf /nyan/bootstrap/$bootstrap_build_gnu_triple/cross-toolchains/$bootstrap_target_gnu_triple/lib/gcc/$bootstrap_target_gnu_triple/$version/crtbeginT.o crtbeginT.o
ln -sTf /nyan/bootstrap/$bootstrap_build_gnu_triple/cross-toolchains/$bootstrap_target_gnu_triple/lib/gcc/$bootstrap_target_gnu_triple/$version/crtend.o crtend.o
ln -sTf /nyan/bootstrap/$bootstrap_build_gnu_triple/cross-toolchains/$bootstrap_target_gnu_triple/lib/gcc/$bootstrap_target_gnu_triple/$version/crtendS.o crtendS.o
ln -sTf /nyan/bootstrap/$bootstrap_build_gnu_triple/cross-toolchains/$bootstrap_target_gnu_triple/lib/gcc/$bootstrap_target_gnu_triple/$version/crtfastmath.o crtfastmath.o
ln -sTf /nyan/bootstrap/$bootstrap_build_gnu_triple/cross-toolchains/$bootstrap_target_gnu_triple/lib/gcc/$bootstrap_target_gnu_triple/$version/crtprec32.o crtprec32.o
ln -sTf /nyan/bootstrap/$bootstrap_build_gnu_triple/cross-toolchains/$bootstrap_target_gnu_triple/lib/gcc/$bootstrap_target_gnu_triple/$version/crtprec64.o crtprec64.o
ln -sTf /nyan/bootstrap/$bootstrap_build_gnu_triple/cross-toolchains/$bootstrap_target_gnu_triple/lib/gcc/$bootstrap_target_gnu_triple/$version/crtprec80.o crtprec80.o
ln -sTf /nyan/bootstrap/$bootstrap_build_gnu_triple/cross-toolchains/$bootstrap_target_gnu_triple/lib/gcc/$bootstrap_target_gnu_triple/$version/libgcc.a libgcc.a
ln -sTf /nyan/bootstrap/$bootstrap_build_gnu_triple/cross-toolchains/$bootstrap_target_gnu_triple/lib/gcc/$bootstrap_target_gnu_triple/$version/libgcc_eh.a libgcc_eh.a
ln -sTf /nyan/bootstrap/$bootstrap_build_gnu_triple/cross-toolchains/$bootstrap_target_gnu_triple/lib/gcc/$bootstrap_target_gnu_triple/$version/libgcov.a libgcov.a
ln -sTf /nyan/bootstrap/$bootstrap_build_gnu_triple/cross-toolchains/$bootstrap_target_gnu_triple/lib/gcc/$bootstrap_target_gnu_triple/$version/include/unwind.h ./include/unwind.h
#===============================================================================
rm -f $bootstrap_target_sysroot/nyan/toolchains/binutils-2.36.1-$src_name-$version/current/bin/c++
rm -f $bootstrap_target_sysroot/nyan/toolchains/binutils-2.36.1-$src_name-$version/current/bin/cpp
rm -f $bootstrap_target_sysroot/nyan/toolchains/binutils-2.36.1-$src_name-$version/current/bin/g++
rm -f $bootstrap_target_sysroot/nyan/toolchains/binutils-2.36.1-$src_name-$version/current/bin/gcc
rm -f $bootstrap_target_sysroot/nyan/toolchains/binutils-2.36.1-$src_name-$version/current/bin/gcc-ar
rm -f $bootstrap_target_sysroot/nyan/toolchains/binutils-2.36.1-$src_name-$version/current/bin/gcc-nm
rm -f $bootstrap_target_sysroot/nyan/toolchains/binutils-2.36.1-$src_name-$version/current/bin/gcc-ranlib
mv -f $bootstrap_target_sysroot/nyan/toolchains/binutils-2.36.1-$src_name-$version/current/bin/gcov $bootstrap_target_sysroot/nyan/toolchains/binutils-2.36.1-$src_name-$version/current/bin/$bootstrap_target_gnu_triple-gcov
export PATH=$PATH_SAVED
rm -f $pkgs_dir_root/$archive_name
rm -Rf $pkg_dir $build_dir
Mode |
Type |
Size |
Ref |
File |
100644 |
blob |
5 |
8eba6c8dd4dcaf6166bd22285ed34625f38a84ff |
.gitignore |
100755 |
blob |
1587 |
57fa4264b9ee0ae0a6f678f2527a05d3b22dda78 |
00-bootstrap-build.sh |
100755 |
blob |
848 |
a30f443bf405d56682efe3b4c5d3a19d5f7eb45d |
01-re-bootstrap-build.sh |
100644 |
blob |
2142 |
f19c2d6b293244bb11a3f74ee77c10675cadc7d6 |
INSTALL |
100644 |
blob |
30 |
c9b735fa1332286f4b3f5f81fa10527fd7506b6e |
LICENSE |
040000 |
tree |
- |
ec18cec5a18b12379c13e068413b4ca5d689bf28 |
builders |
100644 |
blob |
1773 |
ef1551089a803bde37e36edc8d61bb819d06f793 |
conf.bootstrap.sh |
100644 |
blob |
479 |
8cc15efe46965ac7750fe304460f5a2b0aa4201c |
conf.sh |
040000 |
tree |
- |
7736496abef80608f40188d3f4425ef67a16375e |
files |
100755 |
blob |
356 |
8fb8be28ac72f7214b59934b9f74a682665f2d32 |
pkg-build |
100644 |
blob |
22800641 |
e9e6291054c857401f6835c728f31541dae4311e |
steam.tar.bz2 |
100644 |
blob |
173 |
2047af328b22f9d146585cd9e759edbc18122250 |
utils.sh |
040000 |
tree |
- |
8e23f551092a35f82b37129dd08c35c4d313c17b |
x64 |
040000 |
tree |
- |
b7a22de7f5cbd97650dd45412ef7d4246e395eb8 |
x86 |
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/sylware/nyanlinux
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/sylware/nyanlinux
Clone this repository using git:
git clone git://git.rocketgit.com/user/sylware/nyanlinux
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main