From patchwork Fri Feb 3 05:43:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Meissner X-Patchwork-Id: 55454 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 04DB0385828E for ; Fri, 3 Feb 2023 05:44:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 04DB0385828E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1675403054; bh=Sxxjsg3CLPRJsTMlW2Yofn59AUrTZbGxr9QAdr6VymI=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=aUojjAp1AJQbZ5qIGkACpYAORLYiiY+6k5ZrV4vsGahVMY0VXiWQpfG+tNe0qaxKK p2TPBtHZUhLcED1ktMM+MC0TN8+pml3ZuTjQx0HqdGCQ7YOecP3rdeodp/zxDIUaI/ 34M4gFitEBwBxtCwLECYkdW+2dhCSpY+5R/dIbDA= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id CD2633858C5E for ; Fri, 3 Feb 2023 05:43:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CD2633858C5E Received: from pps.filterd (m0098420.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3135Dh4H018028; Fri, 3 Feb 2023 05:43:45 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0b-001b2d01.pphosted.com (PPS) with ESMTPS id 3nguxcrh48-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 03 Feb 2023 05:43:45 +0000 Received: from m0098420.ppops.net (m0098420.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 3135h8bS031158; Fri, 3 Feb 2023 05:43:44 GMT Received: from ppma03wdc.us.ibm.com (ba.79.3fa9.ip4.static.sl-reverse.com [169.63.121.186]) by mx0b-001b2d01.pphosted.com (PPS) with ESMTPS id 3nguxcrh42-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 03 Feb 2023 05:43:44 +0000 Received: from pps.filterd (ppma03wdc.us.ibm.com [127.0.0.1]) by ppma03wdc.us.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 3132ND75008305; Fri, 3 Feb 2023 05:43:44 GMT Received: from smtprelay02.wdc07v.mail.ibm.com ([9.208.129.120]) by ppma03wdc.us.ibm.com (PPS) with ESMTPS id 3ncvtf7753-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 03 Feb 2023 05:43:43 +0000 Received: from smtpav06.dal12v.mail.ibm.com (smtpav06.dal12v.mail.ibm.com [10.241.53.105]) by smtprelay02.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 3135hgAx62194000 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 3 Feb 2023 05:43:42 GMT Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 24C815805E; Fri, 3 Feb 2023 05:43:42 +0000 (GMT) Received: from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 96A6D58043; Fri, 3 Feb 2023 05:43:41 +0000 (GMT) Received: from toto.the-meissners.org (unknown [9.65.233.34]) by smtpav06.dal12v.mail.ibm.com (Postfix) with ESMTPS; Fri, 3 Feb 2023 05:43:41 +0000 (GMT) Date: Fri, 3 Feb 2023 00:43:40 -0500 To: gcc-patches@gcc.gnu.org, Michael Meissner , Segher Boessenkool , "Kewen.Lin" , David Edelsohn , Peter Bergner , Will Schmidt Subject: [PATCH 0/2] Repost of patches for solving the build on Fedora 36 problem Message-ID: Mail-Followup-To: Michael Meissner , gcc-patches@gcc.gnu.org, Segher Boessenkool , "Kewen.Lin" , David Edelsohn , Peter Bergner , Will Schmidt MIME-Version: 1.0 Content-Disposition: inline X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: BGmZGGh8lAf7FVvzHPQaEg89O3Ew_rEt X-Proofpoint-GUID: tpKWXuTz5WwMqaEG3OAOFbfQbQw7K0nK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-03_02,2023-02-02_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=807 mlxscore=0 lowpriorityscore=0 impostorscore=0 clxscore=1015 bulkscore=0 spamscore=0 phishscore=0 adultscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302030050 X-Spam-Status: No, score=-3.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, KAM_MANYTO, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Michael Meissner via Gcc-patches From: Michael Meissner Reply-To: Michael Meissner Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" I'm reposting these two patches that allow GCC to build on Fedora 36 just to be clear which patches I'm talking about. The issue is that if GCC is configured with long double using the IEEE 128-bit representation, it currently cannot build _mulkc3 and _divkc3 in libgcc. Note, these patches do not solve the underlying problem of mixing _Float128 and long double types and using built-in functions (i.e. calling a _Float128 built-in function with long double arguments when long double is IEEE 128-bit, or vice versa calling a long double built-in function with _Float128 arguments). But they do allow the compiler to build. Note, it is the morning of February 3rd, and I will be off on vacation from February 7th through February 14th. The first patch changes libgcc so that it uses either _Float128 or long double as the base IEEE 128-bit type, depending on whether long double uses the IBM double-double representation, or the IEEE 128-bit representation. And for the complex type it uses _Complex _Float128 or _Complex long double. The _mulkc3 and _divkc3 functions are adjusted to use the f128 built-in functions or the long double built-in functions, based on the long double type. The second patch improves how the compiler generates the call to _mulkc3 and _divkc3. I've discovered as I have tried to fix underlying problem with the IEEE 128-bit floating point types, it breaks the calls for IEEE 128-bit complex multiply and divide. This patch uses a cleaner approach to generate these calls, and it will work with the current setup, and with the various fixes that I've attempted to do to fix the underlying problem.