3 ?RCS: Copyright (c) 1998 Andy Dougherty
5 ?RCS: You may distribute under the terms of either the GNU General Public
6 ?RCS: License or the Artistic License, as specified in the README file.
8 ?MAKE:use64bitint use64bitall archname64: Myread Oldconfig Setvar test \
9 usemorebits longsize ccflags d_quad uquadtype Compile rm_try run
10 ?MAKE: -pick add $@ %<
13 ?S: This variable conditionally defines the USE_64_BIT_INT symbol,
14 ?S: and indicates that 64-bit integer types should be used
15 ?S: when available. The minimal possible 64-bitness
16 ?S: is employed, just enough to get 64-bit integers into Perl.
17 ?S: This may mean using for example "long longs", while your memory
18 ?S: may still be limited to 2 gigabytes.
21 ?S: This variable conditionally defines the USE_64_BIT_ALL symbol,
22 ?S: and indicates that 64-bit integer types should be used
23 ?S: when available. The maximal possible
24 ?S: 64-bitness is employed: LP64 or ILP64, meaning that you will
25 ?S: be able to use more than 2 gigabytes of memory. This mode is
26 ?S: even more binary incompatible than USE_64_BIT_INT. You may not
27 ?S: be able to run the resulting executable in a 32-bit CPU at all or
28 ?S: you may need at least to reboot your OS to 64-bit mode.
31 ?S: This variable is used for the 64-bitness part of $archname.
34 ?C: This symbol, if defined, indicates that 64-bit integers should
35 ?C: be used when available. If not defined, the native integers
36 ?C: will be employed (be they 32 or 64 bits). The minimal possible
37 ?C: 64-bitness is used, just enough to get 64-bit integers into Perl.
38 ?C: This may mean using for example "long longs", while your memory
39 ?C: may still be limited to 2 gigabytes.
42 ?C: This symbol, if defined, indicates that 64-bit integers should
43 ?C: be used when available. If not defined, the native integers
44 ?C: will be used (be they 32 or 64 bits). The maximal possible
45 ?C: 64-bitness is employed: LP64 or ILP64, meaning that you will
46 ?C: be able to use more than 2 gigabytes of memory. This mode is
47 ?C: even more binary incompatible than USE_64_BIT_INT. You may not
48 ?C: be able to run the resulting executable in a 32-bit CPU at all or
49 ?C: you may need at least to reboot your OS to 64-bit mode.
51 ?H:?%<:#ifndef USE_64_BIT_INT
52 ?H:?%<:#$use64bitint USE_64_BIT_INT /**/
54 ?H:?%<:#ifndef USE_64_BIT_ALL
55 ?H:?%<:#$use64bitall USE_64_BIT_ALL /**/
61 ?LINT:extern use64bits
62 ?LINT:extern uselonglong
63 ?LINT:extern uselonglongs
64 ?LINT:extern use64bitints
65 ?LINT:extern use64bitsint
66 ?LINT:extern use64bitsall
71 : Do we want 64bit support
72 case "$uselonglong" in
76 *** Configure -Duselonglong is deprecated, using -Duse64bitint instead.
85 *** Configure -Duse64bits is deprecated, using -Duse64bitint instead.
90 case "$use64bitints" in
94 *** There is no Configure -Duse64bitints, using -Duse64bitint instead.
99 case "$use64bitsint" in
100 "$define"|true|[yY]*)
103 *** There is no Configure -Duse64bitsint, using -Duse64bitint instead.
105 use64bitint="$define"
108 case "$uselonglongs" in
109 "$define"|true|[yY]*)
112 *** There is no Configure -Duselonglongs, using -Duse64bitint instead.
114 use64bitint="$define"
117 case "$use64bitsall" in
118 "$define"|true|[yY]*)
121 *** There is no Configure -Duse64bitsall, using -Duse64bitall instead.
123 use64bitall="$define"
128 *-DUSE_LONG_LONG*|*-DUSE_64_BIT_INT*|*-DUSE_64_BIT_ALL*) use64bitint="$define";;
130 case "$use64bitall" in
131 "$define"|true|[yY]*) use64bitint="$define" ;;
137 You have natively 64-bit long integers.
141 *) case "$use64bitint" in
142 "$define"|true|[yY]*) dflt='y';;
151 Perl can be built to take advantage of 64-bit integer types
152 on some systems. To do so, Configure can be run with -Duse64bitint.
153 Choosing this option will most probably introduce binary incompatibilities.
155 If this doesn't make any sense to you, just accept the default '$dflt'.
156 (The default has been chosen based on your configuration.)
158 rp='Try to use 64-bit integers, if available?'
161 [yY]*) val="$define" ;;
169 case "$use64bitall" in
170 "$define"|true|[yY]*) dflt='y' ;;
171 *) case "$longsize" in
179 You may also choose to try maximal 64-bitness. It means using as much
180 64-bitness as possible on the platform. This in turn means even more
181 binary incompatibilities. On the other hand, your platform may not
182 have any more 64-bitness available than what you already have chosen.
184 If this doesn't make any sense to you, just accept the default '$dflt'.
185 (The default has been chosen based on your configuration.)
187 rp='Try to use maximal 64-bit support, if available?'
190 [yY]*) val="$define" ;;
195 case "$use64bitall" in
197 case "$use64bitint" in
201 Since you have chosen a maximally 64-bit build, I'm also turning on
202 the use of 64-bit integers.
204 use64bitint="$define" ;;
209 : Look for a hint-file generated 'call-back-unit'. If the
210 : user has specified that a 64-bit perl is to be built,
211 : we may need to set or change some other defaults.
212 if $test -f use64bitint.cbu; then
213 echo "Your platform has some specific hints regarding 64-bit integers, using them..."
216 case "$use64bitint" in
217 "$define"|true|[yY]*)
218 : This test was common to all the OpenBSD forks, and seems harmless for
221 echo "Checking if your C library has broken 64-bit functions..." >&4
224 typedef $uquadtype myULL;
231 {4294967303.15, 4294967303ULL},
232 {4294967294.2, 4294967294ULL},
233 {4294967295.7, 4294967295ULL},
236 for (p = test; p->u; p++) {
237 myULL x = (myULL)p->d;
248 if eval $compile_ok; then
249 libcquad=`$run ./try`
250 echo "Your C library's 64-bit functions are $libcquad."
252 echo "(I can't seem to compile the test program.)"
253 echo "Assuming that your C library's 64-bit functions are ok."
262 *** You have a C library with broken 64-bit functions.
263 *** 64-bit support does not work reliably in this configuration.
264 *** Please rerun Configure without -Duse64bitint and/or -Dusemorebits.
265 *** Cannot continue, aborting.
272 4) case "$archname64" in
273 '') archname64=64int ;;
280 : Look for a hint-file generated 'call-back-unit'. If the
281 : user has specified that a maximally 64-bit perl is to be built,
282 : we may need to set or change some other defaults.
283 if $test -f use64bitall.cbu; then
284 echo "Your platform has some specific hints regarding 64-bit builds, using them..."
287 case "$use64bitall" in
288 "$define"|true|[yY]*)
290 4) case "$archname64" in
291 ''|64int) archname64=64all ;;
298 case "$d_quad:$use64bitint" in
302 *** You have chosen to use 64-bit integers,
303 *** but none can be found.
304 *** Please rerun Configure without -Duse64bitint and/or -Dusemorebits.
305 *** Cannot continue, aborting.