Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH V2 0/1] guile: workaround ice ssa corruption while DEBUG_BUILD
@ 2014-08-11  2:23 Hongxu Jia
  2014-08-11  2:23 ` [PATCH 1/1] " Hongxu Jia
  2014-08-19  6:21 ` [PATCH V2 0/1] " Hongxu Jia
  0 siblings, 2 replies; 3+ messages in thread
From: Hongxu Jia @ 2014-08-11  2:23 UTC (permalink / raw)
  To: openembedded-core; +Cc: saul.wold

Changed in V2:

- Remove the RDEPENDS part to make sure the fix doesn't conflict with
  Martin's patch
  http://lists.openembedded.org/pipermail/openembedded-core/2014-August/095585.html

- Tweak the patch to make sure the logic of code is not changed by the
  workaround.

//Hongxu

The following changes since commit 870bb8d35547b8313b3a487d7e8b914ab9470e64:

  local.conf.sample.extended: fix example for EXTRA_USERS_PARAMS (2014-08-04 17:38:24 +0100)

are available in the git repository at:

  git://git.pokylinux.org/poky-contrib hongxu/fix-guile-ice
  http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=hongxu/fix-guile-ice

Hongxu Jia (1):
  guile: workaround ice ssa corruption while DEBUG_BUILD

 .../files/workaround-ice-ssa-corruption.patch      | 60 ++++++++++++++++++++++
 meta/recipes-devtools/guile/guile_2.0.11.bb        |  1 +
 2 files changed, 61 insertions(+)
 create mode 100644 meta/recipes-devtools/guile/files/workaround-ice-ssa-corruption.patch

-- 
1.9.1



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

* [PATCH 1/1] guile: workaround ice ssa corruption while DEBUG_BUILD
  2014-08-11  2:23 [PATCH V2 0/1] guile: workaround ice ssa corruption while DEBUG_BUILD Hongxu Jia
@ 2014-08-11  2:23 ` Hongxu Jia
  2014-08-19  6:21 ` [PATCH V2 0/1] " Hongxu Jia
  1 sibling, 0 replies; 3+ messages in thread
From: Hongxu Jia @ 2014-08-11  2:23 UTC (permalink / raw)
  To: openembedded-core; +Cc: saul.wold

Add:
MACHINE = "qemux86-64"
DEBUG_BUILD = "1"
to local.conf and there was a ssa corruption to build guile:
..
Unable to coalesce ssa_names 48 and 3476 which are marked as MUST COALESCE.
sp_48(ab) and  sp_3476(ab)
guile-2.0.11/libguile/vm-engine.c: In function 'vm_debug_engine':
guile-2.0.11/libguile/vm.c:673:19: internal compiler error: SSA corruption
 #define VM_NAME   vm_debug_engine
                   ^
guile-2.0.11/libguile/vm-engine.c:39:1: note: in expansion of macro 'VM_NAME'
 VM_NAME (SCM vm, SCM program, SCM *argv, int nargs)
 ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
...

Tweak libguile/vm-i-system.c to check the value of nshuf to workaround it.
The tweak didn't change previous logic.

