svn commit: r532950 - in head/lang/gcc9: . files
Piotr Kubaj
pkubaj at FreeBSD.org
Sat Apr 25 12:26:35 UTC 2020
Author: pkubaj
Date: Sat Apr 25 12:26:34 2020
New Revision: 532950
URL: https://svnweb.freebsd.org/changeset/ports/532950
Log:
lang/gcc9: build with base GCC on powerpc64 elfv1
Instead of using lang/gcc8 for bootstrapping gcc9 on powerpc64 elfv1, use directly base gcc.
Necessary changes:
- CFLAGS_FOR_TARGET="-O0" CXXFLAGS_FOR_TARGET="-O0" BOOT_CFLAGS="-O0" in CONFIGURE_ENV and MAKE_ENV. Otherwise bootstrapped compiler fails later in the build with segfault.
- CRTSTUFF_T_CFLAGS has changed optimizations to -O0, instead of -O2. -O2 worked in gcc8, because there was no -fno-asynchronous-unwind-tables flag added to CRTSTUFF_T_CFLAGS. Since this works when building with clang on powerpc64 elfv2, this patch is added to EXTRA_PATCHES, only on powerpc64 elfv1,
- BOOT_CFLAGS has added ? before =. This is to allow overriding BOOT_CFLAGS in CONFIGURE_ENV and MAKE_ENV.
- A patch by Gustavo Romero to gcc/dumpfile.c is necessary to allow compiling with base GCC, otherwise base GCC hits ICE. Incidentally, this patch alone also fixes build for powerpc (32 bits) with base GCC.
Bump PORTREVISION for dependency change.
PR: 245511, 242506
Approved by: gerald (maintainer timeout)
Added:
head/lang/gcc9/files/extra-patch-libgcc_config_rs6000_t-crtstuff (contents, props changed)
head/lang/gcc9/files/patch-Makefile.in (contents, props changed)
head/lang/gcc9/files/patch-gcc_dumpfile.c (contents, props changed)
Modified:
head/lang/gcc9/Makefile
Modified: head/lang/gcc9/Makefile
==============================================================================
--- head/lang/gcc9/Makefile Sat Apr 25 12:26:07 2020 (r532949)
+++ head/lang/gcc9/Makefile Sat Apr 25 12:26:34 2020 (r532950)
@@ -3,6 +3,7 @@
PORTNAME= gcc
PORTVERSION= 9.3.0
+PORTREVISION= 1
CATEGORIES= lang
MASTER_SITES= GCC
PKGNAMESUFFIX= ${SUFFIX}
@@ -66,7 +67,9 @@ CONFIGURE_ENV+= UNAME_m="powerpc64"
. if defined(PPC_ABI) && ${PPC_ABI} == ELFv2
CONFIGURE_ARGS+= --with-abi=elfv2
. else
-USE_GCC= 8
+CONFIGURE_ENV+= CFLAGS_FOR_TARGET="-O0" CXXFLAGS_FOR_TARGET="-O0" BOOT_CFLAGS="-O0"
+MAKE_ENV+= CFLAGS_FOR_TARGET="-O0" CXXFLAGS_FOR_TARGET="-O0" BOOT_CFLAGS="-O0"
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-libgcc_config_rs6000_t-crtstuff
. endif
.endif
Added: head/lang/gcc9/files/extra-patch-libgcc_config_rs6000_t-crtstuff
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/lang/gcc9/files/extra-patch-libgcc_config_rs6000_t-crtstuff Sat Apr 25 12:26:34 2020 (r532950)
@@ -0,0 +1,8 @@
+--- libgcc/config/rs6000/t-crtstuff.orig 2020-04-07 15:17:50 UTC
++++ libgcc/config/rs6000/t-crtstuff
+@@ -3,4 +3,4 @@
+ # Do not build crtend.o with -Os as that can result in references to
+ # out-of-line register save/restore functions, which may be unresolved
+ # as crtend.o is linked after libgcc.a. See PR45053.
+-CRTSTUFF_T_CFLAGS = -msdata=none -O2 -fno-asynchronous-unwind-tables
++CRTSTUFF_T_CFLAGS = -msdata=none -O0 -fno-asynchronous-unwind-tables
Added: head/lang/gcc9/files/patch-Makefile.in
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/lang/gcc9/files/patch-Makefile.in Sat Apr 25 12:26:34 2020 (r532950)
@@ -0,0 +1,11 @@
+--- Makefile.in.orig 2020-04-08 13:04:40 UTC
++++ Makefile.in
+@@ -372,7 +372,7 @@ BUILD_PREFIX_1 = @BUILD_PREFIX_1@
+
+ # Flags to pass to stage2 and later makes. They are defined
+ # here so that they can be overridden by Makefile fragments.
+-BOOT_CFLAGS= -g -O2
++BOOT_CFLAGS?= -g -O2
+ BOOT_LDFLAGS=
+ BOOT_ADAFLAGS= -gnatpg
+
Added: head/lang/gcc9/files/patch-gcc_dumpfile.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/lang/gcc9/files/patch-gcc_dumpfile.c Sat Apr 25 12:26:34 2020 (r532950)
@@ -0,0 +1,11 @@
+--- gcc/dumpfile.c.orig 2020-04-07 14:09:14 UTC
++++ gcc/dumpfile.c
+@@ -2055,7 +2055,7 @@ temp_dump_context::temp_dump_context (bool forcibly_en
+ bool forcibly_enable_dumping,
+ dump_flags_t test_pp_flags)
+ : m_context (),
+- m_saved (&dump_context ().get ())
++ m_saved(&dump_context::get())
+ {
+ dump_context::s_current = &m_context;
+ if (forcibly_enable_optinfo)
More information about the svn-ports-head
mailing list