[infra] Simplify infra/recipes/gn.py

It turns out that it is not necessary to copy the rpmalloc sources after
all, and that multi-arch builds work properly now, so simplify the
recipe script accordingly.

Change-Id: I4a6afbd78ed9e10360759c688b7e0cbc0b7862bc
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/10780
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Petr Hosek <phosek@google.com>
Commit-Queue: David Turner <digit@google.com>
diff --git a/infra/README.recipes.md b/infra/README.recipes.md
index 6fa4190..02e4098 100644
--- a/infra/README.recipes.md
+++ b/infra/README.recipes.md
@@ -93,7 +93,7 @@
 
 Recipe for building GN.
 
-&mdash; **def [RunSteps](/infra/recipes/gn.py#101)(api, repository):**
+&mdash; **def [RunSteps](/infra/recipes/gn.py#102)(api, repository):**
 ### *recipes* / [macos\_sdk:examples/full](/infra/recipe_modules/macos_sdk/examples/full.py)
 
 [DEPS](/infra/recipe_modules/macos_sdk/examples/full.py#5): [macos\_sdk](#recipe_modules-macos_sdk), [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step]
diff --git a/infra/recipes/gn.expected/ci_linux.json b/infra/recipes/gn.expected/ci_linux.json
index 54e55c4..61b1fa7 100644
--- a/infra/recipes/gn.expected/ci_linux.json
+++ b/infra/recipes/gn.expected/ci_linux.json
@@ -138,39 +138,6 @@
     ]
   },
   {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "rmtree",
-      "[CLEANUP]/rpmalloc-linux-amd64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.remove sources linux-amd64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copytree",
-      "[START_DIR]/rpmalloc",
-      "[CLEANUP]/rpmalloc-linux-amd64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.copy sources linux-amd64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "rpmalloc.build rpmalloc-linux-amd64",
     "~followup_annotations": [
@@ -181,14 +148,14 @@
     "cmd": [
       "python",
       "-u",
-      "[CLEANUP]/rpmalloc-linux-amd64/configure.py",
+      "[START_DIR]/rpmalloc/configure.py",
       "-c",
       "release",
       "-a",
       "x86-64",
       "--lto"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-amd64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -206,7 +173,7 @@
       "[START_DIR]/cipd/ninja",
       "lib/linux/release/x86-64/librpmallocwrap.a"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-amd64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -220,39 +187,6 @@
     ]
   },
   {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "rmtree",
-      "[CLEANUP]/rpmalloc-linux-arm64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.remove sources linux-arm64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copytree",
-      "[START_DIR]/rpmalloc",
-      "[CLEANUP]/rpmalloc-linux-arm64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.copy sources linux-arm64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "rpmalloc.build rpmalloc-linux-arm64",
     "~followup_annotations": [
@@ -263,14 +197,14 @@
     "cmd": [
       "python",
       "-u",
-      "[CLEANUP]/rpmalloc-linux-arm64/configure.py",
+      "[START_DIR]/rpmalloc/configure.py",
       "-c",
       "release",
       "-a",
       "arm64",
       "--lto"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-arm64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -288,7 +222,7 @@
       "[START_DIR]/cipd/ninja",
       "lib/linux/release/arm64/librpmallocwrap.a"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-arm64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -386,7 +320,7 @@
       "[START_DIR]/gn/build/gen.py",
       "--use-lto",
       "--use-icf",
-      "--link-lib=[CLEANUP]/rpmalloc-linux-amd64/lib/linux/release/x86-64/librpmallocwrap.a"
+      "--link-lib=[START_DIR]/rpmalloc/lib/linux/release/x86-64/librpmallocwrap.a"
     ],
     "cwd": "[START_DIR]/gn",
     "env": {
@@ -491,7 +425,7 @@
       "[START_DIR]/gn/build/gen.py",
       "--use-lto",
       "--use-icf",
-      "--link-lib=[CLEANUP]/rpmalloc-linux-arm64/lib/linux/release/arm64/librpmallocwrap.a"
+      "--link-lib=[START_DIR]/rpmalloc/lib/linux/release/arm64/librpmallocwrap.a"
     ],
     "cwd": "[START_DIR]/gn",
     "env": {
diff --git a/infra/recipes/gn.expected/cipd_exists.json b/infra/recipes/gn.expected/cipd_exists.json
index b93e7c4..e7d6a03 100644
--- a/infra/recipes/gn.expected/cipd_exists.json
+++ b/infra/recipes/gn.expected/cipd_exists.json
@@ -138,39 +138,6 @@
     ]
   },
   {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "rmtree",
-      "[CLEANUP]/rpmalloc-linux-amd64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.remove sources linux-amd64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copytree",
-      "[START_DIR]/rpmalloc",
-      "[CLEANUP]/rpmalloc-linux-amd64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.copy sources linux-amd64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "rpmalloc.build rpmalloc-linux-amd64",
     "~followup_annotations": [
@@ -181,14 +148,14 @@
     "cmd": [
       "python",
       "-u",
-      "[CLEANUP]/rpmalloc-linux-amd64/configure.py",
+      "[START_DIR]/rpmalloc/configure.py",
       "-c",
       "release",
       "-a",
       "x86-64",
       "--lto"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-amd64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -206,7 +173,7 @@
       "[START_DIR]/cipd/ninja",
       "lib/linux/release/x86-64/librpmallocwrap.a"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-amd64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -220,39 +187,6 @@
     ]
   },
   {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "rmtree",
-      "[CLEANUP]/rpmalloc-linux-arm64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.remove sources linux-arm64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copytree",
-      "[START_DIR]/rpmalloc",
-      "[CLEANUP]/rpmalloc-linux-arm64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.copy sources linux-arm64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "rpmalloc.build rpmalloc-linux-arm64",
     "~followup_annotations": [
@@ -263,14 +197,14 @@
     "cmd": [
       "python",
       "-u",
-      "[CLEANUP]/rpmalloc-linux-arm64/configure.py",
+      "[START_DIR]/rpmalloc/configure.py",
       "-c",
       "release",
       "-a",
       "arm64",
       "--lto"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-arm64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -288,7 +222,7 @@
       "[START_DIR]/cipd/ninja",
       "lib/linux/release/arm64/librpmallocwrap.a"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-arm64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -386,7 +320,7 @@
       "[START_DIR]/gn/build/gen.py",
       "--use-lto",
       "--use-icf",
-      "--link-lib=[CLEANUP]/rpmalloc-linux-amd64/lib/linux/release/x86-64/librpmallocwrap.a"
+      "--link-lib=[START_DIR]/rpmalloc/lib/linux/release/x86-64/librpmallocwrap.a"
     ],
     "cwd": "[START_DIR]/gn",
     "env": {
@@ -530,7 +464,7 @@
       "[START_DIR]/gn/build/gen.py",
       "--use-lto",
       "--use-icf",
-      "--link-lib=[CLEANUP]/rpmalloc-linux-arm64/lib/linux/release/arm64/librpmallocwrap.a"
+      "--link-lib=[START_DIR]/rpmalloc/lib/linux/release/arm64/librpmallocwrap.a"
     ],
     "cwd": "[START_DIR]/gn",
     "env": {
diff --git a/infra/recipes/gn.expected/cipd_register.json b/infra/recipes/gn.expected/cipd_register.json
index 75d38d2..6eebe17 100644
--- a/infra/recipes/gn.expected/cipd_register.json
+++ b/infra/recipes/gn.expected/cipd_register.json
@@ -138,39 +138,6 @@
     ]
   },
   {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "rmtree",
-      "[CLEANUP]/rpmalloc-linux-amd64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.remove sources linux-amd64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copytree",
-      "[START_DIR]/rpmalloc",
-      "[CLEANUP]/rpmalloc-linux-amd64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.copy sources linux-amd64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "rpmalloc.build rpmalloc-linux-amd64",
     "~followup_annotations": [
@@ -181,14 +148,14 @@
     "cmd": [
       "python",
       "-u",
-      "[CLEANUP]/rpmalloc-linux-amd64/configure.py",
+      "[START_DIR]/rpmalloc/configure.py",
       "-c",
       "release",
       "-a",
       "x86-64",
       "--lto"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-amd64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -206,7 +173,7 @@
       "[START_DIR]/cipd/ninja",
       "lib/linux/release/x86-64/librpmallocwrap.a"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-amd64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -220,39 +187,6 @@
     ]
   },
   {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "rmtree",
-      "[CLEANUP]/rpmalloc-linux-arm64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.remove sources linux-arm64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copytree",
-      "[START_DIR]/rpmalloc",
-      "[CLEANUP]/rpmalloc-linux-arm64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.copy sources linux-arm64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "rpmalloc.build rpmalloc-linux-arm64",
     "~followup_annotations": [
@@ -263,14 +197,14 @@
     "cmd": [
       "python",
       "-u",
-      "[CLEANUP]/rpmalloc-linux-arm64/configure.py",
+      "[START_DIR]/rpmalloc/configure.py",
       "-c",
       "release",
       "-a",
       "arm64",
       "--lto"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-arm64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -288,7 +222,7 @@
       "[START_DIR]/cipd/ninja",
       "lib/linux/release/arm64/librpmallocwrap.a"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-arm64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -386,7 +320,7 @@
       "[START_DIR]/gn/build/gen.py",
       "--use-lto",
       "--use-icf",
-      "--link-lib=[CLEANUP]/rpmalloc-linux-amd64/lib/linux/release/x86-64/librpmallocwrap.a"
+      "--link-lib=[START_DIR]/rpmalloc/lib/linux/release/x86-64/librpmallocwrap.a"
     ],
     "cwd": "[START_DIR]/gn",
     "env": {
@@ -552,7 +486,7 @@
       "[START_DIR]/gn/build/gen.py",
       "--use-lto",
       "--use-icf",
-      "--link-lib=[CLEANUP]/rpmalloc-linux-arm64/lib/linux/release/arm64/librpmallocwrap.a"
+      "--link-lib=[START_DIR]/rpmalloc/lib/linux/release/arm64/librpmallocwrap.a"
     ],
     "cwd": "[START_DIR]/gn",
     "env": {
diff --git a/infra/recipes/gn.expected/cq_linux.json b/infra/recipes/gn.expected/cq_linux.json
index 2593ed3..7ac4cfc 100644
--- a/infra/recipes/gn.expected/cq_linux.json
+++ b/infra/recipes/gn.expected/cq_linux.json
@@ -165,39 +165,6 @@
     ]
   },
   {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "rmtree",
-      "[CLEANUP]/rpmalloc-linux-amd64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.remove sources linux-amd64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copytree",
-      "[START_DIR]/rpmalloc",
-      "[CLEANUP]/rpmalloc-linux-amd64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.copy sources linux-amd64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "rpmalloc.build rpmalloc-linux-amd64",
     "~followup_annotations": [
@@ -208,14 +175,14 @@
     "cmd": [
       "python",
       "-u",
-      "[CLEANUP]/rpmalloc-linux-amd64/configure.py",
+      "[START_DIR]/rpmalloc/configure.py",
       "-c",
       "release",
       "-a",
       "x86-64",
       "--lto"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-amd64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -233,7 +200,7 @@
       "[START_DIR]/cipd/ninja",
       "lib/linux/release/x86-64/librpmallocwrap.a"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-amd64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -247,39 +214,6 @@
     ]
   },
   {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "rmtree",
-      "[CLEANUP]/rpmalloc-linux-arm64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.remove sources linux-arm64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copytree",
-      "[START_DIR]/rpmalloc",
-      "[CLEANUP]/rpmalloc-linux-arm64"
-    ],
-    "infra_step": true,
-    "name": "rpmalloc.copy sources linux-arm64",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "rpmalloc.build rpmalloc-linux-arm64",
     "~followup_annotations": [
@@ -290,14 +224,14 @@
     "cmd": [
       "python",
       "-u",
-      "[CLEANUP]/rpmalloc-linux-arm64/configure.py",
+      "[START_DIR]/rpmalloc/configure.py",
       "-c",
       "release",
       "-a",
       "arm64",
       "--lto"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-arm64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -315,7 +249,7 @@
       "[START_DIR]/cipd/ninja",
       "lib/linux/release/arm64/librpmallocwrap.a"
     ],
-    "cwd": "[CLEANUP]/rpmalloc-linux-arm64",
+    "cwd": "[START_DIR]/rpmalloc",
     "env": {
       "AR": "[START_DIR]/cipd/bin/llvm-ar",
       "CC": "[START_DIR]/cipd/bin/clang",
@@ -413,7 +347,7 @@
       "[START_DIR]/gn/build/gen.py",
       "--use-lto",
       "--use-icf",
-      "--link-lib=[CLEANUP]/rpmalloc-linux-amd64/lib/linux/release/x86-64/librpmallocwrap.a"
+      "--link-lib=[START_DIR]/rpmalloc/lib/linux/release/x86-64/librpmallocwrap.a"
     ],
     "cwd": "[START_DIR]/gn",
     "env": {
@@ -478,7 +412,7 @@
       "[START_DIR]/gn/build/gen.py",
       "--use-lto",
       "--use-icf",
-      "--link-lib=[CLEANUP]/rpmalloc-linux-arm64/lib/linux/release/arm64/librpmallocwrap.a"
+      "--link-lib=[START_DIR]/rpmalloc/lib/linux/release/arm64/librpmallocwrap.a"
     ],
     "cwd": "[START_DIR]/gn",
     "env": {
diff --git a/infra/recipes/gn.py b/infra/recipes/gn.py
index bac3233..0cb4269 100644
--- a/infra/recipes/gn.py
+++ b/infra/recipes/gn.py
@@ -204,23 +204,14 @@
           rpmalloc_os = RPMALLOC_MAP.get(rpmalloc_os, rpmalloc_os)
           rpmalloc_arch = RPMALLOC_MAP.get(rpmalloc_arch, rpmalloc_arch)
 
-          # The rpmalloc build system doesn't support out-of-tree builds, and
-          # trying to build binaries for multiple target architectures doesn't
-          # work unless one cleans the build. To work around these issues,
-          # simply copy the source tree into a new clean directory.
-          rpmalloc_build_dir = api.path['cleanup'].join('rpmalloc-' + platform)
-          api.file.rmtree('remove sources ' + platform, rpmalloc_build_dir)
-          api.file.copytree('copy sources ' + platform, rpmalloc_src_dir,
-                            rpmalloc_build_dir)
-
           env = _get_compilation_environment(api,
                                              all_config_platforms[platform],
                                              cipd_dir)
           with api.step.nest('build rpmalloc-' + platform), api.context(
-              env=env, cwd=rpmalloc_build_dir):
+              env=env, cwd=rpmalloc_src_dir):
             api.python(
                 'configure',
-                rpmalloc_build_dir.join('configure.py'),
+                rpmalloc_src_dir.join('configure.py'),
                 args=['-c', 'release', '-a', rpmalloc_arch, '--lto'])
 
             # NOTE: Only build the static library.
@@ -229,7 +220,7 @@
                                                 'librpmallocwrap.a')
             api.step('ninja', [cipd_dir.join('ninja'), rpmalloc_static_lib])
 
-          rpmalloc_static_libs[platform] = rpmalloc_build_dir.join(
+          rpmalloc_static_libs[platform] = rpmalloc_src_dir.join(
               rpmalloc_static_lib)
 
     for config in configs: