-- Use an x86_64-unknown-freebsd Clang target triple on FreeBSD so the compiler -- finds the correct C++ standard library headers. -- powerpc64: current_cpu does not encode the endianness, so rely on the -- default (host) target of clang instead of a hard-coded triple. --- build/config/compiler_cpu_abi.gn.orig 2026-10-20 01:49:47 UTC +++ build/config/compiler_cpu_abi.gn @@ -49,8 +49,13 @@ # simplicity we always explicitly set the architecture. if (current_cpu == "x64") { if (is_clang && !is_android && !is_fuchsia && !is_chromeos_device) { - cpu_abi_cflags += [ "--target=x86_64-unknown-linux-gnu" ] - cpu_abi_ldflags += [ "--target=x86_64-unknown-linux-gnu" ] + if (current_os == "freebsd") { + cpu_abi_cflags += [ "--target=x86_64-unknown-freebsd" ] + cpu_abi_ldflags += [ "--target=x86_64-unknown-freebsd" ] + } else { + cpu_abi_cflags += [ "--target=x86_64-unknown-linux-gnu" ] + cpu_abi_ldflags += [ "--target=x86_64-unknown-linux-gnu" ] + } } else { cpu_abi_cflags += [ "-m64" ] cpu_abi_ldflags += [ "-m64" ] @@ -84,8 +89,13 @@ ] } else if (current_cpu == "arm64") { if (is_clang && !is_android && !is_fuchsia && !is_chromeos_device) { - cpu_abi_cflags += [ "--target=aarch64-linux-gnu" ] - cpu_abi_ldflags += [ "--target=aarch64-linux-gnu" ] + if (current_os == "freebsd") { + cpu_abi_cflags += [ "--target=aarch64-unknown-freebsd" ] + cpu_abi_ldflags += [ "--target=aarch64-unknown-freebsd" ] + } else { + cpu_abi_cflags += [ "--target=aarch64-linux-gnu" ] + cpu_abi_ldflags += [ "--target=aarch64-linux-gnu" ] + } } if (target_os == "chromeos" && cros_target_cpu_arch != "" && is_a_target_toolchain) { @@ -333,7 +343,7 @@ cpu_abi_cflags += [ "-maix64" ] cpu_abi_ldflags += [ "-maix64" ] } - } else if (is_clang) { + } else if (is_clang && current_os != "freebsd") { cpu_abi_cflags += [ "--target=powerpc64le-unknown-linux-gnu" ] cpu_abi_ldflags += [ "--target=powerpc64le-unknown-linux-gnu" ] } else {