add cross/riscv64-none-elf-binutils and cross/riscv64-none-elf-gcc, copied pretty much verbatim from the mipsel-none-elf-* packages

This commit is contained in:
dogcow 2024-03-18 17:39:34 +00:00
parent 4772b6a6f9
commit d937fc03db
15 changed files with 2167 additions and 1 deletions

View File

@ -0,0 +1 @@
Cross binutils for bare metal RISC-V 64-bit ELF environment.

View File

@ -0,0 +1,38 @@
# $NetBSD: Makefile,v 1.1 2024/03/18 17:39:34 dogcow Exp $
DISTNAME= binutils-2.42
PKGNAME= cross-riscv64-none-elf-${DISTNAME}
CATEGORIES= cross
MASTER_SITES= ${MASTER_SITE_GNU:=binutils/}
EXTRACT_SUFX= .tar.bz2
MAINTAINER= port-riscv@NetBSD.org
HOMEPAGE= # empty
COMMENT= Cross binutils for bare metal 64-bit ELF
LICENSE= gnu-gpl-v2 AND gnu-gpl-v3 AND gnu-lgpl-v2 AND gnu-lgpl-v3
USE_LANGUAGES+= c99 c++
USE_LIBTOOL= yes
USE_TOOLS+= bison gmake makeinfo
GNU_CONFIGURE= yes
GNU_CONFIGURE_STRICT= no # several sub-configures know --enable-nls
TOOL_DEPENDS+= gtexinfo>=5.1:../../devel/gtexinfo
_TOOLS_USE_PKGSRC.makeinfo= yes
RISCV64ELF_PREFIX= ${PREFIX}/cross-riscv64-none-elf
OBJDIR= ../build
CONFIGURE_DIRS= ${OBJDIR}
CONFIGURE_SCRIPT= ${WRKSRC}/configure
GNU_CONFIGURE_PREFIX= ${RISCV64ELF_PREFIX}
CONFIGURE_ARGS+= --disable-werror --target=riscv64-none-elf
CONFIGURE_ARGS+= --disable-nls
CONFIGURE_ARGS+= --enable-deterministic-archives
INFO_FILES= yes
pre-configure:
${RUN} cd ${WRKSRC} && ${MKDIR} ${OBJDIR}
.include "../../mk/bsd.pkg.mk"

View File

@ -0,0 +1,95 @@
@comment $NetBSD: PLIST,v 1.1 2024/03/18 17:39:34 dogcow Exp $
cross-riscv64-none-elf/bin/riscv64-none-elf-addr2line
cross-riscv64-none-elf/bin/riscv64-none-elf-ar
cross-riscv64-none-elf/bin/riscv64-none-elf-as
cross-riscv64-none-elf/bin/riscv64-none-elf-c++filt
cross-riscv64-none-elf/bin/riscv64-none-elf-elfedit
cross-riscv64-none-elf/bin/riscv64-none-elf-gprof
cross-riscv64-none-elf/bin/riscv64-none-elf-ld
cross-riscv64-none-elf/bin/riscv64-none-elf-ld.bfd
cross-riscv64-none-elf/bin/riscv64-none-elf-nm
cross-riscv64-none-elf/bin/riscv64-none-elf-objcopy
cross-riscv64-none-elf/bin/riscv64-none-elf-objdump
cross-riscv64-none-elf/bin/riscv64-none-elf-ranlib
cross-riscv64-none-elf/bin/riscv64-none-elf-readelf
cross-riscv64-none-elf/bin/riscv64-none-elf-size
cross-riscv64-none-elf/bin/riscv64-none-elf-strings
cross-riscv64-none-elf/bin/riscv64-none-elf-strip
cross-riscv64-none-elf/info/as.info
cross-riscv64-none-elf/info/bfd.info
cross-riscv64-none-elf/info/binutils.info
cross-riscv64-none-elf/info/ctf-spec.info
cross-riscv64-none-elf/info/gprof.info
cross-riscv64-none-elf/info/ld.info
cross-riscv64-none-elf/info/ldint.info
cross-riscv64-none-elf/info/sframe-spec.info
cross-riscv64-none-elf/lib/bfd-plugins/libdep.so
cross-riscv64-none-elf/man/man1/riscv64-none-elf-addr2line.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-ar.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-as.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-c++filt.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-dlltool.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-elfedit.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-gprof.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-ld.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-nm.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-objcopy.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-objdump.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-ranlib.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-readelf.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-size.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-strings.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-strip.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-windmc.1
cross-riscv64-none-elf/man/man1/riscv64-none-elf-windres.1
cross-riscv64-none-elf/riscv64-none-elf/bin/ar
cross-riscv64-none-elf/riscv64-none-elf/bin/as
cross-riscv64-none-elf/riscv64-none-elf/bin/ld
cross-riscv64-none-elf/riscv64-none-elf/bin/ld.bfd
cross-riscv64-none-elf/riscv64-none-elf/bin/nm
cross-riscv64-none-elf/riscv64-none-elf/bin/objcopy
cross-riscv64-none-elf/riscv64-none-elf/bin/objdump
cross-riscv64-none-elf/riscv64-none-elf/bin/ranlib
cross-riscv64-none-elf/riscv64-none-elf/bin/readelf
cross-riscv64-none-elf/riscv64-none-elf/bin/strip
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32briscv.x
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32briscv.xbn
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32briscv.xc
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32briscv.xce
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32briscv.xe
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32briscv.xn
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32briscv.xr
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32briscv.xu
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32briscv.xw
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32briscv.xwe
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32lriscv.x
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32lriscv.xbn
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32lriscv.xc
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32lriscv.xce
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32lriscv.xe
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32lriscv.xn
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32lriscv.xr
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32lriscv.xu
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32lriscv.xw
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf32lriscv.xwe
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64briscv.x
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64briscv.xbn
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64briscv.xc
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64briscv.xce
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64briscv.xe
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64briscv.xn
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64briscv.xr
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64briscv.xu
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64briscv.xw
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64briscv.xwe
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64lriscv.x
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64lriscv.xbn
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64lriscv.xc
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64lriscv.xce
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64lriscv.xe
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64lriscv.xn
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64lriscv.xr
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64lriscv.xu
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64lriscv.xw
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/elf64lriscv.xwe
cross-riscv64-none-elf/riscv64-none-elf/lib/ldscripts/stamp

