From 2a92904f17f619e8a29f4d081a6c8775962edce3 Mon Sep 17 00:00:00 2001 From: Alexey Sheplyakov Date: Sat, 28 Jan 2023 02:05:10 +0400 Subject: [PATCH] altcross-2stage: use in-tree sources --- altcross-2stage.sh | 47 +++++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/altcross-2stage.sh b/altcross-2stage.sh index de4c81d..662e800 100755 --- a/altcross-2stage.sh +++ b/altcross-2stage.sh @@ -1,18 +1,27 @@ #!/bin/bash set -e set -x +MYDIR="${0%/*}" -TARGET=aarch64-linux-gnu -ARCH=aarch64 -LINUX_ARCH=arm64 -QEMU_ARCH=aarch64 +TARGET='loongarch64-linux-gnu' +ARCH=loongarch64 +LINUX_ARCH=loongarch +QEMU_ARCH=loongarch64 +TARGET_LD_LINUX='/lib64/ld-linux-loongarch-lp64d.so.1' +TARGET_LIBDIR=lib64 unset NIL -KERNEL_SOURCE="`find /usr/src/kernel/sources -type f -name 'kernel-source-*.tar'`" -BINUTILS_SOURCE="`find /usr/src/binutils-source -type f -name 'binutils-*.tar'`" -GCC_SOURCE="`find /usr/src/gcc-source -type f -name 'gcc-*.tar'`" -GLIBC_SOURCE="`find /usr/src/glibc-source -type f -name 'glibc-*.tar'`" +cd "$MYDIR" +MYDIR=`pwd` +BUILDDIR="`pwd`/build" +SRCDIR="`pwd`/src" + +KERNEL_SOURCE="`find $(pwd) -maxdepth 1 -type f -name 'kernel-source-*.tar*'`" +BINUTILS_SOURCE="`find $(pwd) -maxdepth 1 -type f -name 'binutils-*.tar*'`" +GCC_SOURCE="`find $(pwd) -maxdepth 1 -type f -name 'gcc-*.tar*'`" +GLIBC_SOURCE="`find $(pwd) -maxdepth 1 -type f -name 'glibc-*.tar*'`" +GCC_PATCHES="`find $(pwd)/patches/gcc -maxdepth 1 -type f -name '*.patch'`" getversion() { local fname="${1##*/}" @@ -24,8 +33,6 @@ getversion() { GCC_VERSION=`getversion $GCC_SOURCE` GCC_MAJOR_VERSION="${GCC_VERSION%%.*}" -BUILDDIR="`pwd`/build" -SRCDIR="`pwd`/src" INSTALLDIR="`pwd`/inst/altcross-gcc-${GCC_VERSION}" BOOTSTRAP_INSTALLDIR="`pwd`/stage1/altcross-gcc-${GCC_VERSION}" SYSROOT=/$TARGET/libc @@ -35,14 +42,17 @@ mkdir -p -m755 "$SRCDIR" cd "$SRCDIR" mkdir -p -m755 linux binutils gcc glibc -tar -x --strip-components=1 -f "$KERNEL_SOURCE" -C linux -tar -x --strip-components=1 -f "$BINUTILS_SOURCE" -C binutils -tar -x --strip-components=1 -f "$GCC_SOURCE" -C gcc -tar -x --strip-components=1 -f "$GLIBC_SOURCE" -C glibc +tar -x -a --strip-components=1 -f "$KERNEL_SOURCE" -C linux +tar -x -a --strip-components=1 -f "$BINUTILS_SOURCE" -C binutils +tar -x -a --strip-components=1 -f "$GCC_SOURCE" -C gcc +tar -x -a --strip-components=1 -f "$GLIBC_SOURCE" -C glibc cd "gcc" sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' ./contrib/download_prerequisites +for p in $GCC_PATCHES; do + patch -p1 -i $p +done mkdir -p -m755 "$INSTALLDIR/bin" "$BOOTSTRAP_INSTALLDIR/bin" save_PATH="$PATH" @@ -66,6 +76,7 @@ cd "$BUILDDIR/obj_binutils" --with-sysroot="$SYSROOT" \ --with-build-sysroot="$SYSROOTDIR" \ --disable-multilib \ + --disable-gdb \ ${NIL} make -j$(nproc) @@ -167,10 +178,12 @@ sed -e "s; objcopy ; ../../../../bin/${TARGET}-objcopy ;" -i $BUILDDIR/specs mv $BUILDDIR/specs "$INSTALLDIR/lib/gcc/$TARGET/${GCC_MAJOR_VERSION}/" # relocate libgcc_s -mv $INSTALLDIR/lib/gcc/$TARGET/lib64/libgcc_s.so* "$INSTALLDIR/lib/gcc/$TARGET/${GCC_MAJOR_VERSION}/" -rmdir "$INSTALLDIR/lib/gcc/$TARGET/lib64" - +if [ -d "$INSTALLDIR/lib/gcc/$TARGET/lib64" ]; then + mv $INSTALLDIR/lib/gcc/$TARGET/lib64/libgcc_s.so* "$INSTALLDIR/lib/gcc/$TARGET/${GCC_MAJOR_VERSION}/" + rmdir "$INSTALLDIR/lib/gcc/$TARGET/lib64" +fi +cd "$MYDIR" $INSTALLDIR/bin/${TARGET}-gcc -o ${BUILDDIR}/hello_c hello.c || exit 2 $INSTALLDIR/bin/${TARGET}-g++ -o ${BUILDDIR}/hello_cpp hello.cpp || exit 3 $INSTALLDIR/bin/${TARGET}-gcc -o ${BUILDDIR}/bye_asm -static -nostdlib bye-${LINUX_ARCH}.S || exit 11