From c82ddf4f98d387d54adb01bb6463e0a6078209ac Mon Sep 17 00:00:00 2001 From: Danylo Piliaiev Date: Wed, 8 Mar 2023 19:12:08 +0100 Subject: [PATCH] tu: compile as C++ Signed-off-by: Danylo Piliaiev Part-of: --- src/freedreno/vulkan/meson.build | 83 +++++++++++++++------- .../vulkan/{tu_android.c => tu_android.cc} | 0 .../vulkan/{tu_autotune.c => tu_autotune.cc} | 0 .../vulkan/{tu_clear_blit.c => tu_clear_blit.cc} | 0 .../vulkan/{tu_cmd_buffer.c => tu_cmd_buffer.cc} | 0 src/freedreno/vulkan/{tu_cs.c => tu_cs.cc} | 0 .../{tu_cs_breadcrumbs.c => tu_cs_breadcrumbs.cc} | 0 .../{tu_descriptor_set.c => tu_descriptor_set.cc} | 0 src/freedreno/vulkan/{tu_device.c => tu_device.cc} | 0 ...dynamic_rendering.c => tu_dynamic_rendering.cc} | 0 .../vulkan/{tu_formats.c => tu_formats.cc} | 0 src/freedreno/vulkan/{tu_image.c => tu_image.cc} | 0 src/freedreno/vulkan/{tu_knl.c => tu_knl.cc} | 0 .../vulkan/{tu_knl_drm_msm.c => tu_knl_drm_msm.cc} | 0 .../vulkan/{tu_knl_kgsl.c => tu_knl_kgsl.cc} | 0 src/freedreno/vulkan/{tu_lrz.c => tu_lrz.cc} | 0 ...lower_multiview.c => tu_nir_lower_multiview.cc} | 0 src/freedreno/vulkan/{tu_pass.c => tu_pass.cc} | 0 src/freedreno/vulkan/tu_perfetto.cc | 8 --- .../{tu_perfetto_util.c => tu_perfetto_util.cc} | 0 .../vulkan/{tu_pipeline.c => tu_pipeline.cc} | 0 src/freedreno/vulkan/{tu_query.c => tu_query.cc} | 0 src/freedreno/vulkan/{tu_shader.c => tu_shader.cc} | 0 .../vulkan/{tu_suballoc.c => tu_suballoc.cc} | 0 src/freedreno/vulkan/{tu_util.c => tu_util.cc} | 0 src/freedreno/vulkan/{tu_wsi.c => tu_wsi.cc} | 0 26 files changed, 56 insertions(+), 35 deletions(-) rename src/freedreno/vulkan/{tu_android.c => tu_android.cc} (100%) rename src/freedreno/vulkan/{tu_autotune.c => tu_autotune.cc} (100%) rename src/freedreno/vulkan/{tu_clear_blit.c => tu_clear_blit.cc} (100%) rename src/freedreno/vulkan/{tu_cmd_buffer.c => tu_cmd_buffer.cc} (100%) rename src/freedreno/vulkan/{tu_cs.c => tu_cs.cc} (100%) rename src/freedreno/vulkan/{tu_cs_breadcrumbs.c => tu_cs_breadcrumbs.cc} (100%) rename src/freedreno/vulkan/{tu_descriptor_set.c => tu_descriptor_set.cc} (100%) rename src/freedreno/vulkan/{tu_device.c => tu_device.cc} (100%) rename src/freedreno/vulkan/{tu_dynamic_rendering.c => tu_dynamic_rendering.cc} (100%) rename src/freedreno/vulkan/{tu_formats.c => tu_formats.cc} (100%) rename src/freedreno/vulkan/{tu_image.c => tu_image.cc} (100%) rename src/freedreno/vulkan/{tu_knl.c => tu_knl.cc} (100%) rename src/freedreno/vulkan/{tu_knl_drm_msm.c => tu_knl_drm_msm.cc} (100%) rename src/freedreno/vulkan/{tu_knl_kgsl.c => tu_knl_kgsl.cc} (100%) rename src/freedreno/vulkan/{tu_lrz.c => tu_lrz.cc} (100%) rename src/freedreno/vulkan/{tu_nir_lower_multiview.c => tu_nir_lower_multiview.cc} (100%) rename src/freedreno/vulkan/{tu_pass.c => tu_pass.cc} (100%) rename src/freedreno/vulkan/{tu_perfetto_util.c => tu_perfetto_util.cc} (100%) rename src/freedreno/vulkan/{tu_pipeline.c => tu_pipeline.cc} (100%) rename src/freedreno/vulkan/{tu_query.c => tu_query.cc} (100%) rename src/freedreno/vulkan/{tu_shader.c => tu_shader.cc} (100%) rename src/freedreno/vulkan/{tu_suballoc.c => tu_suballoc.cc} (100%) rename src/freedreno/vulkan/{tu_util.c => tu_util.cc} (100%) rename src/freedreno/vulkan/{tu_wsi.c => tu_wsi.cc} (100%) diff --git a/src/freedreno/vulkan/meson.build b/src/freedreno/vulkan/meson.build index 316b7ef..19c1bd6 100644 --- a/src/freedreno/vulkan/meson.build +++ b/src/freedreno/vulkan/meson.build @@ -14,25 +14,25 @@ tu_entrypoints = custom_target( libtu_files = files( - 'tu_autotune.c', - 'tu_clear_blit.c', - 'tu_cmd_buffer.c', - 'tu_cs_breadcrumbs.c', - 'tu_cs.c', - 'tu_device.c', - 'tu_descriptor_set.c', - 'tu_dynamic_rendering.c', - 'tu_formats.c', - 'tu_image.c', - 'tu_knl.c', - 'tu_lrz.c', - 'tu_nir_lower_multiview.c', - 'tu_pass.c', - 'tu_pipeline.c', - 'tu_query.c', - 'tu_shader.c', - 'tu_suballoc.c', - 'tu_util.c', + 'tu_autotune.cc', + 'tu_clear_blit.cc', + 'tu_cmd_buffer.cc', + 'tu_cs_breadcrumbs.cc', + 'tu_cs.cc', + 'tu_device.cc', + 'tu_descriptor_set.cc', + 'tu_dynamic_rendering.cc', + 'tu_formats.cc', + 'tu_image.cc', + 'tu_knl.cc', + 'tu_lrz.cc', + 'tu_nir_lower_multiview.cc', + 'tu_pass.cc', + 'tu_pipeline.cc', + 'tu_query.cc', + 'tu_shader.cc', + 'tu_suballoc.cc', + 'tu_util.cc', ) tu_deps = [] @@ -55,11 +55,11 @@ if system_has_kms_drm and not with_platform_android endif if tu_wsi - libtu_files += 'tu_wsi.c' + libtu_files += 'tu_wsi.cc' endif if with_platform_android - libtu_files += files('tu_android.c') + libtu_files += files('tu_android.cc') tu_deps += [dep_android] endif @@ -69,21 +69,19 @@ endif if freedreno_kmds.contains('kgsl') tu_flags += '-DTU_HAS_KGSL' - libtu_files += files('tu_knl_kgsl.c') + libtu_files += files('tu_knl_kgsl.cc') endif if freedreno_kmds.contains('msm') tu_flags += '-DTU_HAS_MSM' - libtu_files += files('tu_knl_drm_msm.c') + libtu_files += files('tu_knl_drm_msm.cc') tu_deps += dep_libdrm endif -tu_flags += '-Wno-array-bounds' - tu_tracepoints = custom_target( 'tu_tracepoints.[ch]', input: 'tu_tracepoints.py', - output: ['tu_tracepoints.c', 'tu_tracepoints.h', 'tu_tracepoints_perfetto.h'], + output: ['tu_tracepoints.cc', 'tu_tracepoints.h', 'tu_tracepoints_perfetto.h'], command: [ prog_python, '@INPUT@', '-p', join_paths(dir_source_root, 'src/util/perf/'), @@ -95,10 +93,40 @@ tu_tracepoints = custom_target( ) if with_perfetto - libtu_files += ['tu_perfetto.cc', 'tu_perfetto_util.c'] + libtu_files += ['tu_perfetto.cc', 'tu_perfetto_util.cc'] tu_deps += dep_perfetto endif +tu_cpp_args = [] +tu_cpp_args += cpp.get_supported_arguments([ + '-fno-exceptions', + '-fno-rtti', + '-Wno-address-of-temporary', + '-Wno-array-bounds', + '-Wno-c99-designator', + '-Wno-class-memaccess', + '-Wno-missing-braces', + '-Wno-narrowing', + '-Wno-pointer-arith', + '-Wno-reorder-init-list', + '-Wno-sign-compare', + '-Wno-switch', + '-Wno-unused-function', + '-Wno-writable-strings', + '-Wno-write-strings', +]) + +# HACK compiler.get_supported_arguments()/has_argument() do not seem +# to be reliable for cross builds (!?!) so just jam in some args we +# need and hope for the best +if meson.is_cross_build() + tu_cpp_args += '-Wno-array-bounds' + tu_cpp_args += '-Wno-c++11-narrowing' + tu_cpp_args += '-Wno-missing-braces' + tu_cpp_args += '-Wno-unused-function' + tu_cpp_args += '-Wno-writable-strings' +endif + libvulkan_freedreno = shared_library( 'vulkan_freedreno', [libtu_files, tu_entrypoints, tu_tracepoints, freedreno_xml_header_files, sha1_h, u_format_pack_h], @@ -132,6 +160,7 @@ libvulkan_freedreno = shared_library( idep_mesautil, ], c_args : [no_override_init_args, tu_flags], + cpp_args : [tu_cpp_args, tu_flags], 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/freedreno/vulkan/tu_android.c b/src/freedreno/vulkan/tu_android.cc similarity index 100% rename from src/freedreno/vulkan/tu_android.c rename to src/freedreno/vulkan/tu_android.cc diff --git a/src/freedreno/vulkan/tu_autotune.c b/src/freedreno/vulkan/tu_autotune.cc similarity index 100% rename from src/freedreno/vulkan/tu_autotune.c rename to src/freedreno/vulkan/tu_autotune.cc diff --git a/src/freedreno/vulkan/tu_clear_blit.c b/src/freedreno/vulkan/tu_clear_blit.cc similarity index 100% rename from src/freedreno/vulkan/tu_clear_blit.c rename to src/freedreno/vulkan/tu_clear_blit.cc diff --git a/src/freedreno/vulkan/tu_cmd_buffer.c b/src/freedreno/vulkan/tu_cmd_buffer.cc similarity index 100% rename from src/freedreno/vulkan/tu_cmd_buffer.c rename to src/freedreno/vulkan/tu_cmd_buffer.cc diff --git a/src/freedreno/vulkan/tu_cs.c b/src/freedreno/vulkan/tu_cs.cc similarity index 100% rename from src/freedreno/vulkan/tu_cs.c rename to src/freedreno/vulkan/tu_cs.cc diff --git a/src/freedreno/vulkan/tu_cs_breadcrumbs.c b/src/freedreno/vulkan/tu_cs_breadcrumbs.cc similarity index 100% rename from src/freedreno/vulkan/tu_cs_breadcrumbs.c rename to src/freedreno/vulkan/tu_cs_breadcrumbs.cc diff --git a/src/freedreno/vulkan/tu_descriptor_set.c b/src/freedreno/vulkan/tu_descriptor_set.cc similarity index 100% rename from src/freedreno/vulkan/tu_descriptor_set.c rename to src/freedreno/vulkan/tu_descriptor_set.cc diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.cc similarity index 100% rename from src/freedreno/vulkan/tu_device.c rename to src/freedreno/vulkan/tu_device.cc diff --git a/src/freedreno/vulkan/tu_dynamic_rendering.c b/src/freedreno/vulkan/tu_dynamic_rendering.cc similarity index 100% rename from src/freedreno/vulkan/tu_dynamic_rendering.c rename to src/freedreno/vulkan/tu_dynamic_rendering.cc diff --git a/src/freedreno/vulkan/tu_formats.c b/src/freedreno/vulkan/tu_formats.cc similarity index 100% rename from src/freedreno/vulkan/tu_formats.c rename to src/freedreno/vulkan/tu_formats.cc diff --git a/src/freedreno/vulkan/tu_image.c b/src/freedreno/vulkan/tu_image.cc similarity index 100% rename from src/freedreno/vulkan/tu_image.c rename to src/freedreno/vulkan/tu_image.cc diff --git a/src/freedreno/vulkan/tu_knl.c b/src/freedreno/vulkan/tu_knl.cc similarity index 100% rename from src/freedreno/vulkan/tu_knl.c rename to src/freedreno/vulkan/tu_knl.cc diff --git a/src/freedreno/vulkan/tu_knl_drm_msm.c b/src/freedreno/vulkan/tu_knl_drm_msm.cc similarity index 100% rename from src/freedreno/vulkan/tu_knl_drm_msm.c rename to src/freedreno/vulkan/tu_knl_drm_msm.cc diff --git a/src/freedreno/vulkan/tu_knl_kgsl.c b/src/freedreno/vulkan/tu_knl_kgsl.cc similarity index 100% rename from src/freedreno/vulkan/tu_knl_kgsl.c rename to src/freedreno/vulkan/tu_knl_kgsl.cc diff --git a/src/freedreno/vulkan/tu_lrz.c b/src/freedreno/vulkan/tu_lrz.cc similarity index 100% rename from src/freedreno/vulkan/tu_lrz.c rename to src/freedreno/vulkan/tu_lrz.cc diff --git a/src/freedreno/vulkan/tu_nir_lower_multiview.c b/src/freedreno/vulkan/tu_nir_lower_multiview.cc similarity index 100% rename from src/freedreno/vulkan/tu_nir_lower_multiview.c rename to src/freedreno/vulkan/tu_nir_lower_multiview.cc diff --git a/src/freedreno/vulkan/tu_pass.c b/src/freedreno/vulkan/tu_pass.cc similarity index 100% rename from src/freedreno/vulkan/tu_pass.c rename to src/freedreno/vulkan/tu_pass.cc diff --git a/src/freedreno/vulkan/tu_perfetto.cc b/src/freedreno/vulkan/tu_perfetto.cc index c0772f2..45df6f9 100644 --- a/src/freedreno/vulkan/tu_perfetto.cc +++ b/src/freedreno/vulkan/tu_perfetto.cc @@ -15,10 +15,6 @@ /* we can't include tu_knl.h and tu_device.h */ -#ifdef __cplusplus -extern "C" { -#endif - int tu_device_get_gpu_timestamp(struct tu_device *dev, uint64_t *ts); @@ -31,10 +27,6 @@ tu_device_ticks_to_ns(struct tu_device *dev, uint64_t ts); struct u_trace_context * tu_device_get_u_trace(struct tu_device *device); -#ifdef __cplusplus -} -#endif - /** * Queue-id's */ diff --git a/src/freedreno/vulkan/tu_perfetto_util.c b/src/freedreno/vulkan/tu_perfetto_util.cc similarity index 100% rename from src/freedreno/vulkan/tu_perfetto_util.c rename to src/freedreno/vulkan/tu_perfetto_util.cc diff --git a/src/freedreno/vulkan/tu_pipeline.c b/src/freedreno/vulkan/tu_pipeline.cc similarity index 100% rename from src/freedreno/vulkan/tu_pipeline.c rename to src/freedreno/vulkan/tu_pipeline.cc diff --git a/src/freedreno/vulkan/tu_query.c b/src/freedreno/vulkan/tu_query.cc similarity index 100% rename from src/freedreno/vulkan/tu_query.c rename to src/freedreno/vulkan/tu_query.cc diff --git a/src/freedreno/vulkan/tu_shader.c b/src/freedreno/vulkan/tu_shader.cc similarity index 100% rename from src/freedreno/vulkan/tu_shader.c rename to src/freedreno/vulkan/tu_shader.cc diff --git a/src/freedreno/vulkan/tu_suballoc.c b/src/freedreno/vulkan/tu_suballoc.cc similarity index 100% rename from src/freedreno/vulkan/tu_suballoc.c rename to src/freedreno/vulkan/tu_suballoc.cc diff --git a/src/freedreno/vulkan/tu_util.c b/src/freedreno/vulkan/tu_util.cc similarity index 100% rename from src/freedreno/vulkan/tu_util.c rename to src/freedreno/vulkan/tu_util.cc diff --git a/src/freedreno/vulkan/tu_wsi.c b/src/freedreno/vulkan/tu_wsi.cc similarity index 100% rename from src/freedreno/vulkan/tu_wsi.c rename to src/freedreno/vulkan/tu_wsi.cc -- 2.7.4