pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Add a gcc10 libatomic-only package for he@ to play with



Module Name:	pkgsrc-wip
Committed By:	Maya Rashish <maya%NetBSD.org@localhost>
Pushed By:	coypu
Date:		Wed May 20 14:24:32 2020 +0300
Changeset:	2d5373e27a6472f124cd7c6000978aa69e95edb1

Modified Files:
	Makefile
Added Files:
	gcc10-libatomic/DESCR
	gcc10-libatomic/Makefile
	gcc10-libatomic/PLIST
	gcc10-libatomic/buildlink3.mk
	gcc10-libatomic/distinfo
	gcc10-libatomic/patches/patch-contrib_download__prerequisites
	gcc10-libatomic/patches/patch-fixincludes_inclhack.def
	gcc10-libatomic/patches/patch-gcc_Makefile.in
	gcc10-libatomic/patches/patch-gcc_config_aarch64_aarch64-builtins.c
	gcc10-libatomic/patches/patch-gcc_configure
	gcc10-libatomic/patches/patch-gcc_ggc-common.c
	gcc10-libatomic/patches/patch-gcc_lto_lto.c
	gcc10-libatomic/patches/patch-gcc_targhooks.c
	gcc10-libatomic/patches/patch-libffi_configure
	gcc10-libatomic/patches/patch-libffi_testsuite_libffi.call_float2.c
	gcc10-libatomic/patches/patch-libgcc_crtstuff.c
	gcc10-libatomic/patches/patch-libgfortran_io_format.c
	gcc10-libatomic/patches/patch-libgfortran_io_io.h
	gcc10-libatomic/patches/patch-libgfortran_io_list__read.c
	gcc10-libatomic/patches/patch-libgfortran_io_read.c
	gcc10-libatomic/patches/patch-libgfortran_runtime_environ.c
	gcc10-libatomic/patches/patch-libquadmath_printf_quadmath-printf.c
	gcc10-libatomic/patches/patch-libquadmath_strtod_strtod__l.c
	gcc10-libatomic/patches/patch-libstdc++-v3_libsupc++_new__opa.cc
	gcc10-libatomic/version.mk

Log Message:
Add a gcc10 libatomic-only package for he@ to play with

XXX edit buildlink3, more cleanup

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=2d5373e27a6472f124cd7c6000978aa69e95edb1

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 Makefile                                           |  1 +
 gcc10-libatomic/DESCR                              |  2 +
 gcc10-libatomic/Makefile                           | 51 ++++++++++++++++++++++
 gcc10-libatomic/PLIST                              |  2 +
 gcc10-libatomic/buildlink3.mk                      | 24 ++++++++++
 gcc10-libatomic/distinfo                           | 30 +++++++++++++
 .../patches/patch-contrib_download__prerequisites  | 17 ++++++++
 .../patches/patch-fixincludes_inclhack.def         | 36 +++++++++++++++
 gcc10-libatomic/patches/patch-gcc_Makefile.in      | 15 +++++++
 .../patch-gcc_config_aarch64_aarch64-builtins.c    | 17 ++++++++
 gcc10-libatomic/patches/patch-gcc_configure        | 15 +++++++
 gcc10-libatomic/patches/patch-gcc_ggc-common.c     | 51 ++++++++++++++++++++++
 gcc10-libatomic/patches/patch-gcc_lto_lto.c        | 19 ++++++++
 gcc10-libatomic/patches/patch-gcc_targhooks.c      | 17 ++++++++
 gcc10-libatomic/patches/patch-libffi_configure     | 16 +++++++
 .../patch-libffi_testsuite_libffi.call_float2.c    | 15 +++++++
 gcc10-libatomic/patches/patch-libgcc_crtstuff.c    | 15 +++++++
 .../patches/patch-libgfortran_io_format.c          | 17 ++++++++
 gcc10-libatomic/patches/patch-libgfortran_io_io.h  | 18 ++++++++
 .../patches/patch-libgfortran_io_list__read.c      | 17 ++++++++
 .../patches/patch-libgfortran_io_read.c            | 44 +++++++++++++++++++
 .../patches/patch-libgfortran_runtime_environ.c    | 26 +++++++++++
 .../patch-libquadmath_printf_quadmath-printf.c     | 26 +++++++++++
 .../patches/patch-libquadmath_strtod_strtod__l.c   | 23 ++++++++++
 .../patch-libstdc++-v3_libsupc++_new__opa.cc       | 17 ++++++++
 gcc10-libatomic/version.mk                         |  2 +
 26 files changed, 533 insertions(+)

diffs:
diff --git a/Makefile b/Makefile
index 0e4b366da2..e1f1757a31 100644
--- a/Makefile
+++ b/Makefile
@@ -1030,6 +1030,7 @@ SUBDIR+=	gcc47
 SUBDIR+=	gcc47-libs
 SUBDIR+=	gcc7-contrib
 SUBDIR+=	gcc9snapshot
+SUBDIR+=	gcc10-libatomic
 SUBDIR+=	gconf-cleaner
 SUBDIR+=	gdal-docs
 SUBDIR+=	gdal-grass
