This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
SvUTF8_off() in do_join can be unconditional.
[perl5.git] / hints / hpux.sh
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`
10 if [ "$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"`;
26 else
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.
40 if [ "$xxOsRevMajor" -le 10 ]; then
41     d_u32align=$define
42     fi
43
44 echo "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.
48 archname64=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.
57 set `echo "X $libswanted " | sed -e 's/ ld / /' -e 's/ dbm / /' -e 's/ BSD / /' -e 's/ PW / /'`
58 shift
59 libswanted="$*"
60
61 cc=${cc:-cc}
62 ar=/usr/bin/ar  # Yes, truly override.  We do not want the GNU ar.
63 full_ar=$ar     # I repeat, no GNU ar.  arrr.
64
65 set `echo "X $ccflags " | sed -e 's/ -A[ea] / /' -e 's/ -D_HPUX_SOURCE / /'`
66 shift
67         cc_cppflags="$* -D_HPUX_SOURCE"
68 cppflags="-Aa -D__STDC_EXT__ $cc_cppflags"
69
70 case "$prefix" in
71     "") prefix='/opt/perl5' ;;
72     esac
73
74     gnu_as=no
75     gnu_ld=no
76 case `$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 --version | sed 's/.*(GCC) *//'`
82                 fi
83             case "$gccversion" in
84                 [012]*) # HP-UX and gcc-2.* break UINT32_MAX :-(
85                         ccflags="$ccflags -DUINT32_MAX_BROKEN"
86                         ;;
87                3*)     # 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                         3*)
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             ccversion=`which cc | xargs what | awk '/Compiler/{print $2}/Itanium/{print $6,$7}'`
140             case "$ccflags" in
141                "-Ae "*) ;;
142                 *)  ccflags="-Ae $cc_cppflags"
143                     # +vnocompatwarnings not known in 10.10 and older
144                     if [ $xxOsRev -ge 1020 ]; then
145                         ccflags="$ccflags -Wl,+vnocompatwarnings"
146                         fi
147                     ;;
148                esac
149             # Needed because cpp does only support -Aa (not -Ae)
150             cpplast='-'
151             cppminus='-'
152             cppstdin='cc -E -Aa -D__STDC_EXT__'
153             cpprun=$cppstdin
154 #           case "$d_casti32" in
155 #               "") d_casti32='undef' ;;
156 #               esac
157             ;;
158     esac
159
160 # When HP-UX runs a script with "#!", it sets argv[0] to the script name.
161 toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"'
162
163 ### 64 BITNESS
164
165 # Some gcc versions do native 64 bit long (e.g. 2.9-hppa-000310 and gcc-3.0)
166 # We have to force 64bitness to go search the right libraries
167     gcc_64native=no
168 case "$ccisgcc" in
169     $define|true|[Yy])
170         echo 'int main(){long l;printf("%d\\n",sizeof(l));}'>try.c
171         $cc -o try $ccflags $ldflags try.c
172         if [ "`try`" = "8" ]; then
173             cat <<EOM >&4
174
175 *** This version of gcc uses 64 bit longs. -Duse64bitall is
176 *** implicitly set to enable continuation
177 EOM
178             use64bitall=$define
179             gcc_64native=yes
180             fi
181         ;;
182     esac
183
184 case "$use64bitall" in
185     $define|true|[yY]*) use64bitint="$define" ;;
186     esac
187
188 case "$usemorebits" in
189     $define|true|[yY]*) use64bitint="$define"; uselongdouble="$define" ;;
190     esac
191
192 case "$archname" in
193     IA64*)
194         # While here, override so=sl auto-detection
195         so='so'
196         ;;
197     *)
198         case "$uselongdouble" in
199             *) ;;
200             $define|true|[yY]*)
201                 cat <<EOM >&4
202
203 *** long doubles are not (yet) supported on HP-UX (any version)
204 *** Until it does, we cannot continue, aborting.
205 EOM
206                 exit 1 ;;
207             esac
208         ;;
209     esac
210
211 case "$use64bitint" in
212     $define|true|[Yy])
213
214         if [ "$xxOsRevMajor" -lt 11 ]; then
215             cat <<EOM >&4
216
217 *** 64-bit compilation is not supported on HP-UX $xxOsRevMajor.
218 *** You need at least HP-UX 11.0.
219 *** Cannot continue, aborting.
220 EOM
221             exit 1
222             fi
223
224         # Set libc and the library paths
225         case "$archname" in
226             PA-RISC*)
227                 loclibpth="$loclibpth /lib/pa20_64"
228                 libc='/lib/pa20_64/libc.sl' ;;
229             IA64*) 
230                 loclibpth="$loclibpth /usr/lib/hpux64"
231                 libc='/usr/lib/hpux64/libc.so' ;;
232             esac
233         if [ ! -f "$libc" ]; then
234             cat <<EOM >&4
235
236 *** You do not seem to have the 64-bit libc.
237 *** I cannot find the file $libc.
238 *** Cannot continue, aborting.
239 EOM
240             exit 1
241             fi
242
243         case "$ccisgcc" in
244             $define|true|[Yy])
245                 # For the moment, don't care that it ain't supported (yet)
246                 # by gcc (up to and including 2.95.3), cause it'll crash
247                 # anyway. Expect auto-detection of 64-bit enabled gcc on
248                 # HP-UX soon, including a user-friendly exit
249                 case $gcc_64native in
250                     no) case "$gccversion" in
251                             [123]*) ccflags="$ccflags -mlp64"
252                                     case "$archname" in
253                                         PA-RISC*)
254                                             ldflags="$ldflags -Wl,+DD64"
255                                             ;;
256                                         IA64*)
257                                             ldflags="$ldflags -mlp64"
258                                             ;;
259                                         esac
260                                     ;;
261                             esac
262                         ;;
263                     esac
264                 ;;
265             *)
266                 ccflags="$ccflags +DD64"
267                 ldflags="$ldflags +DD64"
268                 ;;
269             esac
270
271         # Reset the library checker to make sure libraries
272         # are the right type
273         # (NOTE: on IA64, this doesn't work with .a files.)
274         libscheck='case "`/usr/bin/file $xxx`" in
275                        *ELF-64*|*LP64*|*PA-RISC2.0*) ;;
276                        *) xxx=/no/64-bit$xxx ;;
277                        esac'
278
279         ;;
280
281     *)  # Not in 64-bit mode
282
283         case "$archname" in
284             PA-RISC*)
285                 libc='/lib/libc.sl' ;;
286             IA64*) 
287                 loclibpth="$loclibpth /usr/lib/hpux32"
288                 libc='/usr/lib/hpux32/libc.so' ;;
289             esac
290         ;;
291     esac
292
293 # By setting the deferred flag below, this means that if you run perl
294 # on a system that does not have the required shared library that you
295 # linked it with, it will die when you try to access a symbol in the
296 # (missing) shared library.  If you would rather know at perl startup
297 # time that you are missing an important shared library, switch the
298 # comments so that immediate, rather than deferred loading is
299 # performed.  Even with immediate loading, you can postpone errors for
300 # undefined (or multiply defined) routines until actual access by
301 # adding the "nonfatal" option.
302 # ccdlflags="-Wl,-E -Wl,-B,immediate $ccdlflags"
303 # ccdlflags="-Wl,-E -Wl,-B,immediate,-B,nonfatal $ccdlflags"
304 if [ "$gnu_ld" = "yes" ]; then
305     ccdlflags="-Wl,-E $ccdlflags"
306 else
307     ccdlflags="-Wl,-E -Wl,-B,deferred $ccdlflags"
308     fi
309
310
311 ### COMPILER SPECIFICS
312
313 ## Local restrictions (point to README.hpux to lift these)
314
315 ## Optimization limits
316 cat >try.c <<EOF
317 #include <sys/resource.h>
318
319 int main ()
320 {
321     struct rlimit rl;
322     int i = getrlimit (RLIMIT_DATA, &rl);
323     printf ("%d\n", rl.rlim_cur / (1024 * 1024));
324     } /* main */
325 EOF
326 $cc -o try $ccflags $ldflags try.c
327         maxdsiz=`try`
328 rm -f try try.c core
329 if [ $maxdsiz -le 64 ]; then
330     # 64 Mb is probably not enough to optimize toke.c
331     # and regexp.c with -O2
332     cat <<EOM >&4
333 Your kernel limits the data section of your programs to $maxdsiz Mb,
334 which is (sadly) not enough to fully optimize some parts of the
335 perl binary. I'll try to use a lower optimization level for
336 those parts. If you are a sysadmin, and you *do* want full
337 optimization, raise the 'maxdsiz' kernel configuration parameter
338 to at least 0x08000000 (128 Mb) and rebuild your kernel.
339 EOM
340 regexec_cflags=''
341 doop_cflags=''
342     fi
343
344 case "$ccisgcc" in
345     $define|true|[Yy])
346         
347         case "$optimize" in
348             "")           optimize="-g -O" ;;
349             *O[3456789]*) optimize=`echo "$optimize" | sed -e 's/O[3-9]/O2/'` ;;
350             esac
351         #ld="$cc"
352         ld=/usr/bin/ld
353         cccdlflags='-fPIC'
354         #lddlflags='-shared'
355         lddlflags='-b'
356         case "$optimize" in
357             *-g*-O*|*-O*-g*)
358                 # gcc without gas will not accept -g
359                 echo "main(){}">try.c
360                 case "`$cc $optimize -c try.c 2>&1`" in
361                     *"-g option disabled"*)
362                         set `echo "X $optimize " | sed -e 's/ -g / /'`
363                         shift
364                         optimize="$*"
365                         ;;
366                     esac
367                 ;;
368             esac
369         if [ $maxdsiz -le 64 ]; then
370             case "$optimize" in
371                 *O2*)   opt=`echo "$optimize" | sed -e 's/O2/O1/'`
372                         toke_cflags="$toke_cflags;optimize=\"$opt\""
373                         regexec_cflags="optimize=\"$opt\""
374                         ;;
375                 esac
376             fi
377         ;;
378
379     *)  # HP's compiler cannot combine -g and -O
380         case "$optimize" in
381             "")           optimize="+O2 +Onolimit" ;;
382             *O[3456789]*) optimize=`echo "$optimize" | sed -e 's/O[3-9]/O2/'` ;;
383             esac
384         case "$optimize" in
385             *-O*|\
386             *O2*)   opt=`echo "$optimize" | sed -e 's/-O/+O2/' -e 's/O2/O1/' -e 's/ *+Onolimit//'`
387                     ;;
388             *)      opt="$optimize"
389                     ;;
390             esac
391         if [ $maxdsiz -le 64 ]; then
392             toke_cflags="$toke_cflags;optimize=\"$opt\""
393             regexec_cflags="optimize=\"$opt\""
394             fi
395         case "$archname" in
396             IA64*)
397                 doop_cflags="optimize=\"$opt\""
398                 ;;
399             esac
400         ld=/usr/bin/ld
401         cccdlflags='+Z'
402         lddlflags='-b +vnocompatwarnings'
403         ;;
404     esac
405
406 ## LARGEFILES
407 if [ $xxOsRev -lt 1020 ]; then
408     uselargefiles="$undef"
409     fi
410
411 #case "$uselargefiles-$ccisgcc" in
412 #    "$define-$define"|'-define') 
413 #       cat <<EOM >&4
414 #
415 #*** I'm ignoring large files for this build because
416 #*** I don't know how to do use large files in HP-UX using gcc.
417 #
418 #EOM
419 #       uselargefiles="$undef"
420 #       ;;
421 #    esac
422
423 # Once we have the compiler flags defined, Configure will
424 # execute the following call-back script. See hints/README.hints
425 # for details.
426 cat > UU/cc.cbu <<'EOCBU'
427 # This script UU/cc.cbu will get 'called-back' by Configure after it
428 # has prompted the user for the C compiler to use.
429
430 # Compile and run the a test case to see if a certain gcc bug is
431 # present. If so, lower the optimization level when compiling
432 # pp_pack.c.  This works around a bug in unpack.
433
434 if test -z "$ccisgcc" -a -z "$gccversion"; then
435     : no tests needed for HPc
436 else
437     echo " "
438     echo "Testing for a certain gcc bug is fixed in your compiler..."
439
440     # Try compiling the test case.
441     if $cc -o t001 -O $ccflags $ldflags -lm ../hints/t001.c; then
442        gccbug=`$run ./t001`
443        case "$gccbug" in
444            *fails*)
445                cat >&4 <<EOF
446 This C compiler ($gccversion) is known to have optimizer
447 problems when compiling pp_pack.c.
448
449 Disabling optimization for pp_pack.c.
450 EOF
451                case "$pp_pack_cflags" in
452                    '') pp_pack_cflags='optimize='
453                        echo "pp_pack_cflags='optimize=\"\"'" >> config.sh ;;
454                    *)  echo "You specified pp_pack_cflags yourself, so we'll go with your value." >&4 ;;
455                    esac
456                ;;
457            *)  echo "Your compiler is ok." >&4
458                ;;
459            esac
460     else
461        echo " "
462        echo "*** WHOA THERE!!! ***" >&4
463        echo "    Your C compiler \"$cc\" doesn't seem to be working!" >&4
464        case "$knowitall" in
465            '') echo "    You'd better start hunting for one and let me know about it." >&4
466                exit 1
467                ;;
468            esac
469        fi
470
471     rm -f t001$_o t001$_exe
472     fi
473 EOCBU
474
475 cat >UU/uselargefiles.cbu <<'EOCBU'
476 # This script UU/uselargefiles.cbu will get 'called-back' by Configure 
477 # after it has prompted the user for whether to use large files.
478 case "$uselargefiles" in
479     ""|$define|true|[yY]*)
480         # there are largefile flags available via getconf(1)
481         # but we cheat for now.  (Keep that in the left margin.)
482 ccflags_uselargefiles="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
483
484         case " $ccflags " in
485         *" $ccflags_uselargefiles "*) ;;
486         *) ccflags="$ccflags $ccflags_uselargefiles" ;;
487         esac
488
489         if test -z "$ccisgcc" -a -z "$gccversion"; then
490             # The strict ANSI mode (-Aa) doesn't like large files.
491             ccflags=`echo " $ccflags "|sed 's@ -Aa @ @g'`
492             case "$ccflags" in
493                 *-Ae*) ;;
494                 *)     ccflags="$ccflags -Ae" ;;
495                 esac
496             fi
497         ;;
498     esac
499 EOCBU
500
501 # THREADING
502
503 # This script UU/usethreads.cbu will get 'called-back' by Configure 
504 # after it has prompted the user for whether to use threads.
505 cat >UU/usethreads.cbu <<'EOCBU'
506 case "$usethreads" in
507     $define|true|[yY]*)
508         if [ "$xxOsRevMajor" -lt 10 ]; then
509             cat <<EOM >&4
510
511 HP-UX $xxOsRevMajor cannot support POSIX threads.
512 Consider upgrading to at least HP-UX 11.
513 Cannot continue, aborting.
514 EOM
515             exit 1
516             fi
517
518         if [ "$xxOsRevMajor" -eq 10 ]; then
519             # Under 10.X, a threaded perl can be built
520             if [ -f /usr/include/pthread.h ]; then
521                 if [ -f /usr/lib/libcma.sl ]; then
522                     # DCE (from Core OS CD) is installed
523
524                    # Check if it is pristine, or patched
525                    cmavsn=`what /usr/lib/libcma.sl 2>&1 | grep 1996`
526                    if [ ! -z "$cmavsn" ]; then
527                        cat <<EOM >&4
528 \a
529 ***************************************************************************
530
531 Perl will support threading through /usr/lib/libcma.sl from
532 the HP DCE package, but the version found is too old to be
533 reliable.
534
535 If you are not depending on this specific version of the library,
536 consider to upgrade using patch PHSS_23672 (read README.hpux)
537
538 ***************************************************************************
539
540 (sleeping for 10 seconds...)
541 EOM
542                        sleep 10
543                        fi
544
545                     # It needs # libcma and OLD_PTHREADS_API. Also
546                     # <pthread.h> needs to be #included before any
547                     # other includes (in perl.h)
548
549                     # HP-UX 10.X uses the old pthreads API
550                     d_oldpthreads="$define"
551
552                     # include libcma before all the others
553                     libswanted="cma $libswanted"
554
555                     # tell perl.h to include <pthread.h> before other
556                     # include files
557                     ccflags="$ccflags -DPTHREAD_H_FIRST"
558 # First column on purpose:
559 # this is not a standard Configure variable
560 # but we need to get this noticed.
561 pthread_h_first="$define"
562
563                     # HP-UX 10.X seems to have no easy
564                     # way of detecting these *time_r protos.
565                     d_gmtime_r_proto='define'
566                     gmtime_r_proto='REENTRANT_PROTO_I_TS'
567                     d_localtime_r_proto='define'
568                     localtime_r_proto='REENTRANT_PROTO_I_TS'
569
570                     # Avoid the poisonous conflicting (and irrelevant)
571                     # prototypes of setkey(). 
572                     i_crypt="$undef"
573
574                     # CMA redefines select to cma_select, and cma_select
575                     # expects int * instead of fd_set * (just like 9.X)
576                     selecttype='int *'
577
578                 elif [ -f /usr/lib/libpthread.sl ]; then
579                     # PTH package is installed
580                     libswanted="pthread $libswanted"
581                 else
582                     libswanted="no_threads_available"
583                     fi
584             else
585                 libswanted="no_threads_available"
586                 fi
587
588             if [ $libswanted = "no_threads_available" ]; then
589                 cat <<EOM >&4
590
591 In HP-UX 10.X for POSIX threads you need both of the files
592 /usr/include/pthread.h and either /usr/lib/libcma.sl or /usr/lib/libpthread.sl.
593 Either you must upgrade to HP-UX 11 or install a posix thread library:
594
595     DCE-CoreTools from HP-UX 10.20 Hardware Extensions 3.0 CD (B3920-13941)
596
597 or
598
599     PTH package from e.g. http://hpux.tn.tudelft.nl/hppd/hpux/alpha.html
600
601 Cannot continue, aborting.
602 EOM
603                 exit 1
604                 fi
605         else
606             # 12 may want upping the _POSIX_C_SOURCE datestamp...
607             ccflags=" -D_POSIX_C_SOURCE=199506L -D_REENTRANT $ccflags"
608             set `echo X "$libswanted "| sed -e 's/ c / pthread c /'`
609             shift
610             libswanted="$*"
611             fi
612
613         ;;
614     esac
615 EOCBU
616
617 # The mysterious io_xs memory corruption in 11.00 32bit seems to get
618 # fixed by not using Perl's malloc.  Flip side is performance loss.
619 # So we want mymalloc for all situations possible
620 usemymalloc='y'
621 case "$usethreads" in
622     $define|true|[yY]*) usemymalloc='n' ;;
623     *)  case "$ccisgcc" in
624            $undef|false|[nN]*)
625                case "$use64bitint" in
626                    $undef|false|[nN]*)
627                        case "$ccflags" in
628                            *-DDEBUGGING*) ;;
629                            *) usemymalloc='n' ;;
630                            esac
631                        ;;
632                    esac
633                ;;
634            esac
635        ;;
636     esac
637
638 usemymalloc='n'
639 case "$useperlio" in
640     $undef|false|[nN]*) usemymalloc='y' ;;
641     esac
642
643 # malloc wrap works
644 case "$usemallocwrap" in
645 '') usemallocwrap='define' ;;
646 esac
647
648 # fpclassify() is a macro, the library call is Fpclassify
649 # Similarly with the others below.
650 d_fpclassify='define'
651 d_isnan='define'
652 d_isinf='define'
653 d_isfinite='define'
654 d_unordered='define'
655 # Next one(s) need the leading tab.  These are special 'hint' symbols that
656 # are not to be propagated to config.sh, all related to pthreads draft 4
657 # interfaces.
658 case "$d_oldpthreads" in
659     ''|$undef)
660         d_crypt_r_proto='undef'
661         d_getgrent_r_proto='undef'
662         d_getpwent_r_proto='undef'
663         d_strerror_r_proto='undef'
664         ;;
665     esac