From unknown Fri Jun 20 18:18:30 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#47349 <47349@debbugs.gnu.org> To: bug#47349 <47349@debbugs.gnu.org> Subject: Status: [PATCH] gnu: cross-base: Relax check for powerpc64le Reply-To: bug#47349 <47349@debbugs.gnu.org> Date: Sat, 21 Jun 2025 01:18:30 +0000 retitle 47349 [PATCH] gnu: cross-base: Relax check for powerpc64le reassign 47349 guix-patches submitter 47349 Carl Dong severity 47349 normal tag 47349 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 23 12:04:54 2021 Received: (at submit) by debbugs.gnu.org; 23 Mar 2021 16:04:54 +0000 Received: from localhost ([127.0.0.1]:32817 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lOjWY-0002lm-JG for submit@debbugs.gnu.org; Tue, 23 Mar 2021 12:04:54 -0400 Received: from lists.gnu.org ([209.51.188.17]:49158) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lOjWT-0002la-Rw for submit@debbugs.gnu.org; Tue, 23 Mar 2021 12:04:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42582) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lOjWS-0000ad-QH for guix-patches@gnu.org; Tue, 23 Mar 2021 12:04:49 -0400 Received: from wout2-smtp.messagingengine.com ([64.147.123.25]:38421) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lOjWQ-0001vQ-AG for guix-patches@gnu.org; Tue, 23 Mar 2021 12:04:48 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.west.internal (Postfix) with ESMTP id 5C79AC88; Tue, 23 Mar 2021 12:04:42 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Tue, 23 Mar 2021 12:04:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=carldong.me; h= from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; s=fm3; bh=gkRbdJAPhaGaUa6T4vgvd7u0bV aGzgGd7psNAqECLVo=; b=L+Aa+Q/scGJUoxemf8SFjbYt7j1qngfhsflBEubOhx TOiWvMNjSgzjk/rpLG3O2j/TnQ2J9SfjDQF1afyUOiU8OZeY32NA7UBEmVdN3yUw 67D4RRjr+TVrEMx0kko7vPRAZtKt4YDqscrjPISgkRQBXtD6FBYJPXWHRdL4Lb7q W2TEbxs2yMGpACvovdsnhY+MhHov1iQiESdvSJptBh7mNDqOlDRfBbIKUNdGhaX4 zFMGfQmDpkQ/jINB5qh8HXYS8T/lgapuB8IliQNASwYhSp5iIDfGC6obG8l2gUC9 GPsrFqOg9Xy1lrHOmotPjz8NxWfvtPiK3tBf6BsLby/A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :message-id:mime-version:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=gkRbdJAPhaGaUa6T4 vgvd7u0bVaGzgGd7psNAqECLVo=; b=B6XeiEyByqOGwjvfr/tRCqpvNoUGbMMEa LzoSzB/JVkuLgxecZ3JeiPwfBA57Ek4E19AyazT3kdvpUDBs9Hkwbe54T7z7x61C 6q65eXev1tz1gpoUYq6/qW/SPr+VZIz9Ub2SjGMErBV3s6Af6Mq8vgsRY7MPz8A3 yQR3bPZEo0zBYr4HWkkJU8f4yRFBSt9SDbsmkCgUhy5j7UqS+S7ZZBmyFQG3pslY QKZzBqCT0qYkXDVTV817aqHCYSTwUWo9R8G+1YIqJo0K5ZfT3wRpmv5GU3vH3D78 YJw/+Nlyas2ZQwPLF2eJtZRFZ4zdO75H70xgv1MSnEWsXqy8k4RfQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudegiedgkeehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgggfestdekredtre dttdenucfhrhhomhepvegrrhhlucffohhnghcuoegtohhnthgrtghtsegtrghrlhguohhn ghdrmhgvqeenucggtffrrghtthgvrhhnpeelueeuleelieekffdtueeifeevhfejfffhff ejheevleehffffieeigeetjeevkeenucfkphepgedrheefrdelvddruddugeenucevlhhu shhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegtohhnthgrtghtse gtrghrlhguohhnghdrmhgv X-ME-Proxy: Received: from dai.int.chaincode.com (unknown [4.53.92.114]) by mail.messagingengine.com (Postfix) with ESMTPA id AAF381080066; Tue, 23 Mar 2021 12:04:41 -0400 (EDT) From: Carl Dong To: guix-patches@gnu.org Subject: [PATCH] gnu: cross-base: Relax check for powerpc64le Date: Tue, 23 Mar 2021 12:02:13 -0400 Message-Id: <20210323160213.1194843-1-contact@carldong.me> X-Mailer: git-send-email 2.30.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=64.147.123.25; envelope-from=contact@carldong.me; helo=wout2-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.6 (-) X-Debbugs-Envelope-To: submit Cc: Carl Dong X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) The canonical triplet for powerpc64le-linux-gnu is actually powerpc64le-unknown-linux-gnu, we should relax our matching here. * gnu/packages/cross-base.scm (cross-gcc-arguments): Check for "powerpc64le-" prefix for "--with-long-double-128" instead of matching full target. --- gnu/packages/cross-base.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index bea2d69876..180594509b 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -153,7 +153,7 @@ base compiler and using LIBC (which may be either a libc package or #f.)" "--disable-decimal-float" ;would need libc "--disable-libcilkrts" - ,@(if (equal? "powerpc64le-linux-gnu" target) + ,@(if (string-prefix? "powerpc64le-" target) ;; On POWER9 (little endian) glibc needs ;; the 128-bit long double type. '("--with-long-double-128") -- 2.30.1 From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 25 12:09:43 2021 Received: (at 47349) by debbugs.gnu.org; 25 Mar 2021 16:09:43 +0000 Received: from localhost ([127.0.0.1]:39375 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPSYJ-0003o9-Ae for submit@debbugs.gnu.org; Thu, 25 Mar 2021 12:09:43 -0400 Received: from mail.zaclys.net ([178.33.93.72]:44937) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPSYH-0003ns-7c for 47349@debbugs.gnu.org; Thu, 25 Mar 2021 12:09:42 -0400 Received: from guix-xps.local (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 12PG9YCY007581 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 25 Mar 2021 17:09:34 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 12PG9YCY007581 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1616688575; bh=+sZHGtEseQcMxLbdAtC8f5jCJJmTOCdjlZ/LkbAtzt8=; h=Subject:From:To:Cc:Date:From; b=YRm+7PiHZ9dE7NlWsU1K7wNAjw73FPBV2RNDLWgIpyDkaIFUJeZSzdb+x7LEamvUx iV6jVeZzePrUg5XH2SDCsm0m9o5zR8ydW/dS1sZli0wE/X/qwhFLJ7Pjsq6wTkxD++ a4Vog0uO9N7s445Y+NsbETsgvo87CDuWHlCr6Oak= Message-ID: Subject: [PATCH] gnu: cross-base: Relax check for powerpc64le From: =?ISO-8859-1?Q?L=E9o?= Le Bouter To: 47349@debbugs.gnu.org Date: Thu, 25 Mar 2021 17:09:30 +0100 Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-5Eo00zeVkWGMMv4n2bj7" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 47349 Cc: Chris Marusich X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-5Eo00zeVkWGMMv4n2bj7 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable LGTM! But also wait for marusich's input. --=-5Eo00zeVkWGMMv4n2bj7 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEFIvLi9gL+xax3g6RRaix6GvNEKYFAmBctboACgkQRaix6GvN EKZIiQ//SGXh8EClINJOmC6VTSz/SkNZzpTXBYaxv88LnLum6dUk5T8Csmuhsrhy 2Ww/dCXEPitgefx+W8r3tIys6PAJmU1TVYHtxcmJfxh7ICcQW2lzRkxWy9tGr/qz tMuNLiqvfj/SDR2HtB78STZAdkVNSSsXwGVc/19EAJkt0NfN2vSxOMoo22rW+wMk /JgadEHph6X/ASmdFXXoiRnWKooWBNPbxksOQzjmu/oIXF8CwNi/XRpzxV89uMwh 6QfoDJCWr5W4s7gcsKP5x7aAk9uU2TY8eSA60lAO/c+POTjpc73hAp6fglsomC8t HY6CU8tP0kETu4fkRitTSwSeRQzjJuKZY9CT+zTW2ZhaQuRi1cVgOOSOL6thK0A4 rFe2i4Siq6lr6vOjkvrk6EMIDj4USNgQg2FgnMjuLVNmgu/b6lrQkW9TTANVceJ9 Yq/lvrV3s22MK9QidtXfuq9uqEtklWC3JBY0MCJleBdXfx9YTdVbzcXc6T8KinZy mXHl1gTRWkq2yTHhiIPHeh8R++l4CGE+JyCnJX10AZKHL2cDtCEMOJtPDsyDbw/X Yolzp9ydT/M3+R2++J+FDtxtazcVeC/Uu3hqvwWtEMZoYK1y6bAo47ZRj53MegQ3 5wkkIsQCGz+o2jmFp466fKqiKVOYrBoB/OOXQmJLTuH8xzerYmI= =kVOm -----END PGP SIGNATURE----- --=-5Eo00zeVkWGMMv4n2bj7-- From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 26 02:27:22 2021 Received: (at 47349) by debbugs.gnu.org; 26 Mar 2021 06:27:22 +0000 Received: from localhost ([127.0.0.1]:40201 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPfwH-00085K-SF for submit@debbugs.gnu.org; Fri, 26 Mar 2021 02:27:22 -0400 Received: from mail-pj1-f47.google.com ([209.85.216.47]:46066) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPfwE-000856-QE for 47349@debbugs.gnu.org; Fri, 26 Mar 2021 02:27:19 -0400 Received: by mail-pj1-f47.google.com with SMTP id kr3-20020a17090b4903b02900c096fc01deso1983750pjb.4 for <47349@debbugs.gnu.org>; Thu, 25 Mar 2021 23:27:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=1rAIap7al2PLUK/av2pNrL45fFytg3uA5Gi972jyT5Q=; b=iY1qMLU7PkvkQ26452GciD6T9LeKYFXIT1DYNEh/kVuUuk0rGbEBCwQc2WC+NyIQQd iqPGxBRMPuHaX35CG1SGwdnqBk6ehIb7aqGAOyiFcW7sMMGzTcAtjrkim+gYAuhYeE7T bW74/JzuUvirqHvkF0pLFvq/YQQXqWocX1JBonKOa0+eWNwk2QXeHdof6VBPnnGE5ECV chtX4pXXbSJkTIewG7PVcK9t2HjZobvD4T4T5RRWsuqqjh9lAKkivi1WNxZSMjp5dqSd a1KO8/y0brxYOcqE3iLKZaLCLd0hMAgSZqEJm++wFOzHyLV4331JbEe7MD2/g9TFk4SQ VR/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=1rAIap7al2PLUK/av2pNrL45fFytg3uA5Gi972jyT5Q=; b=ZhWPXMhaqGdMo5wWZKxuL7c5k9zPFEMZg72RIviOUVTsxqQwJufDyR4WiMeKZCDLfY uCdHqAYJee+e5dDXWLnOyOQpQUKDtPIhcQ2LiS0wbu68r+NvrPjHmZsJ+QbFmGkockD2 6iH/HLgUs5J1nbM4puLXgkdya295jkDPg00+d+5ukBpMmvZL3B715mh21Y/v5Q2WttJo T30oFc5qE+JLrs+0h00lC5T5NukbJhVfGQLl1bnhzxC79ZXKpU85z+GyKs+PFm/Xfgfk NU68HaxDUgPGVDm81aTXqRM3mn1DvSSNYI9TcI1HjkHRk6af2jVwkvVRHcdXosouT1rz KjmA== X-Gm-Message-State: AOAM530kVg/HZykLVlVsG/yjKzgnv9s/IB4pPSLReIXuJ8mid+wJxHvz f02xQxD4INWo2PVxjhUDZZPof9yadAk= X-Google-Smtp-Source: ABdhPJzBZcBDaLtVoyKcQrF18cosEyURYjKsRhjdJCl8kMeY8Dze+ZIilQfbE4i3lAamC4vEQ1wKTQ== X-Received: by 2002:a17:90a:9f8d:: with SMTP id o13mr12082553pjp.25.1616740031767; Thu, 25 Mar 2021 23:27:11 -0700 (PDT) Received: from garuda-lan (c-24-18-44-142.hsd1.wa.comcast.net. [24.18.44.142]) by smtp.gmail.com with ESMTPSA id 12sm7180900pgw.18.2021.03.25.23.27.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Mar 2021 23:27:10 -0700 (PDT) From: Chris Marusich To: Carl Dong Subject: Re: bug#47349: [PATCH] gnu: cross-base: Relax check for powerpc64le References: <20210323160213.1194843-1-contact@carldong.me> Date: Thu, 25 Mar 2021 23:27:06 -0700 In-Reply-To: <20210323160213.1194843-1-contact@carldong.me> (Carl Dong's message of "Tue, 23 Mar 2021 12:02:13 -0400") Message-ID: <871rc2bfb9.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 47349 Cc: 47349@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi people, Carl Dong writes: > * gnu/packages/cross-base.scm (cross-gcc-arguments): Check for > "powerpc64le-" prefix for "--with-long-double-128" instead of matching > full target. This patch looks good to me. I confirmed it doesn't rebuild the world. We can apply it to master. I will do this in the next few days unless somebody else has further comments on this patch specifically. While reviewing this patch, I noticed that surprisingly, we do not use =2D-with-long-double in the following places: =2D The gcc package (a GCC v7.5.0 native compiler) on powerpc64le-linux systems. =2D The gcc-final package (a GCC v7.5.0 native compiler) on powerpc64le-linux systems. =2D The %bootstrap-gcc package (a GCC v5.5.0 native compiler) on powerpc64le-linux systems. =2D The %gcc-static package (a GCC v5.5.0 native compiler), when cross-compiled for the powerpc64le-linux-gnu target on an x86_64-linux system. (Note that this is actually the same GCC that on powerpc64le-linux systems is known as %bootstrap-gcc.) Obviously, %bootstrap-gcc is good enough to build gcc-final, and gcc-final is good enough to build various things, including GNU Hello and GNU Guix itself. We have verified this. However, Leo, do you think it would be a good idea to add --with-long-double to the gcc and gcc-final package definitions on powerpc64le-linux, anyway? Perhaps it actually is needed, but we just haven't yet encountered the problems that it would solve. What do you think, Leo? You can inspect the packages to see this yourself, but you can also ask Guix to tell you about the configure options. Here is what Guix says about the configure options for the gcc and gcc-final packages on a powerpc64le-linux system using commit b0eb525ddba77420ff8c0930b9173b10f9ae342d: =2D-8<---------------cut here---------------start------------->8--- scheme@(guix-user)> ,pp (bag-arguments (package->bag (@ (gnu packages gcc) = gcc))) $3 =3D (#:system "powerpc64le-linux" #:out-of-source? #t #:configure-flags `("--enable-plugin" "--enable-languages=3Dc,c++" "--disable-multilib" "--with-system-zlib" "--disable-libstdcxx-pch" "--with-local-prefix=3D/no-gcc-local-prefix" ,(string-append "--with-gxx-include-dir=3D" (assoc-ref %outputs "out") "/include/c++") ,(let ((libc (assoc-ref %build-inputs "libc"))) (if libc (string-append "--with-native-system-header-dir=3D" libc "/include") "--without-headers"))) #:make-flags (let* ((libc (assoc-ref %build-inputs "libc")) (libc-native (or (assoc-ref %build-inputs "libc-native") libc))) `(,@(if libc (list (string-append "LDFLAGS_FOR_TARGET=3D" "-B" libc "/lib " "-Wl,-dynamic-linker " "-Wl," libc "/lib/ld64.so.2")) '()) ,(string-append "LDFLAGS=3D" "-Wl,-rpath=3D" libc-native "/lib " "-Wl,-dynamic-linker " "-Wl," libc-native "/lib/ld64.so.2") ,(string-append "BOOT_CFLAGS=3D-O2 " "-g0"))) #:tests? #f #:phases (modify-phases %standard-phases (add-before 'configure 'pre-configure (lambda* (#:key inputs outputs #:allow-other-keys) (let ((libdir (or (assoc-ref outputs "lib") (assoc-ref outputs "out"))) (libc (assoc-ref inputs "libc"))) (when libc (for-each (lambda (x) (substitute* (find-files "gcc/config" "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") (("(#define (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" _ line) line))) '(1 2 3)) (substitute* (find-files "gcc/config" "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") (("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ \t]*).*$" _ gnu-user suffix) (format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%" gnu-user suffix (string-append libc "/lib/ld64.so.2")))) (substitute* (find-files "gcc/config" "^gnu-user.*\\.h$") (("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix) (format #f "#define GNU_USER_TARGET_LIB_SPEC \"-L~a/lib %{!static:= -rpath=3D~a/lib %{!static-libgcc:-rpath=3D~a/lib -lgcc_s}} \" ~a" libc libc libdir suffix)) (("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line) (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"\n#defin= e STANDARD_STARTFILE_PREFIX_2 \"\"\n~a" libc line))) (substitute* "gcc/config/rs6000/sysv4.h" (("#define LIB_LINUX_SPEC (.*)$" _ suffix) (format #f "#define LIB_LINUX_SPEC \"-L~a/lib %{!static:-rpath=3D~= a/lib %{!static-libgcc:-rpath=3D~a/lib -lgcc_s}} \" ~a" libc libc libdir suffix)) (("#define\tSTARTFILE_LINUX_SPEC.*$" line) (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"\n#defin= e STANDARD_STARTFILE_PREFIX_2 \"\"\n~a" libc line)))) (when (file-exists? "gcc/config/rs6000") (substitute* (find-files "gcc/config/rs6000") (("/lib64") "/lib"))) (substitute* "fixincludes/fixincl.x" (("static char const sed_cmd_z\\[\\] =3D.*;") "static char const sed_cmd_z[] =3D \"sed\";")) (when (file-exists? "gcc/config/aarch64") (substitute* "gcc/config/aarch64/t-aarch64-linux" (("lib64") "lib"))) (when (file-exists? "libbacktrace") (substitute* "libbacktrace/configure" (("WARN_FLAGS=3D(.*)-Werror" _ flags) (string-append "WARN_FLAGS=3D" flags))) (when (file-exists? "libsanitizer/libbacktrace") (substitute* "libsanitizer/libbacktrace/Makefile.in" (("-Werror") "")))) (substitute* "libstdc++-v3/src/Makefile.in" (("^OPT_LDFLAGS =3D ") "OPT_LDFLAGS =3D -Wl,-rpath=3D$(libdir) ")) (substitute* "libstdc++-v3/python/Makefile.in" (("pythondir =3D .*$") (string-append "pythondir =3D " libdir "/share" "/gcc-$(gcc_version)/python\n"))) (substitute* "gcc/config.in" (("PREFIX_INCLUDE_DIR") "PREFIX_INCLUDE_DIR_isnt_necessary_here")) #t))) (add-after 'configure 'post-configure (lambda _ (substitute* "Makefile" (("^TOPLEVEL_CONFIGURE_ARGUMENTS=3D(.*)$" _ rest) "TOPLEVEL_CONFIGURE_ARGUMENTS=3D\n")) #t)))) scheme@(guix-user)> ,pp (bag-arguments (package->bag (@@ (gnu packages comm= encement) gcc-final))) $4 =3D (#:system "powerpc64le-linux" #:guile # #:allowed-references ("out" "lib" # # #) #:validate-runpath? #f #:out-of-source? #t #:configure-flags `("--enable-plugin" "--enable-languages=3Dc,c++" "--disable-multilib" "--with-system-zlib" "--disable-libstdcxx-pch" "--with-local-prefix=3D/no-gcc-local-prefix" ,(string-append "--with-gxx-include-dir=3D" (assoc-ref %outputs "out") "/include/c++") ,(let ((libc (assoc-ref %build-inputs "libc"))) (if libc (string-append "--with-native-system-header-dir=3D" libc "/include") "--without-headers"))) #:make-flags (let ((zlib (assoc-ref %build-inputs "zlib"))) (map (lambda (flag) (if (string-prefix? "LDFLAGS=3D" flag) (string-append flag " -L" (assoc-ref %build-inputs "libstdc++") "/lib -L" zlib "/lib -Wl,-rpath=3D" zlib "/lib") flag)) (let* ((libc (assoc-ref %build-inputs "libc")) (libc-native (or (assoc-ref %build-inputs "libc-native") libc))) `(,@(if libc (list (string-append "LDFLAGS_FOR_TARGET=3D" "-B" libc "/lib " "-Wl,-dynamic-linker " "-Wl," libc "/lib/ld64.so.2")) '()) ,(string-append "LDFLAGS=3D" "-Wl,-rpath=3D" libc-native "/lib " "-Wl,-dynamic-linker " "-Wl," libc-native "/lib/ld64.so.2") ,(string-append "BOOT_CFLAGS=3D-O2 " "-g0"))))) #:tests? #f #:phases (modify-phases (modify-phases %standard-phases (add-before 'configure 'pre-configure (lambda* (#:key inputs outputs #:allow-other-keys) (let ((libdir (or (assoc-ref outputs "lib") (assoc-ref outputs "out"))) (libc (assoc-ref inputs "libc"))) (when libc (for-each (lambda (x) (substitute* (find-files "gcc/config" "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") (("(#define (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n= $" _ line) line))) '(1 2 3)) (substitute* (find-files "gcc/config" "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") (("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ \t]*).*$" _ gnu-user suffix) (format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%" gnu-user suffix (string-append libc "/lib/ld64.so.2")))) (substitute* (find-files "gcc/config" "^gnu-user.*\\.h$") (("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix) (format #f "#define GNU_USER_TARGET_LIB_SPEC \"-L~a/lib %{!stati= c:-rpath=3D~a/lib %{!static-libgcc:-rpath=3D~a/lib -lgcc_s}} \" ~a" libc libc libdir suffix)) (("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line) (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"\n#def= ine STANDARD_STARTFILE_PREFIX_2 \"\"\n~a" libc line))) (substitute* "gcc/config/rs6000/sysv4.h" (("#define LIB_LINUX_SPEC (.*)$" _ suffix) (format #f "#define LIB_LINUX_SPEC \"-L~a/lib %{!static:-rpath= =3D~a/lib %{!static-libgcc:-rpath=3D~a/lib -lgcc_s}} \" ~a" libc libc libdir suffix)) (("#define\tSTARTFILE_LINUX_SPEC.*$" line) (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"\n#def= ine STANDARD_STARTFILE_PREFIX_2 \"\"\n~a" libc line)))) (when (file-exists? "gcc/config/rs6000") (substitute* (find-files "gcc/config/rs6000") (("/lib64") "/lib"))) (substitute* "fixincludes/fixincl.x" (("static char const sed_cmd_z\\[\\] =3D.*;") "static char const sed_cmd_z[] =3D \"sed\";")) (when (file-exists? "gcc/config/aarch64") (substitute* "gcc/config/aarch64/t-aarch64-linux" (("lib64") "lib"))) (when (file-exists? "libbacktrace") (substitute* "libbacktrace/configure" (("WARN_FLAGS=3D(.*)-Werror" _ flags) (string-append "WARN_FLAGS=3D" flags))) (when (file-exists? "libsanitizer/libbacktrace") (substitute* "libsanitizer/libbacktrace/Makefile.in" (("-Werror") "")))) (substitute* "libstdc++-v3/src/Makefile.in" (("^OPT_LDFLAGS =3D ") "OPT_LDFLAGS =3D -Wl,-rpath=3D$(libdir) ")) (substitute* "libstdc++-v3/python/Makefile.in" (("pythondir =3D .*$") (string-append "pythondir =3D " libdir "/share" "/gcc-$(gcc_version)/python\n"))) (substitute* "gcc/config.in" (("PREFIX_INCLUDE_DIR") "PREFIX_INCLUDE_DIR_isnt_necessary_here")) #t))) (add-after 'configure 'post-configure (lambda _ (substitute* "Makefile" (("^TOPLEVEL_CONFIGURE_ARGUMENTS=3D(.*)$" _ rest) "TOPLEVEL_CONFIGURE_ARGUMENTS=3D\n")) #t))) (add-after 'unpack 'unpack-gmp&co (lambda* (#:key inputs #:allow-other-keys) (let ((gmp (assoc-ref %build-inputs "gmp-source")) (mpfr (assoc-ref %build-inputs "mpfr-source")) (mpc (assoc-ref %build-inputs "mpc-source"))) (for-each (lambda (source) (invoke "tar" "xvf" source)) (list gmp mpfr mpc)) (symlink "gmp-6.0.0" "gmp") (symlink "mpfr-4.0.2" "mpfr") (symlink "mpc-1.1.0" "mpc") #t))))) scheme@(guix-user)> =2D-8<---------------cut here---------------end--------------->8--- And here is what Guix says about the configure options for %gcc-static, when cross-compiled for powerpc64le-linux-gnu on an x86_64-linux system using commit 662e7e28d576ada91fc9dec7d27c100666114f03, which is the one we used to build the powerpc64le-linux bootstrap binaries: =2D-8<---------------cut here---------------start------------->8--- scheme@(guix-user)> package->bag $1 =3D #bag (package #:optional system target #:key gra= ft?)> scheme@(guix-user)> ,pp (bag-arguments (package->bag (@@ (gnu packages make= -bootstrap) %gcc-static) "x86_64-linux" "powerpc64le-linux-gnu")) $2 =3D (#:system "x86_64-linux" #:target "powerpc64le-linux-gnu" #:modules ((srfi srfi-1) (srfi srfi-26) (ice-9 regex) (guix build gnu-build-system) (guix build utils) (guix build gremlin) (guix elf)) #:out-of-source? #t #:configure-flags (append (list "--disable-bootstrap" "--with-stage1-ldflags=3D-static" "--enable-languages=3Dc,c++" "--disable-lto" "--disable-shared" "--disable-plugin" "--disable-libmudflap" "--disable-libatomic" "--disable-libsanitizer" "--disable-libitm" "--disable-libgomp" "--disable-libcilkrts" "--disable-libvtv" "--disable-libssp" "--disable-libquadmath") (remove (cut string-match "--(.*plugin|enable-languages)" <>) `("--enable-plugin" "--enable-languages=3Dc,c++" "--disable-multilib" "--with-system-zlib" "--disable-libstdcxx-pch" "--with-local-prefix=3D/no-gcc-local-prefix" ,(string-append "--with-gxx-include-dir=3D" (assoc-ref %outputs "out") "/include/c++") ,(let ((libc (assoc-ref %build-inputs "libc"))) (if libc (string-append "--with-native-system-header-dir=3D" libc "/include") "--without-headers")) "CC_FOR_TARGET=3Dpowerpc64le-linux-gnu-gcc" "CXX_FOR_TARGET=3Dpowerpc64le-linux-gnu-g++" "LD_FOR_TARGET=3Dpowerpc64le-linux-gnu-ld" "AR_FOR_TARGET=3Dpowerpc64le-linux-gnu-ar" "NM_FOR_TARGET=3Dpowerpc64le-linux-gnu-nm" "OBJDUMP_FOR_TARGET=3Dpowerpc64le-linux-gnu-objdump" "RANLIB_FOR_TARGET=3Dpowerpc64le-linux-gnu-ranlib" "STRIP_FOR_TARGET=3Dpowerpc64le-linux-gnu-strip"))) #:make-flags '("CFLAGS=3D-g0 -O2") #:tests? #f #:phases (modify-phases (modify-phases %standard-phases (add-before 'configure 'pre-configure (lambda* (#:key inputs outputs #:allow-other-keys) (let ((libdir (string-append (or (assoc-ref outputs "lib") (assoc-ref outputs "out")) "/" "powerpc64le-linux-gnu")) (libc (assoc-ref inputs "libc"))) (when libc (for-each (lambda (x) (substitute* (find-files "gcc/config" "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") (("(#define (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n= $" _ line) line))) '(1 2 3)) (substitute* (find-files "gcc/config" "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") (("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ \t]*).*$" _ gnu-user suffix) (format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%" gnu-user suffix (string-append libc "/lib/ld64.so.2")))) (substitute* (find-files "gcc/config" "^gnu-user.*\\.h$") (("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix) (format #f "#define GNU_USER_TARGET_LIB_SPEC \"-L~a/lib %{!stati= c:-rpath=3D~a/lib %{!static-libgcc:-rpath=3D~a/lib -lgcc_s}} \" ~a" libc libc libdir suffix)) (("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line) (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"\n#def= ine STANDARD_STARTFILE_PREFIX_2 \"\"\n~a" libc line))) (substitute* "gcc/config/rs6000/sysv4.h" (("#define LIB_LINUX_SPEC (.*)$" _ suffix) (format #f "#define LIB_LINUX_SPEC \"-L~a/lib %{!static:-rpath= =3D~a/lib %{!static-libgcc:-rpath=3D~a/lib -lgcc_s}} \" ~a" libc libc libdir suffix)) (("#define\tSTARTFILE_LINUX_SPEC.*$" line) (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"\n#def= ine STANDARD_STARTFILE_PREFIX_2 \"\"\n~a" libc line)))) (substitute* "fixincludes/fixincl.x" (("static char const sed_cmd_z\\[\\] =3D.*;") "static char const sed_cmd_z[] =3D \"sed\";")) (when (file-exists? "gcc/config/aarch64") (substitute* "gcc/config/aarch64/t-aarch64-linux" (("lib64") "lib"))) (when (file-exists? "libbacktrace") (substitute* "libbacktrace/configure" (("WARN_FLAGS=3D(.*)-Werror" _ flags) (string-append "WARN_FLAGS=3D" flags))) (when (file-exists? "libsanitizer/libbacktrace") (substitute* "libsanitizer/libbacktrace/Makefile.in" (("-Werror") "")))) (substitute* "libstdc++-v3/src/Makefile.in" (("^OPT_LDFLAGS =3D ") "OPT_LDFLAGS =3D -Wl,-rpath=3D$(libdir) ")) (substitute* "libstdc++-v3/python/Makefile.in" (("pythondir =3D .*$") (string-append "pythondir =3D " libdir "/share" "/gcc-$(gcc_version)/python\n"))) (substitute* "gcc/config.in" (("PREFIX_INCLUDE_DIR") "PREFIX_INCLUDE_DIR_isnt_necessary_here")) #t))) (add-after 'configure 'post-configure (lambda _ (substitute* "Makefile" (("^TOPLEVEL_CONFIGURE_ARGUMENTS=3D(.*)$" _ rest) "TOPLEVEL_CONFIGURE_ARGUMENTS=3D\n")) #t))) (add-after 'pre-configure 'remove-lgcc_s (lambda _ (substitute* (cons "gcc/config/rs6000/sysv4.h" (find-files "gcc/config" "^gnu-user.*\\.h$")) ((" -lgcc_s}}") "}}")) #t))) #:guile #f) scheme@(guix-user)> =2D-8<---------------cut here---------------end--------------->8--- As you can see, --with-long-double-128 is missing in all three cases. And yet, the packages appear to work correctly. I do not know why, but I wonder if perhaps we should add --with-long-double-128 for gcc and gcc-static on powerpc64le-linux. A thought occurred to me: can we remove the --with-long-double-128 from cross-base.scm and commencement.scm? As an experiment, I have tried removing it, and I can confirm that we do need it in both places. Removing it from cross-base.scm breaks the ability to create cross-compilers for the powerpc64le-linux-gnu target, and removing it from commencement.scm breaks the ability to build essentially anything on powerpc64le-linux. The failure mode in both cases is similar; in any case, we do need it in both of those places. I just don't understand why we apparently do NOT need this option in gcc, gcc-final, and %bootstrap-gcc on powerpc64le-linux. Like I said...maybe it really IS required there, too, but we just haven't encountered any problems yet... I don't know, and would welcome your thoughts. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJJBAEBCAAzFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAmBdfroVHGNtbWFydXNp Y2hAZ21haWwuY29tAAoJEN1AmhXYIkadqOEP/3qKb1aTIWAnLbYlBVvWQYk7Ccfd EvUAksH1MUqdWQQjY7FUY7L6k2qVibTd13KWTyKuLnaTdNAdcBK8BwGroeqTKfVL OYFSkectd28IPPRvIEr64odg9dbNyq6l4bmJM+KNkRcaxEHbVpzbBvsYBrUBBiRP cQ0z6LCW8JAgCf4l6P04kIAGNFxQ4KKrVVJ++dhkV9nX5e/CwUn+N9If/hXWuHC9 y7VymOYWc+z0klHdDPW9FmCJl0e4n1OjKvhb2XBggOQwJC4kYI/m2/Mx6/9oeS2P 7nfT2wFeyKe7naTRs1+q4zeJ7fy5kIgWYL6A1+8kXWR9KM/MpewgQT7G+XYsWSs2 LtZme+2e2ptDqD97TClgFpRXKXNijta0K+m1HtidqfEERoV9ZGRLZf88NV7yOSjO J1ZZ8vgHJ56RzPy4J2HY/obwxebcfvzvSmlmaPvV4gH6Kncwu9owDh6ln0ynf03S wxHcfh7p2VDpXAGJuqE2szFCe7QoJhymG1accjNsDEDVXwXfU3oSod3G1ipcoSGE Su1kxRN8YloHTK0nYAG9+ZQWdJxFCSTj4+IAh1ie3W6zPdtg+FNHu3rvU/FyUdSa cskhsttNw1mhM/1aEQgW/bmx02FPkfup8lL/z5BKu6u1RDpYxCsrqTA4q41teiro UNV9BZGT9hUWNYwc =vb+m -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 26 06:31:32 2021 Received: (at 47349) by debbugs.gnu.org; 26 Mar 2021 10:31:32 +0000 Received: from localhost ([127.0.0.1]:40509 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPjka-0001eO-F7 for submit@debbugs.gnu.org; Fri, 26 Mar 2021 06:31:32 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:44924) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPjkY-0001e7-HI for 47349@debbugs.gnu.org; Fri, 26 Mar 2021 06:31:31 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id CD2DE25E; Fri, 26 Mar 2021 11:31:23 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Mi8awsJurD1s; Fri, 26 Mar 2021 11:31:23 +0100 (CET) Received: from jurong (p200300dd5710fa00d100617c1be1ebbb.dip0.t-ipconnect.de [IPv6:2003:dd:5710:fa00:d100:617c:1be1:ebbb]) by hera.aquilenet.fr (Postfix) with ESMTPSA id B6E751FD; Fri, 26 Mar 2021 11:31:18 +0100 (CET) Date: Fri, 26 Mar 2021 11:31:16 +0100 From: Andreas Enge To: Chris Marusich Subject: Re: [bug#47349] [PATCH] gnu: cross-base: Relax check for powerpc64le Message-ID: References: <20210323160213.1194843-1-contact@carldong.me> <871rc2bfb9.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <871rc2bfb9.fsf@gmail.com> X-Spamd-Bar: / Authentication-Results: hera.aquilenet.fr X-Rspamd-Server: hera X-Rspamd-Queue-Id: CD2DE25E X-Spamd-Result: default: False [-0.50 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; FREEMAIL_ENVRCPT(0.00)[gmail.com]; FREEMAIL_TO(0.00)[gmail.com]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; MID_RHS_NOT_FQDN(0.50)[]; FORGED_RECIPIENTS(2.00)[cmmarusich@gmail.com ..,andreas.enge@aquilenet.fr ...]; RCVD_COUNT_TWO(0.00)[2]; BAYES_HAM(-3.00)[100.00%] X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: 47349 Cc: 47349@debbugs.gnu.org, Carl Dong X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.3 (/) Hello Chris, I have no idea about cross compilers, but it would certainly be nice if the final gcc supported long doubles. As a check, you can have a look at the log file for building gmp, obtained with "guix build --log-file gmp". If you grep for "long double", it should contain a line checking for long double... yes Hm, just "having" long double is maybe not all we want. >From the gcc documentation at https://gcc.gnu.org/install/configure.html: --with-long-double-128 Specify if long double type should be 128-bit by default on selected GNU/Linux architectures. If using --without-long-double-128, long double will be by default 64-bit, the same as double type. When neither of these configure options are used, the default will be 128-bit long double when built against GNU C Library 2.4 and later, 64-bit long double otherwise. Of course we would like long double to have 128 bits, since otherwise there is no difference with double. And at least with the current gcc and a glibc from 2006 or later, the flag should not be neeed. On my x86_64 machine, sizeof(long double) is 16 bytes with gcc@10, 5 or 7. Could you try to compile and run the trivial program #include void main () { printf ("long double %i\n", sizeof (long double)); } and see what it outputs on powerpc? Well, while --with-long-double-128 should not be needed since it should be the default, you may as well add it to the flags, since it is the desired behaviour. Andreas From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 26 10:33:23 2021 Received: (at 47349) by debbugs.gnu.org; 26 Mar 2021 14:33:23 +0000 Received: from localhost ([127.0.0.1]:42200 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPnWb-0005pt-WC for submit@debbugs.gnu.org; Fri, 26 Mar 2021 10:33:23 -0400 Received: from mail.zaclys.net ([178.33.93.72]:39331) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPnWZ-0005pe-Kt for 47349@debbugs.gnu.org; Fri, 26 Mar 2021 10:33:21 -0400 Received: from guix-xps.local (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 12QEX8HX036352 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 26 Mar 2021 15:33:09 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 12QEX8HX036352 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1616769189; bh=BZU/h1N8N4s14teBjLnp+L1pHpG9bbD8NXxUtsdeTM0=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=F4wauigoMMjbZwkjDupbIJ4mKC5aSSKgVoJeFnkuFl3yxDnJNF1gDt8Si4Q0z9Q6+ vAPLFt2SGKpDsDYGTBa/ZREbbshgj/EaJ3SplVytc0lMVa0xgAFtUSwfQekCEuK/8B 5jBGOC3Q/R9lPZSbpX0U1CK3ljqYUevGaSMr5kmY= Message-ID: <796a3aa4e83a7ae6526b3553970150a91ab8307b.camel@zaclys.net> Subject: Re: [bug#47349] [PATCH] gnu: cross-base: Relax check for powerpc64le From: =?ISO-8859-1?Q?L=E9o?= Le Bouter To: Chris Marusich , Carl Dong Date: Fri, 26 Mar 2021 15:33:03 +0100 In-Reply-To: <871rc2bfb9.fsf@gmail.com> References: <20210323160213.1194843-1-contact@carldong.me> <871rc2bfb9.fsf@gmail.com> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-Ab7nn8OHRHdRfIV/GcTP" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 47349 Cc: 47349@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-Ab7nn8OHRHdRfIV/GcTP Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, 2021-03-25 at 23:27 -0700, Chris Marusich wrote: > Hi people, >=20 > Carl Dong writes: >=20 > > * gnu/packages/cross-base.scm (cross-gcc-arguments): Check for > > "powerpc64le-" prefix for "--with-long-double-128" instead of > > matching > > full target. >=20 > This patch looks good to me. I confirmed it doesn't rebuild the > world. > We can apply it to master. I will do this in the next few days > unless > somebody else has further comments on this patch specifically. >=20 > While reviewing this patch, I noticed that surprisingly, we do not > use > --with-long-double in the following places: >=20 > - The gcc package (a GCC v7.5.0 native compiler) on powerpc64le-linux > systems. >=20 > - The gcc-final package (a GCC v7.5.0 native compiler) on > powerpc64le-linux systems. >=20 > - The %bootstrap-gcc package (a GCC v5.5.0 native compiler) on > powerpc64le-linux systems. >=20 > - The %gcc-static package (a GCC v5.5.0 native compiler), when > cross-compiled for the powerpc64le-linux-gnu target on an x86_64- > linux > system. (Note that this is actually the same GCC that on > powerpc64le-linux systems is known as %bootstrap-gcc.) >=20 > Obviously, %bootstrap-gcc is good enough to build gcc-final, and > gcc-final is good enough to build various things, including GNU Hello > and GNU Guix itself. We have verified this. However, Leo, do you > think > it would be a good idea to add --with-long-double to the gcc and > gcc-final package definitions on powerpc64le-linux, anyway? Perhaps > it > actually is needed, but we just haven't yet encountered the problems > that it would solve. What do you think, Leo? >=20 > You can inspect the packages to see this yourself, but you can also > ask > Guix to tell you about the configure options. Here is what Guix says > about the configure options for the gcc and gcc-final packages on a > powerpc64le-linux system using commit > b0eb525ddba77420ff8c0930b9173b10f9ae342d: >=20 > --8<---------------cut here---------------start------------->8--- > scheme@(guix-user)> ,pp (bag-arguments (package->bag (@ (gnu packages > gcc) gcc))) > $3 =3D (#:system > "powerpc64le-linux" > #:out-of-source? > #t > #:configure-flags > `("--enable-plugin" > "--enable-languages=3Dc,c++" > "--disable-multilib" > "--with-system-zlib" > "--disable-libstdcxx-pch" > "--with-local-prefix=3D/no-gcc-local-prefix" > ,(string-append > "--with-gxx-include-dir=3D" > (assoc-ref %outputs "out") > "/include/c++") > ,(let ((libc (assoc-ref %build-inputs "libc"))) > (if libc > (string-append > "--with-native-system-header-dir=3D" > libc > "/include") > "--without-headers"))) > #:make-flags > (let* ((libc (assoc-ref %build-inputs "libc")) > (libc-native > (or (assoc-ref %build-inputs "libc-native") libc))) > `(,@(if libc > (list (string-append > "LDFLAGS_FOR_TARGET=3D" > "-B" > libc > "/lib " > "-Wl,-dynamic-linker " > "-Wl," > libc > "/lib/ld64.so.2")) > '()) > ,(string-append > "LDFLAGS=3D" > "-Wl,-rpath=3D" > libc-native > "/lib " > "-Wl,-dynamic-linker " > "-Wl," > libc-native > "/lib/ld64.so.2") > ,(string-append "BOOT_CFLAGS=3D-O2 " "-g0"))) > #:tests? > #f > #:phases > (modify-phases > %standard-phases > (add-before > 'configure > 'pre-configure > (lambda* (#:key inputs outputs #:allow-other-keys) > (let ((libdir > (or (assoc-ref outputs "lib") > (assoc-ref outputs "out"))) > (libc (assoc-ref inputs "libc"))) > (when libc > (for-each > (lambda (x) > (substitute* > (find-files > "gcc/config" > "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") > (("(#define > (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" > _ > line) > line))) > '(1 2 3)) > (substitute* > (find-files > "gcc/config" > "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") > (("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ > \t]*).*$" > _ > gnu-user > suffix) > (format > #f > "#define ~a_DYNAMIC_LINKER~a \"~a\"~%" > gnu-user > suffix > (string-append libc "/lib/ld64.so.2")))) > (substitute* > (find-files "gcc/config" "^gnu-user.*\\.h$") > (("#define GNU_USER_TARGET_LIB_SPEC (.*)$" > _ > suffix) > (format > #f > "#define GNU_USER_TARGET_LIB_SPEC \"-L~a/lib > %{!static:-rpath=3D~a/lib %{!static-libgcc:-rpath=3D~a/lib -lgcc_s}} \" > ~a" > libc > libc > libdir > suffix)) > (("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" > line) > (format > #f > "#define STANDARD_STARTFILE_PREFIX_1 > \"~a/lib\"\n#define STANDARD_STARTFILE_PREFIX_2 \"\"\n~a" > libc > line))) > (substitute* > "gcc/config/rs6000/sysv4.h" > (("#define LIB_LINUX_SPEC (.*)$" _ suffix) > (format > #f > "#define LIB_LINUX_SPEC \"-L~a/lib %{!static:- > rpath=3D~a/lib %{!static-libgcc:-rpath=3D~a/lib -lgcc_s}} \" ~a" > libc > libc > libdir > suffix)) > (("#define\tSTARTFILE_LINUX_SPEC.*$" line) > (format > #f > "#define STANDARD_STARTFILE_PREFIX_1 > \"~a/lib\"\n#define STANDARD_STARTFILE_PREFIX_2 \"\"\n~a" > libc > line)))) > (when (file-exists? "gcc/config/rs6000") > (substitute* > (find-files "gcc/config/rs6000") > (("/lib64") "/lib"))) > (substitute* > "fixincludes/fixincl.x" > (("static char const sed_cmd_z\\[\\] =3D.*;") > "static char const sed_cmd_z[] =3D \"sed\";")) > (when (file-exists? "gcc/config/aarch64") > (substitute* > "gcc/config/aarch64/t-aarch64-linux" > (("lib64") "lib"))) > (when (file-exists? "libbacktrace") > (substitute* > "libbacktrace/configure" > (("WARN_FLAGS=3D(.*)-Werror" _ flags) > (string-append "WARN_FLAGS=3D" flags))) > (when (file-exists? "libsanitizer/libbacktrace") > (substitute* > "libsanitizer/libbacktrace/Makefile.in" > (("-Werror") "")))) > (substitute* > "libstdc++-v3/src/Makefile.in" > (("^OPT_LDFLAGS =3D ") > "OPT_LDFLAGS =3D -Wl,-rpath=3D$(libdir) ")) > (substitute* > "libstdc++-v3/python/Makefile.in" > (("pythondir =3D .*$") > (string-append > "pythondir =3D " > libdir > "/share" > "/gcc-$(gcc_version)/python\n"))) > (substitute* > "gcc/config.in" > (("PREFIX_INCLUDE_DIR") > "PREFIX_INCLUDE_DIR_isnt_necessary_here")) > #t))) > (add-after > 'configure > 'post-configure > (lambda _ > (substitute* > "Makefile" > (("^TOPLEVEL_CONFIGURE_ARGUMENTS=3D(.*)$" _ rest) > "TOPLEVEL_CONFIGURE_ARGUMENTS=3D\n")) > #t)))) > scheme@(guix-user)> ,pp (bag-arguments (package->bag (@@ (gnu > packages commencement) gcc-final))) > $4 =3D (#:system > "powerpc64le-linux" > #:guile > # 7fff75bdcf00> > #:allowed-references > ("out" > "lib" > # 7fff692745a0> > # 7fff69274820> > # 7fff69274960>) > #:validate-runpath? > #f > #:out-of-source? > #t > #:configure-flags > `("--enable-plugin" > "--enable-languages=3Dc,c++" > "--disable-multilib" > "--with-system-zlib" > "--disable-libstdcxx-pch" > "--with-local-prefix=3D/no-gcc-local-prefix" > ,(string-append > "--with-gxx-include-dir=3D" > (assoc-ref %outputs "out") > "/include/c++") > ,(let ((libc (assoc-ref %build-inputs "libc"))) > (if libc > (string-append > "--with-native-system-header-dir=3D" > libc > "/include") > "--without-headers"))) > #:make-flags > (let ((zlib (assoc-ref %build-inputs "zlib"))) > (map (lambda (flag) > (if (string-prefix? "LDFLAGS=3D" flag) > (string-append > flag > " -L" > (assoc-ref %build-inputs "libstdc++") > "/lib -L" > zlib > "/lib -Wl,-rpath=3D" > zlib > "/lib") > flag)) > (let* ((libc (assoc-ref %build-inputs "libc")) > (libc-native > (or (assoc-ref %build-inputs "libc-native") libc))) > `(,@(if libc > (list (string-append > "LDFLAGS_FOR_TARGET=3D" > "-B" > libc > "/lib " > "-Wl,-dynamic-linker " > "-Wl," > libc > "/lib/ld64.so.2")) > '()) > ,(string-append > "LDFLAGS=3D" > "-Wl,-rpath=3D" > libc-native > "/lib " > "-Wl,-dynamic-linker " > "-Wl," > libc-native > "/lib/ld64.so.2") > ,(string-append "BOOT_CFLAGS=3D-O2 " "-g0"))))) > #:tests? > #f > #:phases > (modify-phases > (modify-phases > %standard-phases > (add-before > 'configure > 'pre-configure > (lambda* (#:key inputs outputs #:allow-other-keys) > (let ((libdir > (or (assoc-ref outputs "lib") > (assoc-ref outputs "out"))) > (libc (assoc-ref inputs "libc"))) > (when libc > (for-each > (lambda (x) > (substitute* > (find-files > "gcc/config" > "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") > (("(#define > (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" > _ > line) > line))) > '(1 2 3)) > (substitute* > (find-files > "gcc/config" > "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") > (("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ > \t]*).*$" > _ > gnu-user > suffix) > (format > #f > "#define ~a_DYNAMIC_LINKER~a \"~a\"~%" > gnu-user > suffix > (string-append libc "/lib/ld64.so.2")))) > (substitute* > (find-files "gcc/config" "^gnu-user.*\\.h$") > (("#define GNU_USER_TARGET_LIB_SPEC (.*)$" > _ > suffix) > (format > #f > "#define GNU_USER_TARGET_LIB_SPEC \"-L~a/lib > %{!static:-rpath=3D~a/lib %{!static-libgcc:-rpath=3D~a/lib -lgcc_s}} \" > ~a" > libc > libc > libdir > suffix)) > (("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" > line) > (format > #f > "#define STANDARD_STARTFILE_PREFIX_1 > \"~a/lib\"\n#define STANDARD_STARTFILE_PREFIX_2 \"\"\n~a" > libc > line))) > (substitute* > "gcc/config/rs6000/sysv4.h" > (("#define LIB_LINUX_SPEC (.*)$" _ suffix) > (format > #f > "#define LIB_LINUX_SPEC \"-L~a/lib %{!static:- > rpath=3D~a/lib %{!static-libgcc:-rpath=3D~a/lib -lgcc_s}} \" ~a" > libc > libc > libdir > suffix)) > (("#define\tSTARTFILE_LINUX_SPEC.*$" line) > (format > #f > "#define STANDARD_STARTFILE_PREFIX_1 > \"~a/lib\"\n#define STANDARD_STARTFILE_PREFIX_2 \"\"\n~a" > libc > line)))) > (when (file-exists? "gcc/config/rs6000") > (substitute* > (find-files "gcc/config/rs6000") > (("/lib64") "/lib"))) > (substitute* > "fixincludes/fixincl.x" > (("static char const sed_cmd_z\\[\\] =3D.*;") > "static char const sed_cmd_z[] =3D \"sed\";")) > (when (file-exists? "gcc/config/aarch64") > (substitute* > "gcc/config/aarch64/t-aarch64-linux" > (("lib64") "lib"))) > (when (file-exists? "libbacktrace") > (substitute* > "libbacktrace/configure" > (("WARN_FLAGS=3D(.*)-Werror" _ flags) > (string-append "WARN_FLAGS=3D" flags))) > (when (file-exists? "libsanitizer/libbacktrace") > (substitute* > "libsanitizer/libbacktrace/Makefile.in" > (("-Werror") "")))) > (substitute* > "libstdc++-v3/src/Makefile.in" > (("^OPT_LDFLAGS =3D ") > "OPT_LDFLAGS =3D -Wl,-rpath=3D$(libdir) ")) > (substitute* > "libstdc++-v3/python/Makefile.in" > (("pythondir =3D .*$") > (string-append > "pythondir =3D " > libdir > "/share" > "/gcc-$(gcc_version)/python\n"))) > (substitute* > "gcc/config.in" > (("PREFIX_INCLUDE_DIR") > "PREFIX_INCLUDE_DIR_isnt_necessary_here")) > #t))) > (add-after > 'configure > 'post-configure > (lambda _ > (substitute* > "Makefile" > (("^TOPLEVEL_CONFIGURE_ARGUMENTS=3D(.*)$" _ rest) > "TOPLEVEL_CONFIGURE_ARGUMENTS=3D\n")) > #t))) > (add-after > 'unpack > 'unpack-gmp&co > (lambda* (#:key inputs #:allow-other-keys) > (let ((gmp (assoc-ref %build-inputs "gmp-source")) > (mpfr (assoc-ref %build-inputs "mpfr-source")) > (mpc (assoc-ref %build-inputs "mpc-source"))) > (for-each > (lambda (source) (invoke "tar" "xvf" source)) > (list gmp mpfr mpc)) > (symlink "gmp-6.0.0" "gmp") > (symlink "mpfr-4.0.2" "mpfr") > (symlink "mpc-1.1.0" "mpc") > #t))))) > scheme@(guix-user)> > --8<---------------cut here---------------end--------------->8--- >=20 > And here is what Guix says about the configure options for %gcc- > static, > when cross-compiled for powerpc64le-linux-gnu on an x86_64-linux > system > using commit 662e7e28d576ada91fc9dec7d27c100666114f03, which is the > one > we used to build the powerpc64le-linux bootstrap binaries: >=20 > --8<---------------cut here---------------start------------->8--- > scheme@(guix-user)> package->bag > $1 =3D #bag (package #:optional system target #:key > graft?)> > scheme@(guix-user)> ,pp (bag-arguments (package->bag (@@ (gnu > packages make-bootstrap) %gcc-static) "x86_64-linux" "powerpc64le- > linux-gnu")) > $2 =3D (#:system > "x86_64-linux" > #:target > "powerpc64le-linux-gnu" > #:modules > ((srfi srfi-1) > (srfi srfi-26) > (ice-9 regex) > (guix build gnu-build-system) > (guix build utils) > (guix build gremlin) > (guix elf)) > #:out-of-source? > #t > #:configure-flags > (append > (list "--disable-bootstrap" > "--with-stage1-ldflags=3D-static" > "--enable-languages=3Dc,c++" > "--disable-lto" > "--disable-shared" > "--disable-plugin" > "--disable-libmudflap" > "--disable-libatomic" > "--disable-libsanitizer" > "--disable-libitm" > "--disable-libgomp" > "--disable-libcilkrts" > "--disable-libvtv" > "--disable-libssp" > "--disable-libquadmath") > (remove > (cut string-match > "--(.*plugin|enable-languages)" > <>) > `("--enable-plugin" > "--enable-languages=3Dc,c++" > "--disable-multilib" > "--with-system-zlib" > "--disable-libstdcxx-pch" > "--with-local-prefix=3D/no-gcc-local-prefix" > ,(string-append > "--with-gxx-include-dir=3D" > (assoc-ref %outputs "out") > "/include/c++") > ,(let ((libc (assoc-ref %build-inputs "libc"))) > (if libc > (string-append > "--with-native-system-header-dir=3D" > libc > "/include") > "--without-headers")) > "CC_FOR_TARGET=3Dpowerpc64le-linux-gnu-gcc" > "CXX_FOR_TARGET=3Dpowerpc64le-linux-gnu-g++" > "LD_FOR_TARGET=3Dpowerpc64le-linux-gnu-ld" > "AR_FOR_TARGET=3Dpowerpc64le-linux-gnu-ar" > "NM_FOR_TARGET=3Dpowerpc64le-linux-gnu-nm" > "OBJDUMP_FOR_TARGET=3Dpowerpc64le-linux-gnu-objdump" > "RANLIB_FOR_TARGET=3Dpowerpc64le-linux-gnu-ranlib" > "STRIP_FOR_TARGET=3Dpowerpc64le-linux-gnu-strip"))) > #:make-flags > '("CFLAGS=3D-g0 -O2") > #:tests? > #f > #:phases > (modify-phases > (modify-phases > %standard-phases > (add-before > 'configure > 'pre-configure > (lambda* (#:key inputs outputs #:allow-other-keys) > (let ((libdir > (string-append > (or (assoc-ref outputs "lib") > (assoc-ref outputs "out")) > "/" > "powerpc64le-linux-gnu")) > (libc (assoc-ref inputs "libc"))) > (when libc > (for-each > (lambda (x) > (substitute* > (find-files > "gcc/config" > "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") > (("(#define > (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" > _ > line) > line))) > '(1 2 3)) > (substitute* > (find-files > "gcc/config" > "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") > (("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ > \t]*).*$" > _ > gnu-user > suffix) > (format > #f > "#define ~a_DYNAMIC_LINKER~a \"~a\"~%" > gnu-user > suffix > (string-append libc "/lib/ld64.so.2")))) > (substitute* > (find-files "gcc/config" "^gnu-user.*\\.h$") > (("#define GNU_USER_TARGET_LIB_SPEC (.*)$" > _ > suffix) > (format > #f > "#define GNU_USER_TARGET_LIB_SPEC \"-L~a/lib > %{!static:-rpath=3D~a/lib %{!static-libgcc:-rpath=3D~a/lib -lgcc_s}} \" > ~a" > libc > libc > libdir > suffix)) > (("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" > line) > (format > #f > "#define STANDARD_STARTFILE_PREFIX_1 > \"~a/lib\"\n#define STANDARD_STARTFILE_PREFIX_2 \"\"\n~a" > libc > line))) > (substitute* > "gcc/config/rs6000/sysv4.h" > (("#define LIB_LINUX_SPEC (.*)$" _ suffix) > (format > #f > "#define LIB_LINUX_SPEC \"-L~a/lib %{!static:- > rpath=3D~a/lib %{!static-libgcc:-rpath=3D~a/lib -lgcc_s}} \" ~a" > libc > libc > libdir > suffix)) > (("#define\tSTARTFILE_LINUX_SPEC.*$" line) > (format > #f > "#define STANDARD_STARTFILE_PREFIX_1 > \"~a/lib\"\n#define STANDARD_STARTFILE_PREFIX_2 \"\"\n~a" > libc > line)))) > (substitute* > "fixincludes/fixincl.x" > (("static char const sed_cmd_z\\[\\] =3D.*;") > "static char const sed_cmd_z[] =3D \"sed\";")) > (when (file-exists? "gcc/config/aarch64") > (substitute* > "gcc/config/aarch64/t-aarch64-linux" > (("lib64") "lib"))) > (when (file-exists? "libbacktrace") > (substitute* > "libbacktrace/configure" > (("WARN_FLAGS=3D(.*)-Werror" _ flags) > (string-append "WARN_FLAGS=3D" flags))) > (when (file-exists? "libsanitizer/libbacktrace") > (substitute* > "libsanitizer/libbacktrace/Makefile.in" > (("-Werror") "")))) > (substitute* > "libstdc++-v3/src/Makefile.in" > (("^OPT_LDFLAGS =3D ") > "OPT_LDFLAGS =3D -Wl,-rpath=3D$(libdir) ")) > (substitute* > "libstdc++-v3/python/Makefile.in" > (("pythondir =3D .*$") > (string-append > "pythondir =3D " > libdir > "/share" > "/gcc-$(gcc_version)/python\n"))) > (substitute* > "gcc/config.in" > (("PREFIX_INCLUDE_DIR") > "PREFIX_INCLUDE_DIR_isnt_necessary_here")) > #t))) > (add-after > 'configure > 'post-configure > (lambda _ > (substitute* > "Makefile" > (("^TOPLEVEL_CONFIGURE_ARGUMENTS=3D(.*)$" _ rest) > "TOPLEVEL_CONFIGURE_ARGUMENTS=3D\n")) > #t))) > (add-after > 'pre-configure > 'remove-lgcc_s > (lambda _ > (substitute* > (cons "gcc/config/rs6000/sysv4.h" > (find-files "gcc/config" "^gnu-user.*\\.h$")) > ((" -lgcc_s}}") "}}")) > #t))) > #:guile > #f) > scheme@(guix-user)> > --8<---------------cut here---------------end--------------->8--- >=20 > As you can see, --with-long-double-128 is missing in all three cases. > And yet, the packages appear to work correctly. I do not know why, > but > I wonder if perhaps we should add --with-long-double-128 for gcc and > gcc-static on powerpc64le-linux. >=20 > A thought occurred to me: can we remove the --with-long-double-128 > from > cross-base.scm and commencement.scm? As an experiment, I have tried > removing it, and I can confirm that we do need it in both places. > Removing it from cross-base.scm breaks the ability to create > cross-compilers for the powerpc64le-linux-gnu target, and removing it > from commencement.scm breaks the ability to build essentially > anything > on powerpc64le-linux. The failure mode in both cases is similar; in > any > case, we do need it in both of those places. >=20 > I just don't understand why we apparently do NOT need this option in > gcc, gcc-final, and %bootstrap-gcc on powerpc64le-linux. Like I > said...maybe it really IS required there, too, but we just haven't > encountered any problems yet... I don't know, and would welcome your > thoughts. >=20 > --=20 > Chris Nice tricks to display package definitions, thanks for sharing ways to do that! I would say we wait for actual problems before trying to fix anything, the switch is only needed for compiling Glibc AIUI. L=C3=A9o --=-Ab7nn8OHRHdRfIV/GcTP Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEFIvLi9gL+xax3g6RRaix6GvNEKYFAmBd8J8ACgkQRaix6GvN EKZu8w//TiON1eTAn9yChBzeQh5Nl0Z24vye/f0w4alxLTMKTno2G1wkvD7MS40W MqNYeUrh50Mwhvrbr+F6wX4iYx6EWoz81mXn895GhI2BEdas2a2Q2ddmrkvlqH+V sUxjVg3c4hzdo8DB+l5AVvxds4ZqrhddNk93Ljj2w5GHDfLVPt3JBOgbuVzYtIFL u49GausiAExkBiY/bYBsaWzNnM/YSXAfBkOsR2QZpFHsn7qdSBzIzTw3qswX5/gN RXSqqZjYc1IP97tYMjO8MiiCLlX5XJJsQDKO4yfCyiiFp9DYjpeBrbmEeOqPTBGj 5FK8scQobvftbf/FJ+dmSyNg8Ir0t+v0nYA2rAY/bfrkXaFG87shwcz7kwcH/hVt EoYhXmqVI33Vfw3drdeP1/5r6EJGbLa92kLSu/wsMe6kUnX164bXmWeNknb1U5Ue /2+9YQqdrPkFLXdgkC69LCVxK3u7WHOqkOCJGV9B0VLU97zS8dM6Y4fI65aY/urm cwD+fEWIOvJcbc8iXB7XGHN496HvUe+tdfQhjCJkHanfNnXFxPH7x4dkWmFAn8xn sCvHc+4T/ZwZ3sZPn7cAxHVWxU9KmuOnU06v+VZ19g4oXgzDB1zYLgt3VmLYu4KC a2UMAhGFWgg74rY8IBNUeuH3kA4+i9Gn8WHEg0JoOYiQXODf0bU= =hIf8 -----END PGP SIGNATURE----- --=-Ab7nn8OHRHdRfIV/GcTP-- From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 29 13:54:09 2021 Received: (at control) by debbugs.gnu.org; 29 Mar 2021 17:54:09 +0000 Received: from localhost ([127.0.0.1]:49528 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lQw5Y-0005dO-Ur for submit@debbugs.gnu.org; Mon, 29 Mar 2021 13:54:09 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:49613) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lQw5T-0005cm-Us for control@debbugs.gnu.org; Mon, 29 Mar 2021 13:54:07 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 98F895C010A for ; Mon, 29 Mar 2021 13:53:58 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Mon, 29 Mar 2021 13:53:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=carldong.me; h= from:content-type:content-transfer-encoding:mime-version:subject :message-id:date:to; s=fm3; bh=dwyJ+pvU/LZm+K5cZnW/1BkrJ1qQzZcei QFk+Zkg3qI=; b=mvlcZqKm9sATOpyzYHxn2jDPBSPhzeey/bHXBvpNALrISi508 G1Hdm1dgm87ruIJt0I47fFwDFzwcFpc/Mrt8Ez0TleM2+O+hYZefGpqQu7eiF4wl hQH44sKtFK1U7r7EIfy9GL7w7lYYYlDUQFiWS8Hjj/1FawHy5v4W21MvG5dZG4/1 JBeNSRpedUNQIIEzRQ7a05K/DGJJygpr/sVrErrNJ7gcTXEvYxXFNK4d4JOx9Gsl 6ViN1bSp/kc+64c9z3fbFVJ/omYTlyVei4vEWde9d1CMk0CxigY9ZhZ+YruaEM2R N8x9tuTH9GU+o4WHjLqbv7O30InxxsAMMOPpw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=dwyJ+p vU/LZm+K5cZnW/1BkrJ1qQzZceiQFk+Zkg3qI=; b=EIMenmDB87A/2/5n2CegEW /XYBWFqeZDToK0ByTlvYMK7zhNiQV2WJvmnRnsv/sHQ92H7JadbBLlAQvD1eTWz6 iMPxdly3C5pl5aISHFFowFTwXu9mB/nib1flvWx5i/rLupo4v0ECfz8Kn5W6bPdh /nvqZmcqVZvd/T2bzPsEF86buOGdlikQhHsQ8yafZySEk1H7mtHAH15tkI8iYuFd Ysfa1hmlraST067HLk9VE0m3BDeNMF/IXsrPSWWeiWkOeqjIJbqjR0eNSeN7y1Zg EdO/qA2ULAmPbkT2FTmkKySXiDPOlwX5CIINvyZgAUDw9S9gB8p2SSuUECzkQkng == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudehkedguddulecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhephfgtgfgguffkfffvofesthejmh dthhdtvdenucfhrhhomhepvegrrhhlucffohhnghcuoegtohhnthgrtghtsegtrghrlhgu ohhnghdrmhgvqeenucggtffrrghtthgvrhhnpedtvdefleefffeujeeglefhiedtkeeite eftefhffegkeevfeejhfduteehgeevfeenucfkphepleeirddvfeelrddujedrvdegvden ucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegtohhnth grtghtsegtrghrlhguohhnghdrmhgv X-ME-Proxy: Received: from [192.168.0.6] (pool-96-239-17-242.nycmny.fios.verizon.net [96.239.17.242]) by mail.messagingengine.com (Postfix) with ESMTPA id 6FF59240065 for ; Mon, 29 Mar 2021 13:53:58 -0400 (EDT) From: Carl Dong Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.4\)) Subject: Closing 47349 Message-Id: Date: Mon, 29 Mar 2021 13:53:57 -0400 To: control@debbugs.gnu.org X-Mailer: Apple Mail (2.3608.120.23.2.4) X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) close 47349 From unknown Fri Jun 20 18:18:30 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 27 Apr 2021 11:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator