Commit 21378088 authored by Vladimir Bashkirtsev's avatar Vladimir Bashkirtsev

Initial commit

parents
all:
dd if=/dev/zero of=swap bs=1048576 count=1024
chmod 600 swap
mkswap swap
swapon swap
tar xf gcc-8.1.0.tar.xz
patch -Np1 -d gcc-8.1.0 < gcc-8.1.0-aarch64_fix.patch
cd gcc-8.1.0 && sed -e '/mabi\.lp64=/s/lib64/lib/' -i gcc/config/aarch64/t-aarch64-linux
cd gcc-8.1.0 && sed -e '/m64=/s/lib64/lib/' -i gcc/config/i386/t-linux64
cd gcc-8.1.0 && sed -e '/GLIBC_DYNAMIC_LINKER64/s/lib64/lib/' -i gcc/config/i386/linux64.h
mkdir gcc-build
cd gcc-build && SED=sed CC="gcc -isystem /usr/include" CXX="g++ -isystem /usr/include" LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib" ../gcc-8.1.0/configure --build=$(CLFS_TARGET) --prefix=/usr --libexecdir=/usr/lib --enable-languages=c,c++ --disable-multilib --with-system-zlib --disable-bootstrap $(GCC_CONFIG)
$(MAKE) -C gcc-build
# FIXME: gcc tests fail, we should exclude tests which are known to fail and beyond our control
-if [[ ! "$(BUILD_OPTIONS)" =~ no-tests ]] ; then \
ulimit -s 32768 ; \
$(MAKE) -C gcc-build -k check ; \
cd gcc-build ; \
../gcc-8.1.0/contrib/test_summary ; \
fi
$(MAKE) -C gcc-build install
ln -sv /usr/bin/cpp /lib
ln -sv gcc /usr/bin/cc
install -v -dm755 /usr/lib/bfd-plugins
ln -sfv ../../libexec/gcc/$$(gcc -dumpmachine)/8.1.0/liblto_plugin.so /usr/lib/bfd-plugins/
rm -rf gcc-8.1.0
rm -rf gcc-build
swapoff swap
rm -rf swap
<project name="gcc">
<target name="cross-gcc-static">
<property name="makedir" value="${builddir}/gcc-build"/>
<mkdir dir="${makedir}"/>
<antcall target="cross-gcc"/>
<exec executable="${builddir}/gcc-8.1.0/configure" dir="${makedir}" failonerror="true">
<env key="AR" value="ar"/>
<env key="LDFLAGS" value="-Wl,-rpath,${sysrootdir}/cross-tools/lib"/>
<arg line="--prefix=${sysrootdir}/cross-tools --build=${CLFS_HOST} --host=${CLFS_HOST} --target=${CLFS_TARGET} --with-glibc-version=2.27 --with-sysroot=${sysrootdir} --with-newlib --without-headers --with-local-prefix=/tools --with-native-system-header-dir=/tools/include --disable-nls --disable-shared --disable-multilib --disable-decimal-float --disable-threads --disable-libatomic --disable-libgomp --disable-libmpx --disable-libquadmath --disable-libssp --disable-libvtv --disable-libstdcxx --enable-languages=c,c++ --with-mpfr=${sysrootdir}/cross-tools --with-gmp=${sysrootdir}/cross-tools --with-mpc=${sysrootdir}/cross-tools ${GCC_CROSS_CONFIG}"/>
</exec>
<exec executable="make" dir="${makedir}" failonerror="true"/>
<exec executable="make" dir="${makedir}" failonerror="true">
<arg line="install"/>
</exec>
<delete dir="${builddir}/gcc-8.1.0"/>
<delete dir="${makedir}"/>
</target>
<target name="cross-gcc-final">
<property name="makedir" value="${builddir}/gcc-build"/>
<mkdir dir="${makedir}"/>
<antcall target="cross-gcc"/>
<exec executable="${builddir}/gcc-8.1.0/configure" dir="${makedir}" failonerror="true">
<env key="AR" value="ar"/>
<env key="LDFLAGS" value="-Wl,-rpath,${sysrootdir}/cross-tools/lib"/>
<arg line="--prefix=${sysrootdir}/cross-tools --build=${CLFS_HOST} --target=${CLFS_TARGET} --host=${CLFS_HOST} --with-sysroot=${sysrootdir} --with-local-prefix=/tools --with-native-system-header-dir=/tools/include --enable-languages=c,c++ --disable-multilib --with-mpc=${sysrootdir}/cross-tools --with-mpfr=${sysrootdir}/cross-tools --with-gmp=${sysrootdir}/cross-tools --with-system-zlib --enable-libstdcxx-pch --disable-bootstrap --disable-libgomp ${GCC_CROSS_CONFIG}"/>
</exec>
<exec executable="make" dir="${makedir}" failonerror="true">
<env key="AS_FOR_TARGET" value="${CLFS_TARGET}-as"/>
<env key="LD_FOR_TARGET" value="${CLFS_TARGET}-ld"/>
</exec>
<exec executable="make" dir="${makedir}" failonerror="true">
<arg line="install"/>
</exec>
<delete dir="${builddir}/gcc-8.1.0"/>
<delete dir="${makedir}"/>
</target>
<target name="temporary-gcc">
<property name="makedir" value="${builddir}/gcc-build"/>
<mkdir dir="${makedir}"/>
<antcall target="gcc"/>
<exec executable="bash" dir="${builddir}/gcc-8.1.0" failonerror="true">
<env key="PATH" path="${PATH}"/>
<arg line="-c &quot;cat gcc/limitx.h gcc/glimits.h gcc/limity.h > `dirname $(${CLFS_TARGET}-gcc -print-libgcc-file-name)`/include-fixed/limits.h&quot;"/>
</exec>
<exec executable="${builddir}/gcc-8.1.0/configure" dir="${makedir}" failonerror="true">
<env key="PATH" path="${PATH}"/>
<env key="CC" value="${CLFS_TARGET}-gcc"/>
<env key="CXX" value="${CLFS_TARGET}-g++"/>
<env key="AR" value="${CLFS_TARGET}-ar"/>
<env key="AS" value="${CLFS_TARGET}-as"/>
<env key="RANLIB" value="${CLFS_TARGET}-ranlib"/>
<env key="LD" value="${CLFS_TARGET}-ld"/>
<env key="STRIP" value="${CLFS_TARGET}-strip"/>
<arg line="--prefix=${sysrootdir}/tools --build=${CLFS_HOST} --host=${CLFS_TARGET} --target=${CLFS_TARGET} --with-local-prefix=/tools --disable-multilib --disable-nls --enable-languages=c,c++ --disable-libstdcxx-pch --with-system-zlib --with-sysroot=/ --with-native-system-header-dir=${sysrootdir}/tools/include --disable-libssp --enable-checking=release --enable-libstdcxx-time ${GCC_CONFIG}"/>
</exec>
<exec executable="cp" dir="${makedir}" failonerror="true">
<arg line="-v Makefile Makefile.orig"/>
</exec>
<exec executable="bash" dir="${makedir}" failonerror="true">
<arg line="-c &quot;sed '/^HOST_\(GMP\)\(LIBS\|INC\)/s:/tools:/cross-tools:g' Makefile.orig > Makefile&quot;"/>
</exec>
<exec executable="make" dir="${makedir}" failonerror="true">
<env key="PATH" path="${PATH}"/>
<env key="CC" value="${CLFS_TARGET}-gcc"/>
<env key="CXX" value="${CLFS_TARGET}-g++"/>
<env key="AR" value="${CLFS_TARGET}-ar"/>
<env key="AS" value="${CLFS_TARGET}-as"/>
<env key="RANLIB" value="${CLFS_TARGET}-ranlib"/>
<env key="LD" value="${CLFS_TARGET}-ld"/>
<env key="STRIP" value="${CLFS_TARGET}-strip"/>
<arg line="AS_FOR_TARGET=&quot;${CLFS_TARGET}-as&quot; LD_FOR_TARGET=&quot;${CLFS_TARGET}-ld&quot;"/>
</exec>
<exec executable="make" dir="${makedir}" failonerror="true">
<env key="PATH" path="${PATH}"/>
<env key="CC" value="${CLFS_TARGET}-gcc"/>
<env key="CXX" value="${CLFS_TARGET}-g++"/>
<env key="AR" value="${CLFS_TARGET}-ar"/>
<env key="AS" value="${CLFS_TARGET}-as"/>
<env key="RANLIB" value="${CLFS_TARGET}-ranlib"/>
<env key="LD" value="${CLFS_TARGET}-ld"/>
<env key="STRIP" value="${CLFS_TARGET}-strip"/>
<arg line="install"/>
</exec>
<exec executable="cp" dir="${builddir}/gcc-8.1.0" failonerror="true">
<arg line="-v include/libiberty.h ${sysrootdir}/tools/include"/>
</exec>
<delete dir="${builddir}/gcc-8.1.0"/>
<delete dir="${makedir}"/>
</target>
<target name="cross-gcc">
<antcall target="gcc"/>
<exec executable="touch" failonerror="true">
<arg line="${sysrootdir}/tools/include/limits.h"/>
</exec>
</target>
<target name="gcc">
<exec executable="tar" failonerror="true">
<arg line="xf packages/gcc/gcc-8.1.0.tar.xz -C ${builddir}"/>
</exec>
<exec executable="patch" dir="${builddir}/gcc-8.1.0" failonerror="true">
<arg line="-Np1 -i ${basedir}/packages/gcc/gcc-8.1.0-aarch64_fix.patch"/>
</exec>
<exec executable="bash" dir="${builddir}/gcc-8.1.0" failonerror="true">
<arg value="-c"/>
<arg value="sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&amp;@g' -e 's@/usr@/tools@g' -i gcc/config/linux.h"/>
</exec>
<exec executable="bash" dir="${builddir}/gcc-8.1.0" failonerror="true">
<arg value="-c"/>
<arg value="echo -en '\n#undef STANDARD_STARTFILE_PREFIX_1\n#define STANDARD_STARTFILE_PREFIX_1 &quot;/tools/lib/&quot;\n\n#undef STANDARD_STARTFILE_PREFIX_2\n#define STANDARD_STARTFILE_PREFIX_2 &quot;&quot;\n' >> gcc/config/linux.h"/>
</exec>
<exec executable="bash" dir="${builddir}/gcc-8.1.0" failonerror="true">
<arg value="-c"/>
<arg value="sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&amp;@g' -e 's@/usr@/tools@g' -i gcc/config/arm/linux-eabi.h"/>
</exec>
<exec executable="bash" dir="${builddir}/gcc-8.1.0" failonerror="true">
<arg value="-c"/>
<arg value="echo -en '\n#undef STANDARD_STARTFILE_PREFIX_1\n#define STANDARD_STARTFILE_PREFIX_1 &quot;/tools/lib/&quot;\n\n#undef STANDARD_STARTFILE_PREFIX_2\n#define STANDARD_STARTFILE_PREFIX_2 &quot;&quot;\n' >> gcc/config/arm/linux-eabi.h"/>
</exec>
<exec executable="bash" dir="${builddir}/gcc-8.1.0" failonerror="true">
<arg value="-c"/>
<arg value="sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&amp;@g' -e 's@/usr@/tools@g' -i gcc/config/arm/linux-elf.h"/>
</exec>
<exec executable="bash" dir="${builddir}/gcc-8.1.0" failonerror="true">
<arg value="-c"/>
<arg value="echo -en '\n#undef STANDARD_STARTFILE_PREFIX_1\n#define STANDARD_STARTFILE_PREFIX_1 &quot;/tools/lib/&quot;\n\n#undef STANDARD_STARTFILE_PREFIX_2\n#define STANDARD_STARTFILE_PREFIX_2 &quot;&quot;\n' >> gcc/config/arm/linux-elf.h"/>
</exec>
<exec executable="bash" dir="${builddir}/gcc-8.1.0" failonerror="true">
<arg value="-c"/>
<arg value="sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&amp;@g' -e 's@/usr@/tools@g' -i gcc/config/aarch64/aarch64-linux.h"/>
</exec>
<exec executable="bash" dir="${builddir}/gcc-8.1.0" failonerror="true">
<arg value="-c"/>
<arg value="echo -en '\n#undef STANDARD_STARTFILE_PREFIX_1\n#define STANDARD_STARTFILE_PREFIX_1 &quot;/tools/lib/&quot;\n\n#undef STANDARD_STARTFILE_PREFIX_2\n#define STANDARD_STARTFILE_PREFIX_2 &quot;&quot;\n' >> gcc/config/aarch64/aarch64-linux.h"/>
</exec>
<exec executable="bash" dir="${builddir}/gcc-8.1.0" failonerror="true">
<arg value="-c"/>
<arg value="sed -e '/mabi\.lp64=/s/lib64/lib/' -i gcc/config/aarch64/t-aarch64-linux"/>
</exec>
<exec executable="bash" dir="${builddir}/gcc-8.1.0" failonerror="true">
<arg value="-c"/>
<arg value="sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools/lib/ld@g' -e 's@/usr@/tools@g' -i gcc/config/i386/linux64.h"/>
</exec>
<exec executable="bash" dir="${builddir}/gcc-8.1.0" failonerror="true">
<arg value="-c"/>
<arg value="echo -en '\n#undef STANDARD_STARTFILE_PREFIX_1\n#define STANDARD_STARTFILE_PREFIX_1 &quot;/tools/lib/&quot;\n\n#undef STANDARD_STARTFILE_PREFIX_2\n#define STANDARD_STARTFILE_PREFIX_2 &quot;&quot;\n' >> gcc/config/i386/linux64.h"/>
</exec>
<exec executable="bash" dir="${builddir}/gcc-8.1.0" failonerror="true">
<arg value="-c"/>
<arg value="sed -e '/m64=/s/lib64/lib/' -i gcc/config/i386/t-linux64"/>
</exec>
</target>
</project>
diff -uNr gcc-8.1.0/gcc/config/aarch64/aarch64-option-extensions.def gcc-8.1.0-aarch64_fix/gcc/config/aarch64/aarch64-option-extensions.def
--- gcc-8.1.0/gcc/config/aarch64/aarch64-option-extensions.def 2018-01-14 04:20:35.000000000 +1030
+++ gcc-8.1.0-aarch64_fix/gcc/config/aarch64/aarch64-option-extensions.def 2018-07-28 22:09:25.429731120 +0930
@@ -41,23 +41,16 @@
/* Enabling "fp" just enables "fp".
Disabling "fp" also disables "simd", "crypto", "fp16", "aes", "sha2",
"sha3", sm3/sm4 and "sve". */
-AARCH64_OPT_EXTENSION("fp", AARCH64_FL_FP, 0, AARCH64_FL_SIMD | AARCH64_FL_CRYPTO |\
- AARCH64_FL_F16 | AARCH64_FL_AES | AARCH64_FL_SHA2 |\
- AARCH64_FL_SHA3 | AARCH64_FL_SM4 | AARCH64_FL_SVE, "fp")
+AARCH64_OPT_EXTENSION("fp", AARCH64_FL_FP, 0, AARCH64_FL_SIMD | AARCH64_FL_CRYPTO | AARCH64_FL_F16 | AARCH64_FL_AES | AARCH64_FL_SHA2 | AARCH64_FL_SHA3 | AARCH64_FL_SM4 | AARCH64_FL_SVE, "fp")
/* Enabling "simd" also enables "fp".
Disabling "simd" also disables "crypto", "dotprod", "aes", "sha2", "sha3",
"sm3/sm4" and "sve". */
-AARCH64_OPT_EXTENSION("simd", AARCH64_FL_SIMD, AARCH64_FL_FP, AARCH64_FL_CRYPTO |\
- AARCH64_FL_DOTPROD | AARCH64_FL_AES | AARCH64_FL_SHA2 |\
- AARCH64_FL_SHA3 | AARCH64_FL_SM4 | AARCH64_FL_SVE,
- "asimd")
+AARCH64_OPT_EXTENSION("simd", AARCH64_FL_SIMD, AARCH64_FL_FP, AARCH64_FL_CRYPTO | AARCH64_FL_DOTPROD | AARCH64_FL_AES | AARCH64_FL_SHA2 | AARCH64_FL_SHA3 | AARCH64_FL_SM4 | AARCH64_FL_SVE, "asimd")
/* Enabling "crypto" also enables "fp" and "simd".
Disabling "crypto" disables "crypto", "aes", "sha2", "sha3" and "sm3/sm4". */
-AARCH64_OPT_EXTENSION("crypto", AARCH64_FL_CRYPTO, AARCH64_FL_FP | AARCH64_FL_SIMD,\
- AARCH64_FL_AES | AARCH64_FL_SHA2 |AARCH64_FL_SHA3 | AARCH64_FL_SM4,\
- "aes pmull sha1 sha2")
+AARCH64_OPT_EXTENSION("crypto", AARCH64_FL_CRYPTO, AARCH64_FL_FP | AARCH64_FL_SIMD, AARCH64_FL_AES | AARCH64_FL_SHA2 |AARCH64_FL_SHA3 | AARCH64_FL_SM4, "aes pmull sha1 sha2")
/* Enabling or disabling "crc" only changes "crc". */
AARCH64_OPT_EXTENSION("crc", AARCH64_FL_CRC, 0, 0, "crc32")
@@ -67,8 +60,7 @@
/* Enabling "fp16" also enables "fp".
Disabling "fp16" disables "fp16", "fp16fml" and "sve". */
-AARCH64_OPT_EXTENSION("fp16", AARCH64_FL_F16, AARCH64_FL_FP,
- AARCH64_FL_F16FML | AARCH64_FL_SVE, "fphp asimdhp")
+AARCH64_OPT_EXTENSION("fp16", AARCH64_FL_F16, AARCH64_FL_FP, AARCH64_FL_F16FML | AARCH64_FL_SVE, "fphp asimdhp")
/* Enabling or disabling "rcpc" only changes "rcpc". */
AARCH64_OPT_EXTENSION("rcpc", AARCH64_FL_RCPC, 0, 0, "lrcpc")
bin
/usr/bin/.*
headers
/usr/include/.*
/usr/lib/gcc/.*
locale
/usr/share/locale/.*
lib
/usr/share/gcc-8.1.0/python/libstdcxx/.*
/usr/lib/lib.*
info
/usr/share/info/.*
man
/usr/share/man/.*
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment