[Bug 236616] emulators/virtualbox-ose: Unable to create a new machine due to "Unexpected exception: cxxrt::bad_alloc [St9bad_alloc]"
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Tue Apr 14 13:51:43 UTC 2020
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236616
--- Comment #27 from commit-hook at freebsd.org ---
A commit references this bug:
Author: kevans
Date: Tue Apr 14 13:51:05 UTC 2020
New revision: 531690
URL: https://svnweb.freebsd.org/changeset/ports/531690
Log:
MFH: r531689
emulators/virtualbox-ose: Switch build to USES= compiler:c++14-lang
The runtime breakage that started occurring after the LLVM 7 -> 8 transition
has been diagnosed with help from cem@, and the attached patch fixes it. The
problem ended up being that tail-call optimization was being applied to this
function (which should probably be written in assembly instead) and moving
the tail-call to later on after some stack manipulations. The problem with
this is that this particular function uses alloca() to carefully craft a
stack that it's expecting to be used for the function it's calling at the
end.
The new patch fixes this using a technique that was committed later on in
upstream changeset 75061 to address a similar failure with GCC sanitizers
enabled. The FreeBSD-specific component of this patch is using the different
stack setup if __clang__ is defined as well.
The extra hunk in the Config patch has been added because the VirtualBox
build system cannot cope with LLVM version numbers in the way it's
expecting. Hardcode it to GCC 4.2 for FreeBSD, which is what the clang
__GNU* macros describe, to fix build breakage that happens with newer LLVM
as the build system decides our LLVM is an even older and more broken
version of GCC with a broken regparm.
PR: 236616, 244847
Approved by: koobs (mentor)
Approved by: ports-secteam (blanket: major runtime fix caused by bad build)
Changes:
_U branches/2020Q2/
branches/2020Q2/emulators/virtualbox-ose/Makefile
branches/2020Q2/emulators/virtualbox-ose/files/patch-Config.kmk
branches/2020Q2/emulators/virtualbox-ose/files/patch-src_libs_xpcom18a4_xpcom_reflect_xptcall_src_md_unix_xptcinvoke__x86__64__linux.cpp
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-emulation
mailing list