All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/1] guile: workaround ice ssa corruption while DEBUG_BUILD
@ 2014-08-10 13:47 Hongxu Jia
  2014-08-10 13:47 ` [PATCH 1/1] " Hongxu Jia
  0 siblings, 1 reply; 4+ messages in thread
From: Hongxu Jia @ 2014-08-10 13:47 UTC (permalink / raw)
  To: openembedded-core; +Cc: saul.wold

Test steps:
1. vim local.conf
...
MACHINE = "qemux86-64"
DEBUG_BUILD = "1"
...

2. bitbake guile

//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      | 52 ++++++++++++++++++++++
 meta/recipes-devtools/guile/guile_2.0.11.bb        |  8 +++-
 2 files changed, 59 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-devtools/guile/files/workaround-ice-ssa-corruption.patch

-- 
1.9.1



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

* [PATCH 1/1] guile: workaround ice ssa corruption while DEBUG_BUILD
  2014-08-10 13:47 [PATCH 0/1] guile: workaround ice ssa corruption while DEBUG_BUILD Hongxu Jia
@ 2014-08-10 13:47 ` Hongxu Jia
  2014-08-10 14:21   ` Martin Jansa
  0 siblings, 1 reply; 4+ messages in thread
From: Hongxu Jia @ 2014-08-10 13:47 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 add boundary value check to workaround it.

Also fix qa issue while DEBUG_BUILD:
...
WARNING: QA Issue: guile rdepends on ncurses-libncurses but its not a build dependency? [build-deps]
WARNING: QA Issue: guile rdepends on readline but its not a build dependency? [build-deps]
...

[YOCTO #6411]

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 .../files/workaround-ice-ssa-corruption.patch      | 52 ++++++++++++++++++++++
 meta/recipes-devtools/guile/guile_2.0.11.bb        |  8 +++-
 2 files changed, 59 insertions(+), 1 deletion(-)
 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..1363d63
--- /dev/null
+++ b/meta/recipes-devtools/guile/files/workaround-ice-ssa-corruption.patch
@@ -0,0 +1,52 @@
+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 | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c
+index 5057fb0..8d31214 100644
+--- a/libguile/vm-i-system.c
++++ b/libguile/vm-i-system.c
+@@ -625,10 +625,13 @@ 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];
++    if (nshuf > 0)
++    {
++      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..e380bed 100644
--- a/meta/recipes-devtools/guile/guile_2.0.11.bb
+++ b/meta/recipes-devtools/guile/guile_2.0.11.bb
@@ -21,6 +21,9 @@ SRC_URI = "${GNU_MIRROR}/guile/guile-${PV}.tar.xz \
            file://arm_endianness.patch \
            "
 
+SRC_URI_append_class-target = " \
+           ${@base_conditional( "DEBUG_BUILD", "1", " file://workaround-ice-ssa-corruption.patch", "", d )} \
+           "
 #           file://debian/0001-Change-guile-to-guile-X.Y-for-info-pages.patch
 #           file://opensuse/guile-turn-off-gc-test.patch 
 
@@ -35,7 +38,10 @@ DEPENDS = "libunistring bdwgc gmp libtool libffi"
 # add guile-native only to the target recipe's DEPENDS
 DEPENDS_append_class-target = " guile-native libatomics-ops"
 
-RDEPENDS_${PN}_append_libc-glibc_class-target = "glibc-gconv-iso8859-1"
+RDEPENDS_${PN}_append_class-target = " \
+             ${@base_conditional( "DEBUG_BUILD", "1", " readline ncurses", "", d )} \
+             "
+RDEPENDS_${PN}_append_libc-glibc_class-target = " glibc-gconv-iso8859-1"
 
 EXTRA_OECONF += "${@['--without-libltdl-prefix --without-libgmp-prefix --without-libreadline-prefix', ''][bb.data.inherits_class('native',d)]}"
 
-- 
1.9.1



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

* Re: [PATCH 1/1] guile: workaround ice ssa corruption while DEBUG_BUILD
  2014-08-10 13:47 ` [PATCH 1/1] " Hongxu Jia
