--- Begin Message ---
Source: graywolf
Version: 0.1.4+20170307gite1bf319-1
Severity: normal
Tags: patch upstream
Hi,
I noticed that this currently fails to build on kFreeBSD and Hurd, since
it tries to use stdin in an initializer list, which gives an error
(stdin is not a compile-time constant). There is already code to work
around this on Linux, so I'm not sure why it's not used elsewhere, but
the attached patch fixes the build for me on kfreebsd-amd64 (I assume
kfreebsd-i386 and hurd-i386 too, though I have not actually tested
that). It also removes the strange stdio.h handling, which isn't
necessary, but is even more mind-boggling.
Regards,
James
Description: Fix FTBFS on non-Linux since stdin is not a constant
Author: James Clarke <[email protected]>
Last-Update: 2017-03-07
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/src/mc_compact/readcgraph_l.h
+++ b/src/mc_compact/readcgraph_l.h
@@ -1,8 +1,4 @@
-#ifdef linux
#include <stdio.h>
-#else
-# include "stdio.h"
-#endif
#include <yalecad/string.h>
# define U(x) ((x)&0377)
# define NLSTATE yyprevious=YYNEWLINE
@@ -22,11 +18,7 @@ int yyleng; extern char yytext[];
int yymorfg;
extern char *yysptr, yysbuf[];
int yytchar;
-#ifdef linux
FILE *yyin = NULL, *yyout = NULL;
-#else
-FILE *yyin ={stdin}, *yyout ={stdout};
-#endif
extern int yylineno;
struct yysvf {
struct yywork *yystoff;
@@ -461,10 +453,8 @@ yylook(){
int debug;
# endif
char *yylastch;
-#ifdef linux
if (yyin == NULL) yyin = stdin;
if (yyout == NULL) yyout = stdout;
-#endif
/* start off machines */
# ifdef LEXDEBUG
debug = 0;
@@ -614,16 +604,12 @@ return(0);
}
/* the following are only used in the lex library */
yyinput(){
-#ifdef linux
if (yyin == NULL) yyin = stdin;
-#endif
return(input());
}
yyoutput(c)
int c; {
-#ifdef linux
if (yyout == NULL) yyout = stdout;
-#endif
output(c);
}
yyunput(c)
--- a/src/mc_compact/readtiles_l.h
+++ b/src/mc_compact/readtiles_l.h
@@ -1,8 +1,4 @@
-#ifdef linux
#include <stdio.h>
-#else
-# include "stdio.h"
-#endif
#include <yalecad/string.h>
# define U(x) ((x)&0377)
# define NLSTATE yyprevious=YYNEWLINE
@@ -22,11 +18,7 @@ int yyleng; extern char yytext[];
int yymorfg;
extern char *yysptr, yysbuf[];
int yytchar;
-#ifdef linux
FILE *yyin = NULL, *yyout = NULL;
-#else
-FILE *yyin ={stdin}, *yyout ={stdout};
-#endif
extern int yylineno;
struct yysvf {
struct yywork *yystoff;
@@ -516,10 +508,8 @@ yylook(){
int debug;
# endif
char *yylastch;
-#ifdef linux
if (yyin == NULL) yyin = stdin;
if (yyout == NULL) yyout = stdout;
-#endif
/* start off machines */
# ifdef LEXDEBUG
debug = 0;
@@ -669,16 +659,12 @@ return(0);
}
/* the following are only used in the lex library */
yyinput(){
-#ifdef linux
if (yyin == NULL) yyin = stdin;
-#endif
return(input());
}
yyoutput(c)
int c; {
-#ifdef linux
if (yyout == NULL) yyout = stdout;
-#endif
output(c);
}
yyunput(c)
--- a/src/mincut/readcells_l.h
+++ b/src/mincut/readcells_l.h
@@ -1,8 +1,4 @@
-#ifdef linux
#include <stdio.h>
-#else
-# include "stdio.h"
-#endif
# define U(x) ((x)&0377)
# define NLSTATE yyprevious=YYNEWLINE
# define BEGIN yybgin = yysvec + 1 +
@@ -21,11 +17,7 @@ int yyleng; extern char yytext[];
int yymorfg;
extern char *yysptr, yysbuf[];
int yytchar;
-#ifdef linux
FILE *yyin =(FILE *)NULL, *yyout =(FILE *)NULL;
-#else
-FILE *yyin ={stdin}, *yyout ={stdout};
-#endif
extern int yylineno;
struct yysvf {
struct yywork *yystoff;
@@ -541,10 +533,8 @@ yylook(){
int debug;
# endif
char *yylastch;
-#ifdef linux
if (yyin == NULL) yyin = stdin;
if (yyout == NULL) yyout = stdout;
-#endif
/* start off machines */
# ifdef LEXDEBUG
debug = 0;
@@ -694,16 +684,12 @@ return(0);
}
/* the following are only used in the lex library */
yyinput(){
-#ifdef linux
if (yyin == NULL) yyin = stdin;
-#endif
return(input());
}
yyoutput(c)
int c; {
-#ifdef linux
if (yyout == NULL) yyout = stdout;
-#endif
output(c);
}
yyunput(c)
--- a/src/syntax/readcells_l.h
+++ b/src/syntax/readcells_l.h
@@ -1,8 +1,4 @@
-#ifdef linux
#include <stdio.h>
-#else
-# include "stdio.h"
-#endif
# define U(x) ((x)&0377)
# define NLSTATE yyprevious=YYNEWLINE
# define BEGIN yybgin = yysvec + 1 +
@@ -21,11 +17,7 @@ int yyleng; extern char yytext[];
int yymorfg;
extern char *yysptr, yysbuf[];
int yytchar;
-#ifdef linux
FILE *yyin = NULL, *yyout = NULL;
-#else
-FILE *yyin ={stdin}, *yyout ={stdout};
-#endif
extern int yylineno;
struct yysvf {
struct yywork *yystoff;
@@ -541,10 +533,8 @@ yylook(){
int debug;
# endif
char *yylastch;
-#ifdef linux
if (yyin == NULL) yyin = stdin;
if (yyout == NULL) yyout = stdout;
-#endif
/* start off machines */
# ifdef LEXDEBUG
debug = 0;
@@ -694,16 +684,12 @@ return(0);
}
/* the following are only used in the lex library */
yyinput(){
-#ifdef linux
if (yyin == NULL) yyin = stdin;
-#endif
return(input());
}
yyoutput(c)
int c; {
-#ifdef linux
if (yyout == NULL) yyout = stdout;
-#endif
output(c);
}
yyunput(c)
--- a/src/twflow/readobjects_l.h
+++ b/src/twflow/readobjects_l.h
@@ -1,8 +1,4 @@
-#ifdef linux
-# include <stdio.h>
-#else
-# include "stdio.h"
-#endif
+#include <stdio.h>
# define U(x) ((x)&0377)
# define NLSTATE yyprevious=YYNEWLINE
# define BEGIN yybgin = yysvec + 1 +
@@ -21,11 +17,7 @@ int yyleng; extern char yytext[];
int yymorfg;
extern char *yysptr, yysbuf[];
int yytchar;
-#ifdef linux
FILE *yyin =NULL, *yyout =NULL;
-#else
-FILE *yyin ={stdin}, *yyout ={stdout};
-#endif
extern int yylineno;
struct yysvf {
struct yywork *yystoff;
@@ -511,10 +503,8 @@ yylook(){
int debug;
# endif
char *yylastch;
-#ifdef linux
if (yyin == NULL) yyin = stdin;
if (yyout == NULL) yyout = stdout;
-#endif
/* start off machines */
# ifdef LEXDEBUG
debug = 0;
@@ -664,16 +654,12 @@ return(0);
}
/* the following are only used in the lex library */
yyinput(){
-#ifdef linux
if (yyin == NULL) yyin = stdin;
-#endif
return(input());
}
yyoutput(c)
int c; {
-#ifdef linux
if (yyout == NULL) yyout = stdout;
-#endif
output(c);
}
yyunput(c)
--- a/src/twmc/readcells_l.h
+++ b/src/twmc/readcells_l.h
@@ -1,8 +1,4 @@
-#ifdef linux
#include <stdio.h>
-#else
-# include "stdio.h"
-#endif
# define U(x) ((x)&0377)
# define NLSTATE yyprevious=YYNEWLINE
# define BEGIN yybgin = yysvec + 1 +
@@ -21,11 +17,7 @@ int yyleng; extern char yytext[];
int yymorfg;
extern char *yysptr, yysbuf[];
int yytchar;
-#ifdef linux
FILE *yyin =NULL, *yyout =NULL;
-#else
-FILE *yyin ={stdin}, *yyout ={stdout};
-#endif
extern int yylineno;
struct yysvf {
struct yywork *yystoff;
@@ -527,10 +519,8 @@ yylook(){
# endif
char *yylastch;
/* start off machines */
-#ifdef linux
if (yyin == NULL) yyin = stdin;
if (yyout == NULL) yyout = stdout;
-#endif
# ifdef LEXDEBUG
debug = 0;
# endif
@@ -679,16 +669,12 @@ return(0);
}
/* the following are only used in the lex library */
yyinput(){
-#ifdef linux
if (yyin == NULL) yyin = stdin;
-#endif
return(input());
}
yyoutput(c)
int c; {
-#ifdef linux
if (yyout == NULL) yyout = stdout;
-#endif
output(c);
}
yyunput(c)
--- a/src/twmc/readnets_l.h
+++ b/src/twmc/readnets_l.h
@@ -1,8 +1,4 @@
-#ifdef linux
-# include <stdio.h>
-#else
-# include "stdio.h"
-#endif
+#include <stdio.h>
# define U(x) ((x)&0377)
# define NLSTATE yyprevious=YYNEWLINE
# define BEGIN yybgin = yysvec + 1 +
@@ -21,11 +17,7 @@ int yyleng; extern char yytext[];
int yymorfg;
extern char *yysptr, yysbuf[];
int yytchar;
-#ifdef linux
FILE *yyin = NULL, *yyout = NULL;
-#else
-FILE *yyin ={stdin}, *yyout ={stdout};
-#endif
extern int yylineno;
struct yysvf {
struct yywork *yystoff;
@@ -526,10 +518,8 @@ yylook(){
int debug;
# endif
char *yylastch;
-#ifdef linux
if (yyin == NULL) yyin = stdin;
if (yyout == NULL) yyout = stdout;
-#endif
/* start off machines */
# ifdef LEXDEBUG
debug = 0;
@@ -679,16 +669,12 @@ return(0);
}
/* the following are only used in the lex library */
yyinput(){
-#ifdef linux
if (yyin == NULL) yyin = stdin;
-#endif
return(input());
}
yyoutput(c)
int c; {
-#ifdef linux
if (yyout == NULL) yyout = stdout;
-#endif
output(c);
}
yyunput(c)
--- a/src/twsc/readcell_l.h
+++ b/src/twsc/readcell_l.h
@@ -1,8 +1,4 @@
-#ifdef linux
-# include <stdio.h>
-#else
-# include "stdio.h"
-#endif
+#include <stdio.h>
# define U(x) ((x)&0377)
# define NLSTATE yyprevious=YYNEWLINE
# define BEGIN yybgin = yysvec + 1 +
@@ -21,11 +17,7 @@ int yyleng; extern char yytext[];
int yymorfg;
extern char *yysptr, yysbuf[];
int yytchar;
-#ifdef linux
FILE *yyin = (FILE *)NULL, *yyout = (FILE *)NULL;
-#else
-FILE *yyin ={stdin}, *yyout ={stdout};
-#endif
extern int yylineno;
struct yysvf {
struct yywork *yystoff;
@@ -531,10 +523,8 @@ yylook(){
# endif
char *yylastch;
-#ifdef linux
if (yyin == (FILE *)NULL) yyin = stdin;
if (yyout == (FILE *)NULL) yyout = stdout;
-#endif
/* start off machines */
# ifdef LEXDEBUG
debug = 0;
@@ -684,16 +674,12 @@ return(0);
}
/* the following are only used in the lex library */
yyinput(){
-#ifdef linux
if (yyin == NULL) yyin = stdin;
-#endif
return(input());
}
yyoutput(c)
int c; {
-#ifdef linux
if (yyout == NULL) yyout = stdout;
-#endif
output(c);
}
yyunput(c)
--- a/src/twsc/readnets_l.h
+++ b/src/twsc/readnets_l.h
@@ -1,8 +1,4 @@
-#ifdef linux
-# include <stdio.h>
-#else
-# include "stdio.h"
-#endif
+#include <stdio.h>
# define U(x) ((x)&0377)
# define NLSTATE yyprevious=YYNEWLINE
# define BEGIN yybgin = yysvec + 1 +
@@ -21,11 +17,7 @@ int yyleng; extern char yytext[];
int yymorfg;
extern char *yysptr, yysbuf[];
int yytchar;
-#ifdef linux
FILE *yyin =NULL, *yyout =NULL;
-#else
-FILE *yyin ={stdin}, *yyout ={stdout};
-#endif
extern int yylineno;
struct yysvf {
struct yywork *yystoff;
@@ -489,10 +481,8 @@ yylook(){
# endif
char *yylastch;
/* start off machines */
-#ifdef linux
if (yyin == NULL) yyin = stdin;
if (yyout == NULL) yyout = stdout;
-#endif
# ifdef LEXDEBUG
debug = 0;
# endif
@@ -641,16 +631,12 @@ return(0);
}
/* the following are only used in the lex library */
yyinput(){
-#ifdef linux
if (yyin == NULL) yyin = stdin;
-#endif
return(input());
}
yyoutput(c)
int c; {
-#ifdef linux
if (yyout == NULL) yyout = stdout;
-#endif
output(c);
}
yyunput(c)
--- End Message ---