Bug 12981

Summary: uim build error in FreeBSD 8-current/7-prerelease
Product: UIM Reporter: Takuya Harada <tharada>
Component: libuimAssignee: uim-bugs
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: high    
Version: unspecified   
Hardware: x86 (IA32)   
OS: FreeBSD   
Whiteboard:
i915 platform: i915 features:
Attachments: patch to align symbol name

Description Takuya Harada 2007-10-28 03:56:40 UTC
Uim has been built with the latest ports described below.

#cd /usr/ports/textproc/uim/
#make
...

...
gmake[1]: Leaving directory `/data/jails/buildfarm.develop.localnet/var/usr/ports/textproc/uim/work/uim-1.4.1/uim'

cd /data/jails/buildfarm.develop.localnet/var//usr/ports/textproc/uim/work/uim-1.4.1/scm && gmake

gmake  -C ../uim uim-module-manager && \

	LIBUIM_SCM_FILES=/data/jails/buildfarm.develop.localnet/var/usr/ports/textproc/uim/work/uim-1.4.1/scm LIBUIM_PLUGIN_LIB_DIR=/data/jails/buildfarm.develop.localnet/var/usr/ports/textproc/uim/work/uim-1.4.1/uim/.libs ../uim/uim-module-manager \

	    --path ../scm --register     "skk" "tcode" "trycode" "tutcode" "byeoru" "latin"  "pyload" "hangul" "viqr" "ipa-x-sampa" 

gmake[1]: Entering directory `/data/jails/buildfarm.develop.localnet/var/usr/ports/textproc/uim/work/uim-1.4.1/uim'

gmake[1]: `uim-module-manager' is up to date.

gmake[1]: Leaving directory `/data/jails/buildfarm.develop.localnet/var/usr/ports/textproc/uim/work/uim-1.4.1/uim'

failed to require uim-module-manager.scm: Invalid argument

gmake: *** [installed-modules.scm] Error 1

*** Error code 2



Stop in /usr/ports/textproc/uim.


Same error in FreeBSD 7-prerelease has been reported in
"http://pc11.2ch.net/test/read.cgi/linux/1135968795/881" (in Japanese).
Comment 1 IWATA Ray 2007-10-28 22:59:32 UTC
I can reproduce it.

$ gcc -v
Using built-in specs.
Target: i386-undermydesk-freebsd
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 4.2.1 20070719  [FreeBSD]
# cd /usr/ports/textproc
# make CFLAGS="-g3 -ggdb -O0"
...
Abort trap (core dumped)
gmake: *** [installed-modules.scm] Error 134
*** Error code 2

Stop in /usr/ports/textproc/uim.
# cd work/uim-1.4.1/scm
# env LIBUIM_SCM_FILES=/usr/home/iwata/tmp/uim/work/uim-1.4.1/scm LIBUIM_PLUGIN_LIB_DIR=/usr/home/iwata/tmp/uim/work/uim-1.4.1/uim/.libs libtool --mode=execute gdb ../uim/uim-module-manager
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd"...
(gdb) r --path ../scm --register     "skk" "tcode" "trycode" "tutcode" "byeoru" "latin" "pyload" "hangul" "viqr" "ipa-x-sampa"
Starting program: /usr/ports/textproc/uim/work/uim-1.4.1/uim/.libs/uim-module-manager --path ../scm --register     "skk" "tcode" "trycode" "tutcode" "byeoru" "latin" "pyload" "hangul" "viqr" "ipa-x-sampa"
Assertion failed: ((!((uintptr_t)((name)) & (((scm_uintobj_t)1 << ((0) + ((((SCM_MISC_SYMBOL_LV) == 1) ? (1 + 2) : ((SCM_MISC_SYMBOL_LV) == 2) ? ((1 + 2) + 3) : (((1 + 2) + 3) + 2))))) - ((scm_uintobj_t)1 << (0)))))), function scm_make_symbol, file ../sigscheme/src/storage.c, line 354.

Program received signal SIGABRT, Aborted.
0x28293e97 in kill () from /lib/libc.so.7
(gdb) bt
#0  0x28293e97 in kill () from /lib/libc.so.7
#1  0x28293df6 in raise () from /lib/libc.so.7
#2  0x28291fca in abort () from /lib/libc.so.7
#3  0x282776e6 in __assert () from /lib/libc.so.7
#4  0x2809744e in scm_make_symbol (name=0x2831709c "use", val=94) at storage.c:354
#5  0x28098ef1 in scm_intern (name=0x280b3472 "use") at symbol.c:94
#6  0x2809f031 in scm_register_func (name=0x280b3472 "use",
    c_func=0x2809eee0 <scm_s_use>, type=SCM_SYNTAX_FIXED_1) at module.c:253
#7  0x2809f00f in scm_register_funcs (table=0x280b8980) at module.c:243
#8  0x2809f169 in scm_initialize_internal (dummy=0x0) at sigscheme.c:278
#9  0x280bba28 in GCROOTS_call_with_gc_ready_stack (ctx=0x28309140,
    proc=0x2809f0b0 <scm_initialize_internal>, arg=0x0) at gcroots.c:104
#10 0x28097cee in scm_call_with_gc_ready_stack (
    func=0x2809f0b0 <scm_initialize_internal>, arg=0x0) at storage-gc.c:263
#11 0x2809f093 in scm_initialize (storage_conf=0xbfbfe9c4) at sigscheme.c:213
#12 0x280ad27f in uim_scm_init (verbose_level=0x0) at uim-scm.c:623
#13 0x280932bc in uim_init_scm () at uim.c:720
#14 0x280933ae in uim_init () at uim.c:775
#15 0x08049025 in main (argc=14, argv=0xbfbfeb24) at uim-module-manager.c:181
Comment 2 Etsushi Kato 2007-11-03 12:32:07 UTC
FreeBSD 7-prerelease's strdup() doesn't seem to return an aligned address for same cases.  Please try the attached patch which uses scm_align_str() for symbol names.
Comment 3 Etsushi Kato 2007-11-03 12:33:09 UTC
Created attachment 12334 [details] [review]
patch to align symbol name
Comment 4 Takuya Harada 2007-11-04 03:09:35 UTC
(In reply to comment #3)
> Created an attachment (id=12334) [details]
> patch to align symbol name
> 
I applied this patch created on Nov. 3rd, 2007. No build error have not occurred.
I am now using new uim. It seems to work file.
Thank you very much.


Comment 5 Etsushi Kato 2007-11-04 04:39:26 UTC
(In reply to comment #4)

> I applied this patch created on Nov. 3rd, 2007.
[..]
> It seems to work file.

Thanks for the verification.  Now these changes are in sigscheme-trunk and sigscheme-0.7.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.