%% "Dr. Martin P.J. Zinser" <[EMAIL PROTECTED]> writes: mpjz> Hello Paul,
Thanks for the work, that's great. mpjz> I also noticed that makefile.vms needs to be updated to include mpjz> the new hash.c function. This is also part of the patch mpjz> appended below. Thanks. mpjz> ---> In this instance a unsigned (time_t) variable is compared mpjz> against a negative value. A quick fix (which is applied below) mpjz> is to ifdef the code section for VMS. A more general solution mpjz> would be to have a TIME_T_UNSIGNED macro defined in config.h and mpjz> use that in this place. Hm. However, I can't think of any way to write a configure test on whether or not time_t is signed or unsigned. It's always a tough decision for me, trying to balance the desires of people to build without any warnings with my desire to not perpetuate any more than is necessary the use of #ifdefs etc. to handle different platforms. The code is already maze-like enough in places and, after all, a warning is just a warning... although in general I agree that 0 warning builds are important enough to change code for, I'm not sure that changing it by adding lots of #ifdefs is an overall win. mpjz> ---> I assume this is in for systems with 64 bit longs? Since it mpjz> does not seem to work on OpenVMS I did put a #ifndef around it. I already did this; is this good enough for you: #if !defined(HAVE_LIMITS_H) || ULONG_MAX > 4294967295 /* We only need this on systems where unsigned long is >32 bits. */ n |= (n >> 32); #endif mpjz> char *u = _("unknown signal"); mpjz> ............^ mpjz> %CC-W-NOTCONSTQUAL, In the initializer for u, the referenced type of the pointer mpjz> value "((const char ...)("unknown signal"))" is const, but the referenced type mpjz> of the target of this assignment is not. mpjz> at line number 89 in file DISK$USER:[ZINSER.TMP.MAKE]signame.c;3 mpjz> ---> This one was easy. Just make u also const Hm. But then returning it is the wrong type, since the function returns char * instead of const char *. Really the function should return const char *, but then it breaks because the definition of that function on other systems is just char*. I think I might just cast it: const *u = (char *)_("unknown signal"); mpjz> so the next time around I could do some more work on mpjz> makefile.com (essentially I do want to turn it into more of a mpjz> configure like script, creating config.h and makefile.vms on the mpjz> fly according to the local configuration. The patch below is mpjz> only a very first step in this direction. Note that the next release of GNU make will certainly not take as long as the last one. I plan to put out a release fairly quickly that integrates support for OS/2 and the MINGW Windows development environment, plus whatever bugs crop up in 3.80 once it gets out into the wild and a few other nits and nats--no major new features, most likely. -- ------------------------------------------------------------------------------- Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at: http://www.gnu.org http://make.paulandlesley.org "Please remain calm...I may be mad, but I am a professional." --Mad Scientist _______________________________________________ Bug-make mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-make