Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Mar 2012 13:50:03 +0100
From:      Tijl Coosemans <tijl@freebsd.org>
To:        Andrey Kosachenko <andrey.kosachenko@gmail.com>
Cc:        svn-src-head@freebsd.org, emulation@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   virtualbox fix for recent current (was Re: svn commit: r232264 - in head/sys: amd64/include i386/include pc98/include x86/include)
Message-ID:  <201203051350.09141.tijl@freebsd.org>
In-Reply-To: <4F53DF10.5080303@gmail.com>
References:  <201202281838.q1SIcYhE082928@svn.freebsd.org> <201203041351.22847.jhb@freebsd.org> <4F53DF10.5080303@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--nextPart2952423.uHyMEgrBsJ
Content-Type: multipart/mixed;
  boundary="Boundary-01=_7ZLVPBzqF4/B/pY"
Content-Transfer-Encoding: 7bit


--Boundary-01=_7ZLVPBzqF4/B/pY
Content-Type: Text/Plain;
  charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

On Sunday 04 March 2012 22:30:56 Andrey Kosachenko wrote:
>> On Tuesday, February 28, 2012 01:38:34 PM Tijl Coosemans wrote:
>>> Author: tijl
>>> Date: Tue Feb 28 18:38:33 2012
>>> New Revision: 232264
>>> URL: http://svn.freebsd.org/changeset/base/232264
>>>
>>> Log:
>>>    Copy amd64 _stdint.h to x86 and merge with i386 _stdint.h. Replace
>>>    amd64/i386/pc98 _stdint.h with stubs.
>>>
>>> Added:
>>>    head/sys/x86/include/_stdint.h
>>>       - copied, changed from r232259, head/sys/amd64/include/_stdint.h
> Attempt to build=20
> emulators/virtualbox-ose fails with the following error:
>=20
> ---
> kBuild: Compiling tstVMStructRC -=20
> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/src/VBox/VM=
M/testcase/tstVMStructRC.cpp
> In file included from /usr/include/sys/types.h:63,
>                   from=20
> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/include/ipr=
t/types.h:85,
>                   from=20
> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/include/VBo=
x/types.h:30,
>                   from=20
> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/src/VBox/VM=
M/testcase/tstVMStructRC.cpp:33:
> /usr/include/sys/_stdint.h:74: error: conflicting declaration 'typedef=20
> __intptr_t intptr_t'
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>=20
> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/include/ipr=
t/stdint.h:162:=20
> error: 'intptr_t' has a previous declaration as 'typedef long int intptr_=
t'
> /usr/include/sys/_stdint.h:78: error: conflicting declaration 'typedef=20
> __uintptr_t uintptr_t'
> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/include/ipr=
t/stdint.h:165:=20
> error: 'uintptr_t' has a previous declaration as 'typedef long unsigned=20
> int uintptr_t'
> kBuild: Compiling tstAsmStructsasm -=20
> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/src/VBox/VM=
M/testcase/tstAsmStructsAsm.asm
> kBuild: Compiling tstGlobalConfig -=20
> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/src/VBox/VM=
M/testcase/tstGlobalConfig.cpp
> kmk: ***=20
> [/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/out/freebs=
d.amd64/release/obj/tstVMStructRC/tstVMStructRC.o]=20
> Error 1
> The failing command:
> @c++ -m32 -c -O2 -g -pipe -pedantic -Wshadow -Wall -Wextra=20

Compiling with -m32 wasn't really supported (until now)...

