public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "tschwinge at gcc dot gnu.org" <gcc-bugzilla@gcc.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	[thread overview]
Message-ID: <bug-111956-4-bkapACjXCE@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-111956-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111956

Thomas Schwinge <tschwinge at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |build
                 CC|                            |egallager at gcc dot gnu.org,
                   |                            |tschwinge at gcc dot gnu.org
   Last reconfirmed|                            |2023-10-31
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW

--- Comment #2 from Thomas Schwinge <tschwinge at gcc dot gnu.org> ---
While you (Gaius) here report test failure, similar to what Maciej had reported
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:

    <ericgallager> ok now this is an error I haven't seen before
    <ericgallager>
/home/egallager/gcc/.cfarm135_build.build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/std_abs.h:137:3:
error: redefinition of 'constexpr long double std::abs(long double)'
    <ericgallager> seen on cfarm135
    <ericgallager> I think I remember something about __float128 being weird on
certain powerpc systems? Is there a configure flag that affects it?
    <ericgallager> I'll open a bug about it...
    <ericgallager> although actually wait... I'm not quite sure the component,
though... it's an error from a libstdc++ header, but it shows up while building
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/powerpc64le-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=ieeelongdouble
[...]/source-gcc/libgm2/libm2cor/KeyBoardLEDs.cc  -fPIC -DPIC -o
.libs/KeyBoardLEDs.o
    cc1plus: warning: Using IEEE extended precision ‘long double’ [-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:
   
[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/std_abs.h:137:3:
error: redefinition of ‘constexpr long double std::abs(long double)’
      137 |   abs(__float128 __x)
          |   ^~~
   
[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/std_abs.h:79:3:
note: ‘constexpr long double std::abs(long double)’ previously 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/powerpc64le-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=ieeelongdouble
[...]/source-gcc/libgm2/libm2pim/wrapc.cc  -fPIC -DPIC -o .libs/wrapc.o
    cc1plus: warning: Using IEEE extended precision ‘long double’ [-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:36,
                     from [...]/source-gcc/libgm2/libm2pim/wrapc.cc:35:
   
[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/std_abs.h:137:3:
error: redefinition of ‘constexpr long double std::abs(long double)’
      137 |   abs(__float128 __x)
          |   ^~~
   
[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/std_abs.h:79:3:
note: ‘constexpr long double std::abs(long double)’ previously 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/specfun.h:43,
                     from
[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/cmath:3699:
   
[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/type_traits:514:12:
error: redefinition of ‘struct std::__is_floating_point_helper<long double>’
      514 |     struct __is_floating_point_helper<__float128>
          |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   
[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/type_traits:479:12:
note: previous definition of ‘struct std::__is_floating_point_helper<long
double>’
      479 |     struct __is_floating_point_helper<long double>
          |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   
[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/stl_algobase.h:1060:3:
error: redefinition of ‘constexpr long long int std::__size_to_integer(long
double)’
     1060 |   __size_to_integer(__float128 __n) { return (long long)__n; }
          |   ^~~~~~~~~~~~~~~~~
   
[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/stl_algobase.h:1057:3:
note: ‘constexpr long long int std::__size_to_integer(long double)’ 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/specfun.h:44:
   
[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/limits:2089:12:
error: redefinition of ‘struct std::numeric_limits<long double>’
     2089 |     struct numeric_limits<__float128>
          |            ^~~~~~~~~~~~~~~~~~~~~~~~~~
   
[...]/build-gcc/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/limits:1820:12:
note: previous definition of ‘struct std::numeric_limits<long double>’
     1820 |     struct numeric_limits<long double>
          |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
    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.

  parent reply	other threads:[~2023-10-31  9:23 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-24 15:47 [Bug modula2/111956] New: " gaius at gcc dot gnu.org
2023-10-25 23:33 ` [Bug modula2/111956] " pinskia at gcc dot gnu.org
2023-10-31  9:23 ` tschwinge at gcc dot gnu.org [this message]
2023-11-01 13:52 ` egallager at gcc dot gnu.org
2023-11-04 19:11 ` gaius at gcc dot gnu.org
2023-11-04 20:24 ` macro at orcam dot me.uk
2023-11-07 14:12 ` gaius at gcc dot gnu.org
2023-11-07 14:15 ` gaius at gcc dot gnu.org
2023-11-07 14:18 ` gaius at gcc dot gnu.org
2023-11-09  2:29 ` macro at orcam dot me.uk
2023-11-09  7:27 ` tschwinge at gcc dot gnu.org
2023-11-09 10:27 ` tkoenig at gcc dot gnu.org
2023-11-14 16:38 ` gaius at gcc dot gnu.org
2024-01-15  7:36 ` [Bug modula2/111956] [14 Regression] " rguenth at gcc dot gnu.org
2024-01-16  1:05 ` gaius at gcc dot gnu.org
2024-01-16  7:40 ` rguenth at gcc dot gnu.org
2024-01-16 10:22 ` gaiusmod2 at gmail dot com
2024-01-16 14:09 ` rguenth at gcc dot gnu.org
2024-01-17  1:12 ` gaius at gcc dot gnu.org
2024-01-18  0:25 ` gaius at gcc dot gnu.org
2024-01-18  0:29 ` gaius at gcc dot gnu.org
2024-01-18 13:07 ` cvs-commit at gcc dot gnu.org
2024-01-18 16:42 ` gaius at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-111956-4-bkapACjXCE@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).