зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1110760 - Build and Package Chromium Sandbox wow_helper. r=gps
This commit is contained in:
Родитель
d4e8fd3af2
Коммит
08e140cb0d
|
@ -147,6 +147,14 @@ endif
|
|||
ifdef CLANG_CL
|
||||
DEFINES += -DCLANG_CL
|
||||
endif
|
||||
ifeq (x86,$(CPU_ARCH))
|
||||
ifdef _MSC_VER
|
||||
ifndef CLANG_CL
|
||||
DEFINES += -DWOW_HELPER
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
libs::
|
||||
$(MAKE) -C $(DEPTH)/browser/locales langpack
|
||||
|
|
|
@ -783,6 +783,9 @@
|
|||
#if defined(MOZ_SANDBOX)
|
||||
#if defined(XP_WIN)
|
||||
@BINPATH@/@DLL_PREFIX@sandboxbroker@DLL_SUFFIX@
|
||||
#if defined(WOW_HELPER)
|
||||
@BINPATH@/wow_helper.exe
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
|
|
@ -18,6 +18,10 @@ elif CONFIG['OS_ARCH'] == 'WINNT':
|
|||
'win/src/sandboxtarget',
|
||||
]
|
||||
|
||||
if (CONFIG['CPU_ARCH'] == 'x86' and CONFIG['_MSC_VER'] and not
|
||||
CONFIG['CLANG_CL']):
|
||||
DIRS += ['win/wow_helper']
|
||||
|
||||
EXPORTS.mozilla.sandboxing += [
|
||||
'win/src/logging/loggingCallbacks.h',
|
||||
'win/src/logging/loggingTypes.h',
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
# We need to build a 64-bits binary during a 32-bits build. This requires
|
||||
# a different compiler and different library paths. Until the build system
|
||||
# supports this natively.
|
||||
|
||||
# Some Make magic to avoid CXX and LIB being evaluated when nothing
|
||||
# is built in this directory
|
||||
lazy = $(if $(___$(1)),,$(eval ___$(1) := $(2)))$(___$(1))
|
||||
|
||||
# We could use the `which` python module, but it needs more code to handle
|
||||
# the situation where CXX points to an absolute path. But using the shell
|
||||
# which returns a msys path, while we need a windows path. So force msys
|
||||
# to do the conversion for us by calling python with an environment variable
|
||||
# with the result of the call to `which`. Then munge that path to add the
|
||||
# x64 cross-compiler path.
|
||||
ifdef MOZ_USING_COMPILER_WRAPPER
|
||||
ORIG_CXX := cl
|
||||
else
|
||||
ORIG_CXX := $(CXX)
|
||||
endif
|
||||
CXX = $(call lazy,CXX,"$$(subst amd64_x86/x86_amd64/,amd64/,$$(shell CL=`which "$(ORIG_CXX)"` $(PYTHON) -c 'import os; print os.path.dirname(os.environ["CL"])')/x86_amd64/cl.exe)")
|
||||
|
||||
MOZ_WINCONSOLE = 0
|
||||
|
||||
include $(topsrcdir)/config/config.mk
|
||||
|
||||
# Munge the LIB variable to contain paths to the x64 CRT and system libraries.
|
||||
# Unconveniently, none of the paths have the same convention, including the
|
||||
# compiler path above.
|
||||
LIB = $(call lazy,LIB,$$(shell python -c 'import os; print ";".join(s.lower().replace(os.sep, "/").replace("/vc/lib", "/vc/lib/amd64").replace("/um/x86", "/um/x64") for s in os.environ["LIB"].split(";"))'))
|
||||
|
||||
CXXFLAGS := $(filter-out -arch:IA32,$(CXXFLAGS))
|
||||
|
||||
# OS_COMPILE_CXXFLAGS includes mozilla-config.h, which contains x86-specific
|
||||
# defines breaking the build.
|
||||
OS_COMPILE_CXXFLAGS :=
|
||||
|
||||
# LNK1246: '/SAFESEH' not compatible with 'x64' target machine
|
||||
LDFLAGS := $(filter-out -SAFESEH,$(LDFLAGS))
|
|
@ -0,0 +1,30 @@
|
|||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
Program('wow_helper')
|
||||
|
||||
SOURCES += [ '../../chromium/sandbox/win/wow_helper/' + f for f in (
|
||||
'service64_resolver.cc',
|
||||
'target_code.cc',
|
||||
'wow_helper.cc',
|
||||
)]
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
'../../',
|
||||
'../../../',
|
||||
'../../chromium/',
|
||||
]
|
||||
|
||||
DISABLE_STL_WRAPPING = True
|
||||
|
||||
DEFINES['UNICODE'] = True
|
||||
|
||||
USE_STATIC_LIBS = True
|
||||
|
||||
# The rules in Makefile.in only force the use of the 64-bits compiler, not
|
||||
# the 64-bits linker, and the 32-bits linker can't do 64-bits compilation for
|
||||
# PGO, so disable PGO, which is not interesting for this small binary anyways.
|
||||
NO_PGO = True
|
Загрузка…
Ссылка в новой задаче