build: add loong64 architecture support,
for building v8 version 9.6.180.12,
or later version of v8.
Change-Id: Id0b7e7350e5e45380a24f17b1d91848bb42ac208
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/12520
Reviewed-by: Brett Wilson <brettw@google.com>
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Brett Wilson <brettw@chromium.org>
diff --git a/AUTHORS b/AUTHORS
index 755bfd4..622d117 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -48,3 +48,4 @@
Yuriy Taraday <yorik.sar@gmail.com>
Oleksandr Motsok <boramaabak@gmail.com>
Ihor Karavan <ihorkaravan96@gmail.com>
+Ma Aiguo <maaiguo@uniontech.com>
diff --git a/src/gn/args.cc b/src/gn/args.cc
index 2b67313..219c950 100644
--- a/src/gn/args.cc
+++ b/src/gn/args.cc
@@ -340,6 +340,7 @@
static const char kRISCV32[] = "riscv32";
static const char kRISCV64[] = "riscv64";
static const char kE2K[] = "e2k";
+ static const char kLA64[] = "loong64";
const char* arch = nullptr;
// Set the host CPU architecture based on the underlying OS, not
@@ -370,6 +371,8 @@
arch = kRISCV64;
else if (os_arch == "e2k")
arch = kE2K;
+ else if (os_arch == "loongarch64")
+ arch = kLA64;
else
CHECK(false) << "OS architecture not handled. (" << os_arch << ")";
diff --git a/src/util/build_config.h b/src/util/build_config.h
index 5c4793e..01dd9bd 100644
--- a/src/util/build_config.h
+++ b/src/util/build_config.h
@@ -173,6 +173,18 @@
#elif defined(__riscv) && (__riscv_xlen == 64)
#define ARCH_CPU_64_BITS 1
#define ARCH_CPU_LITTLE_ENDIAN 1
+#elif defined(__loongarch__)
+#if defined(__LP64__)
+#define ARCH_CPU_LOONGARCH_FAMILY 1
+#define ARCH_CPU_LA64 1
+#define ARCH_CPU_64_BITS 1
+#define ARCH_CPU_LITTLE_ENDIAN 1
+#else
+#define ARCH_CPU_LOONGARCH_FAMILY 1
+#define ARCH_CPU_LA 1
+#define ARCH_CPU_32_BITS 1
+#define ARCH_CPU_LITTLE_ENDIAN 1
+#endif
#else
#error Please add support for your architecture in build_config.h
#endif