This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Spelling - megapatch
[metaconfig.git] / U / compline / ptrsize.U
index 5f1eec6..3b4f55c 100644 (file)
@@ -1,11 +1,11 @@
 ?RCS: $Id: ptrsize.U,v 3.0.1.1 1994/10/29 16:28:19 ram Exp $
 ?RCS:
 ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
-?RCS: 
-?RCS: You may redistribute only under the terms of the Artistic Licence,
+?RCS:
+?RCS: You may redistribute only under the terms of the Artistic License,
 ?RCS: as specified in the README file that comes with the distribution.
 ?RCS: You may reuse parts of this distribution only within the terms of
-?RCS: that same Artistic Licence; a copy of which may be found at the root
+?RCS: that same Artistic License; a copy of which may be found at the root
 ?RCS: of the source tree for dist 3.0.
 ?RCS:
 ?RCS: $Log: ptrsize.U,v $
@@ -15,7 +15,7 @@
 ?RCS: Revision 3.0  1993/08/18  12:09:37  ram
 ?RCS: Baseline for dist 3.0 netwide release.
 ?RCS:
-?MAKE:ptrsize: echo n c cat rm Myread Compile voidflags
+?MAKE:ptrsize: cat rm_try Myread Compile voidflags run use64bitall i_stdlib d_quad
 ?MAKE: -pick add $@ %<
 ?S:ptrsize:
 ?S:    This variable contains the value of the PTRSIZE symbol, which
 ?H:#define PTRSIZE $ptrsize            /**/
 ?H:.
 ?F:!try
+?LINT:extern use64bitint
 : check for length of pointer
 echo " "
 case "$ptrsize" in
 '')
-       $echo $n "Checking to see how big your pointers are...$c" >&4
+       echo "Checking to see how big your pointers are..." >&4
        if test "$voidflags" -gt 7; then
                echo '#define VOID_PTR char *' > try.c
        else
                echo '#define VOID_PTR void *' > try.c
        fi
-       $cat >>try.c <<'EOCP'
+       $cat >>try.c <<EOCP
 #include <stdio.h>
+#$i_stdlib I_STDLIB
+#ifdef I_STDLIB
+#include <stdlib.h>
+#endif
 int main()
 {
     printf("%d\n", (int)sizeof(VOID_PTR));
-    return(0);
+    exit(0);
 }
 EOCP
        set try
        if eval $compile_ok; then
-               ptrsize=`./try`
-               $echo " $ptrsize bytes." >&4
+               ptrsize=`$run ./try`
+               echo "Your pointers are $ptrsize bytes long."
        else
                dflt='4'
                echo "(I can't seem to compile the test program.  Guessing...)" >&4
@@ -61,5 +66,32 @@ EOCP
        fi
        ;;
 esac
-$rm -f try.c try
+$rm_try
+case "$use64bitall" in
+"$define"|true|[yY]*)
+       case "$ptrsize" in
+       4)      cat <<EOM >&4
+
+*** You have chosen a maximally 64-bit build,
+*** but your pointers are only 4 bytes wide.
+*** Please rerun Configure without -Duse64bitall.
+EOM
+               case "$d_quad" in
+               define)
+                       cat <<EOM >&4
+*** Since you have quads, you could possibly try with -Duse64bitint.
+EOM
+                       ;;
+               esac
+               cat <<EOM >&4
+*** Cannot continue, aborting.
+
+EOM
+
+               exit 1
+               ;;
+       esac
+       ;;
+esac
+