gn2bp: Use different srcs based on arch
srcs of partition_allocator:partition_alloc contains x86_64 specific asm
code. This CL add hardcoded rule to support x64 arch by arch condition
for srcs.
Test: m cronet_aml_components_cronet_android_cronet
Change-Id: I45f9a57fd374fc6a6c6fa4394591904a7c739e14
diff --git a/tools/gn2bp/Android.bp.swp b/tools/gn2bp/Android.bp.swp
index 529f53f..a1fe2ad 100644
--- a/tools/gn2bp/Android.bp.swp
+++ b/tools/gn2bp/Android.bp.swp
@@ -117,63 +117,6 @@
// GN: //base/allocator/partition_allocator:partition_alloc
cc_library_static {
name: "cronet_aml_base_allocator_partition_allocator_partition_alloc",
- srcs: [
- ":cronet_aml_third_party_android_ndk_cpu_features",
- "base/allocator/partition_allocator/address_pool_manager.cc",
- "base/allocator/partition_allocator/address_pool_manager_bitmap.cc",
- "base/allocator/partition_allocator/address_space_randomization.cc",
- "base/allocator/partition_allocator/allocation_guard.cc",
- "base/allocator/partition_allocator/dangling_raw_ptr_checks.cc",
- "base/allocator/partition_allocator/gwp_asan_support.cc",
- "base/allocator/partition_allocator/memory_reclaimer.cc",
- "base/allocator/partition_allocator/oom.cc",
- "base/allocator/partition_allocator/oom_callback.cc",
- "base/allocator/partition_allocator/page_allocator.cc",
- "base/allocator/partition_allocator/page_allocator_internals_posix.cc",
- "base/allocator/partition_allocator/partition_address_space.cc",
- "base/allocator/partition_allocator/partition_alloc.cc",
- "base/allocator/partition_allocator/partition_alloc_base/check.cc",
- "base/allocator/partition_allocator/partition_alloc_base/cpu.cc",
- "base/allocator/partition_allocator/partition_alloc_base/debug/alias.cc",
- "base/allocator/partition_allocator/partition_alloc_base/files/file_path.cc",
- "base/allocator/partition_allocator/partition_alloc_base/files/file_util_posix.cc",
- "base/allocator/partition_allocator/partition_alloc_base/logging.cc",
- "base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.cc",
- "base/allocator/partition_allocator/partition_alloc_base/native_library.cc",
- "base/allocator/partition_allocator/partition_alloc_base/native_library_posix.cc",
- "base/allocator/partition_allocator/partition_alloc_base/pkey.cc",
- "base/allocator/partition_allocator/partition_alloc_base/posix/safe_strerror.cc",
- "base/allocator/partition_allocator/partition_alloc_base/rand_util.cc",
- "base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc",
- "base/allocator/partition_allocator/partition_alloc_base/strings/stringprintf.cc",
- "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread.cc",
- "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_posix.cc",
- "base/allocator/partition_allocator/partition_alloc_base/time/time.cc",
- "base/allocator/partition_allocator/partition_alloc_base/time/time_android.cc",
- "base/allocator/partition_allocator/partition_alloc_base/time/time_conversion_posix.cc",
- "base/allocator/partition_allocator/partition_alloc_base/time/time_now_posix.cc",
- "base/allocator/partition_allocator/partition_alloc_base/time/time_override.cc",
- "base/allocator/partition_allocator/partition_alloc_hooks.cc",
- "base/allocator/partition_allocator/partition_bucket.cc",
- "base/allocator/partition_allocator/partition_oom.cc",
- "base/allocator/partition_allocator/partition_page.cc",
- "base/allocator/partition_allocator/partition_root.cc",
- "base/allocator/partition_allocator/partition_stats.cc",
- "base/allocator/partition_allocator/random.cc",
- "base/allocator/partition_allocator/reservation_offset_table.cc",
- "base/allocator/partition_allocator/spinning_mutex.cc",
- "base/allocator/partition_allocator/starscan/metadata_allocator.cc",
- "base/allocator/partition_allocator/starscan/pcscan.cc",
- "base/allocator/partition_allocator/starscan/pcscan_internal.cc",
- "base/allocator/partition_allocator/starscan/pcscan_scheduling.cc",
- "base/allocator/partition_allocator/starscan/snapshot.cc",
- "base/allocator/partition_allocator/starscan/stack/asm/x64/push_registers_asm.cc",
- "base/allocator/partition_allocator/starscan/stack/stack.cc",
- "base/allocator/partition_allocator/starscan/stats_collector.cc",
- "base/allocator/partition_allocator/starscan/write_protector.cc",
- "base/allocator/partition_allocator/tagging.cc",
- "base/allocator/partition_allocator/thread_cache.cc",
- ],
generated_headers: [
"cronet_aml_base_allocator_partition_allocator_chromecast_buildflags",
"cronet_aml_base_allocator_partition_allocator_chromeos_buildflags",
@@ -219,6 +162,126 @@
"third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
],
cpp_std: "c++20",
+ arch: {
+ x86: {
+ srcs: [
+ ":cronet_aml_third_party_android_ndk_cpu_features",
+ "base/allocator/partition_allocator/address_pool_manager.cc",
+ "base/allocator/partition_allocator/address_pool_manager_bitmap.cc",
+ "base/allocator/partition_allocator/address_space_randomization.cc",
+ "base/allocator/partition_allocator/allocation_guard.cc",
+ "base/allocator/partition_allocator/dangling_raw_ptr_checks.cc",
+ "base/allocator/partition_allocator/gwp_asan_support.cc",
+ "base/allocator/partition_allocator/memory_reclaimer.cc",
+ "base/allocator/partition_allocator/oom.cc",
+ "base/allocator/partition_allocator/oom_callback.cc",
+ "base/allocator/partition_allocator/page_allocator.cc",
+ "base/allocator/partition_allocator/page_allocator_internals_posix.cc",
+ "base/allocator/partition_allocator/partition_address_space.cc",
+ "base/allocator/partition_allocator/partition_alloc.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/check.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/cpu.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/debug/alias.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/files/file_path.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/files/file_util_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/logging.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/native_library.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/native_library_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/pkey.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/posix/safe_strerror.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/rand_util.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/strings/stringprintf.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_android.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_conversion_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_now_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_override.cc",
+ "base/allocator/partition_allocator/partition_alloc_hooks.cc",
+ "base/allocator/partition_allocator/partition_bucket.cc",
+ "base/allocator/partition_allocator/partition_oom.cc",
+ "base/allocator/partition_allocator/partition_page.cc",
+ "base/allocator/partition_allocator/partition_root.cc",
+ "base/allocator/partition_allocator/partition_stats.cc",
+ "base/allocator/partition_allocator/random.cc",
+ "base/allocator/partition_allocator/reservation_offset_table.cc",
+ "base/allocator/partition_allocator/spinning_mutex.cc",
+ "base/allocator/partition_allocator/starscan/metadata_allocator.cc",
+ "base/allocator/partition_allocator/starscan/pcscan.cc",
+ "base/allocator/partition_allocator/starscan/pcscan_internal.cc",
+ "base/allocator/partition_allocator/starscan/pcscan_scheduling.cc",
+ "base/allocator/partition_allocator/starscan/snapshot.cc",
+ "base/allocator/partition_allocator/starscan/stack/asm/x86/push_registers_asm.cc",
+ "base/allocator/partition_allocator/starscan/stack/stack.cc",
+ "base/allocator/partition_allocator/starscan/stats_collector.cc",
+ "base/allocator/partition_allocator/starscan/write_protector.cc",
+ "base/allocator/partition_allocator/tagging.cc",
+ "base/allocator/partition_allocator/thread_cache.cc",
+ ],
+ },
+ x86_64: {
+ srcs: [
+ ":cronet_aml_third_party_android_ndk_cpu_features",
+ "base/allocator/partition_allocator/address_pool_manager.cc",
+ "base/allocator/partition_allocator/address_pool_manager_bitmap.cc",
+ "base/allocator/partition_allocator/address_space_randomization.cc",
+ "base/allocator/partition_allocator/allocation_guard.cc",
+ "base/allocator/partition_allocator/dangling_raw_ptr_checks.cc",
+ "base/allocator/partition_allocator/gwp_asan_support.cc",
+ "base/allocator/partition_allocator/memory_reclaimer.cc",
+ "base/allocator/partition_allocator/oom.cc",
+ "base/allocator/partition_allocator/oom_callback.cc",
+ "base/allocator/partition_allocator/page_allocator.cc",
+ "base/allocator/partition_allocator/page_allocator_internals_posix.cc",
+ "base/allocator/partition_allocator/partition_address_space.cc",
+ "base/allocator/partition_allocator/partition_alloc.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/check.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/cpu.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/debug/alias.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/files/file_path.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/files/file_util_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/logging.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/native_library.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/native_library_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/pkey.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/posix/safe_strerror.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/rand_util.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/strings/stringprintf.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_android.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_conversion_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_now_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_override.cc",
+ "base/allocator/partition_allocator/partition_alloc_hooks.cc",
+ "base/allocator/partition_allocator/partition_bucket.cc",
+ "base/allocator/partition_allocator/partition_oom.cc",
+ "base/allocator/partition_allocator/partition_page.cc",
+ "base/allocator/partition_allocator/partition_root.cc",
+ "base/allocator/partition_allocator/partition_stats.cc",
+ "base/allocator/partition_allocator/random.cc",
+ "base/allocator/partition_allocator/reservation_offset_table.cc",
+ "base/allocator/partition_allocator/spinning_mutex.cc",
+ "base/allocator/partition_allocator/starscan/metadata_allocator.cc",
+ "base/allocator/partition_allocator/starscan/pcscan.cc",
+ "base/allocator/partition_allocator/starscan/pcscan_internal.cc",
+ "base/allocator/partition_allocator/starscan/pcscan_scheduling.cc",
+ "base/allocator/partition_allocator/starscan/snapshot.cc",
+ "base/allocator/partition_allocator/starscan/stack/asm/x64/push_registers_asm.cc",
+ "base/allocator/partition_allocator/starscan/stack/stack.cc",
+ "base/allocator/partition_allocator/starscan/stats_collector.cc",
+ "base/allocator/partition_allocator/starscan/write_protector.cc",
+ "base/allocator/partition_allocator/tagging.cc",
+ "base/allocator/partition_allocator/thread_cache.cc",
+ ],
+ },
+ },
}
// GN: //base/allocator/partition_allocator:partition_alloc_buildflags
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index d3b2a56..f782663 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -396,6 +396,7 @@
self.stubs = {}
self.cppflags = set()
self.rtti = False
+ self.arch = dict()
def to_string(self, output):
if self.comment:
@@ -442,6 +443,7 @@
self._output_field(output, 'cppflags')
if self.rtti:
self._output_field(output, 'rtti')
+ self._output_field(output, 'arch')
target_out = []
self._output_field(target_out, 'android')
@@ -1229,6 +1231,18 @@
raise Error('Unknown dep %s (%s) for target %s' %
(dep_module.name, dep_module.type, module.name))
+ # TODO: support arch difference in generic way
+ # Currently, it is expected that only a couple of modules (e.g. partition_alloc, boringssl)
+ # need arch condition. So, for now, hardcoding arch condition
+ if module.name == "cronet_aml_base_allocator_partition_allocator_partition_alloc":
+ x86_srcs = module.srcs.copy()
+ x86_srcs.remove(
+ "base/allocator/partition_allocator/starscan/stack/asm/x64/push_registers_asm.cc")
+ x86_srcs.add("base/allocator/partition_allocator/starscan/stack/asm/x86/push_registers_asm.cc")
+ module.arch['x86'] = {'srcs': x86_srcs}
+ module.arch['x86_64'] = {'srcs': module.srcs.copy()}
+ module.srcs.clear()
+
return module
def create_java_module(blueprint, gn):