Update GN bootstrap build
Bootstrap didn't work due to recent modifications in base.
Unfortunately some new dependencies are required on OSX
and that required adding generated_build_date.h to be
available separately for the bootstrap process.
Tested on Linux and OSX.
BUG=None
TEST=./tools/gn/bootstrap/bootstrap.py
R=brettw@chromium.org,tfarina@chromium.org
Review URL: https://codereview.chromium.org/1692303004
Cr-Original-Commit-Position: refs/heads/master@{#376133}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: cda4afd7efda6e3034d58d9f375b01ff3f36d220
diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
index 2f5e995..ac8adc8 100755
--- a/tools/gn/bootstrap/bootstrap.py
+++ b/tools/gn/bootstrap/bootstrap.py
@@ -115,23 +115,40 @@
def build_gn_with_ninja_manually(tempdir, options):
- write_ninja(os.path.join(tempdir, 'build.ninja'), options)
+ root_gen_dir = os.path.join(tempdir, 'gen')
+ mkdir_p(root_gen_dir)
+
+ if is_mac:
+ # //base/build_time.cc needs base/generated_build_date.h,
+ # and this file is only included for Mac builds.
+ mkdir_p(os.path.join(root_gen_dir, 'base'))
+ check_call([
+ os.path.join(SRC_ROOT, 'build', 'write_build_date_header.py'),
+ os.path.join(root_gen_dir, 'base', 'generated_build_date.h'),
+ 'default'
+ ])
+
+ write_ninja(os.path.join(tempdir, 'build.ninja'), root_gen_dir, options)
cmd = ['ninja', '-C', tempdir]
if options.verbose:
cmd.append('-v')
cmd.append('gn')
check_call(cmd)
-def write_ninja(path, options):
+def write_ninja(path, root_gen_dir, options):
cc = os.environ.get('CC', '')
cxx = os.environ.get('CXX', '')
cflags = os.environ.get('CFLAGS', '').split()
cflags_cc = os.environ.get('CXXFLAGS', '').split()
ld = os.environ.get('LD', cxx)
ldflags = os.environ.get('LDFLAGS', '').split()
- include_dirs = [SRC_ROOT]
+ include_dirs = [root_gen_dir, SRC_ROOT]
libs = []
+ # //base/allocator/allocator_extension.cc needs this macro defined,
+ # otherwise there would be link errors.
+ cflags.extend(['-DNO_TCMALLOC'])
+
if is_posix:
if options.debug:
cflags.extend(['-O0', '-g'])
@@ -179,6 +196,7 @@
'base/files/file_path_constants.cc',
'base/files/file_tracing.cc',
'base/files/file_util.cc',
+ 'base/files/memory_mapped_file.cc',
'base/files/scoped_file.cc',
'base/hash.cc',
'base/json/json_parser.cc',
@@ -202,8 +220,10 @@
'base/metrics/bucket_ranges.cc',
'base/metrics/histogram.cc',
'base/metrics/histogram_base.cc',
+ 'base/metrics/histogram_persistence.cc',
'base/metrics/histogram_samples.cc',
'base/metrics/metrics_hashes.cc',
+ 'base/metrics/persistent_memory_allocator.cc',
'base/metrics/sample_map.cc',
'base/metrics/sample_vector.cc',
'base/metrics/sparse_histogram.cc',
@@ -214,6 +234,8 @@
'base/process/kill.cc',
'base/process/process_iterator.cc',
'base/process/process_metrics.cc',
+ 'base/profiler/scoped_profile.cc',
+ 'base/profiler/scoped_tracker.cc',
'base/profiler/tracked_time.cc',
'base/run_loop.cc',
'base/sequence_checker_impl.cc',
@@ -264,7 +286,6 @@
'base/trace_event/process_memory_dump.cc',
'base/trace_event/process_memory_maps.cc',
'base/trace_event/process_memory_totals.cc',
- 'base/trace_event/process_memory_totals_dump_provider.cc',
'base/trace_event/trace_buffer.cc',
'base/trace_event/trace_config.cc',
'base/trace_event/trace_event_argument.cc',
@@ -289,6 +310,7 @@
'base/files/file_enumerator_posix.cc',
'base/files/file_posix.cc',
'base/files/file_util_posix.cc',
+ 'base/files/memory_mapped_file_posix.cc',
'base/message_loop/message_pump_libevent.cc',
'base/posix/file_descriptor_shuffle.cc',
'base/posix/safe_strerror.cc',
@@ -340,6 +362,7 @@
'tool': 'cxx',
}
static_libraries['base']['sources'].extend([
+ 'base/memory/shared_memory_posix.cc',
'base/nix/xdg_util.cc',
'base/process/internal_linux.cc',
'base/process/process_handle_linux.cc',
@@ -350,7 +373,6 @@
'base/sys_info_linux.cc',
'base/threading/platform_thread_linux.cc',
'base/trace_event/malloc_dump_provider.cc',
- 'base/trace_event/process_memory_maps_dump_provider.cc',
])
static_libraries['libevent']['include_dirs'].extend([
os.path.join(SRC_ROOT, 'base', 'third_party', 'libevent', 'linux')
@@ -363,6 +385,9 @@
if is_mac:
static_libraries['base']['sources'].extend([
'base/base_paths_mac.mm',
+ 'base/build_time.cc',
+ 'base/rand_util.cc',
+ 'base/rand_util_posix.cc',
'base/files/file_util_mac.mm',
'base/mac/bundle_locations.mm',
'base/mac/call_with_eh_frame.cc',
@@ -370,8 +395,12 @@
'base/mac/foundation_util.mm',
'base/mac/mach_logging.cc',
'base/mac/scoped_mach_port.cc',
+ 'base/mac/scoped_mach_vm.cc',
'base/mac/scoped_nsautorelease_pool.mm',
+ 'base/memory/shared_memory_handle_mac.cc',
+ 'base/memory/shared_memory_mac.cc',
'base/message_loop/message_pump_mac.mm',
+ 'base/metrics/field_trial.cc',
'base/process/process_handle_mac.cc',
'base/process/process_iterator_mac.cc',
'base/process/process_metrics_mac.cc',