diff --git a/gcc10-libatomic/DESCR b/gcc10-libatomic/DESCR
new file mode 100644
index 0000000000..902190a230
--- /dev/null
+++ b/gcc10-libatomic/DESCR
@@ -0,0 +1,2 @@
+The GNU Compiler Collection (GCC) includes front ends for C, C++, Objective-C,
+Fortran, and Go.
diff --git a/gcc10-libatomic/Makefile b/gcc10-libatomic/Makefile
new file mode 100644
index 0000000000..8765e6f0e2
--- /dev/null
+++ b/gcc10-libatomic/Makefile
@@ -0,0 +1,51 @@
+# $NetBSD: Makefile,v 1.2 2020/05/17 19:47:19 rillig Exp $
+
+GCC_PKGNAME=		gcc10
+.include		"version.mk"
+
+DISTNAME=	gcc-${GCC10_DIST_VERSION}
+PKGNAME=	${GCC_PKGNAME}-${GCC10_DIST_VERSION}
+PKGREVISION=	1
+## When bumping the PKGREVISION of this package the PKGREVISION of
+## lang/gcc10-libs needs to be bump to be at least 1 more than the
+## PKGREVISION of this package!
+CATEGORIES=	lang
+MASTER_SITES=	${MASTER_SITE_GNU:=gcc/gcc-${GCC10_DIST_VERSION}/}
+EXTRACT_SUFX=	.tar.xz
+
+MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	https://gcc.gnu.org/
+COMMENT=	The GNU Compiler Collection (GCC) - 10.0 Release Series
+LICENSE=	gnu-gpl-v2 AND gnu-gpl-v3 AND gnu-lgpl-v2 AND gnu-lgpl-v3
+
+DISTFILES=		${DEFAULT_DISTFILES}
+EXTRACT_ONLY=		${DEFAULT_DISTFILES}
+
+NOT_FOR_PLATFORM=	Interix-*-*
+
+USE_LANGUAGES=		c99 c++
+USE_TOOLS+=		gmake makeinfo sed:run tar:build
+
+GNU_CONFIGURE=		yes
+GNU_CONFIGURE_STRICT=	no
+## Build outside ${WRKSRC}
+OBJDIR=			../build
+CONFIGURE_DIRS=		${OBJDIR}
+CONFIGURE_SCRIPT=	../${DISTNAME}/libatomic/configure
+INFO_FILES=		yes
+
+UNLIMIT_RESOURCES+=	datasize
+UNLIMIT_RESOURCES+=	stacksize
+
+CHECK_PORTABILITY_SKIP+=	contrib/*
+
+.include "../../mk/bsd.prefs.mk"
+
+LANGS=			c
+
+pre-configure:
+	${RUN} cd ${WRKSRC} && ${MKDIR} ${OBJDIR}
+
+.include "../../mk/dlopen.buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/gcc10-libatomic/PLIST b/gcc10-libatomic/PLIST
new file mode 100644
index 0000000000..02d6fcd502
--- /dev/null
+++ b/gcc10-libatomic/PLIST
@@ -0,0 +1,2 @@
+@comment $NetBSD$
+lib/libatomic.la
diff --git a/gcc10-libatomic/buildlink3.mk b/gcc10-libatomic/buildlink3.mk
new file mode 100644
index 0000000000..01e4c8840c
--- /dev/null
+++ b/gcc10-libatomic/buildlink3.mk
@@ -0,0 +1,24 @@
+# $NetBSD: buildlink3.mk,v 1.1 2020/05/10 15:02:44 maya Exp $
+
+BUILDLINK_TREE+=	gcc10
+
+.if !defined(GCC10_BUILDLINK3_MK)
+GCC10_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.gcc10+=	gcc10>=${_GCC_REQD}
+BUILDLINK_ABI_DEPENDS.gcc10+=	gcc10>=10.0
+BUILDLINK_PKGSRCDIR.gcc10=	../../lang/gcc10
+BUILDLINK_DEPMETHOD.gcc10?=	build
+
+BUILDLINK_PASSTHRU_DIRS+=	${BUILDLINK_PREFIX.gcc10}/gcc10
+
+BUILDLINK_FILES.gcc10=		# empty
+BUILDLINK_AUTO_VARS.gcc10=	no
+
+pkgbase := gcc10
+.include "../../mk/pkg-build-options.mk"
+.include "../../mk/dlopen.buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
+.endif
+
+BUILDLINK_TREE+=	-gcc10
diff --git a/gcc10-libatomic/distinfo b/gcc10-libatomic/distinfo
new file mode 100644
index 0000000000..6cb0b31fe5
--- /dev/null
+++ b/gcc10-libatomic/distinfo
@@ -0,0 +1,30 @@
+$NetBSD: distinfo,v 1.3 2020/05/17 19:49:18 rillig Exp $
+
+SHA1 (gcc-10.1.0.tar.xz) = 1af8d963e4a74d05a8f2d0f795ea52d2b91f6c50
+RMD160 (gcc-10.1.0.tar.xz) = eb9c7a9c10fbe5b4ff84818b280248ab97d17769
+SHA512 (gcc-10.1.0.tar.xz) = 0cb2a74c793face751f42bc580960b00e2bfea785872a0a2155f1f1dbfaa248f9591b67f4322db0f096f8844aca9243bc02732bda106c3b6e43b02bb67eb3096
+Size (gcc-10.1.0.tar.xz) = 74591240 bytes
+SHA1 (isl-0.16.1.tar.bz2) = c5a2b201bf05229647e73203c0bf2d9679d4d21f
+RMD160 (isl-0.16.1.tar.bz2) = 5a99db3fe0d0a1f6bbac1ed4448f2403495c55b2
+SHA512 (isl-0.16.1.tar.bz2) = c188667a84dc5bdddb4ab7c35f89c91bf15a8171f4fcaf41301cf285fb7328846d9a367c096012fec4cc69d244f0bc9e95d84c09ec097394cd4093076f2a041b
+Size (isl-0.16.1.tar.bz2) = 1626446 bytes
+SHA1 (patch-contrib_download__prerequisites) = 9cdcde21ab174052911447d20762ddfd40aa8791
+SHA1 (patch-fixincludes_inclhack.def) = 7b00974d3f52a8364190a607f52a5d7e8a6db41a
+SHA1 (patch-gcc_Makefile.in) = c0f97c75ba1d37eae894141edd58bb36b734f651
+SHA1 (patch-gcc_config_aarch64_aarch64-builtins.c) = f4d8ab855d0755dfe533053cedde6940cb837ce0
+SHA1 (patch-gcc_configure) = 6a2d8eeeed2bf08c3c81291178e669dc91c913ce
+SHA1 (patch-gcc_ggc-common.c) = 3e325767922ab7d2079fdb9a3d6b6aa531a2fea5
+SHA1 (patch-gcc_lto_lto.c) = 7bd85ac8ade76a28c394f6fbe5d495f91824f79f
+SHA1 (patch-gcc_targhooks.c) = b28d8a9696d07bbfb00b7d8c55193ba99447ff1d
+SHA1 (patch-isl_configure) = 5523c76d95b229b3cd25461b4c2b7af24bf2534e
+SHA1 (patch-libffi_configure) = 22006b20d7f655e2455a7ad613d676703b6c1ccc
+SHA1 (patch-libffi_testsuite_libffi.call_float2.c) = 27b84a11378fb648dfaad0c70abedd77a0a1c1a8
+SHA1 (patch-libgcc_crtstuff.c) = a16d465039de00c195cf0694560140a9c38f3a25
+SHA1 (patch-libgfortran_io_format.c) = 9bbc5e4f6277bdec785b3690fd08259939a2aa1a
+SHA1 (patch-libgfortran_io_io.h) = d44676239a7f45e42054d24bd5224f43c20055c0
+SHA1 (patch-libgfortran_io_list__read.c) = 589cdb8dcd180b781ededc086e8775224fca5779
+SHA1 (patch-libgfortran_io_read.c) = cf21493396d07a5e8ad0dfb70a8d25a11482fc98
+SHA1 (patch-libgfortran_runtime_environ.c) = c7217704a00f4c0314bbc1838ac6fc966cc854d0
+SHA1 (patch-libquadmath_printf_quadmath-printf.c) = 78e09f1e6d61ee57cee83275093cf46b2335d204
+SHA1 (patch-libquadmath_strtod_strtod__l.c) = 6142c10d34174174cce7f06c37eab04dc431b2dc
+SHA1 (patch-libstdc++-v3_libsupc++_new__opa.cc) = 4183b00a5ee6e61524da4755c825a0c08fd01ed6
diff --git a/gcc10-libatomic/patches/patch-contrib_download__prerequisites b/gcc10-libatomic/patches/patch-contrib_download__prerequisites
new file mode 100644
index 0000000000..9f8a76a0d1
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-contrib_download__prerequisites
@@ -0,0 +1,17 @@
+$NetBSD: patch-contrib_download__prerequisites,v 1.1 2020/05/10 15:02:44 maya Exp $
+
+Non-portable test
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90142
+
+--- contrib/download_prerequisites.orig	2017-04-11 16:34:07.000000000 +0000
++++ contrib/download_prerequisites
+@@ -122,7 +122,7 @@ md5_check() {
+   md5_checksum_output=$(md5 -r "${file_to_check}")
+   # Grab the text before the first space
+   md5_checksum_detected="${md5_checksum_output%% *}"
+-  [ "${md5_checksum_expected}" == "${md5_checksum_detected}" ] \
++  [ "${md5_checksum_expected}" = "${md5_checksum_detected}" ] \
+     || die "Cannot verify integrity of possibly corrupted file ${file_to_check}"
+   echo "${file_to_check}: OK"
+ }
diff --git a/gcc10-libatomic/patches/patch-fixincludes_inclhack.def b/gcc10-libatomic/patches/patch-fixincludes_inclhack.def
new file mode 100644
index 0000000000..fff9437cfe
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-fixincludes_inclhack.def
@@ -0,0 +1,36 @@
+$NetBSD: patch-fixincludes_inclhack.def,v 1.1 2020/05/10 15:02:44 maya Exp $
+
+A workaround for Catalina SDK bug from
+https://github.com/Homebrew/homebrew-core/pull/44762
+
+--- fixincludes/inclhack.def.orig	2020-03-04 08:29:59.000000000 +0000
++++ fixincludes/inclhack.def
+@@ -1269,6 +1269,28 @@ fix = {
+ };
+ 
+ /*
++ *  macOS 10.15 <Availability.h> does not define __OSX_AVAILABLE_STARTING on
++ *  non-clang compilers.
++ */
++fix = {
++    hackname  = darwin_availability;
++    mach      = "*-*-darwin*";
++    files     = Availability.h;
++    select    = "#endif /\\* __OSX_AVAILABLE_STARTING \\*/";
++    c_fix     = format;
++    c_fix_arg = <<- _EOFix_
++	#endif /* __OSX_AVAILABLE_STARTING */
++	#ifndef __OSX_AVAILABLE_STARTING
++	  #define __OSX_AVAILABLE_STARTING(_osx, _ios)
++	  #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep)
++	  #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg)
++	#endif
++	_EOFix_;
++
++    test_text = "#endif /* __OSX_AVAILABLE_STARTING */";
++};
++
++/*
+  *  macOS 10.12 <AvailabilityInternal.h> uses __attribute__((availability))
+  *  unconditionally.
+  */
diff --git a/gcc10-libatomic/patches/patch-gcc_Makefile.in b/gcc10-libatomic/patches/patch-gcc_Makefile.in
new file mode 100644
index 0000000000..cd32c67b2f
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-gcc_Makefile.in
@@ -0,0 +1,15 @@
+$NetBSD: patch-gcc_Makefile.in,v 1.1 2020/05/10 15:02:44 maya Exp $
+
+Add gcc libdir to a programs rpath so that _this gcc's_ support libraries
+are found.
+
+--- gcc/Makefile.in.orig	2017-04-18 18:10:27.000000000 +0000
++++ gcc/Makefile.in
+@@ -2112,6 +2112,7 @@ prefix.o: $(BASEVER)
+ # Language-independent files.
+ 
+ DRIVER_DEFINES = \
++  -DLINK_LIBGCC_SPEC="\"%D $(LINKER_RPATH_FLAG) $(prefix)//lib/%M $(LINKER_RPATH_FLAG) $(libdir)/%M \"" \
+   -DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \
+   -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \
+   -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc/\" \
diff --git a/gcc10-libatomic/patches/patch-gcc_config_aarch64_aarch64-builtins.c b/gcc10-libatomic/patches/patch-gcc_config_aarch64_aarch64-builtins.c
new file mode 100644
index 0000000000..3580712a4b
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-gcc_config_aarch64_aarch64-builtins.c
@@ -0,0 +1,17 @@
+$NetBSD: patch-gcc_config_aarch64_aarch64-builtins.c,v 1.1 2020/05/10 15:02:44 maya Exp $
+
+initialise subtarget builtins so cabs*() are renamed.
+
+--- gcc/config/aarch64/aarch64-builtins.c.orig	2017-01-20 21:03:41.000000000 +0000
++++ gcc/config/aarch64/aarch64-builtins.c	2018-11-10 00:44:41.905576216 +0000
+@@ -1303,6 +1303,10 @@ aarch64_general_init_builtins (void)
+ 
+   if (TARGET_MEMTAG)
+     aarch64_init_memtag_builtins ();
++
++#ifdef SUBTARGET_INIT_BUILTINS
++  SUBTARGET_INIT_BUILTINS;
++#endif
+ }
+ 
+ /* Implement TARGET_BUILTIN_DECL for the AARCH64_BUILTIN_GENERAL group.  */
diff --git a/gcc10-libatomic/patches/patch-gcc_configure b/gcc10-libatomic/patches/patch-gcc_configure
new file mode 100644
index 0000000000..95acb48aa1
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-gcc_configure
@@ -0,0 +1,15 @@
+$NetBSD: patch-gcc_configure,v 1.1 2020/05/10 15:02:44 maya Exp $
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90143
+
+--- gcc/configure.orig	2015-09-30 23:06:11.000000000 +0000
++++ gcc/configure
+@@ -28321,7 +28321,7 @@ case "$target" in
+       gcc_cv_target_dl_iterate_phdr=no
+     fi
+     ;;
+-  *-*-dragonfly* | *-*-freebsd*)
++  *-*-dragonfly* | *-*-freebsd* | *-*-netbsd* )
+     if grep dl_iterate_phdr $target_header_dir/sys/link_elf.h > /dev/null 2>&1; then
+       gcc_cv_target_dl_iterate_phdr=yes
+     else
diff --git a/gcc10-libatomic/patches/patch-gcc_ggc-common.c b/gcc10-libatomic/patches/patch-gcc_ggc-common.c
new file mode 100644
index 0000000000..8dddadeefa
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-gcc_ggc-common.c
@@ -0,0 +1,51 @@
+$NetBSD: patch-gcc_ggc-common.c,v 1.1 2020/05/10 15:02:44 maya Exp $
+
+--- gcc/ggc-common.c.orig	2014-12-10 03:45:40.000000000 +0000
++++ gcc/ggc-common.c
+@@ -591,6 +591,8 @@ gt_pch_restore (FILE *f)
+   size_t i;
+   struct mmap_info mmi;
+   int result;
++  struct line_maps * old_line_table = line_table;
++  location_t old_input_loc = input_location;
+ 
+   /* Delete any deletable objects.  This makes ggc_pch_read much
+      faster, as it can be sure that no GCable objects remain other
+@@ -603,7 +605,7 @@ gt_pch_restore (FILE *f)
+   for (rt = gt_pch_scalar_rtab; *rt; rt++)
+     for (rti = *rt; rti->base != NULL; rti++)
+       if (fread (rti->base, rti->stride, 1, f) != 1)
+-	fatal_error (input_location, "cannot read PCH file: %m");
++	{ line_table = old_line_table; input_location = old_input_loc; fatal_error (input_location, "cannot read PCH file: %m"); }
+ 
+   /* Read in all the global pointers, in 6 easy loops.  */
+   for (rt = gt_ggc_rtab; *rt; rt++)
+@@ -611,23 +613,23 @@ gt_pch_restore (FILE *f)
+       for (i = 0; i < rti->nelt; i++)
+ 	if (fread ((char *)rti->base + rti->stride * i,
+ 		   sizeof (void *), 1, f) != 1)
+-	  fatal_error (input_location, "cannot read PCH file: %m");
++	  { line_table = old_line_table; input_location = old_input_loc; fatal_error (input_location, "cannot read PCH file: %m"); }
+ 
+   if (fread (&mmi, sizeof (mmi), 1, f) != 1)
+-    fatal_error (input_location, "cannot read PCH file: %m");
++    { line_table = old_line_table; input_location = old_input_loc; fatal_error (input_location, "cannot read PCH file: %m"); }
+ 
+   result = host_hooks.gt_pch_use_address (mmi.preferred_base, mmi.size,
+ 					  fileno (f), mmi.offset);
+   if (result < 0)
+-    fatal_error (input_location, "had to relocate PCH");
++    { line_table = old_line_table; input_location = old_input_loc; fatal_error (input_location, "had to relocate PCH"); }
+   if (result == 0)
+     {
+       if (fseek (f, mmi.offset, SEEK_SET) != 0
+ 	  || fread (mmi.preferred_base, mmi.size, 1, f) != 1)
+-	fatal_error (input_location, "cannot read PCH file: %m");
++	{ line_table = old_line_table; input_location = old_input_loc; fatal_error (input_location, "cannot read PCH file: %m"); }
+     }
+   else if (fseek (f, mmi.offset + mmi.size, SEEK_SET) != 0)
+-    fatal_error (input_location, "cannot read PCH file: %m");
++    { line_table = old_line_table; input_location = old_input_loc; fatal_error (input_location, "cannot read PCH file: %m"); }
+ 
+   ggc_pch_read (f, mmi.preferred_base);
+ 
diff --git a/gcc10-libatomic/patches/patch-gcc_lto_lto.c b/gcc10-libatomic/patches/patch-gcc_lto_lto.c
new file mode 100644
index 0000000000..9bef18044a
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-gcc_lto_lto.c
@@ -0,0 +1,19 @@
+$NetBSD: patch-gcc_lto_lto.c,v 1.1 2020/05/10 15:02:44 maya Exp $
+
+Better fallback for netbsd<8 lacking WALLSIG.
+
+--- gcc/lto/lto.c.orig	2018-01-03 21:42:12.000000000 +0000
++++ gcc/lto/lto.c
+@@ -2321,7 +2321,11 @@ wait_for_child ()
+   do
+     {
+ #ifndef WCONTINUED
+-#define WCONTINUED 0
++#  ifdef WALLSIG
++#    define WCONTINUED WALLSIG
++#  else
++#    define WCONTINUED 0
++#  endif
+ #endif
+       int w = waitpid (0, &status, WUNTRACED | WCONTINUED);
+       if (w == -1)
diff --git a/gcc10-libatomic/patches/patch-gcc_targhooks.c b/gcc10-libatomic/patches/patch-gcc_targhooks.c
new file mode 100644
index 0000000000..1b93af0599
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-gcc_targhooks.c
@@ -0,0 +1,17 @@
+$NetBSD: patch-gcc_targhooks.c,v 1.1 2020/05/10 15:02:44 maya Exp $
+
+PR pkg/53436
+netbsd can't handle hidden reference to stack_chk_fail_local.
+(note: this code is only happening if targeting i386)
+
+--- gcc/targhooks.c.orig	2018-01-13 18:00:59.000000000 +0000
++++ gcc/targhooks.c
+@@ -919,7 +919,7 @@ default_external_stack_protect_fail (voi
+ tree
+ default_hidden_stack_protect_fail (void)
+ {
+-#ifndef HAVE_GAS_HIDDEN
++#if !defined(HAVE_GAS_HIDDEN) || defined(__NetBSD__) || defined(__sun)
+   return default_external_stack_protect_fail ();
+ #else
+   tree t = stack_chk_fail_decl;
diff --git a/gcc10-libatomic/patches/patch-libffi_configure b/gcc10-libatomic/patches/patch-libffi_configure
new file mode 100644
index 0000000000..28e1d2b649
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-libffi_configure
@@ -0,0 +1,16 @@
+$NetBSD: patch-libffi_configure,v 1.1 2020/05/10 15:02:44 maya Exp $
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90146
+https://github.com/libffi/libffi/issues/485
+
+--- libffi/configure.orig	2013-06-01 17:03:49.000000000 +0000
++++ libffi/configure
+@@ -12689,7 +12689,7 @@ case "$target" in
+ $as_echo "#define FFI_EXEC_TRAMPOLINE_TABLE 1" >>confdefs.h
+ 
+      ;;
+-     *-apple-darwin1* | *-*-freebsd* | *-*-kfreebsd* | *-*-openbsd* | *-pc-solaris*)
++     *-apple-darwin1* | *-*-freebsd* | *-*-kfreebsd* | *-*-netbsd* | *-*-openbsd* | *-pc-solaris*)
+ 
+ $as_echo "#define FFI_MMAP_EXEC_WRIT 1" >>confdefs.h
+ 
diff --git a/gcc10-libatomic/patches/patch-libffi_testsuite_libffi.call_float2.c b/gcc10-libatomic/patches/patch-libffi_testsuite_libffi.call_float2.c
new file mode 100644
index 0000000000..42b011cd6e
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-libffi_testsuite_libffi.call_float2.c
@@ -0,0 +1,15 @@
+$NetBSD: patch-libffi_testsuite_libffi.call_float2.c,v 1.1 2020/05/10 15:02:44 maya Exp $
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90146
+
+--- libffi/testsuite/libffi.call/float2.c.orig	2013-06-01 17:08:18.000000000 +0000
++++ libffi/testsuite/libffi.call/float2.c
+@@ -45,7 +45,7 @@ int main (void)
+   /* This is ifdef'd out for now. long double support under SunOS/gcc
+      is pretty much non-existent.  You'll get the odd bus error in library
+      routines like printf().  */
+-  printf ("%Lf, %Lf, %Lf, %Lf\n", ld, ldblit(f), ld - ldblit(f), LDBL_EPSILON);
++  printf ("%Lf, %Lf, %Lf, %Lf\n", (long double)ld, (long double)ldblit(f), (long double)(ld - ldblit(f)), (long double)LDBL_EPSILON);
+ #endif
+ 
+   /* These are not always the same!! Check for a reasonable delta */
diff --git a/gcc10-libatomic/patches/patch-libgcc_crtstuff.c b/gcc10-libatomic/patches/patch-libgcc_crtstuff.c
new file mode 100644
index 0000000000..e7f1249f21
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-libgcc_crtstuff.c
@@ -0,0 +1,15 @@
+$NetBSD: patch-libgcc_crtstuff.c,v 1.1 2020/05/10 15:02:44 maya Exp $
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90147
+
+--- libgcc/crtstuff.c.orig	2017-01-01 12:07:43.000000000 +0000
++++ libgcc/crtstuff.c
+@@ -81,7 +81,7 @@ call_ ## FUNC (void)					\
+ #endif
+ 
+ #if defined(TARGET_DL_ITERATE_PHDR) && \
+-   (defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__))
++   (defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__))
+ #define BSD_DL_ITERATE_PHDR_AVAILABLE
+ #endif
+  
diff --git a/gcc10-libatomic/patches/patch-libgfortran_io_format.c b/gcc10-libatomic/patches/patch-libgfortran_io_format.c
new file mode 100644
index 0000000000..19ba74633f
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-libgfortran_io_format.c
@@ -0,0 +1,17 @@
+$NetBSD: patch-libgfortran_io_format.c,v 1.1 2020/05/17 19:47:19 rillig Exp $
+
+Fix -Werror=char-subscripts.
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95177
+
+--- libgfortran/io/format.c.orig	2020-05-07 10:50:02.000000000 +0000
++++ libgfortran/io/format.c
+@@ -193,7 +193,7 @@ next_char (format_data *fmt, int literal
+ 	return -1;
+ 
+       fmt->format_string_len--;
+-      c = toupper (*fmt->format_string++);
++      c = toupper ((unsigned char) *fmt->format_string++);
+       fmt->error_element = c;
+     }
+   while ((c == ' ' || c == '\t') && !literal);
diff --git a/gcc10-libatomic/patches/patch-libgfortran_io_io.h b/gcc10-libatomic/patches/patch-libgfortran_io_io.h
new file mode 100644
index 0000000000..caaa4e5dbb
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-libgfortran_io_io.h
@@ -0,0 +1,18 @@
+$NetBSD: patch-libgfortran_io_io.h,v 1.1 2020/05/10 15:02:44 maya Exp $
+
+Don't declare old_locale* an internal_proto to avoid linking problems
+
+--- libgfortran/io/io.h.orig	2018-01-07 10:17:52.000000000 +0000
++++ libgfortran/io/io.h
+@@ -57,11 +57,8 @@ extern locale_t c_locale;
+ internal_proto(c_locale);
+ #else
+ extern char* old_locale;
+-internal_proto(old_locale);
+ extern int old_locale_ctr;
+-internal_proto(old_locale_ctr);
+ extern __gthread_mutex_t old_locale_lock;
+-internal_proto(old_locale_lock);
+ #endif
+ 
+ 
diff --git a/gcc10-libatomic/patches/patch-libgfortran_io_list__read.c b/gcc10-libatomic/patches/patch-libgfortran_io_list__read.c
new file mode 100644
index 0000000000..2f8c73c770
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-libgfortran_io_list__read.c
@@ -0,0 +1,17 @@
+$NetBSD: patch-libgfortran_io_list__read.c,v 1.1 2020/05/17 19:47:19 rillig Exp $
+
+Fix -Werror=char-subscripts.
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95177
+
+--- libgfortran/io/list_read.c.orig	2020-05-07 10:50:02.000000000 +0000
++++ libgfortran/io/list_read.c
+@@ -2757,7 +2757,7 @@ nml_match_name (st_parameter_dt *dtp, co
+   for (i = 0; i < len; i++)
+     {
+       c = next_char (dtp);
+-      if (c == EOF || (tolower (c) != tolower (name[i])))
++      if (c == EOF || (tolower (c) != tolower ((unsigned char) name[i])))
+ 	{
+ 	  dtp->u.p.nml_read_error = 1;
+ 	  break;
diff --git a/gcc10-libatomic/patches/patch-libgfortran_io_read.c b/gcc10-libatomic/patches/patch-libgfortran_io_read.c
new file mode 100644
index 0000000000..00204accb3
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-libgfortran_io_read.c
@@ -0,0 +1,44 @@
+$NetBSD: patch-libgfortran_io_read.c,v 1.1 2020/05/17 19:47:20 rillig Exp $
+
+Fix -Werror=char-subscripts.
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95177
+
+--- libgfortran/io/read.c.orig	2020-05-07 10:50:02.000000000 +0000
++++ libgfortran/io/read.c
+@@ -959,7 +959,7 @@ read_f (st_parameter_dt *dtp, const fnod
+ 	 between "NaN" and the optional perenthesis is not permitted.  */
+       while (w > 0)
+ 	{
+-	  *out = tolower (*p);
++	  *out = tolower ((unsigned char) *p);
+ 	  switch (*p)
+ 	    {
+ 	    case ' ':
+@@ -981,7 +981,7 @@ read_f (st_parameter_dt *dtp, const fnod
+ 		goto bad_float;
+ 	      break;
+ 	    default:
+-	      if (!isalnum (*out))
++	      if (!isalnum ((unsigned char) *out))
+ 		goto bad_float;
+ 	    }
+ 	  --w;
+@@ -1109,7 +1109,7 @@ exponent:
+ 
+   if (dtp->u.p.blank_status == BLANK_UNSPECIFIED)
+     {
+-      while (w > 0 && isdigit (*p))
++      while (w > 0 && isdigit ((unsigned char) *p))
+ 	{
+ 	  exponent *= 10;
+ 	  exponent += *p - '0';
+@@ -1137,7 +1137,7 @@ exponent:
+ 	      else
+ 		assert (dtp->u.p.blank_status == BLANK_NULL);
+ 	    }
+-	  else if (!isdigit (*p))
++	  else if (!isdigit ((unsigned char) *p))
+ 	    goto bad_float;
+ 	  else
+ 	    {
diff --git a/gcc10-libatomic/patches/patch-libgfortran_runtime_environ.c b/gcc10-libatomic/patches/patch-libgfortran_runtime_environ.c
new file mode 100644
index 0000000000..3133da4530
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-libgfortran_runtime_environ.c
@@ -0,0 +1,26 @@
+$NetBSD: patch-libgfortran_runtime_environ.c,v 1.1 2020/05/17 19:47:20 rillig Exp $
+
+Fix -Werror=char-subscripts.
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95177
+
+--- libgfortran/runtime/environ.c.orig	2020-05-07 10:50:02.000000000 +0000
++++ libgfortran/runtime/environ.c
+@@ -91,7 +91,7 @@ init_integer (variable * v)
+     return;
+ 
+   for (q = p; *q; q++)
+-    if (!isdigit (*q) && (p != q || *q != '-'))
++    if (!isdigit ((unsigned char) *q) && (p != q || *q != '-'))
+       return;
+ 
+   *v->var = atoi (p);
+@@ -344,7 +344,7 @@ static int
+ match_integer (void)
+ {
+   unit_num = 0;
+-  while (isdigit (*p))
++  while (isdigit ((unsigned char) *p))
+     unit_num = unit_num * 10 + (*p++ - '0');
+   return INTEGER;
+ }
diff --git a/gcc10-libatomic/patches/patch-libquadmath_printf_quadmath-printf.c b/gcc10-libatomic/patches/patch-libquadmath_printf_quadmath-printf.c
new file mode 100644
index 0000000000..f29a224185
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-libquadmath_printf_quadmath-printf.c
@@ -0,0 +1,26 @@
+$NetBSD: patch-libquadmath_printf_quadmath-printf.c,v 1.1 2020/05/17 19:47:20 rillig Exp $
+
+Fix -Werror=char-subscripts.
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95178
+
+--- libquadmath/printf/quadmath-printf.c.orig	2020-05-07 10:50:02.000000000 +0000
++++ libquadmath/printf/quadmath-printf.c
+@@ -189,7 +189,7 @@ quadmath_snprintf (char *str, size_t siz
+       ++format;
+       info.width = va_arg (ap, int);
+     }
+-  else if (isdigit (*format))
++  else if (isdigit ((unsigned char) *format))
+     /* Constant width specification.  */
+     info.width = read_int (&format);
+ 
+@@ -206,7 +206,7 @@ quadmath_snprintf (char *str, size_t siz
+ 
+ 	  info.prec = va_arg (ap, int);
+ 	}
+-      else if (isdigit (*format))
++      else if (isdigit ((unsigned char) *format))
+ 	info.prec = read_int (&format);
+       else
+ 	/* "%.?" is treated like "%.0?".  */
diff --git a/gcc10-libatomic/patches/patch-libquadmath_strtod_strtod__l.c b/gcc10-libatomic/patches/patch-libquadmath_strtod_strtod__l.c
new file mode 100644
index 0000000000..d7ce1be4f7
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-libquadmath_strtod_strtod__l.c
@@ -0,0 +1,23 @@
+$NetBSD: patch-libquadmath_strtod_strtod__l.c,v 1.1 2020/05/17 19:47:20 rillig Exp $
+
+Fix -Werror=char-subscripts.
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95178
+
+--- libquadmath/strtod/strtod_l.c.orig	2020-05-07 10:50:02.000000000 +0000
++++ libquadmath/strtod/strtod_l.c
+@@ -57,10 +57,10 @@
+ # define STRING_TYPE char
+ # define CHAR_TYPE char
+ # define L_(Ch) Ch
+-# define ISSPACE(Ch) isspace (Ch)
+-# define ISDIGIT(Ch) isdigit (Ch)
+-# define ISXDIGIT(Ch) isxdigit (Ch)
+-# define TOLOWER(Ch) tolower (Ch)
++# define ISSPACE(Ch) isspace ((unsigned char) Ch)
++# define ISDIGIT(Ch) isdigit ((unsigned char) Ch)
++# define ISXDIGIT(Ch) isxdigit ((unsigned char) Ch)
++# define TOLOWER(Ch) tolower ((unsigned char) Ch)
+ # define TOLOWER_C(Ch) \
+   ({__typeof(Ch) __tlc = (Ch); \
+     (__tlc >= 'A' && __tlc <= 'Z') ? __tlc - 'A' + 'a' : __tlc; })
diff --git a/gcc10-libatomic/patches/patch-libstdc++-v3_libsupc++_new__opa.cc b/gcc10-libatomic/patches/patch-libstdc++-v3_libsupc++_new__opa.cc
new file mode 100644
index 0000000000..b9a6111a86
--- /dev/null
+++ b/gcc10-libatomic/patches/patch-libstdc++-v3_libsupc++_new__opa.cc
@@ -0,0 +1,17 @@
+$NetBSD: patch-libstdc++-v3_libsupc++_new__opa.cc,v 1.1 2020/05/10 15:02:44 maya Exp $
+
+Ensure we can find SunOS std::aligned_alloc if using it.
+
+--- libstdc++-v3/libsupc++/new_opa.cc.orig	2020-03-04 08:30:03.000000000 +0000
++++ libstdc++-v3/libsupc++/new_opa.cc
+@@ -57,6 +57,10 @@ extern "C"
+ }
+ #endif
+ 
++#if defined(__sun) && _GLIBCXX_HAVE_ALIGNED_ALLOC
++using std::aligned_alloc;
++#endif
++
+ namespace __gnu_cxx {
+ #if _GLIBCXX_HAVE_ALIGNED_ALLOC
+ using ::aligned_alloc;
diff --git a/gcc10-libatomic/version.mk b/gcc10-libatomic/version.mk
new file mode 100644
index 0000000000..427a60e8d8
--- /dev/null
+++ b/gcc10-libatomic/version.mk
@@ -0,0 +1,2 @@
+# $NetBSD: version.mk,v 1.1 2020/05/10 15:02:44 maya Exp $
+GCC10_DIST_VERSION:=	10.1.0


Home | Main Index | Thread Index | Old Index