All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] swig: fix build with musl
@ 2019-02-28 14:27 luca.boccassi
  2019-03-01 13:43 ` Burton, Ross
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: luca.boccassi @ 2019-02-28 14:27 UTC (permalink / raw)
  To: openembedded-core

From: Luca Boccassi <luca.boccassi@microsoft.com>

Building with musl currently fails. The fix has been committed
upstream, so backport it.
Note that it requires the recent change to use autoconf's do_configure
as it modifies a bison file which is used at make-dist time, so it
triggers an autoconf rerun which was not working previously due to the
custom do_configure step that was removed recently by:
a9b1f9eca963 ("swig: Fix configure failure")

Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
---
 ...de-for-constant-expressions-containi.patch | 178 ++++++++++++++++++
 meta/recipes-devtools/swig/swig_3.0.12.bb     |   1 +
 2 files changed, 179 insertions(+)
 create mode 100644 meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch

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..4c2bc99ca0
--- /dev/null
+++ b/meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch
@@ -0,0 +1,178 @@
+From 90ba174fcea1618af57aa594199541d47a89b7f6 Mon Sep 17 00:00:00 2001
+From: William S Fulton <wsf@fultondesigns.co.uk>
+Date: Sun, 17 Sep 2017 19:02:55 +0100
+Subject: [PATCH 1/2] Fix generated code for constant expressions containing
+ wchar_t L literals.
+
+Such as:
+  # define __WCHAR_MAX    (0x7fffffff + L'\0')
+
+Reported on swig-user mailing list.
+---
+ Examples/test-suite/csharp/preproc_constants_c_runme.cs | 3 ++-
+ Examples/test-suite/csharp/preproc_constants_runme.cs   | 2 ++
+ Examples/test-suite/d/preproc_constants_c_runme.1.d     | 2 ++
+ Examples/test-suite/d/preproc_constants_c_runme.2.d     | 2 ++
+ Examples/test-suite/d/preproc_constants_runme.1.d       | 2 ++
+ Examples/test-suite/d/preproc_constants_runme.2.d       | 2 ++
+ Examples/test-suite/php/preproc_constants_c_runme.php   | 2 ++
+ Examples/test-suite/php/preproc_constants_runme.php     | 2 ++
+ Examples/test-suite/php5/preproc_constants_c_runme.php  | 2 ++
+ Examples/test-suite/php5/preproc_constants_runme.php    | 2 ++
+ Examples/test-suite/preproc_constants.i                 | 3 +++
+ Source/CParse/parser.y                                  | 2 +-
+ 13 files changed, 29 insertions(+), 2 deletions(-)
+
+Origin: https://github.com/swig/swig/commit/90ba174fcea1618af57aa594199541d47a89b7f6
+Applied-Upstream: yes
+
+diff --git a/Examples/test-suite/csharp/preproc_constants_c_runme.cs b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
+index 76c684d..1c28e49 100644
+--- a/Examples/test-suite/csharp/preproc_constants_c_runme.cs
++++ b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
+@@ -61,7 +61,8 @@ public class runme {
+     assert( typeof(int) == preproc_constants_c.EXPR_LAND.GetType() );
+     assert( typeof(int) == preproc_constants_c.EXPR_LOR.GetType() );
+     assert( typeof(double) == preproc_constants_c.EXPR_CONDITIONAL.GetType() );
+-
++    assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MAX.GetType() );
++    assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MIN.GetType() );
+   }
+   static void assert(bool assertion) {
+     if (!assertion)
+diff --git a/Examples/test-suite/csharp/preproc_constants_runme.cs b/Examples/test-suite/csharp/preproc_constants_runme.cs
+index 9fae591..6b02e30 100644
+--- a/Examples/test-suite/csharp/preproc_constants_runme.cs
++++ b/Examples/test-suite/csharp/preproc_constants_runme.cs
+@@ -60,6 +60,8 @@ public class runme {
+     assert( typeof(bool) == preproc_constants.EXPR_LAND.GetType() );
+     assert( typeof(bool) == preproc_constants.EXPR_LOR.GetType() );
+     assert( typeof(double) == preproc_constants.EXPR_CONDITIONAL.GetType() );
++    assert( typeof(int) == preproc_constants.EXPR_WCHAR_MAX.GetType() );
++    assert( typeof(int) == preproc_constants.EXPR_WCHAR_MIN.GetType() );
+ 
+   }
+   static void assert(bool assertion) {
+diff --git a/Examples/test-suite/d/preproc_constants_c_runme.1.d b/Examples/test-suite/d/preproc_constants_c_runme.1.d
+index d846c71..2b349af 100644
+--- a/Examples/test-suite/d/preproc_constants_c_runme.1.d
++++ b/Examples/test-suite/d/preproc_constants_c_runme.1.d
+@@ -61,4 +61,6 @@ void main() {
+   static assert(is(int == typeof(EXPR_LAND())));
+   static assert(is(int == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/d/preproc_constants_c_runme.2.d b/Examples/test-suite/d/preproc_constants_c_runme.2.d
+index 9bdbb93..1bac525 100644
+--- a/Examples/test-suite/d/preproc_constants_c_runme.2.d
++++ b/Examples/test-suite/d/preproc_constants_c_runme.2.d
+@@ -61,4 +61,6 @@ void main() {
+   static assert(is(int == typeof(EXPR_LAND())));
+   static assert(is(int == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/d/preproc_constants_runme.1.d b/Examples/test-suite/d/preproc_constants_runme.1.d
+index 009405f..f743f48 100644
+--- a/Examples/test-suite/d/preproc_constants_runme.1.d
++++ b/Examples/test-suite/d/preproc_constants_runme.1.d
+@@ -60,4 +60,6 @@ void main() {
+   static assert(is(bool == typeof(EXPR_LAND())));
+   static assert(is(bool == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/d/preproc_constants_runme.2.d b/Examples/test-suite/d/preproc_constants_runme.2.d
+index 2d92ef0..0d96c37 100644
+--- a/Examples/test-suite/d/preproc_constants_runme.2.d
++++ b/Examples/test-suite/d/preproc_constants_runme.2.d
+@@ -60,4 +60,6 @@ void main() {
+   static assert(is(bool == typeof(EXPR_LAND())));
+   static assert(is(bool == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/php/preproc_constants_c_runme.php b/Examples/test-suite/php/preproc_constants_c_runme.php
+index af9b76e..e59fe18 100644
+--- a/Examples/test-suite/php/preproc_constants_c_runme.php
++++ b/Examples/test-suite/php/preproc_constants_c_runme.php
+@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
+ check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php
+index 5c9119b..8e117ea 100644
+--- a/Examples/test-suite/php/preproc_constants_runme.php
++++ b/Examples/test-suite/php/preproc_constants_runme.php
+@@ -61,5 +61,7 @@ check::equal(gettype(preproc_constants::EXPR_OR), "integer", "preproc_constants.
+ check::equal(gettype(preproc_constants::EXPR_LAND), "boolean", "preproc_constants.EXPR_LAND has unexpected type");
+ check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants.EXPR_LOR has unexpected type");
+ check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/php5/preproc_constants_c_runme.php b/Examples/test-suite/php5/preproc_constants_c_runme.php
+index 1ea0195..d978fab 100644
+--- a/Examples/test-suite/php5/preproc_constants_c_runme.php
++++ b/Examples/test-suite/php5/preproc_constants_c_runme.php
+@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
+ check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/php5/preproc_constants_runme.php b/Examples/test-suite/php5/preproc_constants_runme.php
+index fb9ee4f..7527026 100644
+--- a/Examples/test-suite/php5/preproc_constants_runme.php
++++ b/Examples/test-suite/php5/preproc_constants_runme.php
+@@ -70,5 +70,7 @@ check::equal(gettype(preproc_constants::EXPR_LAND), "integer", "preproc_constant
+ check::equal(gettype(preproc_constants::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
+ 
+ check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/preproc_constants.i b/Examples/test-suite/preproc_constants.i
+index 3a999ad..16b44c9 100644
+--- a/Examples/test-suite/preproc_constants.i
++++ b/Examples/test-suite/preproc_constants.i
+@@ -87,6 +87,9 @@
+ #define EXPR_LOR         0xFF || 1
+ #define EXPR_CONDITIONAL true ? 2 : 2.2
+ 
++#define EXPR_WCHAR_MAX   (0x7fffffff + L'\0')
++#define EXPR_WCHAR_MIN   (-EXPR_WCHAR_MAX - 1)
++
+ #define EXPR_CHAR_COMPOUND_ADD 'A' + 12
+ #define EXPR_CHAR_COMPOUND_LSHIFT 'B' << 6
+ #define H_SUPPRESS_SCALING_MAGIC (('s'<<24) | ('u'<<16) | ('p'<<8) | 'p')
+diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
+index 2e92cd0..273dadb 100644
+--- a/Source/CParse/parser.y
++++ b/Source/CParse/parser.y
+@@ -194,7 +194,7 @@ int SWIG_cparse_template_reduce(int treduce) {
+  * ----------------------------------------------------------------------------- */
+ 
+ static int promote_type(int t) {
+-  if (t <= T_UCHAR || t == T_CHAR) return T_INT;
++  if (t <= T_UCHAR || t == T_CHAR || t == T_WCHAR) return T_INT;
+   return t;
+ }
+ 
+-- 
+2.9.5
+
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
             file://0001-Add-Node-7.x-aka-V8-5.2-support.patch \
             file://swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch \
             file://Python-Fix-new-GCC8-warnings-in-generated-code.patch \
+            file://0001-Fix-generated-code-for-constant-expressions-containi.patch \
            "
 SRC_URI[md5sum] = "82133dfa7bba75ff9ad98a7046be687c"
 SRC_URI[sha256sum] = "7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d"
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] swig: fix build with musl
  2019-02-28 14:27 [PATCH] swig: fix build with musl luca.boccassi
@ 2019-03-01 13:43 ` Burton, Ross
  2019-03-01 16:37   ` Luca Boccassi
  2019-03-01 16:36 ` [PATCH v2] " luca.boccassi
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 11+ messages in thread
From: Burton, Ross @ 2019-03-01 13:43 UTC (permalink / raw)
  To: luca.boccassi; +Cc: OE-core

On Thu, 28 Feb 2019 at 14:28, <luca.boccassi@gmail.com> wrote:
> +Origin: https://github.com/swig/swig/commit/90ba174fcea1618af57aa594199541d47a89b7f6
> +Applied-Upstream: yes

This should be:

Upstream-Status: Backport
[https://github.com/swig/swig/commit/90ba174fcea1618af57aa594199541d47a89b7f6]
Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>

Can you update the patch and repost?

Ross


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2] swig: fix build with musl
  2019-02-28 14:27 [PATCH] swig: fix build with musl luca.boccassi
  2019-03-01 13:43 ` Burton, Ross
@ 2019-03-01 16:36 ` luca.boccassi
  2019-03-02 18:12   ` Richard Purdie
  2019-03-04 11:11 ` [PATCH v3] " luca.boccassi
  2019-03-04 12:42 ` [PATCH v4] " luca.boccassi
  3 siblings, 1 reply; 11+ messages in thread
From: luca.boccassi @ 2019-03-01 16:36 UTC (permalink / raw)
  To: openembedded-core

From: Luca Boccassi <luca.boccassi@microsoft.com>

Building with musl currently fails. The fix has been committed
upstream, so backport it.
Note that it requires the recent change to use autoconf's do_configure
as it modifies a bison file which is used at make-dist time, so it
triggers an autoconf rerun which was not working previously due to the
custom do_configure step that was removed recently by:
a9b1f9eca963 ("swig: Fix configure failure")

Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
---
v2: fixed upstream metadata format in patch header

 ...de-for-constant-expressions-containi.patch | 179 ++++++++++++++++++
 meta/recipes-devtools/swig/swig_3.0.12.bb     |   1 +
 2 files changed, 180 insertions(+)
 create mode 100644 meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch

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 @@
+From 90ba174fcea1618af57aa594199541d47a89b7f6 Mon Sep 17 00:00:00 2001
+From: William S Fulton <wsf@fultondesigns.co.uk>
+Date: Sun, 17 Sep 2017 19:02:55 +0100
+Subject: [PATCH 1/2] Fix generated code for constant expressions containing
+ wchar_t L literals.
+
+Such as:
+  # define __WCHAR_MAX    (0x7fffffff + L'\0')
+
+Reported on swig-user mailing list.
+---
+ CHANGES.current                                         | 5 +++++
+ Examples/test-suite/csharp/preproc_constants_c_runme.cs | 3 ++-
+ Examples/test-suite/csharp/preproc_constants_runme.cs   | 2 ++
+ Examples/test-suite/d/preproc_constants_c_runme.1.d     | 2 ++
+ Examples/test-suite/d/preproc_constants_c_runme.2.d     | 2 ++
+ Examples/test-suite/d/preproc_constants_runme.1.d       | 2 ++
+ Examples/test-suite/d/preproc_constants_runme.2.d       | 2 ++
+ Examples/test-suite/php/preproc_constants_c_runme.php   | 2 ++
+ Examples/test-suite/php/preproc_constants_runme.php     | 2 ++
+ Examples/test-suite/php5/preproc_constants_c_runme.php  | 2 ++
+ Examples/test-suite/php5/preproc_constants_runme.php    | 2 ++
+ Examples/test-suite/preproc_constants.i                 | 3 +++
+ Source/CParse/parser.y                                  | 2 +-
+ 13 files changed, 29 insertions(+), 2 deletions(-)
+
+Upstream-Status: Backport
+[https://github.com/swig/swig/commit/90ba174fcea1618af57aa594199541d47a89b7f6]
+Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
+
+diff --git a/Examples/test-suite/csharp/preproc_constants_c_runme.cs b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
+index 76c684d..1c28e49 100644
+--- a/Examples/test-suite/csharp/preproc_constants_c_runme.cs
++++ b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
+@@ -61,7 +61,8 @@ public class runme {
+     assert( typeof(int) == preproc_constants_c.EXPR_LAND.GetType() );
+     assert( typeof(int) == preproc_constants_c.EXPR_LOR.GetType() );
+     assert( typeof(double) == preproc_constants_c.EXPR_CONDITIONAL.GetType() );
+-
++    assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MAX.GetType() );
++    assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MIN.GetType() );
+   }
+   static void assert(bool assertion) {
+     if (!assertion)
+diff --git a/Examples/test-suite/csharp/preproc_constants_runme.cs b/Examples/test-suite/csharp/preproc_constants_runme.cs
+index 9fae591..6b02e30 100644
+--- a/Examples/test-suite/csharp/preproc_constants_runme.cs
++++ b/Examples/test-suite/csharp/preproc_constants_runme.cs
+@@ -60,6 +60,8 @@ public class runme {
+     assert( typeof(bool) == preproc_constants.EXPR_LAND.GetType() );
+     assert( typeof(bool) == preproc_constants.EXPR_LOR.GetType() );
+     assert( typeof(double) == preproc_constants.EXPR_CONDITIONAL.GetType() );
++    assert( typeof(int) == preproc_constants.EXPR_WCHAR_MAX.GetType() );
++    assert( typeof(int) == preproc_constants.EXPR_WCHAR_MIN.GetType() );
+ 
+   }
+   static void assert(bool assertion) {
+diff --git a/Examples/test-suite/d/preproc_constants_c_runme.1.d b/Examples/test-suite/d/preproc_constants_c_runme.1.d
+index d846c71..2b349af 100644
+--- a/Examples/test-suite/d/preproc_constants_c_runme.1.d
++++ b/Examples/test-suite/d/preproc_constants_c_runme.1.d
+@@ -61,4 +61,6 @@ void main() {
+   static assert(is(int == typeof(EXPR_LAND())));
+   static assert(is(int == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/d/preproc_constants_c_runme.2.d b/Examples/test-suite/d/preproc_constants_c_runme.2.d
+index 9bdbb93..1bac525 100644
+--- a/Examples/test-suite/d/preproc_constants_c_runme.2.d
++++ b/Examples/test-suite/d/preproc_constants_c_runme.2.d
+@@ -61,4 +61,6 @@ void main() {
+   static assert(is(int == typeof(EXPR_LAND())));
+   static assert(is(int == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/d/preproc_constants_runme.1.d b/Examples/test-suite/d/preproc_constants_runme.1.d
+index 009405f..f743f48 100644
+--- a/Examples/test-suite/d/preproc_constants_runme.1.d
++++ b/Examples/test-suite/d/preproc_constants_runme.1.d
+@@ -60,4 +60,6 @@ void main() {
+   static assert(is(bool == typeof(EXPR_LAND())));
+   static assert(is(bool == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/d/preproc_constants_runme.2.d b/Examples/test-suite/d/preproc_constants_runme.2.d
+index 2d92ef0..0d96c37 100644
+--- a/Examples/test-suite/d/preproc_constants_runme.2.d
++++ b/Examples/test-suite/d/preproc_constants_runme.2.d
+@@ -60,4 +60,6 @@ void main() {
+   static assert(is(bool == typeof(EXPR_LAND())));
+   static assert(is(bool == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/php/preproc_constants_c_runme.php b/Examples/test-suite/php/preproc_constants_c_runme.php
+index af9b76e..e59fe18 100644
+--- a/Examples/test-suite/php/preproc_constants_c_runme.php
++++ b/Examples/test-suite/php/preproc_constants_c_runme.php
+@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
+ check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php
+index 5c9119b..8e117ea 100644
+--- a/Examples/test-suite/php/preproc_constants_runme.php
++++ b/Examples/test-suite/php/preproc_constants_runme.php
+@@ -61,5 +61,7 @@ check::equal(gettype(preproc_constants::EXPR_OR), "integer", "preproc_constants.
+ check::equal(gettype(preproc_constants::EXPR_LAND), "boolean", "preproc_constants.EXPR_LAND has unexpected type");
+ check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants.EXPR_LOR has unexpected type");
+ check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/php5/preproc_constants_c_runme.php b/Examples/test-suite/php5/preproc_constants_c_runme.php
+index 1ea0195..d978fab 100644
+--- a/Examples/test-suite/php5/preproc_constants_c_runme.php
++++ b/Examples/test-suite/php5/preproc_constants_c_runme.php
+@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
+ check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/php5/preproc_constants_runme.php b/Examples/test-suite/php5/preproc_constants_runme.php
+index fb9ee4f..7527026 100644
+--- a/Examples/test-suite/php5/preproc_constants_runme.php
++++ b/Examples/test-suite/php5/preproc_constants_runme.php
+@@ -70,5 +70,7 @@ check::equal(gettype(preproc_constants::EXPR_LAND), "integer", "preproc_constant
+ check::equal(gettype(preproc_constants::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
+ 
+ check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/preproc_constants.i b/Examples/test-suite/preproc_constants.i
+index 3a999ad..16b44c9 100644
+--- a/Examples/test-suite/preproc_constants.i
++++ b/Examples/test-suite/preproc_constants.i
+@@ -87,6 +87,9 @@
+ #define EXPR_LOR         0xFF || 1
+ #define EXPR_CONDITIONAL true ? 2 : 2.2
+ 
++#define EXPR_WCHAR_MAX   (0x7fffffff + L'\0')
++#define EXPR_WCHAR_MIN   (-EXPR_WCHAR_MAX - 1)
++
+ #define EXPR_CHAR_COMPOUND_ADD 'A' + 12
+ #define EXPR_CHAR_COMPOUND_LSHIFT 'B' << 6
+ #define H_SUPPRESS_SCALING_MAGIC (('s'<<24) | ('u'<<16) | ('p'<<8) | 'p')
+diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
+index 2e92cd0..273dadb 100644
+--- a/Source/CParse/parser.y
++++ b/Source/CParse/parser.y
+@@ -194,7 +194,7 @@ int SWIG_cparse_template_reduce(int treduce) {
+  * ----------------------------------------------------------------------------- */
+ 
+ static int promote_type(int t) {
+-  if (t <= T_UCHAR || t == T_CHAR) return T_INT;
++  if (t <= T_UCHAR || t == T_CHAR || t == T_WCHAR) return T_INT;
+   return t;
+ }
+ 
+-- 
+2.9.5
+
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
             file://0001-Add-Node-7.x-aka-V8-5.2-support.patch \
             file://swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch \
             file://Python-Fix-new-GCC8-warnings-in-generated-code.patch \
+            file://0001-Fix-generated-code-for-constant-expressions-containi.patch \
            "
 SRC_URI[md5sum] = "82133dfa7bba75ff9ad98a7046be687c"
 SRC_URI[sha256sum] = "7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d"
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] swig: fix build with musl
  2019-03-01 13:43 ` Burton, Ross