@ 2014-08-10 14:21   ` Martin Jansa
  2014-08-11  1:23     ` Hongxu Jia
  0 siblings, 1 reply; 4+ messages in thread
From: Martin Jansa @ 2014-08-10 14:21 UTC (permalink / raw)
  To: Hongxu Jia; +Cc: saul.wold, openembedded-core

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

On Sun, Aug 10, 2014 at 09:47:12PM +0800, Hongxu Jia wrote:
> 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 add boundary value check to workaround it.
> 
> Also fix qa issue while DEBUG_BUILD:
> ...
> WARNING: QA Issue: guile rdepends on ncurses-libncurses but its not a build dependency? [build-deps]
> WARNING: QA Issue: guile rdepends on readline but its not a build dependency? [build-deps]
> ...
> 
> [YOCTO #6411]
> 
> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> ---
>  .../files/workaround-ice-ssa-corruption.patch      | 52 ++++++++++++++++++++++
>  meta/recipes-devtools/guile/guile_2.0.11.bb        |  8 +++-
>  2 files changed, 59 insertions(+), 1 deletion(-)
>  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..1363d63
> --- /dev/null
> +++ b/meta/recipes-devtools/guile/files/workaround-ice-ssa-corruption.patch
> @@ -0,0 +1,52 @@
> +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 | 11 +++++++----
> + 1 file changed, 7 insertions(+), 4 deletions(-)
> +
> +diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c
> +index 5057fb0..8d31214 100644
> +--- a/libguile/vm-i-system.c
> ++++ b/libguile/vm-i-system.c
> +@@ -625,10 +625,13 @@ 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];
> ++    if (nshuf > 0)
> ++    {
> ++      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..e380bed 100644
> --- a/meta/recipes-devtools/guile/guile_2.0.11.bb
> +++ b/meta/recipes-devtools/guile/guile_2.0.11.bb
> @@ -21,6 +21,9 @@ SRC_URI = "${GNU_MIRROR}/guile/guile-${PV}.tar.xz \
>             file://arm_endianness.patch \
>             "
>  
> +SRC_URI_append_class-target = " \
> +           ${@base_conditional( "DEBUG_BUILD", "1", " file://workaround-ice-ssa-corruption.patch", "", d )} \
> +           "
>  #           file://debian/0001-Change-guile-to-guile-X.Y-for-info-pages.patch
>  #           file://opensuse/guile-turn-off-gc-test.patch 
>  
> @@ -35,7 +38,10 @@ DEPENDS = "libunistring bdwgc gmp libtool libffi"
>  # add guile-native only to the target recipe's DEPENDS
>  DEPENDS_append_class-target = " guile-native libatomics-ops"
>  
> -RDEPENDS_${PN}_append_libc-glibc_class-target = "glibc-gconv-iso8859-1"
> +RDEPENDS_${PN}_append_class-target = " \
> +             ${@base_conditional( "DEBUG_BUILD", "1", " readline ncurses", "", d )} \
> +             "

This seems to be needed even withotu DEBUG_BUILD, see
http://lists.openembedded.org/pipermail/openembedded-core/2014-August/095585.html
and IMHO it's build time dependncy not runtime.

> +RDEPENDS_${PN}_append_libc-glibc_class-target = " glibc-gconv-iso8859-1"
>  
>  EXTRA_OECONF += "${@['--without-libltdl-prefix --without-libgmp-prefix --without-libreadline-prefix', ''][bb.data.inherits_class('native',d)]}"
>  
> -- 
> 1.9.1
> 
> -- 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]

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

* Re: [PATCH 1/1] guile: workaround ice ssa corruption while DEBUG_BUILD
  2014-08-10 14:21   ` Martin Jansa
@ 2014-08-11  1:23     ` Hongxu Jia
  0 siblings, 0 replies; 4+ messages in thread
