gen_wctype segfaults with gcc 4
Michael Troß
michael at tross.org
Wed Dec 7 09:48:49 UTC 2005
Hi list,
gen_wctype segfaults on my system when optimized with -O2. It does work
without optimization, even -O1 does not cause the segfault.
Problem is in newopt, at gen_wctype.c:865,
memcpy(tbl->ti + i * blocksize, ti[uniqblock[i]], blocksize);
What may be wrong here?
uClibc 0.9.28
gcc 4.0.2
GNU gdb 6.3
(gdb) set args en_US
(gdb) r
Starting program:
/work/T2/t2/src.uclibc.interview.20051207.020038.10127.michael/uClibc-0.9.28/extra/locale/gen_wctype
typecount[ 0] = 95084 C_unclassified
typecount[ 1] = 88837 C_alpha_nonupper_nonlower
typecount[ 2] = 756 C_alpha_lower
typecount[ 3] = 4 C_alpha_upper_lower
typecount[ 4] = 745 C_alpha_upper
typecount[ 5] = 10 C_digit
typecount[ 6] = 11088 C_punct
typecount[ 7] = 2 C_graph
typecount[ 8] = 0 C_print_space_nonblank
typecount[ 9] = 15 C_print_space_blank
typecount[10] = 0 C_space_nonblank_noncntrl
typecount[11] = 0 C_space_blank_noncntrl
typecount[12] = 6 C_cntrl_space_nonblank
typecount[13] = 1 C_cntrl_space_blank
typecount[14] = 60 C_cntrl_nonspace
typecount[15] = 0 empty_slot
optimizing is* table..
ishift 1 tshift 0 size 49441
ishift 2 tshift 0 size 25561
ishift 3 tshift 0 size 14365
ishift 4 tshift 0 size 9845
ishift 5 tshift 0 size 8453
ishift 6 tshift 0 size 7909
ishift 1 tshift 1 size 25302
ishift 2 tshift 1 size 13560
ishift 3 tshift 1 size 8228
ishift 4 tshift 1 size 5996
ishift 5 tshift 1 size 4956
ishift 6 tshift 1 size 4796
ishift 1 tshift 2 size 13746
ishift 2 tshift 2 size 8008
ishift 3 tshift 2 size 5356
ishift 4 tshift 2 size 4068
ishift 5 tshift 2 size 3604
ishift 1 tshift 3 size 8642
ishift 2 tshift 3 size 5780
ishift 3 tshift 3 size 4368
ishift 4 tshift 3 size 3752
ishift 5 tshift 3 size 3704
ishift 1 tshift 4 size 7070
ishift 2 tshift 4 size 5596
ishift 3 tshift 4 size 4904
ishift 4 tshift 4 size 4688
ishift 1 tshift 5 size 7078
ishift 2 tshift 5 size 6348
ishift 3 tshift 5 size 6048
ishift 4 tshift 5 size 5984
ishift 1 tshift 6 size 7222
ishift 2 tshift 6 size 6880
ishift 3 tshift 6 size 6752
ishift 4 tshift 6 size 6752
ishift 1 tshift 7 size 8016
ishift 2 tshift 7 size 7856
ishift 3 tshift 7 size 7808
ishift 1 tshift 8 size 10488
ishift 2 tshift 8 size 10416
ishift 3 tshift 8 size 10416
ishift 1 tshift 9 size 14472
ishift 2 tshift 9 size 14448
ishift 1 tshift 10 size 20560
ishift 2 tshift 10 size 20556
smallest = 3604
setting ishift 5 tshift 2
Program received signal SIGSEGV, Segmentation fault.
0x08049176 in newopt (
ut=0xbfd928ac
"ìëììçä²³±ªª°\225\206\206\211ììììäÏÛϪª«©\206\206\207\206\222\222\222\222\222\222\222\232\237s\222\222\222\222\222¥\231 €\216\223\234¡\215[\213\237\235\222\222\230\222\222\222\222\222+\222\217",
usize=Variable "usize" is not available.
)
at gen_wctype.c:865
865 memcpy(tbl->ti + i * blocksize,
ti[uniqblock[i]], blocksize);
(gdb) bt
#0 0x08049176 in newopt (
ut=0xbfd928ac
"ìëììçä²³±ªª°\225\206\206\211ììììäÏÛϪª«©\206\206\207\206\222\222\222\222\222\222\222\232\237s\222\222\222\222\222¥\231 €\216\223\234¡\215[\213\237\235\222\222\230\222\222\222\222\222+\222\217",
usize=Variable "usize" is not available.
)
at gen_wctype.c:865
#1 0x08049084 in newopt (
ut=0xbfdf2d5c "îîîîÞÌÌîîîîîîîîîifffffffUUUUUfffF", 'D' <repeats 12
times>, "dff&", '"' <repeats 12 times>, "bfæ", 'î' <repeats 16 times>,
"fffffaffff&ffaff", 'D' <repeats 11 times>, "dDDD$", '"' <repeats 11
times>, "b\"\"\"\"", '$' <repeats 28 times>, "ABBBBBBB\022", '$'
<repeats 23 times>, "DBB\"A$$DBD\022D"..., usize=Variable "usize" is not
available.
)
at gen_wctype.c:871
#2 0x08049917 in main (argc=134531928, argv=0xbfe232b4) at gen_wctype.c:505
(gdb)
Michael
More information about the uClibc
mailing list