Merge: Fix build of different packages with gcc-15 (#434728)

This commit is contained in:
Maximilian Bosch
2025-09-03 23:56:34 +02:00
committed by GitHub
7 changed files with 58 additions and 4 deletions
+6
View File
@@ -24,6 +24,12 @@ stdenv.mkDerivation rec {
separateDebugInfo = true;
# The code won't compile in c23 mode.
# https://gcc.gnu.org/gcc-15/porting_to.html#c23-fn-decls-without-parameters
configureFlags = [
"CFLAGS=-std=gnu17"
];
preConfigure = lib.optionalString stdenv.hostPlatform.isCygwin ''
sed -i gnu/fpending.h -e 's,include <stdio_ext.h>,,'
'';
+3
View File
@@ -105,6 +105,9 @@ stdenv.mkDerivation (finalAttrs: {
configureFlags = [
"--with-ssl=${openssl.dev}"
"--with-gc=${boehmgc.dev}"
# The code won't compile in c23 mode.
# https://gcc.gnu.org/gcc-15/porting_to.html#c23-fn-decls-without-parameters
"CFLAGS=-std=gnu17"
]
++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
"ac_cv_func_setpgrp_void=${if stdenv.hostPlatform.isBSD then "no" else "yes"}"
+37
View File
@@ -0,0 +1,37 @@
From 08ece7871775c0d7bf4fdff64b961cdc256adf6c Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <slyich@gmail.com>
Date: Fri, 2 Aug 2024 22:12:03 +0100
Subject: [PATCH] include/woff2/output.h: add missing <stdint.h> include
Without the change `woff2` build fails on upcoming `gcc-15` as:
In file included from src/woff2_out.cc:9:
include/woff2/output.h:73:25: error: expected ')' before '*' token
73 | WOFF2MemoryOut(uint8_t* buf, size_t buf_size);
| ~ ^
| )
include/woff2/output.h:79:3: error: 'uint8_t' does not name a type
79 | uint8_t* buf_;
| ^~~~~~~
include/woff2/output.h:16:1: note: 'uint8_t' is defined in header '<cstdint>';
this is probably fixable by adding '#include <cstdint>'
15 | #include <string>
+++ |+#include <cstdint>
16 |
---
include/woff2/output.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/woff2/output.h b/include/woff2/output.h
index dc78ccf..b12d538 100644
--- a/include/woff2/output.h
+++ b/include/woff2/output.h
@@ -9,6 +9,8 @@
#ifndef WOFF2_WOFF2_OUT_H_
#define WOFF2_WOFF2_OUT_H_
+#include <stdint.h>
+
#include <algorithm>
#include <cstring>
#include <memory>
+1 -1
View File
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
];
# Need to explicitly link to brotlicommon
patches = lib.optional static ./brotli-static.patch;
patches = lib.optional static ./brotli-static.patch ++ [ ./gcc15.patch ];
nativeBuildInputs = [
cmake
+7 -2
View File
@@ -53,8 +53,13 @@ stdenv.mkDerivation rec {
# stdenv will take care of overriding bindir, sbindir, etc. such that "out" contains the binaries.
prefix = builtins.placeholder "lib";
env = lib.optionalAttrs stdenv.hostPlatform.isStatic {
NIX_CFLAGS_COMPILE = "-fcommon";
env = {
# The release 1.21.3 is not compatible with c23, which changed the meaning of
#
# void foo();
#
# declaration.
NIX_CFLAGS_COMPILE = "-std=gnu17" + lib.optionalString stdenv.hostPlatform.isStatic " -fcommon";
};
configureFlags = [
@@ -52,7 +52,7 @@ tcl.mkTclDerivation rec {
strictDeps = true;
env = lib.optionalAttrs stdenv.cc.isGNU {
NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types";
NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -std=gnu17";
};
hardeningDisable = [ "format" ];
+3
View File
@@ -64,6 +64,9 @@ stdenv.mkDerivation {
"--sysconfdir=/etc"
"--localstatedir=/var"
(if withNcurses then "--with-curses" else "--without-curses")
# The code won't compile in c23 mode.
# https://gcc.gnu.org/gcc-15/porting_to.html#c23-fn-decls-without-parameters
"CFLAGS=-std=gnu17"
];
enableParallelBuilding = true;