Split js/src/moz.build into multiple files.

master
Fedor 2020-11-26 23:37:47 +02:00
parent 7ce2c4eee2
commit 8e4756b26b
21 changed files with 775 additions and 565 deletions

73
js/src/builtin/moz.build Normal file
View File

@ -0,0 +1,73 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
include('../js-config.mozbuild')
include('../js-cxxflags.mozbuild')
FINAL_LIBRARY = "js"
# Includes should be relative to parent path
LOCAL_INCLUDES += ["!..", ".."]
SOURCES += [
'AtomicsObject.cpp',
'Eval.cpp',
'Intl.cpp',
'MapObject.cpp',
'ModuleObject.cpp',
'Object.cpp',
'Profilers.cpp',
'Promise.cpp',
'Reflect.cpp',
'ReflectParse.cpp',
'RegExp.cpp',
'SIMD.cpp',
'SymbolObject.cpp',
'TestingFunctions.cpp',
'TypedObject.cpp',
'WeakMapObject.cpp',
'WeakSetObject.cpp',
]
if CONFIG['_MSC_VER']:
if CONFIG['CPU_ARCH'] == 'x86':
SOURCES['RegExp.cpp'].no_pgo = True # Bug 772303
# Prepare self-hosted JS code for embedding
GENERATED_FILES += [('selfhosted.out.h', 'selfhosted.js')]
selfhosted = GENERATED_FILES[('selfhosted.out.h', 'selfhosted.js')]
selfhosted.script = 'embedjs.py:generate_selfhosted'
selfhosted.inputs = [
'../js.msg',
'TypedObjectConstants.h',
'SelfHostingDefines.h',
'Utilities.js',
'Array.js',
'AsyncIteration.js',
'Classes.js',
'Date.js',
'Error.js',
'Function.js',
'Generator.js',
'Intl.js',
'IntlData.js',
'Iterator.js',
'Map.js',
'Module.js',
'Number.js',
'Object.js',
'Promise.js',
'Reflect.js',
'RegExp.js',
'RegExpGlobalReplaceOpt.h.js',
'RegExpLocalReplaceOpt.h.js',
'String.js',
'Set.js',
'Sorting.js',
'TypedArray.js',
'TypedObject.js',
'WeakMap.js',
'WeakSet.js',
]

26
js/src/ctypes/moz.build Normal file
View File

@ -0,0 +1,26 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
include('../js-config.mozbuild')
include('../js-cxxflags.mozbuild')
FINAL_LIBRARY = "js"
# Includes should be relative to parent path
LOCAL_INCLUDES += ["!..", ".."]
SOURCES += [
'CTypes.cpp',
'Library.cpp',
]
if not CONFIG['MOZ_SYSTEM_FFI']:
LOCAL_INCLUDES += [
'!libffi/include',
'libffi/src/%s' % CONFIG['FFI_TARGET_DIR'],
]
if CONFIG['_MSC_VER'] and CONFIG['CPU_ARCH'] == 'x86_64':
SOURCES['CTypes.cpp'].no_pgo = True # Bug 810661

25
js/src/devtools/moz.build Normal file
View File

@ -0,0 +1,25 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
include('../js-config.mozbuild')
include('../js-cxxflags.mozbuild')
FINAL_LIBRARY = "js"
# Includes should be relative to parent path
LOCAL_INCLUDES += ["!..", ".."]
CONFIGURE_SUBST_FILES += [
'rootAnalysis/Makefile',
]
SOURCES += [
'sharkctl.cpp',
]
if CONFIG['MOZ_INSTRUMENTS']:
SOURCES += [
'Instruments.cpp',
]

17
js/src/ds/moz.build Normal file
View File

@ -0,0 +1,17 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
include('../js-config.mozbuild')
include('../js-cxxflags.mozbuild')
FINAL_LIBRARY = "js"
# Includes should be relative to parent path
LOCAL_INCLUDES += ["!..", ".."]
SOURCES += [
'LifoAlloc.cpp',
'MemoryProtectionExceptionHandler.cpp',
]

27
js/src/frontend/moz.build Normal file
View File

@ -0,0 +1,27 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
include('../js-config.mozbuild')
include('../js-cxxflags.mozbuild')
FINAL_LIBRARY = "js"
# Includes should be relative to parent path
LOCAL_INCLUDES += ["!..", ".."]
SOURCES += [
'BytecodeCompiler.cpp',
'BytecodeEmitter.cpp',
'FoldConstants.cpp',
'NameFunctions.cpp',
'ParseNode.cpp',
'Parser.cpp',
'TokenStream.cpp',
]
GENERATED_FILES += ['ReservedWordsGenerated.h']
ReservedWordsGenerated = GENERATED_FILES['ReservedWordsGenerated.h']
ReservedWordsGenerated.script = 'GenerateReservedWords.py'
ReservedWordsGenerated.inputs += ['ReservedWords.h']

31
js/src/gc/moz.build Normal file
View File

@ -0,0 +1,31 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
include('../js-config.mozbuild')
include('../js-cxxflags.mozbuild')
FINAL_LIBRARY = "js"
# Includes should be relative to parent path
LOCAL_INCLUDES += ["!..", ".."]
SOURCES += [
'Allocator.cpp',
'Barrier.cpp',
'GCTrace.cpp',
'Iteration.cpp',
'Marking.cpp',
'Memory.cpp',
'MemoryProfiler.cpp',
'Nursery.cpp',
'RootMarking.cpp',
'Statistics.cpp',
'StoreBuffer.cpp',
'Tracer.cpp',
'Zone.cpp',
]
if CONFIG['MOZ_DEBUG']:
SOURCES += ['Verifier.cpp']

View File