From: Hongxu Jia @ 2014-08-11  1:23 UTC (permalink / raw)
  To: Martin Jansa; +Cc: saul.wold, openembedded-core

Ok, I will rebase to your patch since yours merged. V2 incomming.

//Hongxu


On 08/10/2014 10:21 PM, Martin Jansa wrote:
> On Sun, Aug 10, 2014 at 09:47:12PM +0800, Hongxu Jia wrote:
>> 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 add boundary value check to workaround it.
>>
>> Also fix qa issue while DEBUG_BUILD:
>> ...
>> WARNING: QA Issue: guile rdepends on ncurses-libncurses but its not a build dependency? [build-deps]
>> WARNING: QA Issue: guile rdepends on readline but its not a build dependency? [build-deps]
>> ...
>>
>> [YOCTO #6411]
>>
>> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
>> ---
>>   .../files/workaround-ice-ssa-corruption.patch      | 52 ++++++++++++++++++++++
>>   meta/recipes-devtools/guile/guile_2.0.11.bb        |  8 +++-
>>   2 files changed, 59 insertions(+), 1 deletion(-)
>>   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..1363d63
>> --- /dev/null
>> +++ b/meta/recipes-devtools/guile/files/workaround-ice-ssa-corruption.patch
>> @@ -0,0 +1,52 @@
>> +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 | 11 +++++++----
>> + 1 file changed, 7 insertions(+), 4 deletions(-)
>> +
>> +diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c
>> +index 5057fb0..8d31214 100644
>> +--- a/libguile/vm-i-system.c
>> ++++ b/libguile/vm-i-system.c
>> +@@ -625,10 +625,13 @@ 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];
>> ++    if (nshuf > 0)
>> ++    {
>> ++      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..e380bed 100644
>> --- a/meta/recipes-devtools/guile/guile_2.0.11.bb
>> +++ b/meta/recipes-devtools/guile/guile_2.0.11.bb
>> @@ -21,6 +21,9 @@ SRC_URI = "${GNU_MIRROR}/guile/guile-${PV}.tar.xz \
>>              file://arm_endianness.patch \
>>              "
>>   
>> +SRC_URI_append_class-target = " \
>> +           ${@base_conditional( "DEBUG_BUILD", "1", " file://workaround-ice-ssa-corruption.patch", "", d )} \
>> +           "
>>   #           file://debian/0001-Change-guile-to-guile-X.Y-for-info-pages.patch
>>   #           file://opensuse/guile-turn-off-gc-test.patch
>>   
>> @@ -35,7 +38,10 @@ DEPENDS = "libunistring bdwgc gmp libtool libffi"
>>   # add guile-native only to the target recipe's DEPENDS
>>   DEPENDS_append_class-target = " guile-native libatomics-ops"
>>   
>> -RDEPENDS_${PN}_append_libc-glibc_class-target = "glibc-gconv-iso8859-1"
>> +RDEPENDS_${PN}_append_class-target = " \
>> +             ${@base_conditional( "DEBUG_BUILD", "1", " readline ncurses", "", d )} \
>> +             "
> This seems to be needed even withotu DEBUG_BUILD, see
> http://lists.openembedded.org/pipermail/openembedded-core/2014-August/095585.html
> and IMHO it's build time dependncy not runtime.
>
>> +RDEPENDS_${PN}_append_libc-glibc_class-target = " glibc-gconv-iso8859-1"
>>   
>>   EXTRA_OECONF += "${@['--without-libltdl-prefix --without-libgmp-prefix --without-libreadline-prefix', ''][bb.data.inherits_class('native',d)]}"
>>   
>> -- 
>> 1.9.1
>>
>> -- 
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core



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

end of thread, other threads:[~2014-08-11  1:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-10 13:47 [PATCH 0/1] guile: workaround ice ssa corruption while DEBUG_BUILD Hongxu Jia
2014-08-10 13:47 ` [PATCH 1/1] " Hongxu Jia
2014-08-10 14:21   ` Martin Jansa
2014-08-11  1:23     ` Hongxu Jia

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.