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



Reply via email to