On Sat, 23 Jan 2021 at 05:03, Joelle van Dyne <[email protected]> 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
