From 3ba51c36ec63b7b07568423384f13d31877a9e82 Mon Sep 17 00:00:00 2001 From: Mikhail Karpenko Date: Thu, 8 Feb 2024 22:58:17 +0300 Subject: [PATCH] New package: cross-riscv64-none-elf --- .../cross-riscv64-none-elf-binutils/template | 37 +++++++++ srcpkgs/cross-riscv64-none-elf-gcc/template | 76 +++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 srcpkgs/cross-riscv64-none-elf-binutils/template create mode 100644 srcpkgs/cross-riscv64-none-elf-gcc/template diff --git a/srcpkgs/cross-riscv64-none-elf-binutils/template b/srcpkgs/cross-riscv64-none-elf-binutils/template new file mode 100644 index 00000000000000..459292b5f74e75 --- /dev/null +++ b/srcpkgs/cross-riscv64-none-elf-binutils/template @@ -0,0 +1,37 @@ +# Template file for 'cross-riscv64-none-elf-binutils' +_triplet=riscv64-none-elf +pkgname=cross-riscv64-none-elf-binutils +version=2.42 +revision=1 +build_style=gnu-configure +configure_args=" + --disable-nls + --enable-deterministic-archives + --enable-interwork + --enable-ld + --enable-multilib + --enable-plugins + --host=${XBPS_CROSS_TRIPLET} + --prefix=/usr + --target=${_triplet} + --with-gnu-as + --with-gnu-ld + --with-sysroot=/usr/${_triplet} + --with-system-zlib + --without-isl +" +hostmakedepends="autoconf automake bison flex perl" +makedepends="zlib-devel" +depends="binutils-doc" +short_desc="GNU binary utilities for RV32 and RV64 bare metal" +maintainer="Mikhail Karpenko " +license="GPL-3.0-or-later" +homepage="https://www.gnu.org/software/binutils/" +distfiles="${GNU_SITE}/binutils/binutils-${version}.tar.xz" +checksum=f6e4d41fd5fc778b06b7891457b3620da5ecea1006c6a4a41ae998109f85a800 +nocross=yes + +post_install() { + # Remove documents conflicting with host version + rm -fr ${DESTDIR}/usr/share/info +} diff --git a/srcpkgs/cross-riscv64-none-elf-gcc/template b/srcpkgs/cross-riscv64-none-elf-gcc/template new file mode 100644 index 00000000000000..1718cb8d10d56c --- /dev/null +++ b/srcpkgs/cross-riscv64-none-elf-gcc/template @@ -0,0 +1,76 @@ +# Template file for 'cross-riscv64-none-elf-gcc' +_triplet=riscv64-none-elf +pkgname=cross-riscv64-none-elf-gcc +version=13.2.0 +revision=1 +build_wrksrc=build +build_style=gnu-configure +hostmakedepends="base-devel autoconf automake cross-riscv64-none-elf-binutils bison flex + perl tar texinfo" +makedepends="gmp-devel isl15-devel libmpc-devel mpfr-devel zlib-devel" +depends="cross-riscv64-none-elf-binutils" +short_desc="GNU Compiler Collection for RV32 and RV64 bare metal" +maintainer="Mikhail Karpenko " +license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later" +homepage="https://gcc.gnu.org" +distfiles="${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz" +checksum=e275e76442a6067341a27f04c5c6b83d8613144004c0413528863dc6b5c743da +alternatives="riscv64-none-elf:/usr/bin/riscv64-none-elf-cc:/usr/bin/riscv64-none-elf-gcc" +nocross=yes +nopie=yes +nostrip_files="libgcc.a libgcov.a" + +post_extract() { + mkdir -p build +} + +pre_configure() { + export CFLAGS_FOR_TARGET="-g -Os -mcmodel=medany -ffunction-sections -fdata-sections" + export CXXFLAGS_FOR_TARGET="-g -Os -mcmodel=medany -ffunction-sections -fdata-sections" +} + +do_configure() { + ../configure \ + --disable-tm-clone-registry \ + --disable-decimal-float \ + --disable-libffi \ + --disable-libgomp \ + --disable-libmudflap \ + --disable-libquadmath \ + --disable-libssp \ + --disable-libstdcxx-pch \ + --disable-libstdc__-v3 \ + --disable-nls \ + --disable-shared \ + --disable-threads \ + --enable-tls \ + --disable-werror \ + --enable-languages=c,c++ \ + --enable-multilib \ + --enable-plugins \ + --host=${XBPS_CROSS_TRIPLET} \ + --libdir=/usr/lib \ + --libexecdir=/usr/lib \ + --prefix=/usr \ + --target=${_triplet} \ + --with-gnu-as \ + --with-gnu-ld \ + --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' \ + --with-gmp \ + --with-isl \ + --with-mpc \ + --with-mpfr \ + --with-libelf \ + --with-arch=rv64imafdc \ + --with-abi=lp64d \ + --with-native-system-header-dir=/include \ + --with-sysroot=/usr/${_triplet} \ + --with-newlib \ + --with-system-zlib +} + +post_install() { + # Remove documents conflicting with host version + rm -fr ${DESTDIR}/usr/share/{info,man/man7} + rm -fr ${DESTDIR}/usr/lib/libcc1.* +}