VirtualBox

Changeset 5501 in vbox for trunk/src/libs


Ignore:
Timestamp:
Oct 25, 2007 10:37:58 AM (18 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
25693
Message:

Main/XPCOM: Sorted out the XPCOM glue library usage: the standalone glue library is not used anymore (and should never be used when linking to the shared XPCOM library directly). This finally solved XPCOM symbol conflicts & mixups.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/xpcom18a4/Makefile.kmk

    r5486 r5501  
    221221        VBox-xpcom-xptcall \
    222222        VBox-xpcom-proxy \
     223        VBoxXPCOMGlue_s \
    223224        VBoxXPCOMGlue \
    224225        VBox-xpcom-ipcutils \
     
    428429        xpcom/ds/nsBaseHashtable.h \
    429430        xpcom/ds/nsCOMArray.h \
    430         xpcom/glue/nsCOMPtr.h \
    431431        xpcom/ds/nsCRT.h \
    432432        xpcom/components/nsCategoryManagerUtils.h \
     
    438438        xpcom/ds/nsCppSharedAllocator.h \
    439439        xpcom/ds/nsDataHashtable.h \
    440         xpcom/glue/nsDebug.h \
    441440        xpcom/base/nsDebugImpl.h \
    442441        xpcom/ds/nsDeque.h \
     
    452451        xpcom/io/nsFastLoadService.h \
    453452        xpcom/ds/nsFixedSizeAllocator.h \
    454         xpcom/glue/nsGenericFactory.h \
    455453        xpcom/ds/nsHashKeys.h \
    456454        xpcom/ds/nsHashSets.h \
     
    459457        xpcom/ds/nsIByteBuffer.h \
    460458        xpcom/base/nsID.h \
    461         xpcom/glue/nsIGenericFactory.h \
    462459        xpcom/base/nsIID.h \
    463         xpcom/glue/nsIInterfaceRequestorUtils.h \
    464460        xpcom/components/nsIServiceManagerObsolete.h \
    465461        xpcom/components/nsIServiceManagerUtils.h \
    466462        xpcom/base/nsISupportsBase.h \
    467         xpcom/glue/nsISupportsImpl.h \
    468463        xpcom/base/nsISupportsObsolete.h \
    469         xpcom/glue/nsISupportsUtils.h \
    470464        xpcom/ds/nsIUnicharBuffer.h \
    471465        xpcom/io/nsIUnicharInputStream.h \
    472         xpcom/glue/nsIWeakReferenceUtils.h \
    473466        xpcom/ds/nsInt64.h \
    474467        xpcom/ds/nsInterfaceHashtable.h \
     
    478471        xpcom/io/nsLocalFileOS2.h \
    479472        xpcom/io/nsLocalFileOSX.h \
    480         xpcom/glue/nsMemory.h \
    481473        xpcom/components/nsModule.h \
    482474        xpcom/io/nsMultiplexInputStream.h \
     
    506498        xpcom/ds/nsTextFormatter.h \
    507499        xpcom/ds/nsTime.h \
    508         xpcom/glue/nsTraceRefcnt.h \
    509500        xpcom/base/nsTraceRefcntImpl.h \
    510501        xpcom/ds/nsUnitConversion.h \
     
    513504        xpcom/ds/nsVoidArray.h \
    514505        xpcom/base/nsWeakPtr.h \
    515         xpcom/glue/nsWeakReference.h \
    516506        xpcom/build/nsXPCOM.h \
    517507        xpcom/build/nsXPCOMCID.h \
    518         xpcom/glue/standalone/nsXPCOMGlue.h \
    519508        xpcom/base/nscore.h \
    520509        xpcom/ds/pldhash.h \
     
    528517        xpcom/reflect/xptcall/public/xptcstubsdef.inc \
    529518        xpcom/reflect/xptinfo/public/xptinfo.h \
     519        \
     520        xpcom/glue/nsIInterfaceRequestorUtils.h \
     521        xpcom/glue/nsISupportsImpl.h \
     522        xpcom/glue/nsISupportsUtils.h \
     523        xpcom/glue/nsIWeakReferenceUtils.h \
     524        \
     525        xpcom/glue/nsCOMPtr.h \
     526        xpcom/glue/nsDebug.h \
     527        xpcom/glue/nsGenericFactory.h \
     528        xpcom/glue/nsIGenericFactory.h \
     529        xpcom/glue/nsMemory.h \
     530        xpcom/glue/nsTraceRefcnt.h \
     531        xpcom/glue/nsWeakReference.h \
     532        \
     533        xpcom/glue/standalone/nsXPCOMGlue.h \
     534        \
    530535        xpcom-config.h
    531536
     
    10111016                            xpcom/proxy/src/nsProxyRelease.cpp
    10121017
    1013 # glue library which all client apps will link with
    1014 VBoxXPCOMGlue_TEMPLATE = XPCOM
    1015 VBoxXPCOMGlue_DEFS     = _IMPL_NS_COM XPCOM_GLUE
    1016 VBoxXPCOMGlue_SOURCES  = xpcom/glue/nsCOMPtr.cpp \
    1017                          xpcom/glue/nsComponentManagerUtils.cpp \
    1018                          xpcom/glue/nsDebug.cpp \
    1019                          xpcom/glue/nsGenericFactory.cpp \
    1020                          xpcom/glue/nsIInterfaceRequestorUtils.cpp \
    1021                          xpcom/glue/nsMemory.cpp \
    1022                          xpcom/glue/nsTraceRefcnt.cpp \
    1023                          xpcom/glue/nsWeakReference.cpp \
    1024                          xpcom/glue/standalone/nsXPCOMGlue.cpp \
    1025                          xpcom/glue/standalone/nsGREDirServiceProvider.cpp
    1026 VBoxXPCOMGlue_INST     = lib/ $(INST_SDK)/lib/
    1027 
    1028 
    1029 #
    1030 # The VBoxXPCOM Shared Object, assembling all lib files.
    1031 #
    1032 VBoxXPCOM_TEMPLATE = XPCOM
    1033 VBoxXPCOM_NAME = $(basename $(notdir $(LIB_XPCOM)))
    1034 VBoxXPCOM_DEFS = BUILD_DCONNECT="1" _IMPL_NS_COM
    1035 VBoxXPCOM_SOURCES = \
     1018
     1019#
     1020# The VBoxXPCOM Glue static libraries.
     1021#
     1022# See http://developer.mozilla.org/en/docs/XPCOM_Glue for details about the
     1023# original XPCOM glue library purpose and usage.
     1024#
     1025# We don't really use the glue library in the described way because we don't
     1026# provide frozen APIs (yet), so all VBox XPCOM client applications are
     1027# dependent on the given version of both the VBox XPCOM runtime (binary
     1028# dependency) and VirtualBox component library (COM interface dependency). For
     1029# this reason, VBox client applications link to the VBox XPCOM shared library
     1030# directly (instead of linking to the standalone XPCOM glue library that would
     1031# dynamically search for and load the installed XPCOM runtime). For the same
     1032# reason, we link all parts of XPCOM into a single shared XPCOM library below
     1033# (as opposed to the original XPCOM where e.g. NSPR lives in a separate DLL).
     1034#
     1035
     1036VBoxXPCOMGlue_COMMON_SOURCES = \
    10361037        xpcom/glue/nsCOMPtr.cpp \
    10371038        xpcom/glue/nsComponentManagerUtils.cpp \
     
    10411042        xpcom/glue/nsMemory.cpp \
    10421043        xpcom/glue/nsTraceRefcnt.cpp \
    1043         xpcom/glue/nsWeakReference.cpp \
     1044        xpcom/glue/nsWeakReference.cpp
     1045
     1046# dependent glue library which goes in to the VBoxXPCOM shared library
     1047VBoxXPCOMGlue_s_TEMPLATE = XPCOM
     1048VBoxXPCOMGlue_s_NOINST   = 1
     1049VBoxXPCOMGlue_s_DEFS     = _IMPL_NS_COM
     1050VBoxXPCOMGlue_s_SOURCES  = $(VBoxXPCOMGlue_COMMON_SOURCES)
     1051
     1052# standalone glue library which all third-party client apps (if any) will link with
     1053# (currently not used anywhere (see above) but still built to make sure
     1054# the code inside #ifdef XPCOM_GLUE compiles)
     1055VBoxXPCOMGlue_TEMPLATE = XPCOM
     1056VBoxXPCOMGlue_DEFS     = XPCOM_GLUE
     1057VBoxXPCOMGlue_SOURCES  = $(VBoxXPCOMGlue_COMMON_SOURCES) \
     1058                         xpcom/glue/standalone/nsXPCOMGlue.cpp \
     1059                         xpcom/glue/standalone/nsGREDirServiceProvider.cpp
     1060VBoxXPCOMGlue_SOURCES += \
     1061        $(TARGET_VBox-xpcom-string)
     1062#VBoxXPCOMGlue_INST     = lib/ $(INST_SDK)/lib/
     1063
     1064
     1065#
     1066# The VBoxXPCOM Shared Object, assembling all lib files.
     1067#
     1068
     1069VBoxXPCOM_TEMPLATE = XPCOM
     1070VBoxXPCOM_NAME = $(basename $(notdir $(LIB_XPCOM)))
     1071VBoxXPCOM_DEFS = BUILD_DCONNECT="1" _IMPL_NS_COM
     1072VBoxXPCOM_SOURCES = \
    10441073        xpcom/build/nsXPComInit.cpp \
    10451074        xpcom/build/nsStringAPI.cpp
     
    10611090        $(TARGET_VBox-xpcom-xptcall) \
    10621091        $(TARGET_VBox-xpcom-proxy) \
    1063         $(TARGET_VBox-xpcom-nspr)
     1092        $(TARGET_VBox-xpcom-nspr) \
     1093        $(TARGET_VBoxXPCOMGlue_s)
    10641094
    10651095ifeq ($(filter-out freebsd l4 linux netbsd openbsd,$(BUILD_TARGET)),) # gnu ld.
     
    10761106        $(TARGET_VBox-xpcom-proxy) \
    10771107        $(TARGET_VBox-xpcom-nspr) \
     1108        $(TARGET_VBoxXPCOMGlue_s) \
    10781109        -Wl,--no-whole-archive
    10791110endif
     
    10911122        $(TARGET_VBox-xpcom-proxy) \
    10921123        $(TARGET_VBox-xpcom-nspr) \
     1124        $(TARGET_VBoxXPCOMGlue_s) \
    10931125        -Wl,-z,defaultextract
    10941126
Note: See TracChangeset for help on using the changeset viewer.

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