With the perl@8841 kit I attempted to configure it with
sh Configure -Dusedevel -Dprefix=/some/place -des
and I ran into the following problems partway down:
endservent() found.
<sys/file.h> defines the O_* constants...
and you have the 3 argument form of open().
Using <string.h> instead of <strings.h>.
Figuring out the flag used by open() for non-blocking I/O...
WARNING CBC3296 ./try.c:2 #include file <sys/fcntl.h> not found.
FSUM3065 The COMPILE step ended with return code 4.
Let's see what value errno gets from read() on a O_NONBLOCK file...
WARNING CBC3296 ./try.c:2 #include file <sys/fcntl.h> not found.
FSUM3065 The COMPILE step ended with return code 4.
fchmod() found.
It turns out that the only place that <sys/fcntl.h> is mentioned in
Configure is in that one little test(?). Since it looks like a
typo/thinko a simple-minded patch like so comes to mind:
--- Configure.orig Fri Feb 9 11:03:19 2001
+++ Configure Tue Feb 20 15:27:48 2001
@@ -8813,7 +8813,6 @@
esac
case "$h_fcntl" in
true) echo "#include <fcntl.h>" >> head.c;;
-*) echo "#include <sys/fcntl.h>" >> head.c;;
esac
echo " "
echo "Figuring out the flag used by open() for non-blocking I/O..." >&4
End of "possible" Patch.
With that patch in place a re-Configure of a clean build tree (save for
three or four util.c/ebcdic_control related patches) went smoothly.
On the other hand, perhaps there are systems that do indeed have a
sys/fcntl.h header ??? So a real fix for this blemish would perhaps
entail introducing a new $h_sysfcntl and perhaps a $i_sysfcntl config.sh
variable that is put to better use in the head.c file for the open()
tests. That said, I did note that it is not until _much_ later on that
Configure decides it does not want to bother with my fcntl.h anyway:
We'll be including <sys/file.h>.
<fcntl.h> found.
We don't need to include <fcntl.h> if we include <sys/file.h>.
<iconv.h> found.
So perhaps metaconfig/dist GURUs need to re-order the header probing
tests? FWIW here are my fcnlt config.sh variables:
$ grep fcntl config.sh
d_fcntl='define'
d_fcntl_can_lock='define'
h_fcntl='false'
i_fcntl='undef'
Please advise.
Peter Prymmer