1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
From 5b699c1be73e789831db01e779a41478c0c62309 Mon Sep 17 00:00:00 2001
From: Henner Zeller <h.zeller@acm.org>
Date: Wed, 29 Jul 2020 15:29:08 -0700
Subject: [PATCH] Bison includes its generated header in *.cc. Generate with
correct name.
The current bison (3.7) generates a *.cc file that includes the header
it generated. For parse.cc this would be parse.hh. Right now, we rename
this header to have a common name used in other files, but this results
in a compile error for the parse.cc file:
parse.cc:462:10: fatal error: parse.hh: No such file or directory
462 | #include "parse.hh"
| ^~~~~~~~~~
Fix this by telling bison to output the header file to the correct
filename in the first place so that we don't have to rename it.
(using the --defines instead of -d option).
This looks like a bison specific option not available in Posix yacc;
but looks like we're requiring bison anyway.
Signed-off-by: Henner Zeller <h.zeller@acm.org>
---
Makefile.in | 4 +---
tgt-pcb/Makefile.in | 4 +---
vhdlpp/Makefile.in | 4 +---
vvp/Makefile.in | 4 +---
4 files changed, 4 insertions(+), 12 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 5ac5515a..cc8cac46 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -256,10 +256,8 @@ parse.o: parse.cc
# Build this in two steps to avoid parallel build issues (see pr3462585)
parse.cc: $(srcdir)/parse.y
- $(YACC) --verbose -t -p VL -d -o $@ $<
+ $(YACC) --verbose -t -p VL --defines=parse.h -o $@ $<
parse.h: parse.cc
- mv parse.cc.h $@ 2>/dev/null || mv parse.hh $@
- touch $@
syn-rules.cc: $(srcdir)/syn-rules.y
$(YACC) --verbose -t -p syn_ -o $@ $<
diff --git a/tgt-pcb/Makefile.in b/tgt-pcb/Makefile.in
index a5f9b7d5..7345e195 100644
--- a/tgt-pcb/Makefile.in
+++ b/tgt-pcb/Makefile.in
@@ -89,10 +89,8 @@ fp_lex.cc: $(srcdir)/fp.lex
$(LEX) -s -ofp_lex.cc $(srcdir)/fp.lex
fp.cc: $(srcdir)/fp.y
- $(YACC) --verbose -t -p fp -d -o $@ $<
+ $(YACC) --verbose -t -p fp --defines=fp.h -o $@ $<
fp.h: fp.cc
- mv fp.cc.h $@ 2>/dev/null || mv fp.hh $@
- touch $@
ifeq (@WIN32@,yes)
TGTLDFLAGS=-L.. -livl
diff --git a/vhdlpp/Makefile.in b/vhdlpp/Makefile.in
index 53ae140a..458178bd 100644
--- a/vhdlpp/Makefile.in
+++ b/vhdlpp/Makefile.in
@@ -117,10 +117,8 @@ lexor.cc: $(srcdir)/lexor.lex
# Build this in two steps to avoid parallel build issues (see pr3462585)
parse.cc: $(srcdir)/parse.y
- $(YACC) --verbose -t -d -o $@ $<
+ $(YACC) --verbose -t --defines=parse.h -o $@ $<
parse.h: parse.cc
- mv parse.cc.h $@ 2>/dev/null || mv parse.hh $@
- touch $@
lexor_keyword.o: lexor_keyword.cc parse.h
diff --git a/vvp/Makefile.in b/vvp/Makefile.in
index 8ccdb1d2..cdd940f5 100644
--- a/vvp/Makefile.in
+++ b/vvp/Makefile.in
@@ -142,10 +142,8 @@ tables.o: tables.cc
# Build this in two steps to avoid parallel build issues (see pr3462585)
parse.cc: $(srcdir)/parse.y
- $(YACC) --verbose -t -d -o $@ $<
+ $(YACC) --verbose -t --defines=parse.h -o $@ $<
parse.h: parse.cc
- mv parse.cc.h $@ 2>/dev/null || mv parse.hh $@
- touch $@
lexor.cc: $(srcdir)/lexor.lex
$(LEX) -s -olexor.cc $(srcdir)/lexor.lex
--
2.26.2
|