libgfortran: Fix build on non-glibc targets
authorJakub Jelinek <jakub@redhat.com>
Wed, 12 Jan 2022 08:43:18 +0000 (09:43 +0100)
committerJakub Jelinek <jakub@redhat.com>
Wed, 12 Jan 2022 08:43:18 +0000 (09:43 +0100)
When the __GLIBC_PREREQ macro isn't defined, the
  #if ... && defined __GLIBC_PREREQ && __GLIBC_PREREQ (2, 32)
directive has invalid syntax - the __GLIBC_PREREQ in there evaluates
to 0 and is followed by (2, 32).

2022-01-12  Jakub Jelinek  <jakub@redhat.com>

* libgfortran.h (POWER_IEEE128): Use __GLIBC_PREREQ in a separate
#if directive inside of #if ... && defined __GLIBC_PREREQ.

libgfortran/libgfortran.h

index 2aec78f..4329d4c 100644 (file)
@@ -104,9 +104,11 @@ typedef off_t gfc_offset;
 #endif
 
 #if defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ \
-    && defined __GLIBC_PREREQ && __GLIBC_PREREQ (2, 32)
+    && defined __GLIBC_PREREQ
+#if __GLIBC_PREREQ (2, 32)
 #define POWER_IEEE128 1
 #endif
+#endif
 
 /* These functions from <ctype.h> should only be used on values that can be
    represented as unsigned char, otherwise the behavior is undefined.