diff --git a/glib/adbc-arrow-glib/meson.build b/glib/adbc-arrow-glib/meson.build index 38953d909c..71d2c5c0d0 100644 --- a/glib/adbc-arrow-glib/meson.build +++ b/glib/adbc-arrow-glib/meson.build @@ -81,7 +81,7 @@ adbc_arrow_glib_gir = \ libadbc_arrow_glib, dependencies: [declare_dependency(sources: adbc_glib_gir), arrow_glib], export_packages: 'adbc-arrow-glib', - extra_args: ['--warn-all'], + extra_args: gir_scanner_extra_args, fatal_warnings: gi_fatal_warnings, header: 'adbc-arrow-glib/adbc-arrow-glib.h', identifier_prefix: 'GADBCArrow', diff --git a/glib/adbc-glib/meson.build b/glib/adbc-glib/meson.build index c59e15a9a9..ae6cfb4b89 100644 --- a/glib/adbc-glib/meson.build +++ b/glib/adbc-glib/meson.build @@ -91,7 +91,7 @@ pkgconfig.generate( adbc_glib_gir = gnome.generate_gir( libadbc_glib, export_packages: 'adbc-glib', - extra_args: ['--warn-all'], + extra_args: gir_scanner_extra_args, fatal_warnings: gi_fatal_warnings, header: 'adbc-glib/adbc-glib.h', identifier_prefix: 'GADBC', diff --git a/glib/meson.build b/glib/meson.build index 5b1db07b50..001379781c 100644 --- a/glib/meson.build +++ b/glib/meson.build @@ -57,10 +57,10 @@ if adbc_build_dir != '' adbc_build_dir = meson.source_root() / adbc_build_dir endif +c_compiler = meson.get_compiler('c') if adbc_build_dir == '' adbc_driver_manager = dependency('adbc-driver-manager') else - c_compiler = meson.get_compiler('c') adbc_driver_manager = c_compiler.find_library( 'adbc_driver_manager', dirs: [adbc_build_dir], @@ -76,6 +76,18 @@ if generate_vapi add_languages('vala') endif +# Specify -fPIE explicitly for g-ir-scanner because PIE is disabled by +# default on AlmaLinux 9 RPM build by +# LDFLAGS="-specs=/usr/lib/rpm/redhat/redhat-hardened-ld". +gir_scanner_cflags = c_compiler.get_supported_arguments('-fPIE') +if gir_scanner_cflags.length() == 0 + gir_scanner_extra_args = [] +else + gir_scanner_extra_args = ['--cflags-begin'] + gir_scanner_cflags + [ + '--cflags-end', + ] +endif + subdir('adbc-glib') arrow_glib = dependency('arrow-glib', required: generate_vapi) if arrow_glib.found()