From: Ethan M. <merritt@u.washington.edu> - 2004-05-04 00:48:59
|
Disclaimer: I had never built, nor run, gnuplot under VMS until today. I was just curious, and this is what I found. %%%%%%%%% Unhappy TBOOLEANs $ cc /DEFINE=(NO_GIH,HAVE_CONFIG_H,DECCRTL)/INCLUDE=[-]/PREFIX=ALL axis.c TBOOLEAN checkrange; .............^ %CC-W-PROMOTMATCHW, In the definition of the function "axis_unlog_interval", the promoted type of checkrange is incompatible with the type of the corresponding parameter in a prior declaration. at line number 188 in file $DISK1:[MERRITT.GNUPLOT.SRC]AXIS.C;1 TBOOLEAN upwards; /* extend upwards or downwards? */ .............^ %CC-W-PROMOTMATCHW, In the definition of the function "round_outward", the promoted type of upwards is incompatible with the type of the corresponding parameter in a prior declaration. at line number 747 in file $DISK1:[MERRITT.GNUPLOT.SRC]AXIS.C;1 ... and so forth in many other places. %%%%%%%%%%% Bad macro syntax in x11.trm And this one in x11.trm, which must not have been tested in ages: #define GO(x) \ { \ char buffer[512]; int status; struct iosb iosb;\ [lots of complicated stuff] if((status & SS$_NORMAL) != SS$_NORMAL) exit(status); \ } #define PRINT0(fmt) GO( (buffer, fmt) ) #define PRINT1(fmt,p1) GO( (buffer, fmt,p1) ) if (something) PRINT0(...); else if (something) PRINT1(...); This syntax doesn't work because of the trailing semicolons. I propose to replace it with the standard work-around: #define GO(x) \ do {...} while (0) %%%%%%%%%%%%% failure to use local routines if necessary %LINK-W-NUDFSYMS, 2 undefined symbols: %LINK-I-UDFSYM, ADD_HISTORY %LINK-I-UDFSYM, STRDUP %LINK-W-USEUNDEF, undefined symbol STRDUP referenced in psect $LINK$ offset %X00000C50 in module SET file $DISK1:[MERRITT.GNUPLOT.SRC]SET.OBJ;1 %LINK-W-USEUNDEF, undefined symbol ADD_HISTORY referenced in psect $LINK$ offset %X00001490 in module SHOW file $DISK1:[MERRITT.GNUPLOT.SRC]SHOW.OBJ;1 %LINK-W-USEUNDEF, undefined symbol STRDUP referenced in psect $LINK$ offset %X000006D0 in module UNSET file $DISK1:[MERRITT.GNUPLOT.SRC]UNSET.OBJ;1 Sure enough - both show.c and unset.c try to call strdup() directly rather than going through gp_strdup(). That fails if the system does not provide strdup(). I don't know what the problem is with add_history() in show.c; the same function call seems to have been resolved correctly at other call sites. %%%%%%%%%%%%%% various type checking The type of time_t seems to have been picked up incorrectly. This results in many warning messages, but it may well be due to my extremely minimal VMS configuration. -- Ethan A Merritt merritt@u.washington.edu Biomolecular Structure Center Mailstop 357742 University of Washington, Seattle, WA 98195 |