[uClibc]Status of POSIX Thread Support in uClibc
David Chan
dchan at controlproductsinc.com
Fri Aug 23 22:35:00 UTC 2002
> > I'm planning on using some simple POSIX threading in an application
> > designed to run on uClinux/ColdFire using the uClibc library. I
noticed
> > on the "Supported Applications List" that the comment next to
Mozilla
> > mentioned support for POSIX threads. How good is the support so far?
Is
> > the implementation full enough to support something like a
multithreaded
> > web server?
> Sure. It works fine for me and all the multi-threaded test
> apps I have run... If you have problems, report them to
> the mailing list so we can get things fixed,
I just finally got around to replacing uClinux-20020701's uClibc version
(0.9.11-uc0) with the latest uClibc version (0.9.14). I compiled it
without a 'HAVE_THREADS' option and tested it -- everything worked. I
noticed while I was setting up my Config file that the
extra/Configs/Config.m68k file didn't have 'HAVE_THREADS = true' as a
potential option. However, Erik said that threads were working for
uClinux/ColdFire, so I copied the line from Config.i386 and recompiled.
While uClibc was compiling, I got this series of assembler errors:
m68k-elf-gcc -Wall -Wall -Wstrict-prototypes -Wno-trigraphs
-fno-strict-aliasing -fno-builtin -nostdinc -m5307 -I../../include
-iwithprefix include -I. -D_LIBC -Wa,--bitwise-or
-I/work/gp/uClinux-dist/linux-2.4.x/include -DNDEBUG -D_LIBC_REENTRANT
-I../../libpthread/linuxthreads/sysdeps/unix/sysv/linux
-I../../libpthread/linuxthreads/sysdeps/pthread
-I../../libpthread/linuxthreads/sysdeps/unix/sysv
-I../../libpthread/linuxthreads/sysdeps/unix/unix
-I../../libpthread/linuxthreads/sysdeps/m68k
-I../../libpthread/linuxthreads/sysdeps -I../../libc/sysdeps/linux/m68k
-c pt-machine.c -o pt-machine.o
/tmp/cc4pyQ75.s: Assembler messages:
/tmp/cc4pyQ75.s:12: Error: invalid instruction for this architecture;
needs 68000 or higher -- statement `tas (%a0)' ignored
/tmp/cc4pyQ75.s:12: Error: operands mismatch -- statement `sne -1(%a6)'
ignored
/tmp/cc4pyQ75.s:36: Error: invalid instruction for this architecture;
needs 68020 or higher -- statement `casl %d2,%d0,(%a0)' ignored
/tmp/cc4pyQ75.s:36: Error: operands mismatch -- statement `seq -1(%a6)'
ignored
make[4]: *** [pt-machine.o] Error 1
make[4]: Leaving directory
`/work/gp/uClinux-dist/uClibc/libpthread/linuxthreads'
How exactly do I get this working? I'm kind of stumped at this point and
desperately hoping that uClibc's thread implementation really does
support the ColdFire.
Thanks,
David Chan
More information about the uClibc
mailing list