* [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; 5+ 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] 5+ 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; 5+ 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] 5+ 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; 5+ 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] 5+ 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; 5+ 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] 5+ messages in thread
* [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 0 siblings, 1 reply; 5+ 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] 5+ messages in thread
* [PATCH 1/1] guile: workaround ice ssa corruption while DEBUG_BUILD 2014-08-11 2:23 [PATCH V2 0/1] " Hongxu Jia @ 2014-08-11 2:23 ` Hongxu Jia 0 siblings, 0 replies; 5+ 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] 5+ messages in thread
end of thread, other threads:[~2014-08-11 2:23 UTC | newest] Thread overview: 5+ 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 -- strict thread matches above, loose matches on Subject: below -- 2014-08-11 2:23 [PATCH V2 0/1] " Hongxu Jia 2014-08-11 2:23 ` [PATCH 1/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