From nobody Fri May 17 09:38:12 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1695390981; cv=none; d=zohomail.com; s=zohoarc; b=QOXUkuPplODmzesrdozXdYLjot6tXWwVscLQZDqefx9Btmn5uw2dfz5COZk5BVWl+dYaxXZ9Tbf9myDm/TdMx1aB61qchp/WfSoeoduM60G86BRi9Fuq1PZUfF8otbE5KVb1n6EdNhbGNsfQfW+pgM7NcNCNSSPM9bv4uslsdbg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1695390981; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ALAbXdEx2Tvf92hxHdWqx0ajT7YAbZJH8GA8oJxTWVk=; b=A8YFXSiLGUkUkqHEmoi1kY5MEpSsfwl04STd06tCQlLduCI1zVellB9R+7u/ieZbkixQl+PXA1isiytwDunMCu/eaZPrKwZamvN8YDCnidmMxaIHgRnNcTdLiZITjTR826e+9QNOEvJLhxLVh4/5Fblq2lPtZGvCr0dU1xD9tds= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1695390981417154.20102959616077; Fri, 22 Sep 2023 06:56:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qjgdb-0003yM-8P; Fri, 22 Sep 2023 09:56:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjgdZ-0003tF-R8 for qemu-devel@nongnu.org; Fri, 22 Sep 2023 09:56:05 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjgdY-000572-HQ for qemu-devel@nongnu.org; Fri, 22 Sep 2023 09:56:05 -0400 Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-626-KbKYt5CcPAq-vJ3NMO6A_g-1; Fri, 22 Sep 2023 09:55:59 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C38763C100AF; Fri, 22 Sep 2023 13:55:58 +0000 (UTC) Received: from toolbox.redhat.com (unknown [10.42.28.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8F52E40C6EBF; Fri, 22 Sep 2023 13:55:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1695390963; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ALAbXdEx2Tvf92hxHdWqx0ajT7YAbZJH8GA8oJxTWVk=; b=QPFFeRPy8tx2Lc3dTQIyg2IYSnrUUfaJExZMKtSNoxc1mQV+VbGEbTWbQM/Ni4eSuGrFct DRKe5rgKRtpnuBTdZCUZ4vEygk0fY2oNN6yKe6ztVfL8W18uEGluaKcXltLrwwhZj0N8MJ 9eJsEE6XZDdcRQWGC7gwYv1aYFP4B3I= X-MC-Unique: KbKYt5CcPAq-vJ3NMO6A_g-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Stefan Hajnoczi , Thomas Huth , =?UTF-8?q?Alex=20Benn=C3=A9e?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Paolo Bonzini , Kevin Wolf Subject: [PATCH 1/2] configure: support passthrough of -Dxxx args to meson Date: Fri, 22 Sep 2023 14:55:54 +0100 Message-ID: <20230922135555.241809-2-berrange@redhat.com> In-Reply-To: <20230922135555.241809-1-berrange@redhat.com> References: <20230922135555.241809-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1695390981723100002 This can be useful for setting some meson global options, such as the optimization level or debug state, which don't have an analogous option explicitly defined in QEMU's configure wrapper script. Signed-off-by: Daniel P. Berrang=C3=A9 --- configure | 2 ++ 1 file changed, 2 insertions(+) diff --git a/configure b/configure index e08127045d..cbd7e03e9f 100755 --- a/configure +++ b/configure @@ -931,6 +931,8 @@ cat << EOF bsd-user all BSD usermode emulation targets pie Position Independent Executables =20 + -Dmesonoptname=3Dval passthrough option to meson unmodified + NOTE: The object files are built at the place where configure is launched EOF exit 0 --=20 2.41.0 From nobody Fri May 17 09:38:12 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1695390975; cv=none; d=zohomail.com; s=zohoarc; b=WBmbG779kcgOhGksvwGY27CLAaKbxLbv3Ar6UD2xD+CzkFDW9RjXAOYwuIP23z2Ou2w1q4Ydf3Vv6HU758sUoouPzNThk/ovJg4SW/tus23QFLlyQQCLFolJEOXS71DALqdhxRZ6frpEnrlxz4qC46sodeLV28RBGt41a7sDeUA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1695390975; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Kh6znVjqbbgha2BgBXdOLwLuTvWFz0PP3wJpgGCaos8=; b=Bd2pekhQVy8oe4bRDID3GftPemQKwfeh48LQ9diJ4fWerKvOhsddZdcP2d2HkrlJ5+EcR7LIUapIdg91+8mq2KRchIJBI5flY9bTX84VPHEXfL6QTq6OS0oOvAJw3XTy33UNs0fzqCGSx7RdtULXNl9NXVX3Be1fYdc7P1WQgEQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1695390975158635.8944029515391; Fri, 22 Sep 2023 06:56:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qjgdf-000429-VZ; Fri, 22 Sep 2023 09:56:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjgde-00041j-4P for qemu-devel@nongnu.org; Fri, 22 Sep 2023 09:56:10 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qjgdc-00057Y-Ik for qemu-devel@nongnu.org; Fri, 22 Sep 2023 09:56:09 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-692-T5f4sQ9gMvyCXWm9EiQ3fw-1; Fri, 22 Sep 2023 09:56:01 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 3253E811E8F; Fri, 22 Sep 2023 13:56:01 +0000 (UTC) Received: from toolbox.redhat.com (unknown [10.42.28.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 000CE40C6EC1; Fri, 22 Sep 2023 13:55:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1695390967; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Kh6znVjqbbgha2BgBXdOLwLuTvWFz0PP3wJpgGCaos8=; b=LnoILxcXZLGnMQTTdhYbVYjrQuxOCM3o3eJHF6BBfUo1Shb+mpz8tA6vVTnv1aTNw97TVv M8A0KDOI2DduQyxRW2MLpVGi6iyp5TsUk3CHZ5hGyZjEuWcg2JyjTZJy6EBa6z+OdaEXZX xlTcuP5vUGoeGlfb0XHQTUpS1JKnTtk= X-MC-Unique: T5f4sQ9gMvyCXWm9EiQ3fw-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Stefan Hajnoczi , Thomas Huth , =?UTF-8?q?Alex=20Benn=C3=A9e?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Paolo Bonzini , Kevin Wolf Subject: [PATCH 2/2] osdep: set _FORTIFY_SOURCE=2 when optimization is enabled Date: Fri, 22 Sep 2023 14:55:55 +0100 Message-ID: <20230922135555.241809-3-berrange@redhat.com> In-Reply-To: <20230922135555.241809-1-berrange@redhat.com> References: <20230922135555.241809-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1695390977131100003 Currently we set _FORTIFY_SOURCE=3D2 as a compiler argument when the meson 'optimization' setting is non-zero, the compiler is GCC and the target is Linux. While the default QEMU optimization level is 2, user could override this by setting CFLAGS=3D"-O0" or --extra-cflags=3D"-O0" when running configure and this won't be reflected in the meson 'optimization' setting. As a result we try to enable _FORTIFY_SOURCE=3D2 and then the user gets compile errors as it only works with optimization. Rather than trying to improve detection in meson, it is simpler to just check the __OPTIMIZE__ define from osdep.h. The comment about being incompatible with clang appears to be outdated, as compilation works fine without excluding clang. In the coroutine code we must set _FORTIFY_SOURCE=3D0 to stop the logic in osdep.h then enabling it. Signed-off-by: Daniel P. Berrang=C3=A9 --- include/qemu/osdep.h | 4 ++++ meson.build | 10 ---------- util/coroutine-sigaltstack.c | 4 ++-- util/coroutine-ucontext.c | 4 ++-- 4 files changed, 8 insertions(+), 14 deletions(-) diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h index 2897720fac..b317649d13 100644 --- a/include/qemu/osdep.h +++ b/include/qemu/osdep.h @@ -27,6 +27,10 @@ #ifndef QEMU_OSDEP_H #define QEMU_OSDEP_H =20 +#if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__ && de= fined __linux__ +# define _FORTIFY_SOURCE 2 +#endif + #include "config-host.h" #ifdef NEED_CPU_H #include CONFIG_TARGET diff --git a/meson.build b/meson.build index f426861d90..4947ae48b3 100644 --- a/meson.build +++ b/meson.build @@ -479,16 +479,6 @@ if 'cpp' in all_languages qemu_cxxflags =3D ['-D__STDC_LIMIT_MACROS', '-D__STDC_CONSTANT_MACROS', = '-D__STDC_FORMAT_MACROS'] + qemu_cflags endif =20 -# clang does not support glibc + FORTIFY_SOURCE (is it still true?) -if get_option('optimization') !=3D '0' and targetos =3D=3D 'linux' - if cc.get_id() =3D=3D 'gcc' - qemu_cflags +=3D ['-U_FORTIFY_SOURCE', '-D_FORTIFY_SOURCE=3D2'] - endif - if 'cpp' in all_languages and cxx.get_id() =3D=3D 'gcc' - qemu_cxxflags +=3D ['-U_FORTIFY_SOURCE', '-D_FORTIFY_SOURCE=3D2'] - endif -endif - add_project_arguments(qemu_cflags, native: false, language: 'c') add_project_arguments(cc.get_supported_arguments(warn_flags), native: fals= e, language: 'c') if 'cpp' in all_languages diff --git a/util/coroutine-sigaltstack.c b/util/coroutine-sigaltstack.c index e2690c5f41..037d6416c4 100644 --- a/util/coroutine-sigaltstack.c +++ b/util/coroutine-sigaltstack.c @@ -22,9 +22,9 @@ */ =20 /* XXX Is there a nicer way to disable glibc's stack check for longjmp? */ -#ifdef _FORTIFY_SOURCE #undef _FORTIFY_SOURCE -#endif +#define _FORTIFY_SOURCE 0 + #include "qemu/osdep.h" #include #include "qemu/coroutine_int.h" diff --git a/util/coroutine-ucontext.c b/util/coroutine-ucontext.c index ddc98fb4f8..7b304c79d9 100644 --- a/util/coroutine-ucontext.c +++ b/util/coroutine-ucontext.c @@ -19,9 +19,9 @@ */ =20 /* XXX Is there a nicer way to disable glibc's stack check for longjmp? */ -#ifdef _FORTIFY_SOURCE #undef _FORTIFY_SOURCE -#endif +#define _FORTIFY_SOURCE 0 + #include "qemu/osdep.h" #include #include "qemu/coroutine_int.h" --=20 2.41.0