AIX patches for Perl 5.8.9 RC2 and gcc on AIX + suidperl on AIX README.aix
Rainer Tammer [Thu, 4 Dec 2008 10:32:11 +0000 (11:32 +0100)]
Message-ID: <4937A39B.1070104@tammer.net>

[just the hints]

p4raw-id: //depot/perl@35006

hints/aix.sh

index 5c07c12..20c353c 100644 (file)
@@ -238,37 +238,25 @@ case "$usethreads" in
 
        ccflags="$ccflags -DNEED_PTHREAD_INIT"
        case "$cc" in
-           *gcc*) ccflags="-D_THREAD_SAFE $ccflags" ;;
-
-           cc_r) ;;
-           '') cc=cc_r ;;
-
+           *gcc*) 
+             ccflags="-D_THREAD_SAFE $ccflags" 
+             ;;
+           cc_r) 
+             ;;
+           xlc_r) 
+             # for -qlonglong
+             ccflags="$ccflags -qlanglvl=extended"
+             ;;
+           # we do not need the C++ compiler
+           xlC_r) 
+             # for -qlonglong
+             ccflags="$ccflags -qlanglvl=extended"
+             cc=xlc_r 
+             ;;
+           '') 
+             cc=cc_r 
+             ;;
            *)
-
-
-           # No | alternation in aix sed. :-(
-           newcc=`echo $cc | sed -e 's/cc$/cc_r/' -e 's/xl[cC]$/cc_r/' -e 's/xl[cC]_r$/cc_r/'`
-           case "$newcc" in
-               $cc) # No change
-               ;;
-
-               *cc_r)
-               echo >&4 "Switching cc to cc_r because of POSIX threads."
-               # xlc_r has been known to produce buggy code in AIX 4.3.2.
-               # (e.g. pragma/overload core dumps)      Let's suspect xlC_r, too.
-               # --jhi@iki.fi
-               cc="$newcc"
-               ;;
-
-               *)
-               cat >&4 <<EOM
-*** For pthreads you should use the AIX C compiler cc_r.
-*** (now your compiler was set to '$cc')
-*** Cannot continue, aborting.
-EOM
-               exit 1
-               ;;
-           esac
        esac
 
        # Insert pthreads to libswanted, before any libc or libC.
@@ -280,6 +268,21 @@ EOM
        shift
        lddlflags="$*"
        ;;
+    *)
+       case "$cc" in
+           xlc) 
+             # for -qlonglong
+             ccflags="$ccflags -qlanglvl=extended"
+             ;;
+           # we do not need the C++ compiler
+           xlC) 
+             # for -qlonglong
+             ccflags="$ccflags -qlanglvl=extended"
+             cc=xlc 
+             ;;
+           *)
+       esac
+       ;;
 esac
 EOCBU