Bug 236839

Summary: lang/gcc8: Fails to compile on sparc64 platform (FreeBSD 12.0 STABLE)
Product: Ports & Packages Reporter: bmeyer
Component: Individual Port(s)Assignee: freebsd-toolchain mailing list <toolchain>
Status: Closed Overcome By Events    
Severity: Affects Some People CC: andreast, emaste, gerald, linimon, sparc64
Priority: ---    
Version: Latest   
Hardware: sparc64   
OS: Any   

Description bmeyer 2019-03-27 22:37:32 UTC
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.
Comment 1 Gerald Pfeifer freebsd_committer 2019-03-30 14:45:32 UTC
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?
Comment 2 Ed Maste freebsd_committer 2019-08-14 13:18:38 UTC
(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.
Comment 3 commit-hook freebsd_committer 2019-11-07 19:38:00 UTC
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
Comment 4 bmeyer 2019-12-04 01:08:56 UTC
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*.
Comment 5 commit-hook freebsd_committer 2020-03-08 12:24:38 UTC
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
Comment 6 Gerald Pfeifer freebsd_committer 2020-03-08 12:36:16 UTC
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.
Comment 7 commit-hook freebsd_committer 2020-03-08 21:22:10 UTC
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
Comment 8 commit-hook freebsd_committer 2020-03-18 10:32:44 UTC
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