This is a live mirror of the Perl 5 development currently hosted at
Delete needless U/modified/Protochk.U
authorAaron Crane <>
Sat, 4 Nov 2017 13:59:12 +0000 (13:59 +0000)
committerAaron Crane <>
Sat, 4 Nov 2017 14:01:29 +0000 (14:01 +0000)
My commit 502ff8b5c838bc728b5df0e025905496f3a889c3 created that file in order
to modify its contents, but I should merely have made those changes directly
to U/protos/Protochk.U, since it only exists in the Perl 5 metaconfig repo
(not upstream dist).

This commit copies the changed version back to U/protos/Protochk.U, and
deletes the superfluous copy in U/modified.

U/modified/Protochk.U [deleted file]

diff --git a/U/modified/Protochk.U b/U/modified/Protochk.U
deleted file mode 100644 (file)
index d6f6e6c..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-?RCS: $Id: Protochk.U,v $
-?RCS: Copyright (c) 1998 Andy Dougherty
-?RCS: You may distribute under the terms of either the GNU General Public
-?RCS: License or the Artistic License, as specified in the README file.
-?X:    This unit generates a ./protochk script that is used internally
-?X:    by Configure to check if this system will accept a particular
-?X:    prototype.
-?X:    To use it, say something like:
-?X:    hdrs="$define sys/types.h
-?X:            $i_systime sys/time.h
-?X:            $i_sysselct sys/select.h
-?X:            $d_socket sys/socket.h"
-?X:    $xxx='fd_set *'
-?X:    try='extern int select _((int, $xxx, $xxx, $xxx, struct timeval *'));'
-?X:    if ./protochk "$try" $hdrs; then
-?X:            echo "Your system accepts $xxx for the arguments to select."
-?X:    fi
-?X:  (Of course select is harder, since the first arg can be int,
-?X:    size_t, or unsigned long, and the last arg may or may not have a
-?X:    'const' before the 'struct timeval' :-(.  Also SunOS 4.1.3 doesn't
-?X:    provide a select prototype so the compiler accepts anything :-).
-?X:    The C compiler on QNX warns about invalid pointer types, but
-?X:    still exits with a 0 exit status, so it's not much help here.
-?X:    (It does correctly detect incorrect non-pointer arguments).
-?X:    Still, since QNX is a POSIX-ish system, just make your first
-?X:    a POSIX-ish one, and QNX will probably accept it.
-?X:    For determining argument types, your compiler must support
-?X:    prototypes, and the header files must use them.  Determining
-?X:    return types, however, is easier.  Just give an ridiculous
-?X:    return type, something like
-?X:    ./protochk 'extern int atof _((void));' $i_stdlib stdlib.h
-?X:    that should surely fail if atof() is defined in <stdlib.h>
-?X:    There is also an 'escape' hatch built in.  If you have a pair
-?X:    of args   'literal 'stuff' then 'stuff' gets included literally
-?X:    into the test program.  This could be useful for doing something
-?X:    like
-?X:    hdrs="$define stdio.h
-?X:            $define sys/types.h"
-?X:    ./protochk 'extern int fsetpos(FILE *, Fpos_t);' $args \
-?X:                    'literal' '#define Fpos_t long long'
-?X:    but you have to be really careful about the spaces in "literal".
-?X:            Andy Dougherty   Feb. 1998
-?MAKE:Protochk: cat rm_try startsh eunicefix +cc +optimize +ccflags \
-       i_pthread usethreads
-?MAKE: -pick add $@ %<
-?X: Comfort metalint.  All these are actually used in the protochk script.
-?T:foo status pthread_h_done
-?LINT: change cc optimize ccflags define rm_try
-?LINT: extern pthread_h_first
-?LINT: change pthread_h_first
-?LINT: change usethreads
-?LINT: change i_pthread
-: define a function to check prototypes
-$cat > protochk <<EOSH
-$cat >> protochk <<'EOSH'
-while test $# -ge 2; do
-       case "$1" in
-               $define) echo "#include <$2>" >> try.c ;;
-               literal) echo "$2" >> try.c ;;
-       esac
-    # Extra magic for the benefit of systems that need pthread.h
-    # to be included early to correctly detect threadsafe functions.
-    # Such functions must guarantee themselves, though, that the usethreads
-    # and i_pthread have been defined, before calling protochk.
-    if test "$usethreads" = "$define" -a "$i_pthread" = "$define" -a "$pthread_h_first" = "$define" -a "$pthread_h_done" = ""; then
-       echo "#include <pthread.h>" >> try.c
-       pthread_h_done=yes
-    fi
-    shift 2
-cat >> try.c <<'EOCP'
-#define        _(args) args
-echo "$foo" >> try.c
-?X: Just so we have something to compile.
-echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c
-$cc $optimize $ccflags -c try.c > /dev/null 2>&1
-exit $status
-chmod +x protochk
-$eunicefix protochk
index ea405cc..d6f6e6c 100644 (file)
 ?X:            Andy Dougherty   Feb. 1998
 ?MAKE:Protochk: cat rm_try startsh eunicefix +cc +optimize +ccflags \
-       prototype i_pthread usethreads
+       i_pthread usethreads
 ?MAKE: -pick add $@ %<
 ?X: Comfort metalint.  All these are actually used in the protochk script.
 ?T:foo status pthread_h_done
-?LINT: change cc optimize ccflags prototype define rm_try
+?LINT: change cc optimize ccflags define rm_try
 ?LINT: extern pthread_h_first
 ?LINT: change pthread_h_first
 ?LINT: change usethreads
@@ -65,7 +65,6 @@ $startsh
@@ -93,13 +92,8 @@ while test $# -ge 2; do
     shift 2
-test "$prototype" = "$define"  && echo '#define CAN_PROTOTYPE' >> try.c
 cat >> try.c <<'EOCP'
 #define        _(args) args
-#define        _(args) ()
 echo "$foo" >> try.c
 ?X: Just so we have something to compile.