running Linux 2.x (with the LinuxThreads library installed:
that's the linuxthreads and linuxthreads-devel RPMs for RedHat)
or Digital UNIX 4.x or Solaris 2.x for recentish x (2.5 is OK)
+or IRIX 6.2 or newer (6.2 will require a few os patches),
then you should be able to use
./Configure -Dusethreads -Doptimize=-g -ders
make
Zap mallocobj and mallocsrc (foo='')
Change d_mymalloc to undef
For Solaris, do the same as for Linux above.
+For IRIX:
+ Add -DUSE_THREADS -DDEBUGGING to ccflags
+ Add -DUSE_THREADS -DDEBUGGING to cppflags
+ Add -lpthread to libs
+ Change optimize to -g
+ For IRIX 6.2, you have to have the following patches installed:
+ 1404 Irix 6.2 Posix 1003.1b man pages
+ 1645 IRIX 6.2 & 6.3 POSIX header file updates
+ 2000 Irix 6.2 Posix 1003.1b support modules
+ 2254 Pthread library fixes
+ For IRIX 6.3 and 6.4 the pthreads should work out of the box.
+ Thanks to Hannu Napari <Hannu.Napari@hut.fi> for the IRIX
+ pthreads patches information.
Now you can do a
make
# Tweaked by Chip Salzenberg <chip@perl.com> on 5/13/97
# - don't assume 'cc -n32' if the n32 libm.so is missing
+# Threaded by Jarkko Hietaniemi <jhi@iki.fi> on 11/18/97
+# - POSIX threads knowledge by IRIX version
+
# Use sh Configure -Dcc='cc -n32' to try compiling with -n32.
# or -Dcc='cc -n32 -mips3' (or -mips4) to force (non)portability
# Don't bother with -n32 unless you have the 7.1 or later compilers.
set `echo X "$libswanted "|sed -e 's/ sun / /' -e 's/ crypt / /' -e 's/ bsd / /' -e 's/ PW / /'`
shift
libswanted="$*"
+
+if [ "X$usethreads" != "X" ]; then
+ if test ! -f /usr/include/pthread.h -o ! -f /usr/lib/libpthread.so; then
+ uname_r=`uname -r`
+ case "`uname -r`" in
+ 6.0|6.1)
+ echo >&4 "IRIX $uname_r does not have the POSIX threads."
+ echo >&4 "You should upgrade to at least IRIX 6.3."
+ echo >&4 "Cannot continue, aborting."
+ exit 1
+ ;;
+ 6.2)
+ echo >&4 ""
+cat >&4 <<EOF
+IRIX 6.2 $uname_r can have the POSIX threads.
+The following IRIX patches must, however, be installed:
+
+ 1404 Irix 6.2 Posix 1003.1b man pages
+ 1645 IRIX 6.2 & 6.3 POSIX header file updates
+ 2000 Irix 6.2 Posix 1003.1b support modules
+ 2254 Pthread library fixes
+
+Cannot continue, aborting.
+EOF
+ exit 1
+ ;;
+ 6.*|7.*)
+ echo >&4 "IRIX $uname_r should have the POSIX threads."
+ echo >&4 "But somehow you do not seem to have them installed."
+ echo >&4 "Cannot continue, aborting."
+ exit 1
+ ;;
+ esac
+ unset uname-r
+ fi
+ ccflags="-DUSE_THREADS $ccflags"
+ cppflags="-DUSE_THREADS $cppflags"
+ # -lpthread needs to come before -lc but after other libraries such
+ # as -lgdbm and such like. We assume here that -lc is present in
+ # libswanted. If that fails to be true in future, then this can be
+ # changed to add pthread to the very end of libswanted.
+ set `echo X "$libswanted "| sed -e 's/ c / pthread /'`
+ ld="cc"
+ shift
+ libswanted="$*"
+fi
# set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ sun / /' -e 's/ crypt / /' -e 's/ nsl / /' -e 's/ dl / /'`
# shift
# libswanted="$*"
+
+if [ "X$usethreads" != "X" ]; then
+ echo >&4 "IRIX 6.0 does not have POSIX threads."
+ echo >&4 "You should upgrade to at least IRIX 6.3."
+ echo >&4 "Cannot continue, aborting."
+ exit 1
+fi
+
# set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ sun / /' -e 's/ crypt / /' -e 's/ nsl / /' -e 's/ dl / /'`
# shift
# libswanted="$*"
+
+if [ "X$usethreads" != "X" ]; then
+ echo >&4 "IRIX 6.1 does not have POSIX threads."
+ echo >&4 "You should upgrade to at least IRIX 6.3."
+ echo >&4 "Cannot continue, aborting."
+ exit 1
+fi
# define STANDARD_C 1
#endif
-#if defined(__cplusplus) || defined(WIN32)
+#if defined(__cplusplus) || defined(WIN32) || defined(__sgi)
# define DONT_DECLARE_STD 1
#endif
/* VMS doesn't use environ array and NeXT has problems with crt0.o globals */
#if !defined(VMS) && !(defined(NeXT) && defined(__DYNAMIC__))
-#if !defined(DONT_DECLARE_STD) || (defined(__svr4__) && defined(__GNUC__) && defined(sun))
+#if !defined(DONT_DECLARE_STD) || (defined(__svr4__) && defined(__GNUC__) && defined(sun)) || defined(__sgi)
extern char ** environ; /* environment variables supplied via exec */
#endif
#else