@ 2019-03-01 16:37   ` Luca Boccassi
  0 siblings, 0 replies; 11+ messages in thread
From: Luca Boccassi @ 2019-03-01 16:37 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 593 bytes --]

On Fri, 2019-03-01 at 13:43 +0000, Burton, Ross wrote:
> On Thu, 28 Feb 2019 at 14:28, <luca.boccassi@gmail.com> wrote:
> > +Origin: 
> > https://github.com/swig/swig/commit/90ba174fcea1618af57aa594199541d47a89b7f6
> > +Applied-Upstream: yes
> 
> This should be:
> 
> Upstream-Status: Backport
> [
> https://github.com/swig/swig/commit/90ba174fcea1618af57aa594199541d47a89b7f6
> ]
> Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
> 
> Can you update the patch and repost?
> 
> Ross

Certainly, sent v2, thanks for reviewing.

-- 
Kind regards,
Luca Boccassi

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 499 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2] swig: fix build with musl
  2019-03-01 16:36 ` [PATCH v2] " luca.boccassi
@ 2019-03-02 18:12   ` Richard Purdie
  2019-03-02 23:03     ` Richard Purdie
  0 siblings, 1 reply; 11+ messages in thread
From: Richard Purdie @ 2019-03-02 18:12 UTC (permalink / raw)
  To: luca.boccassi, openembedded-core

