File: 0004-arm32-gcc-bug.patch

package info (click to toggle)
msc-generator 8.6.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 180,484 kB
  • sloc: cpp: 129,931; yacc: 23,655; ansic: 7,464; sh: 5,026; makefile: 948
file content (107 lines) | stat: -rw-r--r-- 4,039 bytes parent folder | download | duplicates (3)
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
98
99
100
101
102
103
104
105
106
107
Author: Gábor Németh <homar@riseup.net>
Subject: Dance around GCC oddity in arm32 builds
Forwarded: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1077657

GCC on armel/hf (as of 14.2) does not accept a forward-declared std::vector
element type in -O1 and above. See https://bugs.debian.org/1077657 for details.
--- a/src/libblock/Makefile.am
+++ b/src/libblock/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I$(srcdir)/../libcgencommon -I$(srcdir)/../libgvgen -I$(srcdir)/.. -I../libcgencommon
+AM_CPPFLAGS += -include arm_vector.h
 
 EXTRA_DIST = block_lang.yy preamble_compile.yy preamble_csh.yy
 
--- a/src/libcgencommon/Makefile.am
+++ b/src/libcgencommon/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I$(srcdir)/../imported/miniz $(LIBPNG_CFLAGS) $(TINYXML_CFLAGS)
+AM_CPPFLAGS += -include arm_vector.h
 
 noinst_LIBRARIES = libcgencommon.a
 
@@ -46,3 +47,13 @@ version.h: $(top_srcdir)/configure.ac
 		     echo "#define LIBMSCGEN_SUPERMINOR $${BASH_REMATCH[4]:-0}";\
 		   } >$@ \
 		|| echo 'gen_version_h error: I need the version as [v]<num>.<num>[.<num>]'
+
+BUILT_SOURCES += arm_vector.h
+arm_vector.h:
+	{ echo '#if __arm__ == 1 && defined __cplusplus';\
+	  echo '#warning Turning off optimization for <vector> to circumvent odd GCC behavior; cf. https://bugs.debian.org/1077657';\
+	  echo '#pragma GCC optimize "O0"';\
+	  echo '#include <vector>';\
+	  echo '#pragma GCC reset_options';\
+	  echo '#endif';\
+	} >$@
--- a/src/libdbg/Makefile.am
+++ b/src/libdbg/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I$(srcdir)/../libcgencommon -I$(srcdir)/.. -I../libcgencommon
+AM_CPPFLAGS += -include arm_vector.h
 
 noinst_LIBRARIES = libdbg.a
-libdbg_a_SOURCES = dbgchart.cpp dbgchart.h 
+libdbg_a_SOURCES = dbgchart.cpp dbgchart.h
--- a/src/libflow/Makefile.am
+++ b/src/libflow/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I$(srcdir)/../libcgencommon -I$(srcdir)/.. -I../libcgencommon
+AM_CPPFLAGS += -include arm_vector.h
 
 EXTRA_DIST = flow_lang.yy preamble_compile.yy preamble_csh.yy
 
--- a/src/libgui/Makefile.am
+++ b/src/libgui/Makefile.am
@@ -9,6 +9,7 @@ AM_CPPFLAGS = $(foreach d,libcgencommon libgvgen libblock libxxx libflow libmscg
               -I$(srcdir)/../imported/imgui \
               -I$(srcdir)/../imported/file_dialog \
               -DCUSTOM_IMGUIFILEDIALOG_CONFIG=\"MscGenImGuiFileDialogConfig.h\"
+AM_CPPFLAGS += -include arm_vector.h
 
 noinst_PROGRAMS = binary_to_compressed_c gen_designs_c
 binary_to_compressed_c_SOURCES = ../imported/imgui/misc/fonts/binary_to_compressed_c.cpp
--- a/src/libgvgen/Makefile.am
+++ b/src/libgvgen/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I$(srcdir)/../libcgencommon -I$(srcdir)/.. -I../libcgencommon
+AM_CPPFLAGS += -include arm_vector.h
 
 EXTRA_DIST = graph_lang.yy preamble_compile.yy preamble_csh.yy
 
--- a/src/libmscgen/Makefile.am
+++ b/src/libmscgen/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I$(srcdir)/../libcgencommon -I$(srcdir)/../libgvgen -I$(srcdir)/.. -I../libcgencommon
+AM_CPPFLAGS += -include arm_vector.h
 
 EXTRA_DIST = msc_lang.yy preamble_compile.yy preamble_csh.yy
 
--- a/src/libxxx/Makefile.am
+++ b/src/libxxx/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I$(srcdir)/../libcgencommon -I$(srcdir)/../libgvgen -I$(srcdir)/.. -I../libcgencommon
+AM_CPPFLAGS += -include arm_vector.h
 
 EXTRA_DIST = xxx_lang.yy preamble_compile.yy preamble_csh.yy
 
--- a/src/unix-msc-gen/Makefile.am
+++ b/src/unix-msc-gen/Makefile.am
@@ -5,6 +5,7 @@ endif
 SUBLIBS += libxxx libflow libblock libgvgen libmscgen libcgencommon
 
 AM_CPPFLAGS = $(foreach d,$(SUBLIBS) Msc-generator-GUI/res,-I$(srcdir)/../$d) -I../libcgencommon
+AM_CPPFLAGS += -include arm_vector.h
 
 bin_PROGRAMS = msc-gen
 noinst_PROGRAMS = gen_designs_c
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -2,6 +2,7 @@ check_PROGRAMS = pngdiff contours
 dist_check_SCRIPTS = hint.sh ppt2png.sh
 
 AM_CPPFLAGS = -I$(top_srcdir)/src/libcgencommon -I$(top_builddir)/src/libcgencommon
+AM_CPPFLAGS += -include arm_vector.h
 AM_CXXFLAGS += $(CAIRO_CFLAGS)
 AM_DEFAULT_SOURCE_EXT = .cpp