VirtualBox

Changeset 48282 in vbox for trunk


Ignore:
Timestamp:
Sep 4, 2013 11:59:15 PM (11 years ago)
Author:
vboxsync
Message:

32-bit main API on 64-bit solaris.

Location:
trunk
Files:
21 edited

Legend:

Unmodified
Added
Removed
  • trunk/Config.kmk

    r48132 r48282  
    509509# The main api.
    510510VBOX_WITH_MAIN = 1
     511# Whether to also ship 32-bit main API on 64-bit systems.
     512if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), solaris.amd64)
     513 VBOX_WITH_32_ON_64_MAIN_API = 1
     514endif
    511515# The recompiler.
    512516VBOX_WITH_REM = 1
     
    16051609 LIB_RUNTIME     = $(PATH_STAGE_BIN)/VBoxRT.dylib
    16061610 LIB_RUNTIME_EF  = #$(PATH_STAGE_LIB)/RuntimeEFCPP.a
     1611 VBOX_LIB_RUNTIME_X86   = $(PATH_STAGE_BIN)/VBoxRT-x86.dylib
    16071612 LIB_KPROFILE    = $(PATH_STAGE_BIN)/kPrf2.dylib
    16081613 LIB_VMM         = $(PATH_STAGE_BIN)/VBoxVMM.dylib
     
    16101615 LIB_REM         = $(PATH_STAGE_LIB)/VBoxREM.dylib
    16111616 LIB_XPCOM       = $(PATH_STAGE_BIN)/VBoxXPCOM.dylib
     1617 VBOX_LIB_XPCOM_X86     = $(PATH_STAGE_BIN)/VBoxXPCOM-x86.dylib
    16121618 LIB_DDU         = $(PATH_STAGE_BIN)/VBoxDDU.dylib
    16131619endif
     
    16151621 LIB_RUNTIME     = $(PATH_STAGE_BIN)/VBoxRT.so
    16161622 LIB_RUNTIME_EF  = $(PATH_STAGE_LIB)/RuntimeEFCPP.a
     1623 VBOX_LIB_RUNTIME_X86   = $(PATH_STAGE_BIN)/VBoxRT-x86.so
    16171624 LIB_KPROFILE    = $(PATH_STAGE_BIN)/kPrf2.so
    16181625 LIB_VMM         = $(PATH_STAGE_BIN)/VBoxVMM.so
     
    16201627 LIB_REM         = $(PATH_STAGE_LIB)/VBoxREM.so
    16211628 LIB_XPCOM       = $(PATH_STAGE_BIN)/VBoxXPCOM.so
     1629 VBOX_LIB_XPCOM_X86   = $(PATH_STAGE_BIN)/VBoxXPCOM-x86.so
    16221630 LIB_DDU         = $(PATH_STAGE_BIN)/VBoxDDU.so
    16231631endif
     
    16251633 LIB_RUNTIME     = $(PATH_STAGE_BIN)/VBoxRT.dll
    16261634 LIB_RUNTIME_EF  = #$(PATH_STAGE_LIB)/RuntimeEFCPP.a
     1635 VBOX_LIB_RUNTIME_X86   = $(PATH_STAGE_BIN)/VBoxRT-x86.dll
    16271636 LIB_KPROFILE    = $(PATH_STAGE_BIN)/kPrf2.dll
    16281637 LIB_VMM         = $(PATH_STAGE_BIN)/VBoxVMM.dll
     
    16301639 LIB_REM         = $(PATH_STAGE_LIB)/VBoxREMImp.lib
    16311640 LIB_XPCOM       = $(PATH_STAGE_BIN)/VBoxXCOM.dll
     1641 VBOX_LIB_XPCOM_X86     = $(PATH_STAGE_BIN)/VBoxXPCOM-x86.dll
    16321642 LIB_DDU         = $(PATH_STAGE_BIN)/VBoxDDU.dll
    16331643 VBOX_OBJ_SYS0   = $(PATH_OBJ)/RuntimeR0/os2/sys0.obj
     
    16361646 LIB_RUNTIME     = $(PATH_STAGE_LIB)/VBoxRT.lib
    16371647 LIB_RUNTIME_EF  = #$(PATH_STAGE_LIB)/RuntimeEFCPP.lib
     1648 VBOX_LIB_RUNTIME_X86   = $(PATH_STAGE_LIB)/VBoxRT-x86.lib
    16381649 LIB_KPROFILE    = $(PATH_STAGE_LIB)/kPrf2.lib
    16391650 LIB_VMM         = $(PATH_STAGE_LIB)/VBoxVMM.lib
    16401651 LIB_VMMGC       = $(PATH_OBJ)/VMMRC/VMMGC.lib
    16411652 LIB_REM         = $(PATH_STAGE_LIB)/VBoxREMImp.lib
    1642  LIB_XPCOM       = $(PATH_STAGE_BIN)/VBoxXPCOM.dll
     1653 LIB_XPCOM       = $(PATH_STAGE_BIN)/VBoxXPCOM.lib
     1654 VBOX_LIB_XPCOM_X86     = $(PATH_STAGE_BIN)/VBoxXPCOM-x86.lib
    16431655 LIB_DDU         = $(PATH_STAGE_LIB)/VBoxDDU.lib
    16441656endif
     
    26922704 SDK_VBOX_ZLIB_INCS  ?= $(PATH_ROOT)/src/libs/zlib-1.2.6
    26932705 SDK_VBOX_ZLIB_LIBS  ?= $(PATH_STAGE_LIB)/VBox-zlib$(VBOX_SUFF_LIB)
     2706 SDK_VBOX_ZLIB_LIBS.x86 ?= $(PATH_STAGE_LIB)/VBox-zlib-x86$(VBOX_SUFF_LIB)
    26942707else
    26952708 SDK_VBOX_ZLIB_INCS  ?=
    26962709 SDK_VBOX_ZLIB_LIBS  ?= z
     2710 SDK_VBOX_ZLIB_LIBS.x86 ?= z
    26972711 SDK_VBOX_ZLIB_DEFS.linux ?= _LARGEFILE64_SOURCE
    26982712endif
     
    27122726        $(PATH_STAGE_LIB)/VBox-libcrypto$(VBOX_SUFF_LIB)
    27132727
     2728SDK_VBOX_OPENSSL-x86      = Only for VBoxRT and/or statically linked programs.
     2729SDK_VBOX_OPENSSL-x86_VBOX_DEFAULT_INCS := $(PATH_OUT)/obj/crypto-headers/include
     2730SDK_VBOX_OPENSSL-x86_INCS ?= $(SDK_VBOX_OPENSSL_VBOX_DEFAULT_INCS)
     2731SDK_VBOX_OPENSSL-x86_ORDERDEPS ?= $(crypto-headers_1_TARGET)
     2732SDK_VBOX_OPENSSL-x86_LIBS ?= \
     2733        $(PATH_STAGE_LIB)/VBox-libssl-x86$(VBOX_SUFF_LIB) \
     2734        $(PATH_STAGE_LIB)/VBox-libcrypto-x86$(VBOX_SUFF_LIB)
     2735
    27142736SDK_VBOX_OPENSSL2      = What you should be using.
    27152737SDK_VBOX_OPENSSL2_EXTENDS = VBOX_OPENSSL
     
    27382760SDK_VBOX_LIBCURL_LIBS ?= $(PATH_STAGE_LIB)/VBox-libcurl$(VBOX_SUFF_LIB)
    27392761SDK_VBOX_LIBCURL_DEFS ?= BUILDING_LIBCURL
     2762
     2763SDK_VBOX_LIBCURL-x86           = .
     2764SDK_VBOX_LIBCURL-x86_INCS     ?= $(PATH_ROOT)/src/libs/curl-7.27.0/include
     2765SDK_VBOX_LIBCURL-x86_LIBS.x86 ?= $(PATH_STAGE_LIB)/VBox-libcurl-x86$(VBOX_SUFF_LIB)
     2766SDK_VBOX_LIBCURL-x86_DEFS     ?= BUILDING_LIBCURL
    27402767endif
    27412768
     
    36033630endif
    36043631
     3632# x86 edition of the above template for use on AMD64 targets.
     3633TEMPLATE_VBoxR3Dll-x86                = 32-bit VBox ring-3 SO/DLLs, no warnings
     3634TEMPLATE_VBoxR3Dll-x86_EXTENDS        = VBoxR3Dll
     3635TEMPLATE_VBoxR3Dll-x86_BLD_TRG_ARCH   = x86
     3636TEMPLATE_VBoxR3Dll-x86_DEFS           = $(filter-out HC_ARCH_BITS%,$(TEMPLATE_VBoxR3Dll_DEFS)) \
     3637        HC_ARCH_BITS=32 ARCH_BITS=32
     3638
     3639
    36053640#
    36063641# Template for building performance critical stuff with warnings-as-errors.
     
    36263661endif
    36273662
     3663# x86 edition of the above template for use on AMD64 targets.
     3664TEMPLATE_VBoxR3DllNoPic-x86                = 32-bit VBox ring-3 SO/DLLs without PIC, without warnings.
     3665TEMPLATE_VBoxR3DllNoPic-x86_EXTENDS        = VBoxR3DllNoPic
     3666TEMPLATE_VBoxR3DllNoPic-x86_BLD_TRG_ARCH   = x86
     3667TEMPLATE_VBoxR3DllNoPic-x86_DEFS           = $(filter-out HC_ARCH_BITS%,$(TEMPLATE_VBoxR3DllNoPic_DEFS)) \
     3668        HC_ARCH_BITS=32 ARCH_BITS=32
     3669
     3670
    36283671#
    36293672# Template for building performance critical stuff without warnings-as-errors.
     
    36373680 TEMPLATE_VBoxR3DllWarnNoPic_LDFLAGS       = $(TEMPLATE_VBOXR3EXE_LDFLAGS)
    36383681else ifeq ($(KBUILD_TARGET),win)
    3639  TEMPLATE_VBoxR3DllNoPic_CFLAGS.release    = $(TEMPLATE_VBOXR3_CFLAGS.release) -GS-
    3640  TEMPLATE_VBoxR3DllNoPic_CXXFLAGS.release = $(TEMPLATE_VBOXR3_CXXFLAGS.release) -GS-
     3682 TEMPLATE_VBoxR3DllWarnNoPic_CFLAGS.release   = $(TEMPLATE_VBOXR3_CFLAGS.release) -GS-
     3683 TEMPLATE_VBoxR3DllWarnNoPic_CXXFLAGS.release = $(TEMPLATE_VBOXR3_CXXFLAGS.release) -GS-
    36413684endif
    36423685
     
    38493892# (Same transformation as for VBOXR3NPEXE.)
    38503893#
    3851 TEMPLATE_VBOXR3NP= VBox Ring 3 Non-pedantic
     3894# @deprecated Use VBoxR3DllNonPedantic!
     3895#
     3896TEMPLATE_VBOXR3NP = VBox Ring 3 Non-pedantic
    38523897TEMPLATE_VBOXR3NP_EXTENDS = VBOXR3
    38533898ifneq ($(KBUILD_TARGET),win) # (only gcc)
     
    38573902        -Wno-sign-compare -Werror-implicit-function-declaration
    38583903endif
     3904
     3905
     3906#
     3907# Template for building bad C/C++ style R3 shared libraries / Dlls (no -pedantic).
     3908# (Same transformation as for VBoxR3ExeNonPedantic.)
     3909#
     3910TEMPLATE_VBoxR3DllNonPedantic               = VBox ring-3 Non-pedantic, with warnings.
     3911TEMPLATE_VBoxR3DllNonPedantic_EXTENDS       = VBOXR3
     3912ifneq ($(KBUILD_TARGET),win) # (only gcc)
     3913 TEMPLATE_VBoxR3DllNonPedantic_TOOL         = $(VBOX_GCC_TOOL)
     3914 TEMPLATE_VBoxR3DllNonPedantic_CXXFLAGS     = $(filter-out -pedantic -Wshadow,$(TEMPLATE_VBOXR3_CXXFLAGS)) -Wno-sign-compare
     3915 TEMPLATE_VBoxR3DllNonPedantic_CFLAGS       = $(filter-out -pedantic -Wshadow -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations,$(TEMPLATE_VBOXR3_CFLAGS)) \
     3916        -Wno-sign-compare -Werror-implicit-function-declaration
     3917endif
     3918
     3919# x86 edition of the above template for use on AMD64 targets.
     3920TEMPLATE_VBoxR3DllNonPedantic-x86           = 32-bit VBox ring-3 SO/DLLs, no warnings
     3921TEMPLATE_VBoxR3DllNonPedantic-x86_EXTENDS   = VBoxR3DllNonPedantic
     3922TEMPLATE_VBoxR3DllNonPedantic-x86_BLD_TRG_ARCH = x86
     3923TEMPLATE_VBoxR3DllNonPedantic-x86_DEFS      = $(filter-out HC_ARCH_BITS%,$(TEMPLATE_VBoxR3Dll_DEFS)) \
     3924        HC_ARCH_BITS=32 ARCH_BITS=32
     3925
    38593926
    38603927
     
    41344201        -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
    41354202
     4203TEMPLATE_VBoxMainComp-x86  = 32-bit VBox Main Component (shared library)
     4204TEMPLATE_VBoxMainComp-x86_EXTENDS = VBOXMAINCOMP
     4205TEMPLATE_VBoxMainComp-x86_BLD_TRG_ARCH = x86
     4206TEMPLATE_VBoxMainComp-x86_DEFS = $(filter-out HC_ARCH_BITS%,$(TEMPLATE_VBOXMAINCOMP_DEFS)) HC_ARCH_BIT=32 ARCH_BITS=32 \
     4207        VBOX_IN_32_ON_64_MAIN_API
     4208TEMPLATE_VBoxMainComp-x86_LIBS = \
     4209        $(subst $(PATH_STAGE_LIB)/VBoxCOM$(VBOX_SUFF_LIB),$(PATH_STAGE_LIB)/VBoxCOM-x86$(VBOX_SUFF_LIB),\
     4210        $(subst $(LIB_RUNTIME),$(VBOX_LIB_RUNTIME_X86),\
     4211        $(subst $(LIB_XPCOM),$(VBOX_LIB_XPCOM_X86),\
     4212        $(TEMPLATE_VBOXMAINCOMP_LIBS))))
     4213
     4214
    41364215#
    41374216# Template for building the Main static libraries.
     
    41394218# This differs from VBOXMAINDLL only that it zeroes out the _LIBS definition.
    41404219#
    4141 TEMPLATE_VBOXMAINLIB  = VBox Main Component (static library)
    4142 TEMPLATE_VBOXMAINLIB_EXTENDS = VBOXMAINDLL
    4143 TEMPLATE_VBOXMAINLIB_LIBS =
     4220TEMPLATE_VBoxMainLib  = VBox Main Component (static library)
     4221TEMPLATE_VBoxMainLib_EXTENDS = VBOXMAINDLL
     4222TEMPLATE_VBoxMainLib_LIBS =
     4223
     4224TEMPLATE_VBoxMainLib-x86  = 32-bit VBox Main Component (static library)
     4225TEMPLATE_VBoxMainLib-x86_EXTENDS = VBoxMainLib
     4226TEMPLATE_VBoxMainLib-x86_BLD_TRG_ARCH = x86
     4227TEMPLATE_VBoxMainLib-x86_DEFS = $(filter-out HC_ARCH_BITS%,$(TEMPLATE_VBoxMainLib_DEFS)) HC_ARCH_BIT=32 ARCH_BITS=32 \
     4228        VBOX_IN_32_ON_64_MAIN_API
    41444229
    41454230#
  • trunk/src/VBox/HostDrivers/Support/Makefile.kmk

    r48132 r48282  
    3232#
    3333LIBRARIES += SUPR3 SUPR3Static SUPR3HardenedStatic
     34ifdef VBOX_WITH_32_ON_64_MAIN_API
     35 LIBRARIES += SUPR3-x86
     36endif
    3437ifndef VBOX_ONLY_DOCS
    3538 if1of ($(VBOX_LDR_FMT), pe lx)
     
    8588        SUPR3HardenedVerify.cpp \
    8689        $(KBUILD_TARGET)/SUPLib-$(KBUILD_TARGET).cpp
     90
     91SUPR3-x86_TEMPLATE = VBoxR3Dll-x86
     92SUPR3-x86_EXTENDS  = SUPR3
     93
    8794
    8895#
  • trunk/src/VBox/Installer/solaris/Makefile.kmk

    r48263 r48282  
    267267        components/VBoxSVCM.so \
    268268        components/VBoxXPCOMIPCC.so
     269ifdef VBOX_WITH_32_ON_64_MAIN_API
     270 SOLARIS_STRIP_BINS += \
     271        VBoxRT-x86.so \
     272        VBoxXPCOM-x86.so \
     273        components/VBoxClient-x86.so \
     274        components/VBoxSVCM-x86.so \
     275        components/VBoxXPCOMIPCC-x86.so
     276endif
    269277ifdef VBOX_WITH_HARDENING
    270 SOLARIS_STRIP_BINS += \
     278 SOLARIS_STRIP_BINS += \
    271279        VBoxNetDHCP.so \
    272280        VBoxNetNAT.so \
     
    530538#
    531539# -=-=-=-=-=-=-=- Main package -=-=-=-=-=-=-=-
     540#
     541# !!WARNING!!  The current packing may NOT produce the expected rules in
     542# !!WARNING!!  incremental build!  Removed and renamed components may
     543# !!WARNING!!  appear in the package!  Always do clean builds for customers.
    532544#
    533545
     
    615627 ifdef VBOX_WITH_PYTHON
    616628        $(QUIET)$(if $(SOL64_PKG),$(MKDIR) -p $(SOLARIS_VBOXINST_DIR)/$(VBOX_SOL_PYTHON_DIR_64),)
     629  ifdef VBOX_WITH_32_ON_64_MAIN_API
     630        $(QUIET)$(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s) $(filter     %_x86.so,$(wildcard $(SOLARIS_OUT_BIN)/VBoxPython*.so)) $(SOLARIS_VBOXINST_DIR)/
     631        $(QUIET)$(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s) $(filter-out %_x86.so,$(wildcard $(SOLARIS_OUT_BIN)/VBoxPython*.so)) $(SOLARIS_VBOXINST_DIR)/$(VBOX_SOL_PYTHON_DIR_64)/
     632  else
    617633        $(QUIET)$(INSTALL) -m 0644 $(if $(VBOX_DO_STRIP),-s) $(wildcard $(SOLARIS_OUT_BIN)/VBoxPython*.so)                   $(SOLARIS_VBOXINST_DIR)/$(if $(SOL64_PKG),$(VBOX_SOL_PYTHON_DIR_64)/,)
     634  endif
    618635 endif
    619636        $(QUIET)$(if $(VBOX_WITH_QTGUI),$(if $(VBOX_WITH_QT4_SUN),$(INSTALL) -m 0755 $(VBOX_PATH_QT4)/bin/qtconfig           $(SOLARIS_VBOXINST_DIR_ISA)/VBoxQtconfig,),)
  • trunk/src/VBox/Main/Makefile.kmk

    r47649 r48282  
    168168#
    169169LIBRARIES += VBoxAPIWrap
    170 VBoxAPIWrap_TEMPLATE        = VBOXMAINLIB
     170VBoxAPIWrap_TEMPLATE        = VBoxMainLib
    171171VBoxAPIWrap_SOURCES         = $(VBoxAPIWrap_GENERATEDCPP)
    172172VBoxAPIWrap_GENERATEDCPP    = $(filter %.cpp,$(VBoxAPIWrap_GENERATEDSOURCES))
     
    187187include $(VBoxAPIWrap_KMK)
    188188
     189ifdef VBOX_WITH_32_ON_64_MAIN_API
     190LIBRARIES += VBoxAPIWrap-x86
     191VBoxAPIWrap-x86_TEMPLATE = VBoxMainLib-x86
     192VBoxAPIWrap-x86_EXTENDS  = VBoxAPIWrap
     193endif
    189194
    190195#
     
    542547 endif
    543548VBoxSVCM_INTERMEDIATES += $(VBOX_IDL_HEADER.XPCOM)
     549
     550 # 32-bit version of the module.
     551 ifdef VBOX_WITH_32_ON_64_MAIN_API
     552DLLS += VBoxSVCM-x86
     553VBoxSVCM-x86_TEMPLATE = VBoxMainComp-x86
     554VBoxSVCM-x86_EXTENDS  = VBoxSVCM
     555 endif
     556
    544557endif # VBOX_WITH_XPCOM
    545558
     
    574587        $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,) \
    575588        $(if $(VBOX_WITH_VPX),VBOX_WITH_VPX,)
    576 
    577 
     589ifdef VBOX_WITH_CRHGSMI
     590 VBoxC_DEFS += VBOX_WITH_CRHGSMI
     591endif
     592ifdef VBOX_WITH_NETSHAPER
     593 VBoxC_DEFS += VBOX_WITH_NETSHAPER
     594endif
    578595VBoxC_DEFS.darwin.x86 = VBOX_WITH_2X_4GB_ADDR_SPACE
    579596VBoxC_DEFS.win.x86 += _WIN32_WINNT=0x0500
     
    605622        $(if-expr "$(LIB_VMM)" == "$(VBOX_LIB_VMM_LAZY)",$(LIB_REM),) \
    606623        $(VBOX_LIB_VMM_LAZY)
    607 
    608624ifdef VBOX_WITH_NETFLT
    609625 VBoxC_LIBS.win += \
     
    621637endif
    622638
    623 
    624 VBoxC_INTERMEDIATES =            \
    625         $(VBOX_MAIN_PREREQS)     \
     639VBoxC_INTERMEDIATES = \
     640        $(VBOX_MAIN_PREREQS) \
    626641        $(VBOX_XML_SCHEMADEFS_H) \
    627642        $(VBOX_AUTOGEN_EVENT_H)
     
    676691        src-client/win/VBoxC.def \
    677692        src-client/win/VBoxC.rc
    678 
    679693ifdef VBOX_WITH_GUEST_CONTROL
    680 VBoxC_SOURCES += \
     694 VBoxC_SOURCES += \
    681695        src-client/GuestSessionImplTasks.cpp \
    682696        src-client/GuestCtrlPrivate.cpp
    683697endif
    684 
    685698ifdef VBOX_WITH_DRAG_AND_DROP
    686 VBoxC_SOURCES += \
     699 VBoxC_SOURCES += \
    687700        src-client/GuestDnDImpl.cpp
    688701endif
    689 
    690702ifdef VBOX_WITH_XPCOM
    691 VBoxC_SOURCES += \
     703 VBoxC_SOURCES += \
    692704        src-client/xpcom/module.cpp
    693705endif
    694 
    695706ifdef VBOX_WITH_HGCM
    696 VBoxC_SOURCES += \
     707 VBoxC_SOURCES += \
    697708        src-client/HGCMObjects.cpp \
    698709        src-client/HGCMThread.cpp \
    699710        src-client/HGCM.cpp
    700711endif
    701 
    702 ifdef VBOX_WITH_CRHGSMI
    703 VBoxC_DEFS += VBOX_WITH_CRHGSMI
    704 endif
    705 
    706712ifdef VBOX_WITH_USB
    707 VBoxC_SOURCES += \
     713 VBoxC_SOURCES += \
    708714        src-client/RemoteUSBBackend.cpp
    709715endif
    710 
    711716ifdef VBOX_WITH_VPX
    712 VBoxC_SOURCES += \
     717 VBoxC_SOURCES += \
    713718        src-client/EbmlWriter.cpp \
    714719        src-client/VideoRec.cpp
    715 endif
    716 
    717 ifdef VBOX_WITH_NETSHAPER
    718 VBoxC_DEFS += VBOX_WITH_NETSHAPER
    719720endif
    720721
     
    738739        $(VBOX_XSLTPROC) --stringparam Module VBoxC -o $@ $< $(VBOX_XIDL_FILE)
    739740
     741ifdef VBOX_WITH_32_ON_64_MAIN_API
     742 #
     743 # 32-bit VBox API Client In-Process module.
     744 #
     745 DLLS += VBoxClient-x86
     746 VBoxClient-x86_TEMPLATE = VBoxMainComp-x86
     747 VBoxClient-x86_EXTENDS  = VBoxC
     748 VBoxClient-x86_DEFS = VBOX_COM_INPROC_API_CLIENT $(VBoxC_DEFS)
     749 VBoxClient-x86_SOURCES = \
     750        src-all/EventImpl.cpp \
     751        src-all/Global.cpp \
     752        src-all/VirtualBoxBase.cpp \
     753        src-all/VirtualBoxErrorInfoImpl.cpp \
     754        src-client/ClientTokenHolder.cpp \
     755        src-client/SessionImpl.cpp \
     756        src-client/VirtualBoxClientImpl.cpp \
     757        $(VBOX_AUTOGEN_EVENT_CPP) \
     758        $(VBOX_XML_SCHEMADEFS_CPP)
     759 VBoxClient-x86_SOURCES.win = \
     760        src-client/win/dllmain.cpp \
     761        src-client/win/VBoxC.def \
     762        src-client/win/VBoxC.rc
     763 ifdef VBOX_WITH_XPCOM
     764  VBoxClient-x86_SOURCES += \
     765        src-client/xpcom/module.cpp
     766 endif
     767 VBoxClient-x86_LIBS = $(NO_SUCH_VARIABLE)
     768endif
     769
    740770
    741771#
     
    743773#
    744774LIBRARIES += VBoxCOM
    745 VBoxCOM_TEMPLATE        = VBOXMAINLIB
     775VBoxCOM_TEMPLATE        = VBoxMainLib
    746776VBoxCOM_INTERMEDIATES   = $(VBOX_MAIN_PREREQS)
    747777VBoxCOM_SOURCES         = \
     
    769799        $(if $(VBOX_BLEEDING_EDGE),VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\",)
    770800
     801# 32-bit version of VBoxCOM.
     802ifdef VBOX_WITH_32_ON_64_MAIN_API
     803 LIBRARIES += VBoxCOM-x86
     804 VBoxCOM-x86_TEMPLATE = VBoxMainLib-x86
     805 VBoxCOM-x86_EXTENDS  = VBoxCOM
     806endif
     807
     808
    771809
    772810#
  • trunk/src/VBox/Main/glue/initterm.cpp

    r48164 r48282  
    338338    vrc = RTStrCopy(szXptiDat, sizeof(szXptiDat), szCompReg);
    339339    AssertRCReturn(vrc, NS_ERROR_FAILURE);
     340#ifdef VBOX_IN_32_ON_64_MAIN_API
     341    vrc = RTPathAppend(szCompReg, sizeof(szCompReg), "compreg-x86.dat");
     342    AssertRCReturn(vrc, NS_ERROR_FAILURE);
     343    vrc = RTPathAppend(szXptiDat, sizeof(szXptiDat), "xpti-x86.dat");
     344    AssertRCReturn(vrc, NS_ERROR_FAILURE);
     345#else
    340346    vrc = RTPathAppend(szCompReg, sizeof(szCompReg), "compreg.dat");
    341347    AssertRCReturn(vrc, NS_ERROR_FAILURE);
    342348    vrc = RTPathAppend(szXptiDat, sizeof(szXptiDat), "xpti.dat");
    343349    AssertRCReturn(vrc, NS_ERROR_FAILURE);
     350#endif
    344351
    345352    LogFlowFunc(("component registry  : \"%s\"\n", szCompReg));
  • trunk/src/VBox/Main/glue/vboxapi.py

    r48045 r48282  
    3737    # Will be set by the installer
    3838    VBoxBinDir = "%VBOX_INSTALL_PATH%"
     39else:
     40    VBoxBinDir = os.path.abspath(VBoxBinDir);
    3941
    4042if VBoxSdkDir is None:
    4143    # Will be set by the installer
    4244    VBoxSdkDir = "%VBOX_SDK_PATH%"
     45else:
     46    VBoxBinDir = os.path.abspath(VBoxSdkDir);
    4347
    4448os.environ["VBOX_PROGRAM_PATH"] = VBoxBinDir
  • trunk/src/VBox/Main/include/SessionImpl.h

    r47561 r48282  
    11/** @file
    2  *
    32 * VBox Client Session COM Class definition
    43 */
     
    122121    ComPtr<IInternalMachineControl> mControl;
    123122
     123#ifndef VBOX_COM_INPROC_API_CLIENT
    124124    ComObjPtr<Console> mConsole;
     125#endif
    125126
    126127    ComPtr<IMachine> mRemoteMachine;
     
    134135};
    135136
    136 #endif // ____H_SESSIONIMPL
     137#endif // !____H_SESSIONIMPL
    137138/* vi: set tabstop=4 shiftwidth=4 expandtab: */
  • trunk/src/VBox/Main/src-client/SessionImpl.cpp

    r47561 r48282  
    165165
    166166    HRESULT rc;
     167#ifndef VBOX_COM_INPROC_API_CLIENT
    167168    if (mConsole)
    168169       rc = mConsole->machine().queryInterfaceTo(aMachine);
    169170    else
     171#endif
    170172       rc = mRemoteMachine.queryInterfaceTo(aMachine);
    171173    if (FAILED(rc))
    172174    {
    173175        /** @todo VBox 3.3: replace E_FAIL with rc here. */
     176#ifndef VBOX_COM_INPROC_API_CLIENT
    174177        if (mConsole)
    175178            setError(E_FAIL, tr("Failed to query the session machine (%Rhrc)"), rc);
    176         else if (FAILED_DEAD_INTERFACE(rc))
     179        else
     180#endif
     181        if (FAILED_DEAD_INTERFACE(rc))
    177182            setError(E_FAIL, tr("Peer process crashed"));
    178183        else
     
    195200
    196201    HRESULT rc;
     202#ifndef VBOX_COM_INPROC_API_CLIENT
    197203    if (mConsole)
    198204        rc = mConsole.queryInterfaceTo(aConsole);
    199205    else
     206#endif
    200207        rc = mRemoteConsole.queryInterfaceTo(aConsole);
    201208
     
    203210    {
    204211        /** @todo VBox 3.3: replace E_FAIL with rc here. */
     212#ifndef VBOX_COM_INPROC_API_CLIENT
    205213        if (mConsole)
    206214            setError(E_FAIL, tr("Failed to query the console (%Rhrc)"), rc);
    207         else if (FAILED_DEAD_INTERFACE(rc))
     215        else
     216#endif
     217        if (FAILED_DEAD_INTERFACE(rc))
    208218            setError(E_FAIL, tr("Peer process crashed"));
    209219        else
     
    262272    AssertReturn(mState != SessionState_Unlocked, VBOX_E_INVALID_VM_STATE);
    263273
     274#ifndef VBOX_COM_INPROC_API_CLIENT
    264275    AssertMsgReturn(mType == SessionType_WriteLock && !!mConsole,
    265276                    ("This is not a direct session!\n"),
     
    276287
    277288    return S_OK;
     289
     290#else  /* VBOX_COM_INPROC_API_CLIENT */
     291    return VBOX_E_INVALID_OBJECT_STATE;
     292#endif /* VBOX_COM_INPROC_API_CLIENT */
    278293}
    279294
     
    313328    AssertReturn(!!mControl, E_FAIL);
    314329
     330#ifndef VBOX_COM_INPROC_API_CLIENT
    315331    rc = mConsole.createObject();
    316332    AssertComRCReturn(rc, rc);
     
    318334    rc = mConsole->init(aMachine, mControl, aLockType);
    319335    AssertComRCReturn(rc, rc);
     336#endif
    320337
    321338    Utf8Str strTokenId(aTokenId);
     
    353370        /* some cleanup */
    354371        mControl.setNull();
     372#ifndef VBOX_COM_INPROC_API_CLIENT
    355373        if (!mConsole.isNull())
    356374        {
     
    358376            mConsole.setNull();
    359377        }
     378#endif
    360379    }
    361380
     
    465484
    466485    AssertReturn(!mControl.isNull(), E_FAIL);
     486#ifndef VBOX_COM_INPROC_API_CLIENT
    467487    AssertReturn(!mConsole.isNull(), E_FAIL);
    468488
    469489    return mConsole->updateMachineState(aMachineState);
     490#else
     491    return S_OK;
     492#endif
    470493}
    471494
     
    529552    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    530553    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     554#ifndef VBOX_COM_INPROC_API_CLIENT
    531555    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    532556
    533557    return mConsole->onNetworkAdapterChange(networkAdapter, changeAdapter);
     558#else
     559    return S_OK;
     560#endif
    534561}
    535562
     
    544571    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    545572    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     573#ifndef VBOX_COM_INPROC_API_CLIENT
    546574    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    547575
    548576    return mConsole->onSerialPortChange(serialPort);
     577#else
     578    return S_OK;
     579#endif
    549580}
    550581
     
    559590    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    560591    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     592#ifndef VBOX_COM_INPROC_API_CLIENT
    561593    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    562594
    563595    return mConsole->onParallelPortChange(parallelPort);
     596#else
     597    return S_OK;
     598#endif
    564599}
    565600
     
    574609    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    575610    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     611#ifndef VBOX_COM_INPROC_API_CLIENT
    576612    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    577613
    578614    return mConsole->onStorageControllerChange();
     615#else
     616    return S_OK;
     617#endif
    579618}
    580619
     
    589628    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    590629    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     630#ifndef VBOX_COM_INPROC_API_CLIENT
    591631    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    592632
    593633    return mConsole->onMediumChange(aMediumAttachment, aForce);
     634#else
     635    return S_OK;
     636#endif
    594637}
    595638
     
    604647    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    605648    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     649#ifndef VBOX_COM_INPROC_API_CLIENT
    606650    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    607651
    608652    return mConsole->onCPUChange(aCPU, aRemove);
     653#else
     654    return S_OK;
     655#endif
    609656}
    610657
     
    619666    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    620667    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     668#ifndef VBOX_COM_INPROC_API_CLIENT
    621669    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    622670
    623671    return mConsole->onCPUExecutionCapChange(aExecutionCap);
     672#else
     673    return S_OK;
     674#endif
    624675}
    625676
     
    634685    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    635686    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     687#ifndef VBOX_COM_INPROC_API_CLIENT
    636688    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    637689
    638690    return mConsole->onVRDEServerChange(aRestart);
     691#else
     692    return S_OK;
     693#endif
    639694}
    640695
     
    649704    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    650705    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     706#ifndef VBOX_COM_INPROC_API_CLIENT
    651707    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    652708
    653709    return mConsole->onVideoCaptureChange();
     710#else
     711    return S_OK;
     712#endif
    654713}
    655714
     
    664723    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    665724    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     725#ifndef VBOX_COM_INPROC_API_CLIENT
    666726    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    667727
    668728    return mConsole->onUSBControllerChange();
     729#else
     730    return S_OK;
     731#endif
    669732}
    670733
     
    679742    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    680743    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     744#ifndef VBOX_COM_INPROC_API_CLIENT
    681745    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    682746
    683747    return mConsole->onSharedFolderChange(aGlobal);
     748#else
     749    return S_OK;
     750#endif
    684751}
    685752
     
    694761    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    695762    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     763#ifndef VBOX_COM_INPROC_API_CLIENT
    696764    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    697765
    698766    return mConsole->onClipboardModeChange(aClipboardMode);
     767#else
     768    return S_OK;
     769#endif
    699770}
    700771
     
    708779    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
    709780    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
     781#ifndef VBOX_COM_INPROC_API_CLIENT
    710782    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
    711783
    712784    return mConsole->onDragAndDropModeChange(aDragAndDropMode);
     785#else
     786    return S_OK;
     787#endif
    713788}
    714789
     
    725800    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    726801    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     802#ifndef VBOX_COM_INPROC_API_CLIENT
    727803    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    728804
    729805    return mConsole->onUSBDeviceAttach(aDevice, aError, aMaskedIfs);
     806#else
     807    return S_OK;
     808#endif
    730809}
    731810
     
    741820    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    742821    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     822#ifndef VBOX_COM_INPROC_API_CLIENT
    743823    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    744824
    745825    return mConsole->onUSBDeviceDetach(aId, aError);
     826#else
     827    return S_OK;
     828#endif
    746829}
    747830
     
    754837
    755838    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
    756     AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
     839#ifndef VBOX_COM_INPROC_API_CLIENT
     840    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
     841#endif
    757842
    758843    if (mState != SessionState_Locked)
     
    767852    }
    768853
     854#ifndef VBOX_COM_INPROC_API_CLIENT
    769855    return mConsole->onShowWindow(aCheck, aCanShow, aWinId);
     856#else
     857    return S_OK;
     858#endif
    770859}
    771860
     
    780869    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    781870    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     871#ifndef VBOX_COM_INPROC_API_CLIENT
    782872    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    783873
    784874    return mConsole->onBandwidthGroupChange(aBandwidthGroup);
     875#else
     876    return S_OK;
     877#endif
    785878}
    786879
     
    795888    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    796889    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     890#ifndef VBOX_COM_INPROC_API_CLIENT
    797891    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    798892
    799893    return mConsole->onStorageDeviceChange(aMediumAttachment, aRemove, aSilent);
     894#else
     895    return S_OK;
     896#endif
    800897}
    801898
     
    803900                                          BOOL aIsSetter, BSTR *aRetValue, LONG64 *aRetTimestamp, BSTR *aRetFlags)
    804901{
    805 #ifdef VBOX_WITH_GUEST_PROPS
     902#if defined(VBOX_WITH_GUEST_PROPS) && !defined(VBOX_COM_INPROC_API_CLIENT)
    806903    AutoCaller autoCaller(this);
    807904    AssertComRCReturn(autoCaller.rc(), autoCaller.rc());
     
    846943                                               ComSafeArrayOut(BSTR, aFlags))
    847944{
    848 #ifdef VBOX_WITH_GUEST_PROPS
     945#if defined(VBOX_WITH_GUEST_PROPS) && !defined(VBOX_COM_INPROC_API_CLIENT)
    849946    AutoCaller autoCaller(this);
    850947    AssertComRCReturn(autoCaller.rc(), autoCaller.rc());
     
    896993                        tr("Machine is not locked by session (session state: %s)."),
    897994                        Global::stringifySessionState(mState));
     995#ifndef VBOX_COM_INPROC_API_CLIENT
    898996    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
    899997    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
     
    9061004                                       ComSafeArrayInArg(aChildrenToReparent),
    9071005                                       aProgress);
     1006#else
     1007    return E_NOTIMPL;
     1008#endif
    9081009}
    9091010
     
    9161017    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    9171018    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     1019#ifndef VBOX_COM_INPROC_API_CLIENT
    9181020    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    9191021
     
    9211023
    9221024    return S_OK;
     1025#else
     1026    return E_NOTIMPL;
     1027#endif
    9231028}
    9241029
     
    9311036    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    9321037    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     1038#ifndef VBOX_COM_INPROC_API_CLIENT
    9331039    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    9341040
    9351041    return mConsole->pause(aReason);
     1042#else
     1043    return E_NOTIMPL;
     1044#endif
    9361045}
    9371046
     
    9441053    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    9451054    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     1055#ifndef VBOX_COM_INPROC_API_CLIENT
    9461056    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    9471057
    9481058    return mConsole->resume(aReason);
     1059#else
     1060    return E_NOTIMPL;
     1061#endif
    9491062}
    9501063
     
    9571070    AssertReturn(mState == SessionState_Locked, VBOX_E_INVALID_VM_STATE);
    9581071    AssertReturn(mType == SessionType_WriteLock, VBOX_E_INVALID_OBJECT_STATE);
     1072#ifndef VBOX_COM_INPROC_API_CLIENT
    9591073    AssertReturn(mConsole, VBOX_E_INVALID_OBJECT_STATE);
    9601074
    9611075    return mConsole->saveState(aReason, aProgress);
     1076#else
     1077    return E_NOTIMPL;
     1078#endif
    9621079}
    9631080
     
    10151132    if (mType == SessionType_WriteLock)
    10161133    {
     1134#ifndef VBOX_COM_INPROC_API_CLIENT
    10171135        if (!mConsole.isNull())
    10181136        {
     
    10201138            mConsole.setNull();
    10211139        }
     1140#endif
    10221141    }
    10231142    else
    10241143    {
    10251144        mRemoteMachine.setNull();
     1145#ifndef VBOX_COM_INPROC_API_CLIENT
    10261146        mRemoteConsole.setNull();
     1147#endif
    10271148    }
    10281149
  • trunk/src/VBox/Main/src-client/xpcom/module.cpp

    r46824 r48282  
    6060// XPCOM glue code unfolding
    6161
     62NS_DECL_CLASSINFO(VirtualBoxClient)
     63NS_IMPL_THREADSAFE_ISUPPORTS1_CI(VirtualBoxClient, IVirtualBoxClient)
     64NS_DECL_CLASSINFO(Session)
     65NS_IMPL_THREADSAFE_ISUPPORTS2_CI(Session, ISession, IInternalSessionControl)
     66
     67#ifndef VBOX_COM_INPROC_API_CLIENT
    6268NS_DECL_CLASSINFO(Guest)
    6369NS_IMPL_THREADSAFE_ISUPPORTS1_CI(Guest, IGuest)
    64 #ifdef VBOX_WITH_GUEST_CONTROL
     70 #ifdef VBOX_WITH_GUEST_CONTROL
    6571NS_DECL_CLASSINFO(GuestDirectory)
    6672NS_IMPL_THREADSAFE_ISUPPORTS2_CI(GuestDirectory, IGuestDirectory, IDirectory)
     
    7379NS_DECL_CLASSINFO(GuestSession)
    7480NS_IMPL_THREADSAFE_ISUPPORTS1_CI(GuestSession, IGuestSession)
    75 #endif
     81 #endif
    7682NS_DECL_CLASSINFO(Keyboard)
    7783NS_IMPL_THREADSAFE_ISUPPORTS1_CI(Keyboard, IKeyboard)
     
    9298NS_DECL_CLASSINFO(VRDEServerInfo)
    9399NS_IMPL_THREADSAFE_ISUPPORTS1_CI(VRDEServerInfo, IVRDEServerInfo)
    94 #ifdef VBOX_WITH_EXTPACK
     100 #ifdef VBOX_WITH_EXTPACK
    95101// deliberately omit ExtPackFile as it's unusable in the client context
    96102// NS_DECL_CLASSINFO(ExtPackFile)
     
    100106NS_DECL_CLASSINFO(ExtPackManager)
    101107NS_IMPL_THREADSAFE_ISUPPORTS1_CI(ExtPackManager, IExtPackManager)
    102 #endif
     108 #endif
    103109NS_DECL_CLASSINFO(AdditionsFacility)
    104110NS_IMPL_THREADSAFE_ISUPPORTS1_CI(AdditionsFacility, IAdditionsFacility)
    105111
    106 NS_DECL_CLASSINFO(Session)
    107 NS_IMPL_THREADSAFE_ISUPPORTS2_CI(Session, ISession, IInternalSessionControl)
    108112NS_DECL_CLASSINFO(Console)
    109113NS_IMPL_THREADSAFE_ISUPPORTS1_CI(Console, IConsole)
    110114
    111 NS_DECL_CLASSINFO(VirtualBoxClient)
    112 NS_IMPL_THREADSAFE_ISUPPORTS1_CI(VirtualBoxClient, IVirtualBoxClient)
     115#endif /* VBOX_COM_INPROC_API_CLIENT */
    113116
    114117/**
  • trunk/src/VBox/Runtime/Makefile.kmk

    r47762 r48282  
    108108 LIBRARIES.win.x86 += RuntimeR3VccTricks
    109109 DLLS += VBoxRT
     110 ifdef VBOX_WITH_32_ON_64_MAIN_API
     111  DLLS += VBoxRT-x86
     112 endif
    110113endif
    111114
     
    13071310VBoxRT_SOURCES.$(KBUILD_TARGET) = $(RuntimeR3_SOURCES.$(KBUILD_TARGET))
    13081311VBoxRT_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
     1312VBoxRT_SOURCES.$(KBUILD_TARGET).x86   := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).x86)
     1313VBoxRT_SOURCES.$(KBUILD_TARGET).amd64 := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).amd64)
    13091314VBoxRT_SOURCES.$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET_ARCH))
     1315VBoxRT_SOURCES.x86   := $(RuntimeR3_SOURCES.x86)
     1316VBoxRT_SOURCES.amd64 := $(RuntimeR3_SOURCES.amd64)
    13101317VBoxRT_SOURCES.win            += \
    13111318        r3/win/dllmain-win.cpp \
     
    14051412endif # linux
    14061413
     1414
     1415#
     1416# VBoxRT-x86 - 32-bit version of VBoxRT
     1417#
     1418VBoxRT-x86_EXTENDS = VBoxRT
     1419VBoxRT-x86_TEMPLATE = VBoxR3Dll-x86
     1420VBoxRT-x86_SDKS  = VBOX_LIBXML2 VBOX_BOOST
     1421ifdef VBOX_WITH_LIBCURL
     1422 VBoxRT-x86_SDKS += VBOX_LIBCURL-x86
     1423endif
     1424VBoxRT-x86_SDKS  += VBOX_OPENSSL-x86
     1425
     1426VBoxRT-x86_LIBS = \
     1427        $(PATH_STAGE_LIB)/VBox-liblzf-x86$(VBOX_SUFF_LIB)
     1428if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
     1429VBoxRT-x86_LIBS += \
     1430        $(PATH_STAGE_LIB)/SUPR3-x86$(VBOX_SUFF_LIB)
     1431endif
     1432ifdef IPRT_WITH_KSTUFF
     1433 VBoxRT-x86_LIBS                  += \
     1434        $(PATH_STAGE_LIB)/VBox-kStuff-x86$(VBOX_SUFF_LIB)
     1435endif
     1436ifndef SDK_VBOX_LIBXML2_LIBS
     1437 VBoxRT-x86_LIBS                 += \
     1438        $(PATH_STAGE_LIB)/VBox-libxml2-x86$(VBOX_SUFF_LIB)
     1439endif
     1440VBoxRT-x86_LIBS                  += \
     1441        $(SDK_VBOX_ZLIB_LIBS.x86)
     1442ifndef SDK_VBOX_OPENSSL_LIBS
     1443 VBoxRT-x86_LIBS                 += \
     1444        $(PATH_STAGE_LIB)/VBox-libcrypto-x86$(VBOX_SUFF_LIB) \
     1445        $(PATH_STAGE_LIB)/VBox-libssl-x86$(VBOX_SUFF_LIB)
     1446endif
     1447ifdef IPRT_WITH_LZO
     1448 VBoxRT-x86_LIBS                  += lzo2
     1449endif
     1450VBoxRT-x86_LIBS.linux              = \
     1451        crypt
     1452VBoxRT-x86_LIBS.darwin             = \
     1453        iconv
     1454VBoxRT-x86_LIBS.freebsd            = \
     1455        iconv \
     1456        rt
     1457VBoxRT-x86_LIBS.haiku              = \
     1458        iconv
     1459VBoxRT-x86_LIBS.solaris            = \
     1460        kstat \
     1461        contract
     1462ifn1of ($(KBUILD_TARGET_ARCH), sparc32 sparc64)
     1463 # SMBIOS not available on Solaris SPARC.
     1464 VBoxRT-x86_LIBS.solaris += smbios
     1465endif
     1466VBoxRT-x86_LIBS.win                = \
     1467        $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/vccomsup.lib \
     1468        $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/wbemuuid.lib
     1469
     1470VBoxRT-x86_SOURCES.win = $(filter-out %.def,$(VBoxRT_SOURCES.win),) $(VBoxRT-x86_0_OUTDIR)/VBoxRT.def
     1471if1of ($(DLLS), VBoxRT-x86)
     1472$$(VBoxRT-x86_0_OUTDIR)/VBoxRT.def: \
     1473                $(PATH_SUB_CURRENT)/r3/win/VBoxRT-win32.def \
     1474                $(PATH_SUB_CURRENT)/r3/win/$(if $(VBOX_OSE),VBoxRT-openssl-ose.def,VBoxRT-openssl.def)
     1475        $(RM) -f -- $@
     1476        $(REDIRECT) -wto $@ -- $(CAT_EXT) $^
     1477endif
    14071478
    14081479#
     
    21832254 $(lib)_common/err/errmsgxpcom.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgvboxcomdata.h
    21842255endef
    2185 $(foreach lib,RuntimeR3 RuntimeBldProg VBoxRT,$(eval $(def_errmsgwin_deps)))
     2256$(foreach lib,RuntimeR3 RuntimeBldProg VBoxRT VBoxRT-x86,$(eval $(def_errmsgwin_deps)))
    21862257
    21872258
  • trunk/src/libs/kStuff/Makefile.kmk

    r42074 r48282  
    7171        iprt/kRdrFile-iprt.cpp
    7272
     73ifdef VBOX_WITH_32_ON_64_MAIN_API # 32-bit edition.
     74 LIBRARIES += VBox-kStuff-x86
     75 VBox-kStuff-x86_TEMPLATE = VBoxR3Dll-x86
     76 VBox-kStuff-x86_EXTENDS = VBox-kStuff
     77endif
    7378
    7479#
  • trunk/src/libs/liblzf-3.4/Makefile.kmk

    r41477 r48282  
    4141VBox-liblzf-static_SOURCES    = $(VBox-liblzf_SOURCES)
    4242
     43ifdef VBOX_WITH_32_ON_64_MAIN_API # 32-bit edition.
     44 LIBRARIES += VBox-liblzf-x86
     45 VBox-liblzf-x86_TEMPLATE = VBoxR3Dll-x86
     46 VBox-liblzf-x86_EXTENDS = VBox-liblzf
     47endif
     48
     49
    4350include $(FILE_KBUILD_SUB_FOOTER)
    4451
  • trunk/src/libs/libxml2-2.6.31/Makefile.kmk

    r46593 r48282  
    8080# VBox-libxml2_SDKS.win      += WINPSDK
    8181
     82ifdef VBOX_WITH_32_ON_64_MAIN_API # 32-bit edition.
     83 LIBRARIES += VBox-libxml2-x86
     84 VBox-libxml2-x86_TEMPLATE = VBoxR3DllNonPedantic-x86
     85 VBox-libxml2-x86_EXTENDS = VBox-libxml2
     86endif
     87
     88
    8289include $(FILE_KBUILD_SUB_FOOTER)
    8390
  • trunk/src/libs/xpcom18a4/Config.kmk

    r48225 r48282  
    2525#
    2626VBOX_PATH_XPCOM_SRC := $(PATH_ROOT)/src/libs/xpcom18a4
     27
    2728
    2829#
     
    259260TEMPLATE_XPCOMOSX107_DEFS.darwin        = $(filter-out $(VBOX_DARWIN_DEF_SDK_DEFS),$(TEMPLATE_XPCOM_DEFS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_7_DEFS)
    260261TEMPLATE_XPCOMOSX107_INCS.darwin        = $(VBOX_PATH_MACOSX_SDK_10_7)/Developer/Headers/FlatCarbon
     262
     263
     264#
     265# Creates a x86 target for an XPCOM target if so desired.
     266# The target is specified as the first argument: $(evalcall VBOX_XPCOM_X86,target).
     267#
     268ifdef VBOX_WITH_32_ON_64_MAIN_API
     269 define VBOX_XPCOM_X86
     270  $(1)-x86_TEMPLATE := $(strip $($(1)_TEMPLATE))-x86
     271  $(1)-x86_EXTENDS  := $(1)
     272 endef
     273else
     274 define VBOX_XPCOM_X86
     275 endef
     276endif
     277
     278# Corresponding 32-bit template(s).
     279TEMPLATE_XPCOM-x86                  = 32-bit XPCOM libraries (shared)
     280TEMPLATE_XPCOM-x86_EXTENDS          = XPCOM
     281TEMPLATE_XPCOM-x86_BLD_TRG_ARCH     = x86
     282TEMPLATE_XPCOM-x86_DEFS             = $(TEMPLATE_XPCOM_DEFS) VBOX_IN_32_ON_64_MAIN_API
     283TEMPLATE_XPCOM-x86_LIBS             = $(subst $(LIB_RUNTIME),$(VBOX_LIB_RUNTIME_X86),$(TEMPLATE_XPCOM_LIBS))
    261284
    262285
  • trunk/src/libs/xpcom18a4/Makefile.kmk

    r48245 r48282  
    7575ifndef VBOX_ONLY_SDK
    7676
    77 LIBRARIES += \
     77VBOX_XPCOM_LIBRARIES := \
    7878        VBox-xpcom-nspr \
    7979        VBox-xpcom-typelib \
     
    8787        VBox-xpcom-xptcall \
    8888        VBox-xpcom-proxy \
     89        VBox-xpcom-ipcshared \
    8990        VBoxXPCOMGlue_s \
    90         $(if $(VBOX_WITH_XPCOM_GLUE_WHICH_IS_UNUSED),VBoxXPCOMGlue,) \
    91         VBox-xpcom-ipcutils \
    92         VBox-xpcom-ipcshared \
    93         VBox-xpcom-ipcdlock \
    94         VBox-xpcom-ipctransmgr \
    95         VBox-xpcom-ipctmgrcom
    96 
    97 DLLS += \
    98         VBoxXPCOM \
     91        $(if $(VBOX_WITH_XPCOM_GLUE_WHICH_IS_UNUSED),VBoxXPCOMGlue,)
     92LIBRARIES += $(VBOX_XPCOM_LIBRARIES)
     93
     94VBOX_XPCOM_DLLS := \
     95    VBoxXPCOM \
    9996        VBoxXPCOMIPCC
     97DLLS += $(VBOX_XPCOM_DLLS)
     98
     99 ifdef VBOX_WITH_32_ON_64_MAIN_API
     100LIBRARIES += $(addsuffix -x86,$(VBOX_XPCOM_LIBRARIES))
     101DLLS      += $(addsuffix -x86,$(VBOX_XPCOM_DLLS))
     102 endif
     103
    100104
    101105 ifdef VBOX_WITH_TESTCASES
     
    676680        $(QUIET)$(APPEND) -t $@ '#define _BUILD_STRING "$(date +%Y-%m-%d %T)"'
    677681
     682$(evalcall2 VBOX_XPCOM_X86,VBox-xpcom-nspr)
     683
    678684
    679685VBox-xpcom-typelib_TEMPLATE = XPCOM
     
    683689        xpcom/typelib/xpt/src/xpt_struct.c \
    684690        xpcom/typelib/xpt/src/xpt_xdr.c
     691$(evalcall VBOX_XPCOM_X86,VBox-xpcom-typelib)
    685692
    686693VBox-xpcom-string_TEMPLATE = XPCOM
     
    698705        xpcom/string/src/nsStringComparator.cpp \
    699706        xpcom/string/src/nsStringObsolete.cpp
     707$(evalcall VBOX_XPCOM_X86,VBox-xpcom-string)
    700708
    701709VBox-xpcom-base_TEMPLATE = XPCOM
     
    713721        xpcom/base/nsTraceRefcntImpl.cpp \
    714722        xpcom/base/nsStackFrameUnix.cpp
     723$(evalcall VBOX_XPCOM_X86,VBox-xpcom-base)
    715724
    716725VBox-xpcom-ds_TEMPLATE = XPCOM
     
    752761        xpcom/ds/nsArrayEnumerator.cpp
    753762#   xpcom/ds/nsHashPropertyBag.cpp
     763$(evalcall VBOX_XPCOM_X86,VBox-xpcom-ds)
    754764
    755765# @todo what about MOZ_USER_DIR?
     
    793803VBox-xpcom-io_SOURCES.os2 = \
    794804        xpcom/io/nsLocalFileOS2.cpp
     805$(evalcall VBOX_XPCOM_X86,VBox-xpcom-io)
    795806
    796807VBox-xpcom-components_TEMPLATE = XPCOM
     
    805816        xpcom/components/xcDll.cpp \
    806817        xpcom/components/nsStaticComponentLoader.cpp
     818$(evalcall VBOX_XPCOM_X86,VBox-xpcom-components)
    807819
    808820VBox-xpcom-threads_TEMPLATE = XPCOM
     
    819831        xpcom/threads/nsProcessCommon.cpp \
    820832        xpcom/threads/TimerThread.cpp
     833$(evalcall VBOX_XPCOM_X86,VBox-xpcom-threads)
    821834
    822835VBox-xpcom-xptinfo_TEMPLATE = XPCOM
     
    833846        xpcom/reflect/xptinfo/src/xptiZipItem.cpp \
    834847        xpcom/reflect/xptinfo/src/xptiZipLoader.cpp
     848$(evalcall VBOX_XPCOM_X86,VBox-xpcom-xptinfo)
    835849
    836850
     
    867881    xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp
    868882endif
    869 
    870883xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_solaris.cpp_CXXFLAGS = -O0
    871884# -O0 works fine, while -O1 doesn't. The gcc man page can't be listing all the -f*
     
    874887# bug and it's not worth investigating as I'm not the maintainger of the solaris gcc port. [bird, 2007-09-17]
    875888
     889$(evalcall VBOX_XPCOM_X86,VBox-xpcom-xptcall)
     890
    876891
    877892VBox-xpcom-proxy_TEMPLATE = XPCOM
    878893VBox-xpcom-proxy_INSTTYPE = none
    879894VBox-xpcom-proxy_DEFS     = _IMPL_NS_COM EXPORT_XPTC_API EXPORT_XPTI_API
    880 VBox-xpcom-proxy_SOURCES  = xpcom/proxy/src/nsProxyEvent.cpp \
    881                             xpcom/proxy/src/nsProxyEventClass.cpp \
    882                             xpcom/proxy/src/nsProxyEventObject.cpp \
    883                             xpcom/proxy/src/nsProxyObjectManager.cpp \
    884                             xpcom/proxy/src/nsProxyRelease.cpp
     895VBox-xpcom-proxy_SOURCES  = \
     896    xpcom/proxy/src/nsProxyEvent.cpp \
     897    xpcom/proxy/src/nsProxyEventClass.cpp \
     898    xpcom/proxy/src/nsProxyEventObject.cpp \
     899    xpcom/proxy/src/nsProxyObjectManager.cpp \
     900    xpcom/proxy/src/nsProxyRelease.cpp
     901$(evalcall VBOX_XPCOM_X86,VBox-xpcom-proxy)
    885902
    886903
     
    918935VBoxXPCOMGlue_s_DEFS     = _IMPL_NS_COM
    919936VBoxXPCOMGlue_s_SOURCES  = $(VBoxXPCOMGlue_COMMON_SOURCES)
     937$(evalcall VBOX_XPCOM_X86,VBoxXPCOMGlue_s)
    920938
    921939# standalone glue library which all third-party client apps (if any) will
     
    924942VBoxXPCOMGlue_SOURCES  = $(VBoxXPCOMGlue_COMMON_SOURCES)
    925943#VBoxXPCOMGlue_INST     = lib/ $(INST_SDK)lib/
     944$(evalcall VBOX_XPCOM_X86,VBoxXPCOMGlue)
    926945
    927946
     
    10001019VBoxXPCOM_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxXPCOM.dylib
    10011020
     1021#
     1022# The 32-bit VBoxXPCOM Shared Object, assembling all lib files.
     1023#
     1024VBoxXPCOM-x86_TEMPLATE = XPCOM-x86
     1025VBoxXPCOM-x86_EXTENDS = VBoxXPCOM
     1026VBoxXPCOM-x86_NAME = VBoxXPCOM-x86
     1027VBoxXPCOM-x86_LIBS = \
     1028        $(VBox-xpcom-typelib-x86_1_TARGET) \
     1029        $(VBox-xpcom-string-x86_1_TARGET) \
     1030        $(VBox-xpcom-base-x86_1_TARGET) \
     1031        $(VBox-xpcom-ds-x86_1_TARGET) \
     1032        $(VBox-xpcom-io-x86_1_TARGET) \
     1033        $(VBox-xpcom-components-x86_1_TARGET) \
     1034        $(VBox-xpcom-threads-x86_1_TARGET) \
     1035        $(VBox-xpcom-xptinfo-x86_1_TARGET) \
     1036        $(VBox-xpcom-xptcall-x86_1_TARGET) \
     1037        $(VBox-xpcom-proxy-x86_1_TARGET) \
     1038        $(VBox-xpcom-nspr-x86_1_TARGET) \
     1039        $(VBoxXPCOMGlue_s-x86_1_TARGET)
     1040
     1041ifeq ($(filter-out freebsd linux netbsd openbsd,$(KBUILD_TARGET)),) # gnu ld.
     1042VBoxXPCOM-x86_LDFLAGS = -Wl,--whole-archive \
     1043        $(VBox-xpcom-typelib-x86_1_TARGET) \
     1044        $(VBox-xpcom-string-x86_1_TARGET) \
     1045        $(VBox-xpcom-base-x86_1_TARGET) \
     1046        $(VBox-xpcom-ds-x86_1_TARGET) \
     1047        $(VBox-xpcom-io-x86_1_TARGET) \
     1048        $(VBox-xpcom-components-x86_1_TARGET) \
     1049        $(VBox-xpcom-threads-x86_1_TARGET) \
     1050        $(VBox-xpcom-xptinfo-x86_1_TARGET) \
     1051        $(VBox-xpcom-xptcall-x86_1_TARGET) \
     1052        $(VBox-xpcom-proxy-x86_1_TARGET) \
     1053        $(VBox-xpcom-nspr-x86_1_TARGET) \
     1054        $(VBoxXPCOMGlue_s-x86_1_TARGET) \
     1055        -Wl,--no-whole-archive
     1056endif
     1057
     1058VBoxXPCOM-x86_LDFLAGS.solaris += -Wl,-z,allextract \
     1059        $(VBox-xpcom-typelib-x86_1_TARGET) \
     1060        $(VBox-xpcom-string-x86_1_TARGET) \
     1061        $(VBox-xpcom-base-x86_1_TARGET) \
     1062        $(VBox-xpcom-ds-x86_1_TARGET) \
     1063        $(VBox-xpcom-io-x86_1_TARGET) \
     1064        $(VBox-xpcom-components-x86_1_TARGET) \
     1065        $(VBox-xpcom-threads-x86_1_TARGET) \
     1066        $(VBox-xpcom-xptinfo-x86_1_TARGET) \
     1067        $(VBox-xpcom-xptcall-x86_1_TARGET) \
     1068        $(VBox-xpcom-proxy-x86_1_TARGET) \
     1069        $(VBox-xpcom-nspr-x86_1_TARGET) \
     1070        $(VBoxXPCOMGlue_s-x86_1_TARGET) \
     1071        -Wl,-z,defaultextract
     1072
     1073
     1074#
     1075# IPC templates.
     1076#
    10021077ifdef VBOX_IPC_RELEASE_LOG
    10031078IPC_LOGGING = 1
     
    10141089 TEMPLATE_XPCOMIPC_DEFS           += IPC_LOGGING
    10151090endif
    1016 
    10171091TEMPLATE_XPCOMIPC_LIBS             = $(VBoxXPCOM_1_TARGET) $(TEMPLATE_XPCOM_LIBS)
     1092ifneq ($(KBUILD_TARGET),win)
     1093 ifeq ($(filter-out solaris.x86 %.amd64 %.sparc32 %.sparc64,$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)),) ## TODO: cleanup!
     1094  if defined(VBOX_WITH_RELATIVE_RUNPATH) && !defined(VBOX_WITH_HARDENING)
     1095   TEMPLATE_XPCOMIPC_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%',$(TEMPLATE_XPCOM_LDFLAGS)) '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/..'
     1096  endif
     1097 else ifndef VBOX_WITH_HARDENING
     1098  ifdef VBOX_WITH_RELATIVE_RUNPATH
     1099   TEMPLATE_XPCOMIPC_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%',$(TEMPLATE_XPCOM_LDFLAGS)) '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/..'
     1100  endif
     1101 endif
     1102endif
     1103
     1104TEMPLATE_XPCOMIPC-x86              = 32-bit XPCOM IPC libraries
     1105TEMPLATE_XPCOMIPC-x86_EXTENDS      = XPCOMIPC
     1106TEMPLATE_XPCOMIPC-x86_BLD_TRG_ARCH = x86
     1107TEMPLATE_XPCOMIPC-x86_LIBS         = $(VBoxXPCOM-x86_1_TARGET) $(TEMPLATE_XPCOM-x86_LIBS)
     1108
    10181109
    10191110TEMPLATE_XPCOMIPCEXE               = XPCOM IPC executables
     
    10241115endif
    10251116
    1026 VBox-xpcom-ipcutils_TEMPLATE = XPCOMIPC
    1027 VBox-xpcom-ipcutils_INSTTYPE = none
    1028 VBox-xpcom-ipcutils_SOURCES = \
    1029         ipc/ipcd/util/src/ipcMessageReader.cpp \
    1030         ipc/ipcd/util/src/ipcMessageWriter.cpp
    1031 
     1117#
     1118# Shared IPC code. Used by the IPC component as well as the executables.
     1119#
    10321120VBox-xpcom-ipcshared_TEMPLATE = XPCOMIPC
    10331121VBox-xpcom-ipcshared_INSTTYPE = none
     
    10401128        ipc/ipcd/shared/src/ipcIDList.cpp \
    10411129        ipc/ipcd/shared/src/ipcm.cpp
    1042 
    1043 VBox-xpcom-ipcdlock_TEMPLATE = XPCOMIPC
    1044 VBox-xpcom-ipcdlock_INSTTYPE = none
    1045 VBox-xpcom-ipcdlock_SOURCES = \
    1046         ipc/ipcd/extensions/lock/src/ipcLockProtocol.cpp \
    1047         ipc/ipcd/extensions/lock/src/ipcLockService.cpp
    1048 
    1049 VBox-xpcom-ipctransmgr_TEMPLATE = XPCOMIPC
    1050 VBox-xpcom-ipctransmgr_INSTTYPE = none
    1051 VBox-xpcom-ipctransmgr_SOURCES = \
    1052         ipc/ipcd/extensions/transmngr/src/tmTransactionService.cpp
    1053 
    1054 VBox-xpcom-ipctmgrcom_TEMPLATE = XPCOMIPC
    1055 VBox-xpcom-ipctmgrcom_INSTTYPE = none
    1056 VBox-xpcom-ipctmgrcom_SOURCES = \
    1057         ipc/ipcd/extensions/transmngr/common/tmTransaction.cpp \
    1058         ipc/ipcd/extensions/transmngr/common/tmVector.cpp
     1130$(evalcall VBOX_XPCOM_X86,VBox-xpcom-ipcshared)
    10591131
    10601132
     
    10701142        ipc/ipcd/client/src/ipcService.cpp \
    10711143        ipc/ipcd/client/src/ipcModuleFactory.cpp \
    1072         ipc/ipcd/extensions/dconnect/src/ipcDConnectService.cpp
     1144        ipc/ipcd/extensions/dconnect/src/ipcDConnectService.cpp\
     1145    \
     1146        ipc/ipcd/util/src/ipcMessageReader.cpp \
     1147        ipc/ipcd/util/src/ipcMessageWriter.cpp \
     1148    \
     1149        ipc/ipcd/extensions/lock/src/ipcLockProtocol.cpp \
     1150        ipc/ipcd/extensions/lock/src/ipcLockService.cpp \
     1151    \
     1152        ipc/ipcd/extensions/transmngr/src/tmTransactionService.cpp \
     1153    \
     1154        ipc/ipcd/extensions/transmngr/common/tmTransaction.cpp \
     1155        ipc/ipcd/extensions/transmngr/common/tmVector.cpp
     1156
    10731157ifeq ($(KBUILD_TARGET),win)
    10741158VBoxXPCOMIPCC_SOURCES += \
     
    10801164VBoxXPCOMIPCC_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxXPCOMIPCC.dylib
    10811165VBoxXPCOMIPCC_LIBS = \
    1082         $(VBox-xpcom-ipcutils_1_TARGET) \
    1083         $(VBox-xpcom-ipcshared_1_TARGET) \
    1084         $(VBox-xpcom-ipcdlock_1_TARGET) \
    1085         $(VBox-xpcom-ipctransmgr_1_TARGET) \
    1086         $(VBox-xpcom-ipctmgrcom_1_TARGET)
    1087 # EF
    1088 #VBoxXPCOMIPCC_LIBS += $(LIB_RUNTIME)
     1166        $(VBox-xpcom-ipcshared_1_TARGET)
     1167
     1168# 32-bit version of the component.
     1169$(evalcall VBOX_XPCOM_X86,VBoxXPCOMIPCC)
     1170VBoxXPCOMIPCC-x86_LIBS = \
     1171        $(VBox-xpcom-ipcshared-x86_1_TARGET)
    10891172
    10901173
  • trunk/src/libs/xpcom18a4/python/Makefile.kmk

    r41477 r48282  
    2727#
    2828# List of supported Python versions, defining a number of
    29 # VBOX_PYTHON[25|26|27|28|DEF]_[INC|LIB] variables which get picked up below.
     29# VBOX_PYTHON[25|26|27|DEF]_[INC|LIB] variables which get picked up below.
    3030#
    3131ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script.
     
    3333  VBOX_PYTHON25_INC = $(VBOX_PATH_MACOSX_SDK)/usr/include/python2.5
    3434  VBOX_PYTHON25_LIB = $(VBOX_PATH_MACOSX_SDK)/usr/lib/libpython2.5.dylib
     35  VBOX_PYTHON25_LIB_X86 = $(VBOX_PYTHON25_LIB)
    3536 endif
    3637 if  !defined(VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_6) \
     
    3940  VBOX_PYTHON26_INC = $(VBOX_PATH_MACOSX_SDK_10_6)/usr/include/python2.6
    4041  VBOX_PYTHON26_LIB = $(VBOX_PATH_MACOSX_SDK_10_6)/usr/lib/libpython2.6.dylib
     42  VBOX_PYTHON26_LIB_X86 = $(VBOX_PYTHON26_LIB)
    4143 endif
    4244 if  !defined(VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_7) \
     
    4547  VBOX_PYTHON27_INC = $(VBOX_PATH_MACOSX_SDK_10_7)/usr/include/python2.7
    4648  VBOX_PYTHON27_LIB = $(VBOX_PATH_MACOSX_SDK_10_7)/usr/lib/libpython2.7.dylib
     49  VBOX_PYTHON27_LIB_X86 = $(VBOX_PYTHON27_LIB)
    4750 endif
    4851
     
    103106        $(PATH_STAGE_BIN)/VBoxXPCOM$(VBOX_SUFF_DLL)
    104107
     108# 32-bit base.
     109VBoxPythonBase_x86_TEMPLATE = XPCOM-x86
     110VBoxPythonBase_x86_EXTENDS  = VBoxPythonBase
     111VBoxPythonBase_x86_DEFS     = MODULE_NAME_SUFFIX=_x86 $(VBoxPythonBase_DEFS)
     112VBoxPythonBase_x86_LIBS     = \
     113        $(PATH_STAGE_LIB)/VBoxCOM-x86$(VBOX_SUFF_LIB) \
     114        $(PATH_STAGE_BIN)/VBoxXPCOM-x86$(VBOX_SUFF_DLL)
     115
    105116
    106117ifdef VBOX_PYTHON23_INC
     
    114125VBoxPython2_3_INCS       = $(VBOX_PYTHON23_INC)
    115126VBoxPython2_3_LIBS       = $(VBOX_PYTHON23_LIB)
     127
     128 ifdef VBOX_WITH_32_ON_64_MAIN_API
     129DLLS += VBoxPython2_3_x86
     130VBoxPython2_3_x86_EXTENDS    = VBoxPythonBase_x86
     131VBoxPython2_3_x86_EXTENDS_BY = appending
     132VBoxPython2_3_x86_TEMPLATE   = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin",OSX104,-x86)
     133VBoxPython2_3_x86_INCS       = $(VBOX_PYTHON23_INC)
     134VBoxPython2_3_x86_LIBS       = $(VBOX_PYTHON23_LIB_X86)
     135 endif
    116136endif
    117137
     
    125145VBoxPython2_4_INCS       = $(VBOX_PYTHON24_INC)
    126146VBoxPython2_4_LIBS       = $(VBOX_PYTHON24_LIB)
     147
     148 ifdef VBOX_WITH_32_ON_64_MAIN_API
     149DLLS += VBoxPython2_4_x86
     150VBoxPython2_4_x86_EXTENDS    = VBoxPythonBase_x86
     151VBoxPython2_4_x86_EXTENDS_BY = appending
     152VBoxPython2_4_x86_INCS       = $(VBOX_PYTHON24_INC)
     153VBoxPython2_4_x86_LIBS       = $(VBOX_PYTHON24_LIB_X86)
     154 endif
    127155endif
    128156
     
    134162VBoxPython2_5_EXTENDS    = VBoxPythonBase
    135163VBoxPython2_5_EXTENDS_BY = appending
    136 VBoxPython2_5_TEMPLATE   = XPCOM
    137164VBoxPython2_5_INCS       = $(VBOX_PYTHON25_INC)
    138165VBoxPython2_5_LIBS       = $(VBOX_PYTHON25_LIB)
     166
     167 ifdef VBOX_WITH_32_ON_64_MAIN_API
     168DLLS += VBoxPython2_5_x86
     169VBoxPython2_5_x86_EXTENDS    = VBoxPythonBase_x86
     170VBoxPython2_5_x86_EXTENDS_BY = appending
     171VBoxPython2_5_x86_INCS       = $(VBOX_PYTHON25_INC)
     172VBoxPython2_5_x86_LIBS       = $(VBOX_PYTHON25_LIB_X86)
     173 endif
    139174endif
    140175
     
    149184VBoxPython2_6_INCS       = $(VBOX_PYTHON26_INC)
    150185VBoxPython2_6_LIBS       = $(VBOX_PYTHON26_LIB)
     186
     187 ifdef VBOX_WITH_32_ON_64_MAIN_API
     188DLLS += VBoxPython2_6_x86
     189VBoxPython2_6_x86_EXTENDS    = VBoxPythonBase_x86
     190VBoxPython2_6_x86_EXTENDS_BY = appending
     191VBoxPython2_6_x86_TEMPLATE   = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin",OSX106,-x86)
     192VBoxPython2_6_x86_INCS       = $(VBOX_PYTHON26_INC)
     193VBoxPython2_6_x86_LIBS       = $(VBOX_PYTHON26_LIB_X86)
     194 endif
    151195endif
    152196
     
    160204VBoxPython2_7_TEMPLATE   = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin",OSX107,)
    161205VBoxPython2_7_INCS       = $(VBOX_PYTHON27_INC)
    162 VBoxPython2_7_LIBS       = $(VBOX_PYTHON27_LIB)
    163 endif
    164 
    165 ifdef VBOX_PYTHON28_INC
    166 #
    167 # Python 2.8 version
    168 #
    169 DLLS += VBoxPython2_8
    170 VBoxPython2_8_EXTENDS    = VBoxPythonBase
    171 VBoxPython2_8_EXTENDS_BY = appending
    172 VBoxPython2_8_INCS       = $(VBOX_PYTHON28_INC)
    173 VBoxPython2_8_LIBS       = $(VBOX_PYTHON28_LIB)
     206VBoxPython2_7_LIBS       = $(VBOX_PYTHON27_LIB_X86)
     207
     208 ifdef VBOX_WITH_32_ON_64_MAIN_API
     209DLLS += VBoxPython2_7_x86
     210VBoxPython2_7_x86_EXTENDS    = VBoxPythonBase_x86
     211VBoxPython2_7_x86_EXTENDS_BY = appending
     212VBoxPython2_7_x86_TEMPLATE   = XPCOM$(if-expr "$(KBUILD_TARGET)" == "darwin",OSX107,-x86)
     213VBoxPython2_7_x86_INCS       = $(VBOX_PYTHON27_INC)
     214VBoxPython2_7_x86_LIBS       = $(VBOX_PYTHON27_LIB_X86)
     215 endif
    174216endif
    175217
     
    187229 VBoxPython_LIBS        = $(VBoxPythonBase_LIBS) $(VBOX_PYTHONDEF_LIB)
    188230endif
     231
     232 ifdef VBOX_WITH_32_ON_64_MAIN_API
     233VBoxPython_x86_EXTENDS      = VBoxPythonBase_x86
     234VBoxPython_x86_DEFS         = $(filter-out VBOX_PYXPCOM_VERSIONED,$(VBoxPythonBase_x86_DEFS))
     235VBoxPython_x86_INCS         = $(VBoxPythonBase_x86_INCS) $(VBOX_PYTHONDEF_INC)
     236if "$(KBUILD_TARGET)" == "linux"
     237 VBoxPython_x86_LIBS        = $(VBoxPythonBase_x86_LIBS)
     238else
     239 VBoxPython_x86_LIBS        = $(VBoxPythonBase_x86_LIBS) $(VBOX_PYTHONDEF_LIB_X86)
     240endif
     241 endif
    189242endif
    190243
  • trunk/src/libs/xpcom18a4/python/gen_python_deps.py

    r46230 r48282  
    1515import os,sys
    1616
    17 versions = ["2.3", "2.4", "2.5", "2.6", "2.7", "2.8"]
     17versions = ["2.3", "2.4", "2.5", "2.6", "2.7",]
    1818prefixes = ["/usr", "/usr/local", "/opt", "/opt/local"]
    1919known = {}
     
    4444    if bitness_magic > 0:
    4545        print "VBOX_PYTHON%s_LIB=%s%s" %(vers, known[2], sep)
     46        print "VBOX_PYTHON%s_LIB_X86=%s%s" %(vers, known[1], sep)
    4647    else:
    4748        print "VBOX_PYTHON%s_LIB=%s%s" %(vers, known[1], sep)
  • trunk/src/libs/xpcom18a4/python/src/module/_xpcom.cpp

    r46649 r48282  
    7575
    7676#ifdef VBOX_PYXPCOM
     77# include <iprt/cdefs.h>
     78# ifndef MODULE_NAME_SUFFIX
     79#  define MANGLE_MODULE_NAME(a_szName)  a_szName
     80#  define MANGLE_MODULE_INIT(a_Name)    a_Name
     81# else
     82#  define MANGLE_MODULE_NAME(a_szName)  a_szName RT_XSTR(MODULE_NAME_SUFFIX)
     83#  define MANGLE_MODULE_INIT(a_Name)    RT_CONCAT(a_Name, MODULE_NAME_SUFFIX)
     84# endif
    7785# ifdef VBOX_PYXPCOM_VERSIONED
    7886#  if   PY_VERSION_HEX >= 0x02080000
    79 #   define MODULE_NAME "VBoxPython2_8"
     87#   define MODULE_NAME    MANGLE_MODULE_NAME("VBoxPython2_8")
     88#   define initVBoxPython MANGLE_MODULE_INIT(initVBoxPython2_8)
     89
    8090#  elif PY_VERSION_HEX >= 0x02070000
    81 #   define MODULE_NAME "VBoxPython2_7"
     91#   define MODULE_NAME    MANGLE_MODULE_NAME("VBoxPython2_7")
     92#   define initVBoxPython MANGLE_MODULE_INIT(initVBoxPython2_7)
     93
    8294#  elif PY_VERSION_HEX >= 0x02060000
    83 #   define MODULE_NAME "VBoxPython2_6"
     95#   define MODULE_NAME    MANGLE_MODULE_NAME("VBoxPython2_6")
     96#   define initVBoxPython MANGLE_MODULE_INIT(initVBoxPython2_6)
     97
    8498#  elif PY_VERSION_HEX >= 0x02050000
    85 #   define MODULE_NAME "VBoxPython2_5"
     99#   define MODULE_NAME    MANGLE_MODULE_NAME("VBoxPython2_5")
     100#   define initVBoxPython MANGLE_MODULE_INIT(initVBoxPython2_5)
     101
    86102#  elif PY_VERSION_HEX >= 0x02040000
    87 #   define MODULE_NAME "VBoxPython2_4"
     103#   define MODULE_NAME    MANGLE_MODULE_NAME("VBoxPython2_4")
     104#   define initVBoxPython MANGLE_MODULE_INIT(initVBoxPython2_4)
     105
    88106#  elif PY_VERSION_HEX >= 0x02030000
    89 #   define MODULE_NAME "VBoxPython2_3"
     107#   define MODULE_NAME    MANGLE_MODULE_NAME("VBoxPython2_3")
     108#   define initVBoxPython MANGLE_MODULE_INIT(initVBoxPython2_3)
    90109#  else
    91110#   error "Fix module versioning."
    92111#  endif
    93112# else
    94 #  define MODULE_NAME "VBoxPython"
     113#  define MODULE_NAME     MANGLE_MODULE_NAME("VBoxPython")
     114#  define initVBoxPython  MANGLE_MODULE_INIT(initVBoxPython)
    95115# endif
    96116#else
     
    777797extern "C" NS_EXPORT
    778798void
    779 # ifdef VBOX_PYXPCOM_VERSIONED
    780 #  if   PY_VERSION_HEX >= 0x02080000
    781 initVBoxPython2_8() {
    782 #  elif PY_VERSION_HEX >= 0x02070000
    783 initVBoxPython2_7() {
    784 #  elif PY_VERSION_HEX >= 0x02060000
    785 initVBoxPython2_6() {
    786 #  elif PY_VERSION_HEX >= 0x02050000
    787 initVBoxPython2_5() {
    788 #  elif PY_VERSION_HEX >= 0x02040000
    789 initVBoxPython2_4() {
    790 #  elif PY_VERSION_HEX >= 0x02030000
    791 initVBoxPython2_3() {
    792 #  else
    793 #   error "Fix module versioning."
    794 #  endif
    795 # else
    796 initVBoxPython() {
    797 # endif
     799initVBoxPython() { /* NOTE! This name is redefined at the top of the file! */
    798800  static bool s_vboxInited = false;
    799801  if (!s_vboxInited) {
  • trunk/src/libs/xpcom18a4/python/vboxxpcom.py

    r44529 r48282  
    1515import platform
    1616
    17 # this code overcomes somewhat unlucky feature of Python, where it searches
     17#
     18# This code overcomes somewhat unlucky feature of Python, where it searches
    1819# for binaries in the same place as platfom independent modules, while
    1920# rest of Python bindings expect _xpcom to be inside xpcom module
     21#
    2022
    21 candidates = ['VBoxPython' + str(sys.version_info[0]) + '_' + str(sys.version_info[1]),
    22               'VBoxPython' + str(sys.version_info[0]),
    23               'VBoxPython']
     23_asVBoxPythons = [
     24    'VBoxPython' + str(sys.version_info[0]) + '_' + str(sys.version_info[1]),
     25    'VBoxPython' + str(sys.version_info[0]),
     26    'VBoxPython'
     27];
     28
     29# On platforms where we ship both 32-bit and 64-bit API bindings, we have to
     30# look for the right set if we're a 32-bit process.
     31if platform.system() in [ 'SunOS', ] and sys.maxsize <= 2**32:
     32    _asNew = [ sCandidate + '_x86' for sCandidate in _asVBoxPythons ];
     33    _asNew.extend(_asVBoxPythons);
     34    _asVBoxPythons = _asNew;
     35    del _asNew;
     36
     37# On Darwin (aka Mac OS X) we know exactly where things are in a normal
     38# VirtualBox installation.
     39## @todo Edit this at build time to the actual VBox location set in the make files.
     40## @todo We know the location for most hardened builds, not just darwin!
    2441if platform.system() == 'Darwin':
    25     # On Darwin (aka Mac OS X) we know exactly where things are in a normal
    26     # VirtualBox installation. Also, there are two versions of python there
    27     # (2.3.x and 2.5.x) depending on whether the os is striped or spotty, so
    28     # we have to choose the right module to load.
    29     #
    30     # XXX: This needs to be adjusted for OSE builds. A more general solution would
    31     #      be to to sed the file during install and inject the VBOX_PATH_APP_PRIVATE_ARCH
    32     #      and VBOX_PATH_SHARED_LIBS when these are set.
    3342    sys.path.append('/Applications/VirtualBox.app/Contents/MacOS')
    3443
    35 cglue = None
    36 for m in candidates:
    37    try:
    38       cglue =  __import__(m)
    39       break
    40    except:
    41       pass
     44_oVBoxPythonMod = None
     45for m in _asVBoxPythons:
     46    try:
     47        _oVBoxPythonMod =  __import__(m)
     48        break
     49    except Exception, x:
     50        print 'm=%s x=%s' % (m, x);
     51    #except:
     52    #    pass
    4253
    4354if platform.system() == 'Darwin':
    4455    sys.path.remove('/Applications/VirtualBox.app/Contents/MacOS')
    4556
    46 if cglue == None:
    47     raise Exception, "Cannot find VBoxPython module"
     57if _oVBoxPythonMod == None:
     58    raise Exception('Cannot find VBoxPython module (tried: %s)' % (', '.join(_asVBoxPythons),));
    4859
    49 sys.modules['xpcom._xpcom'] = cglue
    50 xpcom._xpcom = cglue
     60sys.modules['xpcom._xpcom'] = _oVBoxPythonMod;
     61xpcom._xpcom = _oVBoxPythonMod;
    5162
  • trunk/src/libs/xpcom18a4/xpcom/components/nsNativeComponentLoader.cpp

    r38276 r48282  
    675675    *registered = PR_FALSE;
    676676
     677#ifndef VBOX
    677678    /* this should be a pref or registry entry, or something */
    678679    static const char *ValidDllExtensions[] = {
     
    749750        // Skip invalid extensions
    750751        return NS_OK;
     752
     753#else /* VBOX */
     754    /* VBox: Only one valid suffix exist, so dispense with the the list. */
     755# ifdef RT_OS_DARWIN
     756#  ifdef VBOX_IN_32_ON_64_MAIN_API
     757    static const char s_szSuff[]        = "-x86.dylib";
     758#  else
     759    static const char s_szSuff[]        = ".dylib";
     760    static const char s_szSuffInvalid[] = "-x86.dylib";
     761#  endif
     762# elif defined(RT_OS_OS2) || defined(RT_OS_WINDOWS)
     763#  ifdef VBOX_IN_32_ON_64_MAIN_API
     764    static const char s_szSuff[]        = "-x86.dll";
     765#else
     766    static const char s_szSuff[]        = ".dll";
     767    static const char s_szSuffInvalid[] = "-x86.dll";
     768#  endif
     769# else
     770#  ifdef VBOX_IN_32_ON_64_MAIN_API
     771    static const char s_szSuff[]        = "-x86.so";
     772#else
     773    static const char s_szSuff[]        = ".so";
     774    static const char s_szSuffInvalid[] = "-x86.so";
     775#  endif
     776# endif
     777
     778    nsCAutoString strLeafName;
     779    rv = component->GetNativeLeafName(strLeafName);
     780    if (NS_FAILED(rv))
     781        return rv;
     782    size_t cchLeafName = strLeafName.Length();
     783    if (   cchLeafName <= sizeof(s_szSuff)
     784        || PL_strcasecmp(strLeafName.get() + cchLeafName - sizeof(s_szSuff) + 1, s_szSuff))
     785    {
     786        PR_LOG(nsComponentManagerLog, PR_LOG_DEBUG, ("Skipping '%s'...", strLeafName.get()));
     787        return NS_OK; /* skip */
     788    }
     789# ifndef VBOX_IN_32_ON_64_MAIN_API
     790    if (   cchLeafName >= sizeof(s_szSuffInvalid)
     791        && !PL_strcasecmp(strLeafName.get() + cchLeafName - sizeof(s_szSuffInvalid) + 1, s_szSuffInvalid))
     792    {
     793        PR_LOG(nsComponentManagerLog, PR_LOG_DEBUG, ("Skipping '%s' (#2)...", strLeafName.get()));
     794        return NS_OK; /* skip */
     795    }
     796# endif
     797    PR_LOG(nsComponentManagerLog, PR_LOG_DEBUG, ("... '%s'", strLeafName.get()));
     798#endif /* VBOX */
    751799
    752800    nsXPIDLCString persistentDescriptor;
  • trunk/src/libs/zlib-1.2.6/Makefile.kmk

    r41477 r48282  
    4747VBox-zlib-static_SOURCES = $(VBox-zlib_SOURCES)
    4848
     49ifdef VBOX_WITH_32_ON_64_MAIN_API # 32-bit edition.
     50 LIBRARIES += VBox-zlib-x86
     51 VBox-zlib-x86_TEMPLATE = VBoxR3Dll-x86
     52 VBox-zlib-x86_EXTENDS = VBox-zlib
     53endif
     54
    4955include $(FILE_KBUILD_SUB_FOOTER)
    5056
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette