Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- . ../support/do.inc
- set -x
- prefix="$(pwd)/stage1"
- target=x86_64-linux-musl
- sysroot="$prefix/$target"
- sources=$(realpath ../sources)
- patches=$(realpath ../patches)
- unpacksrc () {
- name="$1"
- tarball="$(echo $sources/$name-*)"
- mkdir "$name"
- tar -C "$name" --strip-components 1 -xf "$tarball"
- }
- rm -rf "$prefix" ./build
- mkdir build
- cd build
- unpacksrc binutils
- unpacksrc musl
- unpacksrc linux
- unpacksrc gcc
- cd gcc
- unpacksrc gmp
- unpacksrc mpc
- unpacksrc mpfr
- applydirpatches "$patches/$(archivename2packagename $(echo $sources/gcc-*))"
- cd ..
- cd linux
- sed 's,/bin/pwd,pwd,g' -i Makefile
- make ARCH=x86_64 O="$sysroot" headers_install
- cd ..
- mkdir objdir
- cd objdir
- mkdir binutils
- cd binutils
- ../../binutils/configure \
- --prefix="$prefix" \
- --with-sysroot="$sysroot" \
- --target="$target" \
- --disable-multilib \
- --disable-separate-code \
- --disable-werror \
- --enable-deterministic-archives
- make -j $(nproc) all
- make install
- cd ..
- mkdir musl
- cd musl
- ../../musl/configure \
- --prefix="$prefix" \
- --target="$target" \
- --syslibdir="$prefix/lib" \
- --includedir="$prefix/$target/include" \
- --libdir="$prefix/$target/lib"
- make install-headers
- cd ..
- mkdir gcc
- cd gcc
- ../../gcc/configure \
- --prefix="$prefix" \
- --with-sysroot="$sysroot" \
- --target="$target" \
- --enable-languages=c \
- --disable-multilib \
- --disable-werror \
- --disable-libmudflap \
- --disable-libsanitizer \
- --disable-gnu-indirect-function \
- --disable-libmpx \
- --enable-libstdcxx-time \
- --enable-tls \
- AR_FOR_TARGET="$prefix/bin/$target-ar" \
- AS_FOR_TARGET="$prefix/bin/$target-as" \
- LD_FOR_TARGET="$prefix/bin/$target-ld" \
- NM_FOR_TARGET="$prefix/bin/$target-nm" \
- OBJCOPY_FOR_TARGET="$prefix/bin/$target-objcopy" \
- OBJDUMP_FOR_TARGET="$prefix/bin/$target-objdump" \
- RANLIB_FOR_TARGET="$prefix/bin/$target-ranlib" \
- READELF_FOR_TARGET="$prefix/bin/$target-readelf" \
- STRIP_FOR_TARGET="$prefix/bin/$target-strip"
- make -j $(nproc) all-gcc
- make -j $(nproc) enable_shared=no all-target-libgcc
- make install-gcc
- cd ..
- cd musl
- make -j $(nproc) CC="$prefix/bin/$target-gcc" LIBCC="../gcc/$target/libgcc/libgcc.a"
- make install
- cd ..
- cd gcc
- # Rebuild libgcc with shared...
- rm -rf libgcc/
- make -j $(nproc) all-target-libgcc
- make install-target-libgcc
- # XXX make
- # XXX make install
- cd ../..
- touch $out
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement