use fputws_unlocked

MirkoVogt lists at nanl.de
Tue May 24 12:34:01 UTC 2011


Hello,

while working with libuClibc-0.9.30.1.so I came along freezes in stdio
which led to stack dumps as follows:

#0 0x4115458c in nanosleep () from /lib/libc.so.0
#1 0x41051e5c in nanosleep () from /lib/libpthread.so.0
#2 0x410514f8 in __pthread_acquire () from /lib/libpthread.so.0
#3 0x4104f360 in pthread_mutex_lock () from /lib/libpthread.so.0
#4 0x4118d900 in pthread_mutex_lock () from /lib/libc.so.0
#5 0x41170b20 in fputws () from /lib/libc.so.0
#6 0x4116f668 in _vfwprintf_internal () from /lib/libc.so.0
#7 0x4116ecfc in vswprintf () from /lib/libc.so.0

While browsing through the code I found the following:

erdgeist at ubuntu:~/base-wrt.git/branches/backfire/build_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/uClibc-0.9.30.1/libc/stdio$
grep OUTPUT _vfprintf.c

1215:#define OUTPUT(F,S) fputs_unlocked(S,F)
1248:#define OUTPUT(F,S) fputws(S,F)

So the second macro should read fputws_unlocked, too. I've verified 
that the freezes don't appear anymore after applying the following 
simple patch: http://pastebin.com/MiC6X0VX

Regards,

erdgeist


More information about the uClibc mailing list