From 33fcf3f5b6ddae6a40952ed0ea3e038507203cf1 Mon Sep 17 00:00:00 2001
From: klzgrad <kizdiv@gmail.com>
Date: Thu, 6 Feb 2020 03:07:31 +0800
Subject: [PATCH] build: Add OpenWrt toolchain definitions

---
 src/build/toolchain/linux/BUILD.gn | 32 ++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/src/build/toolchain/linux/BUILD.gn b/src/build/toolchain/linux/BUILD.gn
index fa8b17e9db..a73b279c1a 100644
--- a/src/build/toolchain/linux/BUILD.gn
+++ b/src/build/toolchain/linux/BUILD.gn
@@ -29,6 +29,16 @@ clang_toolchain("clang_arm64") {
   }
 }
 
+clang_toolchain("clang_arm64_openwrt") {
+  extra_cppflags = "--target=aarch64-openwrt-linux-musl -D_LIBCPP_HAS_MUSL_LIBC -D__UCLIBC__"
+  extra_ldflags = "--target=aarch64-openwrt-linux-musl"
+  toolprefix = "aarch64-linux-gnu-"
+  toolchain_args = {
+    current_cpu = "arm64"
+    current_os = "linux"
+  }
+}
+
 gcc_toolchain("arm64") {
   toolprefix = "aarch64-linux-gnu-"
 
@@ -128,6 +138,18 @@ clang_toolchain("clang_x64") {
   }
 }
 
+clang_toolchain("clang_x64_openwrt") {
+  # Output linker map files for binary size analysis.
+  enable_linker_map = true
+  extra_cppflags = "--target=x86_64-openwrt-linux-musl -D_LIBCPP_HAS_MUSL_LIBC -D__UCLIBC__"
+  extra_ldflags = "--target=x86_64-openwrt-linux-musl"
+
+  toolchain_args = {
+    current_cpu = "x64"
+    current_os = "linux"
+  }
+}
+
 clang_toolchain("clang_x64_v8_arm64") {
   toolchain_args = {
     current_cpu = "x64"
@@ -178,6 +200,16 @@ clang_toolchain("clang_mipsel") {
   }
 }
 
+clang_toolchain("clang_mipsel_openwrt") {
+  extra_cppflags = "--target=mipsel-openwrt-linux-musl -D_LIBCPP_HAS_MUSL_LIBC -D__UCLIBC__"
+  extra_ldflags = "--target=mipsel-openwrt-linux-musl"
+
+  toolchain_args = {
+    current_cpu = "mipsel"
+    current_os = "linux"
+  }
+}
+
 clang_toolchain("clang_mips64el") {
   toolchain_args = {
     current_cpu = "mips64el"