Bug 1857862 - Vendor libwebrtc from 9130431b54

Upstream commit: https://webrtc.googlesource.com/src/+/9130431b54fd18aa4857614c886aeeed1731fcf7
    Add possibility to set RTC_OBJC_TYPE_PREFIX from GN.

    This CL also adds the prefix RTC_TESTING to `ios_internal_pure_release_bot_arm64` in order to avoid ODR
    violations.

    Bug: b/292472934
    Change-Id: If63020e679c8670b4c797217eb38fc8c2954d422
    Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/313240
    Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
    Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
    Cr-Commit-Position: refs/heads/main@{#40476}
This commit is contained in:
Andreas Pehrson 2023-10-16 16:39:57 +02:00
Родитель 4673f50b1d
Коммит 3a3b6b421d
13 изменённых файлов: 47 добавлений и 28 удалений

4
third_party/libwebrtc/BUILD.gn поставляемый
Просмотреть файл

@ -138,6 +138,10 @@ config("common_inherited_config") {
cflags = []
ldflags = []
if (rtc_objc_prefix != "") {
defines += [ "RTC_OBJC_TYPE_PREFIX=${rtc_objc_prefix}" ]
}
if (rtc_dlog_always_on) {
defines += [ "DLOG_ALWAYS_ON" ]
}

3
third_party/libwebrtc/README.moz-ff-commit поставляемый
Просмотреть файл

@ -25128,3 +25128,6 @@ ea06be2682
# MOZ_LIBWEBRTC_SRC=/home/pehrsons/dev/elm/.moz-fast-forward/moz-libwebrtc MOZ_LIBWEBRTC_BRANCH=mozpatches bash dom/media/webrtc/third_party_build/fast-forward-libwebrtc.sh
# base of lastest vendoring
8c9e035edb
# MOZ_LIBWEBRTC_SRC=/home/pehrsons/dev/elm/.moz-fast-forward/moz-libwebrtc MOZ_LIBWEBRTC_BRANCH=mozpatches bash dom/media/webrtc/third_party_build/fast-forward-libwebrtc.sh
# base of lastest vendoring
9130431b54

2
third_party/libwebrtc/README.mozilla поставляемый
Просмотреть файл

@ -16776,3 +16776,5 @@ libwebrtc updated from /home/pehrsons/dev/elm/.moz-fast-forward/moz-libwebrtc co
libwebrtc updated from /home/pehrsons/dev/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2023-10-16T14:37:04.548949.
# ./mach python dom/media/webrtc/third_party_build/vendor-libwebrtc.py --from-local /home/pehrsons/dev/elm/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc
libwebrtc updated from /home/pehrsons/dev/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2023-10-16T14:38:25.160430.
# ./mach python dom/media/webrtc/third_party_build/vendor-libwebrtc.py --from-local /home/pehrsons/dev/elm/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc
libwebrtc updated from /home/pehrsons/dev/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2023-10-16T14:39:47.433145.

Просмотреть файл

@ -1681,7 +1681,7 @@ index 0a9226ef6f..620c1c02f3 100644
vcm_ = nullptr;
}
diff --git a/webrtc.gni b/webrtc.gni
index 8ef21f21b2..d4e16a7cf3 100644
index 4b3ce8635f..892bb0d642 100644
--- a/webrtc.gni
+++ b/webrtc.gni
@@ -122,7 +122,7 @@ declare_args() {

Просмотреть файл

@ -106,7 +106,7 @@ index 02cfb6de64..3208b6bb4e 100644
# TODO(https://bugs.webrtc.org/14437): Remove this section if general
# Chromium fix resolves the problem.
diff --git a/BUILD.gn b/BUILD.gn
index c3e253a4e8..65751d3fba 100644
index 67c5603364..8adbedda4d 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -32,7 +32,7 @@ if (is_android) {
@ -118,7 +118,7 @@ index c3e253a4e8..65751d3fba 100644
# This target should (transitively) cause everything to be built; if you run
# 'ninja default' and then 'ninja all', the second build should do no work.
group("default") {
@@ -149,6 +149,10 @@ config("common_inherited_config") {
@@ -153,6 +153,10 @@ config("common_inherited_config") {
defines += [ "WEBRTC_ENABLE_OBJC_SYMBOL_EXPORT" ]
}
@ -129,7 +129,7 @@ index c3e253a4e8..65751d3fba 100644
if (!rtc_builtin_ssl_root_certificates) {
defines += [ "WEBRTC_EXCLUDE_BUILT_IN_SSL_ROOT_CERTS" ]
}
@@ -463,9 +467,11 @@ config("common_config") {
@@ -467,9 +471,11 @@ config("common_config") {
}
}
@ -141,7 +141,7 @@ index c3e253a4e8..65751d3fba 100644
if (!build_with_chromium) {
# Target to build all the WebRTC production code.
@@ -515,6 +521,33 @@ if (!build_with_chromium) {
@@ -519,6 +525,33 @@ if (!build_with_chromium) {
"sdk",
"video",
]
@ -175,7 +175,7 @@ index c3e253a4e8..65751d3fba 100644
if (rtc_include_builtin_audio_codecs) {
deps += [
@@ -527,6 +560,16 @@ if (!build_with_chromium) {
@@ -531,6 +564,16 @@ if (!build_with_chromium) {
deps += [
"api/video:video_frame",
"api/video:video_rtp_headers",
@ -1306,7 +1306,7 @@ index 54291e46bb..7bcecad957 100644
"../api/adaptation:resource_adaptation_api",
"../api/task_queue:pending_task_safety_flag",
diff --git a/webrtc.gni b/webrtc.gni
index d4e16a7cf3..a3e5a4889d 100644
index 892bb0d642..43d1b83d8b 100644
--- a/webrtc.gni
+++ b/webrtc.gni
@@ -35,6 +35,11 @@ if (is_mac) {
@ -1378,7 +1378,7 @@ index d4e16a7cf3..a3e5a4889d 100644
# Experimental: enable use of Android AAudio which requires Android SDK 26 or above
# and NDK r16 or above.
rtc_enable_android_aaudio = false
@@ -259,7 +266,7 @@ declare_args() {
@@ -264,7 +271,7 @@ declare_args() {
rtc_build_json = !build_with_mozilla
rtc_build_libsrtp = !build_with_mozilla
rtc_build_libvpx = !build_with_mozilla
@ -1387,7 +1387,7 @@ index d4e16a7cf3..a3e5a4889d 100644
rtc_build_opus = !build_with_mozilla
rtc_build_ssl = !build_with_mozilla
@@ -278,7 +285,7 @@ declare_args() {
@@ -283,7 +290,7 @@ declare_args() {
# Chromium uses its own IO handling, so the internal ADM is only built for
# standalone WebRTC.
@ -1396,7 +1396,7 @@ index d4e16a7cf3..a3e5a4889d 100644
# Set this to true to enable the avx2 support in webrtc.
# TODO: Make sure that AVX2 works also for non-clang compilers.
@@ -322,6 +329,9 @@ declare_args() {
@@ -327,6 +334,9 @@ declare_args() {
rtc_enable_grpc = rtc_enable_protobuf && (is_linux || is_mac)
}
@ -1406,7 +1406,7 @@ index d4e16a7cf3..a3e5a4889d 100644
# Make it possible to provide custom locations for some libraries (move these
# up into declare_args should we need to actually use them for the GN build).
rtc_libvpx_dir = "//third_party/libvpx"
@@ -1117,7 +1127,7 @@ if (is_mac || is_ios) {
@@ -1122,7 +1132,7 @@ if (is_mac || is_ios) {
}
}

Просмотреть файл

@ -20,10 +20,10 @@ Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/58f47eacaf10d12e2
11 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/BUILD.gn b/BUILD.gn
index 65751d3fba..84a1c14f96 100644
index 8adbedda4d..7a401ac2ba 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -410,12 +410,12 @@ config("common_config") {
@@ -414,12 +414,12 @@ config("common_config") {
}
}
@ -38,7 +38,7 @@ index 65751d3fba..84a1c14f96 100644
defines += [ "WEBRTC_ARCH_ARM" ]
if (arm_version >= 7) {
defines += [ "WEBRTC_ARCH_ARM_V7" ]
@@ -425,7 +425,7 @@ config("common_config") {
@@ -429,7 +429,7 @@ config("common_config") {
}
}
@ -276,7 +276,7 @@ index 42d72865b9..c184e2fbbc 100644
config("x11_config") {
if (rtc_use_x11_extensions) {
diff --git a/webrtc.gni b/webrtc.gni
index a3e5a4889d..d04115c6e1 100644
index 43d1b83d8b..1e6dbd3e22 100644
--- a/webrtc.gni
+++ b/webrtc.gni
@@ -171,13 +171,13 @@ declare_args() {

Просмотреть файл

@ -18,10 +18,10 @@ Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/0300b32b7de70fb89
5 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/BUILD.gn b/BUILD.gn
index 84a1c14f96..f1f9b48c75 100644
index 7a401ac2ba..e139b52bfa 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -212,6 +212,9 @@ config("common_inherited_config") {
@@ -216,6 +216,9 @@ config("common_inherited_config") {
if (is_linux || is_chromeos) {
defines += [ "WEBRTC_LINUX" ]
}
@ -74,10 +74,10 @@ index d64ea689bb..c3c6955a7b 100644
#endif // defined(WEBRTC_POSIX)
}
diff --git a/webrtc.gni b/webrtc.gni
index d04115c6e1..058437f0dd 100644
index 1e6dbd3e22..7562ac4c70 100644
--- a/webrtc.gni
+++ b/webrtc.gni
@@ -339,7 +339,7 @@ rtc_opus_dir = "//third_party/opus"
@@ -344,7 +344,7 @@ rtc_opus_dir = "//third_party/opus"
# Desktop capturer is supported only on Windows, OSX and Linux.
rtc_desktop_capture_supported =

Просмотреть файл

@ -11,10 +11,10 @@ Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/b0658888969395dca
2 files changed, 10 insertions(+)
diff --git a/BUILD.gn b/BUILD.gn
index f1f9b48c75..379f4e85e7 100644
index e139b52bfa..311afdccb3 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -584,6 +584,10 @@ if (!build_with_chromium) {
@@ -588,6 +588,10 @@ if (!build_with_chromium) {
]
}

Просмотреть файл

@ -10,10 +10,10 @@ Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/46fb51c90709be64c
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/webrtc.gni b/webrtc.gni
index 058437f0dd..9c9b191199 100644
index 7562ac4c70..e9fbf22bbb 100644
--- a/webrtc.gni
+++ b/webrtc.gni
@@ -289,7 +289,7 @@ declare_args() {
@@ -294,7 +294,7 @@ declare_args() {
# Set this to true to enable the avx2 support in webrtc.
# TODO: Make sure that AVX2 works also for non-clang compilers.

Просмотреть файл

@ -36,9 +36,10 @@
// WebRTC.framework with their own prefix in case symbol clashing is a
// problem.
//
// This macro must only be defined here and not on via compiler flag to
// ensure it has a unique value.
// This macro must be defined uniformily across all the translation units.
#ifndef RTC_OBJC_TYPE_PREFIX
#define RTC_OBJC_TYPE_PREFIX
#endif
// RCT_OBJC_TYPE
//

Просмотреть файл

@ -287,8 +287,8 @@
__block RTC_OBJC_TYPE(RTCPeerConnectionFactory) * factory;
__block RTC_OBJC_TYPE(RTCPeerConnection) * pc1;
RTCSessionDescription *rollback = [[RTCSessionDescription alloc] initWithType:RTCSdpTypeRollback
sdp:@""];
RTC_OBJC_TYPE(RTCSessionDescription) *rollback =
[[RTC_OBJC_TYPE(RTCSessionDescription) alloc] initWithType:RTCSdpTypeRollback sdp:@""];
@autoreleasepool {
factory = [[RTC_OBJC_TYPE(RTCPeerConnectionFactory) alloc] init];

Просмотреть файл

@ -271,7 +271,8 @@
],
'ios_internal_pure_release_bot_arm64': [
'ios', 'pure_release_bot', 'arm64',
'ios_code_signing_identity_description', 'xctest'
'ios_code_signing_identity_description', 'xctest',
'rtc_objc_test_prefix',
],
'ios_internal_release_bot_arm64': [
'ios', 'release_bot', 'arm64', 'ios_code_signing_identity_description',
@ -456,6 +457,9 @@
'release_bot': {
'mixins': ['pure_release_bot', 'dcheck_always_on'],
},
'rtc_objc_test_prefix': {
'gn_args': 'rtc_objc_prefix="RTC_TESTING"',
},
'rtti': {
'gn_args': 'use_rtti=true',
},

5
third_party/libwebrtc/webrtc.gni поставляемый
Просмотреть файл

@ -246,6 +246,11 @@ declare_args() {
# "warn": RTC_LOGs a message with LS_WARNING severity if the field trial
# hasn't been registered.
rtc_strict_field_trials = ""
# If different from "", symbols exported with RTC_OBJC_EXPORT will be prefixed
# with this string.
# See the definition of RTC_OBJC_TYPE_PREFIX in the code.
rtc_objc_prefix = ""
}
if (!build_with_mozilla) {