View File

@ -0,0 +1,5 @@
$NetBSD: distinfo,v 1.1 2024/03/18 17:39:34 dogcow Exp $
BLAKE2s (binutils-2.42.tar.bz2) = 0fa658692a24ec12a2769f4c4423d88e4b4a25a84a6dbf2fd5edb7147db4cec2
SHA512 (binutils-2.42.tar.bz2) = d2c6d264bbeaaaf2aad1fa3fc417c1841a5dd4a299fa47c47d15adb821c22dae733e58f19ebcfea3b0c5890ba56e4a5f92ab55128a572d585bcd5172b63f456c
Size (binutils-2.42.tar.bz2) = 38254526 bytes

View File

@ -0,0 +1 @@
GCC for bare metal RISC-V 64-bit ELF environment with newlib.

View File

@ -0,0 +1,70 @@
# $NetBSD: Makefile,v 1.1 2024/03/18 17:39:34 dogcow Exp $
DISTNAME= gcc-13.2.0
PKGNAME= cross-riscv64-none-elf-${DISTNAME}
CATEGORIES= cross
NEWLIBVER= 4.4.0.20231231
MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${PKGVERSION_NOREV}/}
EXTRACT_SUFX= .tar.xz
DISTFILES= ${DEFAULT_DISTFILES} \
newlib-${NEWLIBVER}.tar.gz
SITES.newlib-${NEWLIBVER}.tar.gz= https://www.sourceware.org/pub/newlib/
MAINTAINER= port-riscv@NetBSD.org
HOMEPAGE= # none
COMMENT= GCC for bare metal RISC-V 64-bit little-endian ELF
LICENSE= gnu-gpl-v2 AND gnu-gpl-v3 AND gnu-lgpl-v2 AND gnu-lgpl-v3
EXTRACT_USING= bsdtar
# Relocations result in a linker error.
MKPIE_SUPPORTED= no
# for http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33549
# use makeinfo from pkgsrc/devel/gtexinfo.
TOOL_DEPENDS+= gtexinfo>=5.1:../../devel/gtexinfo
_TOOLS_USE_PKGSRC.makeinfo= yes
DEPENDS+= cross-riscv64-none-elf-binutils-[0-9]*:../../cross/riscv64-none-elf-binutils
USE_LANGUAGES+= c c++
CHECK_PORTABILITY_SKIP+= contrib/*
CHECK_PORTABILITY_SKIP+= gcc/config/nvptx/gen-opt.sh
RISCV64ELF_PREFIX= ${PREFIX}/cross-riscv64-none-elf
OBJDIR= ../build
CONFIGURE_DIRS= ${OBJDIR}
CONFIGURE_SCRIPT= ${WRKSRC}/configure
CONFIG_SHELL= ${TOOLS_PATH.bash}
WRAPPER_SHELL= ${TOOLS_PATH.bash}
USE_TOOLS+= bash gmake gsed makeinfo perl
GNU_CONFIGURE= yes
GNU_CONFIGURE_STRICT= no # has sub-configures
CHECK_PORTABILITY_SKIP+= contrib/* # not needed for building
GNU_CONFIGURE_PREFIX= ${RISCV64ELF_PREFIX}
CONFIGURE_ARGS+= --target=riscv64-none-elf
CONFIGURE_ARGS+= --enable-languages=c,c++
CONFIGURE_ARGS+= --with-newlib
CONFIGURE_ARGS+= --disable-nls
CONFIGURE_ARGS+= --disable-libstdcxx-pch
CONFIGURE_ARGS+= --disable-gcov
INFO_FILES= yes
post-extract:
${LN} -s ${WRKDIR}/newlib-${NEWLIBVER}/newlib ${WRKSRC}/newlib
${LN} -s ${WRKDIR}/newlib-${NEWLIBVER}/libgloss ${WRKSRC}/libgloss
pre-configure:
${RUN} cd ${WRKSRC} && ${MKDIR} ${OBJDIR}
.include "../../devel/gmp/buildlink3.mk"
.include "../../math/mpfr/buildlink3.mk"
.include "../../math/mpcomplex/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
$NetBSD: distinfo,v 1.1 2024/03/18 17:39:35 dogcow Exp $
BLAKE2s (gcc-13.2.0.tar.xz) = 89847ac474d00cde32fbcae20154f8aedff9c66158faf95ad7a78cc9a190d4c4
SHA512 (gcc-13.2.0.tar.xz) = d99e4826a70db04504467e349e9fbaedaa5870766cda7c5cab50cdebedc4be755ebca5b789e1232a34a20be1a0b60097de9280efe47bdb71c73251e30b0862a2
Size (gcc-13.2.0.tar.xz) = 87858592 bytes
BLAKE2s (newlib-4.4.0.20231231.tar.gz) = 94a3dd6d4ad9465208f61a45490b23e002e281e0f0cb995033bd54fe07de0cca
SHA512 (newlib-4.4.0.20231231.tar.gz) = ea3baa0b7c9175aae024f0b7d272be092ef2c07483239a99329203e18a44bc23093d29e0ffcbe14bc591f610f0829eacd646cabb06d1c34aa23239cb1b814b46
Size (newlib-4.4.0.20231231.tar.gz) = 9022406 bytes
SHA1 (patch-gcc_configure) = 380bc31209ca1c933293f8a89eaf802545743c7e
SHA1 (patch-gcc_system.h) = 72a75ff773b9b5f3d2f16f4ec7d29e032aba5f53
SHA1 (patch-genrvv-type-indexer.cc) = 17fb89801c16172c678a5f1a2ebcd6dfad72577a
SHA1 (patch-libcc1_configure) = 0368733ddf79b109fcc7146b0baeb37ab31e634a
SHA1 (patch-libcc1_connection.cc) = 2acd56a6f62b29ed3f02eecb7bf103e4564a442c
SHA1 (patch-libiberty_Makefile.in) = 7ea2578b5b77cb4adcd4afe3d63739efc68a1540

View File

@ -0,0 +1,13 @@
$NetBSD: patch-gcc_configure,v 1.1 2024/03/18 17:39:35 dogcow Exp $
--- gcc/configure.orig 2022-08-19 08:09:52.736664469 +0000
+++ gcc/configure
@@ -6395,7 +6395,7 @@ _ACEOF
if test "$enable_largefile" != no; then
case "$host, $build" in
*-*-aix*,*|*,*-*-aix*)
- if test "$ac_cv_sizeof_ino_t" == "4" -a "$ac_cv_sizeof_dev_t" == 4; then
+ if test "$ac_cv_sizeof_ino_t" = "4" -a "$ac_cv_sizeof_dev_t" = 4; then
$as_echo "#define HOST_STAT_FOR_64BIT_INODES stat64x" >>confdefs.h

View File

@ -0,0 +1,14 @@
$NetBSD: patch-gcc_system.h,v 1.1 2024/03/18 17:39:35 dogcow Exp $
--- gcc/system.h.orig 2015-01-05 12:33:28.000000000 +0000
+++ gcc/system.h
@@ -44,6 +44,9 @@ along with GCC; see the file COPYING3.
#endif
#include <stdio.h>
+#ifdef __cplusplus
+# include <cstdio>
+#endif
/* Define a generic NULL if one hasn't already been defined. */
#ifndef NULL

