From nobody Mon Feb 9 01:21:55 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 15182499325231018.1374629471492; Sat, 10 Feb 2018 00:05:32 -0800 (PST) Received: from localhost ([::1]:37478 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekQA4-0001aw-Ax for importer@patchew.org; Sat, 10 Feb 2018 03:05:28 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51214) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekQ7o-00006C-AV for qemu-devel@nongnu.org; Sat, 10 Feb 2018 03:03:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekQ7k-0000Vm-EL for qemu-devel@nongnu.org; Sat, 10 Feb 2018 03:03:08 -0500 Received: from isrv.corpit.ru ([86.62.121.231]:55179) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekQ7k-0000Uz-5z; Sat, 10 Feb 2018 03:03:04 -0500 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 7DC7040C57; Sat, 10 Feb 2018 11:03:03 +0300 (MSK) Received: from tls.msk.ru (mjt.vpn.tls.msk.ru [192.168.177.99]) by tsrv.corpit.ru (Postfix) with SMTP id 38B187AA; Sat, 10 Feb 2018 10:55:16 +0300 (MSK) Received: (nullmailer pid 22809 invoked by uid 1000); Sat, 10 Feb 2018 07:55:14 -0000 From: Michael Tokarev To: qemu-devel@nongnu.org Date: Sat, 10 Feb 2018 10:55:06 +0300 Message-Id: <9bc5a7193fb422ee53187601eba577ee5d195522.1518249254.git.mjt@msgid.tls.msk.ru> X-Mailer: git-send-email 2.11.0 In-Reply-To: References: In-Reply-To: References: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 86.62.121.231 Subject: [Qemu-devel] [PULL 11/17] oslib-posix: check for posix_memalign in configure script X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-trivial@nongnu.org, Michael Tokarev , Andreas Gustafsson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Andreas Gustafsson Check for the presence of posix_memalign() in the configure script, not using "defined(_POSIX_C_SOURCE) && !defined(__sun__)". This lets qemu use posix_memalign() on NetBSD versions that have it, instead of falling back to valloc() which is wasteful when the required alignment is smaller than a page. Signed-off-by: Andreas Gustafsson Signed-off-by: Michael Tokarev Reviewed-by: Kamil Rytarowski Reviewed-by: Peter Maydell --- configure | 19 +++++++++++++++++++ util/oslib-posix.c | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/configure b/configure index c1bbf17559..fe9eea9218 100755 --- a/configure +++ b/configure @@ -4659,6 +4659,21 @@ if compile_prog "" "" ; then fi =20 ########################################## +# check if we have posix_memalign() + +posix_memalign=3Dno +cat > $TMPC << EOF +#include +int main(void) { + void *p; + return posix_memalign(&p, 8, 8); +} +EOF +if compile_prog "" "" ; then + posix_memalign=3Dyes +fi + +########################################## # check if we have posix_syslog =20 posix_syslog=3Dno @@ -5746,6 +5761,7 @@ echo "preadv support $preadv" echo "fdatasync $fdatasync" echo "madvise $madvise" echo "posix_madvise $posix_madvise" +echo "posix_memalign $posix_memalign" echo "libcap-ng support $cap_ng" echo "vhost-net support $vhost_net" echo "vhost-scsi support $vhost_scsi" @@ -6232,6 +6248,9 @@ fi if test "$posix_madvise" =3D "yes" ; then echo "CONFIG_POSIX_MADVISE=3Dy" >> $config_host_mak fi +if test "$posix_memalign" =3D "yes" ; then + echo "CONFIG_POSIX_MEMALIGN=3Dy" >> $config_host_mak +fi =20 if test "$spice" =3D "yes" ; then echo "CONFIG_SPICE=3Dy" >> $config_host_mak diff --git a/util/oslib-posix.c b/util/oslib-posix.c index 77369c92ce..4655bc1f89 100644 --- a/util/oslib-posix.c +++ b/util/oslib-posix.c @@ -105,7 +105,7 @@ void *qemu_try_memalign(size_t alignment, size_t size) alignment =3D sizeof(void*); } =20 -#if defined(_POSIX_C_SOURCE) && !defined(__sun__) +#if defined(CONFIG_POSIX_MEMALIGN) int ret; ret =3D posix_memalign(&ptr, alignment, size); if (ret !=3D 0) { --=20 2.11.0