Message ID | 20220226180723.1706285-6-peter.maydell@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | Cleanup of qemu_oom_check() and qemu_memalign() | expand |
On 2/26/22 08:07, Peter Maydell wrote: > Currently we incorrectly think that posix_memalign() exists on > Windows. This is because of a combination of: > > * the msys2/mingw toolchain/libc claim to have a > __builtin_posix_memalign when there isn't a builtin of that name > * meson will assume that if you have a __builtin_foo that > counts for has_function('foo') > > Specifying a specific include file via prefix: causes meson to not > treat builtins as sufficient and actually look for the function > itself; see this meson pull request which added that as the official > way to get the right answer: > https://github.com/mesonbuild/meson/pull/1150 > > Currently this misdectection doesn't cause problems because we only > use CONFIG_POSIX_MEMALIGN in oslib-posix.c; however that will change > in a following commit. > > Signed-off-by: Peter Maydell<peter.maydell@linaro.org> > --- > meson.build | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
diff --git a/meson.build b/meson.build index 8df40bfac4d..e08de177c87 100644 --- a/meson.build +++ b/meson.build @@ -1606,7 +1606,9 @@ config_host_data.set('CONFIG_CLOCK_ADJTIME', cc.has_function('clock_adjtime')) config_host_data.set('CONFIG_DUP3', cc.has_function('dup3')) config_host_data.set('CONFIG_FALLOCATE', cc.has_function('fallocate')) config_host_data.set('CONFIG_POSIX_FALLOCATE', cc.has_function('posix_fallocate')) -config_host_data.set('CONFIG_POSIX_MEMALIGN', cc.has_function('posix_memalign')) +# Note that we need to specify prefix: here to avoid incorrectly +# thinking that Windows has posix_memalign() +config_host_data.set('CONFIG_POSIX_MEMALIGN', cc.has_function('posix_memalign', prefix: '#include <stdlib.h>')) config_host_data.set('CONFIG_PPOLL', cc.has_function('ppoll')) config_host_data.set('CONFIG_PREADV', cc.has_function('preadv', prefix: '#include <sys/uio.h>')) config_host_data.set('CONFIG_SEM_TIMEDWAIT', cc.has_function('sem_timedwait', dependencies: threads))
Currently we incorrectly think that posix_memalign() exists on Windows. This is because of a combination of: * the msys2/mingw toolchain/libc claim to have a __builtin_posix_memalign when there isn't a builtin of that name * meson will assume that if you have a __builtin_foo that counts for has_function('foo') Specifying a specific include file via prefix: causes meson to not treat builtins as sufficient and actually look for the function itself; see this meson pull request which added that as the official way to get the right answer: https://github.com/mesonbuild/meson/pull/1150 Currently this misdectection doesn't cause problems because we only use CONFIG_POSIX_MEMALIGN in oslib-posix.c; however that will change in a following commit. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- meson.build | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)