Bill: Thanks for the info. That is helping me understand this a bit more. It seems however, that I still have something wrong. I see in /usr/include what you mentioned (but that define is specifying the keycreate, not _key_create): #ifdef _PTHREAD_D4 extern int pthread_keycreate(); #else extern int pthread_key_create(); #endif The runtime is still giving me a pthread_keycreate error (the same w/out _PTHREAD_D4.) I tried removing the -lpthread from the line and I get more pthread errors (see below). I further investigated (using a viewer in Windows) the /lib/libpthread.so file and it appears that it contains: pthread_key_create. Is there a way to view a library on the HP3000, it seems that the POSIX "ar" command does not give me any info? Also, is there any way to determine what the linker is linking to? (Like a verbose option?) I tried specifying specific -L parameters, but that just gets me more runtime errors. I don't know if /lib/libpthread.so is the file being linked at compile time or runtime or not. I'm quite confused. Where do DCEXL.HPDCE.SYS and OTHREADXL.THREADS.SYS come into play, is there a way to view what is in them? Unfortunately, I do think I need the threading ability as later I would like to port an xmlrpc client and server implementation. shell/iX> cat hello.cpp #if !defined _POSIX_SOURCE #define _POSIX_SOURCE #endif #define _PTHREAD_D4 #include <stdlib.h> #include <stdio.h> #include <string> #include <unistd.h> using namespace std; int main() { cout << "Hello\n"; string strCmd = "ls -la >/gcc/test/test.out"; execl("/bin/sh","sh","-c",strCmd.c_str(),0); return 0; } shell/iX> make g++ hello.cpp -o hello -lstdc++ shell/iX> ./hello UNRESOLVED EXTERNALS: pthread_mutex_lock (LDRERR 512) UNRESOLVED EXTERNALS: pthread_mutex_unlock (LDRERR 512) UNRESOLVED EXTERNALS: pthread_setspecific (LDRERR 512) UNRESOLVED EXTERNALS: pthread_getspecific (LDRERR 512) UNRESOLVED EXTERNALS: pthread_keycreate (LDRERR 512) UNRESOLVED EXTERNALS: pthread_once (LDRERR 512) UNRESOLVED EXTERNALS: thd_fprintf (LDRERR 512) **** EXEC FUNCTION FAILED; subsys =517; info = 48 ABORT: /gcc/test/hello NM SYS a.01007770 dbg_abort_trace+$28 [1] + Done(134) ./hello 50594083 Abort ./hello shell/iX> shell/iX> make g++ hello.cpp -o hello -lstdc++ -lpthread shell/iX> ./hello UNRESOLVED EXTERNALS: pthread_keycreate (LDRERR 512) **** EXEC FUNCTION FAILED; subsys =517; info = 48 ABORT: /gcc/test/hello NM SYS a.01007770 dbg_abort_trace+$28 [1] + Done(134) ./hello 43778187 Abort ./hello shell/iX> Thanks for your time in helping this clueless HP3000 user. * To join/leave the list, search archives, change list settings, * * etc., please visit http://raven.utc.edu/archives/hp3000-l.html *