[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