From d2f4e8bd903c1e94345972410139566eb28a6d77 Mon Sep 17 00:00:00 2001 From: Oleh Prypin Date: Wed, 1 Aug 2018 12:18:05 +0200 Subject: [PATCH] Explicitly add -mfpu=neon to all targets that use NEON MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove obsolete comment about Chromium not defining NEON for Android. Semi-related fix: don't use `rtc_remove_configs` directly, `suppressed_configs` is the "public interface". Bug: webrtc:9579 Change-Id: I512628feb462a29432f1356cfef00efe1ddaf84f Reviewed-on: https://webrtc-review.googlesource.com/91761 Reviewed-by: Mirko Bonadei Reviewed-by: Per Ã…hgren Commit-Queue: Oleh Prypin Cr-Commit-Position: refs/heads/master@{#24165} --- BUILD.gn | 2 +- common_audio/BUILD.gn | 8 ++------ modules/audio_coding/BUILD.gn | 11 ++++++++--- modules/audio_processing/BUILD.gn | 4 +--- modules/audio_processing/aec/BUILD.gn | 4 +--- modules/audio_processing/aec3/BUILD.gn | 5 +++++ modules/audio_processing/aecm/BUILD.gn | 4 +--- modules/audio_processing/agc/BUILD.gn | 4 +--- modules/audio_processing/utility/BUILD.gn | 4 +--- 9 files changed, 21 insertions(+), 25 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index 072d4083335..3f07fdb1a52 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -330,7 +330,7 @@ if (!build_with_chromium) { sources = [] complete_static_lib = true - rtc_remove_configs = [ "//build/config/compiler:thin_archive" ] + suppressed_configs += [ "//build/config/compiler:thin_archive" ] defines = [] deps = [ diff --git a/common_audio/BUILD.gn b/common_audio/BUILD.gn index 6290360b516..d6e860ff681 100644 --- a/common_audio/BUILD.gn +++ b/common_audio/BUILD.gn @@ -290,9 +290,7 @@ if (rtc_build_with_neon) { ] if (current_cpu != "arm64") { - # Enable compilation for the NEON instruction set. This is needed - # since //build/config/arm.gni only enables NEON for iOS, not Android. - # This provides the same functionality as webrtc/build/arm_neon.gypi. + # Enable compilation for the NEON instruction set. suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ] cflags = [ "-mfpu=neon" ] } @@ -325,9 +323,7 @@ if (rtc_build_with_neon) { ] if (current_cpu != "arm64") { - # Enable compilation for the NEON instruction set. This is needed - # since //build/config/arm.gni only enables NEON for iOS, not Android. - # This provides the same functionality as webrtc/build/arm_neon.gypi. + # Enable compilation for the NEON instruction set. suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ] cflags = [ "-mfpu=neon" ] } diff --git a/modules/audio_coding/BUILD.gn b/modules/audio_coding/BUILD.gn index 41bd7a94204..8cda5061325 100644 --- a/modules/audio_coding/BUILD.gn +++ b/modules/audio_coding/BUILD.gn @@ -686,6 +686,13 @@ rtc_source_set("isac_fix_c") { if (rtc_build_with_neon) { deps += [ ":isac_neon" ] + + # TODO(bugs.webrtc.org/9579): Consider moving the usage of NEON from + # pitch_estimator_c.c into the "isac_neon" target and delete this flag: + if (current_cpu != "arm64") { + suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ] + cflags = [ "-mfpu=neon" ] + } } if (current_cpu == "arm" && arm_version >= 7) { @@ -733,9 +740,7 @@ if (rtc_build_with_neon) { ] if (current_cpu != "arm64") { - # Enable compilation for the NEON instruction set. This is needed - # since //build/config/arm.gni only enables NEON for iOS, not Android. - # This provides the same functionality as webrtc/build/arm_neon.gypi. + # Enable compilation for the NEON instruction set. suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ] cflags = [ "-mfpu=neon" ] } diff --git a/modules/audio_processing/BUILD.gn b/modules/audio_processing/BUILD.gn index 6af2bc0a378..9678b254946 100644 --- a/modules/audio_processing/BUILD.gn +++ b/modules/audio_processing/BUILD.gn @@ -271,9 +271,7 @@ rtc_source_set("audio_processing_c") { sources += [ "ns/nsx_core_neon.c" ] if (current_cpu != "arm64") { - # Enable compilation for the NEON instruction set. This is needed - # since //build/config/arm.gni only enables NEON for iOS, not Android. - # This provides the same functionality as webrtc/build/arm_neon.gypi. + # Enable compilation for the NEON instruction set. suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ] cflags = [ "-mfpu=neon" ] } diff --git a/modules/audio_processing/aec/BUILD.gn b/modules/audio_processing/aec/BUILD.gn index 88a3ae8943a..52441d7fdad 100644 --- a/modules/audio_processing/aec/BUILD.gn +++ b/modules/audio_processing/aec/BUILD.gn @@ -58,9 +58,7 @@ rtc_source_set("aec_core") { sources += [ "aec_core_neon.cc" ] if (current_cpu != "arm64") { - # Enable compilation for the NEON instruction set. This is needed - # since //build/config/arm.gni only enables NEON for iOS, not Android. - # This provides the same functionality as webrtc/build/arm_neon.gypi. + # Enable compilation for the NEON instruction set. suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ] cflags += [ "-mfpu=neon" ] } diff --git a/modules/audio_processing/aec3/BUILD.gn b/modules/audio_processing/aec3/BUILD.gn index f59bb5bed5c..d0df5f7b36f 100644 --- a/modules/audio_processing/aec3/BUILD.gn +++ b/modules/audio_processing/aec3/BUILD.gn @@ -116,6 +116,11 @@ rtc_static_library("aec3") { ] defines = [] + if (rtc_build_with_neon && current_cpu != "arm64") { + suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ] + cflags = [ "-mfpu=neon" ] + } + deps = [ "..:apm_logging", "..:audio_processing", diff --git a/modules/audio_processing/aecm/BUILD.gn b/modules/audio_processing/aecm/BUILD.gn index 19b9c8fa3e9..8250173afea 100644 --- a/modules/audio_processing/aecm/BUILD.gn +++ b/modules/audio_processing/aecm/BUILD.gn @@ -30,9 +30,7 @@ rtc_source_set("aecm_core") { sources += [ "aecm_core_neon.cc" ] if (current_cpu != "arm64") { - # Enable compilation for the NEON instruction set. This is needed - # since //build/config/arm.gni only enables NEON for iOS, not Android. - # This provides the same functionality as webrtc/build/arm_neon.gypi. + # Enable compilation for the NEON instruction set. suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ] cflags += [ "-mfpu=neon" ] } diff --git a/modules/audio_processing/agc/BUILD.gn b/modules/audio_processing/agc/BUILD.gn index 18dbfb9e92c..9061989b54d 100644 --- a/modules/audio_processing/agc/BUILD.gn +++ b/modules/audio_processing/agc/BUILD.gn @@ -75,9 +75,7 @@ rtc_source_set("agc_legacy_c") { if (rtc_build_with_neon) { if (current_cpu != "arm64") { - # Enable compilation for the NEON instruction set. This is needed - # since //build/config/arm.gni only enables NEON for iOS, not Android. - # This provides the same functionality as webrtc/build/arm_neon.gypi. + # Enable compilation for the NEON instruction set. suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ] cflags = [ "-mfpu=neon" ] } diff --git a/modules/audio_processing/utility/BUILD.gn b/modules/audio_processing/utility/BUILD.gn index 531db879edb..6a4304d1921 100644 --- a/modules/audio_processing/utility/BUILD.gn +++ b/modules/audio_processing/utility/BUILD.gn @@ -63,9 +63,7 @@ rtc_source_set("ooura_fft") { deps += [ "../../../common_audio" ] if (current_cpu != "arm64") { - # Enable compilation for the NEON instruction set. This is needed - # since //build/config/arm.gni only enables NEON for iOS, not Android. - # This provides the same functionality as webrtc/build/arm_neon.gypi. + # Enable compilation for the NEON instruction set. suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ] cflags += [ "-mfpu=neon" ] }