VirtualBox

Changeset 59418 in vbox


Ignore:
Timestamp:
Jan 20, 2016 1:39:26 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
105140
Message:

Main,Installer/win: VBoxProxyStubLegacy for 32-bit windows as well - less ifdefs and no difference in W7+ behaviour between x86 and AMD64.

Location:
trunk/src/VBox
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Installer/win/VBoxMergeApp.wxi

    r59397 r59418  
    8181
    8282    <Component Id="cp_ProxyStub" Guid="CDD09BA4-8D87-4383-DCA6-1CCCF9D11091" Win64="$(var.Property_Win64)">
    83     <?if $(env.BUILD_TARGET_ARCH) != "x86" ?>
    84         <!-- AMD64: Only install this proxy stub DLL on Windows 7 and later (OLE32 imports). -->
     83        <!-- Only install this proxy stub DLL on Windows 7 and later (OLE32.ObjectStublessClientXX imports). -->
    8584        <Condition><![CDATA[(VersionNT >= 601)]]></Condition>
    86     <?endif ?>
    8785        <File Id="file_VBoxProxyStub" Name="VBoxProxyStub.dll" KeyPath="yes"
    8886              Source="$(env.PATH_OUT)\bin\VBoxProxyStub.dll">
     
    9391    </Component>
    9492
    95     <?if $(env.BUILD_TARGET_ARCH) != "x86" ?>
    9693    <Component Id="cp_ProxyStubLegacy" Guid="97F12055-5B6D-481C-E8CD-F41D8C733280" Win64="$(var.Property_Win64)">
    97         <!-- AMD64: Only install this proxy stub DLL pre-Windows 7 (legacy NDR stuff). -->
     94        <!-- Only install this proxy stub DLL pre-Windows 7 (AMD64: legacy NDR stuff; Both: No ObjectStublessClientXX). -->
    9895        <Condition><![CDATA[(VersionNT < 601)]]></Condition>
    9996        <File Id="file_VBoxProxyStubLegacy" Name="VBoxProxyStubLegacy.dll" KeyPath="yes"
     
    104101        <?include $(env.PATH_TARGET)\VirtualBox_TypeLib.wxi ?>
    105102    </Component>
    106     <?endif ?>
    107103
    108104<?endif?>
  • trunk/src/VBox/Installer/win/VirtualBox.wxs

    r59411 r59418  
    401401    <?if $(env.VBOX_WITH_MIDL_PROXY_STUB) = "yes" ?>
    402402        <ComponentRef Id="cp_ProxyStub" />
    403         <?if $(env.BUILD_TARGET_ARCH) != "x86" ?>
    404403        <ComponentRef Id="cp_ProxyStubLegacy" />
    405         <?endif?>
    406404    <?endif?>
    407405        <ComponentRef Id="cp_MainBinaries" />
  • trunk/src/VBox/Main/Makefile.kmk

    r59407 r59418  
    935935        $(VBoxCOM_0_OUTDIR)/VirtualBox.h \
    936936        $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb
    937  ifeq ($(KBUILD_TARGET_ARCH),amd64)
    938   VBoxCOM_CLEAN        += \
    939         $(VBoxCOM_0_OUTDIR)/old64/VirtualBox_i.c \
    940         $(VBoxCOM_0_OUTDIR)/old64/VirtualBox_p.c \
    941         $(VBoxCOM_0_OUTDIR)/old64/dlldata.c \
    942         $(VBoxCOM_0_OUTDIR)/old64/VirtualBox.h \
    943         $(VBoxCOM_0_OUTDIR)/old64/VirtualBox.tlb
    944   VBoxCOM_BLDDIRS      = $(VBoxCOM_0_OUTDIR)/old64/
    945  endif
     937 VBoxCOM_CLEAN        += \
     938        $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox_i.c \
     939        $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox_p.c \
     940        $(VBoxCOM_0_OUTDIR)/legacy/dlldata.c \
     941        $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox.h \
     942        $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox.tlb
     943 VBoxCOM_BLDDIRS      = $(VBoxCOM_0_OUTDIR)/legacy/
    946944else # !win
    947945 VBoxCOM_SOURCES       += \
     
    10471045 VBoxProxyStub_DEFS.win.x86 = WIN32
    10481046 VBoxProxyStub_SDKS     = VBOX_NTDLL
     1047 VBoxProxyStub_DEFPATH  = $(VBoxCOM_0_OUTDIR)/# Hack to workaround drive letter in $(VBoxCOM_0_OUTDIR)/ for CFLAGS hack below.
    10491048 VBoxProxyStub_INCS     = $(VBoxCOM_0_OUTDIR)/
    1050  VBoxProxyStub_SOURCES  = \
    1051         $(VBoxCOM_0_OUTDIR)/VirtualBox_p.c \
    1052         $(VBoxCOM_0_OUTDIR)/VirtualBox_i.c \
     1049 VBoxProxyStub_SOURCES := \
     1050        VirtualBox_p.c \
     1051        VirtualBox_i.c \
     1052        $(PATH_SUB_CURRENT)/src-all/win/VBoxProxyStub.def \
     1053        $(PATH_SUB_CURRENT)/src-all/win/VBoxProxyStub.rc \
     1054        $(PATH_SUB_CURRENT)/src-all/win/VBoxProxyStub.c
     1055 src-all/win/VBoxProxyStub.rc_DEPS = $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb
     1056 VBoxProxyStub_VirtualBox_p.c_CFLAGS.x86 = /Gz # Workaround for incorrect ObjectStublessClient* prototypes in SDK v7.1.
     1057
     1058 DLLS += VBoxProxyStubLegacy
     1059 VBoxProxyStubLegacy_TEMPLATE = VBOXMAINCOMP
     1060 VBoxProxyStubLegacy_EXTENDS  = VBoxProxyStub
     1061 VBoxProxyStubLegacy_DEFS     = $(VBoxProxyStub_DEFS) VBOX_IN_PROXY_STUB_LEGACY
     1062 VBoxProxyStubLegacy_INCS     = $(VBoxCOM_0_OUTDIR)/legacy/
     1063 VBoxProxyStubLegacy_SOURCES  = \
     1064        $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox_p.c \
     1065        $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox_i.c \
    10531066        src-all/win/VBoxProxyStub.def \
    1054         src-all/win/VBoxProxyStub.rc \
     1067        src-all/win/VBoxProxyStubLegacy.rc \
    10551068        src-all/win/VBoxProxyStub.c
    1056   src-all/win/VBoxProxyStub.rc_DEPS = $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb
    1057 
    1058  ifeq ($(KBUILD_TARGET_ARCH),amd64)
    1059   DLLS += VBoxProxyStubLegacy
    1060   VBoxProxyStubLegacy_TEMPLATE = VBOXMAINCOMP
    1061   VBoxProxyStubLegacy_EXTENDS  = VBoxProxyStub
    1062   VBoxProxyStubLegacy_DEFS     = $(VBoxProxyStub_DEFS) VBOX_IN_PROXY_STUB_LEGACY
    1063   VBoxProxyStubLegacy_INCS     = $(VBoxCOM_0_OUTDIR)/old64/
    1064   VBoxProxyStubLegacy_SOURCES  = \
    1065         $(VBoxCOM_0_OUTDIR)/old64/VirtualBox_p.c \
    1066         $(VBoxCOM_0_OUTDIR)/old64/VirtualBox_i.c \
    1067         src-all/win/VBoxProxyStub.def \
    1068         src-all/win/VBoxProxyStubLegacy.rc \
    1069         src-all/win/VBoxProxyStub.c
    1070   src-all/win/VBoxProxyStubLegacy.rc_DEPS = $(VBoxCOM_0_OUTDIR)/old64/VirtualBox.tlb
    1071  endif
     1069 src-all/win/VBoxProxyStubLegacy.rc_DEPS = $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox.tlb
    10721070
    10731071 ifdef VBOX_WITH_32_ON_64_MAIN_API
     
    11401138+ $(VBoxCOM_0_OUTDIR)/VirtualBox.tlb: $(VBOX_IDL_FILE.MSCOM) | $$(dir $$@)
    11411139        $(VBOX_WIN_MIDL) /nologo \
    1142                 $(if-expr "$(KBUILD_TARGET_ARCH)" == "amd64" && "$(KBUILD_HOST)" == "win" \
     1140                $(if-expr "$(KBUILD_TARGET_ARCH)" == "amd64" \
    11431141                ,/env amd64 /robust /protocol all /target NT61\
    1144                 ,/env win32 /robust /protocol all /target NT51) \
     1142                ,/env win32 /robust /protocol all /target NT61) \
    11451143                /out $(call VBOX_FN_MAKE_WIN_PATH,$(VBoxCOM_0_OUTDIR)) \
    11461144                /cpp_cmd $(subst $(EXEC_X86_WIN32),,$(call VBOX_FN_MAKE_WIN_PATH,$(TOOL_$(VBOX_VCC_TOOL)_CC))) \
     
    11491147                $(call VBOX_FN_MAKE_WIN_PATH,$<)
    11501148
    1151 if defined(VBOX_WITH_MIDL_PROXY_STUB) && "$(KBUILD_TARGET_ARCH)" == "amd64"
     1149if defined(VBOX_WITH_MIDL_PROXY_STUB)
    11521150# -Windows Server 2003 AMD64 SP1 does not like the result when using '/protocol all' and '/target NT51'.
    11531151# -Vista AMD64 SP1 and Windows Server 2008 AMD64 seems to have some objections as well, but it seemed
    11541152#  that using an older MIDL compiler (v7.00.0499 instead of v7.00.0555) helps. But the W2K3 fix also works.
    1155 $(VBoxCOM_0_OUTDIR)/old64/VirtualBox_i.c \
    1156 + $(VBoxCOM_0_OUTDIR)/old64/VirtualBox_p.c\
    1157 + $(VBoxCOM_0_OUTDIR)/old64/dlldata.c \
    1158 + $(VBoxCOM_0_OUTDIR)/old64/VirtualBox.h \
    1159 + $(VBoxCOM_0_OUTDIR)/old64/VirtualBox.tlb: $(VBOX_IDL_FILE.MSCOM) | $$(dir $$@)
     1153# To avoid 32-bit vs. 64-bit differences, we do the same for 32-bit windows versions.
     1154$(VBoxCOM_0_OUTDIR)/legacy/VirtualBox_i.c \
     1155+ $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox_p.c\
     1156+ $(VBoxCOM_0_OUTDIR)/legacy/dlldata.c \
     1157+ $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox.h \
     1158+ $(VBoxCOM_0_OUTDIR)/legacy/VirtualBox.tlb: $(VBOX_IDL_FILE.MSCOM) | $$(dir $$@)
    11601159        $(VBOX_WIN_MIDL) /nologo \
    1161                 /env win64 /x64 /robust /target NT50 \
     1160                $(if-expr "$(KBUILD_TARGET_ARCH)" == "amd64" \
     1161                ,/env amd64 /x64 /target NT50 /robust \
     1162                ,/env win32      /target NT51 /robust /protocol all ) \
    11621163                /out $(call VBOX_FN_MAKE_WIN_PATH,$(dir $@)) \
    11631164                /cpp_cmd $(subst $(EXEC_X86_WIN32),,$(call VBOX_FN_MAKE_WIN_PATH,$(TOOL_$(VBOX_VCC_TOOL)_CC))) \
     
    11671168endif
    11681169
     1170# The XP targetted 32-bit proxy stub works with all versions of windows (the
     1171# issues leading to the VBoxProxyStubLegacy.dll are only on 64-bit windows).
    11691172$(VBoxCOM-x86_0_OUTDIR)/VirtualBox_i.c \
    11701173+ $(VBoxCOM-x86_0_OUTDIR)/VirtualBox.h \
    11711174$(if $(VBOX_WITH_MIDL_PROXY_STUB),+ $(VBoxCOM-x86_0_OUTDIR)/VirtualBox_p.c + $(VBoxCOM-x86_0_OUTDIR)/dlldata.c,) \
    11721175+ $(VBoxCOM-x86_0_OUTDIR)/VirtualBox-x86.tlb: $(VBOX_IDL_FILE.MSCOM) | $$(dir $$@)
    1173         $(VBOX_WIN_MIDL) /nologo /env win32 /target NT51 \
    1174                 /robust /protocol all \
     1176        $(VBOX_WIN_MIDL) /nologo \
     1177                /env win32 /target NT51 /robust /protocol all \
    11751178                /out $(call VBOX_FN_MAKE_WIN_PATH,$(VBoxCOM-x86_0_OUTDIR)) \
    11761179                /tlb $(call VBOX_FN_MAKE_WIN_PATH,$(VBoxCOM-x86_0_OUTDIR)/VirtualBox-x86.tlb) \
  • trunk/src/VBox/Main/glue/initterm.cpp

    r59385 r59418  
    258258#  ifndef VBOX_IN_32_ON_64_MAIN_API
    259259            rc = RTPathAppend(szPath, sizeof(szPath),
    260 #   if ARCH_BITS == 64
    261260                                 RT_MAKE_U64(((PKUSER_SHARED_DATA)MM_SHARED_USER_DATA_VA)->NtMinorVersion,
    262261                                             ((PKUSER_SHARED_DATA)MM_SHARED_USER_DATA_VA)->NtMajorVersion)
    263262                              >= RT_MAKE_U64(1/*Lo*/,6/*Hi*/)
    264                               ? "VBoxProxyStub.dll" : "VBoxProxyStubLegacy.dll"
    265 #   else
    266                               "VBoxProxyStub.dll"
    267 #   endif
    268                               );
     263                              ? "VBoxProxyStub.dll" : "VBoxProxyStubLegacy.dll");
    269264#  else
    270265            rc = RTPathAppend(szPath, sizeof(szPath), "x86\\VBoxProxyStub-x86.dll");
  • trunk/src/VBox/Main/src-all/win/VBoxProxyStub.c

    r59417 r59418  
    7979#if ARCH_BITS == 64 || defined(VBOX_IN_32_ON_64_MAIN_API)
    8080# define VBPS_PROXY_STUB_FILE(a_fIs32On64) \
    81     ( (a_fIs32On64) ? "x86\\VBoxProxyStub-x86.dll" \
    82       : RT_MAKE_U64(((PKUSER_SHARED_DATA)MM_SHARED_USER_DATA_VA)->NtMinorVersion, \
    83                     ((PKUSER_SHARED_DATA)MM_SHARED_USER_DATA_VA)->NtMajorVersion) >= RT_MAKE_U64(1/*Lo*/,6/*Hi*/) \
    84         ? "VBoxProxyStub.dll" : "VBoxProxyStubLegacy.dll" )
     81    ( (a_fIs32On64) ? "x86\\VBoxProxyStub-x86.dll" : VBPS_PROXY_STUB_FILE_SUB() )
    8582#else
    8683# define VBPS_PROXY_STUB_FILE(a_fIs32On64) "VBoxProxyStub.dll"
    8784#endif
     85#define VBPS_PROXY_STUB_FILE_SUB() \
     86    ( RT_MAKE_U64(((PKUSER_SHARED_DATA)MM_SHARED_USER_DATA_VA)->NtMinorVersion, \
     87                  ((PKUSER_SHARED_DATA)MM_SHARED_USER_DATA_VA)->NtMajorVersion) >= RT_MAKE_U64(1/*Lo*/,6/*Hi*/) \
     88      ? "VBoxProxyStub.dll" : "VBoxProxyStubLegacy.dll" )
    8889
    8990
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