qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Joelle van Dyne <j@getutm.app>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: Kevin Wolf <kwolf@redhat.com>, Max Reitz <mreitz@redhat.com>,
	Joelle van Dyne <j@getutm.app>,
	"open list:raw" <qemu-block@nongnu.org>,
	QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [PATCH v8 09/11] block: check availablity for preadv/pwritev on mac
Date: Sat, 23 Jan 2021 12:00:16 -0800	[thread overview]
Message-ID: <CA+E+eSB6JrEzN94DaehKByG2WrZ7NLsDBC4FrKSwZ_YyoLrjMQ@mail.gmail.com> (raw)
In-Reply-To: <CAFEAcA-nxjUifZ8yb85KGAFnwwa10ZAdemxyH5YnetNLhVt8cA@mail.gmail.com>

The problem here is that we would like to compile on macOS 11 and be
able to run the built binaries on macOS 10.15 or lower. Without the
runtime checks, you'll have a crash when calling preadv/pwritev.

-j

On Sat, Jan 23, 2021 at 5:53 AM Peter Maydell <peter.maydell@linaro.org> wrote:
>
> 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


  reply	other threads:[~2021-01-23 20:02 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-23  4:56 [PATCH v8 00/11] iOS and Apple Silicon host support Joelle van Dyne
2021-01-23  4:56 ` [PATCH v8 01/11] block: feature detection for host block support Joelle van Dyne
2021-01-23  4:56 ` [PATCH v8 02/11] configure: cross-compiling with empty cross_prefix Joelle van Dyne
2021-01-23  4:56 ` [PATCH v8 03/11] configure: check for sys/disk.h Joelle van Dyne
2021-01-23  4:56 ` [PATCH v8 04/11] slirp: feature detection for smbd Joelle van Dyne
2021-01-23  4:56 ` [PATCH v8 05/11] osdep: build with non-working system() function Joelle van Dyne
2021-01-23  4:56 ` [PATCH v8 06/11] darwin: remove redundant dependency declaration Joelle van Dyne
2021-01-23  4:56 ` [PATCH v8 07/11] darwin: fix cross-compiling for Darwin Joelle van Dyne
2021-01-23  4:56 ` [PATCH v8 08/11] configure: cross compile should use x86_64 cpu_family Joelle van Dyne
2021-01-23  4:56 ` [PATCH v8 09/11] block: check availablity for preadv/pwritev on mac Joelle van Dyne
2021-01-23 13:52   ` Peter Maydell
2021-01-23 20:00     ` Joelle van Dyne [this message]
2021-01-23 20:04       ` Joelle van Dyne
2021-01-23  4:56 ` [PATCH v8 10/11] darwin: detect CoreAudio for build Joelle van Dyne
2021-01-23  4:56 ` [PATCH v8 11/11] darwin: remove 64-bit build detection on 32-bit OS Joelle van Dyne

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CA+E+eSB6JrEzN94DaehKByG2WrZ7NLsDBC4FrKSwZ_YyoLrjMQ@mail.gmail.com \
    --to=j@getutm.app \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).