Page MenuHomeFreeBSD

Add a USE_GCC_TOOLCHAINS knob to make universe.
ClosedPublic

Authored by jhb on Jul 19 2020, 8:48 PM.

Details

Summary

This uses GCC toolchains instead of LLVM on architectures supported by GCC.
Currently this uses GCC 6 on aarch64, amd64, i386, mips, and powerpc.

Test Plan
  • make tinderbox USE_GCC_TOOLCHAINS=yes, observe much breakage

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

jhb requested review of this revision.Jul 19 2020, 8:48 PM
jhb created this revision.
Makefile
521 ↗(On Diff #74661)

powerpc-gcc6 doesn't exist, so this doesn't really work for powerpc yet. It does exist for GCC 9 (and I might try bumping to GCC9 next after fixing the current fallout)

532 ↗(On Diff #74661)

This approach is still not ideal as it blocks "powerpc" if you don't have both toolchains installed. However, that is not really fixable without redoing universe entirely to be target_arch driven instead of target driven which seems like too much work.

Any thoughts? This (and all the fixes needed for GCC 6) have sat in review for 2 weeks with no feedback. I'll probably commit this in the next day or so barring feedback.

Seems fine to me, although what do we have to fix wrt powerpc-gcc6 before commit?

Seems fine to me, although what do we have to fix wrt powerpc-gcc6 before commit?

We'd have to create the flavor of gcc6. I'd rather spend time getting GCC9 working with it instead to be honest.

In D25732#577973, @jhb wrote:

Seems fine to me, although what do we have to fix wrt powerpc-gcc6 before commit?

We'd have to create the flavor of gcc6. I'd rather spend time getting GCC9 working with it instead to be honest.

I agree there's little point in spending effort on gcc6. Does this mean we're just going to hold this change for the foreseeable future?

In D25732#577973, @jhb wrote:

Seems fine to me, although what do we have to fix wrt powerpc-gcc6 before commit?

We'd have to create the flavor of gcc6. I'd rather spend time getting GCC9 working with it instead to be honest.

I agree there's little point in spending effort on gcc6. Does this mean we're just going to hold this change for the foreseeable future?

I already have another git branch off of this to switch to gcc9 and add more targets. For powerpc-gcc9 I need to back port a patch to the GCC port I think to deal with secure plt issues. However, not all the worlds yet build with GCC 9 though I think I have most of them working.

This revision was not accepted when it landed; it landed in state Needs Review.Aug 17 2020, 8:11 PM
This revision was automatically updated to reflect the committed changes.