From 04738fa6bb0d3333c3127e19fc77cf9ca5157143 Mon Sep 17 00:00:00 2001 From: John Date: Fri, 21 Jul 2023 23:12:12 +0200 Subject: [PATCH] New package: cross-riscv64-linux-gnu-0.35 --- common/build-profiles/riscv64.sh | 7 ++++ common/build-style/void-cross.sh | 3 -- common/cross-profiles/riscv64.sh | 12 ++++++ common/shlibs | 1 + srcpkgs/cross-riscv64-linux-gnu-libc | 1 + srcpkgs/cross-riscv64-linux-gnu/template | 51 ++++++++++++++++++++++++ 6 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 common/build-profiles/riscv64.sh create mode 100644 common/cross-profiles/riscv64.sh create mode 120000 srcpkgs/cross-riscv64-linux-gnu-libc create mode 100644 srcpkgs/cross-riscv64-linux-gnu/template diff --git a/common/build-profiles/riscv64.sh b/common/build-profiles/riscv64.sh new file mode 100644 index 00000000000..02ef7f85f52 --- /dev/null +++ b/common/build-profiles/riscv64.sh @@ -0,0 +1,7 @@ +XBPS_TARGET_CFLAGS="-march=rv64imafdc" +XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TARGET_FFLAGS="$XBPS_TARGET_CFLAGS" +XBPS_TRIPLET="riscv64-unknown-linux-gnu" +XBPS_RUST_TARGET="riscv64gc-unknown-linux-gnu" +XBPS_ZIG_TARGET="riscv64-linux-gnu" +XBPS_ZIG_CPU="baseline" diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh index 02bd1f55574..d7da998ba35 100644 --- a/common/build-style/void-cross.sh +++ b/common/build-style/void-cross.sh @@ -641,9 +641,6 @@ do_install() { ln -sf libgnat-${gcc_major}.so ${DESTDIR}/${sysroot}/usr/lib/libgnat.so rm -vf ${DESTDIR}/${adalib}/libgna{rl,t}.so - # Remove unnecessary libatomic which is only built for gccgo - rm -rf ${DESTDIR}/${sysroot}/usr/lib/libatomic.* - # If libquadmath was forced (needed for gfortran on some platforms) # then remove it because it conflicts with libquadmath package rm -rf ${DESTDIR}/${sysroot}/usr/lib/libquadmath.* diff --git a/common/cross-profiles/riscv64.sh b/common/cross-profiles/riscv64.sh new file mode 100644 index 00000000000..18103d0bab5 --- /dev/null +++ b/common/cross-profiles/riscv64.sh @@ -0,0 +1,12 @@ +# Cross build profile for riscv64 and Musl libc. + +XBPS_TARGET_MACHINE="riscv64" +XBPS_TARGET_QEMU_MACHINE="riscv64" +XBPS_CROSS_TRIPLET="riscv64-linux-gnu" +XBPS_CROSS_CFLAGS="-march=rv64imafdc" +XBPS_CROSS_CXXFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_FFLAGS="$XBPS_CROSS_CFLAGS" +XBPS_CROSS_RUSTFLAGS="--sysroot=${XBPS_CROSS_BASE}/usr" +XBPS_CROSS_RUST_TARGET="riscv64gc-unknown-linux-gnu" +XBPS_CROSS_ZIG_TARGET="riscv64-linux-gnu" +XBPS_CROSS_ZIG_CPU="baseline" diff --git a/common/shlibs b/common/shlibs index 53341ad9809..06fe4df8656 100644 --- a/common/shlibs +++ b/common/shlibs @@ -26,6 +26,7 @@ ld-linux-x86-64.so.2 glibc-2.36_1 x86_64 ld-linux.so.2 glibc-2.36_1 i686 ld-linux.so.3 glibc-2.36_1 armv5tel ld-linux-aarch64.so.1 glibc-2.36_1 aarch64 +ld-linux-riscv64-lp64d.so.1 glibc-2.36_1 riscv64 ld64.so.2 glibc-2.36_1 ppc64 ld.so.1 glibc-2.36_1 mips ld.so.1 glibc-2.36_1 ppc diff --git a/srcpkgs/cross-riscv64-linux-gnu-libc b/srcpkgs/cross-riscv64-linux-gnu-libc new file mode 120000 index 00000000000..e8371ddf3e4 --- /dev/null +++ b/srcpkgs/cross-riscv64-linux-gnu-libc @@ -0,0 +1 @@ +cross-riscv64-linux-gnu \ No newline at end of file diff --git a/srcpkgs/cross-riscv64-linux-gnu/template b/srcpkgs/cross-riscv64-linux-gnu/template new file mode 100644 index 00000000000..2eb8a05eded --- /dev/null +++ b/srcpkgs/cross-riscv64-linux-gnu/template @@ -0,0 +1,51 @@ +# Template file for 'cross-riscv64-linux-gnu' +_binutils_version=2.39 +_gcc_version=12.2.0 +_glibc_version=2.36 +_glibc_patchver="72-g0f90d6204d" +_linux_version=5.10.4 +pkgname=cross-riscv64-linux-gnu +version=0.35 +revision=3 +build_style=void-cross +configure_args="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic --disable-multilib" +hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3 pkg-config" +makedepends="isl-devel libmpc-devel gmp-devel mpfr-devel + zlib-devel libzstd-devel" +depends="${pkgname}-libc-${version}_${revision}" +short_desc="Void cross toolchain for ${pkgname/cross-}" +maintainer="John " +license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later" +homepage="https://www.voidlinux.org/" +distfiles="${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz" +distfiles+=" ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz" +# distfiles+=" ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz" +distfiles+=" https://vasilek.cz/paste/glibc-${_glibc_version}-${_glibc_patchver}.tar.xz" +distfiles+=" ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz" +checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00 + e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff + 656200722d5ba968b4888a2d2950719d72c86290fd0479f61897d25b7db2cb57 + 904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec" +nocross=yes + +cross_glibc_cflags="-O2" + +if [ "$XBPS_TARGET_MACHINE" = "riscv64" ]; then + broken="Can't build crosstoolchain to itself" +fi + +case "$XBPS_MACHINE" in + ppc64*) ;; + ppc*|mips*) broken="no gccgo support";; +esac + +cross-riscv64-linux-gnu-libc_package() { + short_desc+=" - glibc files" + nostrip=yes + noshlibprovides=yes + noverifyrdeps=yes + + pkg_install() { + vmove usr/${sourcepkg/cross-} + } +}