libyuv/libyuv.gni
Wan-Teh Chang 5045476744 Restrict libyuv_use_sme to is_linux
When libyuv is used in Chrome, there are linker errors or other build
errors on the following platforms:
- Android: undefined symbol: __getauxval
- Fuchsia: undefined symbol: __aarch64_sme_accessible
- macOS: undefined symbol: __arm_tpidr2_save
- Windows: Incorrect size for TransposeWxH_SME prologue: 52 bytes of
  instructions in range, but .seh directives corresponding to 40 bytes

Restrict libyuv_use_sme to is_linux (which excludes Android and
ChromeOS) to work around these errors.

Bug: libyuv:359006069
Change-Id: Ia3ffd6e4ce4859ae7f811836cb1d8d61f6943b6f
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5779858
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2024-08-11 20:37:04 +00:00

35 lines
1.4 KiB
Plaintext

# Copyright 2016 The LibYuv Project Authors. All rights reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
import("//build/config/arm.gni")
import("//build/config/loongarch64.gni")
import("//build/config/mips.gni")
import("//build_overrides/build.gni")
declare_args() {
libyuv_include_tests = !build_with_chromium
libyuv_disable_jpeg = false
libyuv_disable_rvv = false
libyuv_use_neon =
current_cpu == "arm64" ||
(current_cpu == "arm" && (arm_use_neon || arm_optionally_use_neon))
libyuv_use_sve = current_cpu == "arm64"
# Restrict to is_linux to work around undefined symbol linker errors on
# Android, Fuchsia, macOS, and compilation errors on Windows.
# TODO: bug 359006069 - Remove the is_linux restriction after the linker and
# compilation errors are fixed.
libyuv_use_sme = current_cpu == "arm64" && is_linux
libyuv_use_msa =
(current_cpu == "mips64el" || current_cpu == "mipsel") && mips_use_msa
libyuv_use_mmi =
(current_cpu == "mips64el" || current_cpu == "mipsel") && mips_use_mmi
libyuv_use_lsx = current_cpu == "loong64" && loongarch64_use_lsx
libyuv_use_lasx = current_cpu == "loong64" && loongarch64_use_lasx
}