[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v8 09/11] block: check availablity for preadv/pwritev on mac
From: |
Peter Maydell |
Subject: |
Re: [PATCH v8 09/11] block: check availablity for preadv/pwritev on mac |
Date: |
Sat, 23 Jan 2021 13:52:57 +0000 |
On Sat, 23 Jan 2021 at 05:03, Joelle van Dyne <j@getutm.app> wrote:
>
> macOS 11/iOS 14 added preadv/pwritev APIs. Due to weak linking, configure
> will succeed with CONFIG_PREADV even when targeting a lower OS version.
> We therefore need to check at run time if we can actually use these APIs.
If you make the preadv check be a meson.build has_function()
test, I think (but have not tested) that it ought to correctly
fail the link in the targeting-lower-OS-version case, because
meson.build's has_function() implementation for clang
https://github.com/mesonbuild/meson/blob/bad0e95caec4cf49165572df3cf2edc4832280fa/mesonbuild/compilers/mixins/clang.py#L89
adds -Wl,-no-weak-imports when it's building the test-case
exactly to force that linker visibility obeys the minimum
version targets for OSX.
If that works I think it would be neater than delaying the
check to runtime (and it would also mean another test moved
out of configure and into meson.build, which is the direction
we're heading anyway).
thanks
-- PMM
- [PATCH v8 00/11] iOS and Apple Silicon host support, Joelle van Dyne, 2021/01/22
- [PATCH v8 02/11] configure: cross-compiling with empty cross_prefix, Joelle van Dyne, 2021/01/22
- [PATCH v8 01/11] block: feature detection for host block support, Joelle van Dyne, 2021/01/22
- [PATCH v8 04/11] slirp: feature detection for smbd, Joelle van Dyne, 2021/01/22
- [PATCH v8 05/11] osdep: build with non-working system() function, Joelle van Dyne, 2021/01/22
- [PATCH v8 06/11] darwin: remove redundant dependency declaration, Joelle van Dyne, 2021/01/22
- [PATCH v8 03/11] configure: check for sys/disk.h, Joelle van Dyne, 2021/01/22
- [PATCH v8 07/11] darwin: fix cross-compiling for Darwin, Joelle van Dyne, 2021/01/22
- [PATCH v8 09/11] block: check availablity for preadv/pwritev on mac, Joelle van Dyne, 2021/01/22
- Re: [PATCH v8 09/11] block: check availablity for preadv/pwritev on mac,
Peter Maydell <=
- [PATCH v8 10/11] darwin: detect CoreAudio for build, Joelle van Dyne, 2021/01/22
- [PATCH v8 11/11] darwin: remove 64-bit build detection on 32-bit OS, Joelle van Dyne, 2021/01/22
- [PATCH v8 08/11] configure: cross compile should use x86_64 cpu_family, Joelle van Dyne, 2021/01/22