From nobody Fri Nov 1 00:01:53 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=1685179813; cv=none; d=zohomail.com; s=zohoarc; b=QFLa/5M4VHfAQRo/Sy1KgUQlthI8/UaMThPI7+0W61ALQby8xt4h5Z9PtmWSr5+U8PMHzcXx4HWu9mPzEZO1n1No0VSM5c1MvGG4aqqB3ptuuL863Hcuh0NoAD1RGgXgsl0gaFxAgdzTjGeMStsW0Pf08Ot+Ih4yQL3wGn1z6cY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685179813; 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=aXRTwrxgAA8HszpMerKC6KzDUFfs18FqgX/EGUkzPz4=; b=jyUI/B1ckWXXIfrAs4+LZPUFEBhLenSKJWzZ0RUKGigPIFUY0T0WzpEm1FuzXbPPpgKo9i/2n9Mb5mbPdo5HNqDjgszWEzo0aG00B9dEx0agQkmtqqDt4n5iZ80fdAJEmeW/cNTa/HI9wva/m889qpOkOVCQVsj+l5tBbUsVof0= 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 1685179813616901.0215553644425; Sat, 27 May 2023 02:30:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2qEQ-0007Yi-DY; Sat, 27 May 2023 05:29:02 -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 1q2qEP-0007YM-Cq for qemu-devel@nongnu.org; Sat, 27 May 2023 05:29:01 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2qEN-0007X7-Tc for qemu-devel@nongnu.org; Sat, 27 May 2023 05:29:01 -0400 Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-655-ylMCdI2xNXWvfW8P4wboqA-1; Sat, 27 May 2023 05:28:57 -0400 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-9737cde2ce8so203866966b.1 for ; Sat, 27 May 2023 02:28:57 -0700 (PDT) Received: from [192.168.10.118] ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e]) by smtp.gmail.com with ESMTPSA id c7-20020a17090603c700b0096a68648329sm3181479eja.214.2023.05.27.02.28.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 May 2023 02:28:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685179739; 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=aXRTwrxgAA8HszpMerKC6KzDUFfs18FqgX/EGUkzPz4=; b=hvVejPr9UB8B1K0IWPTquCoeE3HZT49HPjTw8wcQA0+oaxdWsy8WNDnaBWwvoU8DBl4xco M+kZx11FX0Fpi8ln4ClolUr7Gl7RwrWrTFSnuvm51951uxZLxQxTkN3cy0buCjHEd16TG6 5aXxdDsF159wCzvkQccC2BnP9xV9A8M= X-MC-Unique: ylMCdI2xNXWvfW8P4wboqA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685179736; x=1687771736; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aXRTwrxgAA8HszpMerKC6KzDUFfs18FqgX/EGUkzPz4=; b=korlngkcb+z11OoHh11sDiHi5Cd3lHprz60pkrR3qdq7tX2iQcoI7nMl6gIdiSbeQ3 LQajG1yfPhGVe7yGn5GLSCPIW/BeVxf67CktrPCZ4W+zbaOuqWamVIp0i1yNClBJ8B72 uRwVd7/Uy0XB+nUmopFhuv0EhHmyrsUKzqlYRrL/7y2+TgMB7A6Y+YeuAFG1VJFTuibR uPeYq+2Zuhvm4CK70BE03ylepFACC6kIuFpYDwS9uQADt4bbg5pEBJpulTHKHufFlIrj 2lydCARATChXn978+wZmGAI6RfdXtdhva2mRJ8oJzI0CEwXPxVWM+sNiOfafU5HyjyVo 0crA== X-Gm-Message-State: AC+VfDxiofnFJTscZTtkje//3quUDbvrlN6z6CT/XsRvuaWCxqX5AYXe u/WVM4r4qiejHr2PBTciaQU3BoRPZryiBNZweFuIFIg8lbz0mIsm7IwNSRcmCuj+pvUQo1XODsK 05yCnpzHbCzp6ENq1RXepgugdHx0VDhSFVWRmBGBtJjZbG8EHtczsYIDVv1EwFZr3nmj7Ei5z6u I= X-Received: by 2002:a17:907:2682:b0:96f:7060:9654 with SMTP id bn2-20020a170907268200b0096f70609654mr1407848ejc.18.1685179736298; Sat, 27 May 2023 02:28:56 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ58NhY4qNBx9TePu1wtj3/QwDwr+fgAR62n5bNRCA6ZfSYtR9va8t18KCo0l4R0WdPS0NfLHA== X-Received: by 2002:a17:907:2682:b0:96f:7060:9654 with SMTP id bn2-20020a170907268200b0096f70609654mr1407832ejc.18.1685179735798; Sat, 27 May 2023 02:28:55 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, thuth@redhat.com, berrange@redhat.com Subject: [PATCH 1/5] configure: remove --with-git= option Date: Sat, 27 May 2023 11:28:47 +0200 Message-Id: <20230527092851.705884-2-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230527092851.705884-1-pbonzini@redhat.com> References: <20230527092851.705884-1-pbonzini@redhat.com> 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=170.10.129.124; envelope-from=pbonzini@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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: 1685179814167100001 Content-Type: text/plain; charset="utf-8" There is not really any scenario where one would use any other git binary than "the first git in the PATH" aka $(command -v git). In fact for example "meson subprojects download" or scripts/checkpatch.pl do not obey the GIT environment variable. Remove the unnecessary knob, but test for the presence of git in the configure and git-submodule.sh scripts. Signed-off-by: Paolo Bonzini --- Makefile | 2 +- configure | 6 ++---- meson.build | 1 - scripts/git-submodule.sh | 8 +++++++- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 08fb6a3b058a..eaeab979966c 100644 --- a/Makefile +++ b/Makefile @@ -53,7 +53,7 @@ Makefile: .git-submodule-status git-submodule-update: ifneq ($(GIT_SUBMODULES_ACTION),ignore) $(call quiet-command, \ - (GIT=3D"$(GIT)" "$(SRC_PATH)/scripts/git-submodule.sh" $(GIT_SUBMODULES_= ACTION) $(GIT_SUBMODULES)), \ + ("$(SRC_PATH)/scripts/git-submodule.sh" $(GIT_SUBMODULES_ACTION) $(GIT_S= UBMODULES)), \ "GIT","$(GIT_SUBMODULES)") endif =20 diff --git a/configure b/configure index d674a9667310..370e038e63d7 100755 --- a/configure +++ b/configure @@ -791,7 +791,7 @@ fi =20 case $git_submodules_action in update|validate) - if test ! -e "$source_path/.git"; then + if test ! -e "$source_path/.git" || ! has git; then echo "ERROR: cannot $git_submodules_action git submodules with= out .git" exit 1 fi @@ -892,7 +892,6 @@ Advanced options (experts only): --python=3DPYTHON use specified python [$python] --ninja=3DNINJA use specified ninja [$ninja] --smbd=3DSMBD use specified smbd [$smbd] - --with-git=3DGIT use specified git [$git] --with-git-submodules=3Dupdate update git submodules (default if .git = dir exists) --with-git-submodules=3Dvalidate fail if git submodules are not up to da= te --with-git-submodules=3Dignore do not update or check git submodules (= default if no .git dir) @@ -1699,7 +1698,7 @@ fi ####################################### # generate config-host.mak =20 -if ! (GIT=3D"$git" "$source_path/scripts/git-submodule.sh" "$git_submodule= s_action" "$git_submodules"); then +if ! ("$source_path/scripts/git-submodule.sh" "$git_submodules_action" "$g= it_submodules"); then exit 1 fi =20 @@ -1709,7 +1708,6 @@ echo "# Automatically generated by configure - do not= modify" > $config_host_mak echo >> $config_host_mak =20 echo all: >> $config_host_mak -echo "GIT=3D$git" >> $config_host_mak echo "GIT_SUBMODULES=3D$git_submodules" >> $config_host_mak echo "GIT_SUBMODULES_ACTION=3D$git_submodules_action" >> $config_host_mak =20 diff --git a/meson.build b/meson.build index 2d48aa1e2ef3..b11773ab39e8 100644 --- a/meson.build +++ b/meson.build @@ -4027,7 +4027,6 @@ summary(summary_info, bool_yn: true, section: 'Direct= ories') =20 # Host binaries summary_info =3D {} -summary_info +=3D {'git': config_host['GIT']} summary_info +=3D {'python': '@0@ (version: @1@)'.format(python= .full_path(), python.language_version())} summary_info +=3D {'sphinx-build': sphinx_build} if config_host.has_key('HAVE_GDB_BIN') diff --git a/scripts/git-submodule.sh b/scripts/git-submodule.sh index 7be41f594832..33e995bef1ff 100755 --- a/scripts/git-submodule.sh +++ b/scripts/git-submodule.sh @@ -12,7 +12,7 @@ maybe_modules=3D"$@" # if --with-git-submodules=3Dignore, do nothing test "$command" =3D "ignore" && exit 0 =20 -test -z "$GIT" && GIT=3Dgit +GIT=3D$(command -v git) =20 cd "$(dirname "$0")/.." =20 @@ -57,6 +57,12 @@ then exit 1 fi =20 +if test -n "$maybe_modules" && test -z "$GIT" +then + echo "$0: unexpectedly called with submodules but git binary not found" + exit 1 +fi + modules=3D"" for m in $maybe_modules do --=20 2.40.1 From nobody Fri Nov 1 00:01:53 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=1685179836; cv=none; d=zohomail.com; s=zohoarc; b=izu0HV7GA/DE64vN9CPR1PMjcoUhj6hSJngm/160ucb9pJfvs8b/v6qyFJCpqraetPxURo16oFPyEu4H8fNiVgKpphtw60EO4MeRUiua2g5aeUnr/jlYbrRnlaXPCz6gUCf5zDQGVDB+qvJaR31KhWtM8hTybzQ64HlCMR6O01M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685179836; 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=GsEC+bnXG7c9EhA6CVMwfc/AZn72acKre62nNYxDEmQ=; b=c86ZHBSsudLVvbvp9vU8uG4AZjbYSfDYqfh7jUAC2ZR3mjk8uZ9s/KAiSuWOOI9BQB2WRozZ+IrxNz5FtMymV/kZ5j8QBFn+vzPRi3SxoFZUI5jjQMHY4lWlxmKgC3UwAK0CR6AOM5uP/OL5VeLHzQuWDREw8hM7+pqWLfP3zsw= 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 168517983651435.175888878858814; Sat, 27 May 2023 02:30:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2qEU-0007Zc-81; Sat, 27 May 2023 05:29:06 -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 1q2qES-0007ZG-Fr for qemu-devel@nongnu.org; Sat, 27 May 2023 05:29:04 -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 1q2qEQ-0007XZ-UP for qemu-devel@nongnu.org; Sat, 27 May 2023 05:29:04 -0400 Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-446-H9mcmzj_OtKcRPnEIPyA9g-1; Sat, 27 May 2023 05:29:00 -0400 Received: by mail-ed1-f69.google.com with SMTP id 4fb4d7f45d1cf-513e9618214so1363114a12.0 for ; Sat, 27 May 2023 02:28:59 -0700 (PDT) Received: from [192.168.10.118] ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e]) by smtp.gmail.com with ESMTPSA id m13-20020a170906160d00b0095342bfb701sm3252857ejd.16.2023.05.27.02.28.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 May 2023 02:28:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685179741; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GsEC+bnXG7c9EhA6CVMwfc/AZn72acKre62nNYxDEmQ=; b=En1XftqdrQ5IF/W9tY/LvXPSnLPYsjhtJRW2Hl3NJh7kW269uxcLm9ln6MflM6qdfq+FLo lhdRMY+oFyhn7d0bf2zXCsQnt8bFamZEvJq6TFx/LLwyjkLdrDWScWGh7H6NhUR3jEjAD7 XKE9cpP8pFbifs5J+jeFLO2Sgjg7LII= X-MC-Unique: H9mcmzj_OtKcRPnEIPyA9g-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685179738; x=1687771738; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GsEC+bnXG7c9EhA6CVMwfc/AZn72acKre62nNYxDEmQ=; b=U6Jxb1YoI35fbGhIzPh1ugMbPxY/Lt8QQOWT4c4LyAv7DAiy1ZB/kve2PgUqkfVuvt KG8GRKynV6/acaDOOoY29F32Ex+tew0xzmsdktny9bxpYEqcZ+X0N3gm1q48YdTp5Csy nswIqpakv21dwosmLmjz/jOejfZoG/6fwn4Xs/jeRf8CHUbszJZjYpLtAvPvsYd7KOxp iBznZ9PskAtVa0mLXnYaM2dFWBox12AQdtQtVwjuwr4flJjMMGzkzrwacm8ow4wbMZIO QQhETj5WAuqk5BNnPp1QEeNb+p6ny0l35CaZraLwi/JzcsNjuTg1qrec+cpy/5rkqR/a mR6g== X-Gm-Message-State: AC+VfDyaOu/ccHxkFLPE9O4m8pYVxvdpN2Z4+i/M/tyVxdRA5cINW0th ziY2N4VTLawjhrsWO7DfaZIcr9SEbrSMB+JYf71+AFhwrJaPGm+ob/eZgaSPdezJu8KHXYGT9zk Ps2e4DexFl8v5mUR1X/AroUAn4Kv1TMJMNzhIfZ0x3NyTGvSHu5sKankQW1FJS++/R9vbn0NmGP Y= X-Received: by 2002:a17:906:dac6:b0:96f:d6bd:390c with SMTP id xi6-20020a170906dac600b0096fd6bd390cmr4281402ejb.67.1685179738409; Sat, 27 May 2023 02:28:58 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ46wWcp6Kq1PzHB0xHWXkiVUvLJDdWd+HSmsu04Fdd3LTmryTCzsOrCrogwlIPzNKXry/WeoA== X-Received: by 2002:a17:906:dac6:b0:96f:d6bd:390c with SMTP id xi6-20020a170906dac600b0096fd6bd390cmr4281386ejb.67.1685179738016; Sat, 27 May 2023 02:28:58 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, thuth@redhat.com, berrange@redhat.com Subject: [PATCH 2/5] configure: rename --enable-pypi to --enable-download, control subprojects too Date: Sat, 27 May 2023 11:28:48 +0200 Message-Id: <20230527092851.705884-3-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230527092851.705884-1-pbonzini@redhat.com> References: <20230527092851.705884-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Type: text/plain; charset=UTF-8 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=170.10.133.124; envelope-from=pbonzini@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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: 1685179837043100001 The behavior of --{enable,disable}-pypi is similar to that of -Dwrapmode=3D{default,nodownload} respectively. In particular, in both cases a feature needs to be explicitly enabled for the dependency to be downloaded. So, use a single option to control both cases. Now, --enable-slirp will trigger cloning and building of libslirp if the .pc file is not found on the machine. Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Paolo Bonzini Reviewed-by: Thomas Huth --- configure | 17 +++++++---------- subprojects/.gitignore | 3 +++ 2 files changed, 10 insertions(+), 10 deletions(-) create mode 100644 subprojects/.gitignore diff --git a/configure b/configure index 370e038e63d7..2f908660e4f1 100755 --- a/configure +++ b/configure @@ -266,7 +266,7 @@ bsd_user=3D"" plugins=3D"$default_feature" ninja=3D"" python=3D -pypi=3D"enabled" +download=3D"enabled" bindir=3D"bin" skip_meson=3Dno vfio_user_server=3D"disabled" @@ -756,9 +756,9 @@ for opt do --with-git-submodules=3D*) git_submodules_action=3D"$optarg" ;; - --disable-pypi) pypi=3D"disabled" + --disable-download) download=3D"disabled" ;; - --enable-pypi) pypi=3D"enabled" + --enable-download) download=3D"enabled" ;; --enable-plugins) if test "$mingw32" =3D "yes"; then error_exit "TCG plugins not currently supported on= Windows platforms" @@ -962,7 +962,7 @@ python=3D"$(command -v "$python")" # - venv is allowed to use system packages; # - all setup can be performed offline; # - missing packages may be fetched from PyPI, -# unless --disable-pypi is passed. +# unless --disable-download is passed. # - pip is not installed into the venv when possible, # but ensurepip is called as a fallback when necessary. =20 @@ -979,7 +979,7 @@ python=3D"$python -B" mkvenv=3D"$python ${source_path}/python/scripts/mkvenv.py" =20 mkvenv_flags=3D"" -if test "$pypi" =3D "enabled" ; then +if test "$download" =3D "enabled" ; then mkvenv_flags=3D"--online" fi =20 @@ -1002,7 +1002,7 @@ meson=3D"$(cd pyvenv/bin; pwd)/meson" # Conditionally ensure Sphinx is installed. =20 mkvenv_flags=3D"" -if test "$pypi" =3D "enabled" -a "$docs" =3D "enabled" ; then +if test "$download" =3D "enabled" -a "$docs" =3D "enabled" ; then mkvenv_flags=3D"--online" fi =20 @@ -1942,11 +1942,8 @@ if test "$skip_meson" =3D no; then =20 rm -rf meson-private meson-info meson-logs =20 - # Prevent meson from automatically downloading wrapped subprojects when = missing. - # You can use 'meson subprojects download' before running configure. - meson_option_add "--wrap-mode=3Dnodownload" - # Built-in options + test "$download" =3D "disabled" && meson_option_add "--wrap-mode=3Dnodow= nload" test "$bindir" !=3D "bin" && meson_option_add "-Dbindir=3D$bindir" test "$default_feature" =3D no && meson_option_add -Dauto_features=3Ddis= abled test "$static" =3D yes && meson_option_add -Dprefer_static=3Dtrue diff --git a/subprojects/.gitignore b/subprojects/.gitignore new file mode 100644 index 000000000000..7560ebb0b1a0 --- /dev/null +++ b/subprojects/.gitignore @@ -0,0 +1,3 @@ +/packagecache + +/slirp --=20 2.40.1 From nobody Fri Nov 1 00:01:53 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=1685179837; cv=none; d=zohomail.com; s=zohoarc; b=mhTsvQ8Tv6Oe2XHTDFFh+fYrLahzcaPqps9E8hlz7sR/Ke/sSr9vpj38gVSlhPhb+bGlFmK82ItsLRA6/rKDUeKYUkEQKmv93VX5p5ptWt53y2gbmjNbkqsBRzBcUz7KQrSSvtRXL/eO7jiVzVRuHRKrAuOvQjtV5Haa9kI3ULI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685179837; 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=mVqurTewusebIALfBp9aNfkONSHewhf9vIXPQ1JheQE=; b=ly7B8agtR9cuxcN9gEpkDLtAXZZCge8YnfSLB1jKRIHIvvOJLv9co09WTI0la9YqnKrImRUOsaPPHcsMKg4hLdbYPpfhMCXNW7aU5sZIeVL/+syfOQ0UwPrVHZ3vefKfYt4hHhhHSpd3R5OgXBzimVA3BU1lDMeNT9ITNqeS6K4= 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 1685179837467349.29828497210224; Sat, 27 May 2023 02:30:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2qEg-0007cR-1e; Sat, 27 May 2023 05:29:18 -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 1q2qEf-0007cJ-3g for qemu-devel@nongnu.org; Sat, 27 May 2023 05:29:17 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2qES-0007Xg-G4 for qemu-devel@nongnu.org; Sat, 27 May 2023 05:29:16 -0400 Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-369-CIHSQKcVNSuyBUt6o9jCBg-1; Sat, 27 May 2023 05:29:02 -0400 Received: by mail-ej1-f69.google.com with SMTP id a640c23a62f3a-96f4f1bb838so144434366b.3 for ; Sat, 27 May 2023 02:29:01 -0700 (PDT) Received: from [192.168.10.118] ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e]) by smtp.gmail.com with ESMTPSA id g5-20020a1709064e4500b0096f6647b5e8sm3237121ejw.64.2023.05.27.02.28.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 May 2023 02:28:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685179743; 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=mVqurTewusebIALfBp9aNfkONSHewhf9vIXPQ1JheQE=; b=IzfVYTCRFUte2tQ/3moMI88bzdSmhK0qlMMr+pmntLAwDrRD//s/9cj3UI12sm7AAeU49b 26h2ShXYQ0OBCC0xU4jQv35nvnX0qq6s2akMx8QDoNJWV8f+txAJjIu9yg3HSJPVVcXtj/ wKgWXMB51KVbp2AUiU2ZaO21xcEauU4= X-MC-Unique: CIHSQKcVNSuyBUt6o9jCBg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685179740; x=1687771740; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mVqurTewusebIALfBp9aNfkONSHewhf9vIXPQ1JheQE=; b=TXgzCAihnZ/ZqgVLm3uB0Vg0hzluhwcOatoTWsKsKr5s3nDfEOTsjiOMSiswFX5n/F Q7HVtA0N0Sodti7e9gYcAv5LxELN02sZ3AAL83eSxumCoY/c+Y6PYfKB97/H8fGrJGl8 fM8d6nBtkRy+IWsk4Ky0KK+lQf6Wa28uyRrSSZhLUxtBNMHi6AwGkKY0VSyoZo15kalf /ex0YAi4uywrcvE7yQE+Geildc7DcZzhN7i6KGwnmgHHk31/UjpgsTggnRLh2JD26k+r 1PU65I7nNvnWlcu4DZJcVuUZGzY+FCoccdgYN+nnHzu8yuCqkPh0miJFUlxjSDVh/n2f XFGg== X-Gm-Message-State: AC+VfDyI4E3F9aIay9iMJ67Ifpgg2XUq2MtfYi0A7+/6oM8XH6bmKvW1 cJZHsVHUaU7lQ5WGS81DXezDLWe8mH56ERa2ACbwT22OchbVIv1gFX4sjL1Mu3Pp4YodCw+9+qY 1vwt9bde1ba3AFCE4NM+JgMUojp/ygRRGsKQCUjwzuki23JbmVhTEo39KVKQbHoAFc0guVYNWRY o= X-Received: by 2002:a17:907:1b24:b0:969:f677:11b4 with SMTP id mp36-20020a1709071b2400b00969f67711b4mr4695417ejc.37.1685179740225; Sat, 27 May 2023 02:29:00 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6VioES/Rx9hP8AsA1zJI1QwwVzx2zuT8nmSRlfliYPMRJzv0dfZPl/HDERIlCHYJCqFPbHOQ== X-Received: by 2002:a17:907:1b24:b0:969:f677:11b4 with SMTP id mp36-20020a1709071b2400b00969f67711b4mr4695404ejc.37.1685179739847; Sat, 27 May 2023 02:28:59 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, thuth@redhat.com, berrange@redhat.com Subject: [PATCH 3/5] meson: subprojects: replace submodules with wrap files Date: Sat, 27 May 2023 11:28:49 +0200 Message-Id: <20230527092851.705884-4-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230527092851.705884-1-pbonzini@redhat.com> References: <20230527092851.705884-1-pbonzini@redhat.com> 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=170.10.129.124; envelope-from=pbonzini@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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: 1685179838083100005 Content-Type: text/plain; charset="utf-8" Compared to submodules, .wrap files have several advantages: * option parsing and downloading is delegated to meson * the commit is stored in a text file instead of a magic entry in the git tree object * we could stop shipping external dependencies that are only used as a fallback, but not break compilation on platforms that lack them. For example it may make sense to download dtc at build time, controlled by --enable-download, even when building from a tarball. Right now, this patch does the opposite: make-release treats dtc like libvfio-user (which is not stable API and therefore hasn't found its way into any distros) and keycodemap (which is a copylib, for better or worse). dependency() can fall back to a wrap automatically. However, this is only possible for libraries that come with a .pc file, and this is not very common for libfdt even though the upstream project in principle provides it; it also removes the control that we provide with --enable-fdt=3D{system,internal}. Therefore, the logic to pick system vs. internal libfdt is left untouched. --enable-fdt=3Dgit is removed; it was already a synonym for --enable-fdt=3Dinternal. Signed-off-by: Paolo Bonzini --- .gitlab-ci.d/buildtest-template.yml | 1 + .gitmodules | 9 ---- configure | 75 ++++++++++++----------------- meson.build | 15 +----- scripts/archive-source.sh | 11 ++++- scripts/make-release | 5 ++ subprojects/.gitignore | 3 ++ subprojects/dtc | 1 - subprojects/dtc.wrap | 4 ++ subprojects/keycodemapdb | 1 - subprojects/keycodemapdb.wrap | 4 ++ subprojects/libvfio-user | 1 - subprojects/libvfio-user.wrap | 4 ++ 13 files changed, 61 insertions(+), 73 deletions(-) delete mode 160000 subprojects/dtc create mode 100644 subprojects/dtc.wrap delete mode 160000 subprojects/keycodemapdb create mode 100644 subprojects/keycodemapdb.wrap delete mode 160000 subprojects/libvfio-user create mode 100644 subprojects/libvfio-user.wrap diff --git a/.gitlab-ci.d/buildtest-template.yml b/.gitlab-ci.d/buildtest-t= emplate.yml index c9f2e737c09a..3c997d7265b2 100644 --- a/.gitlab-ci.d/buildtest-template.yml +++ b/.gitlab-ci.d/buildtest-template.yml @@ -44,6 +44,7 @@ script: - scripts/git-submodule.sh update $(sed -n '/GIT_SUBMODULES=3D/ s/.*=3D// p' build/config-host.mak) + - meson subprojects download $(cd build/subprojects && echo *) - cd build - find . -type f -exec touch {} + # Avoid recompiling by hiding ninja with NINJA=3D":" diff --git a/.gitmodules b/.gitmodules index f8b2ddf3877c..a934c85e4e40 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,9 +13,6 @@ [submodule "roms/qemu-palcode"] path =3D roms/qemu-palcode url =3D https://gitlab.com/qemu-project/qemu-palcode.git -[submodule "subprojects/dtc"] - path =3D subprojects/dtc - url =3D https://gitlab.com/qemu-project/dtc.git [submodule "roms/u-boot"] path =3D roms/u-boot url =3D https://gitlab.com/qemu-project/u-boot.git @@ -25,9 +22,6 @@ [submodule "roms/QemuMacDrivers"] path =3D roms/QemuMacDrivers url =3D https://gitlab.com/qemu-project/QemuMacDrivers.git -[submodule "subprojects/keycodemapdb"] - path =3D subprojects/keycodemapdb - url =3D https://gitlab.com/qemu-project/keycodemapdb.git [submodule "roms/seabios-hppa"] path =3D roms/seabios-hppa url =3D https://gitlab.com/qemu-project/seabios-hppa.git @@ -55,6 +49,3 @@ [submodule "tests/lcitool/libvirt-ci"] path =3D tests/lcitool/libvirt-ci url =3D https://gitlab.com/libvirt/libvirt-ci.git -[submodule "subprojects/libvfio-user"] - path =3D subprojects/libvfio-user - url =3D https://gitlab.com/qemu-project/libvfio-user.git diff --git a/configure b/configure index 2f908660e4f1..1d1b8736c0eb 100755 --- a/configure +++ b/configure @@ -253,7 +253,7 @@ else git_submodules_action=3D"ignore" fi =20 -git_submodules=3D"subprojects/keycodemapdb" +git_submodules=3D"" git=3D"git" debug_tcg=3D"no" docs=3D"auto" @@ -269,7 +269,6 @@ python=3D download=3D"enabled" bindir=3D"bin" skip_meson=3Dno -vfio_user_server=3D"disabled" use_containers=3D"yes" gdb_bin=3D$(command -v "gdb-multiarch" || command -v "gdb") gdb_arches=3D"" @@ -281,16 +280,13 @@ unset target_list_exclude =20 # The following Meson options are handled manually (still they # are included in the automatically generated help message) - -# 1. Track which submodules are needed -fdt=3D"auto" - -# 2. Automatically enable/disable other options +# because they automatically enable/disable other options tcg=3D"auto" cfi=3D"false" =20 -# 3. Need to check for -static-pie before Meson runs. Also, -# Meson has PIE as a boolean rather than enabled/disabled/auto. +# Meson has PIE as a boolean rather than enabled/disabled/auto, +# and we also need to check for -static-pie before Meson runs +# which requires knowing whether --static is enabled. pie=3D"" static=3D"no" =20 @@ -743,14 +739,6 @@ for opt do ;; --disable-cfi) cfi=3D"false" ;; - --disable-fdt) fdt=3D"disabled" - ;; - --enable-fdt) fdt=3D"enabled" - ;; - --enable-fdt=3Dgit) fdt=3D"internal" - ;; - --enable-fdt=3D*) fdt=3D"$optarg" - ;; --with-git=3D*) git=3D"$optarg" ;; --with-git-submodules=3D*) @@ -774,10 +762,6 @@ for opt do ;; --gdb=3D*) gdb_bin=3D"$optarg" ;; - --enable-vfio-user-server) vfio_user_server=3D"enabled" - ;; - --disable-vfio-user-server) vfio_user_server=3D"disabled" - ;; # everything else has the same name in configure and meson --*) meson_option_parse "$opt" "$optarg" ;; @@ -789,6 +773,30 @@ if test "$plugins" =3D "yes" -a "$tcg" =3D "disabled";= then error_exit "Can't enable plugins on non-TCG builds" fi =20 +if ! test -f "$source_path/subprojects/keycodemapdb/README" \ + && test -f "$download" =3D disabled +then + echo + echo "ERROR: missing subprojects" + echo + if test -e "$source_path/.git"; then + echo "--disable-download specified but subprojects were not" + echo "checked out. Please download subprojects." + else + echo "This is not a GIT checkout but subproject content appears to" + echo "be missing. Do not use 'git archive' or GitHub download link= s" + echo "to acquire QEMU source archives. Non-GIT builds are only" + echo "supported with source archives linked from:" + echo + echo " https://www.qemu.org/download/#source" + echo + echo "Developers working with GIT can use scripts/archive-source.s= h" + echo "if they need to create valid source archives." + fi + echo + exit 1 +fi + case $git_submodules_action in update|validate) if test ! -e "$source_path/.git" || ! has git; then @@ -797,7 +805,7 @@ case $git_submodules_action in fi ;; ignore) - if ! test -f "$source_path/subprojects/keycodemapdb/README" + if ! test -f "$source_path/tests/fp/berkeley-testfloat-3/README.md" then echo echo "ERROR: missing GIT submodules" @@ -1166,16 +1174,6 @@ EOF fi fi =20 -########################################## -# fdt probe - -case "$fdt" in - auto | enabled | internal) - # Simpler to always update submodule, even if not needed. - git_submodules=3D"${git_submodules} subprojects/dtc" - ;; -esac - ######################################## # check if ccache is interfering with # semantic analysis of macros @@ -1611,17 +1609,6 @@ write_target_makefile() { fi } =20 -########################################## -# check for vfio_user_server - -case "$vfio_user_server" in - enabled ) - if test "$git_submodules_action" !=3D "ignore"; then - git_submodules=3D"${git_submodules} subprojects/libvfio-user" - fi - ;; -esac - ####################################### # cross-compiled firmware targets =20 @@ -1953,12 +1940,10 @@ if test "$skip_meson" =3D no; then # QEMU options test "$cfi" !=3D false && meson_option_add "-Dcfi=3D$cfi" test "$docs" !=3D auto && meson_option_add "-Ddocs=3D$docs" - test "$fdt" !=3D auto && meson_option_add "-Dfdt=3D$fdt" test -n "${LIB_FUZZING_ENGINE+xxx}" && meson_option_add "-Dfuzzing_engin= e=3D$LIB_FUZZING_ENGINE" test "$qemu_suffix" !=3D qemu && meson_option_add "-Dqemu_suffix=3D$qemu= _suffix" test "$smbd" !=3D '' && meson_option_add "-Dsmbd=3D$smbd" test "$tcg" !=3D enabled && meson_option_add "-Dtcg=3D$tcg" - test "$vfio_user_server" !=3D auto && meson_option_add "-Dvfio_user_serv= er=3D$vfio_user_server" run_meson() { NINJA=3D$ninja $meson setup --prefix "$prefix" "$@" $cross_arg "$PWD" = "$source_path" } diff --git a/meson.build b/meson.build index b11773ab39e8..610f47d24593 100644 --- a/meson.build +++ b/meson.build @@ -3047,14 +3047,7 @@ endif =20 libvfio_user_dep =3D not_found if have_system and vfio_user_server_allowed - have_internal =3D fs.exists(meson.current_source_dir() / 'subprojects/li= bvfio-user/meson.build') - - if not have_internal - error('libvfio-user source not found - please pull git submodule') - endif - - libvfio_user_proj =3D subproject('libvfio-user') - + libvfio_user_proj =3D subproject('libvfio-user', required: true) libvfio_user_dep =3D libvfio_user_proj.get_variable('libvfio_user_dep') endif =20 @@ -3082,12 +3075,6 @@ if fdt_required.length() > 0 or fdt_opt =3D=3D 'enab= led' endif if not fdt.found() assert(fdt_opt =3D=3D 'internal') - have_internal =3D fs.exists(meson.current_source_dir() / 'subprojects/= dtc/meson.build') - - if not have_internal - error('libfdt source not found - please pull git submodule') - endif - libfdt_proj =3D subproject('dtc', required: true, default_options: ['tools=3Dfalse', 'yaml=3Dd= isabled', 'python=3Ddisabled', 'defau= lt_library=3Dstatic']) diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh index dba5ae05b67e..b99cb66e4122 100755 --- a/scripts/archive-source.sh +++ b/scripts/archive-source.sh @@ -26,8 +26,8 @@ sub_file=3D"${sub_tdir}/submodule.tar" # independent of what the developer currently has initialized # in their checkout, because the build environment is completely # different to the host OS. -submodules=3D"subprojects/dtc subprojects/keycodemapdb" -submodules=3D"$submodules tests/fp/berkeley-softfloat-3 tests/fp/berkeley-= testfloat-3" +subprojects=3D"dtc keycodemapdb libvfio-user" +submodules=3D"tests/fp/berkeley-softfloat-3 tests/fp/berkeley-testfloat-3" sub_deinit=3D"" =20 function cleanup() { @@ -70,4 +70,11 @@ for sm in $submodules; do tar --concatenate --file "$tar_file" "$sub_file" test $? -ne 0 && error "failed append submodule $sm to $tar_file" done + +for sp in $subprojects; do + meson subprojects download $sp + test $? -ne 0 && error "failed to download subproject $sp" + tar --append --file "$tar_file" --exclude=3D.git subprojects/$sp + test $? -ne 0 && error "failed to append subproject $sp to $tar_file" +done exit 0 diff --git a/scripts/make-release b/scripts/make-release index 44a9d86a04a7..0604e61b8143 100755 --- a/scripts/make-release +++ b/scripts/make-release @@ -16,6 +16,9 @@ if [ $# -ne 2 ]; then exit 0 fi =20 +# Only include wraps that are invoked with subproject() +SUBPROJECTS=3D"dtc libvfio-user keycodemapdb" + src=3D"$1" version=3D"$2" destination=3Dqemu-${version} @@ -26,6 +29,8 @@ git clone --single-branch -b "v${version}" -c advice.deta= chedHead=3Dfalse \ pushd ${destination} =20 git submodule update --init --single-branch +meson subprojects download $SUBPROJECTS + (cd roms/seabios && git describe --tags --long --dirty > .version) (cd roms/skiboot && ./make_version.sh > .version) # Fetch edk2 submodule's submodules, since it won't have access to them via diff --git a/subprojects/.gitignore b/subprojects/.gitignore index 7560ebb0b1a0..935e9a72a8f9 100644 --- a/subprojects/.gitignore +++ b/subprojects/.gitignore @@ -1,3 +1,6 @@ /packagecache =20 +/dtc +/keycodemapdb +/libvfio-user /slirp diff --git a/subprojects/dtc b/subprojects/dtc deleted file mode 160000 index b6910bec1161..000000000000 --- a/subprojects/dtc +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b6910bec11614980a21e46fbccc35934b671bd81 diff --git a/subprojects/dtc.wrap b/subprojects/dtc.wrap new file mode 100644 index 000000000000..d1bc9174e913 --- /dev/null +++ b/subprojects/dtc.wrap @@ -0,0 +1,4 @@ +[wrap-git] +url =3D https://gitlab.com/qemu-project/dtc.git +revision =3D b6910bec11614980a21e46fbccc35934b671bd81 +depth =3D 1 diff --git a/subprojects/keycodemapdb b/subprojects/keycodemapdb deleted file mode 160000 index f5772a62ec52..000000000000 --- a/subprojects/keycodemapdb +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f5772a62ec52591ff6870b7e8ef32482371f22c6 diff --git a/subprojects/keycodemapdb.wrap b/subprojects/keycodemapdb.wrap new file mode 100644 index 000000000000..dda7b0e5716f --- /dev/null +++ b/subprojects/keycodemapdb.wrap @@ -0,0 +1,4 @@ +[wrap-git] +url =3D https://gitlab.com/qemu-project/keycodemapdb.git +revision =3D f5772a62ec52591ff6870b7e8ef32482371f22c6 +depth =3D 1 diff --git a/subprojects/libvfio-user b/subprojects/libvfio-user deleted file mode 160000 index 0b28d205572c..000000000000 --- a/subprojects/libvfio-user +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0b28d205572c80b568a1003db2c8f37ca333e4d7 diff --git a/subprojects/libvfio-user.wrap b/subprojects/libvfio-user.wrap new file mode 100644 index 000000000000..416955ca4515 --- /dev/null +++ b/subprojects/libvfio-user.wrap @@ -0,0 +1,4 @@ +[wrap-git] +url =3D https://gitlab.com/qemu-project/libvfio-user.git +revision =3D 0b28d205572c80b568a1003db2c8f37ca333e4d7 +depth =3D 1 --=20 2.40.1 From nobody Fri Nov 1 00:01:53 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=1685179837; cv=none; d=zohomail.com; s=zohoarc; b=Dk/r1h3GNCX3cyYVOpicpMWHyoKL7GAsYU1Ah6lKXb/kcRa/eSl7RwK90rDpgsJYyka50PUWp0sPynMJDDXTYAnrbFdPQOVgDhZwQ+PlIcWRa+S431S1OQalf1qFuZHpGVRxiqubTiUU70cesqW0NmN8vmQ22Nloh5Owkd4vQco= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1685179837; 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=WKzFivjbMYBh77Fl2PI+Y2JzmVZLzbCiNeid3eWmHow=; b=I5ggrlqoM8SvbO23/xtZlQ/7ePxPa0yJm/j1ZduGJkICWixKjKGVT14B25yhfLWZ3a2N5x6GvhNTSTDf8tViZRs62wKq2uxDEJr+SHm551908wS55oEcoX/JhqoAuBrxoNW7yRfVrX3Wv75UkXfHgXiVYC/OOS3XKDbnWFaiD/g= 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 1685179837340506.3047383747178; Sat, 27 May 2023 02:30:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2qEV-0007Zs-RM; Sat, 27 May 2023 05:29: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 1q2qEU-0007Zj-RD for qemu-devel@nongnu.org; Sat, 27 May 2023 05:29:06 -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 1q2qET-0007Xq-I4 for qemu-devel@nongnu.org; Sat, 27 May 2023 05:29:06 -0400 Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-558-f-pP2XBWMVifbPf1a56oGg-1; Sat, 27 May 2023 05:29:03 -0400 Received: by mail-ej1-f71.google.com with SMTP id a640c23a62f3a-94a34d3e5ebso138916466b.3 for ; Sat, 27 May 2023 02:29:03 -0700 (PDT) Received: from [192.168.10.118] ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e]) by smtp.gmail.com with ESMTPSA id m22-20020a1709066d1600b0096f777fc1ccsm3132738ejr.200.2023.05.27.02.29.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 May 2023 02:29:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685179744; 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=WKzFivjbMYBh77Fl2PI+Y2JzmVZLzbCiNeid3eWmHow=; b=hCgecy5WpAGrn4AjWhDpPm1wihlD4aGTmRspUV/JAtV5VlSfjTIfDg95mAZ1k7CLvowuiu GZSfJzc0hBi5O1OOlTrxK3ddiY7pPzvJUbYz09VHXO4RvlZULHhEMnYnoooMbXPbcBTlHC H+tNwy5wTTmkutyil5BIunJInxLqRx4= X-MC-Unique: f-pP2XBWMVifbPf1a56oGg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685179742; x=1687771742; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WKzFivjbMYBh77Fl2PI+Y2JzmVZLzbCiNeid3eWmHow=; b=dVYVRfSKljPEb2oBpcFDHggCeUvoyjAbw1HXz+JEvBxhZ8QU9Y32xMGYXjSdnOJmNU Ea1rkIW7pd2oxq00BiGkthSjBA0XutSaBNiYSO8WdZ1P0Y9kyJQL224ryr7CBIcqYj6i dWaaFS5bf5bdjzvDyf6zbmgNAnwWtY+aaat/Ez71tV2WsofiMNJIqaaW19lYp/lXa+BN owEPcpCjoTx6g6MV3moaSyhvhUIIUqYiq2fx4yJ2MKdYzR3NrDunQEow34kiM2AmwOsW /mZO4XmGNi4TvGh0cYtDxjPScwJd901nGm7EJ0URYEr9Zbdt711U9j4q5l9pmqb6pEcl QHlg== X-Gm-Message-State: AC+VfDyBSMzDHLUa6fc8ePy0ysJT7Is3lYdGwVnjM6cgNdK26jo3sjkm jKt6DWm3fSGeayGR5JQoITKE2RPVM5FQv0/9sj/+N6+Lg6TBBMsAcElny8fWqATp116PMsh/jIw o7ZEvOlNJSUff6Jc671+cS9Hi2+k2X4nkSJjVoFZQ1GeC+MKVK/WbhcCwTHcQDSsZrtwnCIG13I 8= X-Received: by 2002:a17:907:7209:b0:933:868:413a with SMTP id dr9-20020a170907720900b009330868413amr4837972ejc.15.1685179741999; Sat, 27 May 2023 02:29:01 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7mr/UAIseP+lhWUM4sk7s7k4kCcHFwb86JhR7sXoT5OiWHjk96kBbzc6gdGUsJxDaI0au5kA== X-Received: by 2002:a17:907:7209:b0:933:868:413a with SMTP id dr9-20020a170907720900b009330868413amr4837958ejc.15.1685179741761; Sat, 27 May 2023 02:29:01 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, thuth@redhat.com, berrange@redhat.com Subject: [PATCH 4/5] configure: check for SLOF submodule before building pc-bios/s390-ccw Date: Sat, 27 May 2023 11:28:50 +0200 Message-Id: <20230527092851.705884-5-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230527092851.705884-1-pbonzini@redhat.com> References: <20230527092851.705884-1-pbonzini@redhat.com> 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=170.10.133.124; envelope-from=pbonzini@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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: 1685179838761100009 Content-Type: text/plain; charset="utf-8" SLOF is required for building the s390-ccw firmware on s390x, since it is using the libnet code from SLOF for network booting. If SLOF is absent and submodules are not updated, pc-bios/s390-ccw cannot be built. Signed-off-by: Paolo Bonzini --- configure | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 1d1b8736c0eb..c92a3b30b9a4 100755 --- a/configure +++ b/configure @@ -1662,7 +1662,8 @@ fi =20 # Only build s390-ccw bios if the compiler has -march=3Dz900 or -march=3Dz= 10 # (which is the lowest architecture level that Clang supports) -if have_target s390x-softmmu && probe_target_compiler s390x-softmmu; then +if have_target s390x-softmmu && probe_target_compiler s390x-softmmu && \ + ( test "$git_submodules_action" !=3D ignore || test -f roms/SLOF/VERSI= ON ); then write_c_skeleton do_compiler "$target_cc" $target_cc_cflags -march=3Dz900 -o $TMPO -c $TM= PC has_z900=3D$? --=20 2.40.1 From nobody Fri Nov 1 00:01:53 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=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1685179843391980.7398015311027; Sat, 27 May 2023 02:30:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q2qEc-0007bx-FT; Sat, 27 May 2023 05:29:14 -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 1q2qEb-0007aY-86 for qemu-devel@nongnu.org; Sat, 27 May 2023 05:29:13 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q2qEW-0007Y8-7M for qemu-devel@nongnu.org; Sat, 27 May 2023 05:29:13 -0400 Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-489--vSu5j_JOHCykIcqbhIOrg-1; Sat, 27 May 2023 05:29:06 -0400 Received: by mail-ed1-f72.google.com with SMTP id 4fb4d7f45d1cf-513f5318ff2so1325729a12.3 for ; Sat, 27 May 2023 02:29:06 -0700 (PDT) Received: from [192.168.10.118] ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e]) by smtp.gmail.com with ESMTPSA id l19-20020a056402345300b00504ecc4fa96sm792893edc.95.2023.05.27.02.29.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 May 2023 02:29:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685179747; 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=rq4gbqCRb6rB+9amSD+xSC0op5SmGjtmkAfzHA6Dzjs=; b=a5Vb+D8aPRuy+ez9EMkYQ7Qgk+Sh5q03AFhrH7xbvjfmxn77B0mCvgYwEzZqIbHlSfRD8z uM5S6Q//IJlfa1Z95phQsPYLRI29ru8fNs/EZkSxcOUCFuj79WlZX9j6zFwYnBViTlgwwL b92ntZvLBqvPeCp7CMRPDmQRc5edZ+Y= X-MC-Unique: -vSu5j_JOHCykIcqbhIOrg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685179744; x=1687771744; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rq4gbqCRb6rB+9amSD+xSC0op5SmGjtmkAfzHA6Dzjs=; b=ISfdK1dFulPr99ZT5odtXzowYUBflCR9LifR+9JahCFjptdHSQ227ip7BzmFNV0mqP GgLJwNpIkjWMWRG9iMSRTaHz4Yrhq4dCxuMgT3hHBt8xjX/wkIZ9oXrwzDN0lVw5Upir 8/BquhcZnof+7yNUnyqBOASEQy1Lzq2Mf7Zt9NK7oSoy9S0uFcZn3RUy6kml1qAgBWAR gZPIAl7zCf/CflOCMvH1ubGCnfhSnGCmHN6lHf5OdmhkPNlpZwzh89wjPzRfVhFj1kCb 1/Zfxyvr6m3SdjMoWvVtBGpIe3MhxFlsTLt+AGOmDFcGnFbCun876F5+4eAco3m+ZxZ8 NAhA== X-Gm-Message-State: AC+VfDxl+/h+mepLFYIOO/QOqmaAvhEC2uPprCuPWHZzFiu+543s/7tl wgjgQihmITBwz6NKN6kHRrL1NuN7s95q8WHvsR9iz+6GZCpR9Mfz/EfskmoK4FTrkALJAT7it4p 7WXLWZc3yvLsu/HUKjpaixnyYf/1twVpVBOfUvzKGITRa4YzT3hzUDoOv++Bzs8T8QtxV6PZAh2 Y= X-Received: by 2002:a50:fb90:0:b0:510:f44c:4b71 with SMTP id e16-20020a50fb90000000b00510f44c4b71mr3588775edq.27.1685179744278; Sat, 27 May 2023 02:29:04 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4mHXqnNMgQXSj40snINv8vyp/ebdJvTM5DAsdbPSyvK8ix6HWQjxpCnpuIBhht5Rlh7mtCJQ== X-Received: by 2002:a50:fb90:0:b0:510:f44c:4b71 with SMTP id e16-20020a50fb90000000b00510f44c4b71mr3588748edq.27.1685179743399; Sat, 27 May 2023 02:29:03 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, thuth@redhat.com, berrange@redhat.com Subject: [PATCH 5/5] meson: subprojects: replace berkeley-{soft, test}float-3 with wraps Date: Sat, 27 May 2023 11:28:51 +0200 Message-Id: <20230527092851.705884-6-pbonzini@redhat.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230527092851.705884-1-pbonzini@redhat.com> References: <20230527092851.705884-1-pbonzini@redhat.com> 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=170.10.129.124; envelope-from=pbonzini@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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: fail (Header signature does not verify) X-ZM-MESSAGEID: 1685179844829100003 Content-Type: text/plain; charset="utf-8" Unlike other subprojects, these require an overlay directory to include meson rules to build the libraries. The rules are basically lifted from tests/fp/meson.build, with a few changes to create platform.h and publish a dependency. The build defines are passed through a subproject option, and posted back to users of the library via the dependency's compile_args. The only remaining user of GIT_SUBMODULES and GIT_SUBMODULES_ACTION is roms/SLOF, which is used to build pc-bios/s390-ccw. All other roms submodules are only present to satisfy the license on pre-built firmware blobs. Best reviewed with --color-moved. Signed-off-by: Paolo Bonzini --- .gitmodules | 6 - configure | 27 - scripts/archive-source.sh | 22 +- scripts/make-release | 2 +- subprojects/.gitignore | 2 + subprojects/berkeley-softfloat-3.wrap | 5 + subprojects/berkeley-testfloat-3.wrap | 5 + .../berkeley-softfloat-3/meson.build | 339 +++++++++++ .../berkeley-softfloat-3/meson_options.txt | 1 + .../berkeley-testfloat-3/meson.build | 220 +++++++ .../berkeley-testfloat-3/meson_options.txt | 1 + tests/fp/meson.build | 541 +----------------- 12 files changed, 590 insertions(+), 581 deletions(-) create mode 100644 subprojects/berkeley-softfloat-3.wrap create mode 100644 subprojects/berkeley-testfloat-3.wrap create mode 100644 subprojects/packagefiles/berkeley-softfloat-3/meson.bui= ld create mode 100644 subprojects/packagefiles/berkeley-softfloat-3/meson_opt= ions.txt create mode 100644 subprojects/packagefiles/berkeley-testfloat-3/meson.bui= ld create mode 100644 subprojects/packagefiles/berkeley-testfloat-3/meson_opt= ions.txt diff --git a/.gitmodules b/.gitmodules index a934c85e4e40..73cae4cd4da0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,12 +28,6 @@ [submodule "roms/u-boot-sam460ex"] path =3D roms/u-boot-sam460ex url =3D https://gitlab.com/qemu-project/u-boot-sam460ex.git -[submodule "tests/fp/berkeley-testfloat-3"] - path =3D tests/fp/berkeley-testfloat-3 - url =3D https://gitlab.com/qemu-project/berkeley-testfloat-3.git -[submodule "tests/fp/berkeley-softfloat-3"] - path =3D tests/fp/berkeley-softfloat-3 - url =3D https://gitlab.com/qemu-project/berkeley-softfloat-3.git [submodule "roms/edk2"] path =3D roms/edk2 url =3D https://gitlab.com/qemu-project/edk2.git diff --git a/configure b/configure index c92a3b30b9a4..119c6e161377 100755 --- a/configure +++ b/configure @@ -805,28 +805,6 @@ case $git_submodules_action in fi ;; ignore) - if ! test -f "$source_path/tests/fp/berkeley-testfloat-3/README.md" - then - echo - echo "ERROR: missing GIT submodules" - echo - if test -e "$source_path/.git"; then - echo "--with-git-submodules=3Dignore specified but submodu= les were not" - echo "checked out. Please initialize and update submodule= s." - else - echo "This is not a GIT checkout but module content appear= s to" - echo "be missing. Do not use 'git archive' or GitHub downl= oad links" - echo "to acquire QEMU source archives. Non-GIT builds are = only" - echo "supported with source archives linked from:" - echo - echo " https://www.qemu.org/download/#source" - echo - echo "Developers working with GIT can use scripts/archive-= source.sh" - echo "if they need to create valid source archives." - fi - echo - exit 1 - fi ;; *) echo "ERROR: invalid --with-git-submodules=3D value '$git_submodul= es_action'" @@ -1142,11 +1120,6 @@ if test "$tcg" =3D "auto"; then fi fi =20 -if test "$tcg" =3D "enabled"; then - git_submodules=3D"$git_submodules tests/fp/berkeley-testfloat-3" - git_submodules=3D"$git_submodules tests/fp/berkeley-softfloat-3" -fi - ########################################## # big/little endian test cat > $TMPC << EOF diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh index b99cb66e4122..489963049102 100755 --- a/scripts/archive-source.sh +++ b/scripts/archive-source.sh @@ -26,8 +26,7 @@ sub_file=3D"${sub_tdir}/submodule.tar" # independent of what the developer currently has initialized # in their checkout, because the build environment is completely # different to the host OS. -subprojects=3D"dtc keycodemapdb libvfio-user" -submodules=3D"tests/fp/berkeley-softfloat-3 tests/fp/berkeley-testfloat-3" +subprojects=3D"dtc keycodemapdb libvfio-user berkeley-softfloat-3 berkeley= -testfloat-3" sub_deinit=3D"" =20 function cleanup() { @@ -51,25 +50,6 @@ function tree_ish() { =20 git archive --format tar "$(tree_ish)" > "$tar_file" test $? -ne 0 && error "failed to archive qemu" -for sm in $submodules; do - status=3D"$(git submodule status "$sm")" - smhash=3D"${status#[ +-]}" - smhash=3D"${smhash%% *}" - case "$status" in - -*) - sub_deinit=3D"$sub_deinit $sm" - git submodule update --init "$sm" - test $? -ne 0 && error "failed to update submodule $sm" - ;; - +*) - echo "WARNING: submodule $sm is out of sync" - ;; - esac - (cd $sm; git archive --format tar --prefix "$sm/" $(tree_ish)) > "$sub= _file" - test $? -ne 0 && error "failed to archive submodule $sm ($smhash)" - tar --concatenate --file "$tar_file" "$sub_file" - test $? -ne 0 && error "failed append submodule $sm to $tar_file" -done =20 for sp in $subprojects; do meson subprojects download $sp diff --git a/scripts/make-release b/scripts/make-release index 0604e61b8143..c5db87b3f91b 100755 --- a/scripts/make-release +++ b/scripts/make-release @@ -17,7 +17,7 @@ if [ $# -ne 2 ]; then fi =20 # Only include wraps that are invoked with subproject() -SUBPROJECTS=3D"dtc libvfio-user keycodemapdb" +SUBPROJECTS=3D"dtc libvfio-user keycodemapdb berkeley-softfloat-3 berkeley= -testfloat-3" =20 src=3D"$1" version=3D"$2" diff --git a/subprojects/.gitignore b/subprojects/.gitignore index 935e9a72a8f9..adca0266be69 100644 --- a/subprojects/.gitignore +++ b/subprojects/.gitignore @@ -1,5 +1,7 @@ /packagecache =20 +/berkeley-softfloat-3 +/berkeley-testfloat-3 /dtc /keycodemapdb /libvfio-user diff --git a/subprojects/berkeley-softfloat-3.wrap b/subprojects/berkeley-s= oftfloat-3.wrap new file mode 100644 index 000000000000..a8fd87740b15 --- /dev/null +++ b/subprojects/berkeley-softfloat-3.wrap @@ -0,0 +1,5 @@ +[wrap-git] +url =3D https://gitlab.com/qemu-project/berkeley-softfloat-3 +revision =3D b64af41c3276f97f0e181920400ee056b9c88037 +patch_directory =3D berkeley-softfloat-3 +depth =3D 1 diff --git a/subprojects/berkeley-testfloat-3.wrap b/subprojects/berkeley-t= estfloat-3.wrap new file mode 100644 index 000000000000..6ad80a37b2aa --- /dev/null +++ b/subprojects/berkeley-testfloat-3.wrap @@ -0,0 +1,5 @@ +[wrap-git] +url =3D https://gitlab.com/qemu-project/berkeley-testfloat-3 +revision =3D 40619cbb3bf32872df8c53cc457039229428a263 +patch_directory =3D berkeley-testfloat-3 +depth =3D 1 diff --git a/subprojects/packagefiles/berkeley-softfloat-3/meson.build b/su= bprojects/packagefiles/berkeley-softfloat-3/meson.build new file mode 100644 index 000000000000..4ce964b8389c --- /dev/null +++ b/subprojects/packagefiles/berkeley-softfloat-3/meson.build @@ -0,0 +1,339 @@ +project('berkeley-softfloat-3', 'c', + default_options: ['warning_level=3D1', 'c_std=3Dgnu99']) + +fpcflags =3D get_option('defines') + +platform_data =3D configuration_data() +platform_data.set('INLINE', 'static inline') +platform_data.set('LITTLEENDIAN', host_machine.endian() =3D=3D 'little') +configure_file(output: 'platform.h', configuration: platform_data) + +sfdir =3D 'source' +sfspedir =3D sfdir / '8086-SSE' +sfinc =3D include_directories('.', sfdir / 'include', sfspedir) + +add_project_arguments([ + '-Wno-implicit-fallthrough', + '-Wno-missing-prototypes', + '-Wno-redundant-decls', + '-Wno-return-type', + '-Wno-error', +], native: false, language: 'c') + +libsoftfloat =3D static_library( + 'softfloat', + files( + # primitives + sfdir / 's_eq128.c', + sfdir / 's_le128.c', + sfdir / 's_lt128.c', + sfdir / 's_shortShiftLeft128.c', + sfdir / 's_shortShiftRight128.c', + sfdir / 's_shortShiftRightJam64.c', + sfdir / 's_shortShiftRightJam64Extra.c', + sfdir / 's_shortShiftRightJam128.c', + sfdir / 's_shortShiftRightJam128Extra.c', + sfdir / 's_shiftRightJam32.c', + sfdir / 's_shiftRightJam64.c', + sfdir / 's_shiftRightJam64Extra.c', + sfdir / 's_shiftRightJam128.c', + sfdir / 's_shiftRightJam128Extra.c', + sfdir / 's_shiftRightJam256M.c', + sfdir / 's_countLeadingZeros8.c', + sfdir / 's_countLeadingZeros16.c', + sfdir / 's_countLeadingZeros32.c', + sfdir / 's_countLeadingZeros64.c', + sfdir / 's_add128.c', + sfdir / 's_add256M.c', + sfdir / 's_sub128.c', + sfdir / 's_sub256M.c', + sfdir / 's_mul64ByShifted32To128.c', + sfdir / 's_mul64To128.c', + sfdir / 's_mul128By32.c', + sfdir / 's_mul128To256M.c', + sfdir / 's_approxRecip_1Ks.c', + sfdir / 's_approxRecip32_1.c', + sfdir / 's_approxRecipSqrt_1Ks.c', + sfdir / 's_approxRecipSqrt32_1.c', + # others + sfdir / 's_roundToUI32.c', + sfdir / 's_roundToUI64.c', + sfdir / 's_roundToI32.c', + sfdir / 's_roundToI64.c', + sfdir / 's_normSubnormalF16Sig.c', + sfdir / 's_roundPackToF16.c', + sfdir / 's_normRoundPackToF16.c', + sfdir / 's_addMagsF16.c', + sfdir / 's_subMagsF16.c', + sfdir / 's_mulAddF16.c', + sfdir / 's_normSubnormalF32Sig.c', + sfdir / 's_roundPackToF32.c', + sfdir / 's_normRoundPackToF32.c', + sfdir / 's_addMagsF32.c', + sfdir / 's_subMagsF32.c', + sfdir / 's_mulAddF32.c', + sfdir / 's_normSubnormalF64Sig.c', + sfdir / 's_roundPackToF64.c', + sfdir / 's_normRoundPackToF64.c', + sfdir / 's_addMagsF64.c', + sfdir / 's_subMagsF64.c', + sfdir / 's_mulAddF64.c', + sfdir / 's_normSubnormalExtF80Sig.c', + sfdir / 's_roundPackToExtF80.c', + sfdir / 's_normRoundPackToExtF80.c', + sfdir / 's_addMagsExtF80.c', + sfdir / 's_subMagsExtF80.c', + sfdir / 's_normSubnormalF128Sig.c', + sfdir / 's_roundPackToF128.c', + sfdir / 's_normRoundPackToF128.c', + sfdir / 's_addMagsF128.c', + sfdir / 's_subMagsF128.c', + sfdir / 's_mulAddF128.c', + sfdir / 'softfloat_state.c', + sfdir / 'ui32_to_f16.c', + sfdir / 'ui32_to_f32.c', + sfdir / 'ui32_to_f64.c', + sfdir / 'ui32_to_extF80.c', + sfdir / 'ui32_to_extF80M.c', + sfdir / 'ui32_to_f128.c', + sfdir / 'ui32_to_f128M.c', + sfdir / 'ui64_to_f16.c', + sfdir / 'ui64_to_f32.c', + sfdir / 'ui64_to_f64.c', + sfdir / 'ui64_to_extF80.c', + sfdir / 'ui64_to_extF80M.c', + sfdir / 'ui64_to_f128.c', + sfdir / 'ui64_to_f128M.c', + sfdir / 'i32_to_f16.c', + sfdir / 'i32_to_f32.c', + sfdir / 'i32_to_f64.c', + sfdir / 'i32_to_extF80.c', + sfdir / 'i32_to_extF80M.c', + sfdir / 'i32_to_f128.c', + sfdir / 'i32_to_f128M.c', + sfdir / 'i64_to_f16.c', + sfdir / 'i64_to_f32.c', + sfdir / 'i64_to_f64.c', + sfdir / 'i64_to_extF80.c', + sfdir / 'i64_to_extF80M.c', + sfdir / 'i64_to_f128.c', + sfdir / 'i64_to_f128M.c', + sfdir / 'f16_to_ui32.c', + sfdir / 'f16_to_ui64.c', + sfdir / 'f16_to_i32.c', + sfdir / 'f16_to_i64.c', + sfdir / 'f16_to_ui32_r_minMag.c', + sfdir / 'f16_to_ui64_r_minMag.c', + sfdir / 'f16_to_i32_r_minMag.c', + sfdir / 'f16_to_i64_r_minMag.c', + sfdir / 'f16_to_f32.c', + sfdir / 'f16_to_f64.c', + sfdir / 'f16_to_extF80.c', + sfdir / 'f16_to_extF80M.c', + sfdir / 'f16_to_f128.c', + sfdir / 'f16_to_f128M.c', + sfdir / 'f16_roundToInt.c', + sfdir / 'f16_add.c', + sfdir / 'f16_sub.c', + sfdir / 'f16_mul.c', + sfdir / 'f16_mulAdd.c', + sfdir / 'f16_div.c', + sfdir / 'f16_rem.c', + sfdir / 'f16_sqrt.c', + sfdir / 'f16_eq.c', + sfdir / 'f16_le.c', + sfdir / 'f16_lt.c', + sfdir / 'f16_eq_signaling.c', + sfdir / 'f16_le_quiet.c', + sfdir / 'f16_lt_quiet.c', + sfdir / 'f16_isSignalingNaN.c', + sfdir / 'f32_to_ui32.c', + sfdir / 'f32_to_ui64.c', + sfdir / 'f32_to_i32.c', + sfdir / 'f32_to_i64.c', + sfdir / 'f32_to_ui32_r_minMag.c', + sfdir / 'f32_to_ui64_r_minMag.c', + sfdir / 'f32_to_i32_r_minMag.c', + sfdir / 'f32_to_i64_r_minMag.c', + sfdir / 'f32_to_f16.c', + sfdir / 'f32_to_f64.c', + sfdir / 'f32_to_extF80.c', + sfdir / 'f32_to_extF80M.c', + sfdir / 'f32_to_f128.c', + sfdir / 'f32_to_f128M.c', + sfdir / 'f32_roundToInt.c', + sfdir / 'f32_add.c', + sfdir / 'f32_sub.c', + sfdir / 'f32_mul.c', + sfdir / 'f32_mulAdd.c', + sfdir / 'f32_div.c', + sfdir / 'f32_rem.c', + sfdir / 'f32_sqrt.c', + sfdir / 'f32_eq.c', + sfdir / 'f32_le.c', + sfdir / 'f32_lt.c', + sfdir / 'f32_eq_signaling.c', + sfdir / 'f32_le_quiet.c', + sfdir / 'f32_lt_quiet.c', + sfdir / 'f32_isSignalingNaN.c', + sfdir / 'f64_to_ui32.c', + sfdir / 'f64_to_ui64.c', + sfdir / 'f64_to_i32.c', + sfdir / 'f64_to_i64.c', + sfdir / 'f64_to_ui32_r_minMag.c', + sfdir / 'f64_to_ui64_r_minMag.c', + sfdir / 'f64_to_i32_r_minMag.c', + sfdir / 'f64_to_i64_r_minMag.c', + sfdir / 'f64_to_f16.c', + sfdir / 'f64_to_f32.c', + sfdir / 'f64_to_extF80.c', + sfdir / 'f64_to_extF80M.c', + sfdir / 'f64_to_f128.c', + sfdir / 'f64_to_f128M.c', + sfdir / 'f64_roundToInt.c', + sfdir / 'f64_add.c', + sfdir / 'f64_sub.c', + sfdir / 'f64_mul.c', + sfdir / 'f64_mulAdd.c', + sfdir / 'f64_div.c', + sfdir / 'f64_rem.c', + sfdir / 'f64_sqrt.c', + sfdir / 'f64_eq.c', + sfdir / 'f64_le.c', + sfdir / 'f64_lt.c', + sfdir / 'f64_eq_signaling.c', + sfdir / 'f64_le_quiet.c', + sfdir / 'f64_lt_quiet.c', + sfdir / 'f64_isSignalingNaN.c', + sfdir / 'extF80_to_ui32.c', + sfdir / 'extF80_to_ui64.c', + sfdir / 'extF80_to_i32.c', + sfdir / 'extF80_to_i64.c', + sfdir / 'extF80_to_ui32_r_minMag.c', + sfdir / 'extF80_to_ui64_r_minMag.c', + sfdir / 'extF80_to_i32_r_minMag.c', + sfdir / 'extF80_to_i64_r_minMag.c', + sfdir / 'extF80_to_f16.c', + sfdir / 'extF80_to_f32.c', + sfdir / 'extF80_to_f64.c', + sfdir / 'extF80_to_f128.c', + sfdir / 'extF80_roundToInt.c', + sfdir / 'extF80_add.c', + sfdir / 'extF80_sub.c', + sfdir / 'extF80_mul.c', + sfdir / 'extF80_div.c', + sfdir / 'extF80_rem.c', + sfdir / 'extF80_sqrt.c', + sfdir / 'extF80_eq.c', + sfdir / 'extF80_le.c', + sfdir / 'extF80_lt.c', + sfdir / 'extF80_eq_signaling.c', + sfdir / 'extF80_le_quiet.c', + sfdir / 'extF80_lt_quiet.c', + sfdir / 'extF80_isSignalingNaN.c', + sfdir / 'extF80M_to_ui32.c', + sfdir / 'extF80M_to_ui64.c', + sfdir / 'extF80M_to_i32.c', + sfdir / 'extF80M_to_i64.c', + sfdir / 'extF80M_to_ui32_r_minMag.c', + sfdir / 'extF80M_to_ui64_r_minMag.c', + sfdir / 'extF80M_to_i32_r_minMag.c', + sfdir / 'extF80M_to_i64_r_minMag.c', + sfdir / 'extF80M_to_f16.c', + sfdir / 'extF80M_to_f32.c', + sfdir / 'extF80M_to_f64.c', + sfdir / 'extF80M_to_f128M.c', + sfdir / 'extF80M_roundToInt.c', + sfdir / 'extF80M_add.c', + sfdir / 'extF80M_sub.c', + sfdir / 'extF80M_mul.c', + sfdir / 'extF80M_div.c', + sfdir / 'extF80M_rem.c', + sfdir / 'extF80M_sqrt.c', + sfdir / 'extF80M_eq.c', + sfdir / 'extF80M_le.c', + sfdir / 'extF80M_lt.c', + sfdir / 'extF80M_eq_signaling.c', + sfdir / 'extF80M_le_quiet.c', + sfdir / 'extF80M_lt_quiet.c', + sfdir / 'f128_to_ui32.c', + sfdir / 'f128_to_ui64.c', + sfdir / 'f128_to_i32.c', + sfdir / 'f128_to_i64.c', + sfdir / 'f128_to_ui32_r_minMag.c', + sfdir / 'f128_to_ui64_r_minMag.c', + sfdir / 'f128_to_i32_r_minMag.c', + sfdir / 'f128_to_i64_r_minMag.c', + sfdir / 'f128_to_f16.c', + sfdir / 'f128_to_f32.c', + sfdir / 'f128_to_extF80.c', + sfdir / 'f128_to_f64.c', + sfdir / 'f128_roundToInt.c', + sfdir / 'f128_add.c', + sfdir / 'f128_sub.c', + sfdir / 'f128_mul.c', + sfdir / 'f128_mulAdd.c', + sfdir / 'f128_div.c', + sfdir / 'f128_rem.c', + sfdir / 'f128_sqrt.c', + sfdir / 'f128_eq.c', + sfdir / 'f128_le.c', + sfdir / 'f128_lt.c', + sfdir / 'f128_eq_signaling.c', + sfdir / 'f128_le_quiet.c', + sfdir / 'f128_lt_quiet.c', + sfdir / 'f128_isSignalingNaN.c', + sfdir / 'f128M_to_ui32.c', + sfdir / 'f128M_to_ui64.c', + sfdir / 'f128M_to_i32.c', + sfdir / 'f128M_to_i64.c', + sfdir / 'f128M_to_ui32_r_minMag.c', + sfdir / 'f128M_to_ui64_r_minMag.c', + sfdir / 'f128M_to_i32_r_minMag.c', + sfdir / 'f128M_to_i64_r_minMag.c', + sfdir / 'f128M_to_f16.c', + sfdir / 'f128M_to_f32.c', + sfdir / 'f128M_to_extF80M.c', + sfdir / 'f128M_to_f64.c', + sfdir / 'f128M_roundToInt.c', + sfdir / 'f128M_add.c', + sfdir / 'f128M_sub.c', + sfdir / 'f128M_mul.c', + sfdir / 'f128M_mulAdd.c', + sfdir / 'f128M_div.c', + sfdir / 'f128M_rem.c', + sfdir / 'f128M_sqrt.c', + sfdir / 'f128M_eq.c', + sfdir / 'f128M_le.c', + sfdir / 'f128M_lt.c', + sfdir / 'f128M_eq_signaling.c', + sfdir / 'f128M_le_quiet.c', + sfdir / 'f128M_lt_quiet.c', + # spe + sfspedir / 'softfloat_raiseFlags.c', + sfspedir / 's_f16UIToCommonNaN.c', + sfspedir / 's_commonNaNToF16UI.c', + sfspedir / 's_propagateNaNF16UI.c', + sfspedir / 's_f32UIToCommonNaN.c', + sfspedir / 's_commonNaNToF32UI.c', + sfspedir / 's_propagateNaNF32UI.c', + sfspedir / 's_f64UIToCommonNaN.c', + sfspedir / 's_commonNaNToF64UI.c', + sfspedir / 's_propagateNaNF64UI.c', + sfspedir / 'extF80M_isSignalingNaN.c', + sfspedir / 's_extF80UIToCommonNaN.c', + sfspedir / 's_commonNaNToExtF80UI.c', + sfspedir / 's_propagateNaNExtF80UI.c', + sfspedir / 'f128M_isSignalingNaN.c', + sfspedir / 's_f128UIToCommonNaN.c', + sfspedir / 's_commonNaNToF128UI.c', + sfspedir / 's_propagateNaNF128UI.c', + ), + include_directories: sfinc, + c_args: fpcflags, +) + +libsoftfloat_dep =3D declare_dependency( + link_with: libsoftfloat, + include_directories: sfinc, + compile_args: fpcflags) diff --git a/subprojects/packagefiles/berkeley-softfloat-3/meson_options.tx= t b/subprojects/packagefiles/berkeley-softfloat-3/meson_options.txt new file mode 100644 index 000000000000..868ae57e805e --- /dev/null +++ b/subprojects/packagefiles/berkeley-softfloat-3/meson_options.txt @@ -0,0 +1 @@ +option('defines', type : 'array', value : []) diff --git a/subprojects/packagefiles/berkeley-testfloat-3/meson.build b/su= bprojects/packagefiles/berkeley-testfloat-3/meson.build new file mode 100644 index 000000000000..a41673d616bf --- /dev/null +++ b/subprojects/packagefiles/berkeley-testfloat-3/meson.build @@ -0,0 +1,220 @@ +project('berkeley-testfloat-3', 'c', + default_options: ['warning_level=3D1', 'c_std=3Dgnu99']) + +fpcflags =3D get_option('defines') + +platform_data =3D configuration_data() +platform_data.set('INLINE', 'static inline') +platform_data.set('LITTLEENDIAN', host_machine.endian() =3D=3D 'little') +configure_file(output: 'platform.h', configuration: platform_data) + +tfdir =3D 'source' +tfinc =3D include_directories('.', tfdir) + +add_project_arguments( + [ + '-Wno-implicit-fallthrough', + '-Wno-strict-prototypes', + '-Wno-unknown-pragmas', + '-Wno-uninitialized', + '-Wno-missing-prototypes', + '-Wno-return-type', + '-Wno-unused-function', + '-Wno-missing-format-attribute', + '-Wno-error', + ] + meson.get_compiler('c').get_supported_arguments('-Wno-ignored-pragma= s'), + native: false, language: 'c') + +tfgencases =3D [ + tfdir / 'genCases_ui32.c', + tfdir / 'genCases_ui64.c', + tfdir / 'genCases_i32.c', + tfdir / 'genCases_i64.c', + tfdir / 'genCases_f16.c', + tfdir / 'genCases_f32.c', + tfdir / 'genCases_f64.c', + tfdir / 'genCases_extF80.c', + tfdir / 'genCases_f128.c', +] + +tfwritecase =3D [ + tfdir / 'writeCase_a_ui32.c', + tfdir / 'writeCase_a_ui64.c', + tfdir / 'writeCase_a_f16.c', + tfdir / 'writeCase_ab_f16.c', + tfdir / 'writeCase_abc_f16.c', + tfdir / 'writeCase_a_f32.c', + tfdir / 'writeCase_ab_f32.c', + tfdir / 'writeCase_abc_f32.c', + tfdir / 'writeCase_a_f64.c', + tfdir / 'writeCase_ab_f64.c', + tfdir / 'writeCase_abc_f64.c', + tfdir / 'writeCase_a_extF80M.c', + tfdir / 'writeCase_ab_extF80M.c', + tfdir / 'writeCase_a_f128M.c', + tfdir / 'writeCase_ab_f128M.c', + tfdir / 'writeCase_abc_f128M.c', + tfdir / 'writeCase_z_bool.c', + tfdir / 'writeCase_z_ui32.c', + tfdir / 'writeCase_z_ui64.c', + tfdir / 'writeCase_z_f16.c', + tfdir / 'writeCase_z_f32.c', + tfdir / 'writeCase_z_f64.c', + tfdir / 'writeCase_z_extF80M.c', + tfdir / 'writeCase_z_f128M.c', +] + +tftest =3D [ + tfdir / 'test_a_ui32_z_f16.c', + tfdir / 'test_a_ui32_z_f32.c', + tfdir / 'test_a_ui32_z_f64.c', + tfdir / 'test_a_ui32_z_extF80.c', + tfdir / 'test_a_ui32_z_f128.c', + tfdir / 'test_a_ui64_z_f16.c', + tfdir / 'test_a_ui64_z_f32.c', + tfdir / 'test_a_ui64_z_f64.c', + tfdir / 'test_a_ui64_z_extF80.c', + tfdir / 'test_a_ui64_z_f128.c', + tfdir / 'test_a_i32_z_f16.c', + tfdir / 'test_a_i32_z_f32.c', + tfdir / 'test_a_i32_z_f64.c', + tfdir / 'test_a_i32_z_extF80.c', + tfdir / 'test_a_i32_z_f128.c', + tfdir / 'test_a_i64_z_f16.c', + tfdir / 'test_a_i64_z_f32.c', + tfdir / 'test_a_i64_z_f64.c', + tfdir / 'test_a_i64_z_extF80.c', + tfdir / 'test_a_i64_z_f128.c', + tfdir / 'test_a_f16_z_ui32_rx.c', + tfdir / 'test_a_f16_z_ui64_rx.c', + tfdir / 'test_a_f16_z_i32_rx.c', + tfdir / 'test_a_f16_z_i64_rx.c', + tfdir / 'test_a_f16_z_ui32_x.c', + tfdir / 'test_a_f16_z_ui64_x.c', + tfdir / 'test_a_f16_z_i32_x.c', + tfdir / 'test_a_f16_z_i64_x.c', + tfdir / 'test_a_f16_z_f32.c', + tfdir / 'test_a_f16_z_f64.c', + tfdir / 'test_a_f16_z_extF80.c', + tfdir / 'test_a_f16_z_f128.c', + tfdir / 'test_az_f16.c', + tfdir / 'test_az_f16_rx.c', + tfdir / 'test_abz_f16.c', + tfdir / 'test_abcz_f16.c', + tfdir / 'test_ab_f16_z_bool.c', + tfdir / 'test_a_f32_z_ui32_rx.c', + tfdir / 'test_a_f32_z_ui64_rx.c', + tfdir / 'test_a_f32_z_i32_rx.c', + tfdir / 'test_a_f32_z_i64_rx.c', + tfdir / 'test_a_f32_z_ui32_x.c', + tfdir / 'test_a_f32_z_ui64_x.c', + tfdir / 'test_a_f32_z_i32_x.c', + tfdir / 'test_a_f32_z_i64_x.c', + tfdir / 'test_a_f32_z_f16.c', + tfdir / 'test_a_f32_z_f64.c', + tfdir / 'test_a_f32_z_extF80.c', + tfdir / 'test_a_f32_z_f128.c', + tfdir / 'test_az_f32.c', + tfdir / 'test_az_f32_rx.c', + tfdir / 'test_abz_f32.c', + tfdir / 'test_abcz_f32.c', + tfdir / 'test_ab_f32_z_bool.c', + tfdir / 'test_a_f64_z_ui32_rx.c', + tfdir / 'test_a_f64_z_ui64_rx.c', + tfdir / 'test_a_f64_z_i32_rx.c', + tfdir / 'test_a_f64_z_i64_rx.c', + tfdir / 'test_a_f64_z_ui32_x.c', + tfdir / 'test_a_f64_z_ui64_x.c', + tfdir / 'test_a_f64_z_i32_x.c', + tfdir / 'test_a_f64_z_i64_x.c', + tfdir / 'test_a_f64_z_f16.c', + tfdir / 'test_a_f64_z_f32.c', + tfdir / 'test_a_f64_z_extF80.c', + tfdir / 'test_a_f64_z_f128.c', + tfdir / 'test_az_f64.c', + tfdir / 'test_az_f64_rx.c', + tfdir / 'test_abz_f64.c', + tfdir / 'test_abcz_f64.c', + tfdir / 'test_ab_f64_z_bool.c', + tfdir / 'test_a_extF80_z_ui32_rx.c', + tfdir / 'test_a_extF80_z_ui64_rx.c', + tfdir / 'test_a_extF80_z_i32_rx.c', + tfdir / 'test_a_extF80_z_i64_rx.c', + tfdir / 'test_a_extF80_z_ui32_x.c', + tfdir / 'test_a_extF80_z_ui64_x.c', + tfdir / 'test_a_extF80_z_i32_x.c', + tfdir / 'test_a_extF80_z_i64_x.c', + tfdir / 'test_a_extF80_z_f16.c', + tfdir / 'test_a_extF80_z_f32.c', + tfdir / 'test_a_extF80_z_f64.c', + tfdir / 'test_a_extF80_z_f128.c', + tfdir / 'test_az_extF80.c', + tfdir / 'test_az_extF80_rx.c', + tfdir / 'test_abz_extF80.c', + tfdir / 'test_ab_extF80_z_bool.c', + tfdir / 'test_a_f128_z_ui32_rx.c', + tfdir / 'test_a_f128_z_ui64_rx.c', + tfdir / 'test_a_f128_z_i32_rx.c', + tfdir / 'test_a_f128_z_i64_rx.c', + tfdir / 'test_a_f128_z_ui32_x.c', + tfdir / 'test_a_f128_z_ui64_x.c', + tfdir / 'test_a_f128_z_i32_x.c', + tfdir / 'test_a_f128_z_i64_x.c', + tfdir / 'test_a_f128_z_f16.c', + tfdir / 'test_a_f128_z_f32.c', + tfdir / 'test_a_f128_z_f64.c', + tfdir / 'test_a_f128_z_extF80.c', + tfdir / 'test_az_f128.c', + tfdir / 'test_az_f128_rx.c', + tfdir / 'test_abz_f128.c', + tfdir / 'test_abcz_f128.c', + tfdir / 'test_ab_f128_z_bool.c', +] + +libsoftfloat_proj =3D subproject('berkeley-softfloat-3', required: true) +libsoftfloat =3D libsoftfloat_proj.get_variable('libsoftfloat_dep') + +libtestfloat =3D static_library( + 'testfloat', + files( + tfdir / 'uint128_inline.c', + tfdir / 'uint128.c', + tfdir / 'fail.c', + tfdir / 'functions_common.c', + tfdir / 'functionInfos.c', + tfdir / 'standardFunctionInfos.c', + tfdir / 'random.c', + tfdir / 'genCases_common.c', + tfgencases, + tfdir / 'genCases_writeTestsTotal.c', + tfdir / 'verCases_inline.c', + tfdir / 'verCases_common.c', + tfdir / 'verCases_writeFunctionName.c', + tfdir / 'readHex.c', + tfdir / 'writeHex.c', + tfwritecase, + tfdir / 'testLoops_common.c', + tftest, + ), + dependencies: libsoftfloat.partial_dependency(includes: true, compile_ar= gs: true), + c_args: fpcflags, +) + +libtestfloat_dep =3D declare_dependency( + link_with: libtestfloat, + dependencies: libsoftfloat, + include_directories: tfinc, + compile_args: fpcflags) + +libslowfloat =3D static_library( + 'slowfloat', + tfdir / 'slowfloat.c', + dependencies: libsoftfloat.partial_dependency(includes: true, compile_ar= gs: true), + c_args: fpcflags, +) + +libslowfloat_dep =3D declare_dependency( + link_with: libslowfloat, + dependencies: libsoftfloat, + include_directories: tfinc, + compile_args: fpcflags) diff --git a/subprojects/packagefiles/berkeley-testfloat-3/meson_options.tx= t b/subprojects/packagefiles/berkeley-testfloat-3/meson_options.txt new file mode 100644 index 000000000000..868ae57e805e --- /dev/null +++ b/subprojects/packagefiles/berkeley-testfloat-3/meson_options.txt @@ -0,0 +1 @@ +option('defines', type : 'array', value : []) diff --git a/tests/fp/meson.build b/tests/fp/meson.build index f9ca6a93b49d..cbc17392d678 100644 --- a/tests/fp/meson.build +++ b/tests/fp/meson.build @@ -7,13 +7,15 @@ if targetos =3D=3D 'windows' subdir_done() endif =20 -fpcflags =3D [ +sfcflags =3D [ # softfloat defines '-DSOFTFLOAT_ROUND_ODD', '-DINLINE_LEVEL=3D5', '-DSOFTFLOAT_FAST_DIV32TO16', '-DSOFTFLOAT_FAST_DIV64TO32', '-DSOFTFLOAT_FAST_INT64', +] +tfcflags =3D [ # testfloat defines '-DFLOAT16', '-DFLOAT64', @@ -23,523 +25,16 @@ fpcflags =3D [ '-DLONG_DOUBLE_IS_EXTFLOAT80', ] =20 -sfdir =3D 'berkeley-softfloat-3/source' -sfspedir =3D sfdir / '8086-SSE' -tfdir =3D 'berkeley-testfloat-3/source' +libsoftfloat_proj =3D subproject('berkeley-softfloat-3', required: true, + default_options: 'defines=3D' + ','.join(sfcflags)) +libsoftfloat =3D libsoftfloat_proj.get_variable('libsoftfloat_dep') =20 -sfinc =3D include_directories(sfdir / 'include', sfspedir) +libtestfloat_proj =3D subproject('berkeley-testfloat-3', required: true, + default_options: 'defines=3D' + ','.join(tfcflags)) +libtestfloat =3D libtestfloat_proj.get_variable('libtestfloat_dep') +libslowfloat =3D libtestfloat_proj.get_variable('libslowfloat_dep') =20 -tfcflags =3D [ - '-Wno-implicit-fallthrough', - '-Wno-strict-prototypes', - '-Wno-unknown-pragmas', - '-Wno-uninitialized', - '-Wno-missing-prototypes', - '-Wno-return-type', - '-Wno-unused-function', - '-Wno-missing-format-attribute', - '-Wno-error', -] - -if cc.get_id() =3D=3D 'clang' - # Clang does not support '#pragma STDC FENV_ACCESS' - tfcflags +=3D [ '-Wno-ignored-pragmas' ] -endif - -tfgencases =3D [ - tfdir / 'genCases_ui32.c', - tfdir / 'genCases_ui64.c', - tfdir / 'genCases_i32.c', - tfdir / 'genCases_i64.c', - tfdir / 'genCases_f16.c', - tfdir / 'genCases_f32.c', - tfdir / 'genCases_f64.c', - tfdir / 'genCases_extF80.c', - tfdir / 'genCases_f128.c', -] - -tfwritecase =3D [ - tfdir / 'writeCase_a_ui32.c', - tfdir / 'writeCase_a_ui64.c', - tfdir / 'writeCase_a_f16.c', - tfdir / 'writeCase_ab_f16.c', - tfdir / 'writeCase_abc_f16.c', - tfdir / 'writeCase_a_f32.c', - tfdir / 'writeCase_ab_f32.c', - tfdir / 'writeCase_abc_f32.c', - tfdir / 'writeCase_a_f64.c', - tfdir / 'writeCase_ab_f64.c', - tfdir / 'writeCase_abc_f64.c', - tfdir / 'writeCase_a_extF80M.c', - tfdir / 'writeCase_ab_extF80M.c', - tfdir / 'writeCase_a_f128M.c', - tfdir / 'writeCase_ab_f128M.c', - tfdir / 'writeCase_abc_f128M.c', - tfdir / 'writeCase_z_bool.c', - tfdir / 'writeCase_z_ui32.c', - tfdir / 'writeCase_z_ui64.c', - tfdir / 'writeCase_z_f16.c', - tfdir / 'writeCase_z_f32.c', - tfdir / 'writeCase_z_f64.c', - tfdir / 'writeCase_z_extF80M.c', - tfdir / 'writeCase_z_f128M.c', -] - -tftest =3D [ - tfdir / 'test_a_ui32_z_f16.c', - tfdir / 'test_a_ui32_z_f32.c', - tfdir / 'test_a_ui32_z_f64.c', - tfdir / 'test_a_ui32_z_extF80.c', - tfdir / 'test_a_ui32_z_f128.c', - tfdir / 'test_a_ui64_z_f16.c', - tfdir / 'test_a_ui64_z_f32.c', - tfdir / 'test_a_ui64_z_f64.c', - tfdir / 'test_a_ui64_z_extF80.c', - tfdir / 'test_a_ui64_z_f128.c', - tfdir / 'test_a_i32_z_f16.c', - tfdir / 'test_a_i32_z_f32.c', - tfdir / 'test_a_i32_z_f64.c', - tfdir / 'test_a_i32_z_extF80.c', - tfdir / 'test_a_i32_z_f128.c', - tfdir / 'test_a_i64_z_f16.c', - tfdir / 'test_a_i64_z_f32.c', - tfdir / 'test_a_i64_z_f64.c', - tfdir / 'test_a_i64_z_extF80.c', - tfdir / 'test_a_i64_z_f128.c', - tfdir / 'test_a_f16_z_ui32_rx.c', - tfdir / 'test_a_f16_z_ui64_rx.c', - tfdir / 'test_a_f16_z_i32_rx.c', - tfdir / 'test_a_f16_z_i64_rx.c', - tfdir / 'test_a_f16_z_ui32_x.c', - tfdir / 'test_a_f16_z_ui64_x.c', - tfdir / 'test_a_f16_z_i32_x.c', - tfdir / 'test_a_f16_z_i64_x.c', - tfdir / 'test_a_f16_z_f32.c', - tfdir / 'test_a_f16_z_f64.c', - tfdir / 'test_a_f16_z_extF80.c', - tfdir / 'test_a_f16_z_f128.c', - tfdir / 'test_az_f16.c', - tfdir / 'test_az_f16_rx.c', - tfdir / 'test_abz_f16.c', - tfdir / 'test_abcz_f16.c', - tfdir / 'test_ab_f16_z_bool.c', - tfdir / 'test_a_f32_z_ui32_rx.c', - tfdir / 'test_a_f32_z_ui64_rx.c', - tfdir / 'test_a_f32_z_i32_rx.c', - tfdir / 'test_a_f32_z_i64_rx.c', - tfdir / 'test_a_f32_z_ui32_x.c', - tfdir / 'test_a_f32_z_ui64_x.c', - tfdir / 'test_a_f32_z_i32_x.c', - tfdir / 'test_a_f32_z_i64_x.c', - tfdir / 'test_a_f32_z_f16.c', - tfdir / 'test_a_f32_z_f64.c', - tfdir / 'test_a_f32_z_extF80.c', - tfdir / 'test_a_f32_z_f128.c', - tfdir / 'test_az_f32.c', - tfdir / 'test_az_f32_rx.c', - tfdir / 'test_abz_f32.c', - tfdir / 'test_abcz_f32.c', - tfdir / 'test_ab_f32_z_bool.c', - tfdir / 'test_a_f64_z_ui32_rx.c', - tfdir / 'test_a_f64_z_ui64_rx.c', - tfdir / 'test_a_f64_z_i32_rx.c', - tfdir / 'test_a_f64_z_i64_rx.c', - tfdir / 'test_a_f64_z_ui32_x.c', - tfdir / 'test_a_f64_z_ui64_x.c', - tfdir / 'test_a_f64_z_i32_x.c', - tfdir / 'test_a_f64_z_i64_x.c', - tfdir / 'test_a_f64_z_f16.c', - tfdir / 'test_a_f64_z_f32.c', - tfdir / 'test_a_f64_z_extF80.c', - tfdir / 'test_a_f64_z_f128.c', - tfdir / 'test_az_f64.c', - tfdir / 'test_az_f64_rx.c', - tfdir / 'test_abz_f64.c', - tfdir / 'test_abcz_f64.c', - tfdir / 'test_ab_f64_z_bool.c', - tfdir / 'test_a_extF80_z_ui32_rx.c', - tfdir / 'test_a_extF80_z_ui64_rx.c', - tfdir / 'test_a_extF80_z_i32_rx.c', - tfdir / 'test_a_extF80_z_i64_rx.c', - tfdir / 'test_a_extF80_z_ui32_x.c', - tfdir / 'test_a_extF80_z_ui64_x.c', - tfdir / 'test_a_extF80_z_i32_x.c', - tfdir / 'test_a_extF80_z_i64_x.c', - tfdir / 'test_a_extF80_z_f16.c', - tfdir / 'test_a_extF80_z_f32.c', - tfdir / 'test_a_extF80_z_f64.c', - tfdir / 'test_a_extF80_z_f128.c', - tfdir / 'test_az_extF80.c', - tfdir / 'test_az_extF80_rx.c', - tfdir / 'test_abz_extF80.c', - tfdir / 'test_ab_extF80_z_bool.c', - tfdir / 'test_a_f128_z_ui32_rx.c', - tfdir / 'test_a_f128_z_ui64_rx.c', - tfdir / 'test_a_f128_z_i32_rx.c', - tfdir / 'test_a_f128_z_i64_rx.c', - tfdir / 'test_a_f128_z_ui32_x.c', - tfdir / 'test_a_f128_z_ui64_x.c', - tfdir / 'test_a_f128_z_i32_x.c', - tfdir / 'test_a_f128_z_i64_x.c', - tfdir / 'test_a_f128_z_f16.c', - tfdir / 'test_a_f128_z_f32.c', - tfdir / 'test_a_f128_z_f64.c', - tfdir / 'test_a_f128_z_extF80.c', - tfdir / 'test_az_f128.c', - tfdir / 'test_az_f128_rx.c', - tfdir / 'test_abz_f128.c', - tfdir / 'test_abcz_f128.c', - tfdir / 'test_ab_f128_z_bool.c', -] - -libtestfloat =3D static_library( - 'testfloat', - files( - tfdir / 'uint128_inline.c', - tfdir / 'uint128.c', - tfdir / 'fail.c', - tfdir / 'functions_common.c', - tfdir / 'functionInfos.c', - tfdir / 'standardFunctionInfos.c', - tfdir / 'random.c', - tfdir / 'genCases_common.c', - tfgencases, - tfdir / 'genCases_writeTestsTotal.c', - tfdir / 'verCases_inline.c', - tfdir / 'verCases_common.c', - tfdir / 'verCases_writeFunctionName.c', - tfdir / 'readHex.c', - tfdir / 'writeHex.c', - tfwritecase, - tfdir / 'testLoops_common.c', - tftest, - ), - include_directories: sfinc, - c_args: tfcflags + fpcflags, -) - -sfcflags =3D [ - '-Wno-implicit-fallthrough', - '-Wno-missing-prototypes', - '-Wno-redundant-decls', - '-Wno-return-type', - '-Wno-error', -] - -libsoftfloat =3D static_library( - 'softfloat', - files( - # primitives - sfdir / 's_eq128.c', - sfdir / 's_le128.c', - sfdir / 's_lt128.c', - sfdir / 's_shortShiftLeft128.c', - sfdir / 's_shortShiftRight128.c', - sfdir / 's_shortShiftRightJam64.c', - sfdir / 's_shortShiftRightJam64Extra.c', - sfdir / 's_shortShiftRightJam128.c', - sfdir / 's_shortShiftRightJam128Extra.c', - sfdir / 's_shiftRightJam32.c', - sfdir / 's_shiftRightJam64.c', - sfdir / 's_shiftRightJam64Extra.c', - sfdir / 's_shiftRightJam128.c', - sfdir / 's_shiftRightJam128Extra.c', - sfdir / 's_shiftRightJam256M.c', - sfdir / 's_countLeadingZeros8.c', - sfdir / 's_countLeadingZeros16.c', - sfdir / 's_countLeadingZeros32.c', - sfdir / 's_countLeadingZeros64.c', - sfdir / 's_add128.c', - sfdir / 's_add256M.c', - sfdir / 's_sub128.c', - sfdir / 's_sub256M.c', - sfdir / 's_mul64ByShifted32To128.c', - sfdir / 's_mul64To128.c', - sfdir / 's_mul128By32.c', - sfdir / 's_mul128To256M.c', - sfdir / 's_approxRecip_1Ks.c', - sfdir / 's_approxRecip32_1.c', - sfdir / 's_approxRecipSqrt_1Ks.c', - sfdir / 's_approxRecipSqrt32_1.c', - # others - sfdir / 's_roundToUI32.c', - sfdir / 's_roundToUI64.c', - sfdir / 's_roundToI32.c', - sfdir / 's_roundToI64.c', - sfdir / 's_normSubnormalF16Sig.c', - sfdir / 's_roundPackToF16.c', - sfdir / 's_normRoundPackToF16.c', - sfdir / 's_addMagsF16.c', - sfdir / 's_subMagsF16.c', - sfdir / 's_mulAddF16.c', - sfdir / 's_normSubnormalF32Sig.c', - sfdir / 's_roundPackToF32.c', - sfdir / 's_normRoundPackToF32.c', - sfdir / 's_addMagsF32.c', - sfdir / 's_subMagsF32.c', - sfdir / 's_mulAddF32.c', - sfdir / 's_normSubnormalF64Sig.c', - sfdir / 's_roundPackToF64.c', - sfdir / 's_normRoundPackToF64.c', - sfdir / 's_addMagsF64.c', - sfdir / 's_subMagsF64.c', - sfdir / 's_mulAddF64.c', - sfdir / 's_normSubnormalExtF80Sig.c', - sfdir / 's_roundPackToExtF80.c', - sfdir / 's_normRoundPackToExtF80.c', - sfdir / 's_addMagsExtF80.c', - sfdir / 's_subMagsExtF80.c', - sfdir / 's_normSubnormalF128Sig.c', - sfdir / 's_roundPackToF128.c', - sfdir / 's_normRoundPackToF128.c', - sfdir / 's_addMagsF128.c', - sfdir / 's_subMagsF128.c', - sfdir / 's_mulAddF128.c', - sfdir / 'softfloat_state.c', - sfdir / 'ui32_to_f16.c', - sfdir / 'ui32_to_f32.c', - sfdir / 'ui32_to_f64.c', - sfdir / 'ui32_to_extF80.c', - sfdir / 'ui32_to_extF80M.c', - sfdir / 'ui32_to_f128.c', - sfdir / 'ui32_to_f128M.c', - sfdir / 'ui64_to_f16.c', - sfdir / 'ui64_to_f32.c', - sfdir / 'ui64_to_f64.c', - sfdir / 'ui64_to_extF80.c', - sfdir / 'ui64_to_extF80M.c', - sfdir / 'ui64_to_f128.c', - sfdir / 'ui64_to_f128M.c', - sfdir / 'i32_to_f16.c', - sfdir / 'i32_to_f32.c', - sfdir / 'i32_to_f64.c', - sfdir / 'i32_to_extF80.c', - sfdir / 'i32_to_extF80M.c', - sfdir / 'i32_to_f128.c', - sfdir / 'i32_to_f128M.c', - sfdir / 'i64_to_f16.c', - sfdir / 'i64_to_f32.c', - sfdir / 'i64_to_f64.c', - sfdir / 'i64_to_extF80.c', - sfdir / 'i64_to_extF80M.c', - sfdir / 'i64_to_f128.c', - sfdir / 'i64_to_f128M.c', - sfdir / 'f16_to_ui32.c', - sfdir / 'f16_to_ui64.c', - sfdir / 'f16_to_i32.c', - sfdir / 'f16_to_i64.c', - sfdir / 'f16_to_ui32_r_minMag.c', - sfdir / 'f16_to_ui64_r_minMag.c', - sfdir / 'f16_to_i32_r_minMag.c', - sfdir / 'f16_to_i64_r_minMag.c', - sfdir / 'f16_to_f32.c', - sfdir / 'f16_to_f64.c', - sfdir / 'f16_to_extF80.c', - sfdir / 'f16_to_extF80M.c', - sfdir / 'f16_to_f128.c', - sfdir / 'f16_to_f128M.c', - sfdir / 'f16_roundToInt.c', - sfdir / 'f16_add.c', - sfdir / 'f16_sub.c', - sfdir / 'f16_mul.c', - sfdir / 'f16_mulAdd.c', - sfdir / 'f16_div.c', - sfdir / 'f16_rem.c', - sfdir / 'f16_sqrt.c', - sfdir / 'f16_eq.c', - sfdir / 'f16_le.c', - sfdir / 'f16_lt.c', - sfdir / 'f16_eq_signaling.c', - sfdir / 'f16_le_quiet.c', - sfdir / 'f16_lt_quiet.c', - sfdir / 'f16_isSignalingNaN.c', - sfdir / 'f32_to_ui32.c', - sfdir / 'f32_to_ui64.c', - sfdir / 'f32_to_i32.c', - sfdir / 'f32_to_i64.c', - sfdir / 'f32_to_ui32_r_minMag.c', - sfdir / 'f32_to_ui64_r_minMag.c', - sfdir / 'f32_to_i32_r_minMag.c', - sfdir / 'f32_to_i64_r_minMag.c', - sfdir / 'f32_to_f16.c', - sfdir / 'f32_to_f64.c', - sfdir / 'f32_to_extF80.c', - sfdir / 'f32_to_extF80M.c', - sfdir / 'f32_to_f128.c', - sfdir / 'f32_to_f128M.c', - sfdir / 'f32_roundToInt.c', - sfdir / 'f32_add.c', - sfdir / 'f32_sub.c', - sfdir / 'f32_mul.c', - sfdir / 'f32_mulAdd.c', - sfdir / 'f32_div.c', - sfdir / 'f32_rem.c', - sfdir / 'f32_sqrt.c', - sfdir / 'f32_eq.c', - sfdir / 'f32_le.c', - sfdir / 'f32_lt.c', - sfdir / 'f32_eq_signaling.c', - sfdir / 'f32_le_quiet.c', - sfdir / 'f32_lt_quiet.c', - sfdir / 'f32_isSignalingNaN.c', - sfdir / 'f64_to_ui32.c', - sfdir / 'f64_to_ui64.c', - sfdir / 'f64_to_i32.c', - sfdir / 'f64_to_i64.c', - sfdir / 'f64_to_ui32_r_minMag.c', - sfdir / 'f64_to_ui64_r_minMag.c', - sfdir / 'f64_to_i32_r_minMag.c', - sfdir / 'f64_to_i64_r_minMag.c', - sfdir / 'f64_to_f16.c', - sfdir / 'f64_to_f32.c', - sfdir / 'f64_to_extF80.c', - sfdir / 'f64_to_extF80M.c', - sfdir / 'f64_to_f128.c', - sfdir / 'f64_to_f128M.c', - sfdir / 'f64_roundToInt.c', - sfdir / 'f64_add.c', - sfdir / 'f64_sub.c', - sfdir / 'f64_mul.c', - sfdir / 'f64_mulAdd.c', - sfdir / 'f64_div.c', - sfdir / 'f64_rem.c', - sfdir / 'f64_sqrt.c', - sfdir / 'f64_eq.c', - sfdir / 'f64_le.c', - sfdir / 'f64_lt.c', - sfdir / 'f64_eq_signaling.c', - sfdir / 'f64_le_quiet.c', - sfdir / 'f64_lt_quiet.c', - sfdir / 'f64_isSignalingNaN.c', - sfdir / 'extF80_to_ui32.c', - sfdir / 'extF80_to_ui64.c', - sfdir / 'extF80_to_i32.c', - sfdir / 'extF80_to_i64.c', - sfdir / 'extF80_to_ui32_r_minMag.c', - sfdir / 'extF80_to_ui64_r_minMag.c', - sfdir / 'extF80_to_i32_r_minMag.c', - sfdir / 'extF80_to_i64_r_minMag.c', - sfdir / 'extF80_to_f16.c', - sfdir / 'extF80_to_f32.c', - sfdir / 'extF80_to_f64.c', - sfdir / 'extF80_to_f128.c', - sfdir / 'extF80_roundToInt.c', - sfdir / 'extF80_add.c', - sfdir / 'extF80_sub.c', - sfdir / 'extF80_mul.c', - sfdir / 'extF80_div.c', - sfdir / 'extF80_rem.c', - sfdir / 'extF80_sqrt.c', - sfdir / 'extF80_eq.c', - sfdir / 'extF80_le.c', - sfdir / 'extF80_lt.c', - sfdir / 'extF80_eq_signaling.c', - sfdir / 'extF80_le_quiet.c', - sfdir / 'extF80_lt_quiet.c', - sfdir / 'extF80_isSignalingNaN.c', - sfdir / 'extF80M_to_ui32.c', - sfdir / 'extF80M_to_ui64.c', - sfdir / 'extF80M_to_i32.c', - sfdir / 'extF80M_to_i64.c', - sfdir / 'extF80M_to_ui32_r_minMag.c', - sfdir / 'extF80M_to_ui64_r_minMag.c', - sfdir / 'extF80M_to_i32_r_minMag.c', - sfdir / 'extF80M_to_i64_r_minMag.c', - sfdir / 'extF80M_to_f16.c', - sfdir / 'extF80M_to_f32.c', - sfdir / 'extF80M_to_f64.c', - sfdir / 'extF80M_to_f128M.c', - sfdir / 'extF80M_roundToInt.c', - sfdir / 'extF80M_add.c', - sfdir / 'extF80M_sub.c', - sfdir / 'extF80M_mul.c', - sfdir / 'extF80M_div.c', - sfdir / 'extF80M_rem.c', - sfdir / 'extF80M_sqrt.c', - sfdir / 'extF80M_eq.c', - sfdir / 'extF80M_le.c', - sfdir / 'extF80M_lt.c', - sfdir / 'extF80M_eq_signaling.c', - sfdir / 'extF80M_le_quiet.c', - sfdir / 'extF80M_lt_quiet.c', - sfdir / 'f128_to_ui32.c', - sfdir / 'f128_to_ui64.c', - sfdir / 'f128_to_i32.c', - sfdir / 'f128_to_i64.c', - sfdir / 'f128_to_ui32_r_minMag.c', - sfdir / 'f128_to_ui64_r_minMag.c', - sfdir / 'f128_to_i32_r_minMag.c', - sfdir / 'f128_to_i64_r_minMag.c', - sfdir / 'f128_to_f16.c', - sfdir / 'f128_to_f32.c', - sfdir / 'f128_to_extF80.c', - sfdir / 'f128_to_f64.c', - sfdir / 'f128_roundToInt.c', - sfdir / 'f128_add.c', - sfdir / 'f128_sub.c', - sfdir / 'f128_mul.c', - sfdir / 'f128_mulAdd.c', - sfdir / 'f128_div.c', - sfdir / 'f128_rem.c', - sfdir / 'f128_sqrt.c', - sfdir / 'f128_eq.c', - sfdir / 'f128_le.c', - sfdir / 'f128_lt.c', - sfdir / 'f128_eq_signaling.c', - sfdir / 'f128_le_quiet.c', - sfdir / 'f128_lt_quiet.c', - sfdir / 'f128_isSignalingNaN.c', - sfdir / 'f128M_to_ui32.c', - sfdir / 'f128M_to_ui64.c', - sfdir / 'f128M_to_i32.c', - sfdir / 'f128M_to_i64.c', - sfdir / 'f128M_to_ui32_r_minMag.c', - sfdir / 'f128M_to_ui64_r_minMag.c', - sfdir / 'f128M_to_i32_r_minMag.c', - sfdir / 'f128M_to_i64_r_minMag.c', - sfdir / 'f128M_to_f16.c', - sfdir / 'f128M_to_f32.c', - sfdir / 'f128M_to_extF80M.c', - sfdir / 'f128M_to_f64.c', - sfdir / 'f128M_roundToInt.c', - sfdir / 'f128M_add.c', - sfdir / 'f128M_sub.c', - sfdir / 'f128M_mul.c', - sfdir / 'f128M_mulAdd.c', - sfdir / 'f128M_div.c', - sfdir / 'f128M_rem.c', - sfdir / 'f128M_sqrt.c', - sfdir / 'f128M_eq.c', - sfdir / 'f128M_le.c', - sfdir / 'f128M_lt.c', - sfdir / 'f128M_eq_signaling.c', - sfdir / 'f128M_le_quiet.c', - sfdir / 'f128M_lt_quiet.c', - # spe - sfspedir / 'softfloat_raiseFlags.c', - sfspedir / 's_f16UIToCommonNaN.c', - sfspedir / 's_commonNaNToF16UI.c', - sfspedir / 's_propagateNaNF16UI.c', - sfspedir / 's_f32UIToCommonNaN.c', - sfspedir / 's_commonNaNToF32UI.c', - sfspedir / 's_propagateNaNF32UI.c', - sfspedir / 's_f64UIToCommonNaN.c', - sfspedir / 's_commonNaNToF64UI.c', - sfspedir / 's_propagateNaNF64UI.c', - sfspedir / 'extF80M_isSignalingNaN.c', - sfspedir / 's_extF80UIToCommonNaN.c', - sfspedir / 's_commonNaNToExtF80UI.c', - sfspedir / 's_propagateNaNExtF80UI.c', - sfspedir / 'f128M_isSignalingNaN.c', - sfspedir / 's_f128UIToCommonNaN.c', - sfspedir / 's_commonNaNToF128UI.c', - sfspedir / 's_propagateNaNF128UI.c', - ), - include_directories: sfinc, - c_args: sfcflags + fpcflags, -) - -fpcflags +=3D [ +fpcflags =3D [ # work around TARGET_* poisoning '-DHW_POISON_H', # define a target to match testfloat's implementation-defined choices, s= uch as @@ -551,10 +46,8 @@ fpcflags +=3D [ =20 fptest =3D executable( 'fp-test', - ['fp-test.c', tfdir / 'slowfloat.c', '../../fpu/softfloat.c'], - link_with: [libtestfloat, libsoftfloat], - dependencies: [qemuutil], - include_directories: [sfinc, include_directories(tfdir)], + ['fp-test.c', '../../fpu/softfloat.c'], + dependencies: [qemuutil, libsoftfloat, libtestfloat, libslowfloat], c_args: fpcflags, ) softfloat_conv_tests =3D { @@ -636,18 +129,14 @@ test('fp-test-mulAdd', fptest, executable( 'fp-bench', ['fp-bench.c', '../../fpu/softfloat.c'], - link_with: [libtestfloat, libsoftfloat], - dependencies: [qemuutil], - include_directories: [sfinc, include_directories(tfdir)], + dependencies: [qemuutil, libtestfloat, libsoftfloat], c_args: fpcflags, ) =20 fptestlog2 =3D executable( 'fp-test-log2', ['fp-test-log2.c', '../../fpu/softfloat.c'], - link_with: [libsoftfloat], - dependencies: [qemuutil], - include_directories: [sfinc], + dependencies: [qemuutil, libsoftfloat], c_args: fpcflags, ) test('fp-test-log2', fptestlog2, --=20 2.40.1