From 03f0ac0a4fb539fb6f06039025e0d0ed9afedb1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Barri=C3=A9?= Date: Tue, 23 Sep 2025 15:20:50 +0200 Subject: [PATCH] Remove warning by not calling have_library after pkg_config pkg_config without the options arguments stores the result in the global values. Calling `pkg_config` and `have_library` causes -lffi to appear twice in the LIBS variable in the resulting Makefile, and causes ld on macOS to emit a warning: $ bundle exec rake compile 2>&1 | grep warning: ld: warning: ignoring duplicate libraries: '-lffi' --- ext/fiddle/extconf.rb | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/ext/fiddle/extconf.rb b/ext/fiddle/extconf.rb index 36e9bd56..f11afa2c 100644 --- a/ext/fiddle/extconf.rb +++ b/ext/fiddle/extconf.rb @@ -64,18 +64,21 @@ def enable_debug_build_flag(flags) dir_config 'libffi' if pkg_config("libffi") + have_libffi = true libffi_version = pkg_config("libffi", "modversion") end - have_ffi_header = false - if have_header(ffi_header = 'ffi.h') - have_ffi_header = true - elsif have_header(ffi_header = 'ffi/ffi.h') - $defs.push('-DUSE_HEADER_HACKS') - have_ffi_header = true - end - if have_ffi_header && (have_library('ffi') || have_library('libffi')) - have_libffi = true + unless have_libffi + have_ffi_header = false + if have_header(ffi_header = 'ffi.h') + have_ffi_header = true + elsif have_header(ffi_header = 'ffi/ffi.h') + $defs.push('-DUSE_HEADER_HACKS') + have_ffi_header = true + end + if have_ffi_header && (have_library('ffi') || have_library('libffi')) + have_libffi = true + end end end