> -Wno-missing-field-initializers -Wno-unused -Wno-trigraphs=20
> -fdiagnostics-show-option -Wno-long-long -Wno-variadic-macros=20
> -fno-exceptions -O2 -mtune=3Dgeneric -fno-omit-frame-pointer -mno-sse=20
> -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing -fno-stack-protector=20
> -fvisibility=3Dhidden -DVBOX_HAVE_VISIBILITY_HIDDEN=20
> -DRT_USE_VISIBILITY_DEFAULT -fvisibility-inlines-hidden -fno-rtti -O0=20
> -I/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/src/VBox/=
VMM/include=20
> -I/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/src/VBox/=
VMM/PATM=20
> -I/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/include=20
> -I/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/out/freeb=
sd.amd64/release=20
> -DVBOX -DVBOX_WITH_DEBUGGER -DVBOX_OSE -DVBOX_WITH_64_BITS_GUESTS=20
> -DVBOX_WITH_HARDENING=20
> -DRTPATH_APP_PRIVATE=3D\"/usr/local/share/virtualbox-ose\"=20
> -DRTPATH_APP_PRIVATE_ARCH=3D\"/usr/local/lib/virtualbox\"=20
> -DRTPATH_SHARED_LIBS=3D\"/usr/local/lib/virtualbox\"=20
> -DRTPATH_APP_DOCS=3D\"/usr/local/share/doc/virtualbox-ose\"=20
> -DRT_OS_FREEBSD -D__FREEBSD__ -DRT_ARCH_X86 -D__X86__ -DIN_RC=20
> -DHC_ARCH_BITS=3D64 -DGC_ARCH_BITS=3D64 -DIN_VMM_RC -DIN_DIS -DIN_RT_RC=20
> -DVBOX_WITH_RAW_MODE -DIPRT_DONT_USE_SYSTEM_STDINT_H=20

=2E..so virtualbox has hacks like IPRT_DONT_USE_SYSTEM_STDINT_H to make
it work. I've attached a patch that you can put in the port's files/
directory. I'll leave it to the port maintainers to commit it or work
out something else, because I think some hacks aren't necessary anymore
(on current).

> -Wp,-MD,/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/out=
/freebsd.amd64/release/obj/tstVMStructRC/tstVMStructRC.o.dep=20
> -Wp,-MT,/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/out=
/freebsd.amd64/release/obj/tstVMStructRC/tstVMStructRC.o=20
> -Wp,-MP -o=20
> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/out/freebsd=
=2Eamd64/release/obj/tstVMStructRC/tstVMStructRC.o=20
> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/src/VBox/VM=
M/testcase/tstVMStructRC.cpp
> kmk: *** Waiting for unfinished jobs....
> kmk: *** Exiting with status 2
> *** [do-build] Error code 2
>=20
> Stop in /usr/ports/emulators/virtualbox-ose.
> *** [build] Error code 1
>=20
> Stop in /usr/ports/emulators/virtualbox-ose.
> ---

--Boundary-01=_7ZLVPBzqF4/B/pY
Content-Type: text/plain; charset="utf-8"; name="patch-include-iprt-types.h"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="patch-include-iprt-types.h"

=2D-- include/iprt/types.h.orig	2012-03-05 10:48:48.000000000 +0100
+++ include/iprt/types.h	2012-03-05 11:21:25.000000000 +0100
@@ -82,6 +82,8 @@
 #  include <stddef.h>
 #  define _UINT64_T_DECLARED
 #  define _INT64_T_DECLARED
+#  define _UINTPTR_T_DECLARED
+#  define _INTPTR_T_DECLARED
 #  include <sys/types.h>
=20
 # elif defined(RT_OS_LINUX) && defined(__KERNEL__)

--Boundary-01=_7ZLVPBzqF4/B/pY--

--nextPart2952423.uHyMEgrBsJ
Content-Type: application/pgp-signature; name=signature.asc 
Content-Description: This is a digitally signed message part.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (FreeBSD)

iF4EABEIAAYFAk9UtoAACgkQfoCS2CCgtisVKQEAhL1bKk/NPyUPcp1H6VRwL6CV
8SKQzJF6E+Kepty6+OsA/2AnKMCwA/RydENuAA+Oj2H68NVFSHED8YKgSPQ5sXIH
=2v6X
-----END PGP SIGNATURE-----

--nextPart2952423.uHyMEgrBsJ--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201203051350.09141.tijl>