From 79993ed984c4ae7a31fa1770a04c467cbe1aba2f Mon Sep 17 00:00:00 2001 From: Arun Raghavan Date: Thu, 9 Jan 2025 20:32:33 -0500 Subject: [PATCH 1/2] abseil-cpp: Expose more missing headers This is enough for webrtc-audio-processing-2 to compile. --- releases.json | 1 + subprojects/packagefiles/abseil-cpp/meson.build | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/releases.json b/releases.json index ea02e624e..c3a1ca7c3 100644 --- a/releases.json +++ b/releases.json @@ -99,6 +99,7 @@ "absl_variant" ], "versions": [ + "20240722.0-3", "20240722.0-2", "20240722.0-1", "20230802.1-2", diff --git a/subprojects/packagefiles/abseil-cpp/meson.build b/subprojects/packagefiles/abseil-cpp/meson.build index 70c7a5a41..f4e26ebc9 100644 --- a/subprojects/packagefiles/abseil-cpp/meson.build +++ b/subprojects/packagefiles/abseil-cpp/meson.build @@ -71,6 +71,7 @@ absl_base_headers = files( 'absl/base/internal/invoke.h', 'absl/base/internal/low_level_alloc.h', 'absl/base/internal/low_level_scheduling.h', + 'absl/base/internal/nullability_impl.h', 'absl/base/internal/per_thread_tls.h', 'absl/base/internal/poison.h', 'absl/base/internal/pretty_function.h', @@ -100,6 +101,8 @@ absl_base_headers = files( 'absl/base/policy_checks.h', 'absl/base/port.h', 'absl/base/thread_annotations.h', + 'absl/functional/any_invocable.h', + 'absl/functional/internal/any_invocable.h', 'absl/memory/memory.h', 'absl/meta/type_traits.h', 'absl/utility/utility.h', @@ -476,6 +479,7 @@ absl_strings_headers = files( 'absl/strings/cord_test_helpers.h', 'absl/strings/cordz_test_helpers.h', 'absl/strings/escaping.h', + 'absl/strings/has_absl_stringify.h', 'absl/strings/internal/charconv_bigint.h', 'absl/strings/internal/charconv_parse.h', 'absl/strings/internal/cord_data_edge.h', From 171a7c20a3f5daacf4d33522486c237ebc4ec080 Mon Sep 17 00:00:00 2001 From: Arun Raghavan Date: Fri, 10 Jan 2025 09:30:09 -0500 Subject: [PATCH 2/2] abseil-cpp: Disable unscaled clock on ppc + musl --- subprojects/packagefiles/abseil-cpp/meson.build | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/subprojects/packagefiles/abseil-cpp/meson.build b/subprojects/packagefiles/abseil-cpp/meson.build index f4e26ebc9..9848e5b33 100644 --- a/subprojects/packagefiles/abseil-cpp/meson.build +++ b/subprojects/packagefiles/abseil-cpp/meson.build @@ -13,6 +13,7 @@ cpp = meson.get_compiler('cpp') flags = cpp.get_supported_arguments('/DNOMINMAX', '-Wno-sign-compare', '-Wno-gcc-compat') add_project_arguments(flags, language: 'cpp') +arch_cpp_flags = [] hw_cpp_flags = [] if host_machine.cpu_family() == 'x86_64' hw_cpp_flags += ['-maes', '-msse4.1'] @@ -20,7 +21,18 @@ elif host_machine.cpu_family() == 'aarch64' and cpp.sizeof('void*') == 8 hw_cpp_flags += ['-march=armv8-a+crypto'] elif host_machine.cpu_family() == 'arm' and cpp.sizeof('void*') == 4 hw_cpp_flags += ['-mfpu=neon'] +elif host_machine.cpu_family() == 'ppc' or host_machine.cpu_family() == 'ppc64' + # This will work with glibc but not musl + timebase_check = '''#include + int main() { + __ppc_get_timebase_freq(); + return 0; + }''' + if not cpp.compiles(timebase_check) + arch_cpp_flags += ['-DABSL_USE_UNSCALED_CYCLECLOCK=0'] + endif endif +arch_flags = cpp.get_supported_arguments(arch_cpp_flags) hw_flags = cpp.get_supported_arguments(hw_cpp_flags) libatomic = dependency('', required: false) @@ -623,6 +635,7 @@ absl_base_lib = static_library( 'absl_base', absl_base_sources, include_directories: absl_include_dir, + cpp_args: arch_flags, dependencies: [dependency('threads'), libatomic], )