[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v7 05/11] osdep: build with non-working system() function
From: |
Joelle van Dyne |
Subject: |
Re: [PATCH v7 05/11] osdep: build with non-working system() function |
Date: |
Mon, 25 Jan 2021 16:12:45 -0800 |
Here's how meson does cc.has_function
https://github.com/mesonbuild/meson/blob/master/mesonbuild/compilers/mixins/clike.py#L761
Since the compiler error comes from the header file with
__attribute__((availability(ios,unavailable)))
The meson check will always pass.
cc.compiles should work though. Is there a reason why it's not used
instead of all the compile_prog checks in ./configure ?
-j
On Mon, Jan 25, 2021 at 12:04 AM Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> On 23/01/21 14:45, Peter Maydell wrote:
> > On Sat, 23 Jan 2021 at 03:18, Joelle van Dyne <j@getutm.app> wrote:
> > On Fri, Jan 22, 2021 at 3:17 PM Peter Maydell <peter.maydell@linaro.org>
> > wrote:
> >>> Can we do the "does system() exist?" check in meson.build ?
> >
> >>> config_host_data.set('HAVE_SYSTEM_FUNCTION', cc.has_function('system'))
> >
> >> Unfortunately, this doesn't work for iOS, which defines system() but
> >> throws a compile time error if you try to call it.
> >
> > That's odd -- as far as I can tell the meson implementation
> > of has_function() does what I expected it to do, ie
> > "try to compile and link a little program that uses the
> > function, and see if it successfully links":
> > https://github.com/mesonbuild/meson/blob/39ede12aa5b27376341df85bc9ec254913f044bd/mesonbuild/compilers/mixins/clike.py#L791
> > There's some initial cleverness there too, so I guess some
> > part of that must be what's tripping us up.
> >
> > In any case, I think we should be doing new checks in
> > meson.build, not configure. Paolo, what's the right
> > way to do a meson "really compile this program and
> > check it built" test?
>
> One possibility is that you have to specify the #include in the "prefix"
> argument of cc.has_function for the test to behave as the QEMU code?
>
> If cc.has_function doesn't work, there's cc.compiles() and cc.links().
>
> Paolo
>
- Re: [PATCH v7 06/11] darwin: remove redundant dependency declaration, (continued)
- [PATCH v7 07/11] darwin: fix cross-compiling for Darwin, Joelle van Dyne, 2021/01/22
- [PATCH v7 08/11] configure: cross compile should use x86_64 cpu_family, Joelle van Dyne, 2021/01/22
- [PATCH v7 05/11] osdep: build with non-working system() function, Joelle van Dyne, 2021/01/22
- Re: [PATCH v7 05/11] osdep: build with non-working system() function, Peter Maydell, 2021/01/22
- Re: [PATCH v7 05/11] osdep: build with non-working system() function, Peter Maydell, 2021/01/22
- Re: [PATCH v7 05/11] osdep: build with non-working system() function, Joelle van Dyne, 2021/01/22
- Re: [PATCH v7 05/11] osdep: build with non-working system() function, Peter Maydell, 2021/01/23
- Re: [PATCH v7 05/11] osdep: build with non-working system() function, Paolo Bonzini, 2021/01/25
- Re: [PATCH v7 05/11] osdep: build with non-working system() function,
Joelle van Dyne <=
- Re: [PATCH v7 05/11] osdep: build with non-working system() function, Paolo Bonzini, 2021/01/25
- Re: [PATCH v7 05/11] osdep: build with non-working system() function, Peter Maydell, 2021/01/26
[PATCH v7 09/11] block: check availablity for preadv/pwritev on mac, Joelle van Dyne, 2021/01/22
[PATCH v7 11/11] darwin: remove 64-bit build detection on 32-bit OS, Joelle van Dyne, 2021/01/22
[PATCH v7 10/11] darwin: detect CoreAudio for build, Joelle van Dyne, 2021/01/22