Move Linux build rule to its own folder, update to v5.4.2
The Linux build rule was previously in //third_party/ which meant it was
built in the same folder as other third-party projects. Move its build
rule to its folder to avoid clashes.
Also update Linux to v5.4.2 and update submodule refs.
Change-Id: I32598092c3ef400677ccdb22d0b92f68de113d39
diff --git a/BUILD.gn b/BUILD.gn
index 21d1869..7b1bb73 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -33,7 +33,7 @@
group("update_prebuilts") {
deps = [
- "//third_party:linux",
+ "//third_party/linux",
]
}
diff --git a/Makefile b/Makefile
index 52fa980..9f39365 100644
--- a/Makefile
+++ b/Makefile
@@ -119,7 +119,7 @@
update-prebuilts: prebuilts/linux-aarch64/linux/vmlinuz
prebuilts/linux-aarch64/linux/vmlinuz: $(OUT_DIR)/build.ninja
- @$(NINJA) -C $(OUT_DIR) "third_party:linux"
- cp out/reference/obj/third_party/linux.bin $@
+ @$(NINJA) -C $(OUT_DIR) "third_party/linux"
+ cp out/reference/obj/third_party/linux/linux.bin $@
endif # HAFNIUM_HERMETIC_BUILD
diff --git a/build/linux/linux.gni b/build/linux/linux.gni
index 5712932..bb50aa6 100644
--- a/build/linux/linux.gni
+++ b/build/linux/linux.gni
@@ -56,10 +56,12 @@
defconfig_target = "${target_name}__defconfig"
prebuilt_target = "${target_name}__prebuilt"
+ kernel_dir = "./"
+
# Args to build/make.py to start the Linux build.
shared_args = [
"--directory",
- rebase_path(invoker.kernel_dir),
+ rebase_path(kernel_dir),
# TODO: Build with toolchain cc instead of a hardcoded one.
"CC=" + rebase_path("//prebuilts/linux-x64/clang/bin/clang"),
@@ -85,7 +87,7 @@
# Subtarget which generates a depfile with all files in the Linux tree
# and gets invalidated if any of them change.
source_dir(source_target) {
- path = invoker.kernel_dir
+ path = kernel_dir
}
# Subtarget which runs `defconfig` and `modules_prepare`. Used by targets
diff --git a/driver/BUILD.gn b/driver/BUILD.gn
index 2cb214a..a06996c 100644
--- a/driver/BUILD.gn
+++ b/driver/BUILD.gn
@@ -17,6 +17,6 @@
linux_kernel_module("linux") {
module_name = "hafnium"
module_dir = "./linux"
- kernel_target = "//third_party:linux"
+ kernel_target = "//third_party/linux:linux"
kernel_dir = "//third_party/linux"
}
diff --git a/prebuilts b/prebuilts
index 7717e1b..6fcd301 160000
--- a/prebuilts
+++ b/prebuilts
@@ -1 +1 @@
-Subproject commit 7717e1bd5d59b9dff482c7a8e1f10d580f4f65bf
+Subproject commit 6fcd30188886b8cdd7cdcd1de8be813914eb9015
diff --git a/test/linux/BUILD.gn b/test/linux/BUILD.gn
index a94af7f..681830e 100644
--- a/test/linux/BUILD.gn
+++ b/test/linux/BUILD.gn
@@ -59,7 +59,7 @@
manifest = "manifest.dts"
primary_name = "vmlinuz"
- primary_vm = "//third_party:linux__prebuilt"
+ primary_vm = "//third_party/linux:linux__prebuilt"
primary_initrd = ":linux_test_initrd"
secondary_vms = [ [
"socket0",
diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn
index 6dfa3b9..43c7e41 100644
--- a/third_party/BUILD.gn
+++ b/third_party/BUILD.gn
@@ -12,8 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-import("//build/linux/linux.gni")
-
# TODO: Having all third_party targets defined in this file means they share
# the same $target_out_dir folder. Ideally we would like to avoid that.
@@ -55,8 +53,3 @@
":gtest",
]
}
-
-linux_kernel("linux") {
- kernel_dir = "linux"
- prebuilt = "//prebuilts/linux-aarch64/linux/vmlinuz"
-}
diff --git a/third_party/linux b/third_party/linux
index bbc0e19..0f672f6 160000
--- a/third_party/linux
+++ b/third_party/linux
@@ -1 +1 @@
-Subproject commit bbc0e19aa259566f22c31e4dc344f88a1c759104
+Subproject commit 0f672f6c0b52b7b0700b0915c72b540721af4465