From: Martin Jansa <martin.jansa@gmail.com>
To: Hongxu Jia <hongxu.jia@windriver.com>
Cc: saul.wold@intel.com, openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 1/1] guile: workaround ice ssa corruption while DEBUG_BUILD
Date: Sun, 10 Aug 2014 16:21:46 +0200 [thread overview]
Message-ID: <20140810142146.GR14848@jama> (raw)
In-Reply-To: <af818f3281c55ad5c06332310cf1e5940217c06c.1407678222.git.hongxu.jia@windriver.com>
[-- 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 --]
next prev parent reply other threads:[~2014-08-10 14:21 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140810142146.GR14848@jama \
--to=martin.jansa@gmail.com \
--cc=hongxu.jia@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=saul.wold@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.