Compare commits

...

17 Commits

Author SHA1 Message Date
whispers
a06d109d48 glog: disable optimization-dependent stacktrace test
This test fails under GCC 16. It appears to be because it makes
assumptions that certain compiler optimizations do not occur. It clearly
is compiler-specific and tries to work around specific compiler
optimizations upstream. In particular, an analysis of the test
53d58e4531/src/stacktrace_unittest.cc (L218)
shows that it would be very plausible/correct for GCC to place labels
such that the `INIT_ADDRESS_RANGE` macro has `start` and `end` labels
that have the same address. While the functions are labeled NOINLINE,
interprocedural analysis could *plausibly* produce this result. While
we are not completely certain that this is the case, it seems likely
that this is not a genuine issue and just a questionable test.
2026-07-24 12:59:10 -04:00
whispers
c465430f82 assimp: never treat warnings as fatal
assimp sometimes has warnings that are triggered by new compiler or
library versions. since assimp builds with -Werror by default, this
requires workaround in Nixpkgs until they cut a release. this is the
case with unused variable warnings in GCC 16. instead of dealing with
this, we simply disable -Werror via the cmake flag it offers to do so.
2026-07-24 12:59:10 -04:00
whispers
1e10b67e35 protobufc: unpin standard version to fix build with gcc 16
protobufc pins a specific version of the C++ standard and does so using
an ancient vendored macro from the autoconf archive. this causes a
failure to build on gcc 16, as it defaults to C++20 and protobufc uses
C++17. this particularly causes problems with abseil, which has headers
which depend on the C++ standard to compile. accordingly, to avoid
having to manually specify and update a version each time the default
standard version updates, we unpin it completely and allow the compiler
to choose what it uses by default.

alternatively, we could override the abseil that ends up in protobufc
by way of protobuf_33 to use the C++17 standard instead. this would
work, but this seems more fragile and subject to compiler version churn.
it is also our understanding that mixing and matching versions of
standards in dependents can be messy, and using the default seems the
least likely to cause problems.
2026-07-24 10:52:32 -04:00
whispers
6aa36277ff webrtc-audio-processing: explicitly specify C++17 for abseil-cpp
abseil exposes different interfaces depending on what is available in
`std` in a given C++ standard. gcc 16 defaults to C++20, thus causing
the default abseil-cpp to expose a different interface than the one
webrtc-audio-processing (built with C++17) expects. this leads to a
great deal of "error: 'partial_ordering' has not been declared in 'std'"
and similar originating from abseil's types/compare.h. thus, we
explicitly override abseil to specify the desired C++ standard.
2026-07-24 10:52:28 -04:00
whispers
d457a15860 grub2_efi: apply patch for gcc 16
gcc 16 gains stricter analysis of whether attributes are ignored,
leading to build failures when built with -Werror. we could silence the
error, but this was fixed in a trivial commit upstream that is obviously
correct, so we pull it in:
https://cgit.git.savannah.gnu.org/cgit/grub.git/commit/?id=9922ed133c2c754ec9f37198da2b3e3e8a4fd5ff
2026-07-24 10:52:15 -04:00
whispers
75c304b0e0 toml11: make maybe-uninitialized non-fatal for gcc 16
GCC 16 flags various calls here as if they're uninitialized, but they
appear (to me as a non-C++ expert) to be false positives. Accordingly,
we make those non-fatal. This fixes the build on GCC 16.
2026-07-24 10:52:05 -04:00
whispers
2012d325a3 onetbb: never treat warnings as fatal
onetbb often triggers compiler warnings upstream, and works around them
in an ad-hoc, per version manner:
88482f5f1a
bdbec20606
we encountered this failing while preparing for a gcc 16 upgrade in
Nixpkgs, and the same issue came up for gcc 15 and similar (#446139). it
is likely to come up again, as -Werror is extremely susceptible to
compiler and library changes (though onetbb admittedly has few
dependencies). additionally, while it may be useful for upstream onetbb,
it seems to provide little value to us downstream; we just end up
working around it. thus, we never treat warnings as errors by disabling
upstream's cmake flag for this purpose.
2026-07-24 10:52:00 -04:00
whispers
1dd0a5d9e5 libfaketime: add patch for gcc 16
gcc 16's unused variable analysis is more advanced than previous
versions, and detects that some variables used in tests are unused.
upstream patched this away, so we fetch their patch. alternatively, we
could pass `-Wno-error=unused-but-set-variable` if that is preferred.
2026-07-24 10:51:38 -04:00
whispers
fb7e01a3b6 sbsigntool: make unused-but-set-variable non-fatal for gcc 16
since sbsigntool builds with -Werror by default, and gcc 16's unused
variable analysis is better than previous versions, this causes a build
failure.
2026-07-24 10:50:54 -04:00
whispers
80c9a1708e libsystemtap: 5.3 -> 5.5
Log: https://sourceware.org/git/?p=systemtap.git;a=shortlog;h=refs/tags/release-5.5
2026-07-24 10:48:57 -04:00
whispers
b57ec0fcb2 systemtap-unwrapped: 5.4 -> 5.5
Log: https://sourceware.org/git/?p=systemtap.git;a=shortlog;h=refs/tags/release-5.5
2026-07-24 10:48:57 -04:00
whispers
f7b16131d9 usrsctp: make unused-but-set-variable non-fatal for gcc 16
since usrsctp builds with -Werror by default, and gcc 16's unused
variable analysis is better than previous versions, this causes a build
failure. a fix for this particular variable has been submitted upstream,
but this is sufficient in the interim.
2026-07-24 13:31:31 +02:00
whispers
6c37551652 jemalloc: add patch to fix build under gcc 16
jemalloc used the nonstandard `std::__throw_bad_alloc`, which is no
longer visible in GCC 16. this upstream patch makes it conditional on
exceptions and defers to either `throw std::bad_alloc()` or
`std::terminate` as appropriate, and fixes the build.
2026-07-24 13:31:18 +02:00
whispers
aab37bd258 sourceHighlight: patch to fix build with gcc 16
The `ranges` name in the test here conflicts with the
`namespace std::ranges { }` from GCC 16, causing this test to fail to
build with "error: reference to 'ranges' is ambiguous". To avoid this,
we simply rename the variable.
2026-07-24 13:31:06 +02:00
whispers
017fed1d63 gcc: 15 -> 16
changes: https://gcc.gnu.org/gcc-16/changes.html
porting guide: https://gcc.gnu.org/gcc-16/porting_to.html
2026-07-24 13:23:18 +02:00
whispers
f46e80f6c5 minimal-bootstrap.gcc-glibc: 15.3.0 -> 16.1.0
https://gcc.gnu.org/gcc-16/changes.html
2026-07-24 13:23:18 +02:00
whispers
8c8bcc8565 minimal-bootstrap.gcc-latest: 15.3.0 -> 16.1.0
https://gcc.gnu.org/gcc-16/changes.html
2026-07-24 13:23:14 +02:00
20 changed files with 158 additions and 139 deletions

View File

@@ -16,6 +16,8 @@
+nixpkgs.url = "https://channels.nixos.org/nixos-26.05/nixexprs.tar.zst";
```
- GCC has been updated from GCC 15 to GCC 16. This introduces some backwards-incompatible changes. Refer to the [upstream porting guide](https://gcc.gnu.org/gcc-16/porting_to.html) for details.
## Backward Incompatibilities {#sec-nixpkgs-release-26.11-incompatibilities}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->

View File

@@ -42,6 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [
(lib.cmakeBool "ASSIMP_BUILD_ASSIMP_TOOLS" true)
(lib.cmakeBool "ASSIMP_BUILD_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeBool "ASSIMP_WARNINGS_AS_ERRORS" false)
];
# Some matrix tests fail on non-86_64-linux:

View File

@@ -71,18 +71,22 @@ stdenv.mkDerivation (finalAttrs: {
checkPhase =
let
excludedTests =
lib.optionals stdenv.hostPlatform.isDarwin [
"mock-log"
]
++ [
"logging" # works around segfaults for now
]
++ lib.optionals (stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isBigEndian) [
# CHECK_STREQ failed: symbol == "non_inline_func" ((/build/source/build/symbolize_unittest+0x1000b840) vs. non_inline_func)
# TestWithPCInsideNonInlineFunction doesn't use TEST(), so can't exclude via GTEST_FILTER
"symbolize"
];
excludedTests = [
"logging" # works around segfaults for now
]
++ lib.optionals stdenv.hostPlatform.isGnu [
# Test appears to make strong assumptions about compiler optimizations
# that appear to be broken under GCC 16.
"stacktrace"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
"mock-log"
]
++ lib.optionals (stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isBigEndian) [
# CHECK_STREQ failed: symbol == "non_inline_func" ((/build/source/build/symbolize_unittest+0x1000b840) vs. non_inline_func)
# TestWithPCInsideNonInlineFunction doesn't use TEST(), so can't exclude via GTEST_FILTER
"symbolize"
];
excludedTestsRegex = lib.optionalString (
excludedTests != [ ]
) "(${lib.concatStringsSep "|" excludedTests})";

View File

@@ -583,6 +583,13 @@ stdenv.mkDerivation rec {
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=ac1512b872af8567b408518a7efa01607a0219ae";
hash = "sha256-deyp6Yatlgv86bYMt7WcWhKg8J6StDPUEy4UPHqJYIc=";
})
# Required to build grub2_efi with GCC 16, or fails with "error: 'regparm'
# attribute ignored [-Werror=attributes]"
(fetchpatch {
name = "gcc16_make_regparm_attribute_more_conditional.patch";
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=9922ed133c2c754ec9f37198da2b3e3e8a4fd5ff";
hash = "sha256-V2vffDxL/qQ14YN5scc3CFPBFBWvkh57dc5/hWd/6F4=";
})
];
postPatch =

View File

@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
autoreconfHook,
# By default, jemalloc puts a je_ prefix onto all its symbols on OSX, which
# then stops downstream builds (mariadb in particular) from detecting it. This
@@ -59,6 +60,16 @@ stdenv.mkDerivation (finalAttrs: {
# A (longer) patch addressing the failure posted upstream at:
# https://github.com/jemalloc/jemalloc/pull/2954
./skip-extent-test-with-prof-active.patch
# the nonstandard `std::__throw_bad_alloc` is no longer exposed in gcc 16.
# this makes it conditional on exceptions and defers to either
# `throw std::bad_alloc()` or `std::terminate` as appropriate.
# https://github.com/jemalloc/jemalloc/pull/2900
(fetchpatch {
name = "jemalloc-dont-use-nonstandard-throw-bad-alloc.patch";
url = "https://github.com/jemalloc/jemalloc/commit/1a15fe33a48c52bfe26ea83e49f0d317a47da3ea.patch";
hash = "sha256-pL9fo8UMSbFlHCo3LFFkw0qBsdrVHcEJIkLutZYa2Yg=";
})
];
nativeBuildInputs = [

View File

@@ -34,6 +34,15 @@ stdenv.mkDerivation (finalAttrs: {
patches = [
./nix-store-date.patch
# GCC 16's unused variable analysis is more advanced than previous
# versions, and detects that these variables are unused.
# https://github.com/wolfcw/libfaketime/pull/528
(fetchpatch {
name = "libfaketime-silence-unused-variable-warning.patch";
url = "https://github.com/wolfcw/libfaketime/commit/712733e5f01e45372f3160cfdbcfd91520cb093d.patch";
hash = "sha256-Gu13gFhgvkncj8aowAnSRbHbUCctF5sakbX4uRwdy+A=";
})
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
(fetchpatch {

View File

@@ -7,14 +7,14 @@
elfutils,
}:
stdenv.mkDerivation {
stdenv.mkDerivation (finalAttrs: {
pname = "libsystemtap";
version = "5.3";
version = "5.5";
src = fetchgit {
url = "git://sourceware.org/git/systemtap.git";
rev = "release-5.3";
hash = "sha256-W9iJ+hyowqgeq1hGcNQbvPfHpqY0Yt2W/Ng/4p6asxc=";
rev = "release-${finalAttrs.version}";
hash = "sha256-olN98hjIYZmQvI7Fn1v5ZwRl7yaCAPRGr2g33oMq7VQ=";
};
dontBuild = true;
@@ -43,4 +43,4 @@ stdenv.mkDerivation {
badPlatforms = elfutils.meta.badPlatforms or [ ];
maintainers = [ lib.maintainers.workflow ];
};
}
})

View File

@@ -76,6 +76,9 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [
(lib.cmakeBool "TBB_DISABLE_HWLOC_AUTOMATIC_SEARCH" false)
# Treating compiler errors as warnings creates churn each compiler update,
# and provides little utility to us downstream.
(lib.cmakeBool "TBB_STRICT" false)
(lib.cmakeBool "TBB_TEST" finalAttrs.finalPackage.doCheck)
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
@@ -83,10 +86,6 @@ stdenv.mkDerivation (finalAttrs: {
];
env = {
# Fix build with modern gcc
# In member function 'void std::__atomic_base<_IntTp>::store(__int_type, std::memory_order) [with _ITp = bool]',
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-error=stringop-overflow";
# Fix undefined reference errors with version script under LLVM.
NIX_LDFLAGS = lib.optionalString (
stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17"

View File

@@ -36,6 +36,21 @@ stdenv.mkDerivation (finalAttrs: {
zlib
];
# The upstream macro is vendored from a very old autoconf archive:
# https://github.com/protobuf-c/protobuf-c/commit/42612b4ba4b11d48b76e3643fa6d42f617e661b6
# and the build system appears to arbitrarily require C++17 specifically:
# https://github.com/protobuf-c/protobuf-c/blob/4719fdd7760624388c2c5b9d6759eb6a47490626/configure.ac#L72
# However, the default standard version used by GCC continues to increase
# (e.g. C++20 for GCC 16), and so protobuf-c's dependencies do as well. In
# particular, abseil-cpp has headers that protobuf-c includes and are
# sensitive to the standard version. While we could override the standard
# version used by these dependents, it is simpler to drop the requirement and
# allow the compiler default standard to be used.
postPatch = ''
substituteInPlace configure.ac --replace-fail \
"AX_CXX_COMPILE_STDCXX(17, noext, mandatory)" ""
'';
env.PROTOC = lib.getExe buildPackages.protobuf_33;
meta = {

View File

@@ -61,6 +61,10 @@ stdenv.mkDerivation (finalAttrs: {
automake --add-missing -Wno-portability
'';
# GCC 16's unused variable analysis is more advanced, leading to a build
# failure since sbsigntool builds with -Wno-error.
configureFlags = [ "CFLAGS=-Wno-error=unused-but-set-variable" ];
makeFlags = [
"AR=${stdenv.cc.targetPrefix}ar"
];

View File

@@ -0,0 +1,57 @@
diff --git a/lib/tests/test_regexranges_main.cpp b/lib/tests/test_regexranges_main.cpp
index 567d79230c..e28bba47e5 100644
--- a/lib/tests/test_regexranges_main.cpp
+++ b/lib/tests/test_regexranges_main.cpp
@@ -12,26 +12,26 @@
using namespace std;
using namespace srchilite;
-RegexRanges ranges;
+RegexRanges regexRanges;
void check_range_regex(const string &s, bool expectedTrue = true) {
cout << "checking " << s << endl;
if (expectedTrue)
- assertTrue(ranges.addRegexRange(s));
+ assertTrue(regexRanges.addRegexRange(s));
else
- assertFalse(ranges.addRegexRange(s));
+ assertFalse(regexRanges.addRegexRange(s));
}
void check_match(const string &line, const string &expected = "") {
cout << "searching inside " << line;
const boost::regex *matched = 0;
if (expected != "") {
- matched = ranges.matches(line);
+ matched = regexRanges.matches(line);
assertTrue(matched != 0);
assertEquals(expected, matched->str());
cout << " found " << *matched << endl;
} else {
- assertTrue(ranges.matches(line) == 0);
+ assertTrue(regexRanges.matches(line) == 0);
cout << " not found" << endl;
}
}
@@ -39,9 +39,9 @@
void check_in_range(const string &s, bool expectedTrue = true) {
cout << "checking " << s << "... ";
if (expectedTrue) {
- assertTrue(ranges.isInRange(s));
+ assertTrue(regexRanges.isInRange(s));
} else {
- assertFalse(ranges.isInRange(s));
+ assertFalse(regexRanges.isInRange(s));
}
cout << expectedTrue << endl;
}
@@ -57,7 +57,7 @@
check_range_regex("{notclosed");
// reset regular expressions
- ranges.clear();
+ regexRanges.clear();
check_range_regex("/// foo");
check_range_regex("/// bar");

View File

@@ -37,6 +37,11 @@ stdenv.mkDerivation rec {
url = "https://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=ab9fe5cb9b85c5afab94f2a7f4b6d7d473c14ee9";
hash = "sha256-wmSLgLnLuFE+IC6AjxzZp/HEnaOCS1VfY2cac0T7Y+w=";
})
# GCC 16 detects ambiguity in the `ranges` name in a test (conflicts with
# `namespace std::range { }` from GCC), so we rename the variable to
# disambiguate.
./gcc16-disambiguate-regex-ranges-test.patch
]
++ lib.optionals stdenv.cc.isClang [
# Adds compatibility with C++17 by removing the `register` storage class specifier.

View File

@@ -12,21 +12,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "systemtap";
version = "5.4";
version = "5.5";
src = fetchgit {
url = "git://sourceware.org/git/systemtap.git";
rev = "release-${finalAttrs.version}";
hash = "sha256-11ecQFiBaWOZcbS5Qqf/41heiJM1wSttx0eMoVQImZc=";
hash = "sha256-olN98hjIYZmQvI7Fn1v5ZwRl7yaCAPRGr2g33oMq7VQ=";
};
patches = lib.optionals stdenv.hostPlatform.is32bit [
# Fix 32bit build
# https://sourceware.org/git/?p=systemtap.git;a=commit;h=94efb7c4eb02de0e3565cb165b53963602d3dcb6
# does not apply with fetchpatch because of gitweb encoding issues
./systemtap-elaborate-fix-32bit-build.patch
];
nativeBuildInputs = [
pkg-config
cpio

View File

@@ -1,102 +0,0 @@
From 94efb7c4eb02de0e3565cb165b53963602d3dcb6 Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <slyich@gmail.com>
Date: Sun, 30 Nov 2025 20:58:01 +0000
Subject: [PATCH] elaborate.cxx: fix 32-bit build
Without the change the build fails on i686-linux as:
elaborate.cxx:5119:33: error:
format '%ld' expects argument of type 'long int',
but argument 2 has type 'int64_t' {aka 'long long int'} [-Werror=format=]
5119 | session.print_warning (_F("Collapsing unresolved @define to %ld [stapprobes]", value), e->tok);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---
elaborate.cxx | 2 +-
po/cs.po | 2 +-
po/en.po | 2 +-
po/fr.po | 2 +-
po/pl.po | 2 +-
po/systemtap.pot | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/elaborate.cxx b/elaborate.cxx
index 93ecffa1a..3ad3614e7 100644
--- a/elaborate.cxx
+++ b/elaborate.cxx
@@ -5116,7 +5116,7 @@ const_folder::visit_defined_op (defined_op* e)
// Don't be greedy... we'll only collapse one at a time so type
// resolution can have another go at it.
relaxed_p = false;
- session.print_warning (_F("Collapsing unresolved @define to %ld [stapprobes]", value), e->tok);
+ session.print_warning (_F("Collapsing unresolved @define to %lld [stapprobes]", (long long)value), e->tok);
literal_number* n = new literal_number (value);
n->tok = e->tok;
n->visit (this);
diff --git a/po/cs.po b/po/cs.po
index df6412772..92fdef7ad 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -2039,7 +2039,7 @@ msgstr "Zahazuji kontrolu '@defined' bez vedlejších účinků "
#: elaborate.cxx:5119
#, fuzzy, c-format
-msgid "Collapsing unresolved @define to %ld [stapprobes]"
+msgid "Collapsing unresolved @define to %lld [stapprobes]"
msgstr "Zahazuji kontrolu '@defined' bez vedlejších účinků "
#: elaborate.cxx:5127
diff --git a/po/en.po b/po/en.po
index 8847639e8..1db2292bd 100644
--- a/po/en.po
+++ b/po/en.po
@@ -2050,7 +2050,7 @@ msgstr ""
#: elaborate.cxx:5119
#, c-format
-msgid "Collapsing unresolved @define to %ld [stapprobes]"
+msgid "Collapsing unresolved @define to %lld [stapprobes]"
msgstr ""
#: elaborate.cxx:5127
diff --git a/po/fr.po b/po/fr.po
index b8677707b..55e409919 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -2090,7 +2090,7 @@ msgstr ""
#: elaborate.cxx:5119
#, c-format
-msgid "Collapsing unresolved @define to %ld [stapprobes]"
+msgid "Collapsing unresolved @define to %lld [stapprobes]"
msgstr ""
#: elaborate.cxx:5127
diff --git a/po/pl.po b/po/pl.po
index e3b6700ee..0b35880c1 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1977,7 +1977,7 @@ msgstr ""
#: elaborate.cxx:5119
#, c-format
-msgid "Collapsing unresolved @define to %ld [stapprobes]"
+msgid "Collapsing unresolved @define to %lld [stapprobes]"
msgstr ""
#: elaborate.cxx:5127
diff --git a/po/systemtap.pot b/po/systemtap.pot
index 32ddb2290..4ec0d9a8c 100644
--- a/po/systemtap.pot
+++ b/po/systemtap.pot
@@ -1973,7 +1973,7 @@ msgstr ""
#: elaborate.cxx:5119
#, c-format
-msgid "Collapsing unresolved @define to %ld [stapprobes]"
+msgid "Collapsing unresolved @define to %lld [stapprobes]"
msgstr ""
#: elaborate.cxx:5127
--
2.52.0

View File

@@ -37,6 +37,11 @@ stdenv.mkDerivation (finalAttrs: {
cmake
];
cmakeFlags = [
# GCC 16 warns that various uses of `fmt` in value.hpp are used
# uninitialized. This may be a true failure, but it does not seem like a
# major concern, so we silence it for now.
# https://github.com/ToruNiina/toml11/issues/313
(lib.cmakeFeature "CMAKE_CXX_FLAGS" "-Wno-error=maybe-uninitialized")
(lib.cmakeBool "TOML11_BUILD_TOML_TESTS" finalAttrs.finalPackage.doCheck)
];
checkInputs = [

View File

@@ -38,6 +38,11 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ cmake ];
# GCC 16's unused variable analysis is more advanced, leading to a build
# failure since usrsctp builds with -Wno-error.
# https://github.com/sctplab/usrsctp/pull/744
cmakeFlags = [ (lib.cmakeFeature "CMAKE_C_FLAGS" "-Wno-error=unused-but-set-variable") ];
# https://github.com/sctplab/usrsctp/issues/662
postPatch = ''
substituteInPlace usrsctplib/CMakeLists.txt \

View File

@@ -3,7 +3,7 @@
stdenv,
fetchFromGitLab,
fetchpatch,
abseil-cpp,
abseil-cpp_202601,
meson,
ninja,
pkg-config,
@@ -46,7 +46,11 @@ stdenv.mkDerivation (finalAttrs: {
];
propagatedBuildInputs = [
abseil-cpp
# webrtc-audio-processing specifies C++17, so abseil must match. Otherwise,
# abseil exposes a different (incompatible) interface based on the default
# C++ standard of the compiler.
# https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/blob/d0569cfa50c1858ee279d77b3fc8870be6902441/meson.build#L7
(abseil-cpp_202601.override { cxxStandard = "17"; })
];
mesonFlags =

View File

@@ -22,7 +22,7 @@
}:
let
pname = "gcc";
version = "15.3.0";
version = "16.1.0";
linkerName =
{
i686-linux = "ld-linux.so.2";
@@ -32,7 +32,7 @@ let
src = fetchurl {
url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.xz";
hash = "sha256-+lnBvu+JlfJ8TXHB3yJ1hxiTFdPm+v8btDBuYbDFMOs=";
hash = "sha256-UO+02Uwzl6/zsNYaWr10i03THZ0/Kre+BbFx02pRD3k=";
};
gmpVersion = "6.3.0";

View File

@@ -21,11 +21,11 @@
}:
let
pname = "gcc";
version = "15.3.0";
version = "16.1.0";
src = fetchurl {
url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.xz";
hash = "sha256-+lnBvu+JlfJ8TXHB3yJ1hxiTFdPm+v8btDBuYbDFMOs=";
hash = "sha256-UO+02Uwzl6/zsNYaWr10i03THZ0/Kre+BbFx02pRD3k=";
};
gmpVersion = "6.3.0";

View File

@@ -3266,7 +3266,7 @@ with pkgs;
gerbilPackages-unstable = pkgs.gerbil-support.gerbilPackages-unstable; # NB: don't recurseIntoAttrs for (unstable!) libraries
glow-lang = pkgs.gerbilPackages-unstable.glow-lang;
default-gcc-version = 15;
default-gcc-version = 16;
gcc = pkgs.${"gcc${toString default-gcc-version}"};
gccFun = callPackage ../development/compilers/gcc;
gcc-unwrapped = gcc.cc;