diff --git a/VERSION b/VERSION index 1534ff69..739778a3 100644 --- a/VERSION +++ b/VERSION @@ -2,10 +2,10 @@ CCACHE_VERSION=4.6 # WebRTC doesn't have its own versioning, so we use Chromium versions: # https://chromiumdash.appspot.com/releases -WEBRTC_VERSION=108.0.5359.124 +WEBRTC_VERSION=109.0.5414.74 # Look for the concrete revision for WebRTC in: # https://chromium.googlesource.com/chromium/src/+/refs/tags//DEPS -WEBRTC_COMMIT=93081d594f7efff72958a79251f53731b99e902b +WEBRTC_COMMIT=4e8a5ac68e8a4ae0588f54f2fdb8cbd1eb5fa50d PACKAGE_NAMES= \ linux-arm64 \ diff --git a/build/android/Makefile b/build/android/Makefile index fcbfd16f..2d0bcc44 100644 --- a/build/android/Makefile +++ b/build/android/Makefile @@ -59,6 +59,7 @@ patch: common-patch patch -p2 < $(PATCH_DIR)/disable_use_hermetic_xcode_on_linux.patch && \ patch -p2 < $(PATCH_DIR)/android_version.patch && \ patch -p2 < $(PATCH_DIR)/android_use_libunwind.patch && \ + patch -p2 < $(PATCH_DIR)/android_revert_use-relative-vtable-ABI.patch && \ $(SCRIPTS_DIR)/generate_android_version.sh $(SRC_DIR) $(WEBRTC_COMMIT) $(WEBRTC_VERSION) diff --git a/instrumentisto-libwebrtc-bin.podspec b/instrumentisto-libwebrtc-bin.podspec index 4348b6b6..a619b71c 100644 --- a/instrumentisto-libwebrtc-bin.podspec +++ b/instrumentisto-libwebrtc-bin.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |spec| spec.name = "instrumentisto-libwebrtc-bin" - spec.version = "108.0.5359.124" + spec.version = "109.0.5414.74" spec.summary = "Pre-compiled `libwebrtc` library for Darwin used by Medea Flutter-WebRTC." spec.homepage = "https://github.com/instrumentisto/libwebrtc-bin" @@ -8,7 +8,7 @@ Pod::Spec.new do |spec| spec.author = { 'Instrumentisto Team' => 'developer@instrumentisto.com' } spec.ios.deployment_target = '10.0' - spec.source = { :http => "https://github.com/instrumentisto/libwebrtc-bin/releases/download/108.0.5359.124/libwebrtc-ios.zip" } + spec.source = { :http => "https://github.com/instrumentisto/libwebrtc-bin/releases/download/109.0.5414.74/libwebrtc-ios.zip" } spec.vendored_frameworks = "WebRTC.xcframework" spec.pod_target_xcconfig = { diff --git a/patch/android_revert_use-relative-vtable-ABI.patch b/patch/android_revert_use-relative-vtable-ABI.patch new file mode 100644 index 00000000..e1e85674 --- /dev/null +++ b/patch/android_revert_use-relative-vtable-ABI.patch @@ -0,0 +1,18 @@ +diff --git a/src/build/config/android/BUILD.gn b/src/build/config/android/BUILD.gn +index f8d2e95c0..efdd3826e 100644 +--- a/src/build/config/android/BUILD.gn ++++ b/src/build/config/android/BUILD.gn +@@ -45,13 +45,6 @@ config("compiler") { + # by shrinking the alignment gap between segments. This also causes all + # segments to be mapped adjacently, which breakpad relies on. + ldflags += [ "-Wl,-z,max-page-size=4096" ] +- +- # Use non-standard (non-Itanium) ABI for Android64. This shrinks vtables +- # in half and places them to .rodata, which greatly improves memory +- # footprint. It should be safe, assuming all of C++ in Chromium is +- # compiled with this flag. +- cflags_cc = [ "-fexperimental-relative-c++-abi-vtables" ] +- ldflags += [ "-fexperimental-relative-c++-abi-vtables" ] + } + + if (current_cpu == "arm64") { diff --git a/scripts/fetch_webrtc.sh b/scripts/fetch_webrtc.sh index 22ad7cf8..405128ed 100755 --- a/scripts/fetch_webrtc.sh +++ b/scripts/fetch_webrtc.sh @@ -27,6 +27,11 @@ if [ -f "$WEBRTC_DIR/.gclient" ]; then git reset --hard; git clean -xdf; fi + if [ -d "$WEBRTC_DIR/src/buildtools" ]; then + cd "$WEBRTC_DIR/src/buildtools"; + git reset --hard; + git clean -xdf; + fi else echo "Getting WebRTC..."; rm -f "$DEPOT_TOOLS_DIR/metrics.cfg"