From nobody Tue Nov 4 00:56:02 2025 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 1505152870391254.54001933951656; Mon, 11 Sep 2017 11:01:10 -0700 (PDT) Received: from localhost ([::1]:59565 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1drT1B-0002jC-Fq for importer@patchew.org; Mon, 11 Sep 2017 14:01:09 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41945) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1drSWA-00075t-QJ for qemu-devel@nongnu.org; Mon, 11 Sep 2017 13:29:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1drSW9-000625-NV for qemu-devel@nongnu.org; Mon, 11 Sep 2017 13:29:06 -0400 Received: from mout.gmx.net ([212.227.15.19]:55125) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1drSW5-0005wk-0K; Mon, 11 Sep 2017 13:29:01 -0400 Received: from localhost.localdomain ([185.58.161.191]) by mail.gmx.com (mrgmx003 [212.227.17.184]) with ESMTPSA (Nemesis) id 0LiDrv-1d4hIo1rSV-00nOSM; Mon, 11 Sep 2017 19:28:57 +0200 From: Kamil Rytarowski To: qemu-trivial@nongnu.org Date: Mon, 11 Sep 2017 19:16:39 +0200 Message-Id: <20170911171639.22005-1-n54@gmx.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20170903164952.26760-1-n54@gmx.com> References: <20170903164952.26760-1-n54@gmx.com> X-Provags-ID: V03:K0:tFQ8LyO7mIgWyEwQVsNmdpbsXcj4jSrSiWlbLtb38HYOGhH+Fdk aZpFTSPUsjBp51VeprKf6n0fN6iX5jm1k8JbiAGimJI+/aCSzQ/WhByuDU7ks6ztY76qb/k rS40NSgY5xnlt07mSqk1f89MgcvSghazVMfyYYka8dWsvWTFqZEIIHJzFk0hS1FKtcXS17d ddP2KbeHqvGIyTR8sGNEA== X-UI-Out-Filterresults: notjunk:1;V01:K0:IF+4N/kQpgc=:B6+mW7IdvT/uxKvsU7ShT7 TYrNELMFPXDs0HSTgdGW+Nq+XEM+djQgiAdCa+ARpxI5eEy87NOtmHE9wt5FnZhhalTWbM1iE zTrT9WASlQstn5a42PwcpsSPdJ2KweULNs1FWTMbJbp4nf4vhFdqSSkpYRffRyex+UcfEbULw LbhBvGZmccEQgoVTJKSaejGXvFCcyLLN0GaSwCeGF86pi0bRZdDACy697aFChK/v3jdVIjR4Y Xkf8dREb0r9Dcg5InGbClnkGxBG87rqV1pEmOJYWZzFwtoAJ6IkP8rMafG8AT5SzSMEo509VC JDI5TD4HpydzIHoZe7Pr5jUJ2fVvQ6HcH9pI4rdBg4DsKeIaQM460t0naPFypfj3ODcHxAtxg uvs9KDDiYjED7nLQmD3l5zw4uCtmBEjEDIY83YvNRq/lD9t0UsB0mwtCruGDRVNyqRrCaPc/y GZnI3CuMouus3Ct+YJJSwJyTIQ6DzznoryM/y4FX15ZSiTvGX9rgCZa4XUyOjrxiWkZzy95/e iefjCp7UjFP0T4BBerDX70upSkWVavZMXp1l6qISuQNX/0cDskH90GJSuShusKY80RmS9W/yR stROMGTadk6OEmEs2xrHi2mUtZxMQuBOTJoa7L6W4Sg8UwMeWyrmCguhW49plFE+YBSpFSlsg LPZfjvUW8lErHwNV7RShniMyouShFuIvpZDCbU7Qmzp4XX6tZDTv8/qs4nX7YytNKvnO52bQP m6HH83Mkjo40WbWQmzVpNcPczUEpcUT1kvQBjm84EpQUukNy8tg75864iGxsLtjzQyR5SZqXE DfUImB4Qa9Om/9GpvmUOXx1D42A7w== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.15.19 Subject: [Qemu-devel] [PATCH v2] Discover openpty(3) dynamically in configure 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: Kamil Rytarowski , peter.maydell@linaro.org, jperkin@joyent.com, qemu-devel@nongnu.org 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" openpty(3) might: - exists in libc (OSX) - exists in libutil (GNU, BSD) - does not exist (SmartOS) Add a function to discover this function in the ./configure script. Add new config types: CONFIG_OPENPTY_LIBC and CONFIG_OPENPTY_LIBUTIL, respectively defined when openpts(3) links with -lc or -lutil. Replace the condition adding -lutil in tests (for openpty(3)) from CONFIG_POSIX to CONFIG_OPENPTY_LIBUTIL. Replace the fallback openpty(3) impelementation comment from Solaris to SmartOS. Solaris is EOL'ed and it's confirmed that it does not work on Oracle Solaris. --- configure | 25 +++++++++++++++++++++++++ tests/Makefile.include | 2 +- util/qemu-openpty.c | 4 ++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/configure b/configure index fd7e3a5e81..a614adcd29 100755 --- a/configure +++ b/configure @@ -3819,6 +3819,25 @@ EOF fi fi =20 +########################################## +# openpty probe +openpty_libc=3Dno +openpty_libutil=3Dno +cat > $TMPC << EOF +extern int openpty(int *amaster, int *aslave, char *name, void *termp, voi= d *winp); + +int main(void) +{ + int master_fd, slave_fd; + return openpty(&master_fd, &slave_fd, 0, 0, 0) =3D=3D 0; +} +EOF +if compile_prog "" "" ; then + openpty_libc=3Dyes +elif compile_prog "" "-lutil" ; then + openpty_libutil=3Dyes +fi + ########################################## # signalfd probe signalfd=3D"no" @@ -5788,6 +5807,12 @@ fi if test "$fdt" =3D "yes" ; then echo "CONFIG_FDT=3Dy" >> $config_host_mak fi +if test "$openpty_libc" =3D "yes" ; then + echo "CONFIG_OPENPTY_LIBC=3Dy" >> $config_host_mak +fi +if test "$openpty_libutil" =3D "yes" ; then + echo "CONFIG_OPENPTY_LIBUTIL=3Dy" >> $config_host_mak +fi if test "$signalfd" =3D "yes" ; then echo "CONFIG_SIGNALFD=3Dy" >> $config_host_mak fi diff --git a/tests/Makefile.include b/tests/Makefile.include index fae5715e9c..e7e0bc2724 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -814,7 +814,7 @@ tests/migration/initrd-stress.img: tests/migration/stre= ss$(EXESUF) rm $(INITRD_WORK_DIR)/init rmdir $(INITRD_WORK_DIR) =20 -ifeq ($(CONFIG_POSIX),y) +ifeq ($(CONFIG_OPENPTY_LIBUTIL),y) LIBS +=3D -lutil endif =20 diff --git a/util/qemu-openpty.c b/util/qemu-openpty.c index 2e8b43bdf5..62c87e5563 100644 --- a/util/qemu-openpty.c +++ b/util/qemu-openpty.c @@ -51,8 +51,8 @@ # include #endif =20 -#ifdef __sun__ -/* Once Solaris has openpty(), this is going to be removed. */ +/* The fallback implementation is needed at least on SmartOS. */ +#if !defined(CONFIG_OPENPTY_LIBC) && !defined(CONFIG_OPENPTY_LIBUTIL) static int openpty(int *amaster, int *aslave, char *name, struct termios *termp, struct winsize *winp) { --=20 2.14.1