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 > emulators/virtualbox-ose fails with the following error: > > --- > kBuild: Compiling tstVMStructRC - > /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/src/VBox/VMM/testcase/tstVMStructRC.cpp > In file included from /usr/include/sys/types.h:63, > from > /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/include/iprt/types.h:85, > from > /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/include/VBox/types.h:30, > from > /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/src/VBox/VMM/testcase/tstVMStructRC.cpp:33: > /usr/include/sys/_stdint.h:74: error: conflicting declaration 'typedef > __intptr_t intptr_t' > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/include/iprt/stdint.h:162: > > error: 'intptr_t' has a previous declaration as 'typedef long int intptr_t' > /usr/include/sys/_stdint.h:78: error: conflicting declaration 'typedef > __uintptr_t uintptr_t' > /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/include/iprt/stdint.h:165: > > error: 'uintptr_t' has a previous declaration as 'typedef long unsigned > int uintptr_t' > kBuild: Compiling tstAsmStructsasm - > /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/src/VBox/VMM/testcase/tstAsmStructsAsm.asm > kBuild: Compiling tstGlobalConfig - > /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/src/VBox/VMM/testcase/tstGlobalConfig.cpp > kmk: *** > [/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/out/freebsd.amd64/release/obj/tstVMStructRC/tstVMStructRC.o] > > Error 1 > The failing command: > @c++ -m32 -c -O2 -g -pipe -pedantic -Wshadow -Wall -Wextra
Compiling with -m32 wasn't really supported (until now)... > -Wno-missing-field-initializers -Wno-unused -Wno-trigraphs > -fdiagnostics-show-option -Wno-long-long -Wno-variadic-macros > -fno-exceptions -O2 -mtune=generic -fno-omit-frame-pointer -mno-sse > -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing -fno-stack-protector > -fvisibility=hidden -DVBOX_HAVE_VISIBILITY_HIDDEN > -DRT_USE_VISIBILITY_DEFAULT -fvisibility-inlines-hidden -fno-rtti -O0 > -I/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/src/VBox/VMM/include > > -I/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/src/VBox/VMM/PATM > > -I/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/include > -I/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/out/freebsd.amd64/release > > -DVBOX -DVBOX_WITH_DEBUGGER -DVBOX_OSE -DVBOX_WITH_64_BITS_GUESTS > -DVBOX_WITH_HARDENING > -DRTPATH_APP_PRIVATE=\"/usr/local/share/virtualbox-ose\" > -DRTPATH_APP_PRIVATE_ARCH=\"/usr/local/lib/virtualbox\" > -DRTPATH_SHARED_LIBS=\"/usr/local/lib/virtualbox\" > -DRTPATH_APP_DOCS=\"/usr/local/share/doc/virtualbox-ose\" > -DRT_OS_FREEBSD -D__FREEBSD__ -DRT_ARCH_X86 -D__X86__ -DIN_RC > -DHC_ARCH_BITS=64 -DGC_ARCH_BITS=64 -DIN_VMM_RC -DIN_DIS -DIN_RT_RC > -DVBOX_WITH_RAW_MODE -DIPRT_DONT_USE_SYSTEM_STDINT_H ...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 > > -Wp,-MT,/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/out/freebsd.amd64/release/obj/tstVMStructRC/tstVMStructRC.o > > -Wp,-MP -o > /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/out/freebsd.amd64/release/obj/tstVMStructRC/tstVMStructRC.o > > /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.1.8_OSE/src/VBox/VMM/testcase/tstVMStructRC.cpp > kmk: *** Waiting for unfinished jobs.... > kmk: *** Exiting with status 2 > *** [do-build] Error code 2 > > Stop in /usr/ports/emulators/virtualbox-ose. > *** [build] Error code 1 > > Stop in /usr/ports/emulators/virtualbox-ose. > ---
--- 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> # elif defined(RT_OS_LINUX) && defined(__KERNEL__)
signature.asc
Description: This is a digitally signed message part.