emulators/virtualbox-ose: use contemporary GCC instead of old llvm The bug in PR 236616 resulted in virtualbox getting pinned to llvm7. This is less than ideal, and in-fact has been broken by improvements to machine/atomic.h on x86 that require a more modern compiler. Switch the build to USE_GCC= any. The patches that were previously applied if COMPILER_TYPE == clang are actually needed by newer GCCs as well, so make those standard patches instead, folding the Config.kmk patches together. We should put some effort into testing llvm10 and working out why llvm breaks it, but fixing the build is more important at the moment. Q/A: * portlint (pre-existing issues; none in current patch) * testport (-CURRENT, amd64) * run testing by madpilot@ PR: 244603 Approved by: koobs (mentor), bapt (mentor) Approved by: portmgr (blanket: build fix) MFH: 2020Q1 (blanket: build fix)
Details
Details
Diff Detail
Diff Detail
- Repository
- rP FreeBSD ports repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
USE_GCC= any is not sufficient, as GCC8 doesn't support the feature used by atomic.h.
Gcc 8 should... The docs for gcc 6 introduce the feature, and I specifically tried a test case with gcc 7, although I didn't actually try a kernel build.
https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/Extended-Asm.html#Extended-Asm
Comment Actions
Yeah, my testing here seems to have been somehow flawed... I replaced '9' with 'any' and it was still using GCC9, so there's no way I actually tested 8.
emulators/virtualbox-ose/Makefile | ||
---|---|---|
39 ↗ | (On Diff #69200) | This should read "any" instead of "9". |
Comment Actions
I tested the patch, and am using virtualbox compiled with this patch and everything works fine.