Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Apr 2020 13:51:41 +0000
From:      bugzilla-noreply@freebsd.org
To:        vbox@FreeBSD.org
Subject:   [Bug 236616] emulators/virtualbox-ose: Unable to create a new machine due to "Unexpected exception: cxxrt::bad_alloc [St9bad_alloc]"
Message-ID:  <bug-236616-26505-aifpPjis44@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-236616-26505@https.bugs.freebsd.org/bugzilla/>
References:  <bug-236616-26505@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D236616

--- Comment #27 from commit-hook@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=3D compiler:c++14-lang

  The runtime breakage that started occurring after the LLVM 7 -> 8 transit=
ion
  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 t=
his
  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 differ=
ent
  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 bui=
ld)

Changes:
_U  branches/2020Q2/
  branches/2020Q2/emulators/virtualbox-ose/Makefile
  branches/2020Q2/emulators/virtualbox-ose/files/patch-Config.kmk
=20
branches/2020Q2/emulators/virtualbox-ose/files/patch-src_libs_xpcom18a4_xpc=
om_reflect_xptcall_src_md_unix_xptcinvoke__x86__64__linux.cpp

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-236616-26505-aifpPjis44>