From 4d448d43f4793f9066a8670e85ae646211406563 Mon Sep 17 00:00:00 2001 From: d00573793 Date: Fri, 16 Jun 2023 11:58:08 +0800 Subject: [PATCH 1/2] [gcc-cross] Fix cross-compilation tool chain to openEuler-22.03-LTS-SP1 --- download.sh | 35 +++++++++++++++++------------------ gcc-cross.spec | 8 +++++++- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/download.sh b/download.sh index b492ff4..3ce5947 100755 --- a/download.sh +++ b/download.sh @@ -3,6 +3,9 @@ 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-22.03-LTS-SP1" #judge the open_source @@ -18,42 +21,38 @@ cd $LIB_PATH && delete_dir $GCC $BINUTILS $GMP $MPC $MPFR $ISL pushd $LIB_PATH function do_patch() { pushd $1 + cp -n * $src_rpmdir + specfile=`ls *.spec` + rpmbuild -bp $src_rpmdir/$specfile if [ $1 = "isl" ];then - tar xf $1-0.14.tar.xz - tar xf $1-0.16.1.tar.xz - patch -p1 < *.patch + cp -a $build_rpmdir/$1/$1-0.14 ./ + cp -a $build_rpmdir/$1/$1-0.16.1 ./ else PKG=$(echo *.tar.*) - tar xf *.tar.* - cat *.spec | grep "Patch" | grep "\.patch" | awk '{print $2}' > $1-patchlist - pushd ${PKG%%.tar.*} - for i in `cat ../$1-patchlist` - do - patch -p1 < ../$i - done - popd + pkg_dir=${PKG%%.tar.*} + cp -a $build_rpmdir/$pkg_dir ./ fi popd } -echo "Download $GCC" && git clone -b openEuler-22.03-LTS https://gitee.com/src-openeuler/gcc.git +echo "Download $GCC" && git clone -b $SRC_BRANCH https://gitee.com/src-openeuler/gcc.git do_patch $GCC -echo "Download $GLIBC" && git clone -b openEuler-22.03-LTS https://gitee.com/src-openeuler/glibc.git +echo "Download $GLIBC" && git clone -b $SRC_BRANCH https://gitee.com/src-openeuler/glibc.git do_patch $GLIBC -echo "Download $BINUTILS" && git clone -b openEuler-22.03-LTS https://gitee.com/src-openeuler/binutils.git +echo "Download $BINUTILS" && git clone -b $SRC_BRANCH https://gitee.com/src-openeuler/binutils.git do_patch $BINUTILS -echo "Download $GMP" && git clone -b openEuler-22.03-LTS https://gitee.com/src-openeuler/gmp.git +echo "Download $GMP" && git clone -b $SRC_BRANCH https://gitee.com/src-openeuler/gmp.git do_patch $GMP -echo "Download $MPFR" && git clone -b openEuler-22.03-LTS https://gitee.com/src-openeuler/mpfr.git +echo "Download $MPFR" && git clone -b $SRC_BRANCH https://gitee.com/src-openeuler/mpfr.git do_patch $MPFR -echo "Download $MPC" && git clone -b openEuler-22.03-LTS https://gitee.com/src-openeuler/libmpc.git +echo "Download $MPC" && git clone -b $SRC_BRANCH https://gitee.com/src-openeuler/libmpc.git do_patch $MPC -echo "Download $ISL" && git clone -b openEuler-22.03-LTS https://gitee.com/src-openeuler/isl.git +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 5.10.0-60.16.0 https://gitee.com/openeuler/kernel.git --depth 1 diff --git a/gcc-cross.spec b/gcc-cross.spec index 829e580..a412539 100644 --- a/gcc-cross.spec +++ b/gcc-cross.spec @@ -1,7 +1,7 @@ Summary: C/C++ Cross Compiler Toolchain Name: gcc-cross Version: 1.0 -Release: 4 +Release: 5 # 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 @@ -42,6 +42,12 @@ cp %{_builddir}/output/gcc_arm32le/gcc_arm32le.tar.gz %{buildroot}/tmp %attr(755, root, root) /tmp/gcc_arm32le.tar.gz %changelog +* Fri Jun 16 2023 dingguangya - 1.0-5 +-Type:Fix +-ID:NA +-SUG:NA +-DESC: Fix cross-compilation tool chain to openEuler-22.03-LTS-SP1 + * Mon Dec 19 2022 dingguangya - 1.0-4 -Type:Fix -ID:NA -- Gitee From c409f53ac128b34dc0641be7801765c6b0ed76bc Mon Sep 17 00:00:00 2001 From: d00573793 Date: Fri, 16 Jun 2023 12:04:28 +0800 Subject: [PATCH 2/2] [gcc-cross] Fix the compilation problem caused by the missing code segment of crtbeginS.o --- gcc-cross.spec | 8 +++++++- gcc_arm32le/gcc_arm_linux_release.sh | 4 +--- gcc_arm64le/gcc_aarch64_linux_release.sh | 4 +--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/gcc-cross.spec b/gcc-cross.spec index a412539..3d96b08 100644 --- a/gcc-cross.spec +++ b/gcc-cross.spec @@ -1,7 +1,7 @@ Summary: C/C++ Cross Compiler Toolchain Name: gcc-cross Version: 1.0 -Release: 5 +Release: 6 # 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 @@ -42,6 +42,12 @@ cp %{_builddir}/output/gcc_arm32le/gcc_arm32le.tar.gz %{buildroot}/tmp %attr(755, root, root) /tmp/gcc_arm32le.tar.gz %changelog +* Fri Jun 16 2023 dingguangya - 1.0-6 +-Type:Fix +-ID:NA +-SUG:NA +-DESC: Fix the compilation problem caused by the missing code segment of crtbeginS.o + * Fri Jun 16 2023 dingguangya - 1.0-5 -Type:Fix -ID:NA diff --git a/gcc_arm32le/gcc_arm_linux_release.sh b/gcc_arm32le/gcc_arm_linux_release.sh index c474127..a538415 100755 --- a/gcc_arm32le/gcc_arm_linux_release.sh +++ b/gcc_arm32le/gcc_arm_linux_release.sh @@ -110,10 +110,8 @@ for file in $(find "$PREFIX" -name "*") ; do if [[ $get_arch =~ "x86_64" ]] then res1=$(echo $result | grep "ARM" | cat) - if [[ "$res1" != "" ]] + if [[ "$res1" == "" ]] then - $PREFIX/bin/$TARGET-strip $file - else strip $file fi else diff --git a/gcc_arm64le/gcc_aarch64_linux_release.sh b/gcc_arm64le/gcc_aarch64_linux_release.sh index 59561c9..6f2af06 100755 --- a/gcc_arm64le/gcc_aarch64_linux_release.sh +++ b/gcc_arm64le/gcc_aarch64_linux_release.sh @@ -112,10 +112,8 @@ for file in $(find "$PREFIX" -name "*") ; do if [[ $get_arch =~ "x86_64" ]] then res1=$(echo $result | grep "ARM" | cat) - if [[ "$res1" != "" ]] + if [[ "$res1" == "" ]] then - $PREFIX/bin/$TARGET-strip $file - else strip $file fi else -- Gitee