On Fri, 2019-03-01 at 16:36 +0000, luca.boccassi@gmail.com wrote:
> From: Luca Boccassi <luca.boccassi@microsoft.com>
> 
> Building with musl currently fails. The fix has been committed
> upstream, so backport it.
> Note that it requires the recent change to use autoconf's
> do_configure
> as it modifies a bison file which is used at make-dist time, so it
> triggers an autoconf rerun which was not working previously due to
> the
> custom do_configure step that was removed recently by:
> a9b1f9eca963 ("swig: Fix configure failure")
> 
> Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
> ---
> v2: fixed upstream metadata format in patch header

Fails in testing:

https://autobuilder.yoctoproject.org/typhoon/#/builders/15/builds/585

May need a bison-native DEPENDS?

Cheers,

Richard



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2] swig: fix build with musl
  2019-03-02 18:12   ` Richard Purdie
@ 2019-03-02 23:03     ` Richard Purdie
  2019-03-04 11:13       ` Luca Boccassi
  0 siblings, 1 reply; 11+ messages in thread
From: Richard Purdie @ 2019-03-02 23:03 UTC (permalink / raw)
  To: luca.boccassi, openembedded-core

On Sat, 2019-03-02 at 18:12 +0000, Richard Purdie wrote:
> On Fri, 2019-03-01 at 16:36 +0000, luca.boccassi@gmail.com wrote:
> > From: Luca Boccassi <luca.boccassi@microsoft.com>
> > 
> > Building with musl currently fails. The fix has been committed
> > upstream, so backport it.
> > Note that it requires the recent change to use autoconf's
> > do_configure
> > as it modifies a bison file which is used at make-dist time, so it
> > triggers an autoconf rerun which was not working previously due to
> > the
> > custom do_configure step that was removed recently by:
> > a9b1f9eca963 ("swig: Fix configure failure")
> > 
> > Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
> > ---
> > v2: fixed upstream metadata format in patch header
> 
> Fails in testing:
> 
> https://autobuilder.yoctoproject.org/typhoon/#/builders/15/builds/585
> 
> May need a bison-native DEPENDS?

I tried that, it fails with other problems :(

For example:
https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/353

Cheers,

Richard



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v3] swig: fix build with musl
  2019-02-28 14:27 [PATCH] swig: fix build with musl luca.boccassi
  2019-03-01 13:43 ` Burton, Ross
  2019-03-01 16:36 ` [PATCH v2] " luca.boccassi
@ 2019-03-04 11:11 ` luca.boccassi
  2019-03-04 11:18   ` Burton, Ross
  2019-03-04 12:42 ` [PATCH v4] " luca.boccassi
  3 siblings, 1 reply; 11+ messages in thread
From: luca.boccassi @ 2019-03-04 11:11 UTC (permalink / raw)
  To: openembedded-core

From: Luca Boccassi <luca.boccassi@microsoft.com>

