Thread View: gnu.gcc.bug
1 messages
1 total messages
Started by Tim Theisen
Mon, 06 Apr 1992 22:26
"gcc-2.1 -O" breaks gnuplot on romp-ibm-aos
Author: Tim Theisen
Date: Mon, 06 Apr 1992 22:26
Date: Mon, 06 Apr 1992 22:26
150 lines
5803 bytes
5803 bytes
I know that this is a pretty vague bug report and that it is possible
that gnuplot has bad code. However, gnuplot has been compiled with
many different C compilers on many different architectures. Also, gcc on
the RT is still pretty young. Therefore, I am guessing that the problem
lies with gcc.
When running gnuplot on an RT compiled with gcc-2.1 -O, 2D plots that have
curves with negative y values come out with incorrect axes. The y axis
either ranges over positive values only or the y axis ranges over huge
(>1e80) numbers.
The program works fine on an RT when compiled with "gcc-2.1 -O0".
It also works fine on a DECstation or SPARC compiled with either gcc or
native cc with or without optimization.
Here are the details:
I am running gcc-2.1 with the following patch:
Tue Mar 31 06:37:50 1992 Richard Kenner (kenner at vlsi1.ultra.nyu.edu)
* expr.c (do_store_flag): Handle case where EXP is a TRUTH_NOT_EXPR.
The source is gnuplot-3.1 which can be fetched from prep.ai.mit.edu.
I have made the following modifications for out local enviroment:
--- 1.1 1992/03/17 23:22:40
+++ gnuplot_x11.c 1992/03/17 23:24:24
@@ -117,7 +117,7 @@
vchar = (rv.font->ascent + rv.font->descent);
/* add callbacks on input-from-gnuplot-on-stdin & window-resized */
- XtAddInput(0, XtInputReadMask, gnuplot, NULL);
+ XtAddInput(0, (XtPointer)XtInputReadMask, gnuplot, NULL);
XtAddEventHandler(w_label, StructureNotifyMask, FALSE, resize, NULL);
XtMainLoop();
@@ -238,7 +238,7 @@
if (*buf == 'G') { /* enter graphics mode */
if (commands) {
int n; for (n=0; n<nc; n++) XtFree(commands[n]);
- XtFree(commands);
+ XtFree((char *)commands);
}
commands = NULL; nc = ncalloc = 0;
}
@@ -247,7 +247,8 @@
else {
if (nc >= ncalloc) {
ncalloc = ncalloc*2 + 1;
- commands = (String *)XtRealloc(commands, ncalloc * sizeof(String));
+ commands = (String *)XtRealloc((char *)commands,
+ ncalloc * sizeof(String));
}
commands[nc++] = XtNewString(buf);
}
--- 1.1 1992/03/17 22:29:39
+++ makefile.unx 1992/03/30 23:46:11
@@ -14,17 +14,20 @@
TARGET = All # What to make by default
+
+MAKE = make # for dumb makes
+
############################################################
#>>> Decide where the binaries and manuals will go.
# directory where to install executables on 'make install'
-DEST=/usr/local/bin
+DEST=/usr/gnu/bin
# directory for installing man page on 'make man_install'.
-MANDEST=/usr/man/manl
+MANDEST=/usr/gnu/man/manl
# where to install help file gnuplot.gih
-HELPDEST=/usr/local/lib/gnuplot.gih
+HELPDEST=/usr/gnu/lib/gnuplot.gih
#HELPDEST=docs/gnuplot.gih
# Where to send email about bugs and comments (locally)
-EMAIL=bug-gnuplot%pixar.uucp@sun.com
+EMAIL=lab
############################################################
#>>> Choose your C compiler and basic compiler flags.
@@ -45,7 +48,7 @@
# If NOCWDRC is defined, then any .gnuplot in the current directory
# is not read on startup. This is a security consideration
# especially for root users ( we recommend you define -DNOCWDRC ).
-OPTIONS = -DREADLINE -DNOCWDRC
+OPTIONS = -DNOCWDRC
#>>> Optionally install the lasergnu script.
# Lasergnu is a handy shell script for creating a plot from the
@@ -131,7 +134,7 @@
# Defaults in case the user types 'make All' directly
# Should match X11R4_FLAGS's CFLAGS definition
-CFLAGS = $(COPTS) $(OPTIONS)
+CFLAGS = $(COPTS) $(OPTIONS) -DGAMMA=lgamma
############################################################
# Terminal (device) support
@@ -150,7 +153,7 @@
# -DUNIXPC unixpc (ATT 3b1 or ATT 7300)
# -DUNIXPLOT unixplot
# -DX11 X11 Window System (This is $(PLOTXFLAG))
-TERMFLAGS = -Iterm -DUNIXPLOT $(PLOTXFLAG)
+TERMFLAGS = -Iterm $(PLOTXFLAG)
############################################################
# Library explanations.
@@ -161,13 +164,13 @@
# -lsuntool -lsunwindow -lpixrect if you have -DSUN in TERMFLAGS
# -lgl_s if -DIRIS4D in TERMFLAGS
# -lccgi if -DCGI in TERMFLAGS
-LIBS = -lm -lplot
+LIBS = -lm
############################################################
# Machine-dependent settings.
#
X11R4_FLAGS = \
- CFLAGS="$(COPTS) $(OPTIONS)" \
+ CFLAGS="$(COPTS) $(OPTIONS) -DGAMMA=lgamma" \
LIBS="$(LIBS)" X11FLAGS="$(X11FLAGS)" X11INCLUDES="$(X11INCLUDES)" \
X11LIBS="$(X11LIBS)" \
PLOTXFLAG="$(PLOTXFLAG)" GNUPLOT_X11=$(GNUPLOT_X11) \
I compiled gnuplot with the following commands:
ln -s makefile.unx makefile
make CC=gcc x11r4
I ran the demonstration with the following commands (. needs to be in $PATH):
cd demo
ln -s ../gnuplot_x11 gnuplot_x11
ln -s ../gnuplot gnuplot
gnuplot all.demo
The problem should be apparent.
I don't have time right now to narrow this down. I just wanted to let
you know of a potential problem.
Good Luck! ...Tim
Tim Theisen Systems Programmer
Internet: tim@cs.wisc.edu Department of Computer Sciences
UUCP: uwvax!tim University of Wisconsin-Madison
Phone: (608)262-0438 1210 West Dayton Street
FAX: (608)262-9777 Madison, WI 53706
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads