gperf: fix build with clang 16
Clang 16 defaults to C++17, which does not allow the `register` storage class specifier. This is fixed upstream, but the change doesn’t apply cleanly to the 3.1 release. Fortunately, the fix is trivial (remove the disallowed keyword).
This commit is contained in:
@@ -9,6 +9,11 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1qispg6i508rq8pkajh26cznwimbnj06wq9sd85vg95v8nwld1aq";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Clang 16 defaults to C++17, which does not allow `register` as a storage class specifier.
|
||||
./gperf-c++17-register-fix.patch
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git a/lib/getline.cc b/lib/getline.cc
|
||||
index c57c633..0984a7c 100644
|
||||
--- a/lib/getline.cc
|
||||
+++ b/lib/getline.cc
|
||||
@@ -55,7 +55,7 @@ getstr (char **lineptr, size_t *n, FILE *stream, char terminator, size_t offset)
|
||||
|
||||
for (;;)
|
||||
{
|
||||
- register int c = getc (stream);
|
||||
+ int c = getc (stream);
|
||||
|
||||
/* We always want at least one char left in the buffer, since we
|
||||
always (unless we get an error while reading the first char)
|
||||
Reference in New Issue
Block a user