Jeffi Edward.J wrote:
The scenario is as follows... Actually I'm building a huge application using
Diab toolchain . The target RTOS (cant reveal name :-(... ) required kernel
services are also built along with the application. The image is loaded into
target device(powerpc machine) as a bootable image. But that RTOS doesn't
have pthread support., wheras the library used by Diab-c compiler has
pthread library. So it worked fine so far.
Now I'm porting this application to GCC compiler. I built the powerpc-eabi
cross tool chain with newlib. Since the pthread library is not part of
newlib library, I guess I would face problem which porting. :-(..
Newlib only has support for pthreads when run on Linux
(see newlib/libc/sys/linux/linuxthreads).
To support pthreads with your unnamed RTOS in Newlib, you
would need to write all of the corresponding routines which
translate pthreads calls into whatever threading model
the RTOS supports. This is (presumably) what the Diab
tool chain does.
You may be able to link the pthread support from the Diab
tool chain by including the Diab library after Newlib.
I can't use Glibc since there is no support for powerpc-eabi in Glibc! How
to over come this problem?
Thanks,
Jeffi
Ian Lance Taylor-3 wrote:
Kai Ruottu <kai.ruottu@xxxxxxxxxxx> writes:
For a layman like me some things sound predestined like that Posix
threads
being an additional feature in an Posix-compatible opsys meanwhile the
standard C library like newlib implements the base Posix C functions.
The
real priests will know more about these things. So...
What is the "operating system" on the target? Does it support Posix
threads?
At least Cygwin on Win32 uses newlib as the base C library and should
support
Posix threads. Also the RTEMS RTOS should use newlib and support Posix
threads :
http://www.rtems.com/wiki/index.php/RTEMSFeatures
So I would be really surprised if newlib should nowadays implement
some
"operating system" too...
newlib used not only on cygwin and RTEMS, but also on pure embedded
systems with no operating system. In that case newlib relies on
libgloss to provide some basic functionality. In that scenario, it
makes sense to ask whether the newlib/libgloss combination provides
POSIX threads for a specific target.
In general, as far as I know, the answer is "no." POSIX threads are
fairly difficult to implement correctly.
Ian
--
Michael Eager eager@xxxxxxxxxxxx
1960 Park Blvd., Palo Alto, CA 94306 650-325-8077