GCC8 fails to compile on SPARC64. The port fails with the compile error messages (truncated for brevity) included below. Errors from the build (i.e. cd /usr/ports/lang/gcc8 && make) ---> CUT HERE <--- Comparing stages 2 and 3 warning: gcc/cc1obj-checksum.o differs Bootstrap comparison failure! gcc/objc/objc-next-runtime-abi-01.o differs sparc64-portbld-freebsd12.0/libgomp/loop.o differs sparc64-portbld-freebsd12.0/libgcc/_moddi3_s.o differs gmake[7]: *** [Makefile:22711: compare] Error 1 gmake[7]: Leaving directory '/usr/ports/lang/gcc8/work/.build' gmake[6]: *** [Makefile:22691: stage3-bubble] Error 2 gmake[6]: Leaving directory '/usr/ports/lang/gcc8/work/.build' gmake[5]: *** [Makefile:22765: bootstrap-lean] Error 2 gmake[5]: Leaving directory '/usr/ports/lang/gcc8/work/.build' ===> Compilation failed unexpectedly. ---> END CUT <--- Summary: It would *appear* as though that GCC is comparing the output from the stage2 and stage3 compiles, but stage 3 is being built with debug info being attached. This conclusion is based on examination of some of the files in question from the error above. ---> CUT HERE <--- hercules : Thu Mar 28 09:07:26 AEDT 2019 : /tmp/mesoft-base -> 982# cat /tmp/d /cc1obj-checksum.o /objc-next-runtime-abi-01.o /loop.o /_moddi3_s.o hercules : Thu Mar 28 09:07:40 AEDT 2019 : /tmp/mesoft-base -> 983# find /usr/ports/lang/gcc8/work -type f -print | fgrep -if /tmp/d | xargs ls -ld -rw-r--r-- 1 root wheel 992 Mar 28 06:25 /usr/ports/lang/gcc8/work/.build/stage2-gcc/cc1obj-checksum.o -rw-r--r-- 1 root wheel 82816 Mar 28 06:11 /usr/ports/lang/gcc8/work/.build/stage2-gcc/objc/objc-next-runtime-abi-01.o -rw-r--r-- 1 root wheel 23640 Mar 28 06:26 /usr/ports/lang/gcc8/work/.build/stage2-sparc64-portbld-freebsd12.0/libgcc/_moddi3_s.o -rw-r--r-- 1 root wheel 103216 Mar 28 06:28 /usr/ports/lang/gcc8/work/.build/stage2-sparc64-portbld-freebsd12.0/libgomp/.libs/loop.o -rw-r--r-- 1 root wheel 102864 Mar 28 06:28 /usr/ports/lang/gcc8/work/.build/stage2-sparc64-portbld-freebsd12.0/libgomp/loop.o -rw-r--r-- 1 root wheel 24720 Mar 28 08:04 /usr/ports/lang/gcc8/work/.build/stage3-gcc/cc1obj-checksum.o -rw-r--r-- 1 root wheel 1372048 Mar 28 08:00 /usr/ports/lang/gcc8/work/.build/stage3-gcc/objc/objc-next-runtime-abi-01.o -rw-r--r-- 1 root wheel 23672 Mar 28 08:09 /usr/ports/lang/gcc8/work/.build/stage3-sparc64-portbld-freebsd12.0/libgcc/_moddi3_s.o -rw-r--r-- 1 root wheel 103216 Mar 28 08:10 /usr/ports/lang/gcc8/work/.build/stage3-sparc64-portbld-freebsd12.0/libgomp/.libs/loop.o -rw-r--r-- 1 root wheel 102864 Mar 28 08:10 /usr/ports/lang/gcc8/work/.build/stage3-sparc64-portbld-freebsd12.0/libgomp/loop.o hercules : Thu Mar 28 09:08:36 AEDT 2019 : /tmp/mesoft-base -> 984# file /usr/ports/lang/gcc8/work/.build/stage2-gcc/cc1obj-checksum.o /usr/ports/lang/gcc8/work/.build/stage3-gcc/cc1obj-checksum.o /usr/ports/lang/gcc8/work/.build/stage2-gcc/cc1obj-checksum.o: ELF 64-bit MSB relocatable, SPARC V9, relaxed memory ordering, version 1 (SYSV), not stripped /usr/ports/lang/gcc8/work/.build/stage3-gcc/cc1obj-checksum.o: ELF 64-bit MSB relocatable, SPARC V9, relaxed memory ordering, version 1 (SYSV), with debug_info, not stripped hercules : Thu Mar 28 09:09:19 AEDT 2019 : /tmp/mesoft-base -> 985# file /usr/ports/lang/gcc8/work/.build/stage2-gcc/objc/objc-next-runtime-abi-01.o /usr/ports/lang/gcc8/work/.build/stage3-gcc/objc/objc-next-runtime-abi-01.o /usr/ports/lang/gcc8/work/.build/stage2-gcc/objc/objc-next-runtime-abi-01.o: ELF 64-bit MSB relocatable, SPARC V9, relaxed memory ordering, version 1 (SYSV), not stripped /usr/ports/lang/gcc8/work/.build/stage3-gcc/objc/objc-next-runtime-abi-01.o: ELF 64-bit MSB relocatable, SPARC V9, relaxed memory ordering, version 1 (SYSV), with debug_info, not stripped ---> END CUT <--- Base OS - FreeBSD 12.0 (STABLE) - R345472, dated 2019/03/25 Ports Release - R496756, dated 2019/03/25 Build Platform - Sun Fire V240 with UltraSPARC III OS Release Info (UNAME) ---> CUT HERE <--- hercules : Thu Mar 28 09:01:10 AEDT 2019 : /tmp/mesoft-base -> 974# uname -a FreeBSD hercules.sydney.mesoft.com.au 12.0-STABLE FreeBSD 12.0-STABLE GENERIC sparc64 ---> END CUT <--- /etc/make.conf contents: ---> CUT HERE <--- hercules : Thu Mar 28 09:02:59 AEDT 2019 : /tmp/mesoft-base -> 975 cat /etc/make.conf WITHOUT_X11=yes OPTIONS_UNSET+=X11 PAPERSIZE=a4 A4=yes ---> END CUT <--- Ports Options for GCC: ---> CUT HERE <--- # This file is auto-generated by 'make config'. # Options for gcc8-8.3.0 _OPTIONS_READ=gcc8-8.3.0 _FILE_COMPLETE_OPTIONS_LIST=BOOTSTRAP GRAPHITE OPTIONS_FILE_SET+=BOOTSTRAP OPTIONS_FILE_UNSET+=GRAPHITE ---> END CUT <--- Ports Base Makefile Version ---> CUT HERE <--- hercules : Thu Mar 28 09:04:43 AEDT 2019 : /usr/ports/lang/gcc8 -> 978# ident Makefile Makefile: $FreeBSD: lang/gcc8/Makefile 494921 2019-03-07 09:55:52Z gerald $ ---> END CUT <--- If you need any additional information from me, feel free to email me directly.
I have to admit that the most sensible option at this point may be removing sparc64 from the list of platforms supported by lang/gcc8 (and newer). And making sparc64 tier 3 given that the platform is, essentially, dead and doesn't really have production usage on FreeBSD. toolchain@ and Andreas, what's your take? Any idea on how to fix this?
(In reply to Gerald Pfeifer from comment #1) > the most sensible option at this point may be > removing sparc64 from the list of platforms supported by lang/gcc8 I agree with this.
A commit references this bug: Author: emaste Date: Thu Nov 7 19:37:27 UTC 2019 New revision: 354468 URL: https://svnweb.freebsd.org/changeset/base/354468 Log: arch.7: claim 12.x as the last architecture with sparc64 support GCC 4.2.1 is being removed before FreeBSD 13, as are some other components required by FreeBSD/sparc64. Contemporary GCC does not build and there is currently no indication that anyone is going to address these issues. PR: 228919, 233405, 236839, 239851 Changes: head/share/man/man7/arch.7
As the original creator of the PR. I've since been able to butcher the GCC build to get GCC 8.3.0 to build and so far seems to work without any issue. I do however need to clean up the patches required in order to make this acceptable as right now ... these are not acceptable in any way, shape or form for general distribution. If someone specifically *needs* the package it is available as a precompiled txz ... all you need to do is *ask*.
A commit references this bug: Author: gerald Date: Sun Mar 8 12:24:16 UTC 2020 New revision: 528030 URL: https://svnweb.freebsd.org/changeset/ports/528030 Log: Remove sparc64, which has not been working for far too long, from the list of supported architectures for the GCC 8 based ports. PR: 236839 Agreed to by: emaste Changes: head/lang/gcc8/Makefile head/lang/gcc8-devel/Makefile
For lack of a better option I am closing this as Overcome by Events. If you have any general patches for GCC on FreeBSD on sparc64, andreast or me may be able to help get those upstream, and if it's a config change in the port let's focus on gcc10-devel which will soon lead to lang/gcc10 when GCC 10.1 releases upstream.
A commit references this bug: Author: emaste Date: Sun Mar 8 21:21:48 UTC 2020 New revision: 358787 URL: https://svnweb.freebsd.org/changeset/base/358787 Log: MFC r354468: arch.7: claim 12.x as the last architecture with sparc64 support PR: 228919, 233405, 236839, 239851 Changes: _U stable/12/ stable/12/share/man/man7/arch.7
A commit references this bug: Author: gerald Date: Wed Mar 18 10:31:49 UTC 2020 New revision: 528640 URL: https://svnweb.freebsd.org/changeset/ports/528640 Log: Forward port r528030 | gerald | 2020-03-08 from lang/gcc8: Remove sparc64, which has not been working for far too long, from the list of supported architectures for the GCC 8 based ports. PR: 236839 Changes: head/lang/gcc10-devel/Makefile