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__)

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to