From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id EC8263857838; Mon, 6 Mar 2023 22:42:05 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EC8263857838 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1678142525; bh=7cWRc24S3avauJ4mSTd4YXFIb8bxzXilAJelAc6LR5w=; h=From:To:Subject:Date:In-Reply-To:References:From; b=XmtFH2chP1W8ubrPBCN6oqz3bzPM7e2j5XH51PE7AYwvYxlbGiiymISQwOrP/uF3E d+5E2AiHP+IJh07E6SzMG+3nTIr/qZobtlTgf6xComAnqGUkShYksAsiHUIjHcY+dX wk7PengEdrAqGBfGLnb+waJOcwPcvNzo6kob8eT8= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug bootstrap/107299] [13 regression] ICE in stage 1 after r13-3307-g8efc38347a7444 Date: Mon, 06 Mar 2023 22:42:04 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: bootstrap X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: build, ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: meissner at gcc dot gnu.org X-Bugzilla-Target-Milestone: 13.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D107299 --- Comment #9 from CVS Commits --- The master branch has been updated by Michael Meissner : https://gcc.gnu.org/g:306c7b1ac3e4413288e6930b00a3cab2133c4e57 commit r13-6507-g306c7b1ac3e4413288e6930b00a3cab2133c4e57 Author: Michael Meissner Date: Mon Mar 6 17:38:33 2023 -0500 PR target/107299: Fix build issue when long double is IEEE 128-bit This patch updates the IEEE 128-bit types used in libgcc. At the moment, we cannot build GCC when the target uses IEEE 128-bit lo= ng doubles, such as building the compiler for a native Fedora 36 system. = The build dies when it is trying to build the _mulkc3.c and _divkc3 modules. This patch changes libgcc to use long double for the IEEE 128-bit base = type if long double is IEEE 128-bit, and it uses _Float128 otherwise. The buil= t-in functions are adjusted to be the correct version based on the IEEE 128-= bit base type used. While it is desirable to ultimately have __float128 and _Float128 use t= he same internal type and mode within GCC, at present if you use the option -mabi=3Dieeelongdouble, the __float128 type will use the long double ty= pe and not the _Float128 type. We get an internal compiler error if we combine the signbitf128 built-in with a long double type. I've gone through several iterations of trying to fix this within GCC, = and there are various problems that have come up. I developed this alterna= tive patch that changes libgcc so that it does not tickle the issue. I hope= we can fix the compiler at some point, but right now, this is preventing peopl= e on Fedora 36 systems from building compilers where the default long double= is IEEE 128-bit. 2023-03-06 Michael Meissner libgcc/ PR target/107299 * config/rs6000/_divkc3.c (COPYSIGN): Use the correct built-in based on whether long double is IBM or IEEE. (INFINITY): Likewise. (FABS): Likewise. * config/rs6000/_mulkc3.c (COPYSIGN): Likewise. (INFINITY): Likewise. * config/rs6000/quad-float128.h (TF): Remove definition. (TFtype): Define to be long double or _Float128. (TCtype): Define to be _Complex long double or _Complex _Float1= 28. * libgcc2.h (TFtype): Allow machine config files to override th= is. (TCtype): Likewise. * soft-fp/quad.h (TFtype): Likewise.=