This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
a1feafbc094406cd19f425a569000463e0b09831
[metaconfig.git] / U / threads / d_strerror_r.U
1 ?RCS: $Id: d_strerror_r.U,v 0RCS:
2 ?RCS: Copyright (c) 2002,2003 Jarkko Hietaniemi
3 ?RCS:
4 ?RCS: You may distribute under the terms of either the GNU General Public
5 ?RCS: License or the Artistic License, as specified in the README file.
6 ?RCS:
7 ?RCS: Generated by the reentr.pl from the Perl 5.8 distribution.
8 ?RCS:
9 ?MAKE:d_strerror_r strerror_r_proto: Inlibc Protochk Hasproto i_systypes usethreads i_string
10 ?MAKE:  -pick add $@ %<
11 ?S:d_strerror_r:
12 ?S:     This variable conditionally defines the HAS_STRERROR_R symbol,
13 ?S:     which indicates to the C program that the strerror_r()
14 ?S:     routine is available.
15 ?S:.
16 ?S:strerror_r_proto:
17 ?S:     This variable encodes the prototype of strerror_r.
18 ?S:     It is zero if d_strerror_r is undef, and one of the
19 ?S:     REENTRANT_PROTO_T_ABC macros of reentr.h if d_strerror_r
20 ?S:     is defined.
21 ?S:.
22 ?C:HAS_STRERROR_R:
23 ?C:     This symbol, if defined, indicates that the strerror_r routine
24 ?C:     is available to strerror re-entrantly.
25 ?C:.
26 ?C:STRERROR_R_PROTO:
27 ?C:     This symbol encodes the prototype of strerror_r.
28 ?C:     It is zero if d_strerror_r is undef, and one of the
29 ?C:     REENTRANT_PROTO_T_ABC macros of reentr.h if d_strerror_r
30 ?C:     is defined.
31 ?C:.
32 ?H:#$d_strerror_r HAS_STRERROR_R           /**/
33 ?H:#define STRERROR_R_PROTO $strerror_r_proto      /**/
34 ?H:.
35 ?T:try hdrs d_strerror_r_proto
36 : see if strerror_r exists
37 set strerror_r d_strerror_r
38 eval $inlibc
39 case "$d_strerror_r" in
40 "$define")
41         hdrs="$i_systypes sys/types.h define stdio.h $i_string string.h"
42         case "$d_strerror_r_proto:$usethreads" in
43         ":define")      d_strerror_r_proto=define
44                 set d_strerror_r_proto strerror_r $hdrs
45                 eval $hasproto ;;
46         *)      ;;
47         esac
48         case "$d_strerror_r_proto" in
49         define)
50         case "$strerror_r_proto" in
51         ''|0) try='int strerror_r(int, char*, size_t);'
52         ./protochk "extern $try" $hdrs && strerror_r_proto=I_IBW ;;
53         esac
54         case "$strerror_r_proto" in
55         ''|0) try='int strerror_r(int, char*, int);'
56         ./protochk "extern $try" $hdrs && strerror_r_proto=I_IBI ;;
57         esac
58         case "$strerror_r_proto" in
59         ''|0) try='char* strerror_r(int, char*, size_t);'
60         ./protochk "extern $try" $hdrs && strerror_r_proto=B_IBW ;;
61         esac
62         case "$strerror_r_proto" in
63         ''|0)   d_strerror_r=undef
64                 strerror_r_proto=0
65                 echo "Disabling strerror_r, cannot determine prototype." >&4 ;;
66         * )     case "$strerror_r_proto" in
67                 REENTRANT_PROTO*) ;;
68                 *) strerror_r_proto="REENTRANT_PROTO_$strerror_r_proto" ;;
69                 esac
70                 echo "Prototype: $try" ;;
71         esac
72         ;;
73         *)      case "$usethreads" in
74                 define) echo "strerror_r has no prototype, not using it." >&4 ;;
75                 esac
76                 d_strerror_r=undef
77                 strerror_r_proto=0
78                 ;;
79         esac
80         ;;
81 *)      strerror_r_proto=0
82         ;;
83 esac
84