summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.tru645
-rw-r--r--hints/dec_osf.sh25
2 files changed, 29 insertions, 1 deletions
diff --git a/README.tru64 b/README.tru64
index d203ded104..b1305ba4c8 100644
--- a/README.tru64
+++ b/README.tru64
@@ -50,6 +50,11 @@ Perl threading is going to work only in Tru64 4.0 and newer releases,
older operating releases like 3.2 aren't probably going to work
properly with threads.
+In Tru64 V5 (at least V5.1A, V5.1B) you cannot build threaded Perl with gcc
+because the system header <pthread.h> explicitly checks for supported
+C compilers, gcc (at least 3.2.2) not being one of them. But the
+system C compiler should work just fine.
+
=head2 Long Doubles on Tru64
You cannot Configure Perl to use long doubles unless you have at least
diff --git a/hints/dec_osf.sh b/hints/dec_osf.sh
index 5b15fade2f..f08c318b89 100644
--- a/hints/dec_osf.sh
+++ b/hints/dec_osf.sh
@@ -303,9 +303,32 @@ cat > UU/usethreads.cbu <<'EOCBU'
# after it has prompted the user for whether to use threads.
case "$usethreads" in
$define|true|[yY]*)
+ # In Tru64 V5 (at least V5.1A, V5.1B) gcc (at least 3.2.2)
+ # cannot be used to compile a threaded Perl.
+ cat > pthread.c <<EOF
+#include <pthread.h>
+extern int foo;
+EOF
+ $cc -c pthread.c 2> pthread.err
+ if grep -q "unrecognized compiler" pthread.err; then
+ cat >&4 <<EOF
+***
+*** I'm sorry but your C compiler ($cc) cannot be used to
+*** compile Perl with threads. The system C compiler should work.
+***
+
+Cannot continue, aborting.
+
+EOF
+ rm -f pthread.*
+ exit 1
+ fi
+ rm -f pthread.*
# Threads interfaces changed with V4.0.
case "$isgcc" in
- gcc) ccflags="-D_REENTRANT $ccflags" ;;
+ gcc)
+ ccflags="-D_REENTRANT $ccflags"
+ ;;
*) case "`uname -r`" in
*[123].*) ccflags="-threads $ccflags" ;;
*) ccflags="-pthread $ccflags" ;;