From 706da716c79911446df9ef804f72d34be444b8ad Mon Sep 17 00:00:00 2001 From: dingguangya Date: Thu, 14 Sep 2023 14:27:38 +0800 Subject: [PATCH] [gcc-cross] Provide gcc-cross-1.0 source code package for easy integration and verification --- build.sh | 64 ----------- config.xml | 20 ---- download.sh | 58 ---------- gcc-cross-1.0.tar.gz | Bin 0 -> 5286 bytes gcc-cross.spec | 20 ++-- gcc_arm32le/build.sh | 23 ---- gcc_arm32le/gcc_arm_linux_release.sh | 130 ---------------------- gcc_arm32le/gcc_update_sourcecode.sh | 41 ------- gcc_arm32le/pre_construction.sh | 27 ----- gcc_arm64le/build.sh | 21 ---- gcc_arm64le/gcc_aarch64_linux_release.sh | 131 ----------------------- gcc_arm64le/gcc_update_sourcecode.sh | 39 ------- gcc_arm64le/pre_construction.sh | 25 ----- 13 files changed, 12 insertions(+), 587 deletions(-) delete mode 100755 build.sh delete mode 100644 config.xml delete mode 100755 download.sh create mode 100644 gcc-cross-1.0.tar.gz delete mode 100755 gcc_arm32le/build.sh delete mode 100755 gcc_arm32le/gcc_arm_linux_release.sh delete mode 100755 gcc_arm32le/gcc_update_sourcecode.sh delete mode 100755 gcc_arm32le/pre_construction.sh delete mode 100755 gcc_arm64le/build.sh delete mode 100755 gcc_arm64le/gcc_aarch64_linux_release.sh delete mode 100755 gcc_arm64le/gcc_update_sourcecode.sh delete mode 100755 gcc_arm64le/pre_construction.sh diff --git a/build.sh b/build.sh deleted file mode 100755 index 0881a05..0000000 --- a/build.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -# The entrance of the build Compiler toolchain - -set -e - -readonly LOG_PATH="$PWD/logs" -readonly OPEN_SOURCE_PATH="$PWD/../open_source" -# Check if the build tool exists, Build error when missing tools -miss_tool_error() -{ - $1 $2 - if [ $? -ne 0 ]; then - echo "##################################" - echo "# ERROR: $1 is not found!! # " - echo "##################################" - exit 1 - else - echo "$1 checked success!!" - fi -} - -#Clear history build legacy files. -#All build logs -#The intermediate file is placed in the directory name with the "_build_dir" keyword. -#The Source code is placed in the directory name with the "_build_src" keyword. -clean() -{ - for file in $(find $OPEN_SOURCE_PATH -name "*_build_src") - do - [ -n "$file" ] && rm -rf $file - done - - for file in $(find . -name "*_build_dir") - do - [ -n "$file" ] && rm -rf $file - done - - [ -n "$PWD/../output" ] && rm -rf $PWD/../output/* - - [ -n "$LOG_PATH" ] && rm -rf $LOG_PATH -} - -echo "$(date +"%Y-%m-%d %H:%M:%S") ========begin building ========" -source $PWD/config.xml -miss_tool_error gcc --version -miss_tool_error g++ --version -miss_tool_error bison --version -miss_tool_error flex --version -miss_tool_error makeinfo --version - -if [ "$1"x = "gcc_arm64le"x ] || [ "$1"x = "gcc_arm32le"x ]; then - cd $1 -elif [ "$1"x = "clean"x ] ; then - clean - exit 0 -else - echo Using "sh build.sh xxx" to build the toolchain. xxx is the toolchain name - echo Using "sh build.sh clean" to clear history build legacy files - exit 0 -fi - -bash build.sh -cd - -exit 0 diff --git a/config.xml b/config.xml deleted file mode 100644 index be530d1..0000000 --- a/config.xml +++ /dev/null @@ -1,20 +0,0 @@ -COMPILER_INFO="gcc 12.3.1" - -GCC="gcc" -GCC_DIR="gcc-12.3.0" -BINUTILS="binutils" -BINUTILS_DIR="binutils-2.40" -MPFR="mpfr" -MPFR_DIR="mpfr-4.2.0" -GMP="gmp" -GMP_DIR="gmp-6.3.0" -MPC="libmpc" -MPC_DIR="mpc-1.3.1" -ISL="isl" -ISL_DIR="isl-0.24" -GLIBC="glibc" -GLIBC_DIR="glibc-2.38" -KERNEL_HEADERS="kernel_headers" -KERNEL_HEADERS_64="kernel_headers_64" -LINUX_KERNEL="kernel" -LINUX_KERNEL_64="kernel-64" diff --git a/download.sh b/download.sh deleted file mode 100755 index 79cbba6..0000000 --- a/download.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash -set -e - -readonly LIB_PATH="$PWD/../open_source" -source $PWD/config.xml -build_rpmdir=`rpm --eval "%{_builddir}"` -src_rpmdir=`rpm --eval "%{_sourcedir}"` -SRC_BRANCH="openEuler-23.09" - -#judge the open_source - -[ ! -d "$LIB_PATH" ] && mkdir $LIB_PATH - -function delete_dir() { - while [ $# !=0 ] ; do - [ -n "$1" ] && rm -rf $1 ; shift; done - } - -cd $LIB_PATH && delete_dir $GCC $BINUTILS $GMP $MPC $MPFR $ISL - -pushd $LIB_PATH -function do_patch() { - pushd $1 - cp -f * $src_rpmdir - specfile=`ls *.spec` - rpmbuild -bp $src_rpmdir/$specfile - PKG=$(echo *.tar.*) - pkg_dir=${PKG%%.tar.*} - if [ $1 = "isl" ];then - cp -a $build_rpmdir/$1/$pkg_dir ./ - else - cp -a $build_rpmdir/$pkg_dir ./ - fi - popd -} -echo "Download $GCC" && git clone -b $SRC_BRANCH https://gitee.com/src-openeuler/gcc.git -do_patch $GCC - -echo "Download $GLIBC" && git clone -b $SRC_BRANCH https://gitee.com/src-openeuler/glibc.git -do_patch $GLIBC - -echo "Download $BINUTILS" && git clone -b $SRC_BRANCH https://gitee.com/src-openeuler/binutils.git -do_patch $BINUTILS - -echo "Download $GMP" && git clone -b $SRC_BRANCH https://gitee.com/src-openeuler/gmp.git -do_patch $GMP - -echo "Download $MPFR" && git clone -b $SRC_BRANCH https://gitee.com/src-openeuler/mpfr.git -do_patch $MPFR - -echo "Download $MPC" && git clone -b $SRC_BRANCH https://gitee.com/src-openeuler/libmpc.git -do_patch $MPC - -echo "Download $ISL" && git clone -b $SRC_BRANCH https://gitee.com/src-openeuler/isl.git -do_patch $ISL - -echo "Download $LINUX_KERNEL" && git clone -b 6.4.0-1.0.1 https://gitee.com/openeuler/kernel.git --depth 1 -cp -a $LINUX_KERNEL $LINUX_KERNEL_64 diff --git a/gcc-cross-1.0.tar.gz b/gcc-cross-1.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..93f8e66597415272580dccf77b4f7880630236af GIT binary patch literal 5286 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 literal 0 HcmV?d00001 diff --git a/gcc-cross.spec b/gcc-cross.spec index 9065dd3..dea6f90 100644 --- a/gcc-cross.spec +++ b/gcc-cross.spec @@ -1,11 +1,12 @@ Summary: C/C++ Cross Compiler Toolchain Name: gcc-cross Version: 1.0 -Release: 6 +Release: 7 # libgcc, libgfortran, libmudflap, libgomp, libstdc++ and crtstuff have # GCC Runtime Exception. License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD URL: http://gcc.gnu.org +Source0: %{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: binutils, gettext, gmp-devel, isl-devel, libmpc-devel, mpfr-devel, python3-sphinx, sharutils @@ -18,17 +19,14 @@ BuildRequires: libtool, ncurses-devel, bc, zlib-devel, openssl-devel, texinfo, r %description C/C++ Cross Compiler Toolchain +%skip debuginfo packages +%global debug_package %{nil} + %prep -mkdir -p %{_builddir}/%{name}-%{version} -cd %{_builddir}/%{name}-%{version} -cp -r %{_sourcedir}/* ./ +%autosetup %build cd %{_builddir}/%{name}-%{version} -files=$(ls *.tar 2> /dev/null | wc -l) -if [ "$files" != 0 ]; then - ls *.tar | xargs -n1 tar xvf -fi bash download.sh bash build.sh gcc_arm64le & bash build.sh gcc_arm32le @@ -44,6 +42,12 @@ cp %{_builddir}/output/gcc_arm32le/gcc_arm32le.tar.gz %{buildroot}/tmp %attr(755, root, root) /tmp/gcc_arm32le.tar.gz %changelog +* Thu Sep 14 2023 dingguangya - 1.0-7 +-Type:Fix +-ID:NA +-SUG:NA +-DESC: Provide gcc-cross-1.0 source code package for easy integration and verification + * Thu Aug 17 2023 dingguangya - 1.0-6 -Type:Fix -ID:NA diff --git a/gcc_arm32le/build.sh b/gcc_arm32le/build.sh deleted file mode 100755 index 8f79f25..0000000 --- a/gcc_arm32le/build.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -set -e -set -x - -readonly LOG_PATH="$PWD/../logs" - -if [[ -z "$COMPILER_INFO" ]];then - source $PWD/../config.xml -fi - -[ -e "$LOG_PATH/gcc_arm32le_patch.log" ] && rm $LOG_PATH/gcc_arm32le_patch.log -[ -e "$LOG_PATH/gcc_arm32le_build.log" ] && rm $LOG_PATH/gcc_arm32le_build.log -mkdir -p $LOG_PATH - -source pre_construction.sh 2>&1 | tee $LOG_PATH/gcc_arm32le_patch.log - -echo "------------------------------------------" -echo "Now building the "gcc_arm32le" toolchain ..." -echo "The entire build process takes about 45 minutes (build time is related to machine preformance), you can view the detailed build log in the ${LOG_PATH} file" -source gcc_update_sourcecode.sh -source gcc_arm_linux_release.sh 2>&1 | tee $LOG_PATH/gcc_arm32le_build.log -echo "Build gcc_arm32le toolchain completed!" diff --git a/gcc_arm32le/gcc_arm_linux_release.sh b/gcc_arm32le/gcc_arm_linux_release.sh deleted file mode 100755 index 2e67652..0000000 --- a/gcc_arm32le/gcc_arm_linux_release.sh +++ /dev/null @@ -1,130 +0,0 @@ -#!/bin/bash - -set -e -set -x - -# Target root directory,should be adapted according to your environment -readonly ROOT_TAR_DIR="$PWD/arm32le_build_dir" -readonly ROOT_TAR_SRC="$PWD/../../open_source" -readonly INSTALL="gcc_arm32le" -readonly PREFIX="$PWD/arm32le_build_dir/$INSTALL" -readonly OUTPUT="$PWD/../../output/$INSTALL" - -readonly SECURE_LDFLAGS="-z relro -z now -z noexecstack" -readonly SECURE_CFLAGS="-O2 -Wall -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -Wno-stringop-overflow -fPIE" -readonly SECURE_CXXFLAGS="-O2 -Wall -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -Wno-stringop-overflow -fPIE" -readonly SECURE_CFLAGS_FOR_TARGET="-O2 -Wall -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -Wno-stringop-overflow -march=armv7-a -mfloat-abi=soft -mfpu=vfp" -readonly SECURE_CXXFLAGS_FOR_TARGET="-O2 -Wall -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -Wno-stringop-overflow -march=armv7-a -mfloat-abi=soft -mfpu=vfp" - -readonly TARGET="arm-linux-gnueabi" -readonly HOST="$(gcc -dumpmachine)" -readonly BUILD="$(gcc -dumpmachine)" - -readonly SYSROOT="$PREFIX/sysroot" - -#OTHER CONFIG -readonly ARCH="armv7-a" - -if [[ -z "$COMPILER_INFO" ]];then - source $PWD/../config.xml -fi - -declare -x CFLAGS_FOR_TARGET="-O2 -Wall -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -Wno-stringop-overflow -march=armv7-a -mfloat-abi=soft -mfpu=vfp" -declare -x CXXFLAGS_FOR_TARGET="$CFLAGS_FOR_TARGET" - -#Create an empty file -create_new_file(){ -while [ $# != 0 ] ; do -[ -n "$1" ] && rm -rf $1 ; mkdir -p $1; shift; done } - -create_new_file $ROOT_TAR_DIR/obj $PREFIX $OUTPUT $ROOT_TAR_DIR/obj/build-gmp $ROOT_TAR_DIR/obj/build-mpfr $ROOT_TAR_DIR/obj/build-isl $ROOT_TAR_DIR/obj/build-mpc $ROOT_TAR_DIR/obj/build-binutils $ROOT_TAR_DIR/obj/build-gcc-first $ROOT_TAR_DIR/obj/glibc-headers $ROOT_TAR_DIR/obj/build-gcc-second $ROOT_TAR_DIR/obj/build-eglibc $ROOT_TAR_DIR/obj/build-gcc-final - -# Change libstdc++.so option -sed -i "s#^\\t\$(OPT_LDFLAGS).*#\\t\$(OPT_LDFLAGS) \$(SECTION_LDFLAGS) \$(AM_CXXFLAGS) \$(LTLDFLAGS) -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -o \$\@#g" $ROOT_TAR_SRC/$GCC/$GCC_DIR/libstdc++-v3/src/Makefile.in - -echo "Building gmp..." && pushd $ROOT_TAR_DIR/obj/build-gmp -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$GMP/$GMP_DIR/configure --build=$BUILD --prefix=$PREFIX --disable-shared --host=$HOST --enable-cxx -make -j 32 && make install && popd - -echo "Building mpfr..." && pushd $ROOT_TAR_DIR/obj/build-mpfr -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$MPFR/$MPFR_DIR/configure --build=$BUILD --target=$TARGET --prefix=$PREFIX --disable-shared --host=$HOST --with-gmp=$PREFIX -make -j 32 && make install && popd - -echo "Building isl..." && pushd $ROOT_TAR_DIR/obj/build-isl -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$ISL/$ISL_DIR/configure --build=$BUILD --host=$HOST --prefix=$PREFIX --with-gmp-prefix=$PREFIX --disable-shared -make -j 32 && make install && popd - -echo "Building mpc..." && pushd $ROOT_TAR_DIR/obj/build-mpc -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$MPC/$MPC_DIR/configure --build=$BUILD --target=$TARGET --prefix=$PREFIX --disable-shared --host=$HOST --with-gmp=$PREFIX -make -j 32 && make install && popd - -echo "Building binutils..." && pushd $ROOT_TAR_DIR/obj/build-binutils -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$BINUTILS/$BINUTILS_DIR/configure --build=$BUILD --target=$TARGET --prefix=$PREFIX --host=$HOST --with-pkgversion="${COMPILER_INFO}" --with-sysroot=$SYSROOT --enable-plugins --enable-ld=yes --disable-gdb --libdir=$PREFIX/lib -make -j 32 && make install prefix=$PREFIX exec_prefix=$PREFIX libdir=$PREFIX/lib && popd - -echo "Installing kernel headers..." && pushd $ROOT_TAR_SRC/$KERNEL_HEADERS/ -mkdir -p $SYSROOT/usr/ && cp -r include $SYSROOT/usr/ -mkdir -p $SYSROOT/usr/include/bits $SYSROOT/usr/include/gnu && popd - -echo "Building GCC first..." && pushd $ROOT_TAR_DIR/obj/build-gcc-first -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$GCC/$GCC_DIR/configure --build=$BUILD --host=$HOST --target=$TARGET --prefix=$PREFIX --disable-multilib --disable-libmudflap --without-headers --with-newlib --enable-threads=no --disable-shared --disable-nls --with-arch=$ARCH --with-gnu-as --with-gnu-ld --enable-poison-system-directories --disable-libssp --enable-symvers=gnu --enable-__cxa_atexit --disable-libgomp --disable-libstdcxx-pch --disable-libquadmath --disable-lto --enable-languages=c --with-pkgversion="${COMPILER_INFO}" --with-gmp=$PREFIX --with-mpfr=$PREFIX --with-mpc=$PREFIX --with-isl=$PREFIX --with-sysroot=$SYSROOT --with-build-sysroot=$SYSROOT --with-build-time-tools=$PREFIX/$TARGET/bin --libdir=$PREFIX/lib --disable-bootstrap --disable-libatomic --disable-libcilkrts --disable-libstdcxx-dual-abi --with-system-zlib -make -j 32 CPPFLAGS_FOR_TARGET=--sysroot=$SYSROOT && make install prefix=$PREFIX exec_prefix=$PREFIX libdir=$PREFIX/lib && popd - -echo "Installing eglibc headers for little-endian..." && mkdir -p $SYSROOT/lib/ $SYSROOT/usr/lib/ && pushd "$ROOT_TAR_DIR/obj/glibc-headers" -cp -f $ROOT_TAR_SRC/$GLIBC/$GLIBC_DIR/include/gnu/stubs.h $SYSROOT/usr/include/gnu -CC="$PREFIX/bin/$TARGET-gcc $CFLAGS_FOR_TARGET" $ROOT_TAR_SRC/$GLIBC/$GLIBC_DIR/configure --prefix=/usr --with-headers=$SYSROOT/usr/include --build=$BUILD --host=$TARGET --disable-profile --without-gd --without-cvs --disable-multi-arch --enable-add-ons libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes --with-float=soft --with-fp=no --enable-stack-protector=strong libc_cv_ssp=yes -make install-bootstrap-headers=yes install-headers install_root=$SYSROOT && make -j 32 csu/subdir_lib -cp csu/crt1.o csu/crti.o csu/crtn.o $SYSROOT/usr/lib/ -$PREFIX/bin/$TARGET-gcc $CFLAGS_FOR_TARGET -o "$SYSROOT/usr/lib/libc.so" -nostdlib -nostartfiles -shared -x c /dev/null && popd - -echo "Building GCC second..." && pushd $ROOT_TAR_DIR/obj/build-gcc-second -# Fix this issue https://gitee.com/src-openeuler/gcc-cross/issues/I7KWH4. The reason is that gcc_arm32le/sysroot/usr/include/bits/stdio_lim.h is generated after glibc is upgraded. -#cp $ROOT_TAR_DIR/obj/glibc-headers/bits/stdio_lim.h $SYSROOT/usr/include/bits -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$GCC/$GCC_DIR/configure --build=$BUILD --host=$HOST --target=$TARGET --prefix=$PREFIX --disable-multilib --disable-libmudflap --enable-shared --with-arch=$ARCH --enable-__cxa_atexit --with-gnu-as --with-gnu-ld --disable-nls --disable-libssp --disable-libgomp --enable-lto --disable-libquadmath --enable-poison-system-directories --enable-symvers=gnu --enable-languages=c --with-pkgversion="${COMPILER_INFO}" --with-sysroot=$SYSROOT --with-build-sysroot=$SYSROOT --with-gmp=$PREFIX --with-mpfr=$PREFIX --with-mpc=$PREFIX --with-isl=$PREFIX --with-build-time-tools=$PREFIX/$TARGET/bin --libdir=$PREFIX/lib --disable-bootstrap --disable-libatomic --disable-libcilkrts --disable-libstdcxx-dual-abi --with-system-zlib -make -j 32 CPPFLAGS_FOR_TARGET=--sysroot=$SYSROOT build_tooldir=$PREFIX/$TARGET && make install-gcc install-target-libgcc prefix=$PREFIX exec_prefix=$PREFIX libdir=$PREFIX/lib && popd - -echo "Building eglibc for little-endian..." && mkdir -p $SYSROOT/lib/ $SYSROOT/usr/lib/ && pushd $ROOT_TAR_DIR/obj/build-eglibc -CC="$PREFIX/bin/$TARGET-gcc $CFLAGS_FOR_TARGET" CXX="$PREFIX/bin/$TARGET-g++ $CXXFLAGS_FOR_TARGET" LDFLAGS="${SECURE_LDFLAGS}" $ROOT_TAR_SRC/$GLIBC/$GLIBC_DIR/configure --prefix=/usr --with-headers=$SYSROOT/usr/include --build=$BUILD --host=$TARGET --disable-profile --without-gd --enable-obsolete-rpc --without-cvs --with-__thread --with-tls --disable-multi-arch --enable-shared --with-fp --enable-add-ons libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes --libdir=/usr/lib --with-float=soft --with-fp=no --enable-stack-protector=strong libc_cv_ssp=yes -make -j 32 && make install_root=$SYSROOT slibdir=/lib rtlddir=/lib install && popd - -echo "Building GCC final..." && pushd $ROOT_TAR_DIR/obj/build-gcc-final -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$GCC/$GCC_DIR/configure --build=$BUILD --host=$HOST --target=$TARGET --with-arch=$ARCH --prefix=$PREFIX --disable-multilib --enable-__cxa_atexit --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-libgomp --disable-libquadmath --enable-threads --enable-plugin --enable-c99 --enable-long-long --disable-nls --enable-shared --enable-poison-system-directories --enable-symvers=gnu --with-pkgversion="${COMPILER_INFO}" --enable-languages=c,c++,fortran --with-headers=$SYSROOT/usr/include --with-sysroot=$SYSROOT --with-build-sysroot=$SYSROOT --with-gmp=$PREFIX --with-mpfr=$PREFIX --with-mpc=$PREFIX --with-isl=$PREFIX --with-build-time-tools=$PREFIX/$TARGET/bin --libdir=$PREFIX/lib --disable-bootstrap --disable-libcilkrts --disable-libstdcxx-dual-abi --enable-default-pie --with-system-zlib -make -j 32 CPPFLAGS_FOR_TARGET=--sysroot=$SYSROOT && make install prefix=$PREFIX exec_prefix=$PREFIX libdir=$PREFIX/lib && popd - -# handle rpath -for file in $(find "$PREFIX" -name "lib*so*.0") ; do - chrpath --delete $file -done - -for file in $(find "$PREFIX/sysroot/usr/lib/gconv" -name "*so") ; do - chrpath --delete $file -done - -for file in $(find "$PREFIX" -name "*") ; do - if [ -f "$file" ] - then - result=$(file $file) - res=$(echo $result | grep "ELF" | cat) - if [[ "$res" != "" ]] - then - get_arch=`arch` - if [[ $get_arch =~ "x86_64" ]] - then - res1=$(echo $result | grep "ARM" | cat) - if [[ "$res1" != "" ]] - then - $PREFIX/bin/$TARGET-strip $file - else - strip $file - fi - else - strip $file - fi - fi - fi -done - -pushd $PREFIX/.. && chmod 750 $INSTALL -R -tar --format=gnu -czf $OUTPUT/$INSTALL.tar.gz $INSTALL && popd - -echo "Build Complete!" && echo "To use this newly-built $INSTALL cross toolchain, add $PREFIX/bin to your PATH!" diff --git a/gcc_arm32le/gcc_update_sourcecode.sh b/gcc_arm32le/gcc_update_sourcecode.sh deleted file mode 100755 index 4dbfed6..0000000 --- a/gcc_arm32le/gcc_update_sourcecode.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash - -set -e -set -x - -readonly ROOT_TOUCH_SRC="$PWD/../../open_source" - -if [[ -z "$COMPILER_INFO" ]];then - source $PWD/../config.xml -fi - -#[task 002/007] touch .info files in source code for binutils -find $ROOT_TOUCH_SRC/$BINUTILS/$BINUTILS_DIR -name "*.info"|xargs -i bash -c "touch {}" - -touch $ROOT_TOUCH_SRC/$BINUTILS/$BINUTILS_DIR/binutils/doc/binutils.texi - -find $ROOT_TOUCH_SRC/$BINUTILS/$BINUTILS_DIR -name "*.1"|xargs -i bash -c "touch {}" - -touch $ROOT_TOUCH_SRC/$GCC/$GCC_DIR/gcc/config/arm/iterators.md - -find $ROOT_TOUCH_SRC/$GCC/$GCC_DIR -name "*.1"|xargs -i bash -c "touch {}" - -find $ROOT_TOUCH_SRC/$GCC/$GCC_DIR -name "*.info"|xargs -i bash -c "touch {}" - -touch $ROOT_TOUCH_SRC/$GLIBC/$GLIBC_DIR/locale/programs/*-kw.h - -touch $ROOT_TOUCH_SRC/$MPFR/$MPFR_DIR/*.m4 -touch $ROOT_TOUCH_SRC/$MPFR/$MPFR_DIR/configure -touch $ROOT_TOUCH_SRC/$MPFR/$MPFR_DIR/Makefile.* -touch $ROOT_TOUCH_SRC/$MPFR/$MPFR_DIR/doc/* -touch $ROOT_TOUCH_SRC/$GMP/$GMP_DIR/*.m4 -touch $ROOT_TOUCH_SRC/$GMP/$GMP_DIR/configure -touch $ROOT_TOUCH_SRC/$GMP/$GMP_DIR/Makefile.* -touch $ROOT_TOUCH_SRC/$GMP/$GMP_DIR/doc/* -touch $ROOT_TOUCH_SRC/$MPC/$MPC_DIR/*.m4 -touch $ROOT_TOUCH_SRC/$MPC/$MPC_DIR/configure -touch $ROOT_TOUCH_SRC/$MPC/$MPC_DIR/Makefile.* -touch $ROOT_TOUCH_SRC/$MPC/$MPC_DIR/doc/* -touch $ROOT_TOUCH_SRC/$ISL/$ISL_DIR/*.m4 -touch $ROOT_TOUCH_SRC/$ISL/$ISL_DIR/configure -touch $ROOT_TOUCH_SRC/$ISL/$ISL_DIR/Makefile.* diff --git a/gcc_arm32le/pre_construction.sh b/gcc_arm32le/pre_construction.sh deleted file mode 100755 index 919b2c3..0000000 --- a/gcc_arm32le/pre_construction.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -set -e -set -x - -readonly ROOT_BUILD_SRC="$PWD/../../open_source" -readonly OUTPUT_INSTALL="$PWD/../../output/gcc_arm32le" - -if [[ -z "$COMPILER_INFO" ]];then - source $PWD/../config.xml -fi - -#clear history build legacy files -clean(){ - [ -n "$OUTPUT_INSTALL" ] && rm -rf $OUTPUT_INSTALL - mkdir -p $OUTPUT_INSTALL -} - -#clean the build direcoty -clean - -chmod 777 $ROOT_BUILD_SRC -R - -# Extract kernel header files -cd $ROOT_BUILD_SRC/$LINUX_KERNEL -make headers_install ARCH=arm INSTALL_HDR_PATH=$ROOT_BUILD_SRC/$KERNEL_HEADERS -cd - diff --git a/gcc_arm64le/build.sh b/gcc_arm64le/build.sh deleted file mode 100755 index 88c575d..0000000 --- a/gcc_arm64le/build.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -set -e -set -x - -readonly LOG_PATH="$PWD/../logs" - -source $PWD/../config.xml - -[ -e "$LOG_PATH/gcc_arm64le_patch.log" ] && rm $LOG_PATH/gcc_arm64le_patch.log -[ -e "$LOG_PATH/gcc_arm64le_build.log" ] && rm $LOG_PATH/gcc_arm64le_build.log -mkdir -p $LOG_PATH - -source pre_construction.sh 2>&1 | tee $LOG_PATH/gcc_arm64le_patch.log - -echo "------------------------------------------" -echo "Now building the "gcc_arm64le" toolchain ..." -echo "The entire build process takes about 45 minutes (build time is related to machine preformance), you can view the detailed build log in the ${LOG_PATH} file" -source gcc_update_sourcecode.sh -source gcc_aarch64_linux_release.sh 2>&1 | tee $LOG_PATH/gcc_arm64le_build.log -echo "Build gcc_arm64le toolchain completed!" diff --git a/gcc_arm64le/gcc_aarch64_linux_release.sh b/gcc_arm64le/gcc_aarch64_linux_release.sh deleted file mode 100755 index 59561c9..0000000 --- a/gcc_arm64le/gcc_aarch64_linux_release.sh +++ /dev/null @@ -1,131 +0,0 @@ -#!/bin/bash - -set -e -set -x - -# Target root directory,should be adapted according to your environment -readonly ROOT_TAR_DIR="$PWD/arm64le_build_dir" -readonly ROOT_TAR_SRC="$PWD/../../open_source" -readonly INSTALL="gcc_arm64le" -readonly PREFIX="$PWD/arm64le_build_dir/$INSTALL" -readonly OUTPUT="$PWD/../../output/$INSTALL" - -readonly SECURE_LDFLAGS="-z relro -z now -z noexecstack" -readonly SECURE_CFLAGS="-fPIC -O2 -Wall -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fPIE" -readonly SECURE_CXXFLAGS="-fPIC -O2 -Wall -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fPIE" -readonly SECURE_CFLAGS_FOR_TARGET="-fPIC -O2 -Wall -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -mlittle-endian -march=armv8-a -DDONT_USE_DC" -readonly SECURE_CXXFLAGS_FOR_TARGET="-fPIC -O2 -Wall -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -mlittle-endian -march=armv8-a -DDONT_USE_DC" - -readonly HOST="$(gcc -dumpmachine)" -readonly BUILD="$(gcc -dumpmachine)" - -readonly SYSROOT="$PREFIX/sysroot" - -#OTHER CONFIG -readonly ARCH="armv8-a" -readonly TARGET="aarch64-linux-gnueabi" - -source $PWD/../config.xml - -declare -x CFLAGS_FOR_TARGET="-fPIC -O2 -Wall -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -mlittle-endian -march=armv8-a -DDONT_USE_DC" -declare -x CXXFLAGS_FOR_TARGET="$CFLAGS_FOR_TARGET" - -#Create an empty file -create_new_file(){ -while [ $# != 0 ] ; do -[ -n "$1" ] && rm -rf $1 ; mkdir -p $1; shift; done } - -create_new_file $ROOT_TAR_DIR/obj $PREFIX $OUTPUT $ROOT_TAR_DIR/obj/build-gmp $ROOT_TAR_DIR/obj/build-mpfr $ROOT_TAR_DIR/obj/build-isl $ROOT_TAR_DIR/obj/build-mpc $ROOT_TAR_DIR/obj/build-binutils $ROOT_TAR_DIR/obj/build-gcc-first $ROOT_TAR_DIR/obj/glibc-headers-lp64 $ROOT_TAR_DIR/obj/build-gcc-second $ROOT_TAR_DIR/obj/build-eglibc-lp64 $ROOT_TAR_DIR/obj/build-gcc-final - -# Change GLIBC_DYNAMIC_LINKER. -sed -i "s#^\#define GLIBC_DYNAMIC_LINKER.*#\#undef STANDARD_STARTFILE_PREFIX_2\n\#define STANDARD_STARTFILE_PREFIX_2 \"/usr/lib64/\"\n\#define GLIBC_DYNAMIC_LINKER \"/lib%{mabi=lp64:64}%{mabi=ilp32:ilp32}/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1\"#g" $ROOT_TAR_SRC/$GCC/$GCC_DIR/gcc/config/aarch64/aarch64-linux.h - -# Change libstdc++.so option -sed -i "s#^\\t\$(OPT_LDFLAGS).*#\\t\$(OPT_LDFLAGS) \$(SECTION_LDFLAGS) \$(AM_CXXFLAGS) \$(LTLDFLAGS) -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -o \$\@#g" $ROOT_TAR_SRC/$GCC/$GCC_DIR/libstdc++-v3/src/Makefile.in - -echo "Building gmp..." && pushd $ROOT_TAR_DIR/obj/build-gmp -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$GMP/$GMP_DIR/configure --build=$BUILD --prefix=$PREFIX --disable-shared --host=$HOST --enable-cxx -make -j 32 && make install && popd - -echo "Building mpfr..." && pushd $ROOT_TAR_DIR/obj/build-mpfr -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$MPFR/$MPFR_DIR/configure --build=$BUILD --target=$TARGET --prefix=$PREFIX --disable-shared --host=$HOST --with-gmp=$PREFIX -make -j 32 && make install && popd - -echo "Building isl..." && pushd $ROOT_TAR_DIR/obj/build-isl -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$ISL/$ISL_DIR/configure --build=$BUILD --host=$HOST --prefix=$PREFIX --with-gmp-prefix=$PREFIX --disable-shared -make -j 32 && make install && popd - -echo "Building mpc..." && pushd $ROOT_TAR_DIR/obj/build-mpc -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$MPC/$MPC_DIR/configure --build=$BUILD --target=$TARGET --prefix=$PREFIX --disable-shared --host=$HOST --with-gmp=$PREFIX -make -j 32 && make install && popd - -echo "Building binutils..." && pushd $ROOT_TAR_DIR/obj/build-binutils -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$BINUTILS/$BINUTILS_DIR/configure --build=$BUILD --target=$TARGET --prefix=$PREFIX --host=$HOST --with-pkgversion="${COMPILER_INFO}" --with-sysroot=$SYSROOT --enable-plugins --enable-ld=yes --disable-gdb --libdir=$PREFIX/lib64 -make -j 32 && make install prefix=$PREFIX exec_prefix=$PREFIX libdir=$PREFIX/lib64 && popd - -echo "Installing kernel headers..." && pushd $ROOT_TAR_SRC/$KERNEL_HEADERS_64/ -mkdir -p $SYSROOT/usr/ && cp -r include $SYSROOT/usr/ -mkdir -p $SYSROOT/usr/include/bits $SYSROOT/usr/include/gnu && popd - -echo "Building GCC first..." && pushd $ROOT_TAR_DIR/obj/build-gcc-first -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$GCC/$GCC_DIR/configure --build=$BUILD --host=$HOST --target=$TARGET --prefix=$PREFIX --with-multilib-list=lp64 --disable-libmudflap --without-headers --with-newlib --enable-threads=no --disable-shared --disable-nls --with-arch=$ARCH --with-gnu-as --with-gnu-ld --enable-poison-system-directories --disable-libssp --enable-symvers=gnu --enable-__cxa_atexit --disable-libgomp --disable-libstdcxx-pch --disable-libquadmath --disable-lto --enable-languages=c --with-pkgversion="${COMPILER_INFO}" --with-gmp=$PREFIX --with-mpfr=$PREFIX --with-mpc=$PREFIX --with-isl=$PREFIX --with-sysroot=$SYSROOT --with-build-sysroot=$SYSROOT --with-build-time-tools=$PREFIX/$TARGET/bin --libdir=$PREFIX/lib64 --disable-bootstrap --disable-libatomic --disable-libcilkrts --disable-libstdcxx-dual-abi --with-system-zlib -echo $PATH -echo $LD_LIBRARY_PATH -make -j 32 CPPFLAGS_FOR_TARGET=--sysroot=$SYSROOT && make install prefix=$PREFIX exec_prefix=$PREFIX libdir=$PREFIX/lib64 && popd - -echo "Installing eglibc headers for lp64..." && mkdir -p $SYSROOT/lib64/ $SYSROOT/usr/lib64/ && pushd "$ROOT_TAR_DIR/obj/glibc-headers-lp64" -cp -af $ROOT_TAR_SRC/$GLIBC/$GLIBC_DIR/include/gnu/stubs.h $SYSROOT/usr/include/gnu -CC="$PREFIX/bin/$TARGET-gcc $CFLAGS_FOR_TARGET" $ROOT_TAR_SRC/$GLIBC/$GLIBC_DIR/configure --prefix=/usr --with-headers=$SYSROOT/usr/include --build=$BUILD --host=$TARGET --enable-obsolete-rpc --disable-profile --without-gd --without-cvs --disable-multi-arch --enable-add-ons libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes --enable-stack-protector=strong libc_cv_ssp=yes -make install-bootstrap-headers=yes install-headers install_root=$SYSROOT && make -j 32 csu/subdir_lib -cp csu/crt1.o csu/crti.o csu/crtn.o $SYSROOT/usr/lib64/ -$PREFIX/bin/$TARGET-gcc $CFLAGS_FOR_TARGET -o "$SYSROOT/usr/lib64/libc.so" -nostdlib -nostartfiles -shared -x c /dev/null && popd - -echo "Building GCC second..." && pushd $ROOT_TAR_DIR/obj/build-gcc-second -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$GCC/$GCC_DIR/configure --build=$BUILD --host=$HOST --target=$TARGET --prefix=$PREFIX --with-multilib-list=lp64 --disable-libmudflap --enable-shared --with-arch=$ARCH --enable-__cxa_atexit --with-gnu-as --with-gnu-ld --disable-nls --disable-libssp --disable-libgomp --enable-lto --disable-libquadmath --enable-poison-system-directories --enable-symvers=gnu --enable-languages=c --with-pkgversion="${COMPILER_INFO}" --with-sysroot=$SYSROOT --with-build-sysroot=$SYSROOT --with-gmp=$PREFIX --with-mpfr=$PREFIX --with-mpc=$PREFIX --with-isl=$PREFIX --with-build-time-tools=$PREFIX/$TARGET/bin --libdir=$PREFIX/lib64 --disable-bootstrap --disable-libatomic --disable-libcilkrts --disable-libstdcxx-dual-abi --with-system-zlib -make -j 32 CPPFLAGS_FOR_TARGET=--sysroot=$SYSROOT build_tooldir=$PREFIX/$TARGET && make install-gcc install-target-libgcc prefix=$PREFIX exec_prefix=$PREFIX libdir=$PREFIX/lib64 && popd - -echo "Building eglibc for lp64..." && mkdir -p $SYSROOT/lib64/ $SYSROOT/usr/lib64/ && pushd $ROOT_TAR_DIR/obj/build-eglibc-lp64 -CC="$PREFIX/bin/$TARGET-gcc $CFLAGS_FOR_TARGET" CXX="$PREFIX/bin/$TARGET-g++ $CXXFLAGS_FOR_TARGET" LDFLAGS="${SECURE_LDFLAGS}" $ROOT_TAR_SRC/$GLIBC/$GLIBC_DIR/configure --prefix=/usr --with-headers=$SYSROOT/usr/include --build=$BUILD --host=$TARGET --disable-profile --without-gd --enable-obsolete-rpc --without-cvs --with-__thread --with-tls --disable-multi-arch --enable-shared --with-fp --enable-add-ons libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes --libdir=/usr/lib64 --enable-stack-protector=strong libc_cv_ssp=yes -make -j 32 && make install_root=$SYSROOT slibdir=/lib64 rtlddir=/lib64 install && popd - -echo "Building GCC final..." && pushd $ROOT_TAR_DIR/obj/build-gcc-final -LDFLAGS="${SECURE_LDFLAGS}" CFLAGS="${SECURE_CFLAGS}" CXXFLAGS="${SECURE_CXXFLAGS}" CFLAGS_FOR_TARGET="${SECURE_CFLAGS_FOR_TARGET}" CXXFLAGS_FOR_TARGET="${SECURE_CXXFLAGS_FOR_TARGET}" $ROOT_TAR_SRC/$GCC/$GCC_DIR/configure --build=$BUILD --host=$HOST --target=$TARGET --with-arch=$ARCH --prefix=$PREFIX --with-multilib-list=lp64 --enable-__cxa_atexit --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-libgomp --enable-threads --enable-plugin --enable-c99 --enable-long-long --disable-nls --enable-shared --enable-poison-system-directories --enable-symvers=gnu --with-pkgversion="${COMPILER_INFO}" --enable-languages=c,c++,fortran --with-headers=$SYSROOT/usr/include --with-sysroot=$SYSROOT --with-build-sysroot=$SYSROOT --with-gmp=$PREFIX --with-mpfr=$PREFIX --with-mpc=$PREFIX --with-isl=$PREFIX --with-build-time-tools=$PREFIX/$TARGET/bin --libdir=$PREFIX/lib64 --disable-bootstrap --disable-libsanitizer --disable-libcilkrts --disable-libstdcxx-dual-abi --enable-default-pie --with-system-zlib -make -j 32 CPPFLAGS_FOR_TARGET=--sysroot=$SYSROOT && make install prefix=$PREFIX exec_prefix=$PREFIX libdir=$PREFIX/lib64 && popd - -# handle rpath -for file in $(find "$PREFIX" -name "lib*so*.0") ; do - chrpath --delete $file -done - -for file in $(find "$PREFIX/sysroot/usr/lib64/gconv" -name "*so") ; do - chrpath --delete $file -done - -for file in $(find "$PREFIX" -name "*") ; do - if [ -f "$file" ] - then - result=$(file $file) - res=$(echo $result | grep "ELF" | cat) - if [[ "$res" != "" ]] - then - get_arch=`arch` - if [[ $get_arch =~ "x86_64" ]] - then - res1=$(echo $result | grep "ARM" | cat) - if [[ "$res1" != "" ]] - then - $PREFIX/bin/$TARGET-strip $file - else - strip $file - fi - else - strip $file - fi - fi - fi -done - -pushd $PREFIX/.. && chmod 750 $INSTALL -R -tar --format=gnu -czf $OUTPUT/$INSTALL.tar.gz $INSTALL && popd - -echo "Build Complete!" && echo "To use this newly-built $INSTALL cross toolchain, add $PREFIX/bin to your PATH!" diff --git a/gcc_arm64le/gcc_update_sourcecode.sh b/gcc_arm64le/gcc_update_sourcecode.sh deleted file mode 100755 index 56718f8..0000000 --- a/gcc_arm64le/gcc_update_sourcecode.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash - -set -e -set -x - -readonly ROOT_TOUCH_SRC="$PWD/../../open_source" - -source $PWD/../config.xml - -#[task 002/007] touch .info files in source code for binutils -find $ROOT_TOUCH_SRC/$BINUTILS/$BINUTILS_DIR -name "*.info"|xargs -i bash -c "touch {}" - -touch $ROOT_TOUCH_SRC/$BINUTILS/$BINUTILS_DIR/binutils/doc/binutils.texi - -find $ROOT_TOUCH_SRC/$BINUTILS/$BINUTILS_DIR -name "*.1"|xargs -i bash -c "touch {}" - -touch $ROOT_TOUCH_SRC/$GCC/$GCC_DIR/gcc/config/aarch64/iterators.md - -find $ROOT_TOUCH_SRC/$GCC/$GCC_DIR -name "*.1"|xargs -i bash -c "touch {}" - -find $ROOT_TOUCH_SRC/$GCC/$GCC_DIR -name "*.info"|xargs -i bash -c "touch {}" - -touch $ROOT_TOUCH_SRC/$GLIBC/$GLIBC_DIR/locale/programs/*-kw.h - -touch $ROOT_TOUCH_SRC/$MPFR/$MPFR_DIR/*.m4 -touch $ROOT_TOUCH_SRC/$MPFR/$MPFR_DIR/configure -touch $ROOT_TOUCH_SRC/$MPFR/$MPFR_DIR/Makefile.* -touch $ROOT_TOUCH_SRC/$MPFR/$MPFR_DIR/doc/* -touch $ROOT_TOUCH_SRC/$GMP/$GMP_DIR/*.m4 -touch $ROOT_TOUCH_SRC/$GMP/$GMP_DIR/configure -touch $ROOT_TOUCH_SRC/$GMP/$GMP_DIR/Makefile.* -touch $ROOT_TOUCH_SRC/$GMP/$GMP_DIR/doc/* -touch $ROOT_TOUCH_SRC/$MPC/$MPC_DIR/*.m4 -touch $ROOT_TOUCH_SRC/$MPC/$MPC_DIR/configure -touch $ROOT_TOUCH_SRC/$MPC/$MPC_DIR/Makefile.* -touch $ROOT_TOUCH_SRC/$MPC/$MPC_DIR/doc/* -touch $ROOT_TOUCH_SRC/$ISL/$ISL_DIR/*.m4 -touch $ROOT_TOUCH_SRC/$ISL/$ISL_DIR/configure -touch $ROOT_TOUCH_SRC/$ISL/$ISL_DIR/Makefile.* diff --git a/gcc_arm64le/pre_construction.sh b/gcc_arm64le/pre_construction.sh deleted file mode 100755 index 70639d7..0000000 --- a/gcc_arm64le/pre_construction.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -set -e -set -x - -readonly ROOT_BUILD_SRC="$PWD/../../open_source" -readonly OUTPUT_INSTALL="$PWD/../../output/gcc_arm64le" - -source $PWD/../config.xml - -#clear history build legacy files -clean(){ - [ -n "$OUTPUT_INSTALL" ] && rm -rf $OUTPUT_INSTALL - mkdir -p $OUTPUT_INSTALL -} - -#clean the build direcoty -clean - -chmod 777 $ROOT_BUILD_SRC -R - -# Extract kernel header files -cd $ROOT_BUILD_SRC/$LINUX_KERNEL_64 -make headers_install ARCH=arm64 INSTALL_HDR_PATH=$ROOT_BUILD_SRC/$KERNEL_HEADERS_64 -cd - -- Gitee