Building with musl currently fails. The fix has been committed
upstream, so backport it.
Note that it requires running yacc again to regenerate the parser file,
so a bison-native dependency is needed. Also the upstream's configure
step creates the directory where the parser file is generated at
make-dist time, and for some reason running through bitbake does not
create it, so do it manually. All of this can be reverted once a new
swig version that includes the fix is released and rebased onto.

Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
---
 meta/recipes-devtools/swig/swig.inc           |   8 +-
 ...de-for-constant-expressions-containi.patch | 179 ++++++++++++++++++
 meta/recipes-devtools/swig/swig_3.0.12.bb     |   1 +
 3 files changed, 187 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch

diff --git a/meta/recipes-devtools/swig/swig.inc b/meta/recipes-devtools/swig/swig.inc
index f7de40866a..2f33b07c19 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 \
 
 SECTION = "devel"
 
-DEPENDS = "libpcre"
+DEPENDS = "libpcre bison-native"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
 
@@ -42,6 +42,12 @@ EXTRA_AUTORECONF += "-I Tools/config"
 
 BBCLASSEXTEND = "native nativesdk"
 
+# necessary together with bison dependency until a new upstream version after
+# 3.0.12 includes 0001-Fix-generated-code-for-constant-expressions-containi.patch
+do_configure_append() {
+    mkdir -p ${WORKDIR}/build/Source/CParse
+}
+
 do_install_append_class-nativesdk() {
     cd ${D}${bindir}
     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 @@
+From 90ba174fcea1618af57aa594199541d47a89b7f6 Mon Sep 17 00:00:00 2001
+From: William S Fulton <wsf@fultondesigns.co.uk>
+Date: Sun, 17 Sep 2017 19:02:55 +0100
+Subject: [PATCH 1/2] Fix generated code for constant expressions containing
+ wchar_t L literals.
+
+Such as:
+  # define __WCHAR_MAX    (0x7fffffff + L'\0')
+
+Reported on swig-user mailing list.
+---
+ CHANGES.current                                         | 5 +++++
+ Examples/test-suite/csharp/preproc_constants_c_runme.cs | 3 ++-
+ Examples/test-suite/csharp/preproc_constants_runme.cs   | 2 ++
+ Examples/test-suite/d/preproc_constants_c_runme.1.d     | 2 ++
+ Examples/test-suite/d/preproc_constants_c_runme.2.d     | 2 ++
+ Examples/test-suite/d/preproc_constants_runme.1.d       | 2 ++
+ Examples/test-suite/d/preproc_constants_runme.2.d       | 2 ++
+ Examples/test-suite/php/preproc_constants_c_runme.php   | 2 ++
+ Examples/test-suite/php/preproc_constants_runme.php     | 2 ++
+ Examples/test-suite/php5/preproc_constants_c_runme.php  | 2 ++
+ Examples/test-suite/php5/preproc_constants_runme.php    | 2 ++
+ Examples/test-suite/preproc_constants.i                 | 3 +++
+ Source/CParse/parser.y                                  | 2 +-
+ 13 files changed, 29 insertions(+), 2 deletions(-)
+
+Upstream-Status: Backport
+[https://github.com/swig/swig/commit/90ba174fcea1618af57aa594199541d47a89b7f6]
+Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
+
+diff --git a/Examples/test-suite/csharp/preproc_constants_c_runme.cs b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
+index 76c684d..1c28e49 100644
+--- a/Examples/test-suite/csharp/preproc_constants_c_runme.cs
++++ b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
+@@ -61,7 +61,8 @@ public class runme {
+     assert( typeof(int) == preproc_constants_c.EXPR_LAND.GetType() );
+     assert( typeof(int) == preproc_constants_c.EXPR_LOR.GetType() );
+     assert( typeof(double) == preproc_constants_c.EXPR_CONDITIONAL.GetType() );
+-
++    assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MAX.GetType() );
++    assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MIN.GetType() );
+   }
+   static void assert(bool assertion) {
+     if (!assertion)
+diff --git a/Examples/test-suite/csharp/preproc_constants_runme.cs b/Examples/test-suite/csharp/preproc_constants_runme.cs
+index 9fae591..6b02e30 100644
+--- a/Examples/test-suite/csharp/preproc_constants_runme.cs
++++ b/Examples/test-suite/csharp/preproc_constants_runme.cs
+@@ -60,6 +60,8 @@ public class runme {
+     assert( typeof(bool) == preproc_constants.EXPR_LAND.GetType() );
+     assert( typeof(bool) == preproc_constants.EXPR_LOR.GetType() );
+     assert( typeof(double) == preproc_constants.EXPR_CONDITIONAL.GetType() );
++    assert( typeof(int) == preproc_constants.EXPR_WCHAR_MAX.GetType() );
++    assert( typeof(int) == preproc_constants.EXPR_WCHAR_MIN.GetType() );
+ 
+   }
+   static void assert(bool assertion) {
+diff --git a/Examples/test-suite/d/preproc_constants_c_runme.1.d b/Examples/test-suite/d/preproc_constants_c_runme.1.d
+index d846c71..2b349af 100644
+--- a/Examples/test-suite/d/preproc_constants_c_runme.1.d
++++ b/Examples/test-suite/d/preproc_constants_c_runme.1.d
+@@ -61,4 +61,6 @@ void main() {
+   static assert(is(int == typeof(EXPR_LAND())));
+   static assert(is(int == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/d/preproc_constants_c_runme.2.d b/Examples/test-suite/d/preproc_constants_c_runme.2.d
+index 9bdbb93..1bac525 100644
+--- a/Examples/test-suite/d/preproc_constants_c_runme.2.d
++++ b/Examples/test-suite/d/preproc_constants_c_runme.2.d
+@@ -61,4 +61,6 @@ void main() {
+   static assert(is(int == typeof(EXPR_LAND())));
+   static assert(is(int == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/d/preproc_constants_runme.1.d b/Examples/test-suite/d/preproc_constants_runme.1.d
+index 009405f..f743f48 100644
+--- a/Examples/test-suite/d/preproc_constants_runme.1.d
++++ b/Examples/test-suite/d/preproc_constants_runme.1.d
+@@ -60,4 +60,6 @@ void main() {
+   static assert(is(bool == typeof(EXPR_LAND())));
+   static assert(is(bool == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/d/preproc_constants_runme.2.d b/Examples/test-suite/d/preproc_constants_runme.2.d
+index 2d92ef0..0d96c37 100644
+--- a/Examples/test-suite/d/preproc_constants_runme.2.d
++++ b/Examples/test-suite/d/preproc_constants_runme.2.d
+@@ -60,4 +60,6 @@ void main() {
+   static assert(is(bool == typeof(EXPR_LAND())));
+   static assert(is(bool == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/php/preproc_constants_c_runme.php b/Examples/test-suite/php/preproc_constants_c_runme.php
+index af9b76e..e59fe18 100644
+--- a/Examples/test-suite/php/preproc_constants_c_runme.php
++++ b/Examples/test-suite/php/preproc_constants_c_runme.php
+@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
+ check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php
+index 5c9119b..8e117ea 100644
+--- a/Examples/test-suite/php/preproc_constants_runme.php
++++ b/Examples/test-suite/php/preproc_constants_runme.php
+@@ -61,5 +61,7 @@ check::equal(gettype(preproc_constants::EXPR_OR), "integer", "preproc_constants.
+ check::equal(gettype(preproc_constants::EXPR_LAND), "boolean", "preproc_constants.EXPR_LAND has unexpected type");
+ check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants.EXPR_LOR has unexpected type");
+ check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/php5/preproc_constants_c_runme.php b/Examples/test-suite/php5/preproc_constants_c_runme.php
+index 1ea0195..d978fab 100644
+--- a/Examples/test-suite/php5/preproc_constants_c_runme.php
++++ b/Examples/test-suite/php5/preproc_constants_c_runme.php
+@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
+ check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/php5/preproc_constants_runme.php b/Examples/test-suite/php5/preproc_constants_runme.php
+index fb9ee4f..7527026 100644
+--- a/Examples/test-suite/php5/preproc_constants_runme.php
++++ b/Examples/test-suite/php5/preproc_constants_runme.php
+@@ -70,5 +70,7 @@ check::equal(gettype(preproc_constants::EXPR_LAND), "integer", "preproc_constant
+ check::equal(gettype(preproc_constants::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
+ 
+ check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/preproc_constants.i b/Examples/test-suite/preproc_constants.i
+index 3a999ad..16b44c9 100644
+--- a/Examples/test-suite/preproc_constants.i
++++ b/Examples/test-suite/preproc_constants.i
+@@ -87,6 +87,9 @@
+ #define EXPR_LOR         0xFF || 1
+ #define EXPR_CONDITIONAL true ? 2 : 2.2
+ 
++#define EXPR_WCHAR_MAX   (0x7fffffff + L'\0')
++#define EXPR_WCHAR_MIN   (-EXPR_WCHAR_MAX - 1)
++
+ #define EXPR_CHAR_COMPOUND_ADD 'A' + 12
+ #define EXPR_CHAR_COMPOUND_LSHIFT 'B' << 6
+ #define H_SUPPRESS_SCALING_MAGIC (('s'<<24) | ('u'<<16) | ('p'<<8) | 'p')
+diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
+index 2e92cd0..273dadb 100644
+--- a/Source/CParse/parser.y
++++ b/Source/CParse/parser.y
+@@ -194,7 +194,7 @@ int SWIG_cparse_template_reduce(int treduce) {
+  * ----------------------------------------------------------------------------- */
+ 
+ static int promote_type(int t) {
+-  if (t <= T_UCHAR || t == T_CHAR) return T_INT;
++  if (t <= T_UCHAR || t == T_CHAR || t == T_WCHAR) return T_INT;
+   return t;
+ }
+ 
+-- 
+2.9.5
+
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
             file://0001-Add-Node-7.x-aka-V8-5.2-support.patch \
             file://swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch \
             file://Python-Fix-new-GCC8-warnings-in-generated-code.patch \
+            file://0001-Fix-generated-code-for-constant-expressions-containi.patch \
            "
 SRC_URI[md5sum] = "82133dfa7bba75ff9ad98a7046be687c"
 SRC_URI[sha256sum] = "7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d"
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v2] swig: fix build with musl
  2019-03-02 23:03     ` Richard Purdie
@ 2019-03-04 11:13       ` Luca Boccassi
  0 siblings, 0 replies; 11+ messages in thread
From: Luca Boccassi @ 2019-03-04 11:13 UTC (permalink / raw)
  To: Richard Purdie, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 1879 bytes --]

On Sat, 2019-03-02 at 23:03 +0000, Richard Purdie wrote:
> On Sat, 2019-03-02 at 18:12 +0000, Richard Purdie wrote:
> > On Fri, 2019-03-01 at 16:36 +0000, luca.boccassi@gmail.com wrote:
> > > From: Luca Boccassi <luca.boccassi@microsoft.com>
> > > 
> > > Building with musl currently fails. The fix has been committed
> > > upstream, so backport it.
> > > Note that it requires the recent change to use autoconf's
> > > do_configure
> > > as it modifies a bison file which is used at make-dist time, so
> > > it
> > > triggers an autoconf rerun which was not working previously due
> > > to
> > > the
> > > custom do_configure step that was removed recently by:
> > > a9b1f9eca963 ("swig: Fix configure failure")
> > > 
> > > Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
> > > ---
> > > v2: fixed upstream metadata format in patch header
> > 
> > Fails in testing:
> > 
> > https://autobuilder.yoctoproject.org/typhoon/#/builders/15/builds/585
> > 
> > May need a bison-native DEPENDS?

It does require bison, and I feel very silly as I have added it to the
internal build and forgot to include it in the patch! Sorry :-)

> I tried that, it fails with other problems :(
> 
> For example:
> https://autobuilder.yoctoproject.org/typhoon/#/builders/65/builds/353
> 
> Cheers,
> 
> Richard

I thought that would have been fixed by:

95c78d2166d3 ("swig: Fix configure failure")

Upstream's configure step creates that directory that is missing and
causes the build failure showed by the logs. I thought avoiding a
custom do_configure would fix that, but evidently it doesn't!

I've sent a v3 with the bison dependency and with a workaround I've
successfully used in our internal build, which creates the directory
manually in a do_configure_append block.

Thanks for the review!

-- 
Kind regards,
Luca Boccassi

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 499 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v3] swig: fix build with musl
  2019-03-04 11:11 ` [PATCH v3] " luca.boccassi
@ 2019-03-04 11:18   ` Burton, Ross
  2019-03-04 12:42     ` Luca Boccassi
  0 siblings, 1 reply; 11+ messages in thread
From: Burton, Ross @ 2019-03-04 11:18 UTC (permalink / raw)
  To: luca.boccassi; +Cc: OE-core

On Mon, 4 Mar 2019 at 11:12, <luca.boccassi@gmail.com> wrote:
> +    mkdir -p ${WORKDIR}/build/Source/CParse

Use ${B} instead of ${WORKDIR}/build.

Ross


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v4] swig: fix build with musl
  2019-02-28 14:27 [PATCH] swig: fix build with musl luca.boccassi
                   ` (2 preceding siblings ...)
  2019-03-04 11:11 ` [PATCH v3] " luca.boccassi
@ 2019-03-04 12:42 ` luca.boccassi
  3 siblings, 0 replies; 11+ messages in thread
From: luca.boccassi @ 2019-03-04 12:42 UTC (permalink / raw)
  To: openembedded-core

From: Luca Boccassi <luca.boccassi@microsoft.com>

Building with musl currently fails. The fix has been committed
upstream, so backport it.
Note that it requires running yacc again to regenerate the parser file,
so a bison-native dependency is needed. Also the upstream's configure
step creates the directory where the parser file is generated at
make-dist time, and for some reason running through bitbake does not
create it, so do it manually. All of this can be reverted once a new
swig version that includes the fix is released and rebased onto.

Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
---
v2: fixed patch header
v3: added bison-native dependency and autoconf workaround
v4: switched from ${WORKDIR}/build to ${B}

 meta/recipes-devtools/swig/swig.inc           |   8 +-
 ...de-for-constant-expressions-containi.patch | 179 ++++++++++++++++++
 meta/recipes-devtools/swig/swig_3.0.12.bb     |   1 +
 3 files changed, 187 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch

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 \
 
 SECTION = "devel"
 
-DEPENDS = "libpcre"
+DEPENDS = "libpcre bison-native"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
 
@@ -42,6 +42,12 @@ EXTRA_AUTORECONF += "-I Tools/config"
 
 BBCLASSEXTEND = "native nativesdk"
 
+# necessary together with bison dependency until a new upstream version after
+# 3.0.12 includes 0001-Fix-generated-code-for-constant-expressions-containi.patch
+do_configure_append() {
+    mkdir -p ${B}/Source/CParse
+}
+
 do_install_append_class-nativesdk() {
     cd ${D}${bindir}
     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 @@
+From 90ba174fcea1618af57aa594199541d47a89b7f6 Mon Sep 17 00:00:00 2001
+From: William S Fulton <wsf@fultondesigns.co.uk>
+Date: Sun, 17 Sep 2017 19:02:55 +0100
+Subject: [PATCH 1/2] Fix generated code for constant expressions containing
+ wchar_t L literals.
+
+Such as:
+  # define __WCHAR_MAX    (0x7fffffff + L'\0')
+
+Reported on swig-user mailing list.
+---
+ CHANGES.current                                         | 5 +++++
+ Examples/test-suite/csharp/preproc_constants_c_runme.cs | 3 ++-
+ Examples/test-suite/csharp/preproc_constants_runme.cs   | 2 ++
+ Examples/test-suite/d/preproc_constants_c_runme.1.d     | 2 ++
+ Examples/test-suite/d/preproc_constants_c_runme.2.d     | 2 ++
+ Examples/test-suite/d/preproc_constants_runme.1.d       | 2 ++
+ Examples/test-suite/d/preproc_constants_runme.2.d       | 2 ++
+ Examples/test-suite/php/preproc_constants_c_runme.php   | 2 ++
+ Examples/test-suite/php/preproc_constants_runme.php     | 2 ++
+ Examples/test-suite/php5/preproc_constants_c_runme.php  | 2 ++
+ Examples/test-suite/php5/preproc_constants_runme.php    | 2 ++
+ Examples/test-suite/preproc_constants.i                 | 3 +++
+ Source/CParse/parser.y                                  | 2 +-
+ 13 files changed, 29 insertions(+), 2 deletions(-)
+
+Upstream-Status: Backport
+[https://github.com/swig/swig/commit/90ba174fcea1618af57aa594199541d47a89b7f6]
+Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
+
+diff --git a/Examples/test-suite/csharp/preproc_constants_c_runme.cs b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
+index 76c684d..1c28e49 100644
+--- a/Examples/test-suite/csharp/preproc_constants_c_runme.cs
++++ b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
+@@ -61,7 +61,8 @@ public class runme {
+     assert( typeof(int) == preproc_constants_c.EXPR_LAND.GetType() );
+     assert( typeof(int) == preproc_constants_c.EXPR_LOR.GetType() );
+     assert( typeof(double) == preproc_constants_c.EXPR_CONDITIONAL.GetType() );
+-
++    assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MAX.GetType() );
++    assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MIN.GetType() );
+   }
+   static void assert(bool assertion) {
+     if (!assertion)
+diff --git a/Examples/test-suite/csharp/preproc_constants_runme.cs b/Examples/test-suite/csharp/preproc_constants_runme.cs
+index 9fae591..6b02e30 100644
+--- a/Examples/test-suite/csharp/preproc_constants_runme.cs
++++ b/Examples/test-suite/csharp/preproc_constants_runme.cs
+@@ -60,6 +60,8 @@ public class runme {
+     assert( typeof(bool) == preproc_constants.EXPR_LAND.GetType() );
+     assert( typeof(bool) == preproc_constants.EXPR_LOR.GetType() );
+     assert( typeof(double) == preproc_constants.EXPR_CONDITIONAL.GetType() );
++    assert( typeof(int) == preproc_constants.EXPR_WCHAR_MAX.GetType() );
++    assert( typeof(int) == preproc_constants.EXPR_WCHAR_MIN.GetType() );
+ 
+   }
+   static void assert(bool assertion) {
+diff --git a/Examples/test-suite/d/preproc_constants_c_runme.1.d b/Examples/test-suite/d/preproc_constants_c_runme.1.d
+index d846c71..2b349af 100644
+--- a/Examples/test-suite/d/preproc_constants_c_runme.1.d
++++ b/Examples/test-suite/d/preproc_constants_c_runme.1.d
+@@ -61,4 +61,6 @@ void main() {
+   static assert(is(int == typeof(EXPR_LAND())));
+   static assert(is(int == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/d/preproc_constants_c_runme.2.d b/Examples/test-suite/d/preproc_constants_c_runme.2.d
+index 9bdbb93..1bac525 100644
+--- a/Examples/test-suite/d/preproc_constants_c_runme.2.d
++++ b/Examples/test-suite/d/preproc_constants_c_runme.2.d
+@@ -61,4 +61,6 @@ void main() {
+   static assert(is(int == typeof(EXPR_LAND())));
+   static assert(is(int == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/d/preproc_constants_runme.1.d b/Examples/test-suite/d/preproc_constants_runme.1.d
+index 009405f..f743f48 100644
+--- a/Examples/test-suite/d/preproc_constants_runme.1.d
++++ b/Examples/test-suite/d/preproc_constants_runme.1.d
+@@ -60,4 +60,6 @@ void main() {
+   static assert(is(bool == typeof(EXPR_LAND())));
+   static assert(is(bool == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/d/preproc_constants_runme.2.d b/Examples/test-suite/d/preproc_constants_runme.2.d
+index 2d92ef0..0d96c37 100644
+--- a/Examples/test-suite/d/preproc_constants_runme.2.d
++++ b/Examples/test-suite/d/preproc_constants_runme.2.d
+@@ -60,4 +60,6 @@ void main() {
+   static assert(is(bool == typeof(EXPR_LAND())));
+   static assert(is(bool == typeof(EXPR_LOR())));
+   static assert(is(double == typeof(EXPR_CONDITIONAL())));
++  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/php/preproc_constants_c_runme.php b/Examples/test-suite/php/preproc_constants_c_runme.php
+index af9b76e..e59fe18 100644
+--- a/Examples/test-suite/php/preproc_constants_c_runme.php
++++ b/Examples/test-suite/php/preproc_constants_c_runme.php
+@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
+ check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php
+index 5c9119b..8e117ea 100644
+--- a/Examples/test-suite/php/preproc_constants_runme.php
++++ b/Examples/test-suite/php/preproc_constants_runme.php
+@@ -61,5 +61,7 @@ check::equal(gettype(preproc_constants::EXPR_OR), "integer", "preproc_constants.
+ check::equal(gettype(preproc_constants::EXPR_LAND), "boolean", "preproc_constants.EXPR_LAND has unexpected type");
+ check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants.EXPR_LOR has unexpected type");
+ check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/php5/preproc_constants_c_runme.php b/Examples/test-suite/php5/preproc_constants_c_runme.php
+index 1ea0195..d978fab 100644
+--- a/Examples/test-suite/php5/preproc_constants_c_runme.php
++++ b/Examples/test-suite/php5/preproc_constants_c_runme.php
+@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
+ check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/php5/preproc_constants_runme.php b/Examples/test-suite/php5/preproc_constants_runme.php
+index fb9ee4f..7527026 100644
+--- a/Examples/test-suite/php5/preproc_constants_runme.php
++++ b/Examples/test-suite/php5/preproc_constants_runme.php
+@@ -70,5 +70,7 @@ check::equal(gettype(preproc_constants::EXPR_LAND), "integer", "preproc_constant
+ check::equal(gettype(preproc_constants::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
+ 
+ check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+ 
+ ?>
+diff --git a/Examples/test-suite/preproc_constants.i b/Examples/test-suite/preproc_constants.i
+index 3a999ad..16b44c9 100644
+--- a/Examples/test-suite/preproc_constants.i
++++ b/Examples/test-suite/preproc_constants.i
+@@ -87,6 +87,9 @@
+ #define EXPR_LOR         0xFF || 1
+ #define EXPR_CONDITIONAL true ? 2 : 2.2
+ 
++#define EXPR_WCHAR_MAX   (0x7fffffff + L'\0')
++#define EXPR_WCHAR_MIN   (-EXPR_WCHAR_MAX - 1)
++
+ #define EXPR_CHAR_COMPOUND_ADD 'A' + 12
+ #define EXPR_CHAR_COMPOUND_LSHIFT 'B' << 6
+ #define H_SUPPRESS_SCALING_MAGIC (('s'<<24) | ('u'<<16) | ('p'<<8) | 'p')
+diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
+index 2e92cd0..273dadb 100644
+--- a/Source/CParse/parser.y
++++ b/Source/CParse/parser.y
+@@ -194,7 +194,7 @@ int SWIG_cparse_template_reduce(int treduce) {
+  * ----------------------------------------------------------------------------- */
+ 
+ static int promote_type(int t) {
+-  if (t <= T_UCHAR || t == T_CHAR) return T_INT;
++  if (t <= T_UCHAR || t == T_CHAR || t == T_WCHAR) return T_INT;
+   return t;
+ }
+ 
+-- 
+2.9.5
+
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
             file://0001-Add-Node-7.x-aka-V8-5.2-support.patch \
             file://swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch \
             file://Python-Fix-new-GCC8-warnings-in-generated-code.patch \
+            file://0001-Fix-generated-code-for-constant-expressions-containi.patch \
            "
 SRC_URI[md5sum] = "82133dfa7bba75ff9ad98a7046be687c"
 SRC_URI[sha256sum] = "7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d"
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v3] swig: fix build with musl
  2019-03-04 11:18   ` Burton, Ross
@ 2019-03-04 12:42     ` Luca Boccassi
  0 siblings, 0 replies; 11+ messages in thread
From: Luca Boccassi @ 2019-03-04 12:42 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 290 bytes --]

On Mon, 2019-03-04 at 11:18 +0000, Burton, Ross wrote:
> On Mon, 4 Mar 2019 at 11:12, <luca.boccassi@gmail.com> wrote:
> > +    mkdir -p ${WORKDIR}/build/Source/CParse
> 
> Use ${B} instead of ${WORKDIR}/build.
> 
> Ross

Thanks, please see v4

-- 
Kind regards,
Luca Boccassi

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 499 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2019-03-04 12:42 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-28 14:27 [PATCH] swig: fix build with musl luca.boccassi
2019-03-01 13:43 ` Burton, Ross
2019-03-01 16:37   ` Luca Boccassi
2019-03-01 16:36 ` [PATCH v2] " luca.boccassi
2019-03-02 18:12   ` Richard Purdie
2019-03-02 23:03     ` Richard Purdie
2019-03-04 11:13       ` Luca Boccassi
2019-03-04 11:11 ` [PATCH v3] " luca.boccassi
2019-03-04 11:18   ` Burton, Ross
2019-03-04 12:42     ` Luca Boccassi
2019-03-04 12:42 ` [PATCH v4] " luca.boccassi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.