diff --git a/tools/gn2bp/Android.bp.swp b/tools/gn2bp/Android.bp.swp
index 86e1216..fe73834 100644
--- a/tools/gn2bp/Android.bp.swp
+++ b/tools/gn2bp/Android.bp.swp
@@ -6697,8 +6697,6 @@
         "cronet_aml_defaults",
     ],
     cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
         "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
         "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
         "-DCR_SYSROOT_KEY=20220331T153654Z-0",
@@ -6708,7 +6706,6 @@
         "-DGOOGLE_PROTOBUF_NO_RTTI",
         "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
         "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
         "-DLIBCXXABI_SILENT_TERMINATE",
         "-DLIBCXX_BUILDING_LIBCXXABI",
         "-DUSE_AURA=1",
@@ -6726,8 +6723,7 @@
         "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
         "-D_LIBCPP_OVERRIDABLE_FUNC_VIS=__attribute__((__visibility__(\"default\")))",
         "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBUNWIND_IS_NATIVE_ONLY",
+        "-UANDROID",
     ],
     local_include_dirs: [
         "./",
diff --git a/tools/gn2bp/gn_utils.py b/tools/gn2bp/gn_utils.py
index a03989c..65c1293 100644
--- a/tools/gn2bp/gn_utils.py
+++ b/tools/gn2bp/gn_utils.py
@@ -98,6 +98,7 @@
       def __init__(self):
         self.sources = set()
         self.cflags = set()
+        self.defines = set()
 
 
     def __init__(self, name, type):
@@ -181,7 +182,7 @@
                   'libs', 'proto_paths'):
         self.__dict__[key].update(other.__dict__.get(key, []))
 
-      for key_in_arch in ('cflags',):
+      for key_in_arch in ('cflags', 'defines'):
         self.arch[arch].__dict__[key_in_arch].update(
           other.arch[arch].__dict__.get(key_in_arch, []))
 
@@ -205,6 +206,10 @@
       for arch_value in self.arch.values():
         self.cflags = self.cflags.union(arch_value.cflags)
 
+      # TODO: Keep defines per arch
+      for arch_value in self.arch.values():
+        self.defines = self.defines.union(arch_value.defines)
+
 
   def __init__(self):
     self.all_targets = {}
@@ -329,7 +334,7 @@
     target.arch[arch].cflags.update(desc.get('cflags', []) + desc.get('cflags_cc', []))
     target.libs.update(desc.get('libs', []))
     target.ldflags.update(desc.get('ldflags', []))
-    target.defines.update(desc.get('defines', []))
+    target.arch[arch].defines.update(desc.get('defines', []))
     target.include_dirs.update(desc.get('include_dirs', []))
 
     # Recurse in dependencies.
