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

Sorry to rephrase this, we would like a single binary to work on both
macOS 10.15 and macOS 11 as well as on both iOS 13 and iOS 14 while
ALSO supporting preadv/pwritev when running on the newer OS.

-j

On Sat, Jan 23, 2021 at 12:00 PM Joelle van Dyne <j@getutm.app> wrote:
>
> 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:06 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
2021-01-23 20:04       ` Joelle van Dyne [this message]
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+eSDktLsq5+4q=BsxPr-zLH9XdSDMcXN12BGd5ABqd_ewCQ@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).