diff options
Diffstat (limited to 'hints/aix.sh')
-rw-r--r-- | hints/aix.sh | 63 |
1 files changed, 33 insertions, 30 deletions
diff --git a/hints/aix.sh b/hints/aix.sh index 5c07c12c8a..20c353c79d 100644 --- a/hints/aix.sh +++ b/hints/aix.sh @@ -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 |