monotone: fix build for upcoming gcc-14

Without the change build fails as:

    In file included from /<<NIX>>/gcc-14.0.0/include/c++/14.0.0/limits:42,
                     from <stdin>:1:
    /<<NIX>>/gcc-14.0.0/include/c++/14.0.0/x86_64-unknown-linux-gnu/bits/c++config.h:668:2: warning: #warning "__STRICT_ANSI__ seems to have been undefined; this is not supported" [-Wcpp]
      668 | #warning "__STRICT_ANSI__ seems to have been undefined; this is not supported"
          |  ^~~~~~~
    /<<NIX>>/gcc-14.0.0/include/c++/14.0.0/limits:2100:30: error: exponent has no digits
     2100 |         return __extension__ 0x1.0p-16382Q;
          |                              ^~~~~~
    /<<NIX>>/gcc-14.0.0/include/c++/14.0.0/limits:2114:30: error: exponent has no digits
     2114 |         return __extension__ 0x1.ffffffffffffffffffffffffffffp+16383Q;

gcc upstream confirms unsetting __STRICT_ANSI__ is an unsupported
configuration: https://gcc.gnu.org/PR111824
This commit is contained in:
Sergei Trofimovich 2023-10-16 08:14:48 +01:00
parent b78c85fff7
commit b9a38bf4f2
2 changed files with 18 additions and 0 deletions

View File

@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
revert = true;
sha256 = "0fzjdv49dx5lzvqhkvk50lkccagwx8h0bfha4a0k6l4qh36f9j7c";
})
./monotone-1.1-gcc-14.patch
];
postPatch = ''

View File

@ -0,0 +1,17 @@
Unsetting __STRICT_ANSI__ is not a supported configuration for gcc
nowadays. gcc-14 started failing libstdc++ build as it uses gcc
extensions without __STRICT_ANSI__: https://gcc.gnu.org/PR111824
--- a/src/base.hh
+++ b/src/base.hh
@@ -34,11 +34,6 @@
#define WIN32_LEAN_AND_MEAN
#endif
-// Cygwin somehow enables strict ansi, which we don't want.
-#ifdef __STRICT_ANSI__
-#undef __STRICT_ANSI__
-#endif
-
#include <iosfwd>
#include <string> // it would be nice if there were a <stringfwd>