diff options
Diffstat (limited to 'meta/recipes-devtools')
3 files changed, 187 insertions, 1 deletions
diff --git a/meta/recipes-devtools/swig/swig.inc b/meta/recipes-devtools/swig/swig.inc index f7de40866a..00b9c5b605 100644 --- a/meta/recipes-devtools/swig/swig.inc +++ b/meta/recipes-devtools/swig/swig.inc | |||
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e7807a6282784a7dde4c846626b08fc6 \ | |||
7 | 7 | ||
8 | SECTION = "devel" | 8 | SECTION = "devel" |
9 | 9 | ||
10 | DEPENDS = "libpcre" | 10 | DEPENDS = "libpcre bison-native" |
11 | 11 | ||
12 | SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz" | 12 | SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz" |
13 | 13 | ||
@@ -42,6 +42,12 @@ EXTRA_AUTORECONF += "-I Tools/config" | |||
42 | 42 | ||
43 | BBCLASSEXTEND = "native nativesdk" | 43 | BBCLASSEXTEND = "native nativesdk" |
44 | 44 | ||
45 | # necessary together with bison dependency until a new upstream version after | ||
46 | # 3.0.12 includes 0001-Fix-generated-code-for-constant-expressions-containi.patch | ||
47 | do_configure_append() { | ||
48 | mkdir -p ${B}/Source/CParse | ||
49 | } | ||
50 | |||
45 | do_install_append_class-nativesdk() { | 51 | do_install_append_class-nativesdk() { |
46 | cd ${D}${bindir} | 52 | cd ${D}${bindir} |
47 | ln -s swig swig2.0 | 53 | ln -s swig swig2.0 |
diff --git a/meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch b/meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch new file mode 100644 index 0000000000..f4ed782a82 --- /dev/null +++ b/meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch | |||
@@ -0,0 +1,179 @@ | |||
1 | From 90ba174fcea1618af57aa594199541d47a89b7f6 Mon Sep 17 00:00:00 2001 | ||
2 | From: William S Fulton <wsf@fultondesigns.co.uk> | ||
3 | Date: Sun, 17 Sep 2017 19:02:55 +0100 | ||
4 | Subject: [PATCH 1/2] Fix generated code for constant expressions containing | ||
5 | wchar_t L literals. | ||
6 | |||
7 | Such as: | ||
8 | # define __WCHAR_MAX (0x7fffffff + L'\0') | ||
9 | |||
10 | Reported on swig-user mailing list. | ||
11 | --- | ||
12 | CHANGES.current | 5 +++++ | ||
13 | Examples/test-suite/csharp/preproc_constants_c_runme.cs | 3 ++- | ||
14 | Examples/test-suite/csharp/preproc_constants_runme.cs | 2 ++ | ||
15 | Examples/test-suite/d/preproc_constants_c_runme.1.d | 2 ++ | ||
16 | Examples/test-suite/d/preproc_constants_c_runme.2.d | 2 ++ | ||
17 | Examples/test-suite/d/preproc_constants_runme.1.d | 2 ++ | ||
18 | Examples/test-suite/d/preproc_constants_runme.2.d | 2 ++ | ||
19 | Examples/test-suite/php/preproc_constants_c_runme.php | 2 ++ | ||
20 | Examples/test-suite/php/preproc_constants_runme.php | 2 ++ | ||
21 | Examples/test-suite/php5/preproc_constants_c_runme.php | 2 ++ | ||
22 | Examples/test-suite/php5/preproc_constants_runme.php | 2 ++ | ||
23 | Examples/test-suite/preproc_constants.i | 3 +++ | ||
24 | Source/CParse/parser.y | 2 +- | ||
25 | 13 files changed, 29 insertions(+), 2 deletions(-) | ||
26 | |||
27 | Upstream-Status: Backport | ||
28 | [https://github.com/swig/swig/commit/90ba174fcea1618af57aa594199541d47a89b7f6] | ||
29 | Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com> | ||
30 | |||
31 | diff --git a/Examples/test-suite/csharp/preproc_constants_c_runme.cs b/Examples/test-suite/csharp/preproc_constants_c_runme.cs | ||
32 | index 76c684d..1c28e49 100644 | ||
33 | --- a/Examples/test-suite/csharp/preproc_constants_c_runme.cs | ||
34 | +++ b/Examples/test-suite/csharp/preproc_constants_c_runme.cs | ||
35 | @@ -61,7 +61,8 @@ public class runme { | ||
36 | assert( typeof(int) == preproc_constants_c.EXPR_LAND.GetType() ); | ||
37 | assert( typeof(int) == preproc_constants_c.EXPR_LOR.GetType() ); | ||
38 | assert( typeof(double) == preproc_constants_c.EXPR_CONDITIONAL.GetType() ); | ||
39 | - | ||
40 | + assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MAX.GetType() ); | ||
41 | + assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MIN.GetType() ); | ||
42 | } | ||
43 | static void assert(bool assertion) { | ||
44 | if (!assertion) | ||
45 | diff --git a/Examples/test-suite/csharp/preproc_constants_runme.cs b/Examples/test-suite/csharp/preproc_constants_runme.cs | ||
46 | index 9fae591..6b02e30 100644 | ||
47 | --- a/Examples/test-suite/csharp/preproc_constants_runme.cs | ||
48 | +++ b/Examples/test-suite/csharp/preproc_constants_runme.cs | ||
49 | @@ -60,6 +60,8 @@ public class runme { | ||
50 | assert( typeof(bool) == preproc_constants.EXPR_LAND.GetType() ); | ||
51 | assert( typeof(bool) == preproc_constants.EXPR_LOR.GetType() ); | ||
52 | assert( typeof(double) == preproc_constants.EXPR_CONDITIONAL.GetType() ); | ||
53 | + assert( typeof(int) == preproc_constants.EXPR_WCHAR_MAX.GetType() ); | ||
54 | + assert( typeof(int) == preproc_constants.EXPR_WCHAR_MIN.GetType() ); | ||
55 | |||
56 | } | ||
57 | static void assert(bool assertion) { | ||
58 | diff --git a/Examples/test-suite/d/preproc_constants_c_runme.1.d b/Examples/test-suite/d/preproc_constants_c_runme.1.d | ||
59 | index d846c71..2b349af 100644 | ||
60 | --- a/Examples/test-suite/d/preproc_constants_c_runme.1.d | ||
61 | +++ b/Examples/test-suite/d/preproc_constants_c_runme.1.d | ||
62 | @@ -61,4 +61,6 @@ void main() { | ||
63 | static assert(is(int == typeof(EXPR_LAND()))); | ||
64 | static assert(is(int == typeof(EXPR_LOR()))); | ||
65 | static assert(is(double == typeof(EXPR_CONDITIONAL()))); | ||
66 | + static assert(is(int == typeof(EXPR_WCHAR_MAX()))); | ||
67 | + static assert(is(int == typeof(EXPR_WCHAR_MIN()))); | ||
68 | } | ||
69 | diff --git a/Examples/test-suite/d/preproc_constants_c_runme.2.d b/Examples/test-suite/d/preproc_constants_c_runme.2.d | ||
70 | index 9bdbb93..1bac525 100644 | ||
71 | --- a/Examples/test-suite/d/preproc_constants_c_runme.2.d | ||
72 | +++ b/Examples/test-suite/d/preproc_constants_c_runme.2.d | ||
73 | @@ -61,4 +61,6 @@ void main() { | ||
74 | static assert(is(int == typeof(EXPR_LAND()))); | ||
75 | static assert(is(int == typeof(EXPR_LOR()))); | ||
76 | static assert(is(double == typeof(EXPR_CONDITIONAL()))); | ||
77 | + static assert(is(int == typeof(EXPR_WCHAR_MAX()))); | ||
78 | + static assert(is(int == typeof(EXPR_WCHAR_MIN()))); | ||
79 | } | ||
80 | diff --git a/Examples/test-suite/d/preproc_constants_runme.1.d b/Examples/test-suite/d/preproc_constants_runme.1.d | ||
81 | index 009405f..f743f48 100644 | ||
82 | --- a/Examples/test-suite/d/preproc_constants_runme.1.d | ||
83 | +++ b/Examples/test-suite/d/preproc_constants_runme.1.d | ||
84 | @@ -60,4 +60,6 @@ void main() { | ||
85 | static assert(is(bool == typeof(EXPR_LAND()))); | ||
86 | static assert(is(bool == typeof(EXPR_LOR()))); | ||
87 | static assert(is(double == typeof(EXPR_CONDITIONAL()))); | ||
88 | + static assert(is(int == typeof(EXPR_WCHAR_MAX()))); | ||
89 | + static assert(is(int == typeof(EXPR_WCHAR_MIN()))); | ||
90 | } | ||
91 | diff --git a/Examples/test-suite/d/preproc_constants_runme.2.d b/Examples/test-suite/d/preproc_constants_runme.2.d | ||
92 | index 2d92ef0..0d96c37 100644 | ||
93 | --- a/Examples/test-suite/d/preproc_constants_runme.2.d | ||
94 | +++ b/Examples/test-suite/d/preproc_constants_runme.2.d | ||
95 | @@ -60,4 +60,6 @@ void main() { | ||
96 | static assert(is(bool == typeof(EXPR_LAND()))); | ||
97 | static assert(is(bool == typeof(EXPR_LOR()))); | ||
98 | static assert(is(double == typeof(EXPR_CONDITIONAL()))); | ||
99 | + static assert(is(int == typeof(EXPR_WCHAR_MAX()))); | ||
100 | + static assert(is(int == typeof(EXPR_WCHAR_MIN()))); | ||
101 | } | ||
102 | diff --git a/Examples/test-suite/php/preproc_constants_c_runme.php b/Examples/test-suite/php/preproc_constants_c_runme.php | ||
103 | index af9b76e..e59fe18 100644 | ||
104 | --- a/Examples/test-suite/php/preproc_constants_c_runme.php | ||
105 | +++ b/Examples/test-suite/php/preproc_constants_c_runme.php | ||
106 | @@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant | ||
107 | check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type"); | ||
108 | check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type"); | ||
109 | check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type"); | ||
110 | +check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type"); | ||
111 | +check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type"); | ||
112 | |||
113 | ?> | ||
114 | diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php | ||
115 | index 5c9119b..8e117ea 100644 | ||
116 | --- a/Examples/test-suite/php/preproc_constants_runme.php | ||
117 | +++ b/Examples/test-suite/php/preproc_constants_runme.php | ||
118 | @@ -61,5 +61,7 @@ check::equal(gettype(preproc_constants::EXPR_OR), "integer", "preproc_constants. | ||
119 | check::equal(gettype(preproc_constants::EXPR_LAND), "boolean", "preproc_constants.EXPR_LAND has unexpected type"); | ||
120 | check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants.EXPR_LOR has unexpected type"); | ||
121 | check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type"); | ||
122 | +check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type"); | ||
123 | +check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type"); | ||
124 | |||
125 | ?> | ||
126 | diff --git a/Examples/test-suite/php5/preproc_constants_c_runme.php b/Examples/test-suite/php5/preproc_constants_c_runme.php | ||
127 | index 1ea0195..d978fab 100644 | ||
128 | --- a/Examples/test-suite/php5/preproc_constants_c_runme.php | ||
129 | +++ b/Examples/test-suite/php5/preproc_constants_c_runme.php | ||
130 | @@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant | ||
131 | check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type"); | ||
132 | check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type"); | ||
133 | check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type"); | ||
134 | +check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type"); | ||
135 | +check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type"); | ||
136 | |||
137 | ?> | ||
138 | diff --git a/Examples/test-suite/php5/preproc_constants_runme.php b/Examples/test-suite/php5/preproc_constants_runme.php | ||
139 | index fb9ee4f..7527026 100644 | ||
140 | --- a/Examples/test-suite/php5/preproc_constants_runme.php | ||
141 | +++ b/Examples/test-suite/php5/preproc_constants_runme.php | ||
142 | @@ -70,5 +70,7 @@ check::equal(gettype(preproc_constants::EXPR_LAND), "integer", "preproc_constant | ||
143 | check::equal(gettype(preproc_constants::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type"); | ||
144 | |||
145 | check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type"); | ||
146 | +check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type"); | ||
147 | +check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type"); | ||
148 | |||
149 | ?> | ||
150 | diff --git a/Examples/test-suite/preproc_constants.i b/Examples/test-suite/preproc_constants.i | ||
151 | index 3a999ad..16b44c9 100644 | ||
152 | --- a/Examples/test-suite/preproc_constants.i | ||
153 | +++ b/Examples/test-suite/preproc_constants.i | ||
154 | @@ -87,6 +87,9 @@ | ||
155 | #define EXPR_LOR 0xFF || 1 | ||
156 | #define EXPR_CONDITIONAL true ? 2 : 2.2 | ||
157 | |||
158 | +#define EXPR_WCHAR_MAX (0x7fffffff + L'\0') | ||
159 | +#define EXPR_WCHAR_MIN (-EXPR_WCHAR_MAX - 1) | ||
160 | + | ||
161 | #define EXPR_CHAR_COMPOUND_ADD 'A' + 12 | ||
162 | #define EXPR_CHAR_COMPOUND_LSHIFT 'B' << 6 | ||
163 | #define H_SUPPRESS_SCALING_MAGIC (('s'<<24) | ('u'<<16) | ('p'<<8) | 'p') | ||
164 | diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y | ||
165 | index 2e92cd0..273dadb 100644 | ||
166 | --- a/Source/CParse/parser.y | ||
167 | +++ b/Source/CParse/parser.y | ||
168 | @@ -194,7 +194,7 @@ int SWIG_cparse_template_reduce(int treduce) { | ||
169 | * ----------------------------------------------------------------------------- */ | ||
170 | |||
171 | static int promote_type(int t) { | ||
172 | - if (t <= T_UCHAR || t == T_CHAR) return T_INT; | ||
173 | + if (t <= T_UCHAR || t == T_CHAR || t == T_WCHAR) return T_INT; | ||
174 | return t; | ||
175 | } | ||
176 | |||
177 | -- | ||
178 | 2.9.5 | ||
179 | |||
diff --git a/meta/recipes-devtools/swig/swig_3.0.12.bb b/meta/recipes-devtools/swig/swig_3.0.12.bb index fe9d0747f2..45026c9700 100644 --- a/meta/recipes-devtools/swig/swig_3.0.12.bb +++ b/meta/recipes-devtools/swig/swig_3.0.12.bb | |||
@@ -5,6 +5,7 @@ SRC_URI += "file://0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.pat | |||
5 | file://0001-Add-Node-7.x-aka-V8-5.2-support.patch \ | 5 | file://0001-Add-Node-7.x-aka-V8-5.2-support.patch \ |
6 | file://swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch \ | 6 | file://swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch \ |
7 | file://Python-Fix-new-GCC8-warnings-in-generated-code.patch \ | 7 | file://Python-Fix-new-GCC8-warnings-in-generated-code.patch \ |
8 | file://0001-Fix-generated-code-for-constant-expressions-containi.patch \ | ||
8 | " | 9 | " |
9 | SRC_URI[md5sum] = "82133dfa7bba75ff9ad98a7046be687c" | 10 | SRC_URI[md5sum] = "82133dfa7bba75ff9ad98a7046be687c" |
10 | SRC_URI[sha256sum] = "7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d" | 11 | SRC_URI[sha256sum] = "7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d" |