View File

@ -0,0 +1,23 @@
$NetBSD: patch-genrvv-type-indexer.cc,v 1.1 2024/03/18 17:39:35 dogcow Exp $
Fixes: https://gitlab.com/buildroot.org/toolchains-builder/-/jobs/4202276589
diff --git a/gcc/config/riscv/genrvv-type-indexer.cc b/gcc/config/riscv/genrvv-type-indexer.cc
index e677b55290c..eebe382d1c3 100644
--- gcc/config/riscv/genrvv-type-indexer.cc.orig
+++ gcc/config/riscv/genrvv-type-indexer.cc
@@ -115,9 +115,9 @@ same_ratio_eew_type (unsigned sew, int lmul_log2, unsigned eew, bool unsigned_p,
if (sew == eew)
elmul_log2 = lmul_log2;
else if (sew > eew)
- elmul_log2 = lmul_log2 - std::log2 (sew / eew);
+ elmul_log2 = lmul_log2 - log2 (sew / eew);
else /* sew < eew */
- elmul_log2 = lmul_log2 + std::log2 (eew / sew);
+ elmul_log2 = lmul_log2 + log2 (eew / sew);
if (float_p)
return floattype (eew, elmul_log2);
--
2.39.3

View File

@ -0,0 +1,16 @@
$NetBSD: patch-libcc1_configure,v 1.1 2024/03/18 17:39:35 dogcow Exp $
Disable multi-os install dir for libcc1
--- libcc1/configure.orig 2014-11-21 16:49:17.000000000 +0000
+++ libcc1/configure
@@ -14366,9 +14366,6 @@ fi
libsuffix=
-if test "$GXX" = yes; then
- libsuffix=`$CXX -print-multi-os-directory`
-fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket libraries" >&5

View File

@ -0,0 +1,12 @@
$NetBSD: patch-libcc1_connection.cc,v 1.1 2024/03/18 17:39:35 dogcow Exp $
--- libcc1/connection.cc.orig 2014-11-13 10:22:22.000000000 +0000
+++ libcc1/connection.cc
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3.
#include <sys/types.h>
#include <string.h>
#include <errno.h>
+#include <sys/select.h>
#include "marshall.hh"
#include "connection.hh"
#include "rpc.hh"

View File

@ -0,0 +1,37 @@
$NetBSD: patch-libiberty_Makefile.in,v 1.1 2024/03/18 17:39:35 dogcow Exp $
--- libiberty/Makefile.in.orig 2014-12-24 16:22:51.000000000 +0000
+++ libiberty/Makefile.in
@@ -363,13 +363,12 @@ install-strip: install
# multilib-specific flags, it's overridden by FLAGS_TO_PASS from the
# default multilib, so we have to take CFLAGS into account as well,
# since it will be passed the multilib flags.
-MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory`
install_to_libdir: all
if test -n "${target_header_dir}"; then \
- ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
- $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \
- ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
- mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \
+ ${mkinstalldirs} $(DESTDIR)$(libdir); \
+ $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(TARGETLIB)n; \
+ ( cd $(DESTDIR)$(libdir) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
+ mv -f $(DESTDIR)$(libdir)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(TARGETLIB); \
case "${target_header_dir}" in \
/*) thd=${target_header_dir};; \
*) thd=${includedir}/${target_header_dir};; \
@@ -382,10 +381,10 @@ install_to_libdir: all
@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
install_to_tooldir: all
- ${mkinstalldirs} $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)
- $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n
- ( cd $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n; $(RANLIB) $(TARGETLIB)n )
- mv -f $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)
+ ${mkinstalldirs} $(DESTDIR)$(tooldir)/lib
+ $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(tooldir)/lib/$(TARGETLIB)n
+ ( cd $(DESTDIR)$(tooldir)/lib ; chmod 644 $(TARGETLIB)n; $(RANLIB) $(TARGETLIB)n )
+ mv -f $(DESTDIR)$(tooldir)/lib/$(TARGETLIB)n $(DESTDIR)$(tooldir)/lib/$(TARGETLIB)
@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
# required-list was used when building a shared bfd/opcodes/libiberty

View File

@ -1,4 +1,4 @@
$NetBSD: CHANGES-2024,v 1.1949 2024/03/18 15:48:23 ryoon Exp $
$NetBSD: CHANGES-2024,v 1.1950 2024/03/18 17:39:34 dogcow Exp $
Changes to the packages collection and infrastructure in 2024:
@ -3249,3 +3249,5 @@ Changes to the packages collection and infrastructure in 2024:
Updated audio/ardour to 8.2.0 [ryoon 2024-03-18]
Updated lang/openjdk8 to 1.8.402 [ryoon 2024-03-18]
Updated multimedia/libaom to 3.8.2 [ryoon 2024-03-18]
Added cross/riscv64-none-elf-binutils [dogcow 2024-03-18]
Added cross/riscv64-none-elf-gcc [dogcow 2024-03-18]