[Uim-bugs] [Bug 16477] uim-module-manager segv on IA64
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Wed Jun 25 00:49:07 PDT 2008
http://bugs.freedesktop.org/show_bug.cgi?id=16477
--- Comment #5 from Masahito Omote <omote at utyuuzin.net> 2008-06-25 00:49:06 PST ---
(In reply to comment #4)
> (In reply to comment #3)
> > And found that compiling uim-scm-sigscheme.c with -O0 instead of -O2 should be
> > a workaround for GCC 4.3 on IA64. Does it work for you, Omote san?
>
First workaround does not work well on Debian.
make -C ../uim uim-module-manager && \
LIBUIM_SYSTEM_SCM_FILES=/home/omote/uim/uim-1.5.1/sigscheme/lib
LIBUIM_SCM_FILES=/home/omote/uim/uim-1.5.1/scm
LIBUIM_PLUGIN_LIB_DIR=/home/omote/uim/uim-1.5.1/uim/.libs
../uim/uim-module-manager \
--path ../scm --register "skk" "tcode" "trycode" "tutcode"
"byeoru" "latin" "elatin" "pyload" "hangul" "viqr" "ipa-x-sampa" "look"
make[2]: Entering directory `/home/omote/uim/uim-1.5.1/uim'
make[2]: `uim-module-manager' is up to date.
make[2]: Leaving directory `/home/omote/uim/uim-1.5.1/uim'
lt-uim-module-manager: ../sigscheme/src/storage-gc.c:640: within_heapp:
Assertion `!((scm_uintobj_t)(((obj) & ~((((scm_uintobj_t)1 << ((0) + (1))) -
((scm_uintobj_t)1 << (0))) | (((scm_uintobj_t)1 << (((1 + 0)) + (2))) -
((scm_uintobj_t)1 << ((1 + 0))))))) % sizeof(ScmCell))' failed.
/bin/sh: line 2: 18010 Aborted
LIBUIM_SYSTEM_SCM_FILES=/home/omote/uim/uim-1.5.1/sigscheme/lib
LIBUIM_SCM_FILES=/home/omote/uim/uim-1.5.1/scm
LIBUIM_PLUGIN_LIB_DIR=/home/omote/uim/uim-1.5.1/uim/.libs
../uim/uim-module-manager --path ../scm --register "skk" "tcode" "trycode"
"tutcode" "byeoru" "latin" "elatin" "pyload" "hangul" "viqr" "ipa-x-sampa"
"look"
make[1]: *** [installed-modules.scm] Error 134
make[1]: Leaving directory `/home/omote/uim/uim-1.5.1/scm'
make: *** [all-recursive] Error 1
merulo%
> Another way to avoid GCC 4.3's optimization problem on IA64 is just assign
> something in init_buf[] in read_symbol(). For example, following change in
> sigscheme/src/read.c will stop the segfault even with -O2 using GCC 4.3.1 on
> SUSE.
>
>
> --- read.c.orig 2008-03-01 23:30:43.000000000 +0900
> +++ read.c 2008-06-25 10:50:46.000000000 +0900
> @@ -918,6 +918,7 @@
> int err;
> ScmLBuf(char) lbuf;
> char init_buf[SCM_INITIAL_SYMBOL_BUF_SIZE];
> + init_buf[0] = '\0';
>
> CDBG((SCM_DBG_PARSER, "read_symbol"));
>
This workaround works out well. I take this workaround. Thank you.
--
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the uim-bugs
mailing list