VirtualBox

Changeset 46474 in vbox for trunk


Ignore:
Timestamp:
Jun 10, 2013 4:02:12 PM (12 years ago)
Author:
vboxsync
Message:

VBoxDef2LazyLoad: Added tool for generating lazy loading of VBoxVMM.dll to prevent it being loaded into VBoxSVC and the VM selector.

Location:
trunk
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Config.kmk

    r46449 r46474  
    16371637 LIB_DDU         = $(PATH_STAGE_LIB)/VBoxDDU.lib
    16381638endif
     1639if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), win.amd64)
     1640 VBOX_LIB_VMM_LAZY      = $(PATH_STAGE_LIB)/VMMR3LazyImp$(VBOX_SUFF_LIB)
     1641else
     1642 VBOX_LIB_VMM_LAZY      = $(LIB_VMM)
     1643endif
    16391644VBOX_LIB_SUPHARDENED    = $(PATH_STAGE_LIB)/SUPR3HardenedStatic$(VBOX_SUFF_LIB)
    16401645VBOX_LIB_RUNTIME_STATIC = $(PATH_STAGE_LIB)/RuntimeR3$(VBOX_SUFF_LIB)
     
    17301735# MakeAlternativeSource (for BIOSes)
    17311736VBOX_MAKE_ALTERNATIVE_SOURCE ?= $(PATH_OBJ)/MakeAlternativeSource/MakeAlternativeSource$(HOSTSUFF_EXE)
     1737
     1738# VBoxDef2LazyLoad (lazy dynamic library loader assembly generator)
     1739VBOX_DEF_2_LAZY_LOAD ?= $(PATH_OBJ)/VBoxDef2LazyLoad/VBoxDef2LazyLoad$(HOSTSUFF_EXE)
    17321740
    17331741# GNU tar if present.
     
    41254133 endif
    41264134 ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
    4127   if1of ($(KBUILD_TARGET), win os2)
     4135  if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), win.amd64)
     4136   TEMPLATE_VBoxR3ExtPack_LIBS = \
     4137        $(TEMPLATE_LIBS_VBOXR3) \
     4138        $(VBOX_LIB_VMM_LAZY) \
     4139        $(PATH_STAGE_LIB)/VBoxRTImp$(VBOX_SUFF_LIB)
     4140  else if1of ($(KBUILD_TARGET), win os2)
    41284141   TEMPLATE_VBoxR3ExtPack_LIBS = \
    41294142        $(TEMPLATE_LIBS_VBOXR3) \
     
    41404153        $(TEMPLATE_LIBS_VBOXR3) \
    41414154        $(LIB_RUNTIME) \
    4142         $(LIB_VMM)
     4155        $(VBOX_LIB_VMM_LAZY)
    41434156 endif
    41444157
     
    42884301        $(VBOX_LIBS_QT4) \
    42894302        $(LIB_RUNTIME) \
     4303        $(VBOX_LIB_VMM_LAZY) \
    42904304        $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/msvcprt.lib \
    42914305        $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/msvcrt.lib \
     
    43324346        $(LIB_SDL) \
    43334347        $(LIB_RUNTIME) \
    4334         $(LIB_REM) \
    4335         $(LIB_VMM)
     4348        $(if-expr "$(LIB_VMM)" == "$(VBOX_LIB_VMM_LAZY)",$(LIB_REM),) \
     4349        $(VBOX_LIB_VMM_LAZY)
    43364350
    43374351  ifeq ($(KBUILD_TARGET),linux)
  • trunk/src/VBox/Debugger/Makefile.kmk

    r41561 r46474  
    4747        DBGCCmdHlp.cpp \
    4848        DBGCCmdWorkers.cpp \
    49                 DBGCCommands.cpp \
     49        DBGCCommands.cpp \
    5050        DBGCFunctions.cpp \
    5151        DBGCEmulateCodeView.cpp \
     
    6767        DBGPlugInCommonELF.cpp
    6868DBGCPlugInDiggers_LIBS = \
    69         $(LIB_VMM) \
    70         $(LIB_REM) \
     69        $(if-expr "$(LIB_VMM)" == "$(VBOX_LIB_VMM_LAZY)",$(LIB_REM),) \
     70        $(VBOX_LIB_VMM_LAZY) \
    7171        $(LIB_RUNTIME)
    7272
     
    108108        VBoxDbgStatsQt4.cpp
    109109VBoxDbg_LIBS = \
    110         $(LIB_VMM)
     110        $(VBOX_LIB_VMM_LAZY)
    111111VBoxDbg_LDFLAGS.darwin = \
    112112        -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxDbg.dylib
  • trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk

    r46293 r46474  
    188188endif
    189189
    190 ifdef VBOX_WITH_VIDEOHWACCEL
    191 # Necessary for save state support
    192 VirtualBox_LIBS += $(LIB_VMM)
    193 endif
    194190ifeq ($(KBUILD_TYPE),release)
    195191 VirtualBox_LDFLAGS.win   += /SUBSYSTEM:windows
  • trunk/src/VBox/Main/Makefile.kmk

    r45805 r46474  
    586586        -exported_symbols_list $(VBoxC_0_OUTDIR)/VBoxC.def \
    587587        -framework IOKit
    588 VBoxC_LDFLAGS.win += /DELAYLOAD:VBoxVMM.dll /MANIFEST
     588VBoxC_LDFLAGS.win += /MANIFEST
    589589
    590590VBoxC_LIBS += \
    591         $(LIB_VMM) \
    592         $(LIB_REM)
     591        $(if-expr "$(LIB_VMM)" == "$(VBOX_LIB_VMM_LAZY)",$(LIB_REM),) \
     592        $(VBOX_LIB_VMM_LAZY)
    593593
    594594ifdef VBOX_WITH_NETFLT
  • trunk/src/VBox/VMM/Makefile.kmk

    r46423 r46474  
    362362$(call VBOX_GENERATE_IMPORT_TARGET_FN,VMMR3Imp,VBoxVMM,VMMR3/VMMR3.def)
    363363
     364if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH), win.amd64)
     365 #
     366 # VMMR3LazyImp.lib (experimental)
     367 #
     368 IMPORT_LIBS += VMMR3LazyImp
     369 VMMR3LazyImp_TEMPLATE = VBoxR3Dll
     370 VMMR3LazyImp_INST     = $(INST_LIB)
     371 VMMR3LazyImp_SOURCES  = $(VMMR3LazyImp_0_OUTDIR)/VMMR3LazyLoad.asm
     372 VMMR3LazyImp_CLEAN    = $(VMMR3LazyImp_0_OUTDIR)/VMMR3LazyLoad.asm
     373 $$(VMMR3LazyImp_0_OUTDIR)/VMMR3LazyLoad.asm: $(PATH_SUB_CURRENT)/VMMR3/VMMR3.def $(VBOX_DEF_2_LAZY_LOAD)
     374        $(VBOX_DEF_2_LAZY_LOAD) --output $@ --library VBoxVMM $<
     375endif
     376
    364377
    365378if defined(VBOX_WITH_RAW_MODE) && !defined(VBOX_ONLY_EXTPACKS)
  • trunk/src/VBox/VMM/VMMR3/VMMR3.def

    r37529 r46474  
    9292    CFGMR3QueryString
    9393    CFGMR3QueryStringAlloc
     94    CFGMR3GetParent
     95    CFGMR3GetRootU
     96
     97    CSAMR3IsEnabled
     98    CSAMR3SetScanningEnabled
     99
     100    DBGCCreate
     101
     102    DBGFR3CoreWrite
     103    DBGFR3Info
     104    DBGFR3InfoRegisterExternal
     105    DBGFR3InjectNMI
     106    DBGFR3LogModifyDestinations
     107    DBGFR3LogModifyFlags
     108    DBGFR3LogModifyGroups
     109    DBGFR3OSDetect
     110    DBGFR3OSQueryNameAndVersion
     111    DBGFR3RegCpuQueryU32
     112    DBGFR3RegFormatValue
     113    DBGFR3RegNmQuery
     114    DBGFR3RegNmQueryAll
     115    DBGFR3RegNmQueryAllCount
     116    DBGFR3OSDeregister
     117    DBGFR3OSRegister
     118    DBGFR3MemReadString
     119    DBGFR3MemRead
     120    DBGFR3MemScan
     121    DBGFR3AddrFromFlat
     122    DBGFR3AsSymbolByName
     123    DBGFR3AsResolveAndRetain
     124    DBGFR3AsSetAlias
     125    DBGFR3AddrAdd
     126    DBGFR3AddrSub
     127    DBGFR3AsGetConfig
     128    DBGFR3CpuGetMode
     129    DBGFR3AddrFromSelOff
     130
     131    EMR3QueryExecutionPolicy
     132    EMR3SetExecutionPolicy
     133
     134    FTMR3CancelStandby
     135    FTMR3PowerOn
     136
     137    HMR3IsEnabled
     138    HMR3IsNestedPagingActive
     139    HMR3IsUXActive
     140    HMR3IsVpidActive
    94141
    95142    MMR3HeapFree
    96143    MMR3HeapRealloc
     144
     145    PATMR3AllowPatching
     146    PATMR3IsEnabled
     147
     148    PDMR3AsyncCompletionBwMgrSetMaxForFile
     149    PDMR3DeviceAttach
     150    PDMR3DeviceDetach
     151    PDMR3DriverAttach
     152    PDMR3NsBwGroupSetLimit
     153    PDMR3QueryDeviceLun
     154    PDMR3QueryDriverOnLun
     155    PDMR3QueryLun
    97156
    98157    PDMCritSectEnter
     
    127186    PDMR3ThreadSuspend
    128187
     188    PDMR3UsbCreateProxyDevice
     189    PDMR3UsbDetachDevice
     190    PDMR3UsbHasHub
     191
    129192    PGMHandlerPhysicalPageTempOff
    130193    PGMPhysReadGCPtr
     
    135198    PGMPhysWriteGCPtr
    136199    PGMShwMakePageWritable
     200    PGMR3QueryGlobalMemoryStats
     201    PGMR3QueryMemoryStats
    137202
    138203    SSMR3Close
     
    212277    SSMR3SkipToEndOfUnit
    213278    SSMR3ValidateFile
     279    SSMR3Cancel
     280    SSMR3RegisterExternal
     281
     282    STAMR3Dump
     283    STAMR3Enum
     284    STAMR3Reset
     285    STAMR3Snapshot
     286    STAMR3SnapshotFree
     287    STAMR3GetUnit
    214288
    215289    TMR3TimerSetCritSect
     
    242316    TMTimerToNano
    243317    TMTimerUnlock
     318    TMR3GetWarpDrive
     319    TMR3SetWarpDrive
     320
     321    VMMGetCpu
    244322
    245323    VMMGetSvnRev
    246324    VMSetError
    247325    VMSetErrorV
     326    VMR3AtErrorDeregister
     327    VMR3AtErrorRegister
     328    VMR3AtRuntimeErrorRegister
     329    VMR3AtStateRegister
     330    VMR3Create
     331    VMR3Destroy
     332    VMR3GetCpuCoreAndPackageIdFromCpuId
     333    VMR3GetStateName
     334    VMR3GetStateU
     335    VMR3GetVM
     336    VMR3HotPlugCpu
     337    VMR3HotUnplugCpu
     338    VMR3LoadFromFile
     339    VMR3LoadFromStream
     340    VMR3PowerOff
     341    VMR3PowerOn
     342    VMR3ReleaseUVM
     343    VMR3ReqCallU
     344    VMR3ReqCallVoidWaitU
     345    VMR3ReqCallWaitU
     346    VMR3ReqFree
     347    VMR3ReqPriorityCallWaitU
     348    VMR3ReqWait
     349    VMR3Reset
     350    VMR3Resume
     351    VMR3RetainUVM
     352    VMR3Save
     353    VMR3SetCpuExecutionCap
     354    VMR3SetError
     355    VMR3Suspend
     356    VMR3Teleport
     357    VMR3AtStateDeregister
     358    VMR3GetUVM
     359
  • trunk/src/bldprogs/Makefile.kmk

    r42269 r46474  
    6262VBoxPeSetVersion_SOURCES  = VBoxPeSetVersion.cpp
    6363
     64
     65BLDPROGS.win += VBoxDef2LazyLoad
     66VBoxDef2LazyLoad_TEMPLATE = VBOXBLDPROG
     67VBoxDef2LazyLoad_SOURCES  = VBoxDef2LazyLoad.cpp
     68
     69
    6470include $(FILE_KBUILD_SUB_FOOTER)
    6571
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