Re: How to add pthread support for GCC powerpc-eabi cross platform?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux