On 07.02.21 21:12, Richard Henderson wrote: > On 2/7/21 11:52 AM, Peter Maydell wrote: >> On Sun, 7 Feb 2021 at 17:41, Richard Henderson >> <richard.hender...@linaro.org> wrote: >>> >>> On 2/7/21 8:25 AM, Stefan Weil wrote: >>>>> +#include "qemu-common.h" >>>>> +#include "tcg/tcg.h" /* MAX_OPC_PARAM_IARGS */ >>>>> +#include "exec/cpu_ldst.h" >>>>> +#include "tcg/tcg-op.h" >>>>> +#include "qemu/compiler.h" >>>>> +#include <ffi.h> >>>>> + >>>> >>>> >>>> ffi.h is not found on macOS with Homebrew. >>>> >>>> This can be fixed by using pkg-config to find the right compiler (and maybe >>>> also linker) flags: >>>> >>>> % pkg-config --cflags libffi >>>> -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/ffi >>>> % pkg-config --libs libffi >>>> -lffi >>> >>> >>> Which is exactly what I do in the previous patch: >>> >>> >>>> +++ b/meson.build >>>> @@ -1901,7 +1901,14 @@ specific_ss.add(when: 'CONFIG_TCG', if_true: files( >>>> 'tcg/tcg-op.c', >>>> 'tcg/tcg.c', >>>> )) >>>> -specific_ss.add(when: 'CONFIG_TCG_INTERPRETER', if_true: >>>> files('tcg/tci.c')) >>>> + >>>> +if get_option('tcg_interpreter') >>>> + libffi = dependency('libffi', version: '>=3.0', >>>> + static: enable_static, method: 'pkg-config', >>>> + required: true) >>>> + specific_ss.add(libffi) >>>> + specific_ss.add(files('tcg/tci.c')) >>>> +endif >>> >>> Did you need a PKG_CONFIG_LIBDIR set for homebrew? >> >> Is this the "meson doesn't actually add the cflags everywhere it should" >> bug again ? > > I guess so. I realized after sending this reply that PKG_CONFIG_LIBDIR can't > be the answer, since the original configure should have failed if pkg-config > didn't find ffi. > > Was there a resolution to said meson bug?
Meanwhile I noticed an additional detail: There exist two different pkg-config configurations for libffi on Homebrew: % pkg-config --cflags libffi -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/ffi % export PKG_CONFIG_PATH="/opt/homebrew/opt/libffi/lib/pkgconfig" % pkg-config --cflags libffi -I/opt/homebrew/Cellar/libffi/3.3_2/include By default it points to a system directory which does not exist at all on my Mac, so that will never work. With the right PKG_CONFIG_PATH a correct include directory is set, and the latest rebased tci-next branch now works for me with a compiler warning: /opt/homebrew/Cellar/libffi/3.3_2/include/ffi.h:441:5: warning: 'FFI_GO_CLOSURES' is not defined, evaluates to 0 [-Wundef] Stefan