gecko-dev/security/sandbox/linux/moz.build
Alexandre Lissy c6be1d0d13 Bug 1274826 - Bypass building SandboxHooks on Gonk r=jld
MozReview-Commit-ID: 3TVdcY7aXvW

--HG--
extra : rebase_source : b734c54ad4e7b8fff384f399b84014410b4cf719
2016-05-26 01:02:25 +02:00

126 lines
4.4 KiB
Python

# -*- 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/.
# WARNING: On desktop Linux, SandboxHooks.cpp must be statically compiled
# into the main executable in order to function properly.
# This is currently the case, but if mozsandbox is moved to its own
# shared library, something needs to change regarding SandboxHooks.cpp.
# See Bug 1176099 for further details.
if CONFIG['OS_TARGET'] == 'Android':
SharedLibrary('mozsandbox')
USE_LIBS += [
'mozglue',
]
else:
Library('mozsandbox')
EXPORTS.mozilla += [
'Sandbox.h',
]
SOURCES += [
'../chromium-shim/base/logging.cpp',
'../chromium/base/at_exit.cc',
'../chromium/base/callback_internal.cc',
'../chromium/base/lazy_instance.cc',
'../chromium/base/memory/ref_counted.cc',
'../chromium/base/memory/singleton.cc',
'../chromium/base/strings/safe_sprintf.cc',
'../chromium/base/strings/string16.cc',
'../chromium/base/strings/string_piece.cc',
'../chromium/base/strings/string_util.cc',
'../chromium/base/strings/string_util_constants.cc',
'../chromium/base/strings/stringprintf.cc',
'../chromium/base/strings/utf_string_conversion_utils.cc',
'../chromium/base/strings/utf_string_conversions.cc',
'../chromium/base/synchronization/condition_variable_posix.cc',
'../chromium/base/synchronization/lock.cc',
'../chromium/base/synchronization/lock_impl_posix.cc',
'../chromium/base/synchronization/waitable_event_posix.cc',
'../chromium/base/third_party/icu/icu_utf.cc',
'../chromium/base/threading/platform_thread_linux.cc',
'../chromium/base/threading/platform_thread_posix.cc',
'../chromium/base/threading/thread_collision_warner.cc',
'../chromium/base/threading/thread_id_name_manager.cc',
'../chromium/base/threading/thread_local_posix.cc',
'../chromium/base/threading/thread_restrictions.cc',
'../chromium/base/time/time.cc',
'../chromium/base/time/time_posix.cc',
'../chromium/sandbox/linux/bpf_dsl/bpf_dsl.cc',
'../chromium/sandbox/linux/bpf_dsl/dump_bpf.cc',
'../chromium/sandbox/linux/bpf_dsl/policy.cc',
'../chromium/sandbox/linux/bpf_dsl/policy_compiler.cc',
'../chromium/sandbox/linux/seccomp-bpf/basicblock.cc',
'../chromium/sandbox/linux/seccomp-bpf/codegen.cc',
'../chromium/sandbox/linux/seccomp-bpf/die.cc',
'../chromium/sandbox/linux/seccomp-bpf/errorcode.cc',
'../chromium/sandbox/linux/seccomp-bpf/syscall.cc',
'../chromium/sandbox/linux/seccomp-bpf/syscall_iterator.cc',
'../chromium/sandbox/linux/seccomp-bpf/trap.cc',
'broker/SandboxBrokerCommon.cpp',
'LinuxCapabilities.cpp',
'Sandbox.cpp',
'SandboxBrokerClient.cpp',
'SandboxChroot.cpp',
'SandboxFilter.cpp',
'SandboxFilterUtil.cpp',
'SandboxLogging.cpp',
'SandboxUtil.cpp',
]
if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'gonk':
SOURCES += [
'SandboxHooks.cpp',
]
# This copy of SafeSPrintf doesn't need to avoid the Chromium logging
# dependency like the one in libxul does, but this way the behavior is
# consistent. See also the comment in SandboxLogging.h.
SOURCES['../chromium/base/strings/safe_sprintf.cc'].flags += ['-DNDEBUG']
# Keep clang from warning about intentional 'switch' fallthrough in icu_utf.cc:
if CONFIG['CLANG_CXX']:
SOURCES['../chromium/base/third_party/icu/icu_utf.cc'].flags += ['-Wno-implicit-fallthrough']
if CONFIG['GNU_CXX']:
CXXFLAGS += ['-Wno-shadow']
# gcc lto likes to put the top level asm in syscall.cc in a different partition
# from the function using it which breaks the build. Work around that by
# forcing there to be only one partition.
if '-flto' in CONFIG['OS_CXXFLAGS'] and not CONFIG['CLANG_CXX']:
LDFLAGS += ['--param lto-partitions=1']
DEFINES['NS_NO_XPCOM'] = True
DISABLE_STL_WRAPPING = True
LOCAL_INCLUDES += ['/security/sandbox/linux/common']
LOCAL_INCLUDES += ['/security/sandbox/chromium-shim']
LOCAL_INCLUDES += ['/security/sandbox/chromium']
LOCAL_INCLUDES += ['/nsprpub']
if CONFIG['OS_TARGET'] != 'Android':
# Needed for clock_gettime with glibc < 2.17:
OS_LIBS += [
'rt',
]
USE_LIBS += [
'mfbt',
]
DIRS += [
'broker',
'common',
'glue',
]
TEST_DIRS += [
'gtest',
]