Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 701050

Summary: sys-devel/gcc-7.3.0-r6 is needed on Nvidia Tegra based devices
Product: Gentoo Linux Reporter: Alexander Weber <web.alexander>
Component: Current packagesAssignee: Gentoo Toolchain Maintainers <toolchain>
Status: RESOLVED FIXED    
Severity: normal CC: jstein, slyfox
Priority: Normal    
Version: unspecified   
Hardware: ARM64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Alexander Weber 2019-11-24 07:09:55 UTC
I was surprised the sys-devel/gcc/gcc-7.3.0-r6 is out of portage since https://github.com/gentoo/gentoo/commit/242ab93fca9d6a746bf5eb5ba6c351d10997b0db

The gcc-7.3 version is required for Gentoo on Nvidia Tegra based devices:
https://developer.nvidia.com/embedded/linux-tegra

I used gcc-7.3.0-r6 to cross-compile the Gentoo on Nintendo Switch. Please reinstate this gcc version if there is no reason to remove it.

Reproducible: Always
Comment 1 Sergei Trofimovich (RETIRED) gentoo-dev 2019-11-24 10:54:30 UTC
(In reply to Alexander Weber from comment #0)
> I was surprised the sys-devel/gcc/gcc-7.3.0-r6 is out of portage since
> https://github.com/gentoo/gentoo/commit/
> 242ab93fca9d6a746bf5eb5ba6c351d10997b0db
> 
> The gcc-7.3 version is required for Gentoo on Nvidia Tegra based devices:
> https://developer.nvidia.com/embedded/linux-tegra
> 
> I used gcc-7.3.0-r6 to cross-compile the Gentoo on Nintendo Switch. Please
> reinstate this gcc version if there is no reason to remove it.
> 
> Reproducible: Always

Why gcc-9.2.0, gcc-8.3.0, gcc-7.5.0 or even gcc-7.4.0 does not work for you?
Comment 2 rbrown4014 2019-11-24 15:49:54 UTC
The reason why not GCC-8 or GCC-9 is Nvidia's display driver. If you build with X with later gcc, or build any version of X that isnt 1.19.7 it doesnt work, or causes unexpected issues. Mainly the reason for GCC-7, Is for cuda support.
Comment 3 rbrown4014 2019-11-24 15:53:01 UTC
Anything past gcc-7.3 breaks support for cuda, anything past gcc-7.5 causes issues with NvGPU Driver. Unfortunatly we cant fix this, as it is a binary blob required by L4T kernel for GPU use. Nouveau doesnt work unless you go mainline, in which case you loose support for most of the other hardware(Audio, proper frequency scaling, USB, and Sleep Mode being the big ones.)
Comment 4 Sergei Trofimovich (RETIRED) gentoo-dev 2019-11-24 19:06:27 UTC
(In reply to rbrown4014 from comment #2)
> The reason why not GCC-8 or GCC-9 is Nvidia's display driver. If you build
> with X with later gcc, or build any version of X that isnt 1.19.7 it doesnt
> work, or causes unexpected issues.

This is too vague. What "doesnt work" mean? Given that X is written in C why gcc version matter here?

> Mainly the reason for GCC-7, Is for cuda support.

How does cuda tie to gcc version? Does it link to some specific libraries gcc provides? Which ones?

(In reply to rbrown4014 from comment #3)
> Anything past gcc-7.3 breaks support for cuda

What does it mean? Build-time failures? Runtime failures?

> anything past gcc-7.5 causes issues with NvGPU Driver.
What does it mean? Build-time failures? Runtime failures?

> Unfortunatly we cant fix this, as it is a binary
> blob required by L4T kernel for GPU use. Nouveau doesnt work unless you go
> mainline, in which case you loose support for most of the other
> hardware(Audio, proper frequency scaling, USB, and Sleep Mode being the big
> ones.)

Given it's a blob why gcc version matters at all here? What is actually being relied on from gcc here?
Comment 5 Larry the Git Cow gentoo-dev 2019-11-24 19:14:56 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=758cedddf2141be73103ef43ae12ab68fddc8330

commit 758cedddf2141be73103ef43ae12ab68fddc8330
Author:     Sergei Trofimovich <slyfox@gentoo.org>
AuthorDate: 2019-11-24 19:07:51 +0000
Commit:     Sergei Trofimovich <slyfox@gentoo.org>
CommitDate: 2019-11-24 19:14:45 +0000

    sys-devel/gcc: restore 7.3.0-r6, bug #701050
    
    This reverts commit 242ab93fca9d6a746bf5eb5ba6c351d10997b0db.
    
    In bug #701050 users claim that gcc-7.3.0 is the only working
    version that works. It's not clear why yet. Let's restore it
    for the time being.
    
    While at it bump up to EAPI=7.
    
    Bug: https://bugs.gentoo.org/701050
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

 sys-devel/gcc/Manifest            |  2 ++
 sys-devel/gcc/gcc-7.3.0-r6.ebuild | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+)
Comment 6 Alexander Weber 2019-11-25 08:34:08 UTC
Thanks for giving back the 7.3.0-r6.

I do start to recompile a copy of my system for testing reason with GCC-9.2 to run into errors I can report here. But that can take some days in qemu-chroot + distcc-crosscompiler.
Comment 7 Alexander Weber 2019-11-25 09:20:56 UTC
In my previous tests with GCC-8 they was additional KCFLAGS="-Wno-error=stringop-truncation -Wno-error=stringop-overflow" needed to get the L4T-Kernel compiled.
The issue is Nvidia did tested only against- and supports only the gcc-7.3.
Comment 8 Sergei Trofimovich (RETIRED) gentoo-dev 2019-11-25 10:00:15 UTC
(In reply to Alexander Weber from comment #7)
> In my previous tests with GCC-8 they was additional
> KCFLAGS="-Wno-error=stringop-truncation -Wno-error=stringop-overflow" needed
> to get the L4T-Kernel compiled.

If the only problem is a few '-Werror's then there is no reason keeping gcc-7.3 in tree.

gcc-7 is a single gcc branch that should not have any major changes (like new warnings). I still don't see why gcc-7.4.0 or gcc-7.5.0 does not work for you as-is.

> The issue is Nvidia did tested only against- and supports only the gcc-7.3.

If vendor does not even support gcc-7 branch and has no plans to support newer compilers then this port will deteriorate very quickly.
Comment 9 Sergei Trofimovich (RETIRED) gentoo-dev 2019-12-23 13:23:14 UTC
I plan to remove gcc-7.3.0 in favour of gcc-7.5.0.
Comment 10 Alexander Weber 2019-12-24 09:03:40 UTC
After ths report I recompiled my gentoo for Nintendo Switch using gcc-9.2. All is working fine.
The Issues reported by rbrown4014@yahoo.com are, as I understand now, with software not in Gentoo Portage.
For me it is ok if gcc-7.3 is removed from portage for now. We can copy the version to our overlay to be save.
Comment 11 Larry the Git Cow gentoo-dev 2019-12-24 10:34:13 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=111ef711be07898a8aa27e4ec1f789d867258eb7

commit 111ef711be07898a8aa27e4ec1f789d867258eb7
Author:     Sergei Trofimovich <slyfox@gentoo.org>
AuthorDate: 2019-12-24 10:33:58 +0000
Commit:     Sergei Trofimovich <slyfox@gentoo.org>
CommitDate: 2019-12-24 10:33:58 +0000

    sys-devel/gcc: drop 7.3.0-r6 again
    
    Closes: https://bugs.gentoo.org/701050
    Package-Manager: Portage-2.3.82, Repoman-2.3.20
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

 sys-devel/gcc/Manifest            |  2 --
 sys-devel/gcc/gcc-7.3.0-r6.ebuild | 19 -------------------
 2 files changed, 21 deletions(-)
Comment 12 Sergei Trofimovich (RETIRED) gentoo-dev 2019-12-24 10:35:33 UTC
Dropped 7.3.0-r6. I'm willing to help resolving any issues that arise when using gcc-7.4.0/gcc-7.5.0 compared to gcc-7.3.0. But I expect none.