From 190ce8280f4876462f2df091611bbefc968cf5d5 Mon Sep 17 00:00:00 2001 From: Valentine Burley Date: Mon, 18 May 2026 12:28:11 +0200 Subject: [PATCH] meson: Add Soong compatibility compiler flags to Vulkan drivers Suggested by @gurchetansingh. Android's Soong build system treats several compiler warnings as errors by default: https://android.googlesource.com/platform/build/soong/+/27f57506/cc/config/global.go/#218 To catch these issues in Mesa, introduce `soong_compat_c_args` and `soong_compat_cpp_args` with the following flags treated as errors: -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -Werror=date-time -Werror=gnu-alignof-expression -Werror=ignored-qualifiers -Werror=implicit-fallthrough -Werror=int-conversion -Werror=missing-prototypes -Werror=pragma-pack -Werror=pragma-pack-suspicious-include -Werror=sizeof-array-div -Werror=string-plus-int -Werror=unreachable-code-loop-increment These compatibility flags are added to the meson configurations for ANV, Gfxstream, Lavapipe, PanVK, Turnip, and Venus. Signed-off-by: Valentine Burley Acked-by: Emma Anholt Reviewed-by: Gurchetan Singh Part-of: --- meson.build | 36 +++++++++++++++++++ src/compiler/meson.build | 2 +- src/compiler/nir/meson.build | 2 +- src/compiler/spirv/meson.build | 2 +- src/freedreno/common/meson.build | 2 +- src/freedreno/decode/meson.build | 10 +++--- src/freedreno/fdl/meson.build | 2 +- src/freedreno/ir3/meson.build | 2 +- src/freedreno/perfcntrs/meson.build | 2 +- src/freedreno/vulkan/meson.build | 4 +-- src/gallium/frontends/lavapipe/meson.build | 2 +- src/gfxstream/guest/meson.build | 2 +- src/intel/blorp/meson.build | 4 +-- src/intel/common/meson.build | 2 +- src/intel/compiler/brw/meson.build | 8 ++--- src/intel/compiler/jay/meson.build | 4 +-- src/intel/compiler/meson.build | 2 +- src/intel/decoder/meson.build | 6 ++-- src/intel/dev/meson.build | 2 +- src/intel/isl/meson.build | 2 +- src/intel/mda/meson.build | 2 +- src/intel/perf/meson.build | 4 +-- src/intel/vulkan/meson.build | 5 ++- src/panfrost/clc/meson.build | 2 +- src/panfrost/compiler/bifrost/meson.build | 4 +-- .../compiler/bifrost/valhall/meson.build | 4 +-- src/panfrost/compiler/meson.build | 2 +- src/panfrost/compiler/midgard/meson.build | 4 +-- src/panfrost/genxml/meson.build | 4 +-- src/panfrost/lib/meson.build | 2 +- src/panfrost/model/meson.build | 2 +- src/panfrost/shared/meson.build | 2 +- src/panfrost/vulkan/meson.build | 4 +-- src/util/meson.build | 5 +-- src/virtio/vdrm/meson.build | 2 +- src/virtio/vulkan/meson.build | 1 + src/vulkan/runtime/meson.build | 8 ++--- src/vulkan/util/meson.build | 2 +- 38 files changed, 99 insertions(+), 58 deletions(-) diff --git a/meson.build b/meson.build index 5c42552f5b2..620ac001e84 100644 --- a/meson.build +++ b/meson.build @@ -1247,6 +1247,8 @@ endif c_msvc_compat_args = [] no_override_init_args = [] cpp_msvc_compat_args = [] +soong_compat_c_args = [] +soong_compat_cpp_args = [] ld_args_gc_sections = [] if cc.get_argument_syntax() == 'msvc' _trial = [ @@ -1366,6 +1368,40 @@ else ] c_msvc_compat_args += cc.get_supported_arguments(_trial_msvc) cpp_msvc_compat_args += cpp.get_supported_arguments(_trial_msvc) + + # Check for C and C++ arguments for Soong compatibility. + _trial_soong_c = [ + '-Werror=date-time', + '-Werror=gnu-alignof-expression', + '-Werror=ignored-qualifiers', + '-Werror=implicit-fallthrough', + '-Werror=int-conversion', + '-Werror=missing-prototypes', + '-Werror=pragma-pack', + '-Werror=pragma-pack-suspicious-include', + '-Werror=sizeof-array-div', + '-Werror=string-plus-int', + '-Werror=unreachable-code-loop-increment', + ] + _trial_soong_cpp = [ + '-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS', + '-Werror=date-time', + '-Werror=gnu-alignof-expression', + '-Werror=ignored-qualifiers', + '-Werror=implicit-fallthrough', + '-Werror=pragma-pack', + '-Werror=pragma-pack-suspicious-include', + '-Werror=sizeof-array-div', + '-Werror=string-plus-int', + '-Werror=unreachable-code-loop-increment', + ] + if cpp.get_id() == 'gcc' + _trial_soong_cpp += '-Werror=missing-declarations' + else + _trial_soong_cpp += '-Werror=missing-prototypes' + endif + soong_compat_c_args += cc.get_supported_arguments(_trial_soong_c) + soong_compat_cpp_args += cpp.get_supported_arguments(_trial_soong_cpp) endif # set linker arguments diff --git a/src/compiler/meson.build b/src/compiler/meson.build index d2345865989..161b71cffaa 100644 --- a/src/compiler/meson.build +++ b/src/compiler/meson.build @@ -48,7 +48,7 @@ libcompiler = static_library( 'compiler', [files_libcompiler, ir_expression_operation_h, builtin_types_h, builtin_types_c], include_directories : [inc_compiler, inc_include, inc_src], - c_args : [c_msvc_compat_args, no_override_init_args], + c_args : [c_msvc_compat_args, soong_compat_c_args, no_override_init_args], cpp_args : [cpp_msvc_compat_args], gnu_symbol_visibility : 'hidden', dependencies : [dep_valgrind], diff --git a/src/compiler/nir/meson.build b/src/compiler/nir/meson.build index 28e01b6c7cb..248389475e5 100644 --- a/src/compiler/nir/meson.build +++ b/src/compiler/nir/meson.build @@ -376,7 +376,7 @@ _libnir = static_library( 'nir', [files_libnir, custom_targets_libnir], include_directories : [inc_include, inc_src], - c_args : [c_msvc_compat_args, no_override_init_args, no_misleading_indentation], + c_args : [c_msvc_compat_args, soong_compat_c_args, no_override_init_args, no_misleading_indentation], gnu_symbol_visibility : 'hidden', dependencies : [idep_compiler, dep_valgrind, idep_mesautil], build_by_default : false, diff --git a/src/compiler/spirv/meson.build b/src/compiler/spirv/meson.build index 6ba657d49d4..c43153bde31 100644 --- a/src/compiler/spirv/meson.build +++ b/src/compiler/spirv/meson.build @@ -53,7 +53,7 @@ libvtn = static_library( vtn_generator_ids_h, ], include_directories : [inc_include, inc_src], - c_args : [c_msvc_compat_args, no_override_init_args], + c_args : [c_msvc_compat_args, soong_compat_c_args, no_override_init_args], gnu_symbol_visibility : 'hidden', dependencies : [dep_spirv_tools, idep_nir, dep_valgrind], build_by_default : false, diff --git a/src/freedreno/common/meson.build b/src/freedreno/common/meson.build index 59bd74a2ad5..6279fc9fea3 100644 --- a/src/freedreno/common/meson.build +++ b/src/freedreno/common/meson.build @@ -34,7 +34,7 @@ libfreedreno_common = static_library( 'redump.h' ], include_directories : [inc_freedreno, inc_include, inc_src], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], build_by_default : false, dependencies: [idep_mesautil], gnu_symbol_visibility : 'hidden', diff --git a/src/freedreno/decode/meson.build b/src/freedreno/decode/meson.build index e463bb38457..fe1966bf519 100644 --- a/src/freedreno/decode/meson.build +++ b/src/freedreno/decode/meson.build @@ -44,7 +44,7 @@ libfreedreno_cffdec = static_library( inc_include, inc_src, ], - c_args : [ no_override_init_args ], + c_args : [ no_override_init_args, soong_compat_c_args ], gnu_symbol_visibility: 'hidden', dependencies: [ dep_lua, @@ -65,7 +65,7 @@ libfreedreno_io = static_library( 'io.h', ], include_directories: [], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility: 'hidden', dependencies: [ dep_libarchive, @@ -108,7 +108,7 @@ foreach kmd : freedreno_kmds inc_include, inc_src, ], - c_args : [no_override_init_args, replay_flags], + c_args : [no_override_init_args, soong_compat_c_args, replay_flags], gnu_symbol_visibility: 'hidden', dependencies: replay_deps, link_with: [ @@ -132,7 +132,7 @@ rddecompiler = executable( inc_include, inc_src, ], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility: 'hidden', dependencies: [ dep_libdrm, @@ -182,7 +182,7 @@ cffdump = executable( inc_include, inc_src, ], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility: 'hidden', dependencies: [ dep_lua, diff --git a/src/freedreno/fdl/meson.build b/src/freedreno/fdl/meson.build index 27a536a7113..1d3c5ca6ba7 100644 --- a/src/freedreno/fdl/meson.build +++ b/src/freedreno/fdl/meson.build @@ -14,7 +14,7 @@ libfreedreno_layout = static_library( freedreno_xml_header_files, ], include_directories : [inc_freedreno, inc_include, inc_src], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', dependencies : [idep_nir_headers, idep_mesautil, idep_libfreedreno_common], build_by_default : false, diff --git a/src/freedreno/ir3/meson.build b/src/freedreno/ir3/meson.build index 5241d008d0b..c6258e57acc 100644 --- a/src/freedreno/ir3/meson.build +++ b/src/freedreno/ir3/meson.build @@ -143,7 +143,7 @@ libfreedreno_ir3 = static_library( ir3_lexer, ], include_directories : [inc_freedreno, inc_include, inc_src], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', link_with: [libir3encode, libfreedreno_common], dependencies : [idep_libir3decode, idep_nir_headers, dep_dl, idep_mesautil], diff --git a/src/freedreno/perfcntrs/meson.build b/src/freedreno/perfcntrs/meson.build index 5b0dbf8a0d2..c52ecbe955e 100644 --- a/src/freedreno/perfcntrs/meson.build +++ b/src/freedreno/perfcntrs/meson.build @@ -17,7 +17,7 @@ libfreedreno_perfcntrs = static_library( 'freedreno_perfcntrs', [libfreedreno_perfcntrs_files, freedreno_xml_header_files], include_directories : [inc_freedreno, inc_include, inc_src], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', link_with : [libfreedreno_common], dependencies : idep_nir_headers, diff --git a/src/freedreno/vulkan/meson.build b/src/freedreno/vulkan/meson.build index b1f94d293f1..97e0bca944b 100644 --- a/src/freedreno/vulkan/meson.build +++ b/src/freedreno/vulkan/meson.build @@ -206,8 +206,8 @@ libvulkan_freedreno = shared_library( idep_vulkan_wsi, idep_mesautil, ], - c_args : [no_override_init_args, tu_flags], - cpp_args : [tu_cpp_args, tu_flags], + c_args : [no_override_init_args, tu_flags, soong_compat_c_args], + cpp_args : [tu_cpp_args, tu_flags, soong_compat_cpp_args], gnu_symbol_visibility : 'hidden', link_args : [vulkan_icd_link_args, ld_args_bsymbolic, ld_args_gc_sections, ld_args_build_id], link_depends : vulkan_icd_link_depends, diff --git a/src/gallium/frontends/lavapipe/meson.build b/src/gallium/frontends/lavapipe/meson.build index b87926e8022..a4ced880ca7 100644 --- a/src/gallium/frontends/lavapipe/meson.build +++ b/src/gallium/frontends/lavapipe/meson.build @@ -54,7 +54,7 @@ endif liblavapipe_st = static_library( 'lavapipe_st', [liblvp_files, lvp_entrypoints, sha1_h], - c_args : [ c_msvc_compat_args, lvp_flags], + c_args : [ c_msvc_compat_args, lvp_flags, soong_compat_c_args], gnu_symbol_visibility : 'hidden', include_directories : [ inc_include, inc_src, inc_util, inc_gallium, inc_gallium_aux, inc_llvmpipe ], dependencies : [ dep_llvm, idep_nir, idep_mesautil, idep_vulkan_util, idep_vulkan_wsi, diff --git a/src/gfxstream/guest/meson.build b/src/gfxstream/guest/meson.build index b352c78eedd..06b4258a3ab 100644 --- a/src/gfxstream/guest/meson.build +++ b/src/gfxstream/guest/meson.build @@ -13,7 +13,7 @@ endif #===============# # Configuration # #===============# -gfxstream_guest_args = cpp_msvc_compat_args + ['-D_FILE_OFFSET_BITS=64'] +gfxstream_guest_args = cpp_msvc_compat_args + soong_compat_cpp_args + ['-D_FILE_OFFSET_BITS=64'] # Our internal guest build if host_machine.system() == 'windows' diff --git a/src/intel/blorp/meson.build b/src/intel/blorp/meson.build index ec83ca66574..aa826933bb2 100644 --- a/src/intel/blorp/meson.build +++ b/src/intel/blorp/meson.build @@ -55,7 +55,7 @@ libblorp = static_library( 'blorp', [files_libblorp, files_blorp_brw], include_directories : [inc_include, inc_src, inc_intel, inc_intel_compiler], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', dependencies : [ idep_nir_headers, idep_genxml, idep_mesautil, idep_intel_dev, @@ -73,7 +73,7 @@ if with_intel_elk 'blorp_elk', [files_libblorp, files_blorp_elk], include_directories : [inc_include, inc_src, inc_intel], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', dependencies : [ idep_nir_headers, idep_genxml, idep_mesautil, idep_intel_dev, diff --git a/src/intel/common/meson.build b/src/intel/common/meson.build index 5717fcc3822..3d60799d977 100644 --- a/src/intel/common/meson.build +++ b/src/intel/common/meson.build @@ -51,7 +51,7 @@ libintel_common = static_library( 'intel_common', [files_libintel_common, genX_xml_h, sha1_h], include_directories : [inc_include, inc_src, inc_intel], - c_args : [no_override_init_args, sse2_args], + c_args : [no_override_init_args, soong_compat_c_args, sse2_args], gnu_symbol_visibility : 'hidden', link_with : libintel_common_links, dependencies : [dep_libdrm, dep_thread, idep_genxml, idep_mesautil, idep_intel_dev], diff --git a/src/intel/compiler/brw/meson.build b/src/intel/compiler/brw/meson.build index 9fe61baeee9..a56aaae0a74 100644 --- a/src/intel/compiler/brw/meson.build +++ b/src/intel/compiler/brw/meson.build @@ -138,7 +138,7 @@ libintel_compiler_brw = static_library( 'intel_compiler', [libintel_compiler_brw_files, brw_nir_lower_fsign, brw_nir_workarounds, [brw_device_sha1_gen_src]], include_directories : [inc_include, inc_src, inc_intel, inc_intel_compiler], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], cpp_args : ['-Werror=vla'], gnu_symbol_visibility : 'hidden', link_with : libintel_compiler_nir, @@ -218,7 +218,7 @@ brw_asm = static_library( ['brw_asm.c', brw_gram_tab[0], brw_gram_tab[1], brw_lex_yy_c], dependencies : brw_asm_deps, include_directories : [inc_include, inc_src, inc_intel], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', build_by_default : false, ) @@ -233,7 +233,7 @@ brw_asm_tool = executable( ['brw_asm_tool.c'], dependencies : idep_brw_asm, include_directories : [inc_include, inc_src, inc_intel], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', install : true ) @@ -268,7 +268,7 @@ brw_disasm_tool = executable( dependencies : [idep_mesautil, dep_thread, idep_intel_dev, idep_intel_compiler_brw], include_directories : [inc_include, inc_src, inc_intel], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', install : true ) diff --git a/src/intel/compiler/jay/meson.build b/src/intel/compiler/jay/meson.build index 6e656372039..a367de71380 100644 --- a/src/intel/compiler/jay/meson.build +++ b/src/intel/compiler/jay/meson.build @@ -79,7 +79,7 @@ libintel_compiler_jay = static_library( 'intel_compiler_jay', [libintel_compiler_jay_files, jay_nir_algebraic, jay_opcodes[0]], include_directories : [inc_include, inc_src, inc_intel], - c_args : [no_override_init_args, '-Wno-c23-extensions', '-Wno-array-bounds'], + c_args : [no_override_init_args, soong_compat_c_args, '-Wno-c23-extensions', '-Wno-array-bounds'], gnu_symbol_visibility : 'hidden', dependencies : [idep_nir_headers, idep_jay_opcodes_h, idep_jay_builder_opcodes_h, idep_jay_extra_info_h, idep_mesautil, idep_intel_dev], build_by_default : false, @@ -103,7 +103,7 @@ if with_tests 'test/test-optimizer.cpp', 'test/test-repair-ssa.cpp', ), - c_args : [c_msvc_compat_args, no_override_init_args], + c_args : [c_msvc_compat_args, no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', include_directories : [inc_include, inc_src, inc_intel], dependencies: [idep_gtest, idep_nir, idep_jay_opcodes_h, idep_jay_builder_opcodes_h, idep_jay_extra_info_h, idep_mesautil, idep_intel_dev], diff --git a/src/intel/compiler/meson.build b/src/intel/compiler/meson.build index c7ce570e0d4..79a585d5c48 100644 --- a/src/intel/compiler/meson.build +++ b/src/intel/compiler/meson.build @@ -22,7 +22,7 @@ libintel_compiler_nir = static_library( 'intel_compiler_nir', [libintel_compiler_nir_files], include_directories : [inc_include, inc_src, inc_intel], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], cpp_args : ['-Werror=vla'], gnu_symbol_visibility : 'hidden', dependencies : [idep_nir_headers, idep_mesautil, idep_intel_dev, idep_vtn, idep_mda], diff --git a/src/intel/decoder/meson.build b/src/intel/decoder/meson.build index 0753201155a..59eda66cb2b 100644 --- a/src/intel/decoder/meson.build +++ b/src/intel/decoder/meson.build @@ -29,7 +29,7 @@ libintel_decoder = static_library( 'intel_decoder', [libintel_decoder_files, genX_xml_h, sha1_h], include_directories : [inc_include, inc_src, inc_intel], - c_args : [no_override_init_args, sse2_args], + c_args : [no_override_init_args, soong_compat_c_args, sse2_args], gnu_symbol_visibility : 'hidden', dependencies : libintel_decoder_deps, build_by_default : false, @@ -44,7 +44,7 @@ libintel_decoder_brw = static_library( 'intel_decoder_brw', [libintel_decoder_brw_files, genX_xml_h, sha1_h], include_directories : [inc_include, inc_src, inc_intel], - c_args : [no_override_init_args, sse2_args], + c_args : [no_override_init_args, soong_compat_c_args, sse2_args], gnu_symbol_visibility : 'hidden', dependencies : idep_intel_decoder, build_by_default : false, @@ -60,7 +60,7 @@ if with_intel_elk 'intel_decoder_elk', [libintel_decoder_elk_files, genX_xml_h, sha1_h], include_directories : [inc_include, inc_src, inc_intel], - c_args : [no_override_init_args, sse2_args], + c_args : [no_override_init_args, soong_compat_c_args, sse2_args], gnu_symbol_visibility : 'hidden', dependencies : idep_intel_decoder, build_by_default : false, diff --git a/src/intel/dev/meson.build b/src/intel/dev/meson.build index 5085af1b8ef..ad18130a4d1 100644 --- a/src/intel/dev/meson.build +++ b/src/intel/dev/meson.build @@ -65,7 +65,7 @@ libintel_dev = static_library( include_directories : [inc_include, inc_src, inc_intel, inc_intel_dev_virtio], dependencies : [dep_libdrm, idep_mesautil, idep_intel_dev_wa, idep_intel_dev_info_gen], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', link_with : [link_intel_dev_virtio], ) diff --git a/src/intel/isl/meson.build b/src/intel/isl/meson.build index 234097b1250..c9089923e9e 100644 --- a/src/intel/isl/meson.build +++ b/src/intel/isl/meson.build @@ -91,7 +91,7 @@ isl_tiled_memcpy = static_library( ], dependencies : [idep_mesautil, idep_intel_dev], - c_args : [no_override_init_args, sse2_arg], + c_args : [no_override_init_args, soong_compat_c_args, sse2_arg], gnu_symbol_visibility : 'hidden', extra_files : ['isl_tiled_memcpy.c'] ) diff --git a/src/intel/mda/meson.build b/src/intel/mda/meson.build index 323aef0dcfe..4ae5c5fcf5b 100644 --- a/src/intel/mda/meson.build +++ b/src/intel/mda/meson.build @@ -56,7 +56,7 @@ if with_intel_tools idep_mesautil, ], include_directories: [inc_include, inc_src], - c_args: [no_override_init_args], + c_args: [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility: 'hidden', install: true ) diff --git a/src/intel/perf/meson.build b/src/intel/perf/meson.build index 28a92909100..cb9507133a6 100644 --- a/src/intel/perf/meson.build +++ b/src/intel/perf/meson.build @@ -49,7 +49,7 @@ libintel_perf = static_library( include_directories : [ inc_include, inc_src, inc_intel, ], - c_args : [no_override_init_args, sse2_arg], + c_args : [no_override_init_args, soong_compat_c_args, sse2_arg], cpp_args : [sse2_arg], gnu_symbol_visibility : 'hidden', dependencies : [idep_intel_dev], @@ -68,7 +68,7 @@ if with_intel_tools dependencies : [idep_mesautil, dep_dl, dep_thread, dep_m, idep_intel_dev], include_directories : [inc_include, inc_src, inc_intel], link_with : [libintel_common, libintel_perf], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', install : false ) diff --git a/src/intel/vulkan/meson.build b/src/intel/vulkan/meson.build index e479c6e0e61..6e25d1674b3 100644 --- a/src/intel/vulkan/meson.build +++ b/src/intel/vulkan/meson.build @@ -6,9 +6,12 @@ inc_anv = include_directories('.') anv_flags = [ no_override_init_args, sse2_args, + soong_compat_c_args, ] -anv_cpp_flags = [] +anv_cpp_flags = [ + soong_compat_cpp_args, +] anv_entrypoints = custom_target( 'anv_entrypoints', diff --git a/src/panfrost/clc/meson.build b/src/panfrost/clc/meson.build index 5a394c243b1..cc91d756956 100644 --- a/src/panfrost/clc/meson.build +++ b/src/panfrost/clc/meson.build @@ -11,7 +11,7 @@ else ['pan_compile.c'], link_with : [libpanfrost_compiler], include_directories : [inc_include, inc_src], - c_args : [c_msvc_compat_args, no_override_init_args], + c_args : [c_msvc_compat_args, no_override_init_args, soong_compat_c_args], link_args : [ld_args_build_id], dependencies : [idep_vtn, idep_nir, idep_mesautil, libpanfrost_dep], # If we can run host binaries directly, just build panfrost_compile for the host. diff --git a/src/panfrost/compiler/bifrost/meson.build b/src/panfrost/compiler/bifrost/meson.build index f46d87f1865..27ed001d30a 100644 --- a/src/panfrost/compiler/bifrost/meson.build +++ b/src/panfrost/compiler/bifrost/meson.build @@ -142,7 +142,7 @@ libpanfrost_bifrost_disasm = static_library( ['bifrost/disassemble.c', 'bi_print_common.c', bifrost_gen_disasm_c], include_directories : [inc_include, inc_src], dependencies: [idep_nir], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', build_by_default : false, ) @@ -153,7 +153,7 @@ libpanfrost_bifrost = static_library( include_directories : [inc_include, inc_src, inc_valhall], dependencies: [idep_nir, idep_bi_opcodes_h, idep_bi_builder_h, idep_valhall_enums_h, libpanfrost_model_dep], link_with: [libpanfrost_bifrost_disasm, libpanfrost_valhall_disasm], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', build_by_default : false, ) diff --git a/src/panfrost/compiler/bifrost/valhall/meson.build b/src/panfrost/compiler/bifrost/valhall/meson.build index 9cf75fdf78e..1d67dc9feb1 100644 --- a/src/panfrost/compiler/bifrost/valhall/meson.build +++ b/src/panfrost/compiler/bifrost/valhall/meson.build @@ -38,7 +38,7 @@ libpanfrost_valhall_disasm = static_library( 'panfrost_valhall_disasm', valhall_disasm_c, include_directories : [inc_include, inc_src], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', build_by_default : false, ) @@ -49,7 +49,7 @@ if with_tests executable( 'valhall_disasm_test', files('test/test-disassembler.c'), - c_args : [c_msvc_compat_args, no_override_init_args], + c_args : [c_msvc_compat_args, no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', include_directories : [inc_include, inc_src], dependencies: [idep_valhall_enums_h], diff --git a/src/panfrost/compiler/meson.build b/src/panfrost/compiler/meson.build index 830aabb062c..59cdc67dc47 100644 --- a/src/panfrost/compiler/meson.build +++ b/src/panfrost/compiler/meson.build @@ -32,7 +32,7 @@ libpanfrost_compiler = static_library( include_directories : [inc_include, inc_src, inc_valhall], dependencies: [idep_nir, idep_mesautil, idep_valhall_enums_h, idep_bi_opcodes_h], link_with: [libpanfrost_midgard, libpanfrost_bifrost], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', build_by_default : false, ) diff --git a/src/panfrost/compiler/midgard/meson.build b/src/panfrost/compiler/midgard/meson.build index e0fba07de2d..9334b636b86 100644 --- a/src/panfrost/compiler/midgard/meson.build +++ b/src/panfrost/compiler/midgard/meson.build @@ -43,7 +43,7 @@ libpanfrost_midgard_disasm = static_library( 'panfrost_midgard_disasm', ['disassemble.c', 'midgard_ops.c', 'midgard_print_constant.c'], include_directories : [inc_include, inc_src], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', build_by_default : false, ) @@ -57,7 +57,7 @@ libpanfrost_midgard = static_library( idep_mesautil, ], link_with: [libpanfrost_midgard_disasm], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', build_by_default : false, ) diff --git a/src/panfrost/genxml/meson.build b/src/panfrost/genxml/meson.build index ee4b4adea3f..cece290a1cd 100644 --- a/src/panfrost/genxml/meson.build +++ b/src/panfrost/genxml/meson.build @@ -26,7 +26,7 @@ foreach ver : ['4', '5', '6', '7', '9', '10', '12', '13', '14'] ['decode.c', 'decode_jm.c', 'decode_csf.c', pan_packers], include_directories : [inc_include, inc_src, inc_panfrost], dependencies : [dep_libdrm, idep_pan_packers, idep_nir, idep_mesautil], - c_args : [no_override_init_args, '-DPAN_ARCH=' + ver], + c_args : [no_override_init_args, soong_compat_c_args, '-DPAN_ARCH=' + ver], gnu_symbol_visibility : 'hidden', build_by_default : false, ) @@ -40,7 +40,7 @@ libpanfrost_decode = static_library( ], include_directories : [inc_include, inc_src, inc_panfrost], dependencies : idep_mesautil, - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', build_by_default : false, link_with: [libpanfrost_decode_per_arch], diff --git a/src/panfrost/lib/meson.build b/src/panfrost/lib/meson.build index a4572db619c..080b8ac993d 100644 --- a/src/panfrost/lib/meson.build +++ b/src/panfrost/lib/meson.build @@ -61,7 +61,7 @@ libpanfrost_lib = static_library( 'panfrost_lib', [libpanfrost_lib_files, pan_packers], include_directories : [inc_include, inc_src, inc_panfrost], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', dependencies: [dep_libdrm, idep_nir, idep_mesautil, libpanfrost_model_dep], build_by_default : false, diff --git a/src/panfrost/model/meson.build b/src/panfrost/model/meson.build index 6111a0ce575..435472ec1c7 100644 --- a/src/panfrost/model/meson.build +++ b/src/panfrost/model/meson.build @@ -13,7 +13,7 @@ libpanfrost_model_lib = static_library( 'panfrost_model_lib', [libpanfrost_model_files], include_directories : [inc_src], - c_args : [no_override_init_args], + c_args : [no_override_init_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', build_by_default : false, ) diff --git a/src/panfrost/shared/meson.build b/src/panfrost/shared/meson.build index b4cba34d360..41bd06650e2 100644 --- a/src/panfrost/shared/meson.build +++ b/src/panfrost/shared/meson.build @@ -15,7 +15,7 @@ libpanfrost_shared = static_library( [libpanfrost_shared_files], include_directories : [inc_include, inc_src], dependencies : idep_mesautil, - c_args : [no_override_init_args, '-O3'], + c_args : [no_override_init_args, soong_compat_c_args, '-O3'], gnu_symbol_visibility : 'hidden', build_by_default : false, ) diff --git a/src/panfrost/vulkan/meson.build b/src/panfrost/vulkan/meson.build index ce06192d50a..7705cdd2f98 100644 --- a/src/panfrost/vulkan/meson.build +++ b/src/panfrost/vulkan/meson.build @@ -170,7 +170,7 @@ foreach arch : [6, 7, 10, 12, 13, 14] dep_valgrind, idep_libpan_per_arch[arch.to_string()], ], - c_args : [no_override_init_args, panvk_flags, '-DPAN_ARCH=@0@'.format(arch)], + c_args : [no_override_init_args, panvk_flags, soong_compat_c_args, '-DPAN_ARCH=@0@'.format(arch)], gnu_symbol_visibility : 'hidden', ) endforeach @@ -218,7 +218,7 @@ libvulkan_panfrost = shared_library( idep_vulkan_wsi, idep_mesautil, ], - c_args : [no_override_init_args, panvk_flags], + c_args : [no_override_init_args, panvk_flags, soong_compat_c_args], link_args : [vulkan_icd_link_args, ld_args_bsymbolic, ld_args_gc_sections, ld_args_build_id], gnu_symbol_visibility : 'hidden', install : true, diff --git a/src/util/meson.build b/src/util/meson.build index b69ed73a2b4..99a5860bd6e 100644 --- a/src/util/meson.build +++ b/src/util/meson.build @@ -330,7 +330,7 @@ u_trace_py = files('perf/u_trace.py') libmesa_util_simd = static_library( 'mesa_util_simd', files('streaming-load-memcpy.c'), - c_args : [c_msvc_compat_args, sse41_args], + c_args : [c_msvc_compat_args, soong_compat_c_args, sse41_args], include_directories : [inc_util], gnu_symbol_visibility : 'hidden', build_by_default : false, @@ -343,7 +343,7 @@ _libmesa_util = static_library( include_directories : [inc_util, include_directories('format')], dependencies : deps_for_libmesa_util, link_with: libmesa_util_links, - c_args : [c_msvc_compat_args], + c_args : [c_msvc_compat_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', build_by_default : false ) @@ -380,6 +380,7 @@ _libxmlconfig = static_library( dependencies : [idep_mesautil, dep_m, xmlconfig_deps], c_args : [ c_msvc_compat_args, + soong_compat_c_args, c_xmlconfig_arg, '-DSYSCONFDIR="@0@"'.format( join_paths(get_option('prefix'), get_option('sysconfdir')) diff --git a/src/virtio/vdrm/meson.build b/src/virtio/vdrm/meson.build index bd0b97c4113..941e23c5766 100644 --- a/src/virtio/vdrm/meson.build +++ b/src/virtio/vdrm/meson.build @@ -3,7 +3,7 @@ inc_virtio_vdrm = include_directories('.') -libvdrm_c_args = [no_override_init_args] +libvdrm_c_args = [no_override_init_args, soong_compat_c_args] if with_amdgpu_virtio libvdrm_c_args += ['-DENABLE_DRM_AMDGPU'] endif diff --git a/src/virtio/vulkan/meson.build b/src/virtio/vulkan/meson.build index e9e9dca83bb..19c5fc4b9d4 100644 --- a/src/virtio/vulkan/meson.build +++ b/src/virtio/vulkan/meson.build @@ -95,6 +95,7 @@ vn_deps = [ vn_c_args = [ no_override_init_args, + soong_compat_c_args, ] + cc.get_supported_arguments([ '-Werror=switch', ]) diff --git a/src/vulkan/runtime/meson.build b/src/vulkan/runtime/meson.build index 1f2e9426f57..7da99c886ea 100644 --- a/src/vulkan/runtime/meson.build +++ b/src/vulkan/runtime/meson.build @@ -203,7 +203,7 @@ libvulkan_lite_runtime = static_library( vulkan_lite_runtime_files, include_directories : [inc_include, inc_src], dependencies : vulkan_lite_runtime_deps, - c_args : [c_msvc_compat_args, '-DMESA_VK_LOG=@0@'.format(get_option('debug').to_int())], + c_args : [c_msvc_compat_args, soong_compat_c_args, '-DMESA_VK_LOG=@0@'.format(get_option('debug').to_int())], gnu_symbol_visibility : 'hidden', build_by_default : false, ) @@ -213,7 +213,7 @@ libvulkan_lite_instance = static_library( ['vk_instance.c'], include_directories : [inc_include, inc_src], dependencies : vulkan_lite_runtime_deps, - c_args : ['-DVK_LITE_RUNTIME_INSTANCE=1', c_msvc_compat_args], + c_args : ['-DVK_LITE_RUNTIME_INSTANCE=1', c_msvc_compat_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', build_by_default : false, ) @@ -303,7 +303,7 @@ libvulkan_runtime = static_library( [vulkan_runtime_files], include_directories : [inc_include, inc_src], dependencies : vulkan_runtime_deps, - c_args : c_msvc_compat_args, + c_args : [c_msvc_compat_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', build_by_default : false, ) @@ -313,7 +313,7 @@ libvulkan_instance = static_library( ['vk_instance.c'], include_directories : [inc_include, inc_src], dependencies : vulkan_runtime_deps, - c_args : ['-DVK_LITE_RUNTIME_INSTANCE=0', c_msvc_compat_args], + c_args : ['-DVK_LITE_RUNTIME_INSTANCE=0', c_msvc_compat_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', build_by_default : false, ) diff --git a/src/vulkan/util/meson.build b/src/vulkan/util/meson.build index 38f8a81d205..086eb6ec5b3 100644 --- a/src/vulkan/util/meson.build +++ b/src/vulkan/util/meson.build @@ -127,7 +127,7 @@ libvulkan_util = static_library( vk_struct_type_cast, vk_extensions], include_directories : [inc_include, inc_src], dependencies : [vulkan_wsi_deps, idep_mesautil, idep_nir_headers], - c_args : [c_msvc_compat_args], + c_args : [c_msvc_compat_args, soong_compat_c_args], gnu_symbol_visibility : 'hidden', build_by_default : false, )