From nobody Wed May 15 23:53:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1623713584877211.72990461983704; Mon, 14 Jun 2021 16:33:04 -0700 (PDT) Received: from localhost ([::1]:59604 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lsw4l-0000U8-Qe for importer@patchew.org; Mon, 14 Jun 2021 19:33:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51346) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lsw3Y-0006DF-UN for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:31:48 -0400 Received: from mail-pg1-x52c.google.com ([2607:f8b0:4864:20::52c]:42738) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lsw3W-0007hK-R0 for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:31:48 -0400 Received: by mail-pg1-x52c.google.com with SMTP id i34so9923166pgl.9 for ; Mon, 14 Jun 2021 16:31:46 -0700 (PDT) Received: from localhost.localdomain (174-21-70-228.tukw.qwest.net. [174.21.70.228]) by smtp.gmail.com with ESMTPSA id gl13sm488113pjb.5.2021.06.14.16.31.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Jun 2021 16:31:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=N/h1KI91Si6p/Xt+2fYqhyWh23pJ4Rr+Ts/OyuJu290=; b=uUKpY0J2n17ELErljaSGoi+5BvQi9yVZyAgmacNBoV8UqEUunpab1mZYIV3J+/hPUf sx3wWa63irQsFl8kVxkEwuZX178HKGPEXLv/8StKfCnHjOcVrC1VbfPnu5lgfHU50bA6 2DwrlUidDoG+Aqj+L/V3RgXNezxUIlS4VDjNMptDW4P0KGkAlLpThAQcmSVaDeIOGqZW meLZxlNyqzGIkYTtQ698UE1dMcG/oaJcAwkdSEouEYy1iu8DNAH+U6uEDJ2a3goPSzaf xqyXvZKICWoAHg5p7mNBpPV/UppbvL9dWKjRW5BbFIp6EM4vsI1QZUdtmXseZJNes8Gt XVLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=N/h1KI91Si6p/Xt+2fYqhyWh23pJ4Rr+Ts/OyuJu290=; b=VcsjIFNvXfYGsdbexQv71kFm3bQuCyDhLZ1k3fpT1uBaifpL75pOnbSyl1LtkRV6dQ ogKfT4vWDH2UfKr4tf6UuYv5erfqs876yjqm9jpIheWblOl8Q6L4R2Z4l8OZyseGGAFF cnCwH9eEGqTDk9Ulnesog2fmY+45SELbDUpYrOmvVLFiYvcDYoXMkBKQvXhwA2P6LfA1 fLuNHAMhIguO7AEdAO42hZA4C05+7Y9mn7g6UGntJVwZAzrg+as+WxMNy/YkD4albTYU CiJ3P5kWzcwoLVMkMvfnrfGcg/0+DDUwOAgGRt8eTWl2cRtmK1SmwT6hg6mTzbzUm1xH RM5Q== X-Gm-Message-State: AOAM533W1oJ8QJV0M1nQRvx/2d+L/TOT5ACu4LxwpULFdSFcOMxbU40T Susse6rsHQS3kJuBHkHSpAMuz/am19CyKg== X-Google-Smtp-Source: ABdhPJz7KfkRj8As5GzkhXfEuoVNNBVUH0VcqblY6ZARfLnWVGHd91QSBL7H7G7kMSU248Jg1TqGrg== X-Received: by 2002:aa7:96d0:0:b029:2e9:fea1:c9c1 with SMTP id h16-20020aa796d00000b02902e9fea1c9c1mr1456896pfq.67.1623713505513; Mon, 14 Jun 2021 16:31:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 1/8] configure: Use -std=gnu11 Date: Mon, 14 Jun 2021 16:31:36 -0700 Message-Id: <20210614233143.1221879-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210614233143.1221879-1-richard.henderson@linaro.org> References: <20210614233143.1221879-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::52c; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52c.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, thuth@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Now that the minimum gcc version is 7.5, we can use C11. This will allow lots of cleanups to the code, currently hidden behind macros in include/qemu/compiler.h. Signed-off-by: Richard Henderson Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Thomas Huth --- configure | 4 ++-- meson.build | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 8dcb9965b2..0489864667 100755 --- a/configure +++ b/configure @@ -159,7 +159,7 @@ update_cxxflags() { # options which some versions of GCC's C++ compiler complain about # because they only make sense for C programs. QEMU_CXXFLAGS=3D"$QEMU_CXXFLAGS -D__STDC_LIMIT_MACROS -D__STDC_CONSTAN= T_MACROS -D__STDC_FORMAT_MACROS" - CONFIGURE_CXXFLAGS=3D$(echo "$CONFIGURE_CFLAGS" | sed s/-std=3Dgnu99/-= std=3Dgnu++11/) + CONFIGURE_CXXFLAGS=3D$(echo "$CONFIGURE_CFLAGS" | sed s/-std=3Dgnu11/-= std=3Dgnu++11/) for arg in $QEMU_CFLAGS; do case $arg in -Wstrict-prototypes|-Wmissing-prototypes|-Wnested-externs|\ @@ -538,7 +538,7 @@ QEMU_CFLAGS=3D"-Wstrict-prototypes -Wredundant-decls $Q= EMU_CFLAGS" QEMU_CFLAGS=3D"-D_GNU_SOURCE -D_FILE_OFFSET_BITS=3D64 -D_LARGEFILE_SOURCE = $QEMU_CFLAGS" =20 # Flags that are needed during configure but later taken care of by Meson -CONFIGURE_CFLAGS=3D"-std=3Dgnu99 -Wall" +CONFIGURE_CFLAGS=3D"-std=3Dgnu11 -Wall" CONFIGURE_LDFLAGS=3D =20 =20 diff --git a/meson.build b/meson.build index a2311eda6e..d8a92666fb 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('qemu', ['c'], meson_version: '>=3D0.55.0', - default_options: ['warning_level=3D1', 'c_std=3Dgnu99', 'cpp_std= =3Dgnu++11', 'b_colorout=3Dauto'] + + default_options: ['warning_level=3D1', 'c_std=3Dgnu11', 'cpp_std= =3Dgnu++11', 'b_colorout=3Dauto'] + (meson.version().version_compare('>=3D0.56.0') ? = [ 'b_staticpic=3Dfalse' ] : []), version: run_command('head', meson.source_root() / 'VERSION').stdo= ut().strip()) =20 --=20 2.25.1 From nobody Wed May 15 23:53:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1623713667539824.253472304964; Mon, 14 Jun 2021 16:34:27 -0700 (PDT) Received: from localhost ([::1]:38334 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lsw65-00052G-LU for importer@patchew.org; Mon, 14 Jun 2021 19:34:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51378) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lsw3a-0006Ff-9w for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:31:50 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]:38517) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lsw3X-0007hm-CO for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:31:49 -0400 Received: by mail-pj1-x1032.google.com with SMTP id m13-20020a17090b068db02901656cc93a75so600544pjz.3 for ; Mon, 14 Jun 2021 16:31:47 -0700 (PDT) Received: from localhost.localdomain (174-21-70-228.tukw.qwest.net. [174.21.70.228]) by smtp.gmail.com with ESMTPSA id gl13sm488113pjb.5.2021.06.14.16.31.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Jun 2021 16:31:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=lYciPGzXuNLmupEwVLTG4nR3oyS5g6fM/oOmMdD5hp4=; b=XVk1EtWgRuuJxhfhUx84qF284B1yLJDOlVfeBrLFFIwz09Jz4/h2lT/0nvvTzqy20H F2K+DPhQcMVtuCYUXQ+RNJWf3lpeQpBKHYaQihZLm0h8Te9RzUKELWWR/TijUCX5saz9 iYTLZs8hXBPpkDQMC2ZNi/WXs3eXQy7cdkMIoCsdDhCDzfpYnjAdXKDK9ouhWJbmtKpl GMmZ8t4OgZtXf4aDbOsIznRt6aiOOKku4SeQ3IqCMKw7FlG+p6WeZKmHUIc9uECG/vza 9fJDPs3uu/jPLeJwBIe2Vd/sZRp2XXYkKzlq7AgB0wh5OpVSPYitnXQw+63dxJDSnMG6 vAFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=lYciPGzXuNLmupEwVLTG4nR3oyS5g6fM/oOmMdD5hp4=; b=FBxSehI+J2aHouJPU0GAd/0nGRL8pl6kEaAAS8oghGeQsQYww0PAzsseSvbXRGUCVy xxF9Iq2SpbvJNZvTCWdVxT8ngQpINfM9ASmVPjyHfvV5BdgXARpzEzN9ny3dLdLLn/a2 LToOOdQ6lUtdFxvyi1xf9fj9y5b/rplawvCYJl2kDHuminugkmcDQM9MDK6QbpVsbnfr u5wzAuSm6Y5NfcXjxjHrDzTvGW6i17oLszCLD1EPUBYLkDym8PO152eok/Iv8I1G8wxn OCaZ1uuuvpbkk9EidylF8JxcCL58au81jm/mV3HYRa8Flal0mmNdlnM/arGR4xuLKhnS w/Og== X-Gm-Message-State: AOAM531UScaVazL2yBQwtQ9XPgRWCkjfFj5zUJ1of6LMvhfbskzf+voU h74xZGReakqintiXPmrpQCFCjbiTE1SyMQ== X-Google-Smtp-Source: ABdhPJxNutebnioRN4Mk97bIHb+olXUj6+iWGZbPMQEl3r9uf0w4IG83QckUOqG0DYeeGr0zAL/4jg== X-Received: by 2002:a17:902:14b:b029:119:ef6b:8039 with SMTP id 69-20020a170902014bb0290119ef6b8039mr1418246plb.84.1623713506164; Mon, 14 Jun 2021 16:31:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 2/8] softfloat: Use _Generic instead of QEMU_GENERIC Date: Mon, 14 Jun 2021 16:31:37 -0700 Message-Id: <20210614233143.1221879-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210614233143.1221879-1-richard.henderson@linaro.org> References: <20210614233143.1221879-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, thuth@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Thomas Huth --- fpu/softfloat.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 4d0160fe9c..6e769f990c 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -686,11 +686,13 @@ static float128 float128_pack_raw(const FloatParts128= *p) #include "softfloat-specialize.c.inc" =20 #define PARTS_GENERIC_64_128(NAME, P) \ - QEMU_GENERIC(P, (FloatParts128 *, parts128_##NAME), parts64_##NAME) + _Generic((P), FloatParts64 *: parts64_##NAME, \ + FloatParts128 *: parts128_##NAME) =20 #define PARTS_GENERIC_64_128_256(NAME, P) \ - QEMU_GENERIC(P, (FloatParts256 *, parts256_##NAME), \ - (FloatParts128 *, parts128_##NAME), parts64_##NAME) + _Generic((P), FloatParts64 *: parts64_##NAME, \ + FloatParts128 *: parts128_##NAME, \ + FloatParts256 *: parts256_##NAME) =20 #define parts_default_nan(P, S) PARTS_GENERIC_64_128(default_nan, P)(P,= S) #define parts_silence_nan(P, S) PARTS_GENERIC_64_128(silence_nan, P)(P,= S) @@ -892,11 +894,13 @@ static void parts128_log2(FloatParts128 *a, float_sta= tus *s, const FloatFmt *f); */ =20 #define FRAC_GENERIC_64_128(NAME, P) \ - QEMU_GENERIC(P, (FloatParts128 *, frac128_##NAME), frac64_##NAME) + _Generic((P), FloatParts64 *: frac64_##NAME, \ + FloatParts128 *: frac128_##NAME) =20 #define FRAC_GENERIC_64_128_256(NAME, P) \ - QEMU_GENERIC(P, (FloatParts256 *, frac256_##NAME), \ - (FloatParts128 *, frac128_##NAME), frac64_##NAME) + _Generic((P), FloatParts64 *: frac64_##NAME, \ + FloatParts128 *: frac128_##NAME, \ + FloatParts256 *: frac256_##NAME) =20 static bool frac64_add(FloatParts64 *r, FloatParts64 *a, FloatParts64 *b) { --=20 2.25.1 From nobody Wed May 15 23:53:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1623713586321190.34878420491782; Mon, 14 Jun 2021 16:33:06 -0700 (PDT) Received: from localhost ([::1]:59806 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lsw4n-0000bf-BL for importer@patchew.org; Mon, 14 Jun 2021 19:33:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51384) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lsw3a-0006GA-JV for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:31:50 -0400 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]:37858) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lsw3Y-0007iA-4Q for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:31:50 -0400 Received: by mail-pl1-x636.google.com with SMTP id h12so7467622plf.4 for ; Mon, 14 Jun 2021 16:31:47 -0700 (PDT) Received: from localhost.localdomain (174-21-70-228.tukw.qwest.net. [174.21.70.228]) by smtp.gmail.com with ESMTPSA id gl13sm488113pjb.5.2021.06.14.16.31.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Jun 2021 16:31:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1pHNOtNL853PPW0rBSNZ74Xe6wa2QgytGF7lJKr9R9U=; b=Q1xsAB/PJAL77MIzXurpW9tRYfk3/WAFpZt2nUnDsRESyIoz06XUHpp94kNqoQEFAC BHCGEKZ9jWrgLqw2C1YP282h2Jok81SlnwpyaeUhuut1P3iuiIZdBZmI7YzMTyk9XxDj lJ+s2s1++cMJS1mpPYM0YLrO9gHymvHCGq6u4yLvCyTpn9RGreey4wgo8jabPaji9eXK v4NOnrVg/u6QNtafK7407zyHmv71qeXUFD9DZNKhD70PT5IQkggL8YwYZ96/uElSNVK+ 2vFSZ8loZkfzJHMNiVkZec0YBZ0nYDed7QPGGivTQ1O+B+pyBPzE2Oxg1I9rXRxflDIC rHUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1pHNOtNL853PPW0rBSNZ74Xe6wa2QgytGF7lJKr9R9U=; b=aFdSJg0/fIcgn68a1jjIXlteAhb2y2+h938og60EmfEZMT/CzmJb5vJAJDOfMVuHLU kRFxTDI9l5A8XSKM+wKlAn1SKn4KykwIsAxvFYFItNcJCe/d3gK+aM6SsbFCYcVUczY0 n5FB5h96T4ioZoW5mQZek688rblhtI58F3tNqf93TN1SShfPW2V71wpmWZJbHux9lZK4 vGJKUhLvnd24wiwFZUpVq8HEjDy0JazFQHa8CmL0sUTxW7tz232wydaMchJstnujpYnJ AHxpEuMS+d1WKMEFDMyM/gZkTMhJHrYM/6KIArxCRz8uv8jC5k6kbHUi9BSku9imj4mi rivA== X-Gm-Message-State: AOAM5320wgFE8gOjM+AR1Np2WB8bpVL4DaGi1N87pv4nNNTBNaEGlXfD +6n87MtCwbA9ZP2gKW4c53qC4bmg8rjmLA== X-Google-Smtp-Source: ABdhPJxm8l/kRRDY6gh2b+t2kEvGRD6GLrOPUmWoXRTvvcJ/xmEUI5GJh/WcxvNiyg6Xs5uSrz8Hfw== X-Received: by 2002:a17:90a:17e7:: with SMTP id q94mr21347759pja.117.1623713506746; Mon, 14 Jun 2021 16:31:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 3/8] util: Use real functions for thread-posix QemuRecMutex Date: Mon, 14 Jun 2021 16:31:38 -0700 Message-Id: <20210614233143.1221879-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210614233143.1221879-1-richard.henderson@linaro.org> References: <20210614233143.1221879-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::636; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x636.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, thuth@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Move the declarations from thread-win32.h into thread.h and remove the macro redirection from thread-posix.h. This will be required by following cleanups. Signed-off-by: Richard Henderson Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Thomas Huth --- include/qemu/thread-posix.h | 4 ---- include/qemu/thread-win32.h | 6 ------ include/qemu/thread.h | 9 ++++++--- util/qemu-thread-posix.c | 20 ++++++++++++++++++++ 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/include/qemu/thread-posix.h b/include/qemu/thread-posix.h index c903525062..cf8bc90468 100644 --- a/include/qemu/thread-posix.h +++ b/include/qemu/thread-posix.h @@ -5,10 +5,6 @@ #include =20 typedef QemuMutex QemuRecMutex; -#define qemu_rec_mutex_destroy qemu_mutex_destroy -#define qemu_rec_mutex_lock_impl qemu_mutex_lock_impl -#define qemu_rec_mutex_trylock_impl qemu_mutex_trylock_impl -#define qemu_rec_mutex_unlock qemu_mutex_unlock =20 struct QemuMutex { pthread_mutex_t lock; diff --git a/include/qemu/thread-win32.h b/include/qemu/thread-win32.h index d0a1a9597e..d95af4498f 100644 --- a/include/qemu/thread-win32.h +++ b/include/qemu/thread-win32.h @@ -18,12 +18,6 @@ struct QemuRecMutex { bool initialized; }; =20 -void qemu_rec_mutex_destroy(QemuRecMutex *mutex); -void qemu_rec_mutex_lock_impl(QemuRecMutex *mutex, const char *file, int l= ine); -int qemu_rec_mutex_trylock_impl(QemuRecMutex *mutex, const char *file, - int line); -void qemu_rec_mutex_unlock(QemuRecMutex *mutex); - struct QemuCond { CONDITION_VARIABLE var; bool initialized; diff --git a/include/qemu/thread.h b/include/qemu/thread.h index 5435763184..2c0d85f3bc 100644 --- a/include/qemu/thread.h +++ b/include/qemu/thread.h @@ -28,6 +28,12 @@ int qemu_mutex_trylock_impl(QemuMutex *mutex, const char= *file, const int line); void qemu_mutex_lock_impl(QemuMutex *mutex, const char *file, const int li= ne); void qemu_mutex_unlock_impl(QemuMutex *mutex, const char *file, const int = line); =20 +void qemu_rec_mutex_init(QemuRecMutex *mutex); +void qemu_rec_mutex_destroy(QemuRecMutex *mutex); +void qemu_rec_mutex_lock_impl(QemuRecMutex *mutex, const char *file, int l= ine); +int qemu_rec_mutex_trylock_impl(QemuRecMutex *mutex, const char *file, int= line); +void qemu_rec_mutex_unlock(QemuRecMutex *mutex); + typedef void (*QemuMutexLockFunc)(QemuMutex *m, const char *f, int l); typedef int (*QemuMutexTrylockFunc)(QemuMutex *m, const char *f, int l); typedef void (*QemuRecMutexLockFunc)(QemuRecMutex *m, const char *f, int l= ); @@ -129,9 +135,6 @@ static inline int (qemu_rec_mutex_trylock)(QemuRecMutex= *mutex) return qemu_rec_mutex_trylock(mutex); } =20 -/* Prototypes for other functions are in thread-posix.h/thread-win32.h. */ -void qemu_rec_mutex_init(QemuRecMutex *mutex); - void qemu_cond_init(QemuCond *cond); void qemu_cond_destroy(QemuCond *cond); =20 diff --git a/util/qemu-thread-posix.c b/util/qemu-thread-posix.c index dcff5e7c5d..8e2b6653f5 100644 --- a/util/qemu-thread-posix.c +++ b/util/qemu-thread-posix.c @@ -124,6 +124,26 @@ void qemu_rec_mutex_init(QemuRecMutex *mutex) mutex->initialized =3D true; } =20 +void qemu_rec_mutex_destroy(QemuRecMutex *mutex) +{ + qemu_mutex_destroy(mutex); +} + +void qemu_rec_mutex_lock_impl(QemuRecMutex *mutex, const char *file, int l= ine) +{ + qemu_mutex_lock_impl(mutex, file, line); +} + +int qemu_rec_mutex_trylock_impl(QemuRecMutex *mutex, const char *file, int= line) +{ + return qemu_mutex_trylock_impl(mutex, file, line); +} + +void qemu_rec_mutex_unlock(QemuRecMutex *mutex) +{ + qemu_mutex_unlock(mutex); +} + void qemu_cond_init(QemuCond *cond) { int err; --=20 2.25.1 From nobody Wed May 15 23:53:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1623713797567740.9276682656118; Mon, 14 Jun 2021 16:36:37 -0700 (PDT) Received: from localhost ([::1]:45778 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lsw8C-0002Cx-K8 for importer@patchew.org; Mon, 14 Jun 2021 19:36:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51424) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lsw3h-0006Qh-CQ for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:31:58 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]:35456) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lsw3Y-0007in-J3 for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:31:55 -0400 Received: by mail-pj1-x102b.google.com with SMTP id fy24-20020a17090b0218b029016c5a59021fso638130pjb.0 for ; Mon, 14 Jun 2021 16:31:48 -0700 (PDT) Received: from localhost.localdomain (174-21-70-228.tukw.qwest.net. [174.21.70.228]) by smtp.gmail.com with ESMTPSA id gl13sm488113pjb.5.2021.06.14.16.31.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Jun 2021 16:31:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ySu31ENiO8Aza71v0+pGGhCJRvj9eKy24Mj6E7gzbMI=; b=KrkfdCgHBuqq2VwAZavTf2pOeR9TYh7rTviMqBXZJsD3Rosoy6+DQ3Idb67NKamjZg DEDzOpxnHRDCpsDcV8RrTeiZBtQrwu5eIc31XtREFxrJhBnw2vFUdVof/URWon+uo04/ KWMbjoqrFsTIQ8Fa0n5kdT6XrL7jKUkhzT0vwF+KOTtGDu10yUjKADHkG3Fet6DL9sep B6LNPMXzU5isAd20ETUGk9y2yds5MpmATHVqBGEGB9SxB7PAo9gxhBmV9T7+ddV4dPbG W/RWZ4fRkIChmCMy8O9PoCfIp3ZcceWPM8z9rHT7ANSqTqwfnlgohW+GICe//BsJsgyT NRug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ySu31ENiO8Aza71v0+pGGhCJRvj9eKy24Mj6E7gzbMI=; b=HaIVYuTrqwtIoxCcTxp6tTtXNwLnrAC/dwxkr4CBOnGwUeF+AO6VbA7Z2CLoQc/gmr oaSPRBpZ+6SYtmmL4EOdkNcUUQ5QE7o8Np+ikhhiob+gwxMgEPHpp3Q9f/pMabfHznv6 AASyYJp0r1ct0xUFqIjToMNJrfLYbW6Iegfph0EBksYhqerJe24nnAAZKWrFv6swkTg8 hicAQ0JYKd4Y3A9cT9GZER6XGiL2/ZikOHj0BN2CSpIRReJMALRb0gdObqn0o57hh8Oe mjIHdo2Ghw7IZL7EpmYK620A/zSCJU5DMviP+9DIBarGFjinUEobNnfC81rMKvJJKqFk 63/Q== X-Gm-Message-State: AOAM531ezMFKQ2ERXLD1jlMQqeRaoLbuN4c2MqZhFKiWK6a8v/XjfpeS h+VRsdByVQN62stLKQKxNKGqgAElYuqpOg== X-Google-Smtp-Source: ABdhPJzgPCTCC3wUTy6mTDV2vaUIwKXugWQB3i0BnBmg8DOmH6N/q4HiLDc+HLKXtRoHF4SPMJ8Y9A== X-Received: by 2002:a17:902:8309:b029:115:c2f3:2aed with SMTP id bd9-20020a1709028309b0290115c2f32aedmr1554083plb.57.1623713507310; Mon, 14 Jun 2021 16:31:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 4/8] util: Pass file+line to qemu_rec_mutex_unlock_impl Date: Mon, 14 Jun 2021 16:31:39 -0700 Message-Id: <20210614233143.1221879-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210614233143.1221879-1-richard.henderson@linaro.org> References: <20210614233143.1221879-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, thuth@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Create macros for file+line expansion in qemu_rec_mutex_unlock like we have for qemu_mutex_unlock. Signed-off-by: Richard Henderson Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/qemu/thread.h | 10 +++++++++- util/qemu-thread-posix.c | 4 ++-- util/qemu-thread-win32.c | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/include/qemu/thread.h b/include/qemu/thread.h index 2c0d85f3bc..460568d67d 100644 --- a/include/qemu/thread.h +++ b/include/qemu/thread.h @@ -32,7 +32,7 @@ void qemu_rec_mutex_init(QemuRecMutex *mutex); void qemu_rec_mutex_destroy(QemuRecMutex *mutex); void qemu_rec_mutex_lock_impl(QemuRecMutex *mutex, const char *file, int l= ine); int qemu_rec_mutex_trylock_impl(QemuRecMutex *mutex, const char *file, int= line); -void qemu_rec_mutex_unlock(QemuRecMutex *mutex); +void qemu_rec_mutex_unlock_impl(QemuRecMutex *mutex, const char *file, int= line); =20 typedef void (*QemuMutexLockFunc)(QemuMutex *m, const char *f, int l); typedef int (*QemuMutexTrylockFunc)(QemuMutex *m, const char *f, int l); @@ -110,6 +110,9 @@ extern QemuCondTimedWaitFunc qemu_cond_timedwait_func; #define qemu_mutex_unlock(mutex) \ qemu_mutex_unlock_impl(mutex, __FILE__, __LINE__) =20 +#define qemu_rec_mutex_unlock(mutex) \ + qemu_rec_mutex_unlock_impl(mutex, __FILE__, __LINE__) + static inline void (qemu_mutex_lock)(QemuMutex *mutex) { qemu_mutex_lock(mutex); @@ -135,6 +138,11 @@ static inline int (qemu_rec_mutex_trylock)(QemuRecMute= x *mutex) return qemu_rec_mutex_trylock(mutex); } =20 +static inline void (qemu_rec_mutex_unlock)(QemuRecMutex *mutex) +{ + qemu_rec_mutex_unlock(mutex); +} + void qemu_cond_init(QemuCond *cond); void qemu_cond_destroy(QemuCond *cond); =20 diff --git a/util/qemu-thread-posix.c b/util/qemu-thread-posix.c index 8e2b6653f5..d990826ed8 100644 --- a/util/qemu-thread-posix.c +++ b/util/qemu-thread-posix.c @@ -139,9 +139,9 @@ int qemu_rec_mutex_trylock_impl(QemuRecMutex *mutex, co= nst char *file, int line) return qemu_mutex_trylock_impl(mutex, file, line); } =20 -void qemu_rec_mutex_unlock(QemuRecMutex *mutex) +void qemu_rec_mutex_unlock_impl(QemuRecMutex *mutex, const char *file, int= line) { - qemu_mutex_unlock(mutex); + qemu_mutex_unlock_impl(mutex, file, line); } =20 void qemu_cond_init(QemuCond *cond) diff --git a/util/qemu-thread-win32.c b/util/qemu-thread-win32.c index cb5aa2018c..52eb19f351 100644 --- a/util/qemu-thread-win32.c +++ b/util/qemu-thread-win32.c @@ -105,7 +105,7 @@ int qemu_rec_mutex_trylock_impl(QemuRecMutex *mutex, co= nst char *file, int line) return !TryEnterCriticalSection(&mutex->lock); } =20 -void qemu_rec_mutex_unlock(QemuRecMutex *mutex) +void qemu_rec_mutex_unlock_impl(QemuRecMutex *mutex, const char *file, int= line) { assert(mutex->initialized); LeaveCriticalSection(&mutex->lock); --=20 2.25.1 From nobody Wed May 15 23:53:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1623713667848422.43591834073607; Mon, 14 Jun 2021 16:34:27 -0700 (PDT) Received: from localhost ([::1]:38488 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lsw66-00058j-RM for importer@patchew.org; Mon, 14 Jun 2021 19:34:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51412) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lsw3b-0006Kp-OK for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:31:51 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]:45709) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lsw3Z-0007jT-Ew for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:31:51 -0400 Received: by mail-pl1-x634.google.com with SMTP id 11so7458672plk.12 for ; Mon, 14 Jun 2021 16:31:48 -0700 (PDT) Received: from localhost.localdomain (174-21-70-228.tukw.qwest.net. [174.21.70.228]) by smtp.gmail.com with ESMTPSA id gl13sm488113pjb.5.2021.06.14.16.31.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Jun 2021 16:31:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pW4vETrqc6vHHQQeDLIC4JkQ5JSGQVmq8K1PVvelvVs=; b=fC5chCgjtyEPdxs3f7NQIt9C8v+qsruTIFbZCkQWc8+uzbYgEcSgV7U0WQxGReKft9 /qURAbldLZJmQExJFUfh3aPDu7vVUFX0C1yuBWxdEQaiLFCOmPCSmL+vgPQ7ia4hM54s bHLJsOAI6GRQY4sEy1tzNrUXSUyweD+5QyOL3c/rTrS+AXyt0tCzHX9PudEH2TZ5gs6m 7UPFJyid5Z0KWejQhbIZ33u86yyGBxskASD42X1zjTh9VG0Et7jCJtNPVTk2ZlTPe7pt 3vkLKdTDnXiejDsjnn6B4RuEiyBVCYRvUsADWuAIfh4lRL7TrwsObGja5SYy8zjDqfb4 iEug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pW4vETrqc6vHHQQeDLIC4JkQ5JSGQVmq8K1PVvelvVs=; b=aOJSAlg+MST/nEoTtNV+uLgurJgyIYLw0HgQnrfX4plm6FmFWrarsvn6auvTx46nl+ BhfB1z1CMj4yMT9mq8gAl5YMnQO47TrPAXDhhTeiwXHXf09yY7s59KYtbVjoSaAcXQlA ZCdlHthIdgnY6XWvGcIrM2fDUf3/PohEK0i+Brb3GI3cWpy1//7U0BiWmR9uLQ9f28nB MWUWXY3vG7Kqt9figQsps4EWSzZIXrFRJBX2JKSbwBk8oJypxnPApSrkRvfLpLGfR40F pVPrVQSKPb+qUG9b61XlL8R7UgG1zac0kZpKyHH69ykraGpk8jb0/x/ZWTw+VXnMrQiP atIg== X-Gm-Message-State: AOAM533kP2QRR+dwqDwEKGWY2PZGwTZUHfIqGJMYvdMS/L/egY7BrEmS rdxBx0H4D7UnXbcKbqkDkEImCdfwpjpCvw== X-Google-Smtp-Source: ABdhPJzdQpwqUWMUsPlzi9bEL/6MjsbcTZskreiL90S74TNErGH91/DkhVqGfTKPUTiRxqktg0OSJg== X-Received: by 2002:a17:90a:c08f:: with SMTP id o15mr1646022pjs.166.1623713507946; Mon, 14 Jun 2021 16:31:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 5/8] util: Use unique type for QemuRecMutex in thread-posix.h Date: Mon, 14 Jun 2021 16:31:40 -0700 Message-Id: <20210614233143.1221879-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210614233143.1221879-1-richard.henderson@linaro.org> References: <20210614233143.1221879-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, thuth@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" We will shortly convert lockable.h to _Generic, and we cannot have two compatible types in the same expansion. Wrap QemuMutex in a struct, and unwrap in qemu-thread-posix.c. Signed-off-by: Richard Henderson Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Thomas Huth --- include/qemu/thread-posix.h | 10 ++++++++-- util/qemu-thread-posix.c | 12 ++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/include/qemu/thread-posix.h b/include/qemu/thread-posix.h index cf8bc90468..b792e6ef37 100644 --- a/include/qemu/thread-posix.h +++ b/include/qemu/thread-posix.h @@ -4,8 +4,6 @@ #include #include =20 -typedef QemuMutex QemuRecMutex; - struct QemuMutex { pthread_mutex_t lock; #ifdef CONFIG_DEBUG_MUTEX @@ -15,6 +13,14 @@ struct QemuMutex { bool initialized; }; =20 +/* + * QemuRecMutex cannot be a typedef of QemuMutex lest we have two + * compatible cases in _Generic. See qemu/lockable.h. + */ +typedef struct QemuRecMutex { + QemuMutex m; +} QemuRecMutex; + struct QemuCond { pthread_cond_t cond; bool initialized; diff --git a/util/qemu-thread-posix.c b/util/qemu-thread-posix.c index d990826ed8..fd9d714038 100644 --- a/util/qemu-thread-posix.c +++ b/util/qemu-thread-posix.c @@ -116,32 +116,32 @@ void qemu_rec_mutex_init(QemuRecMutex *mutex) =20 pthread_mutexattr_init(&attr); pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); - err =3D pthread_mutex_init(&mutex->lock, &attr); + err =3D pthread_mutex_init(&mutex->m.lock, &attr); pthread_mutexattr_destroy(&attr); if (err) { error_exit(err, __func__); } - mutex->initialized =3D true; + mutex->m.initialized =3D true; } =20 void qemu_rec_mutex_destroy(QemuRecMutex *mutex) { - qemu_mutex_destroy(mutex); + qemu_mutex_destroy(&mutex->m); } =20 void qemu_rec_mutex_lock_impl(QemuRecMutex *mutex, const char *file, int l= ine) { - qemu_mutex_lock_impl(mutex, file, line); + qemu_mutex_lock_impl(&mutex->m, file, line); } =20 int qemu_rec_mutex_trylock_impl(QemuRecMutex *mutex, const char *file, int= line) { - return qemu_mutex_trylock_impl(mutex, file, line); + return qemu_mutex_trylock_impl(&mutex->m, file, line); } =20 void qemu_rec_mutex_unlock_impl(QemuRecMutex *mutex, const char *file, int= line) { - qemu_mutex_unlock_impl(mutex, file, line); + qemu_mutex_unlock_impl(&mutex->m, file, line); } =20 void qemu_cond_init(QemuCond *cond) --=20 2.25.1 From nobody Wed May 15 23:53:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1623713703948217.35231185483008; Mon, 14 Jun 2021 16:35:03 -0700 (PDT) Received: from localhost ([::1]:41764 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lsw6g-0007IN-Ub for importer@patchew.org; Mon, 14 Jun 2021 19:35:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51422) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lsw3d-0006Mf-Nw for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:31:53 -0400 Received: from mail-pf1-x42c.google.com ([2607:f8b0:4864:20::42c]:34396) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lsw3a-0007jg-1b for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:31:53 -0400 Received: by mail-pf1-x42c.google.com with SMTP id g6so11824835pfq.1 for ; Mon, 14 Jun 2021 16:31:49 -0700 (PDT) Received: from localhost.localdomain (174-21-70-228.tukw.qwest.net. [174.21.70.228]) by smtp.gmail.com with ESMTPSA id gl13sm488113pjb.5.2021.06.14.16.31.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Jun 2021 16:31:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BvdjZgFZFfm4oQoQRp06efUQQ5Zx0jR2BlqzQO6yoMI=; b=S0yy9HEFNzdHPoRHvObzR9/m7qb1FWkyNY9ZLHOVwKuAiik1F7l170aX+oy3f7inAH MhI764sbjUGieaqP+WR8BEqcicq0gwtJ8gDDXs4rYOLOvL3IfXkVD7uRewHue5bUuzpW r0EcJNcwz4zV8C0ZBtsdAR+6nuHU8JvmOMBdVVDSP50EMCfKX4vUFQSk1GbyReGxltrf 0xbA1jirKL1DHStbvc3W4tVzEelLo5SKWzcOUcQ9s03tS7UFpOJjjhk2MDkrrcqeJjNq UdR4MryxP4VeM5ERg4h2H1cd56DR0X5zahc/ytNkuNXR/GNzJUbQiMGOR+OjACXkhTfr +IjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=BvdjZgFZFfm4oQoQRp06efUQQ5Zx0jR2BlqzQO6yoMI=; b=SXX8RpLiQ3rTSeao+iqk1YIKupytTm0/GwkZEs8Rp4Vq3n4rjXqzlP6/JJa+CZSP7B jGr60Q1e+2ptRITWk1PQ4+3KjOTofFyot4jSlOhfJuJ5MYV2okEKD7Vt564ePYE+13C8 ERu82y0dwMOfOrUiMwfLZcVapf4MfifJnDZ7Uu7Jg8t9Y4L8caxEcoRn3mjfksScxZuV 3/4y/8k+ZF+jl7KcrREGzy5tHLb9RrKKHwX1fpqV+x9pwlnHt1Q7gaB51mKYhPu3pQq8 L+J8RBRzZdT+8kDhYUz7BkC7CmGY0zojDI14emrSFM931OROzggPI790d7xL1xxHLft7 lUCg== X-Gm-Message-State: AOAM531AigN9kLmgtp4whN3I6CgyeReEgY6utr3wFIh4exmht829Qvjg 6IlfKl+Ug2uT+BujS2ASuX1FuHRHafMA2g== X-Google-Smtp-Source: ABdhPJzvB7mgRhXOjcCU7UA4XWOMI1NVWj9Kvx+BvNsxHWpzIWYwkOrYjxKgg7i7PmR0tjzyGUmWgQ== X-Received: by 2002:a62:5547:0:b029:2ec:8f20:4e2 with SMTP id j68-20020a6255470000b02902ec8f2004e2mr1342049pfb.71.1623713508589; Mon, 14 Jun 2021 16:31:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 6/8] include/qemu/lockable: Use _Generic instead of QEMU_GENERIC Date: Mon, 14 Jun 2021 16:31:41 -0700 Message-Id: <20210614233143.1221879-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210614233143.1221879-1-richard.henderson@linaro.org> References: <20210614233143.1221879-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::42c; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42c.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, thuth@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This is both more and less complicated than our expansion using __builtin_choose_expr and __builtin_types_compatible_p. The expansion through QEMU_MAKE_LOCKABLE_ doesn't work because we're not emumerating all of the types within the same _Generic, which results in errors about unhandled cases. We must also handle void* explicitly, so that the NULL constant can be used. Signed-off-by: Richard Henderson Reviewed-by: Alex Benn=C3=A9e Tested-by: Alex Benn=C3=A9e --- include/qemu/lockable.h | 90 +++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 49 deletions(-) diff --git a/include/qemu/lockable.h b/include/qemu/lockable.h index b620023141..86db7cb04c 100644 --- a/include/qemu/lockable.h +++ b/include/qemu/lockable.h @@ -24,79 +24,71 @@ struct QemuLockable { QemuLockUnlockFunc *unlock; }; =20 -/* This function gives an error if an invalid, non-NULL pointer type is pa= ssed - * to QEMU_MAKE_LOCKABLE. For optimized builds, we can rely on dead-code = elimination - * from the compiler, and give the errors already at link time. - */ -#if defined(__OPTIMIZE__) && !defined(__SANITIZE_ADDRESS__) -void unknown_lock_type(void *); -#else -static inline void unknown_lock_type(void *unused) -{ - abort(); -} -#endif - static inline __attribute__((__always_inline__)) QemuLockable * qemu_make_lockable(void *x, QemuLockable *lockable) { - /* We cannot test this in a macro, otherwise we get compiler + /* + * We cannot test this in a macro, otherwise we get compiler * warnings like "the address of 'm' will always evaluate as 'true'". */ return x ? lockable : NULL; } =20 -/* Auxiliary macros to simplify QEMU_MAKE_LOCABLE. */ -#define QEMU_LOCK_FUNC(x) ((QemuLockUnlockFunc *) \ - QEMU_GENERIC(x, \ - (QemuMutex *, qemu_mutex_lock), \ - (QemuRecMutex *, qemu_rec_mutex_lock), \ - (CoMutex *, qemu_co_mutex_lock), \ - (QemuSpin *, qemu_spin_lock), \ - unknown_lock_type)) +static inline __attribute__((__always_inline__)) QemuLockable * +qemu_null_lockable(void *x) +{ + if (x !=3D NULL) { + qemu_build_not_reached(); + } + return NULL; +} =20 -#define QEMU_UNLOCK_FUNC(x) ((QemuLockUnlockFunc *) \ - QEMU_GENERIC(x, \ - (QemuMutex *, qemu_mutex_unlock), \ - (QemuRecMutex *, qemu_rec_mutex_unlock), \ - (CoMutex *, qemu_co_mutex_unlock), \ - (QemuSpin *, qemu_spin_unlock), \ - unknown_lock_type)) - -/* In C, compound literals have the lifetime of an automatic variable. +/* + * In C, compound literals have the lifetime of an automatic variable. * In C++ it would be different, but then C++ wouldn't need QemuLockable * either... */ -#define QEMU_MAKE_LOCKABLE_(x) (&(QemuLockable) { \ - .object =3D (x), \ - .lock =3D QEMU_LOCK_FUNC(x), \ - .unlock =3D QEMU_UNLOCK_FUNC(x), \ +#define QML_OBJ_(x, name) (&(QemuLockable) { \ + .object =3D (x), \ + .lock =3D (QemuLockUnlockFunc *) qemu_ ## name ## _lock, \ + .unlock =3D (QemuLockUnlockFunc *) qemu_ ## name ## _unlock \ }) =20 -/* QEMU_MAKE_LOCKABLE - Make a polymorphic QemuLockable +/** + * QEMU_MAKE_LOCKABLE - Make a polymorphic QemuLockable * - * @x: a lock object (currently one of QemuMutex, QemuRecMutex, CoMutex, Q= emuSpin). + * @x: a lock object (currently one of QemuMutex, QemuRecMutex, + * CoMutex, QemuSpin). * * Returns a QemuLockable object that can be passed around * to a function that can operate with locks of any kind, or * NULL if @x is %NULL. - */ -#define QEMU_MAKE_LOCKABLE(x) \ - QEMU_GENERIC(x, \ - (QemuLockable *, (x)), \ - qemu_make_lockable((x), QEMU_MAKE_LOCKABLE_(x))) - -/* QEMU_MAKE_LOCKABLE_NONNULL - Make a polymorphic QemuLockable * - * @x: a lock object (currently one of QemuMutex, QemuRecMutex, CoMutex, Q= emuSpin). + * Note the special case for void *, so that we may pass "NULL". + */ +#define QEMU_MAKE_LOCKABLE(x) \ + _Generic((x), QemuLockable *: (x), \ + void *: qemu_null_lockable(x), \ + QemuMutex *: qemu_make_lockable(x, QML_OBJ_(x, mutex)), \ + QemuRecMutex *: qemu_make_lockable(x, QML_OBJ_(x, rec_mutex))= , \ + CoMutex *: qemu_make_lockable(x, QML_OBJ_(x, co_mutex)), \ + QemuSpin *: qemu_make_lockable(x, QML_OBJ_(x, spin))) + +/** + * QEMU_MAKE_LOCKABLE_NONNULL - Make a polymorphic QemuLockable + * + * @x: a lock object (currently one of QemuMutex, QemuRecMutex, + * CoMutex, QemuSpin). * * Returns a QemuLockable object that can be passed around * to a function that can operate with locks of any kind. */ -#define QEMU_MAKE_LOCKABLE_NONNULL(x) \ - QEMU_GENERIC(x, \ - (QemuLockable *, (x)), \ - QEMU_MAKE_LOCKABLE_(x)) +#define QEMU_MAKE_LOCKABLE_NONNULL(x) \ + _Generic((x), QemuLockable *: (x), \ + QemuMutex *: QML_OBJ_(x, mutex), \ + QemuRecMutex *: QML_OBJ_(x, rec_mutex), \ + CoMutex *: QML_OBJ_(x, co_mutex), \ + QemuSpin *: QML_OBJ_(x, spin)) =20 static inline void qemu_lockable_lock(QemuLockable *x) { --=20 2.25.1 From nobody Wed May 15 23:53:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1623713976974904.1676551388146; Mon, 14 Jun 2021 16:39:36 -0700 (PDT) Received: from localhost ([::1]:51288 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lswB5-0005w3-VD for importer@patchew.org; Mon, 14 Jun 2021 19:39:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51428) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lsw3l-0006UD-MU for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:32:01 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]:53950) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lsw3a-0007jo-Hl for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:32:00 -0400 Received: by mail-pj1-x1031.google.com with SMTP id ei4so10688145pjb.3 for ; Mon, 14 Jun 2021 16:31:50 -0700 (PDT) Received: from localhost.localdomain (174-21-70-228.tukw.qwest.net. [174.21.70.228]) by smtp.gmail.com with ESMTPSA id gl13sm488113pjb.5.2021.06.14.16.31.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Jun 2021 16:31:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=sJzZfO3g2MpwcVFE3IkN41sU5nN8+pD95wZ5rmnvFQE=; b=FKMBvgIZ6PRCqnpbeoMfkD2M8aFFhaTg7Rzddw61yXELxbiD5U19fdjN2EEsFkDIR/ y84CfTlXcJQ0klkGFshkUACQJgs1v5+vpa91RtDuAVB6KZMqivpLBEVktb0B55AKS6c0 gFJubqmYE2GElUjyxr/2fGAphtwb8UO85MAjJ2E/Dwmh7WCSIlBzU5Vabndvc77GJ9yP nTGhFk96MSVgpqjBH0OYu5p1FQTgzNSFtHF2Tuek4caIZN5Ccj7iQnA4PjrQvaVz+IjQ 9UZFQa+NdDur+LoFzLx4hn4C1ua+VmcbFkAuU5rhuvZulGo5tIr27w6rePiDQG1a0rtL FDgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=sJzZfO3g2MpwcVFE3IkN41sU5nN8+pD95wZ5rmnvFQE=; b=iKv6qWpBlsvQsOTKrikWSY2ex7Udft2mGduuTDB1WT+QMWiElVkxYCA2UpNE14tI+e Hj7igREYiFbc960hCuB/2YNyBM/nteE5J1kocTNKr+38mQLejJDOXMLDZt++RRdayLG/ iNyyOL3HovpPep4V4eLq0IcapJR4U2B3Pq0t6gi2IoVYnTpI/CWhCIwrZo8L5mdM7ATo hKDAaN7UsxkKJZCVPY9MNPGAQcblRb9R0E/RzcUhWC0mTI0IxlSbhS3tofdgUwAO37kt Z/CrcpD+4AUvjBm0QYxJs5T82qioUg+BHi6nQSefbBy4yUmf5gd/79Lpci84d76tnzVo bu5Q== X-Gm-Message-State: AOAM533GHqxZdBFTdzldnPddW8D6JeaVs0dg1wCPqd8Tw3J70+EtXDRn +/LNayVPfYXMWAA6SdAQA7JzLcATdruE0Q== X-Google-Smtp-Source: ABdhPJzzuWdFDHAghUyDMSMV/z4/2ZHasOPzam69bRlZ5HLg2oDiAQWilOubg69qHuG6RqiHsMf2qQ== X-Received: by 2002:a17:902:ce8e:b029:10c:eb2d:8d2e with SMTP id f14-20020a170902ce8eb029010ceb2d8d2emr1183021plg.15.1623713509214; Mon, 14 Jun 2021 16:31:49 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 7/8] qemu/compiler: Remove QEMU_GENERIC Date: Mon, 14 Jun 2021 16:31:42 -0700 Message-Id: <20210614233143.1221879-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210614233143.1221879-1-richard.henderson@linaro.org> References: <20210614233143.1221879-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::1031; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1031.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, thuth@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" All previous users now use C11 _Generic. Signed-off-by: Richard Henderson Reviewed-by: Alex Benn=C3=A9e --- include/qemu/compiler.h | 40 ---------------------------------------- 1 file changed, 40 deletions(-) diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h index 091c45248b..5766d61589 100644 --- a/include/qemu/compiler.h +++ b/include/qemu/compiler.h @@ -173,46 +173,6 @@ #define QEMU_ALWAYS_INLINE #endif =20 -/* Implement C11 _Generic via GCC builtins. Example: - * - * QEMU_GENERIC(x, (float, sinf), (long double, sinl), sin) (x) - * - * The first argument is the discriminator. The last is the default value. - * The middle ones are tuples in "(type, expansion)" format. - */ - -/* First, find out the number of generic cases. */ -#define QEMU_GENERIC(x, ...) \ - QEMU_GENERIC_(typeof(x), __VA_ARGS__, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) - -/* There will be extra arguments, but they are not used. */ -#define QEMU_GENERIC_(x, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, count, ..= .) \ - QEMU_GENERIC##count(x, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) - -/* Two more helper macros, this time to extract items from a parenthesized - * list. - */ -#define QEMU_FIRST_(a, b) a -#define QEMU_SECOND_(a, b) b - -/* ... and a final one for the common part of the "recursion". */ -#define QEMU_GENERIC_IF(x, type_then, else_) = \ - __builtin_choose_expr(__builtin_types_compatible_p(x, = \ - QEMU_FIRST_ type_th= en), \ - QEMU_SECOND_ type_then, else_) - -/* CPP poor man's "recursion". */ -#define QEMU_GENERIC1(x, a0, ...) (a0) -#define QEMU_GENERIC2(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC1(x, = __VA_ARGS__)) -#define QEMU_GENERIC3(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC2(x, = __VA_ARGS__)) -#define QEMU_GENERIC4(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC3(x, = __VA_ARGS__)) -#define QEMU_GENERIC5(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC4(x, = __VA_ARGS__)) -#define QEMU_GENERIC6(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC5(x, = __VA_ARGS__)) -#define QEMU_GENERIC7(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC6(x, = __VA_ARGS__)) -#define QEMU_GENERIC8(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC7(x, = __VA_ARGS__)) -#define QEMU_GENERIC9(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC8(x, = __VA_ARGS__)) -#define QEMU_GENERIC10(x, a0, ...) QEMU_GENERIC_IF(x, a0, QEMU_GENERIC9(x,= __VA_ARGS__)) - /** * qemu_build_not_reached() * --=20 2.25.1 From nobody Wed May 15 23:53:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1623713870015640.9557209331377; Mon, 14 Jun 2021 16:37:50 -0700 (PDT) Received: from localhost ([::1]:49144 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lsw9M-0004UL-LO for importer@patchew.org; Mon, 14 Jun 2021 19:37:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51426) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lsw3j-0006SG-Ft for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:31:59 -0400 Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]:35552) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lsw3b-0007kU-CQ for qemu-devel@nongnu.org; Mon, 14 Jun 2021 19:31:59 -0400 Received: by mail-pf1-x430.google.com with SMTP id h12so11833325pfe.2 for ; Mon, 14 Jun 2021 16:31:50 -0700 (PDT) Received: from localhost.localdomain (174-21-70-228.tukw.qwest.net. [174.21.70.228]) by smtp.gmail.com with ESMTPSA id gl13sm488113pjb.5.2021.06.14.16.31.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Jun 2021 16:31:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=K0pN4S7m1hCj6S3qy/fvRVDleeUZszaFc8rCoVuMIfI=; b=CmUhYgvQ2BkO1D846TLkfu0QfGwYkaLJDqJdsUf4mmiOm2fj/2pohX2NwFbr4TEjJm pJpLbkdeh/iv7AP0MTBs8WMeQAhEMon0Ig015M21jS8q/mxluOnarMPwLfonbq3Wd12L Z6GE5HhODNzR0dDFo2zl+iuCk3iRJmXsmiXtTCnhe35gguzHXeBUH9hKsWAMaTM33c4q mq8C12keveg+eB9t1n9QyYPbWz55Kqdjdyft4ilEztBKxv9KjPEAKK2pJG0CkMVrQNNI 7XBFLKzTK12dandqIRKtupZT8TCTbiRRlJZk1PwlgD1sTPZ4HoZAaCg8XsSHEVgpOpog 44OQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=K0pN4S7m1hCj6S3qy/fvRVDleeUZszaFc8rCoVuMIfI=; b=Pnxe1/yEhuQM+uQbJ5qVRcrc0c6BVlOJdWOY0SfUdKkcsWorX5WdG6yWGbOkJPCE76 UnZnGE5Z/gVilza6gwsEw3Mxh8H7KAqG93ICwlKQ4JfLAgkzreQZNq7+XWZMDN3VWGh4 uZ9bugoJQutx6d0SnZQlVtkK2knQxvVfN375Om145NBdTcB7UoohttD4ZA/qSrl382iU dyRSiDYWB2vPXxeB1mK67RCeGw3Ora+/1v1iMHT8T02fTvUbZUi2Qg//9+akGZAYsFUe QyDLAAQp/oWsKLCEX+VFWkPCyfQl3U2pNcDMNIUoxrAtLbqyiZXty3R//jAEPXLAXFyX 0/8w== X-Gm-Message-State: AOAM533L1sP8CNCmYRBu2kS0Wxd7QWvopfMeCM8v/FpU1JYu6HFC+uYl 4j4pE7fXsqBw72Qcume72/WcP/oec4doaQ== X-Google-Smtp-Source: ABdhPJz0UYL9oLfIisSo95FnXASv6zM78G76D/tfsud2oq90iTLdCw8x0XNDoefg1eNFjchC5zmjqQ== X-Received: by 2002:a62:f947:0:b029:2e9:c502:7939 with SMTP id g7-20020a62f9470000b02902e9c5027939mr1514964pfm.34.1623713509826; Mon, 14 Jun 2021 16:31:49 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 8/8] configure: Remove probe for _Static_assert Date: Mon, 14 Jun 2021 16:31:43 -0700 Message-Id: <20210614233143.1221879-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210614233143.1221879-1-richard.henderson@linaro.org> References: <20210614233143.1221879-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::430; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x430.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, thuth@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" _Static_assert is part of C11, which is now required. Signed-off-by: Richard Henderson Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Thomas Huth --- configure | 18 ------------------ include/qemu/compiler.h | 11 ----------- 2 files changed, 29 deletions(-) diff --git a/configure b/configure index 0489864667..debd50c085 100755 --- a/configure +++ b/configure @@ -5090,20 +5090,6 @@ if compile_prog "" "" ; then have_sysmacros=3Dyes fi =20 -########################################## -# check for _Static_assert() - -have_static_assert=3Dno -cat > $TMPC << EOF -_Static_assert(1, "success"); -int main(void) { - return 0; -} -EOF -if compile_prog "" "" ; then - have_static_assert=3Dyes -fi - ########################################## # check for utmpx.h, it is missing e.g. on OpenBSD =20 @@ -6035,10 +6021,6 @@ if test "$have_sysmacros" =3D "yes" ; then echo "CONFIG_SYSMACROS=3Dy" >> $config_host_mak fi =20 -if test "$have_static_assert" =3D "yes" ; then - echo "CONFIG_STATIC_ASSERT=3Dy" >> $config_host_mak -fi - if test "$have_utmpx" =3D "yes" ; then echo "HAVE_UTMPX=3Dy" >> $config_host_mak fi diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h index 5766d61589..3baa5e3790 100644 --- a/include/qemu/compiler.h +++ b/include/qemu/compiler.h @@ -72,18 +72,7 @@ int:(x) ? -1 : 1; \ } =20 -/* QEMU_BUILD_BUG_MSG() emits the message given if _Static_assert is - * supported; otherwise, it will be omitted from the compiler error - * message (but as it remains present in the source code, it can still - * be useful when debugging). */ -#if defined(CONFIG_STATIC_ASSERT) #define QEMU_BUILD_BUG_MSG(x, msg) _Static_assert(!(x), msg) -#elif defined(__COUNTER__) -#define QEMU_BUILD_BUG_MSG(x, msg) typedef QEMU_BUILD_BUG_ON_STRUCT(x) \ - glue(qemu_build_bug_on__, __COUNTER__) __attribute__((unused)) -#else -#define QEMU_BUILD_BUG_MSG(x, msg) -#endif =20 #define QEMU_BUILD_BUG_ON(x) QEMU_BUILD_BUG_MSG(x, "not expecting: " #x) =20 --=20 2.25.1