guile: workaround ice ssa corruption while DEBUG_BUILD
cover guile: workaround ice ssa corruption while DEBUG_BUILD
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
Signature · 1 line
1.9.1
PATCH 1/1 guile: workaround ice ssa corruption while DEBUG_BUILD
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]
--- .../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
meta/recipes-devtools/guile/files/workaround-ice-ssa-corruption.patch new file +52 -0
@@ -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 <[email protected]> +--- + 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 +
meta/recipes-devtools/guile/guile_2.0.11.bb +7 -1
@@ -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)]}"
Signature · 1 line
1.9.1
Quoted 109 lines · Hongxu Jia
Add:
MACHINE = "qemux86-64"DEBUG_BUILD= "1"
to local.conf and there was a ssa corruption to build guile:
..
Unable to coalescessa_names48 and 3476 which are marked as MUST COALESCE.sp_48(ab)andsp_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.cto 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 <[email protected]>--- .../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.patchmeta/recipes-devtools/guile/files/workaround-ice-ssa-corruption.patch new file +52
-0@@ -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 <[email protected]> +--- + 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 +meta/recipes-devtools/guile/guile_2.0.11.bb +3
-0@@ -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
meta/recipes-devtools/guile/guile_2.0.11.bb DEPENDS = "libunistring bdwgc gmp libtool libffi" · line 43
Quoted 7 lines
meta/recipes-devtools/guile/guile_2.0.11.bb +3
-1@@ -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.
Quoted 12 lines
meta/recipes-devtools/guile/guile_2.0.11.bb +1
-0+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)]}"Signature · 7 lines
1.9.1 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]
Ok, I will rebase to your patch since yours merged. V2 incomming.
//Hongxu
Quoted 133 lines · Martin Jansa
Quoted 109 lines · Hongxu Jia
Add:
MACHINE = "qemux86-64"DEBUG_BUILD= "1"
to local.conf and there was a ssa corruption to build guile:
..
Unable to coalescessa_names48 and 3476 which are marked as MUST COALESCE.sp_48(ab)andsp_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.cto 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 <[email protected]>--- .../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.patchmeta/recipes-devtools/guile/files/workaround-ice-ssa-corruption.patch new file +52
-0@@ -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 <[email protected]> +--- + 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 +meta/recipes-devtools/guile/guile_2.0.11.bb +3
-0@@ -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.patchmeta/recipes-devtools/guile/guile_2.0.11.bb DEPENDS = "libunistring bdwgc gmp libtool libffi" · line 43
Quoted 7 lines
meta/recipes-devtools/guile/guile_2.0.11.bb +3
-1@@ -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.Quoted 12 lines
meta/recipes-devtools/guile/guile_2.0.11.bb +1
-0+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)]}"Signature · 7 lines
1.9.1 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core