# -*- Mode: python; 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/. Library("winlauncher-freestanding") FORCE_STATIC_LIB = True # Our patched NtMapViewOfSection can be called before the process's import # table is populated. Don't let the compiler insert any instrumentation # that might call an import. NO_PGO = True UNIFIED_SOURCES += [ "DllBlocklist.cpp", "LoaderPrivateAPI.cpp", "ModuleLoadFrame.cpp", "SharedSection.cpp", ] # This library must be compiled in a freestanding environment, as its code must # not assume that it has access to any runtime libraries. if CONFIG["CC_TYPE"] == "clang-cl": CXXFLAGS += ["-Xclang"] CXXFLAGS += [ "-ffreestanding", ] # Forcibly include Freestanding.h into all source files in this library. if CONFIG["CC_TYPE"] == "clang-cl": CXXFLAGS += ["-FI"] else: CXXFLAGS += ["-include"] CXXFLAGS += [SRCDIR + "/Freestanding.h"] OS_LIBS += [ "ntdll", "ntdll_freestanding", ] if CONFIG["COMPILE_ENVIRONMENT"] and CONFIG["LLVM_DLLTOOL"]: GeneratedFile( "%sntdll_freestanding.%s" % (CONFIG["LIB_PREFIX"], CONFIG["LIB_SUFFIX"]), script="gen_ntdll_freestanding_lib.py", inputs=["ntdll_freestanding.def"], flags=[CONFIG["LLVM_DLLTOOL"]] + CONFIG["LLVM_DLLTOOL_FLAGS"], ) DisableStlWrapping() with Files("**"): BUG_COMPONENT = ("Firefox", "Launcher Process")