1#!/usr/bin/sh 2 3### SYSTEM ARCHITECTURE 4 5# Determine the architecture type of this system. 6# Keep leading tab below -- Configure Black Magic -- RAM, 03/02/97 7 xxOsRevMajor=`uname -r | sed -e 's/^[^0-9]*//' | cut -d. -f1`; 8 xxOsRevMinor=`uname -r | sed -e 's/^[^0-9]*//' | cut -d. -f2`; 9 xxOsRev=`expr 100 \* $xxOsRevMajor + $xxOsRevMinor` 10if [ "$xxOsRevMajor" -ge 10 ]; then 11 # This system is running >= 10.x 12 13 # Tested on 10.01 PA1.x and 10.20 PA[12].x. 14 # Idea: Scan /usr/include/sys/unistd.h for matches with 15 # "#define CPU_* `getconf # CPU_VERSION`" to determine CPU type. 16 # Note the text following "CPU_" is used, *NOT* the comment. 17 # 18 # ASSUMPTIONS: Numbers will continue to be defined in hex -- and in 19 # /usr/include/sys/unistd.h -- and the CPU_* #defines will be kept 20 # up to date with new CPU/OS releases. 21 xxcpu=`getconf CPU_VERSION`; # Get the number. 22 xxcpu=`printf '0x%x' $xxcpu`; # convert to hex 23 archname=`sed -n -e "s/^#[[:space:]]*define[[:space:]]*CPU_//p" /usr/include/sys/unistd.h | 24 sed -n -e "s/[[:space:]]*$xxcpu[[:space:]].*//p" | 25 sed -e s/_RISC/-RISC/ -e s/HP_// -e s/_/./ -e "s/[[:space:]]*//g"`; 26else 27 # This system is running <= 9.x 28 # Tested on 9.0[57] PA and [78].0 MC680[23]0. Idea: After removing 29 # MC6888[12] from context string, use first CPU identifier. 30 # 31 # ASSUMPTION: Only CPU identifiers contain no lowercase letters. 32 archname=`getcontext | tr ' ' '\012' | grep -v '[a-z]' | grep -v MC688 | 33 sed -e 's/HP-//' -e 1q`; 34 selecttype='int *' 35 fi 36 37# For some strange reason, the u32align test from Configure hangs in 38# HP-UX 10.20 since the December 2001 patches. So hint it to avoid 39# the test. 40if [ "$xxOsRevMajor" -le 10 ]; then 41 d_u32align=$define 42 fi 43 44echo "Archname is $archname" 45 46# Fix XSlib (CPAN) confusion when re-using a prefix but changing from ILP32 47# to LP64 builds. They're NOT binary compatible, so quit claiming they are. 48archname64=LP64 49 50 51### HP-UX OS specific behaviour 52 53# -ldbm is obsolete and should not be used 54# -lBSD contains BSD-style duplicates of SVR4 routines that cause confusion 55# -lPW is obsolete and should not be used 56# The libraries crypt, malloc, ndir, and net are empty. 57set `echo "X $libswanted " | sed -e 's/ ld / /' -e 's/ dbm / /' -e 's/ BSD / /' -e 's/ PW / /'` 58shift 59libswanted="$*" 60 61cc=${cc:-cc} 62ar=/usr/bin/ar # Yes, truly override. We do not want the GNU ar. 63full_ar=$ar # I repeat, no GNU ar. arrr. 64 65set `echo "X $ccflags " | sed -e 's/ -A[ea] / /' -e 's/ -D_HPUX_SOURCE / /'` 66shift 67 cc_cppflags="$* -D_HPUX_SOURCE" 68cppflags="-Aa -D__STDC_EXT__ $cc_cppflags" 69 70case "$prefix" in 71 "") prefix='/opt/perl5' ;; 72 esac 73 74 gnu_as=no 75 gnu_ld=no 76case `$cc -v 2>&1`"" in 77 *gcc*) ccisgcc="$define" 78 ccflags="$cc_cppflags" 79 if [ "X$gccversion" = "X" ]; then 80 # Done too late in Configure if hinted 81 gccversion=`$cc -dumpversion` 82 fi 83 case "$gccversion" in 84 [012]*) # HP-UX and gcc-2.* break UINT32_MAX :-( 85 ccflags="$ccflags -DUINT32_MAX_BROKEN" 86 ;; 87 [34]*) # GCC (both 32bit and 64bit) will define __STDC_EXT__ 88 # by default when using GCC 3.0 and newer versions of 89 # the compiler. 90 cppflags="$cc_cppflags" 91 ;; 92 esac 93 case "`getconf KERNEL_BITS 2>/dev/null`" in 94 *64*) 95 echo "main(){}">try.c 96 case "$gccversion" in 97 [34]*) 98 case "$archname" in 99 PA-RISC*) 100 case "$ccflags" in 101 *-mpa-risc*) ;; 102 *) ccflags="$ccflags -mpa-risc-2-0" ;; 103 esac 104 ;; 105 esac 106 ;; 107 *) # gcc with gas will not accept +DA2.0 108 case "`$cc -c -Wa,+DA2.0 try.c 2>&1`" in 109 *"+DA2.0"*) # gas 110 gnu_as=yes 111 ;; 112 *) # HPas 113 ccflags="$ccflags -Wa,+DA2.0" 114 ;; 115 esac 116 ;; 117 esac 118 # gcc with gld will not accept +vnocompatwarnings 119 case "`$cc -o try -Wl,+vnocompatwarnings try.c 2>&1`" in 120 *"+vnocompat"*) # gld 121 gnu_ld=yes 122 ;; 123 *) # HPld 124 case "$gccversion" in 125 [12]*) 126 # Why not 3 as well here? 127 # Since not relevant to IA64, not changed. 128 ldflags="$ldflags -Wl,+vnocompatwarnings" 129 ccflags="$ccflags -Wl,+vnocompatwarnings" 130 ;; 131 esac 132 ;; 133 esac 134 rm -f try.c 135 ;; 136 esac 137 ;; 138 *) ccisgcc='' 139 # What cannot be use in combination with ccache links :( 140 cc_found="" 141 for p in `echo $PATH | tr : ' ''` ; do 142 x="$p/cc" 143 if [ -f $x ] && [ -x $x ]; then 144 if [ -h $x ]; then 145 l=`ls -l $x | sed 's,.*-> ,,'` 146 case $l in 147 /*) x=$l ;; 148 *) x="$p/$l" ;; 149 esac 150 fi 151 x=`echo $x | sed 's,/\./,/,g'` 152 case $x in 153 *ccache*) ;; 154 *) [ -z "$cc_found" ] && cc_found=$x ;; 155 esac 156 fi 157 done 158 [ -z "$cc_found" ] && cc_found=`which cc` 159 what $cc_found >&4 160 ccversion=`what $cc_found | awk '/Compiler/{print $2}/Itanium/{print $6,$7}/for Integrity/{print $6,$7}'` 161 case "$ccflags" in 162 "-Ae "*) ;; 163 *) ccflags="-Ae $cc_cppflags" 164 # +vnocompatwarnings not known in 10.10 and older 165 if [ $xxOsRev -ge 1020 ]; then 166 ccflags="$ccflags -Wl,+vnocompatwarnings" 167 fi 168 ;; 169 esac 170 # Needed because cpp does only support -Aa (not -Ae) 171 cpplast='-' 172 cppminus='-' 173 cppstdin='cc -E -Aa -D__STDC_EXT__' 174 cpprun=$cppstdin 175# case "$d_casti32" in 176# "") d_casti32='undef' ;; 177# esac 178 ;; 179 esac 180 181# When HP-UX runs a script with "#!", it sets argv[0] to the script name. 182toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"' 183 184### 64 BITNESS 185 186# Some gcc versions do native 64 bit long (e.g. 2.9-hppa-000310 and gcc-3.0) 187# We have to force 64bitness to go search the right libraries 188 gcc_64native=no 189case "$ccisgcc" in 190 $define|true|[Yy]) 191 echo '#include <stdio.h>\nint main(){long l;printf("%d\\n",sizeof(l));}'>try.c 192 $cc -o try $ccflags $ldflags try.c 193 if [ "`try`" = "8" ]; then 194 case "$use64bitall" in 195 $define|true|[Yy]) ;; 196 *) cat <<EOM >&4 197 198*** This version of gcc uses 64 bit longs. -Duse64bitall is 199*** implicitly set to enable continuation 200EOM 201 esac 202 use64bitall=$define 203 gcc_64native=yes 204 fi 205 ;; 206 esac 207 208case "$use64bitall" in 209 $define|true|[yY]*) use64bitint="$define" ;; 210 esac 211 212case "$usemorebits" in 213 $define|true|[yY]*) use64bitint="$define"; uselongdouble="$define" ;; 214 esac 215 216case "$archname" in 217 IA64*) 218 # While here, override so=sl auto-detection 219 so='so' 220 ;; 221 esac 222 223case "$use64bitall" in 224 $define|true|[Yy]) 225 226 if [ "$xxOsRevMajor" -lt 11 ]; then 227 cat <<EOM >&4 228 229*** 64-bit compilation is not supported on HP-UX $xxOsRevMajor. 230*** You need at least HP-UX 11.0. 231*** Cannot continue, aborting. 232EOM 233 exit 1 234 fi 235 236 if [ $xxOsRev -eq 1100 ]; then 237 # HP-UX 11.00 uses only 48 bits internally in 64bit mode, not 64 238 # force min/max to 2**47-1 239 sGMTIME_max=140737488355327 240 sGMTIME_min=-62167219200 241 sLOCALTIME_max=140737488355327 242 sLOCALTIME_min=-62167219200 243 fi 244 245 # Set libc and the library paths 246 case "$archname" in 247 PA-RISC*) 248 loclibpth="$loclibpth /lib/pa20_64" 249 libc='/lib/pa20_64/libc.sl' ;; 250 IA64*) 251 loclibpth="$loclibpth /usr/lib/hpux64" 252 libc='/usr/lib/hpux64/libc.so' ;; 253 esac 254 if [ ! -f "$libc" ]; then 255 cat <<EOM >&4 256 257*** You do not seem to have the 64-bit libc. 258*** I cannot find the file $libc. 259*** Cannot continue, aborting. 260EOM 261 exit 1 262 fi 263 264 case "$ccisgcc" in 265 $define|true|[Yy]) 266 # The fixed socket.h header file is wrong for gcc-4.x 267 # on PA-RISC2.0W, so Sock_type_t is size_t which is 268 # unsigned long which is 64bit which is too long 269 case "$gccversion" in 270 4*) case "$archname" in 271 PA-RISC*) socksizetype=int ;; 272 esac 273 ;; 274 esac 275 276 # For the moment, don't care that it ain't supported (yet) 277 # by gcc (up to and including 2.95.3), cause it'll crash 278 # anyway. Expect auto-detection of 64-bit enabled gcc on 279 # HP-UX soon, including a user-friendly exit 280 case $gcc_64native in 281 no) case "$gccversion" in 282 [1234]*) 283 ccflags="$ccflags -mlp64" 284 case "$archname" in 285 PA-RISC*) 286 ldflags="$ldflags -Wl,+DD64" 287 ;; 288 IA64*) 289 ldflags="$ldflags -mlp64" 290 ;; 291 esac 292 ;; 293 esac 294 ;; 295 esac 296 ;; 297 *) 298 case "$use64bitall" in 299 $define|true|[yY]*) 300 ccflags="$ccflags +DD64" 301 ldflags="$ldflags +DD64" 302 ;; 303 esac 304 ;; 305 esac 306 307 # Reset the library checker to make sure libraries 308 # are the right type 309 # (NOTE: on IA64, this doesn't work with .a files.) 310 libscheck='case "`/usr/bin/file $xxx`" in 311 *ELF-64*|*LP64*|*PA-RISC2.0*) ;; 312 *) xxx=/no/64-bit$xxx ;; 313 esac' 314 315 ;; 316 317 *) # Not in 64-bit mode 318 319 case "$archname" in 320 PA-RISC*) 321 libc='/lib/libc.sl' ;; 322 IA64*) 323 loclibpth="$loclibpth /usr/lib/hpux32" 324 libc='/usr/lib/hpux32/libc.so' ;; 325 esac 326 ;; 327 esac 328 329# By setting the deferred flag below, this means that if you run perl 330# on a system that does not have the required shared library that you 331# linked it with, it will die when you try to access a symbol in the 332# (missing) shared library. If you would rather know at perl startup 333# time that you are missing an important shared library, switch the 334# comments so that immediate, rather than deferred loading is 335# performed. Even with immediate loading, you can postpone errors for 336# undefined (or multiply defined) routines until actual access by 337# adding the "nonfatal" option. 338# ccdlflags="-Wl,-E -Wl,-B,immediate $ccdlflags" 339# ccdlflags="-Wl,-E -Wl,-B,immediate,-B,nonfatal $ccdlflags" 340if [ "$gnu_ld" = "yes" ]; then 341 ccdlflags="-Wl,-E $ccdlflags" 342else 343 ccdlflags="-Wl,-E -Wl,-B,deferred $ccdlflags" 344 fi 345 346 347### COMPILER SPECIFICS 348 349## Local restrictions (point to README.hpux to lift these) 350 351## Optimization limits 352cat >try.c <<EOF 353#include <stdio.h> 354#include <sys/resource.h> 355 356int main () 357{ 358 struct rlimit rl; 359 int i = getrlimit (RLIMIT_DATA, &rl); 360 printf ("%d\n", (int)(rl.rlim_cur / (1024 * 1024))); 361 } /* main */ 362EOF 363$cc -o try $ccflags $ldflags try.c 364 maxdsiz=`try` 365rm -f try try.c core 366if [ $maxdsiz -le 64 ]; then 367 # 64 Mb is probably not enough to optimize toke.c 368 # and regexp.c with -O2 369 cat <<EOM >&4 370Your kernel limits the data section of your programs to $maxdsiz Mb, 371which is (sadly) not enough to fully optimize some parts of the 372perl binary. I'll try to use a lower optimization level for 373those parts. If you are a sysadmin, and you *do* want full 374optimization, raise the 'maxdsiz' kernel configuration parameter 375to at least 0x08000000 (128 Mb) and rebuild your kernel. 376EOM 377regexec_cflags='' 378doop_cflags='' 379op_cflags='' 380 fi 381 382case "$ccisgcc" in 383 $define|true|[Yy]) 384 385 case "$optimize" in 386 "") optimize="-g -O" ;; 387 *O[3456789]*) optimize=`echo "$optimize" | sed -e 's/O[3-9]/O2/'` ;; 388 esac 389 #ld="$cc" 390 ld=/usr/bin/ld 391 cccdlflags='-fPIC' 392 #lddlflags='-shared' 393 lddlflags='-b' 394 case "$optimize" in 395 *-g*-O*|*-O*-g*) 396 # gcc without gas will not accept -g 397 echo "main(){}">try.c 398 case "`$cc $optimize -c try.c 2>&1`" in 399 *"-g option disabled"*) 400 set `echo "X $optimize " | sed -e 's/ -g / /'` 401 shift 402 optimize="$*" 403 ;; 404 esac 405 ;; 406 esac 407 if [ $maxdsiz -le 64 ]; then 408 case "$optimize" in 409 *O2*) opt=`echo "$optimize" | sed -e 's/O2/O1/'` 410 toke_cflags="$toke_cflags;optimize=\"$opt\"" 411 regexec_cflags="optimize=\"$opt\"" 412 ;; 413 esac 414 fi 415 ;; 416 417 *) 418 case "$optimize" in 419 "") optimize="+O2 +Onolimit" ;; 420 *O[3456789]*) optimize=`echo "$optimize" | sed -e 's/O[3-9]/O2/'` ;; 421 esac 422 case "$optimize" in 423 *-O*|\ 424 *O2*) opt=`echo "$optimize" | sed -e 's/-O/+O2/' -e 's/O2/O1/' -e 's/ *+Onolimit//'` 425 ;; 426 *) opt="$optimize" 427 ;; 428 esac 429 case "$archname" in 430 IA64*) 431 case "$ccversion" in 432 B3910B*A.06.0[12345]) 433 # > cc --version 434 # cc: HP aC++/ANSI C B3910B A.06.05 [Jul 25 2005] 435 # Has optimizing problems with -O2 and up for both 436 # maint (5.8.8+) and blead (5.9.3+) 437 # -O1/+O1 passed all tests (m)'05 [ 10 Jan 2005 ] 438 optimize="$opt" ;; 439 B3910B*A.06.15) 440 # > cc --version 441 # cc: HP C/aC++ B3910B A.06.15 [May 16 2007] 442 # Has optimizing problems with +O2 for blead (5.17.4), 443 # see https://rt.perl.org:443/rt3/Ticket/Display.html?id=103668. 444 # 445 # +O2 +Onolimit +Onoprocelim +Ostore_ordering \ 446 # +Onolibcalls=strcmp 447 # passes all tests (with/without -DDEBUGGING) [Nov 17 2011] 448 case "$optimize" in 449 *O2*) optimize="$optimize +Onoprocelim +Ostore_ordering +Onolibcalls=strcmp" ;; 450 esac 451 ;; 452 *) doop_cflags="optimize=\"$opt\"" 453 op_cflags="optimize=\"$opt\"" ;; 454 esac 455 ;; 456 esac 457 if [ $maxdsiz -le 64 ]; then 458 toke_cflags="$toke_cflags;optimize=\"$opt\"" 459 regexec_cflags="optimize=\"$opt\"" 460 fi 461 ld=/usr/bin/ld 462 cccdlflags='+Z' 463 lddlflags='-b +vnocompatwarnings' 464 ;; 465 esac 466 467## LARGEFILES 468if [ $xxOsRev -lt 1020 ]; then 469 uselargefiles="$undef" 470 fi 471 472#case "$uselargefiles-$ccisgcc" in 473# "$define-$define"|'-define') 474# cat <<EOM >&4 475# 476#*** I'm ignoring large files for this build because 477#*** I don't know how to do use large files in HP-UX using gcc. 478# 479#EOM 480# uselargefiles="$undef" 481# ;; 482# esac 483 484# Once we have the compiler flags defined, Configure will 485# execute the following call-back script. See hints/README.hints 486# for details. 487cat > UU/cc.cbu <<'EOCBU' 488# This script UU/cc.cbu will get 'called-back' by Configure after it 489# has prompted the user for the C compiler to use. 490 491# Compile and run the a test case to see if a certain gcc bug is 492# present. If so, lower the optimization level when compiling 493# pp_pack.c. This works around a bug in unpack. 494 495if test -z "$ccisgcc" -a -z "$gccversion"; then 496 : no tests needed for HPc 497else 498 echo " " 499 echo "Testing for a certain gcc bug is fixed in your compiler..." 500 501 # Try compiling the test case. 502 if $cc -o t001 -O $ccflags $ldflags -lm ../hints/t001.c; then 503 gccbug=`$run ./t001` 504 case "$gccbug" in 505 *fails*) 506 cat >&4 <<EOF 507This C compiler ($gccversion) is known to have optimizer 508problems when compiling pp_pack.c. 509 510Disabling optimization for pp_pack.c. 511EOF 512 case "$pp_pack_cflags" in 513 '') pp_pack_cflags='optimize=' 514 echo "pp_pack_cflags='optimize=\"\"'" >> config.sh ;; 515 *) echo "You specified pp_pack_cflags yourself, so we'll go with your value." >&4 ;; 516 esac 517 ;; 518 *) echo "Your compiler is ok." >&4 519 ;; 520 esac 521 else 522 echo " " 523 echo "*** WHOA THERE!!! ***" >&4 524 echo " Your C compiler \"$cc\" doesn't seem to be working!" >&4 525 case "$knowitall" in 526 '') echo " You'd better start hunting for one and let me know about it." >&4 527 exit 1 528 ;; 529 esac 530 fi 531 532 rm -f t001$_o t001$_exe 533 fi 534EOCBU 535 536cat >config.arch <<'EOCBU' 537# This script UU/config.arch will get 'called-back' by Configure after 538# all other configurations are done just before config.h is generated 539case "$archname:$optimize" in 540 PA*:*-g*[-+]O*|PA*:*[-+]O*-g*) 541 case "$ccflags" in 542 *DD64*) ;; 543 *) case "$ccversion" in 544 # Only on PA-RISC. B3910B (aCC) is not faulty 545 # B.11.* and A.10.* are 546 [AB].1*) 547 # cc: error 1414: Can't handle preprocessed file foo.i if -g and -O specified. 548 echo "HP-UX C-ANSI-C on PA-RISC does not accept both -g and -O on preprocessed files" >&4 549 echo "when compiling in 32bit mode. The optimizer will be disabled." >&4 550 optimize=`echo "$optimize" | sed -e 's/[-+]O[0-9]*//' -e 's/+Onolimit//' -e 's/^ *//'` 551 ;; 552 esac 553 esac 554 esac 555EOCBU 556 557cat >UU/uselargefiles.cbu <<'EOCBU' 558# This script UU/uselargefiles.cbu will get 'called-back' by Configure 559# after it has prompted the user for whether to use large files. 560case "$uselargefiles" in 561 ""|$define|true|[yY]*) 562 # there are largefile flags available via getconf(1) 563 # but we cheat for now. (Keep that in the left margin.) 564ccflags_uselargefiles="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" 565 566 case " $ccflags " in 567 *" $ccflags_uselargefiles "*) ;; 568 *) ccflags="$ccflags $ccflags_uselargefiles" ;; 569 esac 570 571 if test -z "$ccisgcc" -a -z "$gccversion"; then 572 # The strict ANSI mode (-Aa) doesn't like large files. 573 ccflags=`echo " $ccflags "|sed 's@ -Aa @ @g'` 574 case "$ccflags" in 575 *-Ae*) ;; 576 *) ccflags="$ccflags -Ae" ;; 577 esac 578 fi 579 ;; 580 esac 581EOCBU 582 583# THREADING 584 585# This script UU/usethreads.cbu will get 'called-back' by Configure 586# after it has prompted the user for whether to use threads. 587cat >UU/usethreads.cbu <<'EOCBU' 588case "$usethreads" in 589 $define|true|[yY]*) 590 if [ "$xxOsRevMajor" -lt 10 ]; then 591 cat <<EOM >&4 592 593HP-UX $xxOsRevMajor cannot support POSIX threads. 594Consider upgrading to at least HP-UX 11. 595Cannot continue, aborting. 596EOM 597 exit 1 598 fi 599 600 if [ "$xxOsRevMajor" -eq 10 ]; then 601 # Under 10.X, a threaded perl can be built 602 if [ -f /usr/include/pthread.h ]; then 603 if [ -f /usr/lib/libcma.sl ]; then 604 # DCE (from Core OS CD) is installed 605 606 # Check if it is pristine, or patched 607 cmavsn=`what /usr/lib/libcma.sl 2>&1 | grep 1996` 608 if [ ! -z "$cmavsn" ]; then 609 cat <<EOM >&4 610 611*************************************************************************** 612 613Perl will support threading through /usr/lib/libcma.sl from 614the HP DCE package, but the version found is too old to be 615reliable. 616 617If you are not depending on this specific version of the library, 618consider to upgrade using patch PHSS_23672 (read README.hpux) 619 620*************************************************************************** 621 622(sleeping for 10 seconds...) 623EOM 624 sleep 10 625 fi 626 627 # It needs # libcma and OLD_PTHREADS_API. Also 628 # <pthread.h> needs to be #included before any 629 # other includes (in perl.h) 630 631 # HP-UX 10.X uses the old pthreads API 632 d_oldpthreads="$define" 633 634 # include libcma before all the others 635 libswanted="cma $libswanted" 636 637 # tell perl.h to include <pthread.h> before other 638 # include files 639 ccflags="$ccflags -DPTHREAD_H_FIRST" 640# First column on purpose: 641# this is not a standard Configure variable 642# but we need to get this noticed. 643pthread_h_first="$define" 644 645 # HP-UX 10.X seems to have no easy 646 # way of detecting these *time_r protos. 647 d_gmtime_r_proto='define' 648 gmtime_r_proto='REENTRANT_PROTO_I_TS' 649 d_localtime_r_proto='define' 650 localtime_r_proto='REENTRANT_PROTO_I_TS' 651 652 # Avoid the poisonous conflicting (and irrelevant) 653 # prototypes of setkey (). 654 i_crypt="$undef" 655 656 # CMA redefines select to cma_select, and cma_select 657 # expects int * instead of fd_set * (just like 9.X) 658 selecttype='int *' 659 660 elif [ -f /usr/lib/libpthread.sl ]; then 661 # PTH package is installed 662 libswanted="pthread $libswanted" 663 else 664 libswanted="no_threads_available" 665 fi 666 else 667 libswanted="no_threads_available" 668 fi 669 670 if [ $libswanted = "no_threads_available" ]; then 671 cat <<EOM >&4 672 673In HP-UX 10.X for POSIX threads you need both of the files 674/usr/include/pthread.h and either /usr/lib/libcma.sl or /usr/lib/libpthread.sl. 675Either you must upgrade to HP-UX 11 or install a posix thread library: 676 677 DCE-CoreTools from HP-UX 10.20 Hardware Extensions 3.0 CD (B3920-13941) 678 679or 680 681 PTH package from e.g. http://hpux.connect.org.uk/hppd/hpux/Gnu/pth-2.0.7/ 682 683Cannot continue, aborting. 684EOM 685 exit 1 686 fi 687 else 688 # 12 may want upping the _POSIX_C_SOURCE datestamp... 689 ccflags=" -D_POSIX_C_SOURCE=199506L -D_REENTRANT $ccflags" 690 set `echo X "$libswanted "| sed -e 's/ c / pthread c /'` 691 shift 692 libswanted="$*" 693 694 # HP-UX 11.X seems to have no easy 695 # way of detecting these *time_r protos. 696 d_gmtime_r_proto='define' 697 gmtime_r_proto='REENTRANT_PROTO_S_TS' 698 d_localtime_r_proto='define' 699 localtime_r_proto='REENTRANT_PROTO_S_TS' 700 fi 701 ;; 702 esac 703EOCBU 704 705# There used to be: 706# The mysterious io_xs memory corruption in 11.00 32bit seems to get 707# fixed by not using Perl's malloc. Flip side is performance loss. 708# So we want mymalloc for all situations possible 709# That set usemymalloc to 'n' for threaded builds and non-gcc 32bit 710# non-debugging builds and 'y' for all others 711 712usemymalloc='n' 713case "$useperlio" in 714 $undef|false|[nN]*) usemymalloc='y' ;; 715 esac 716 717# malloc wrap works 718case "$usemallocwrap" in 719 '') usemallocwrap='define' ;; 720 esac 721 722# ctime_r () and asctime_r () seem to have issues for versions before 723# HP-UX 11 724if [ $xxOsRevMajor -lt 11 ]; then 725 d_ctime_r="$undef" 726 d_asctime_r="$undef" 727 fi 728 729# fpclassify () is a macro, the library call is Fpclassify 730# Similarly with the others below. 731d_fpclassify='define' 732d_isnan='define' 733d_isinf='define' 734d_isfinite='define' 735d_unordered='define' 736# Next one(s) need the leading tab. These are special 'hint' symbols that 737# are not to be propagated to config.sh, all related to pthreads draft 4 738# interfaces. 739case "$d_oldpthreads" in 740 ''|$undef) 741 d_crypt_r_proto='undef' 742 d_getgrent_r_proto='undef' 743 d_getpwent_r_proto='undef' 744 d_strerror_r_proto='undef' 745 ;; 746 esac 747