[YOCTO #6411]

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 .../files/workaround-ice-ssa-corruption.patch      | 60 ++++++++++++++++++++++
 meta/recipes-devtools/guile/guile_2.0.11.bb        |  1 +
 2 files changed, 61 insertions(+)
 create mode 100644 meta/recipes-devtools/guile/files/workaround-ice-ssa-corruption.patch

diff --git a/meta/recipes-devtools/guile/files/workaround-ice-ssa-corruption.patch b/meta/recipes-devtools/guile/files/workaround-ice-ssa-corruption.patch
new file mode 100644
index 0000000..6c34838
--- /dev/null
+++ b/meta/recipes-devtools/guile/files/workaround-ice-ssa-corruption.patch
@@ -0,0 +1,60 @@
+libguile/vm-i-system.c: workaround ice ssa corruption while compiling with option -g -O
+
+While compiling with option -g -O, there was a ssa corruption:
+..
+Unable to coalesce ssa_names 48 and 3476 which are marked as MUST COALESCE.
+sp_48(ab) and  sp_3476(ab)
+guile-2.0.11/libguile/vm-engine.c: In function 'vm_debug_engine':
+guile-2.0.11/libguile/vm.c:673:19: internal compiler error: SSA corruption
+ #define VM_NAME   vm_debug_engine
+                   ^
+guile-2.0.11/libguile/vm-engine.c:39:1: note: in expansion of macro 'VM_NAME'
+ VM_NAME (SCM vm, SCM program, SCM *argv, int nargs)
+ ^
+Please submit a full bug report,
+with preprocessed source if appropriate.
+See <http://gcc.gnu.org/bugs.html> for instructions.
+...
+
+Tweak libguile/vm-i-system.c to add boundary value check to workaround it.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ libguile/vm-i-system.c | 20 ++++++++++++++++----
+ 1 file changed, 16 insertions(+), 4 deletions(-)
+
+diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c
+--- a/libguile/vm-i-system.c
++++ b/libguile/vm-i-system.c
+@@ -625,10 +625,22 @@ VM_DEFINE_INSTRUCTION (47, bind_optionals_shuffle, "bind-optionals/shuffle", 6,
+   /* now shuffle up, from walk to ntotal */
+   {
+     scm_t_ptrdiff nshuf = sp - walk + 1, i;
+-    sp = (fp - 1) + ntotal + nshuf;
+-    CHECK_OVERFLOW ();
+-    for (i = 0; i < nshuf; i++)
+-      sp[-i] = walk[nshuf-i-1];
++    /* check the value of nshuf to workaround ice ssa corruption */
++    /* while compiling with -O -g */
++    if (nshuf > 0)
++    {
++      sp = (fp - 1) + ntotal + nshuf;
++      CHECK_OVERFLOW ();
++      for (i = 0; i < nshuf; i++)
++        sp[-i] = walk[nshuf-i-1];
++    }
++    else
++    {
++      sp = (fp - 1) + ntotal + nshuf;
++      CHECK_OVERFLOW ();
++      for (i = 0; i < nshuf; i++)
++        sp[-i] = walk[nshuf-i-1];
++    }
+   }
+   /* and fill optionals & keyword args with SCM_UNDEFINED */
+   while (walk <= (fp - 1) + ntotal)
+-- 
+1.9.1
+
diff --git a/meta/recipes-devtools/guile/guile_2.0.11.bb b/meta/recipes-devtools/guile/guile_2.0.11.bb
index d19460a..f1b255b 100644
--- a/meta/recipes-devtools/guile/guile_2.0.11.bb
+++ b/meta/recipes-devtools/guile/guile_2.0.11.bb
@@ -19,6 +19,7 @@ SRC_URI = "${GNU_MIRROR}/guile/guile-${PV}.tar.xz \
            file://opensuse/guile-64bit.patch \
            file://guile_2.0.6_fix_sed_error.patch \
            file://arm_endianness.patch \
+           file://workaround-ice-ssa-corruption.patch \
            "
 
 #           file://debian/0001-Change-guile-to-guile-X.Y-for-info-pages.patch
-- 
1.9.1



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

* Re: [PATCH V2 0/1] guile: workaround ice ssa corruption while DEBUG_BUILD
  2014-08-11  2:23 [PATCH V2 0/1] guile: workaround ice ssa corruption while DEBUG_BUILD Hongxu Jia
  2014-08-11  2:23 ` [PATCH 1/1] " Hongxu Jia
@ 2014-08-19  6:21 ` Hongxu Jia
  1 sibling, 0 replies; 3+ messages in thread
From: Hongxu Jia @ 2014-08-19  6:21 UTC (permalink / raw)
  To: openembedded-core; +Cc: saul.wold

Ping

//Hongxu

On 08/11/2014 10:23 AM, Hongxu Jia wrote:
> Changed in V2:
>
> - Remove the RDEPENDS part to make sure the fix doesn't conflict with
>    Martin's patch
>    http://lists.openembedded.org/pipermail/openembedded-core/2014-August/095585.html
>
> - Tweak the patch to make sure the logic of code is not changed by the
>    workaround.
>
> //Hongxu
>
> The following changes since commit 870bb8d35547b8313b3a487d7e8b914ab9470e64:
>
>    local.conf.sample.extended: fix example for EXTRA_USERS_PARAMS (2014-08-04 17:38:24 +0100)
>
> are available in the git repository at:
>
>    git://git.pokylinux.org/poky-contrib hongxu/fix-guile-ice
>    http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=hongxu/fix-guile-ice
>
> Hongxu Jia (1):
>    guile: workaround ice ssa corruption while DEBUG_BUILD
>
>   .../files/workaround-ice-ssa-corruption.patch      | 60 ++++++++++++++++++++++
>   meta/recipes-devtools/guile/guile_2.0.11.bb        |  1 +
>   2 files changed, 61 insertions(+)
>   create mode 100644 meta/recipes-devtools/guile/files/workaround-ice-ssa-corruption.patch
>



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

end of thread, other threads:[~2014-08-19  6:21 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-11  2:23 [PATCH V2 0/1] guile: workaround ice ssa corruption while DEBUG_BUILD Hongxu Jia
2014-08-11  2:23 ` [PATCH 1/1] " Hongxu Jia
2014-08-19  6:21 ` [PATCH V2 0/1] " Hongxu Jia

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox