VirtualBox

Changeset 27138 in vbox


Ignore:
Timestamp:
Mar 6, 2010 11:01:47 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
58475
Message:

Config.kmk,recompiler/Makefile.kmk,xpcom18a4/Makefile.kmk: Use @rpath and / in -rpath on darwin when not building the hardened version. This is more or less identical to what we do with$ORIGIN on linux and solaris. Will attempt to combine the two later. Also, set the -compatibility_version to the same as -current_version to prevent accidentally mixing stuff from /Applications/VirtualBox.app/ with stuff from your dev build (and vice versa).

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Config.kmk

    r27041 r27138  
    897897# Check for incompatible combinations.
    898898#
    899 ifdef VBOX_WITH_RUNPATH
    900  ifdef VBOX_WITH_ORIGIN
    901   $(error VBOX_WITH_RUNPATH and VBOX_WITH_ORIGIN are mutually exclusive (lazy bird))
    902  endif
     899if defined(VBOX_WITH_RUNPATH) && defined(VBOX_WITH_ORIGIN)
     900 $(error VBOX_WITH_RUNPATH and VBOX_WITH_ORIGIN are mutually exclusive)
     901endif
     902if defined(VBOX_WITH_RELATIVE_RUNPATH) && defined(VBOX_WITH_ORIGIN)
     903 $(error VBOX_WITH_RELATIVE_RUNPATH and VBOX_WITH_ORIGIN are mutually exclusive)
     904endif
     905if defined(VBOX_WITH_RUNPATH) && defined(VBOX_WITH_RELATIVE_RUNPATH)
     906 $(error VBOX_WITH_RUNPATH and VBOX_WITH_RELATIVE_RUNPATH are mutually exclusive)
     907endif
     908if defined(VBOX_WITH_RELATIVE_RUNPATH) && defined(VBOX_WITH_HARDENING)
     909 $(error VBOX_WITH_RELATIVE_RUNPATH and VBOX_WITH_HARDENING are mutually exclusive)
    903910endif
    904911
     
    16231630
    16241631#
    1625 # Macro switching between @executable_path and /Applications/VirtualBox.app
     1632# Macro switching between @executable_path, @rpath and /Applications/VirtualBox.app
    16261633# depending on whether the build is hardened or not (dylib install_name)
    16271634#
     
    16291636 ifdef VBOX_WITH_HARDENING
    16301637  VBOX_DYLD_EXECUTABLE_PATH = $(VBOX_PATH_APP_PRIVATE_ARCH)
     1638 else if 0
     1639  VBOX_DYLD_EXECUTABLE_PATH = @executable_path
    16311640 else
    1632   VBOX_DYLD_EXECUTABLE_PATH = @executable_path
     1641  VBOX_DYLD_EXECUTABLE_PATH = @rpath
     1642  VBOX_WITH_RELATIVE_RUNPATH = @loader_path
    16331643 endif
    16341644endif
     
    16981708#       VBOX_ORIGIN - Indirect expansion trick.
    16991709#       VBOX_GCC_RPATH_OPT - Different GCC/LD combinations needs different options.
     1710## @todo combine ORIGIN with VBOX_WITH_RELATIVE_RUNPATH, it's the same concept.
    17001711VBOX_ORIGIN = $$ORIGIN
    17011712ifeq ($(KBUILD_TARGET),solaris)
     
    26982709 ifdef VBOX_WITH_RUNPATH
    26992710  TEMPLATE_VBOXR3EXE_LDFLAGS          += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
     2711 else ifdef VBOX_WITH_RELATIVE_RUNPATH
     2712  TEMPLATE_VBOXR3EXE_LDFLAGS          += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/'
    27002713 else ifdef VBOX_WITH_ORIGIN
    27012714  TEMPLATE_VBOXR3EXE_LDFLAGS          += '$(VBOX_GCC_RPATH_OPT)$$(VBOX_ORIGIN)'
     
    27132726TEMPLATE_VBOXR3_DEFS.l4                = $(TEMPLATE_VBOXR3EXE_DEFS.l4) __PIC__
    27142727TEMPLATE_VBOXR3_DEFS.darwin            = $(TEMPLATE_VBOXR3EXE_DEFS.darwin) PIC
    2715 TEMPLATE_VBOXR3_LDFLAGS.darwin         = $(TEMPLATE_VBOXR3EXE_LDFLAGS.darwin) -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
     2728TEMPLATE_VBOXR3_LDFLAGS.darwin         = $(TEMPLATE_VBOXR3EXE_LDFLAGS.darwin) \
     2729        -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
     2730        -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
    27162731ifeq ($(filter-out solaris.x86 %.amd64,$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)),)
    27172732 ifn1of ($(KBUILD_TARGET), darwin win)
     
    28442859TEMPLATE_VBOXR3OSX105_LDFLAGS.darwin   = $(VBOX_DARWIN_DEF_SDK_10_5_LDFLAGS) \
    28452860        -read_only_relocs suppress \
    2846         -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
     2861        -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
     2862        -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
    28472863
    28482864
     
    28722888ifdef VBOX_WITH_RUNPATH
    28732889 TEMPLATE_VBOXR3TSTEXE_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' $(TEMPLATE_VBOXR3EXE_LDFLAGS)
     2890else ifdef VBOX_WITH_RELATIVE_RUNPATH
     2891 TEMPLATE_VBOXR3TSTEXE_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/..' $(TEMPLATE_VBOXR3EXE_LDFLAGS)
    28742892else ifdef VBOX_WITH_ORIGIN
    28752893 TEMPLATE_VBOXR3TSTEXE_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$$(VBOX_ORIGIN)/..' $(TEMPLATE_VBOXR3EXE_LDFLAGS)
     
    31043122 ifdef VBOX_WITH_RUNPATH
    31053123TEMPLATE_VBOXMAINEXE_LDFLAGS            += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
     3124 else ifdef VBOX_WITH_RELATIVE_RUNPATH
     3125TEMPLATE_VBOXMAINEXE_LDFLAGS            += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/'
    31063126 else ifdef VBOX_WITH_ORIGIN
    31073127TEMPLATE_VBOXMAINEXE_LDFLAGS            += '$(VBOX_GCC_RPATH_OPT)$$(VBOX_ORIGIN)'
     
    31513171endif
    31523172TEMPLATE_VBOXMAINDLL_LDFLAGS.darwin = $(filter-out -bind_at_load,$(TEMPLATE_VBOXMAINEXE_LDFLAGS.darwin)) \
    3153         -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
     3173        -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
     3174        -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
    31543175
    31553176#
     
    31913212endif
    31923213TEMPLATE_VBOXMAINCOMP_LDFLAGS.darwin = $(filter-out -bind_at_load,$(TEMPLATE_VBOXMAINEXE_LDFLAGS.darwin)) \
    3193         -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
     3214        -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
     3215        -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
    31943216
    31953217#
     
    34213443  ifdef VBOX_WITH_RUNPATH
    34223444   TEMPLATE_VBOXQT4GUIEXE_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
     3445  else ifdef VBOX_WITH_RELATIVE_RUNPATH
     3446   TEMPLATE_VBOXQT4GUIEXE_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/'
    34233447  else ifdef VBOX_WITH_ORIGIN
    34243448   TEMPLATE_VBOXQT4GUIEXE_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$$(VBOX_ORIGIN)'
     
    34583482 ifeq ($(KBUILD_TARGET),darwin)
    34593483  TEMPLATE_VBOXQT4GUI_LDFLAGS.darwin += $(filter-out -bind_at_load,$(TEMPLATE_VBOXQT4GUIEXE_LDFLAGS.darwin)) \
    3460         -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
     3484        -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
     3485        -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
    34613486 endif
    34623487 ifeq ($(filter-out solaris.x86 %.amd64,$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)),)
     
    38383863TEMPLATE_VBOXCROGLR3HOSTDLL_LDFLAGS.darwin  += \
    38393864        -framework OpenGL \
    3840         -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
     3865        -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
     3866        -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
    38413867TEMPLATE_VBOXCROGLR3HOSTDLL_LDFLAGS.linux    = -Wl,--no-as-needed
    38423868TEMPLATE_VBOXCROGLR3HOSTDLL_BLDDIRS          = $(VBOX_PATH_CROGL_GENFILES)/
     
    38713897TEMPLATE_VBOXCROGLR3GUESTDLL_LDFLAGS.darwin  += \
    38723898        -framework OpenGL \
    3873         -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
     3899        -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
     3900        -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
    38743901TEMPLATE_VBOXCROGLR3GUESTDLL_BLDDIRS          = $(VBOX_PATH_CROGL_GENFILES)/
    38753902
  • trunk/src/libs/xpcom18a4/Makefile.kmk

    r26022 r27138  
    103103ifdef VBOX_WITH_RUNPATH
    104104TEMPLATE_XPCOM_LDFLAGS            += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
     105else ifdef VBOX_WITH_RELATIVE_RUNPATH
     106TEMPLATE_XPCOM_LDFLAGS            += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/'
    105107else ifdef VBOX_WITH_ORIGIN
    106108TEMPLATE_XPCOM_LDFLAGS            += '$(VBOX_GCC_RPATH_OPT)$$(VBOX_ORIGIN)'
     
    111113        -fshort-wchar -fno-rtti -fno-exceptions -fpascal-strings \
    112114        -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
     115        -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
    113116        -framework CoreServices \
    114117        -framework CoreFoundation \
     
    187190TEMPLATE_XPCOMEXE_LIBS.linux       = dl $(LIB_PTHREAD)
    188191TEMPLATE_XPCOMEXE_LIBS.l4          = $(LIB_RUNTIME) $(VBOX_GCC_LIBGCC)
    189 TEMPLATE_XPCOMEXE_LDFLAGS.darwin   = -bind_at_load $(filter-out -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD),$(TEMPLATE_XPCOM_LDFLAGS.darwin))
     192TEMPLATE_XPCOMEXE_LDFLAGS.darwin   = -bind_at_load $(filter-out -current_version -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD),$(TEMPLATE_XPCOM_LDFLAGS.darwin))
    190193TEMPLATE_XPCOMEXE_LDFLAGS.l4       = $(L4_DIR)/lib/x86_586/crt0.o \
    191194    -T$(L4_DIR)/lib/x86_586/main_dyn.ld -nostdlib -lgcc \
  • trunk/src/recompiler/Makefile.kmk

    r25776 r27138  
    263263VBoxREMImp_SONAME          = VBoxREM$(SUFF_DLL)
    264264 endif
    265 VBoxREMImp_LDFLAGS.darwin   = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxREM.dylib
     265VBoxREMImp_LDFLAGS.darwin   = -install_name $(subst @rpath,@executable_path,$(VBOX_DYLD_EXECUTABLE_PATH))/VBoxREM.dylib
    266266VBoxREMImp_LDFLAGS.l4       = -T$(L4_LIBDIR)/../main_rel.ld -nostdlib
    267267
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