From 5dcf0b277ca6937bea2bc0c620582902be84c8e1 Mon Sep 17 00:00:00 2001 From: wangding16 Date: Tue, 22 Mar 2022 22:52:29 +0800 Subject: [PATCH] [gcc-cross] support gdb --- config.xml | 2 ++ download.sh | 5 ++++- openeuler_gcc_arm32le/openeuler_gcc_arm_linux_release.sh | 6 +++++- .../openeuler_gcc_aarch64_linux_release.sh | 6 +++++- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/config.xml b/config.xml index 3c74fae..a492db4 100644 --- a/config.xml +++ b/config.xml @@ -14,5 +14,7 @@ ISL="isl" ISL_DIR="isl-0.16.1" GLIBC="glibc" GLIBC_DIR="glibc-2.34" +GDB="gdb" +GDB_DIR="gdb-11.1" KERNEL_HEADERS="kernel_headers" LINUX_KERNEL="kernel" diff --git a/download.sh b/download.sh index 068110e..295d554 100755 --- a/download.sh +++ b/download.sh @@ -13,7 +13,7 @@ function delete_dir() { [ -n "$1" ] && rm -rf $1 ; shift; done } -cd $LIB_PATH && delete_dir $GCC $BINUTILS $GMP $MPC $MPFR $ISL +cd $LIB_PATH && delete_dir $GCC $BINUTILS $GMP $MPC $MPFR $ISL $GDB pushd $LIB_PATH function do_patch() { @@ -56,4 +56,7 @@ do_patch $MPC echo "Download $ISL" && git clone -b openEuler-22.03-LTS https://gitee.com/src-openeuler/isl.git do_patch $ISL +echo "Download $GDB" && git clone -b openEuler-22.03-LTS https://gitee.com/src-openeuler/gdb.git +do_patch $GDB + echo "Download $KERNEL" && git clone -b 5.10.0-60.2.0 https://gitee.com/openeuler/kernel.git --depth 1 diff --git a/openeuler_gcc_arm32le/openeuler_gcc_arm_linux_release.sh b/openeuler_gcc_arm32le/openeuler_gcc_arm_linux_release.sh index a449902..ae306dc 100755 --- a/openeuler_gcc_arm32le/openeuler_gcc_arm_linux_release.sh +++ b/openeuler_gcc_arm32le/openeuler_gcc_arm_linux_release.sh @@ -36,7 +36,7 @@ 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 +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-gdb $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 @@ -61,6 +61,10 @@ 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 "Building gdb..." && pushd $ROOT_TAR_DIR/obj/build-gdb +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/$GDB/$GDB_DIR/configure --build=$BUILD --target=$TARGET --prefix=$PREFIX --host=$HOST --disable-shared +make -j 32 && make install && 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 diff --git a/openeuler_gcc_arm64le/openeuler_gcc_aarch64_linux_release.sh b/openeuler_gcc_arm64le/openeuler_gcc_aarch64_linux_release.sh index 659161c..0076925 100755 --- a/openeuler_gcc_arm64le/openeuler_gcc_aarch64_linux_release.sh +++ b/openeuler_gcc_arm64le/openeuler_gcc_aarch64_linux_release.sh @@ -34,7 +34,7 @@ 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 +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-gdb $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 @@ -62,6 +62,10 @@ 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 "Building gdb..." && pushd $ROOT_TAR_DIR/obj/build-gdb +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/$GDB/$GDB_DIR/configure --build=$BUILD --target=$TARGET --prefix=$PREFIX --host=$HOST --disable-shared +make -j 32 && make install && 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 -- Gitee