[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls
From: |
Stefan Weil |
Subject: |
Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls |
Date: |
Sun, 7 Feb 2021 22:33:07 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0 |
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.henderson@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
- [PATCH v2 48/93] tcg/tci: Split out tci_args_rrrrrc, (continued)
- [PATCH v2 48/93] tcg/tci: Split out tci_args_rrrrrc, Richard Henderson, 2021/02/03
- [PATCH v2 59/93] tcg/tci: Hoist op_size checking into tci_args_*, Richard Henderson, 2021/02/03
- [PATCH v2 60/93] tcg/tci: Remove tci_disas, Richard Henderson, 2021/02/03
- [PATCH v2 61/93] tcg/tci: Implement the disassembler properly, Richard Henderson, 2021/02/03
- [PATCH v2 62/93] tcg: Build ffi data structures for helpers, Richard Henderson, 2021/02/03
- [PATCH v2 63/93] tcg/tci: Use ffi for calls, Richard Henderson, 2021/02/03
- Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls, Stefan Weil, 2021/02/07
- Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls, Richard Henderson, 2021/02/07
- Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls, Peter Maydell, 2021/02/07
- Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls, Richard Henderson, 2021/02/07
- Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls,
Stefan Weil <=
- Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls, Peter Maydell, 2021/02/08
- Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls, Paolo Bonzini, 2021/02/08
- Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls, Stefan Weil, 2021/02/08
- Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls, Richard Henderson, 2021/02/08
- Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls, Stefan Weil, 2021/02/08
- Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls, Richard Henderson, 2021/02/08
- Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls, Richard Henderson, 2021/02/09
- Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls, Stefan Weil, 2021/02/09
- Re: [PATCH v2 63/93] tcg/tci: Use ffi for calls, Stefan Weil, 2021/02/09
[PATCH v2 65/93] tcg/tci: Move call-return regs to end of tcg_target_reg_alloc_order, Richard Henderson, 2021/02/03