@ -5,6 +5,8 @@
GeckoProgram('gdb-tests', linkage=None)
include('../js-cxxflags.mozbuild')
UNIFIED_SOURCES += [
'gdb-tests.cpp',
'tests/test-asmjs.cpp',
@ -40,13 +42,6 @@ if CONFIG['MOZ_ICU_DATA_ARCHIVE']:
OS_LIBS += CONFIG['MOZ_ZLIB_LIBS']
if CONFIG['GNU_CXX']:
CXXFLAGS += ['-Wno-shadow', '-fno-strict-aliasing']
# This is intended as a temporary workaround to enable VS2015.
if CONFIG['_MSC_VER']:
CXXFLAGS += ['-wd4312']
DEFINES['topsrcdir'] = '%s/js/src' % TOPSRCDIR
FINAL_TARGET_PP_FILES += ['gdb-tests-gdb.py.in']
OBJDIR_FILES.js.src.gdb += ['!/dist/bin/gdb-tests-gdb.py']

23
js/src/irregexp/moz.build Normal file
View File

@ -0,0 +1,23 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
include('../js-config.mozbuild')
include('../js-cxxflags.mozbuild')
FINAL_LIBRARY = "js"
# Includes should be relative to parent path
LOCAL_INCLUDES += ["!..", ".."]
SOURCES += [
'NativeRegExpMacroAssembler.cpp',
'RegExpAST.cpp',
'RegExpCharacters.cpp',
'RegExpEngine.cpp',
'RegExpInterpreter.cpp',
'RegExpMacroAssembler.cpp',
'RegExpParser.cpp',
'RegExpStack.cpp',
]

233
js/src/jit/moz.build Normal file
View File

@ -0,0 +1,233 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
include('../js-config.mozbuild')
include('../js-cxxflags.mozbuild')
FINAL_LIBRARY = "js"
# Includes should be relative to parent path
LOCAL_INCLUDES += ["!..", ".."]
UNIFIED_SOURCES += [
'AliasAnalysis.cpp',
'AliasAnalysisShared.cpp',
'AlignmentMaskAnalysis.cpp',
'BacktrackingAllocator.cpp',
'Bailouts.cpp',
'BaselineBailouts.cpp',
'BaselineCacheIR.cpp',
'BaselineCompiler.cpp',
'BaselineDebugModeOSR.cpp',
'BaselineFrame.cpp',
'BaselineFrameInfo.cpp',
'BaselineIC.cpp',
'BaselineInspector.cpp',
'BaselineJIT.cpp',
'BitSet.cpp',
'BytecodeAnalysis.cpp',
'C1Spewer.cpp',
'CacheIR.cpp',
'CodeGenerator.cpp',
'CompileWrappers.cpp',
'EagerSimdUnbox.cpp',
'EdgeCaseAnalysis.cpp',
'EffectiveAddressAnalysis.cpp',
'ExecutableAllocator.cpp',
'FlowAliasAnalysis.cpp',
'FoldLinearArithConstants.cpp',
'InstructionReordering.cpp',
'Ion.cpp',
'IonAnalysis.cpp',
'IonBuilder.cpp',
'IonCaches.cpp',
'IonOptimizationLevels.cpp',
'JitcodeMap.cpp',
'JitFrames.cpp',
'JitOptions.cpp',
'JitSpewer.cpp',
'JSONSpewer.cpp',
'LICM.cpp',
'Linker.cpp',
'LIR.cpp',
'LoopUnroller.cpp',
'Lowering.cpp',
'MacroAssembler.cpp',
'MCallOptimize.cpp',
'MIR.cpp',
'MIRGraph.cpp',
'MoveResolver.cpp',
'OptimizationTracking.cpp',
'PerfSpewer.cpp',
'ProcessExecutableMemory.cpp',
'RangeAnalysis.cpp',
'Recover.cpp',
'RegisterAllocator.cpp',
'RematerializedFrame.cpp',
'Safepoints.cpp',
'ScalarReplacement.cpp',
'shared/BaselineCompiler-shared.cpp',
'shared/CodeGenerator-shared.cpp',
'shared/Lowering-shared.cpp',
'SharedIC.cpp',
'Sink.cpp',
'Snapshots.cpp',
'StupidAllocator.cpp',
'TypedObjectPrediction.cpp',
'TypePolicy.cpp',
'ValueNumbering.cpp',
'VMFunctions.cpp',
'WasmBCE.cpp',
]
if CONFIG['MOZ_DEBUG']:
UNIFIED_SOURCES += ['Disassembler.cpp']
if not CONFIG['ENABLE_ION']:
UNIFIED_SOURCES += [
'none/Trampoline-none.cpp'
]
elif CONFIG['JS_CODEGEN_X86'] or CONFIG['JS_CODEGEN_X64']:
UNIFIED_SOURCES += [
'x86-shared/Architecture-x86-shared.cpp',
'x86-shared/Assembler-x86-shared.cpp',
'x86-shared/AssemblerBuffer-x86-shared.cpp',
'x86-shared/BaselineCompiler-x86-shared.cpp',
'x86-shared/BaselineIC-x86-shared.cpp',
'x86-shared/CodeGenerator-x86-shared.cpp',
'x86-shared/Lowering-x86-shared.cpp',
'x86-shared/MacroAssembler-x86-shared.cpp',
'x86-shared/MoveEmitter-x86-shared.cpp',
]
UNIFIED_SOURCES += [
'x86-shared/Disassembler-x86-shared.cpp', # using namespace js::jit::X86Encoding;
]
if CONFIG['JS_CODEGEN_X64']:
UNIFIED_SOURCES += [
'x64/Assembler-x64.cpp',
'x64/Bailouts-x64.cpp',
'x64/BaselineCompiler-x64.cpp',
'x64/BaselineIC-x64.cpp',
'x64/CodeGenerator-x64.cpp',
'x64/Lowering-x64.cpp',
'x64/MacroAssembler-x64.cpp',
'x64/SharedIC-x64.cpp',
'x64/Trampoline-x64.cpp',
]
else:
UNIFIED_SOURCES += [
'x86/Assembler-x86.cpp',
'x86/Bailouts-x86.cpp',
'x86/BaselineCompiler-x86.cpp',
'x86/BaselineIC-x86.cpp',
'x86/CodeGenerator-x86.cpp',
'x86/Lowering-x86.cpp',
'x86/MacroAssembler-x86.cpp',
'x86/SharedIC-x86.cpp',
'x86/Trampoline-x86.cpp',
]
elif CONFIG['JS_CODEGEN_ARM']:
UNIFIED_SOURCES += [
'arm/Architecture-arm.cpp',
'arm/Assembler-arm.cpp',
'arm/Bailouts-arm.cpp',
'arm/BaselineCompiler-arm.cpp',
'arm/BaselineIC-arm.cpp',
'arm/CodeGenerator-arm.cpp',
'arm/disasm/Constants-arm.cpp',
'arm/disasm/Disasm-arm.cpp',
'arm/Lowering-arm.cpp',
'arm/MacroAssembler-arm.cpp',
'arm/MoveEmitter-arm.cpp',
'arm/SharedIC-arm.cpp',
'arm/Trampoline-arm.cpp',
]
if CONFIG['JS_SIMULATOR_ARM']:
UNIFIED_SOURCES += [
'arm/Simulator-arm.cpp'
]
elif CONFIG['OS_ARCH'] == 'Darwin':
UNIFIED_SOURCES += [
'arm/llvm-compiler-rt/arm/aeabi_idivmod.S',
'arm/llvm-compiler-rt/arm/aeabi_uidivmod.S',
]
elif CONFIG['JS_CODEGEN_ARM64']:
UNIFIED_SOURCES += [
'arm64/Architecture-arm64.cpp',
'arm64/Assembler-arm64.cpp',
'arm64/Bailouts-arm64.cpp',
'arm64/BaselineIC-arm64.cpp',
'arm64/CodeGenerator-arm64.cpp',
'arm64/Lowering-arm64.cpp',
'arm64/MacroAssembler-arm64.cpp',
'arm64/MoveEmitter-arm64.cpp',
'arm64/SharedIC-arm64.cpp',
'arm64/Trampoline-arm64.cpp',
'arm64/vixl/Assembler-vixl.cpp',
'arm64/vixl/Cpu-vixl.cpp',
'arm64/vixl/Decoder-vixl.cpp',
'arm64/vixl/Disasm-vixl.cpp',
'arm64/vixl/Instructions-vixl.cpp',
'arm64/vixl/Instrument-vixl.cpp',
'arm64/vixl/MacroAssembler-vixl.cpp',
'arm64/vixl/MozAssembler-vixl.cpp',
'arm64/vixl/MozInstructions-vixl.cpp',
'arm64/vixl/Utils-vixl.cpp'
]
if CONFIG['JS_SIMULATOR_ARM64']:
UNIFIED_SOURCES += [
'arm64/vixl/Debugger-vixl.cpp',
'arm64/vixl/Logic-vixl.cpp',
'arm64/vixl/MozSimulator-vixl.cpp',
'arm64/vixl/Simulator-vixl.cpp'
]
elif CONFIG['JS_CODEGEN_MIPS32'] or CONFIG['JS_CODEGEN_MIPS64']:
UNIFIED_SOURCES += [
'mips-shared/Architecture-mips-shared.cpp',
'mips-shared/Assembler-mips-shared.cpp',
'mips-shared/Bailouts-mips-shared.cpp',
'mips-shared/BaselineCompiler-mips-shared.cpp',
'mips-shared/BaselineIC-mips-shared.cpp',
'mips-shared/CodeGenerator-mips-shared.cpp',
'mips-shared/Lowering-mips-shared.cpp',
'mips-shared/MacroAssembler-mips-shared.cpp',
'mips-shared/MoveEmitter-mips-shared.cpp',
]
if CONFIG['JS_CODEGEN_MIPS32']:
UNIFIED_SOURCES += [
'mips32/Architecture-mips32.cpp',
'mips32/Assembler-mips32.cpp',
'mips32/Bailouts-mips32.cpp',
'mips32/BaselineCompiler-mips32.cpp',
'mips32/BaselineIC-mips32.cpp',
'mips32/CodeGenerator-mips32.cpp',
'mips32/Lowering-mips32.cpp',
'mips32/MacroAssembler-mips32.cpp',
'mips32/MoveEmitter-mips32.cpp',
'mips32/SharedIC-mips32.cpp',
'mips32/Trampoline-mips32.cpp',
]
if CONFIG['JS_SIMULATOR_MIPS32']:
UNIFIED_SOURCES += [
'mips32/Simulator-mips32.cpp'
]
elif CONFIG['JS_CODEGEN_MIPS64']:
UNIFIED_SOURCES += [
'mips64/Architecture-mips64.cpp',
'mips64/Assembler-mips64.cpp',
'mips64/Bailouts-mips64.cpp',
'mips64/BaselineCompiler-mips64.cpp',
'mips64/BaselineIC-mips64.cpp',
'mips64/CodeGenerator-mips64.cpp',
'mips64/Lowering-mips64.cpp',
'mips64/MacroAssembler-mips64.cpp',
'mips64/MoveEmitter-mips64.cpp',
'mips64/SharedIC-mips64.cpp',
'mips64/Trampoline-mips64.cpp',
]
if CONFIG['JS_SIMULATOR_MIPS64']:
UNIFIED_SOURCES += [
'mips64/Simulator-mips64.cpp'
]

34
js/src/js-config.mozbuild Normal file
View File

@ -0,0 +1,34 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
FILES_PER_UNIFIED_FILE = 6
# Also set in shell/moz.build
DEFINES['ENABLE_SHARED_ARRAY_BUFFER'] = True
DEFINES['EXPORT_JS_API'] = True
if CONFIG['NIGHTLY_BUILD']:
DEFINES['ENABLE_BINARYDATA'] = True
if CONFIG['NIGHTLY_BUILD']:
DEFINES['ENABLE_SIMD'] = True
if CONFIG['JS_HAS_CTYPES']:
DEFINES['JS_HAS_CTYPES'] = True
for var in ('DLL_PREFIX', 'DLL_SUFFIX'):
DEFINES[var] = '"%s"' % CONFIG[var]
if CONFIG['MOZ_LINKER']:
DEFINES['MOZ_LINKER'] = True
if CONFIG['JS_HAS_CTYPES']:
if not CONFIG['MOZ_SYSTEM_FFI']:
# Windows needs this to be linked with a static library.
DEFINES['FFI_BUILDING'] = True
if CONFIG['OS_ARCH'] == 'WINNT':
DEFINES['_CRT_RAND_S'] = True
DEFINES['NOMINMAX'] = True

View File

@ -0,0 +1,42 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
CFLAGS += CONFIG['MOZ_ICU_CFLAGS']
CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
if CONFIG['_MSC_VER']:
# Prevent floating point errors caused by VC++ optimizations
CFLAGS += ['-fp:precise']
CXXFLAGS += ['-fp:precise']
# C4805 warns mixing bool with other integral types in computation.
# But given the conversion from bool is specified, and this is a
# pattern widely used in code in js/src, suppress this warning here.
CXXFLAGS += ['-wd4805']
# C4661 ("no suitable definition provided for explicit template
# instantiation request") is emitted for all Parser methods that
# have a Parser<FullParseHandler> definition but no
# Parser<SyntaxParseHandler> definition, see bug 1167030.
CXXFLAGS += ['-wd4661', '-we4067', '-we4258', '-we4275']
CXXFLAGS += ['-wd4146'] # FIXME: unary minus operator applied to unsigned type (bug 1229189)
# This is intended as a temporary hack to support building with VS2015.
# 'noexcept' used with no exception handling mode specified;
# termination on exception is not guaranteed. Specify /EHsc
CXXFLAGS += ['-wd4577', '-wd4312']
if CONFIG['GNU_CXX']:
# Disable strict-aliasing for GCC, which is enabled by default
# starting with version 7.1, see Mozilla bug 1363009.
CXXFLAGS += ['-Wno-shadow', '-Werror=format', '-fno-strict-aliasing']
if CONFIG['JS_HAS_CTYPES'] and CONFIG['MOZ_SYSTEM_FFI']:
CXXFLAGS += CONFIG['MOZ_FFI_CFLAGS']
if CONFIG['JS_CODEGEN_ARM'] and CONFIG['JS_SIMULATOR_ARM']:
# Configuration used only for testing.
if CONFIG['OS_ARCH'] == 'Linux' or CONFIG['OS_ARCH'] == 'Darwin':
CXXFLAGS += [ '-msse2', '-mfpmath=sse' ]

View File

@ -0,0 +1,48 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
component_engine = ('Core', 'JavaScript Engine')
component_gc = ('Core', 'JavaScript: GC')
component_intl = ('Core', 'JavaScript: Internationalization API')
component_jit = ('Core', 'JavaScript Engine: JIT')
component_stl = ('Core', 'JavaScript: Standard Library')
with Files('../public/**'):
BUG_COMPONENT = component_engine
with Files('*'):
BUG_COMPONENT = component_engine
with Files('wasm/**'):
BUG_COMPONENT = component_jit
with Files('builtin/**'):
BUG_COMPONENT = component_stl
with Files('ctypes/**'):
BUG_COMPONENT = ('Core', 'js-ctypes')
with Files('gc/**'):
BUG_COMPONENT = component_gc
with Files('jit/**'):
BUG_COMPONENT = component_jit
# File-specific metadata
for gcfile in ['jsgc*', 'devtools/rootAnalysis', 'devtools/gc-ubench', 'devtools/gctrace']:
with Files(gcfile):
BUG_COMPONENT = component_gc
for header in ('GCAnnotations.h', 'GCAPI.h', 'HeapAPI.h', 'RootingAPI.h', 'SliceBudget.h', 'SweepingAPI.h', 'TraceKind.h', 'TracingAPI.h', 'WeakMapPtr.h'):
with Files('../public/' + header):
BUG_COMPONENT = component_gc
for stlfile in ['jsarray.*', 'jsbool*', 'jsdate.*', 'jsnum.*', 'json.*', 'jsstr.*']:
with Files(stlfile):
BUG_COMPONENT = component_stl
with Files('builtin/Intl*'):
BUG_COMPONENT = component_intl
with Files('builtin/make_intl_data.py'):
BUG_COMPONENT = component_intl
with Files('../public/TrackedOptimizationInfo.h'):
BUG_COMPONENT = component_jit
TEST_DIRS += ['jsapi-tests', 'tests', 'gdb']

View File

@ -3,6 +3,8 @@
# 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/.
include(../js-cxxflags.mozbuild)
GeckoProgram('jsapi-tests', linkage=None)
UNIFIED_SOURCES += [
@ -142,12 +144,5 @@ USE_LIBS += [
OS_LIBS += CONFIG['MOZ_ZLIB_LIBS']
if CONFIG['GNU_CXX']:
CXXFLAGS += ['-Wno-shadow', '-Werror=format', '-fno-strict-aliasing']
# This is intended as a temporary workaround to enable VS2015.
if CONFIG['_MSC_VER']:
CXXFLAGS += ['-wd4312']
DEFINES['topsrcdir'] = '%s/js/src' % TOPSRCDIR
OBJDIR_PP_FILES.js.src['jsapi-tests'] += ['jsapi-tests-gdb.py.in']

View File

@ -3,65 +3,15 @@
# 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/.
# Directory metadata
component_engine = ('Core', 'JavaScript Engine')
component_gc = ('Core', 'JavaScript: GC')
component_intl = ('Core', 'JavaScript: Internationalization API')
component_jit = ('Core', 'JavaScript Engine: JIT')
component_stl = ('Core', 'JavaScript: Standard Library')
FILES_PER_UNIFIED_FILE = 6
with Files('../public/**'):
BUG_COMPONENT = component_engine
with Files('*'):
BUG_COMPONENT = component_engine
with Files('wasm/**'):
BUG_COMPONENT = component_jit
with Files('builtin/**'):
BUG_COMPONENT = component_stl
with Files('ctypes/**'):
BUG_COMPONENT = ('Core', 'js-ctypes')
with Files('gc/**'):
BUG_COMPONENT = component_gc
with Files('jit/**'):
BUG_COMPONENT = component_jit
# File-specific metadata
for gcfile in ['jsgc*', 'devtools/rootAnalysis', 'devtools/gc-ubench', 'devtools/gctrace']:
with Files(gcfile):
BUG_COMPONENT = component_gc
for header in ('GCAnnotations.h', 'GCAPI.h', 'HeapAPI.h', 'RootingAPI.h', 'SliceBudget.h', 'SweepingAPI.h', 'TraceKind.h', 'TracingAPI.h', 'WeakMapPtr.h'):
with Files('../public/' + header):
BUG_COMPONENT = component_gc
for stlfile in ['jsarray.*', 'jsbool*', 'jsdate.*', 'jsnum.*', 'json.*', 'jsstr.*']:
with Files(stlfile):
BUG_COMPONENT = component_stl
with Files('builtin/Intl*'):
BUG_COMPONENT = component_intl
with Files('builtin/make_intl_data.py'):
BUG_COMPONENT = component_intl
with Files('../public/TrackedOptimizationInfo.h'):
BUG_COMPONENT = component_jit
if CONFIG['JS_BUNDLED_EDITLINE']:
DIRS += ['editline']
if not CONFIG['JS_DISABLE_SHELL']:
DIRS += ['shell']
TEST_DIRS += ['jsapi-tests', 'tests', 'gdb']
include('js-config.mozbuild')
include('js-cxxflags.mozbuild')
include('js-testing.mozbuild')
CONFIGURE_SUBST_FILES += [
'devtools/rootAnalysis/Makefile',
'js-config',
'js.pc',
]
CONFIGURE_DEFINE_FILES += [
'js-confdefs.h',
]
@ -80,7 +30,6 @@ CONFIGURE_DEFINE_FILES += [
if CONFIG['HAVE_DTRACE']:
GENERATED_FILES += ['javascript-trace.h']
EXPORTS += ['!javascript-trace.h']
# Changes to internal header files, used externally, massively slow down
@ -101,7 +50,6 @@ EXPORTS += [
'jstypes.h',
'jsversion.h',
'jswrapper.h',
'perf/jsperf.h',
]
# If you add a header here, add it to js/src/jsapi-tests/testIntTypesABI.cpp so
@ -154,122 +102,33 @@ EXPORTS.js += [
'../public/WeakMapPtr.h',
]
SOURCES += [
'builtin/AtomicsObject.cpp',
'builtin/Eval.cpp',
'builtin/Intl.cpp',
'builtin/MapObject.cpp',
'builtin/ModuleObject.cpp',
'builtin/Object.cpp',
'builtin/Profilers.cpp',
'builtin/Promise.cpp',
'builtin/Reflect.cpp',
'builtin/ReflectParse.cpp',
'builtin/SIMD.cpp',
'builtin/SymbolObject.cpp',
'builtin/TestingFunctions.cpp',
'builtin/TypedObject.cpp',
'builtin/WeakMapObject.cpp',
'builtin/WeakSetObject.cpp',
'devtools/sharkctl.cpp',
'ds/LifoAlloc.cpp',
'ds/MemoryProtectionExceptionHandler.cpp',
'frontend/BytecodeCompiler.cpp',
'frontend/BytecodeEmitter.cpp',
'frontend/FoldConstants.cpp',
'frontend/NameFunctions.cpp',
'frontend/ParseNode.cpp',
'frontend/TokenStream.cpp',
'gc/Allocator.cpp',
'gc/Barrier.cpp',
'gc/GCTrace.cpp',
'gc/Iteration.cpp',
'gc/Marking.cpp',
'gc/Memory.cpp',
'gc/MemoryProfiler.cpp',
'gc/Nursery.cpp',
'gc/RootMarking.cpp',
'gc/Statistics.cpp',
'gc/Tracer.cpp',
'gc/Verifier.cpp',
'gc/Zone.cpp',
'irregexp/NativeRegExpMacroAssembler.cpp',
'irregexp/RegExpAST.cpp',
'irregexp/RegExpCharacters.cpp',
'irregexp/RegExpEngine.cpp',
'irregexp/RegExpInterpreter.cpp',
'irregexp/RegExpMacroAssembler.cpp',
'irregexp/RegExpParser.cpp',
'irregexp/RegExpStack.cpp',
'jit/AliasAnalysis.cpp',
'jit/AliasAnalysisShared.cpp',
'jit/AlignmentMaskAnalysis.cpp',
'jit/BacktrackingAllocator.cpp',
'jit/Bailouts.cpp',
'jit/BaselineBailouts.cpp',
'jit/BaselineCacheIR.cpp',
'jit/BaselineCompiler.cpp',
'jit/BaselineDebugModeOSR.cpp',
'jit/BaselineFrame.cpp',
'jit/BaselineFrameInfo.cpp',
'jit/BaselineIC.cpp',
'jit/BaselineInspector.cpp',
'jit/BaselineJIT.cpp',
'jit/BitSet.cpp',
'jit/BytecodeAnalysis.cpp',
'jit/C1Spewer.cpp',
'jit/CacheIR.cpp',
'jit/CodeGenerator.cpp',
'jit/CompileWrappers.cpp',
'jit/Disassembler.cpp',
'jit/EagerSimdUnbox.cpp',
'jit/EdgeCaseAnalysis.cpp',
'jit/EffectiveAddressAnalysis.cpp',
'jit/ExecutableAllocator.cpp',
'jit/FlowAliasAnalysis.cpp',
'jit/FoldLinearArithConstants.cpp',
'jit/InstructionReordering.cpp',
'jit/Ion.cpp',
'jit/IonAnalysis.cpp',
'jit/IonBuilder.cpp',
'jit/IonCaches.cpp',
'jit/IonOptimizationLevels.cpp',
'jit/JitcodeMap.cpp',
'jit/JitFrames.cpp',
'jit/JitOptions.cpp',
'jit/JitSpewer.cpp',
'jit/JSONSpewer.cpp',
'jit/LICM.cpp',
'jit/Linker.cpp',
'jit/LIR.cpp',
'jit/LoopUnroller.cpp',
'jit/Lowering.cpp',
'jit/MacroAssembler.cpp',
'jit/MCallOptimize.cpp',
'jit/MIR.cpp',
'jit/MIRGraph.cpp',
'jit/MoveResolver.cpp',
'jit/OptimizationTracking.cpp',
'jit/PerfSpewer.cpp',
'jit/ProcessExecutableMemory.cpp',
'jit/RangeAnalysis.cpp',
'jit/Recover.cpp',
'jit/RegisterAllocator.cpp',
'jit/RematerializedFrame.cpp',
'jit/Safepoints.cpp',
'jit/ScalarReplacement.cpp',
'jit/shared/BaselineCompiler-shared.cpp',
'jit/shared/CodeGenerator-shared.cpp',
'jit/shared/Lowering-shared.cpp',
'jit/SharedIC.cpp',
'jit/Sink.cpp',
'jit/Snapshots.cpp',
'jit/StupidAllocator.cpp',
'jit/TypedObjectPrediction.cpp',
'jit/TypePolicy.cpp',
'jit/ValueNumbering.cpp',
'jit/VMFunctions.cpp',
'jit/WasmBCE.cpp',
DIRS += [
'builtin',
'devtools',
'ds',
'frontend',
'gc',
'irregexp',
'jit',
'perf',
'proxy',
'threading',
'wasm',
]
if CONFIG['JS_HAS_CTYPES']:
DIRS += ['ctypes']
if CONFIG['JS_BUNDLED_EDITLINE']:
DIRS += ['editline']
if not CONFIG['JS_DISABLE_SHELL']:
DIRS += ['shell']
if CONFIG['MOZ_VTUNE']:
DIRS += ['vtune']
UNIFIED_SOURCES += [
'jsalloc.cpp',
'jsapi.cpp',
'jsbool.cpp',
@ -291,16 +150,23 @@ SOURCES += [
'jsscript.cpp',
'jsstr.cpp',
'jsweakmap.cpp',
'perf/jsperf.cpp',
'proxy/BaseProxyHandler.cpp',
'proxy/CrossCompartmentWrapper.cpp',
'proxy/DeadObjectProxy.cpp',
'proxy/OpaqueCrossCompartmentWrapper.cpp',
'proxy/Proxy.cpp',
'proxy/ScriptedProxyHandler.cpp',
'proxy/SecurityWrapper.cpp',
'proxy/Wrapper.cpp',
'threading/Mutex.cpp',
]
# Can't be built unified
SOURCES += [
'jsarray.cpp',
'jsatom.cpp',
'jsdtoa.cpp',
'jsmath.cpp',
'jsutil.cpp',
]
# Suppress warnings in third-party code.
# We are keeping this in the main moz.build because it is file specific
if CONFIG['CLANG_CXX'] or CONFIG['GNU_CXX']:
SOURCES['jsdtoa.cpp'].flags += ['-Wno-implicit-fallthrough']
UNIFIED_SOURCES += [
'vm/ArgumentsObject.cpp',
'vm/ArrayBufferObject.cpp',
'vm/AsyncFunction.cpp',
@ -359,273 +225,26 @@ SOURCES += [
'vm/Value.cpp',
'vm/WeakMapPtr.cpp',
'vm/Xdr.cpp',
'wasm/AsmJS.cpp',
'wasm/WasmBaselineCompile.cpp',
'wasm/WasmBinaryFormat.cpp',
'wasm/WasmBinaryIterator.cpp',
'wasm/WasmBinaryToAST.cpp',
'wasm/WasmBinaryToExperimentalText.cpp',
'wasm/WasmBinaryToText.cpp',
'wasm/WasmCode.cpp',
'wasm/WasmCompartment.cpp',
'wasm/WasmCompile.cpp',
'wasm/WasmFrameIterator.cpp',
'wasm/WasmGenerator.cpp',
'wasm/WasmInstance.cpp',
'wasm/WasmIonCompile.cpp',
'wasm/WasmJS.cpp',
'wasm/WasmModule.cpp',
'wasm/WasmSignalHandlers.cpp',
'wasm/WasmStubs.cpp',
'wasm/WasmTable.cpp',
'wasm/WasmTextToBinary.cpp',
'wasm/WasmTextUtils.cpp',
'wasm/WasmTypes.cpp'
]
# jsarray.cpp and jsatom.cpp cannot be built in unified mode because
# xpcshell is broken during packaging when compiled with gcc-4.8.2
# builtin/RegExp.cpp cannot be built in unified mode because it is built
# without PGO
# frontend/Parser.cpp cannot be built in unified mode because of explicit
# template instantiations.
# jsdtoa.cpp cannot be built in unified mode because we want to suppress
# compiler warnings in third-party dtoa.c.
# jsmath.cpp cannot be built in unified mode because it needs to pull rand_s
# from <stdlib.h> on Windows through a preprocessor define.
# jsutil.cpp cannot be built in unified mode because it is needed for
# check-vanilla-allocations.
# StoreBuffer.cpp cannot be built in unified because its template
# instantiations may or may not be needed depending on what it gets bundled
# with.
# Can't be built unified
SOURCES += [
'builtin/RegExp.cpp',
'frontend/Parser.cpp',
'gc/StoreBuffer.cpp',
'jsarray.cpp',
'jsatom.cpp',
'jsdtoa.cpp',
'jsmath.cpp',
'jsutil.cpp',
'vm/Initialization.cpp',
]
if CONFIG['JS_POSIX_NSPR']:
SOURCES += [
UNIFIED_SOURCES += [
'vm/PosixNSPR.cpp',
]
if CONFIG['MOZ_INSTRUMENTS']:
SOURCES += [
'devtools/Instruments.cpp',
]
if CONFIG['ENABLE_TRACE_LOGGING']:
# Can't be built unified
SOURCES += [
'vm/TraceLogging.cpp',
'vm/TraceLoggingGraph.cpp',
'vm/TraceLoggingTypes.cpp',
]
if not CONFIG['ENABLE_ION']:
SOURCES += [
'jit/none/Trampoline-none.cpp'
]
elif CONFIG['JS_CODEGEN_X86'] or CONFIG['JS_CODEGEN_X64']:
SOURCES += [
'jit/x86-shared/Architecture-x86-shared.cpp',
'jit/x86-shared/Assembler-x86-shared.cpp',
'jit/x86-shared/AssemblerBuffer-x86-shared.cpp',
'jit/x86-shared/BaselineCompiler-x86-shared.cpp',
'jit/x86-shared/BaselineIC-x86-shared.cpp',
'jit/x86-shared/CodeGenerator-x86-shared.cpp',
'jit/x86-shared/Lowering-x86-shared.cpp',
'jit/x86-shared/MacroAssembler-x86-shared.cpp',
'jit/x86-shared/MoveEmitter-x86-shared.cpp',
]
SOURCES += [
'jit/x86-shared/Disassembler-x86-shared.cpp', # using namespace js::jit::X86Encoding;
]
if CONFIG['JS_CODEGEN_X64']:
SOURCES += [
'jit/x64/Assembler-x64.cpp',
'jit/x64/Bailouts-x64.cpp',
'jit/x64/BaselineCompiler-x64.cpp',
'jit/x64/BaselineIC-x64.cpp',
'jit/x64/CodeGenerator-x64.cpp',
'jit/x64/Lowering-x64.cpp',
'jit/x64/MacroAssembler-x64.cpp',
'jit/x64/SharedIC-x64.cpp',
'jit/x64/Trampoline-x64.cpp',
]
else:
SOURCES += [
'jit/x86/Assembler-x86.cpp',
'jit/x86/Bailouts-x86.cpp',
'jit/x86/BaselineCompiler-x86.cpp',
'jit/x86/BaselineIC-x86.cpp',
'jit/x86/CodeGenerator-x86.cpp',
'jit/x86/Lowering-x86.cpp',
'jit/x86/MacroAssembler-x86.cpp',
'jit/x86/SharedIC-x86.cpp',
'jit/x86/Trampoline-x86.cpp',
]
elif CONFIG['JS_CODEGEN_ARM']:
SOURCES += [
'jit/arm/Architecture-arm.cpp',
'jit/arm/Assembler-arm.cpp',
'jit/arm/Bailouts-arm.cpp',
'jit/arm/BaselineCompiler-arm.cpp',
'jit/arm/BaselineIC-arm.cpp',
'jit/arm/CodeGenerator-arm.cpp',
'jit/arm/disasm/Constants-arm.cpp',
'jit/arm/disasm/Disasm-arm.cpp',
'jit/arm/Lowering-arm.cpp',
'jit/arm/MacroAssembler-arm.cpp',
'jit/arm/MoveEmitter-arm.cpp',
'jit/arm/SharedIC-arm.cpp',
'jit/arm/Trampoline-arm.cpp',
]
if CONFIG['JS_SIMULATOR_ARM']:
SOURCES += [
'jit/arm/Simulator-arm.cpp'
]
# Configuration used only for testing.
if CONFIG['OS_ARCH'] == 'Linux' or CONFIG['OS_ARCH'] == 'Darwin':
CXXFLAGS += [ '-msse2', '-mfpmath=sse' ]
elif CONFIG['OS_ARCH'] == 'Darwin':
SOURCES += [
'jit/arm/llvm-compiler-rt/arm/aeabi_idivmod.S',
'jit/arm/llvm-compiler-rt/arm/aeabi_uidivmod.S',
]
elif CONFIG['JS_CODEGEN_ARM64']:
SOURCES += [
'jit/arm64/Architecture-arm64.cpp',
'jit/arm64/Assembler-arm64.cpp',
'jit/arm64/Bailouts-arm64.cpp',
'jit/arm64/BaselineIC-arm64.cpp',
'jit/arm64/CodeGenerator-arm64.cpp',
'jit/arm64/Lowering-arm64.cpp',
'jit/arm64/MacroAssembler-arm64.cpp',
'jit/arm64/MoveEmitter-arm64.cpp',
'jit/arm64/SharedIC-arm64.cpp',
'jit/arm64/Trampoline-arm64.cpp',
'jit/arm64/vixl/Assembler-vixl.cpp',
'jit/arm64/vixl/Cpu-vixl.cpp',
'jit/arm64/vixl/Decoder-vixl.cpp',
'jit/arm64/vixl/Disasm-vixl.cpp',
'jit/arm64/vixl/Instructions-vixl.cpp',
'jit/arm64/vixl/Instrument-vixl.cpp',
'jit/arm64/vixl/MacroAssembler-vixl.cpp',
'jit/arm64/vixl/MozAssembler-vixl.cpp',
'jit/arm64/vixl/MozInstructions-vixl.cpp',
'jit/arm64/vixl/Utils-vixl.cpp'
]
if CONFIG['JS_SIMULATOR_ARM64']:
SOURCES += [
'jit/arm64/vixl/Debugger-vixl.cpp',
'jit/arm64/vixl/Logic-vixl.cpp',
'jit/arm64/vixl/MozSimulator-vixl.cpp',
'jit/arm64/vixl/Simulator-vixl.cpp'
]
elif CONFIG['JS_CODEGEN_MIPS32'] or CONFIG['JS_CODEGEN_MIPS64']:
SOURCES += [
'jit/mips-shared/Architecture-mips-shared.cpp',
'jit/mips-shared/Assembler-mips-shared.cpp',
'jit/mips-shared/Bailouts-mips-shared.cpp',
'jit/mips-shared/BaselineCompiler-mips-shared.cpp',
'jit/mips-shared/BaselineIC-mips-shared.cpp',
'jit/mips-shared/CodeGenerator-mips-shared.cpp',
'jit/mips-shared/Lowering-mips-shared.cpp',
'jit/mips-shared/MacroAssembler-mips-shared.cpp',
'jit/mips-shared/MoveEmitter-mips-shared.cpp',
]
if CONFIG['JS_CODEGEN_MIPS32']:
SOURCES += [
'jit/mips32/Architecture-mips32.cpp',
'jit/mips32/Assembler-mips32.cpp',
'jit/mips32/Bailouts-mips32.cpp',
'jit/mips32/BaselineCompiler-mips32.cpp',
'jit/mips32/BaselineIC-mips32.cpp',
'jit/mips32/CodeGenerator-mips32.cpp',
'jit/mips32/Lowering-mips32.cpp',
'jit/mips32/MacroAssembler-mips32.cpp',
'jit/mips32/MoveEmitter-mips32.cpp',
'jit/mips32/SharedIC-mips32.cpp',
'jit/mips32/Trampoline-mips32.cpp',
]
if CONFIG['JS_SIMULATOR_MIPS32']:
SOURCES += [
'jit/mips32/Simulator-mips32.cpp'
]
elif CONFIG['JS_CODEGEN_MIPS64']:
SOURCES += [
'jit/mips64/Architecture-mips64.cpp',
'jit/mips64/Assembler-mips64.cpp',
'jit/mips64/Bailouts-mips64.cpp',
'jit/mips64/BaselineCompiler-mips64.cpp',
'jit/mips64/BaselineIC-mips64.cpp',
'jit/mips64/CodeGenerator-mips64.cpp',
'jit/mips64/Lowering-mips64.cpp',
'jit/mips64/MacroAssembler-mips64.cpp',
'jit/mips64/MoveEmitter-mips64.cpp',
'jit/mips64/SharedIC-mips64.cpp',
'jit/mips64/Trampoline-mips64.cpp',
]
if CONFIG['JS_SIMULATOR_MIPS64']:
SOURCES += [
'jit/mips64/Simulator-mips64.cpp'
]
if CONFIG['OS_ARCH'] == 'WINNT':
SOURCES += [
'threading/windows/ConditionVariable.cpp',
'threading/windows/MutexImpl.cpp',
'threading/windows/Thread.cpp',
]
# _CRT_RAND_S must be #defined before #including stdlib.h to get rand_s()
DEFINES['_CRT_RAND_S'] = True
else:
SOURCES += [
'threading/posix/ConditionVariable.cpp',
'threading/posix/MutexImpl.cpp',
'threading/posix/Thread.cpp',
]
if CONFIG['JS_HAS_CTYPES']:
SOURCES += [
'ctypes/CTypes.cpp',
'ctypes/Library.cpp',
]
if not CONFIG['MOZ_SYSTEM_FFI']:
LOCAL_INCLUDES += [
'!ctypes/libffi/include',
'ctypes/libffi/src/%s' % CONFIG['FFI_TARGET_DIR'],
]
if CONFIG['MOZ_VTUNE']:
SOURCES += [
'vtune/jitprofiling.c'
]
if CONFIG['HAVE_LINUX_PERF_EVENT_H']:
SOURCES += [
'perf/pm_linux.cpp'
]
if CONFIG['LINUX_HEADERS_INCLUDES']:
SOURCES['perf/pm_linux.cpp'].flags += [CONFIG['LINUX_HEADERS_INCLUDES']]
else:
SOURCES += [
'perf/pm_stub.cpp'
]
GENERATED_FILES += ['frontend/ReservedWordsGenerated.h']
ReservedWordsGenerated = GENERATED_FILES['frontend/ReservedWordsGenerated.h']
ReservedWordsGenerated.script = 'frontend/GenerateReservedWords.py'
ReservedWordsGenerated.inputs += [
'frontend/ReservedWords.h'
]
# JavaScript must be built shared, even for static builds, as it is used by
# other modules which are always built shared. Failure to do so results in
# the js code getting copied into xpinstall and jsd as well as mozilla-bin,
@ -661,65 +280,14 @@ USE_LIBS += [
'zlib',
]
if CONFIG['NIGHTLY_BUILD']:
DEFINES['ENABLE_BINARYDATA'] = True
if CONFIG['NIGHTLY_BUILD']:
DEFINES['ENABLE_SIMD'] = True
# Also set in shell/moz.build
DEFINES['ENABLE_SHARED_ARRAY_BUFFER'] = True
DEFINES['EXPORT_JS_API'] = True
if CONFIG['JS_HAS_CTYPES']:
DEFINES['JS_HAS_CTYPES'] = True
for var in ('DLL_PREFIX', 'DLL_SUFFIX'):
DEFINES[var] = '"%s"' % CONFIG[var]
if CONFIG['MOZ_LINKER']:
DEFINES['MOZ_LINKER'] = True
if CONFIG['_MSC_VER']:
if CONFIG['CPU_ARCH'] == 'x86':
SOURCES['builtin/RegExp.cpp'].no_pgo = True # Bug 772303
elif CONFIG['CPU_ARCH'] == 'x86_64' and CONFIG['JS_HAS_CTYPES']:
SOURCES['ctypes/CTypes.cpp'].no_pgo = True # Bug 810661
# Prevent floating point errors caused by VC++ optimizations
CFLAGS += ['-fp:precise']
CXXFLAGS += ['-fp:precise']
# C4805 warns mixing bool with other integral types in computation.
# But given the conversion from bool is specified, and this is a
# pattern widely used in code in js/src, suppress this warning here.
CXXFLAGS += ['-wd4805']
# C4661 ("no suitable definition provided for explicit template
# instantiation request") is emitted for all Parser methods that
# have a Parser<FullParseHandler> definition but no
# Parser<SyntaxParseHandler> definition, see bug 1167030.
CXXFLAGS += ['-wd4661']
CXXFLAGS += ['-we4067', '-we4258', '-we4275']
CXXFLAGS += ['-wd4146'] # FIXME: unary minus operator applied to unsigned type (bug 1229189)
# This is intended as a temporary hack to support building with VS2015.
# 'noexcept' used with no exception handling mode specified;
# termination on exception is not guaranteed. Specify /EHsc
CXXFLAGS += ['-wd4577']
CXXFLAGS += ['-wd4312']
if CONFIG['OS_ARCH'] not in ('WINNT'):
OS_LIBS += [
'm',
]
OS_LIBS += ['m']
if CONFIG['OS_ARCH'] == 'FreeBSD':
OS_LIBS += [
'-pthread',
]
OS_LIBS += ['-pthread']
if CONFIG['OS_ARCH'] == 'Linux':
OS_LIBS += [
'dl',
]
OS_LIBS += ['dl']
if CONFIG['OS_ARCH'] == 'SunOS':
OS_LIBS += [
@ -731,65 +299,8 @@ if CONFIG['OS_ARCH'] == 'SunOS':
OS_LIBS += CONFIG['REALTIME_LIBS']
CFLAGS += CONFIG['MOZ_ICU_CFLAGS']
CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
NO_EXPAND_LIBS = True
DIST_INSTALL = True
# Prepare self-hosted JS code for embedding
GENERATED_FILES += [('selfhosted.out.h', 'selfhosted.js')]
selfhosted = GENERATED_FILES[('selfhosted.out.h', 'selfhosted.js')]
selfhosted.script = 'builtin/embedjs.py:generate_selfhosted'
selfhosted.inputs = [
'js.msg',
'builtin/TypedObjectConstants.h',
'builtin/SelfHostingDefines.h',
'builtin/Utilities.js',
'builtin/Array.js',
'builtin/AsyncIteration.js',
'builtin/Classes.js',
'builtin/Date.js',
'builtin/Error.js',
'builtin/Function.js',
'builtin/Generator.js',
'builtin/Intl.js',
'builtin/IntlData.js',
'builtin/Iterator.js',
'builtin/Map.js',
'builtin/Module.js',
'builtin/Number.js',
'builtin/Object.js',
'builtin/Promise.js',
'builtin/Reflect.js',
'builtin/RegExp.js',
'builtin/RegExpGlobalReplaceOpt.h.js',
'builtin/RegExpLocalReplaceOpt.h.js',
'builtin/String.js',
'builtin/Set.js',
'builtin/Sorting.js',
'builtin/TypedArray.js',
'builtin/TypedObject.js',
'builtin/WeakMap.js',
'builtin/WeakSet.js'
]
if CONFIG['JS_HAS_CTYPES']:
if CONFIG['MOZ_SYSTEM_FFI']:
CXXFLAGS += CONFIG['MOZ_FFI_CFLAGS']
else:
# Windows needs this to be linked with a static library.
DEFINES['FFI_BUILDING'] = True
if CONFIG['GNU_CXX']:
# Disable strict-aliasing for GCC, which is enabled by default
# starting with version 7.1, see Mozilla bug 1363009.
CXXFLAGS += ['-Wno-shadow', '-Werror=format', '-fno-strict-aliasing']
# Suppress warnings in third-party code.
if CONFIG['CLANG_CXX'] or CONFIG['GNU_CXX']:
SOURCES['jsdtoa.cpp'].flags += ['-Wno-implicit-fallthrough']
if CONFIG['OS_ARCH'] == 'WINNT':
DEFINES['NOMINMAX'] = True

29
js/src/perf/moz.build Normal file
View File

@ -0,0 +1,29 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
include('../js-config.mozbuild')
include('../js-cxxflags.mozbuild')
FINAL_LIBRARY = "js"
# Includes should be relative to parent path
LOCAL_INCLUDES += ["!..", ".."]
EXPORTS += ['jsperf.h']
SOURCES += [
'jsperf.cpp',
]
if CONFIG['HAVE_LINUX_PERF_EVENT_H']:
SOURCES += [
'pm_linux.cpp'
]
if CONFIG['LINUX_HEADERS_INCLUDES']:
SOURCES['pm_linux.cpp'].flags += [CONFIG['LINUX_HEADERS_INCLUDES']]
else:
SOURCES += [
'pm_stub.cpp'
]

23
js/src/proxy/moz.build Normal file
View File

@ -0,0 +1,23 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
include('../js-config.mozbuild')
include('../js-cxxflags.mozbuild')
FINAL_LIBRARY = "js"
# Includes should be relative to parent path
LOCAL_INCLUDES += ["!..", ".."]
SOURCES += [
'BaseProxyHandler.cpp',
'CrossCompartmentWrapper.cpp',
'DeadObjectProxy.cpp',
'OpaqueCrossCompartmentWrapper.cpp',
'Proxy.cpp',
'ScriptedProxyHandler.cpp',
'SecurityWrapper.cpp',
'Wrapper.cpp',
]

View File

@ -3,6 +3,8 @@
# 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/.
include('../js-cxxflags.mozbuild')
if CONFIG['JS_SHELL_NAME']:
GeckoProgram(CONFIG['JS_SHELL_NAME'], linkage=None)
if CONFIG['JS_BUNDLED_EDITLINE']:
@ -49,13 +51,6 @@ shellmoduleloader.inputs = [
'ModuleLoader.js',
]
if CONFIG['GNU_CXX']:
CXXFLAGS += ['-Wno-shadow', '-Werror=format']
# This is intended as a temporary workaround to enable VS2015.
if CONFIG['_MSC_VER']:
CXXFLAGS += ['-wd4312']
# Place a GDB Python auto-load file next to the shell executable, both in
# the build directory and in the dist/bin directory.
DEFINES['topsrcdir'] = '%s/js/src' % TOPSRCDIR

View File

@ -0,0 +1,30 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
include('../js-config.mozbuild')
include('../js-cxxflags.mozbuild')
FINAL_LIBRARY = "js"
# Includes should be relative to parent path
LOCAL_INCLUDES += ["!..", ".."]
SOURCES += [
'Mutex.cpp',
]
if CONFIG['OS_ARCH'] == 'WINNT':
SOURCES += [
'windows/ConditionVariable.cpp',
'windows/MutexImpl.cpp',
'windows/Thread.cpp',
]
# _CRT_RAND_S must be #defined before #including stdlib.h to get rand_s()
else:
SOURCES += [
'posix/ConditionVariable.cpp',
'posix/MutexImpl.cpp',
'posix/Thread.cpp',
]

View File

@ -20,8 +20,8 @@
#include "jsstr.h"
#include "jsweakmap.h"
#include "jswrapper.h"
#include "selfhosted.out.h"
#include "builtin/selfhosted.out.h"
#include "builtin/Intl.h"
#include "builtin/MapObject.h"
#include "builtin/ModuleObject.h"

14
js/src/vtune/moz.build Normal file
View File

@ -0,0 +1,14 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
include('../js-config.mozbuild')
include('../js-cxxflags.mozbuild')
FINAL_LIBRARY = "js"
# Includes should be relative to parent path
LOCAL_INCLUDES += ["!..", ".."]
SOURCES += ['jitprofiling.c']

39
js/src/wasm/moz.build Normal file
View File

@ -0,0 +1,39 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
include('../js-config.mozbuild')
include('../js-cxxflags.mozbuild')
FINAL_LIBRARY = "js"
# Includes should be relative to parent path
LOCAL_INCLUDES += ["!..", ".."]
UNIFIED_SOURCES += [
'AsmJS.cpp',
'WasmBaselineCompile.cpp',
'WasmBinaryFormat.cpp',
'WasmBinaryToAST.cpp',
'WasmBinaryToExperimentalText.cpp',
'WasmBinaryToText.cpp',
'WasmCode.cpp',
'WasmCompartment.cpp',
'WasmCompile.cpp',
'WasmFrameIterator.cpp',
'WasmGenerator.cpp',
'WasmInstance.cpp',
'WasmIonCompile.cpp',
'WasmJS.cpp',
'WasmModule.cpp',
'WasmSignalHandlers.cpp',
'WasmStubs.cpp',
'WasmTable.cpp',
'WasmTextToBinary.cpp',
'WasmTextUtils.cpp',
'WasmTypes.cpp'
]
if CONFIG['MOZ_DEBUG']:
SOURCES += ['WasmBinaryIterator.cpp']