$ uname -a OSF1 [name] V4.0 878 alpha $ uname -a OSF1 [name] V5.1 732 alpha $ cat mutex.c #include <stdlib.h> #include <pthread.h> int main (void) { pthread_mutex_t lck; if (pthread_mutex_init(&lck, 0) != 0) exit (2); if (pthread_mutex_lock(&lck) != 0) exit (3); if (pthread_mutex_unlock(&lck) != 0) exit (4); if (pthread_mutex_destroy(&lck) != 0) exit (5); exit (0); } $ cc mutex.c ld: Unresolved: __pthread_mutex_init __pthread_mutex_destroy __pthread_mutex_lock __pthread_mutex_unlock $ cc -pthread mutex.c $ ls -ld a.out -rwxrwxr-x 1 china china 20288 Jul 8 18:40 a.out $ nm a.out | grep pthread_mutex __pthread_mutex_destroy | 0000000000000000 | U | 0000000000000008 __pthread_mutex_init | 0000000000000000 | U | 0000000000000008 __pthread_mutex_lock | 0000000000000000 | U | 0000000000000008 __pthread_mutex_unlock | 0000000000000000 | U | 0000000000000008 $ /opt/TWWfsw/gcc343/bin/gcc -v Reading specs from /opt/TWWfsw/gcc343/lib/gcc/alpha-dec-osf5.1/3.4.3/specs Configured with: /opt/build/gcc-3.4.3/configure --enable-nls --with-included-gettext --enable-shared --enable-threads --host=alpha-dec-osf5.1 --with-local-prefix=/opt/TWWfsw/gcc343 --prefix=/opt/TWWfsw/gcc343 Thread model: posix gcc version 3.4.3 (TWW) $ /opt/TWWfsw/gcc343/bin/gcc mutex.c $ ls -ld a.out -rwxrwxr-x 1 china china 41072 Jul 8 18:40 a.out $ nm a.out | grep pthread_mutex __pthread_mutex_destroy | 0000004831844816 | T | 0000000000000008 __pthread_mutex_init | 0000004831844800 | T | 0000000000000008 __pthread_mutex_lock | 0000004831844640 | T | 0000000000000008 __pthread_mutex_trylock | 0000004831844656 | T | 0000000000000008 __pthread_mutex_unlock | 0000004831844672 | T | 0000000000000008 $ /opt/TWWfsw/gcc332/bin/gcc -v Reading specs from /opt/TWWfsw/gcc332/lib/gcc-lib/alphaev67-dec-osf5.1/3.3.2/specs Configured with: /opt/build/gcc-3.3.2/configure --enable-nls --with-included-gettext --enable-shared --enable-threads --with-local-prefix=/opt/TWWfsw/gcc332 --prefix=/opt/TWWfsw/gcc332 Thread model: single gcc version 3.3.2 (TWW) $ /opt/TWWfsw/gcc332/bin/gcc mutex.c __pthread_mutex_init __pthread_mutex_lock __pthread_mutex_unlock __pthread_mutex_destroy collect2: ld returned 1 exit status So, why does /opt/TWWfsw/gcc343/bin/gcc resolve the pthread_mutex_* symbols and cc does not? Should the GCC behavior mirror the cc behavior? -- albert chin (china@xxxxxxxxxxxxxxxxxx)