Well, this either fixes the problem or drives it deeper into hiding. I
never managed to see blood on the murder weapon in the debugger, but after
applying this patch I no longer get the crash, and fh.t passes all tests
successfully. The patch disables the fileno macro, which, as I understand
it, will force it to use the RTL function rather than the broken in-line
code. The relevant page from the RTL manual is at:
<http://www.openvms.digital.com/commercial/c/5763p025.htm#index_x_720>
Is vmsish.h the best place for this? BTW, this is based on vmsperl_pre56_3.
--- vms/vmsish.h;-0 Thu Mar 2 20:25:05 2000
+++ vms/vmsish.h Mon Mar 6 12:15:37 2000
@@ -717,4 +717,9 @@
#undef HAS_NTOHL
#endif
+/* The C RTL manual says to undef the macro for DEC C 5.2 and lower. */
+#if defined(fileno) && __DECC_VER < 50300000
+#undef fileno
+#endif
+
#endif /* __vmsish_h_included */
End of Patch.