plotutils: fix build with clang 16
Clang defaults to C++, which disallows the register storage class specifier. This causes the build to fail. Remove the specifier to allow clang 16 to build plotutils.
This commit is contained in:
parent
dba6d77ad2
commit
92d99c521b
2 changed files with 48 additions and 1 deletions
44
pkgs/tools/graphics/plotutils/c++17-register-usage-fix.patch
Normal file
44
pkgs/tools/graphics/plotutils/c++17-register-usage-fix.patch
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
diff -ur a/pic2plot/gram.cc b/pic2plot/gram.cc
|
||||||
|
--- a/pic2plot/gram.cc 2000-06-28 00:23:21.000000000 -0400
|
||||||
|
+++ b/pic2plot/gram.cc 2023-09-07 22:59:47.004460065 -0400
|
||||||
|
@@ -1229,9 +1229,9 @@
|
||||||
|
char *from;
|
||||||
|
unsigned int count;
|
||||||
|
{
|
||||||
|
- register char *f = from;
|
||||||
|
- register char *t = to;
|
||||||
|
- register int i = count;
|
||||||
|
+ char *f = from;
|
||||||
|
+ char *t = to;
|
||||||
|
+ int i = count;
|
||||||
|
|
||||||
|
while (i-- > 0)
|
||||||
|
*t++ = *f++;
|
||||||
|
@@ -1244,9 +1244,9 @@
|
||||||
|
static void
|
||||||
|
__yy_memcpy (char *to, char *from, unsigned int count)
|
||||||
|
{
|
||||||
|
- register char *t = to;
|
||||||
|
- register char *f = from;
|
||||||
|
- register int i = count;
|
||||||
|
+ char *t = to;
|
||||||
|
+ char *f = from;
|
||||||
|
+ int i = count;
|
||||||
|
|
||||||
|
while (i-- > 0)
|
||||||
|
*t++ = *f++;
|
||||||
|
@@ -1289,10 +1289,10 @@
|
||||||
|
yyparse(YYPARSE_PARAM_ARG)
|
||||||
|
YYPARSE_PARAM_DECL
|
||||||
|
{
|
||||||
|
- register int yystate;
|
||||||
|
- register int yyn;
|
||||||
|
- register short *yyssp;
|
||||||
|
- register YYSTYPE *yyvsp;
|
||||||
|
+ int yystate;
|
||||||
|
+ int yyn;
|
||||||
|
+ short *yyssp;
|
||||||
|
+ YYSTYPE *yyvsp;
|
||||||
|
int yyerrstatus; /* number of tokens to shift before error messages enabled */
|
||||||
|
int yychar1 = 0; /* lookahead token as an internal (translated) token number */
|
||||||
|
|
|
@ -16,7 +16,10 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook ];
|
nativeBuildInputs = [ autoreconfHook ];
|
||||||
buildInputs = [ libpng ];
|
buildInputs = [ libpng ];
|
||||||
patches = map fetchurl (import ./debian-patches.nix);
|
patches = map fetchurl (import ./debian-patches.nix)
|
||||||
|
# `pic2plot/gram.cc` uses the register storage class specifier, which is not supported in C++17.
|
||||||
|
# This prevents clang 16 from building plotutils because it defaults to C++17.
|
||||||
|
++ [ ./c++17-register-usage-fix.patch ];
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
# Fix parallel building.
|
# Fix parallel building.
|
||||||
|
|
Loading…
Reference in a new issue