This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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

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 <> writes:

For a layman like me some things sound predestined like that Posix
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

At least Cygwin on Win32 uses newlib as the base C library and should
Posix threads. Also the RTEMS RTOS should use newlib and support Posix
threads :

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.


Michael Eager
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]