From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 23FC63858C50; Tue, 31 Oct 2023 09:23:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 23FC63858C50 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1698744192; bh=Pkz4SvOKtTa9LZn46xPYRsKhpDGlby9eTNxg1itW7PA=; h=From:To:Subject:Date:In-Reply-To:References:From; b=lxjo5BH9N+fQxbbgYOtWdQShlyCDFhV3I7BfKZpfowCB5Dm0shlP4U4D9FHq1idxu AVqtqE67nJug4TUdnD4KEvZ94dBbdtKPcxHoOgQGjxGQKgtXpWDo4YSFZlFJQoZDlk vHzzzB+qD8sSAy0sGiNQ/H3UIFLo0dovXNelCfFc= From: "tschwinge at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug modula2/111956] Many powerpc platforms do _not_ have support for IEEE754 long double Date: Tue, 31 Oct 2023 09:23:10 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: modula2 X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: build X-Bugzilla-Severity: normal X-Bugzilla-Who: tschwinge at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: gaius at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: keywords cc cf_reconfirmed_on everconfirmed bug_status 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=3D111956 Thomas Schwinge changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |build CC| |egallager at gcc dot gnu.o= rg, | |tschwinge at gcc dot gnu.o= rg Last reconfirmed| |2023-10-31 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #2 from Thomas Schwinge --- While you (Gaius) here report test failure, similar to what Maciej had repo= rted in PR112091 "rs6000: redefinition of 'constexpr long double std::abs(long double)', while building libgm2", I can't even build libgm2 anymore. Similar had reported Eric (CCed here) on GCC IRC, 2023-10-20: ok now this is an error I haven't seen before /home/egallager/gcc/.cfarm135_build.build/powerpc64le-unknown-linux-gnu/lib= stdc++-v3/include/bits/std_abs.h:137:3: error: redefinition of 'constexpr long double std::abs(long double)' seen on cfarm135 I think I remember something about __float128 being weir= d on certain powerpc systems? Is there a configure flag that affects it? I'll open a bug about it... although actually wait... I'm not quite sure the compone= nt, though... it's an error from a libstdc++ header, but it shows up while buil= ding KeyBoardLEDs.lo for libm2cor in libgm2, but only for a specific target... For example, I've got on powerpc64le-unknown-linux-gnu on indeed old Ubuntu 14.04 "trusty": +#define M2C_LONGREAL_FLOAT128 1 +#define M2C_LONGREAL_PPC64LE 1 ..., and this fails to build as follows: libtool: compile: [...]/build-gcc/./gcc/xg++ -B[...]/build-gcc/./gcc/ -nostdinc++ -nostdinc++ -I[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/powerp= c64le-unknown-linux-gnu -I[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include -I[...]/source-gcc/libstdc++-v3/libsupc++ -I[...]/source-gcc/libstdc++-v3/include/backward -I[...]/source-gcc/libstdc++-v3/testsuite/util -L[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/src -L[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/src/.libs -L[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs -B/powerpc64le-unknown-linux-gnu/bin/ -B/powerpc64le-unknown-linux-gnu/lib/ -isystem /powerpc64le-unknown-linux-gnu/include -isystem /powerpc64le-unknown-linux-gnu/sys-include -c -I[...]/source-gcc/libgm2/libm2cor -g -O2 -D_GNU_SOURCE -g -O2 -I. -I.. -I[...]/source-gcc/gcc/m2/gm2-libs -I[...]/source-gcc/gcc/m2/gm2-libs-iso -DBUILD_GM2_LIBS -I[...]/source-gcc/libgm2/libm2cor/../ -I[...]/source-gcc/libgm2/libm2cor/../libm2iso -mabi=3Dieeelongdouble [...]/source-gcc/libgm2/libm2cor/KeyBoardLEDs.cc -fPIC -DPIC -o .libs/KeyBoardLEDs.o cc1plus: warning: Using IEEE extended precision =E2=80=98long double=E2= =80=99 [-Wpsabi] In file included from [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/cstdlib:= 81, from [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/stdlib.h= :36, from [...]/source-gcc/libgm2/libm2cor/KeyBoardLEDs.cc:= 43: =20=20=20 [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/std= _abs.h:137:3: error: redefinition of =E2=80=98constexpr long double std::abs(long double)= =E2=80=99 137 | abs(__float128 __x) | ^~~ =20=20=20 [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/std= _abs.h:79:3: note: =E2=80=98constexpr long double std::abs(long double)=E2=80=99 previou= sly defined here 79 | abs(long double __x) | ^~~ make[5]: *** [KeyBoardLEDs.lo] Error 1 [...] libtool: compile: [...]/build-gcc/./gcc/xg++ -B[...]/build-gcc/./gcc/ -nostdinc++ -nostdinc++ -I[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/powerp= c64le-unknown-linux-gnu -I[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include -I[...]/source-gcc/libstdc++-v3/libsupc++ -I[...]/source-gcc/libstdc++-v3/include/backward -I[...]/source-gcc/libstdc++-v3/testsuite/util -L[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/src -L[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/src/.libs -L[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs -B/powerpc64le-unknown-linux-gnu/bin/ -B/powerpc64le-unknown-linux-gnu/lib/ -isystem /powerpc64le-unknown-linux-gnu/include -isystem /powerpc64le-unknown-linux-gnu/sys-include -c -I[...]/source-gcc/libgm2/libm2pim -g -O2 -D_GNU_SOURCE -g -O2 -I. -I.. -I[...]/source-gcc/gcc/m2/gm2-libs -I[...]/source-gcc/gcc/m2/gm2-libs-iso -DBUILD_GM2_LIBS -I[...]/source-gcc/libgm2/libm2pim/../ -I[...]/source-gcc/libgm2/libm2pim/../libm2iso -mabi=3Dieeelongdouble [...]/source-gcc/libgm2/libm2pim/wrapc.cc -fPIC -DPIC -o .libs/wrapc.o cc1plus: warning: Using IEEE extended precision =E2=80=98long double=E2= =80=99 [-Wpsabi] In file included from [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/cmath:49, from [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/math.h:3= 6, from [...]/source-gcc/libgm2/libm2pim/wrapc.cc:35: =20=20=20 [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/std= _abs.h:137:3: error: redefinition of =E2=80=98constexpr long double std::abs(long double)= =E2=80=99 137 | abs(__float128 __x) | ^~~ =20=20=20 [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/std= _abs.h:79:3: note: =E2=80=98constexpr long double std::abs(long double)=E2=80=99 previou= sly defined here 79 | abs(long double __x) | ^~~ In file included from [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/stl= _pair.h:60, from [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/stl= _algobase.h:64, from [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/spe= cfun.h:43, from [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/cmath:36= 99: =20=20=20 [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/type_tra= its:514:12: error: redefinition of =E2=80=98struct std::__is_floating_point_helper=E2=80=99 514 | struct __is_floating_point_helper<__float128> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ =20=20=20 [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/type_tra= its:479:12: note: previous definition of =E2=80=98struct std::__is_floating_point_helpe= r=E2=80=99 479 | struct __is_floating_point_helper | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ =20=20=20 [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/stl= _algobase.h:1060:3: error: redefinition of =E2=80=98constexpr long long int std::__size_to_inte= ger(long double)=E2=80=99 1060 | __size_to_integer(__float128 __n) { return (long long)__n; } | ^~~~~~~~~~~~~~~~~ =20=20=20 [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/stl= _algobase.h:1057:3: note: =E2=80=98constexpr long long int std::__size_to_integer(long double)= =E2=80=99 previously defined here 1057 | __size_to_integer(long double __n) { return (long long)__n; } | ^~~~~~~~~~~~~~~~~ In file included from [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/spe= cfun.h:44: =20=20=20 [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/limits:2= 089:12: error: redefinition of =E2=80=98struct std::numeric_limits=E2= =80=99 2089 | struct numeric_limits<__float128> | ^~~~~~~~~~~~~~~~~~~~~~~~~~ =20=20=20 [...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/limits:1= 820:12: note: previous definition of =E2=80=98struct std::numeric_limits=E2=80=99 1820 | struct numeric_limits | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ make[5]: *** [wrapc.lo] Error 1 If I to revert commit r14-4149-g81d5ca0b9b8431f1bd7a5ec8a2c94f04bb0cf032 "PR 108143/modula2 LONGREAL and powerpc64le-linux" (..., which by now means resolving conflicts due to subsequent changes), then I get clean build and = test results.=