Article View: gnu.ghostscript.bug
Article #44ghostscript 1.2 using gcc-1.35 anyone?
From: Richard Murphey
Date: Mon, 12 Jun 1989 01:33
Date: Mon, 12 Jun 1989 01:33
264 lines
9164 bytes
9164 bytes
Does anyone have suggestions on how to configure ghostscript 1.2 for X11R3 and
SunOS 3.5 using gcc-1.35? I have managed to compile and run gs and would
welcome any advice on how to configure it better for X11. Thanks, Rich
now, on to the report...
In building the X window version of ghostscript version 1.2 using gcc version
1.35, the compiler reports errors for structures declared inside parameter
lists, several function prototypes and for the initializer of `x_device.' The
following context diffs eliminate these errors and have produced a working
version of gs for this configuration.
Configuration: Sun3/260, Sun UNIX 4.2 Release 3.5, gcc-1.35, X11R3
Symptom:
gcc -ansi -g -c gsfont.c
gxfont.h:29: warning: `struct gs_show_enum_s' declared inside parameter list
gxfont.h:29: warning: such a name is accessible only within its parameter list,
gxfont.h:29: warning: which is probably not what you want.
gxfont.h:32: warning: `struct gs_show_enum_s' declared inside parameter list
gsfont.c:189: warning: `struct gs_show_enum_s' declared inside parameter list
gsfont.c: In function gs_no_build_char_proc:
gsfont.c:190: conflicting types for `gs_no_build_char_proc'
gxfont.h:32: previous declaration of `gs_no_build_char_proc'
*** Error code 1
gcc -ansi -g -c gxdraw.c
gxdraw.c: In function gx_default_draw_line:
gxdraw.c:234: number of arguments doesn't match prototype
gxdraw.c: In function gx_default_fill_trapezoid:
gxdraw.c:235: number of arguments doesn't match prototype
gxdraw.c: In function gx_default_tile_trapezoid:
gxdraw.c:236: number of arguments doesn't match prototype
*** Error code 1
gcc -ansi -g -c gdevx.c
gdevx.c:141: initializer for scalar variable requires one element
gdevx.c: In function alt_put_image:
gdevx.c:461: warning: `alt_put_image' was declared `extern' and later `static'
gdevx.c:154: warning: previous declaration of `alt_put_image'
*** Error code 1
The diffs which have worked for me:
diff -cb gss/gdevx.c gs/gdevx.c
*** gss/gdevx.c Fri Feb 24 03:25:25 1989
--- gs/gdevx.c Thu Jun 8 23:15:48 1989
***************
*** 121,127 ****
} gx_device_X;
/* The instance is public. */
! gx_device_X x_device = {
sizeof(gx_device_X),
&x_procs,
640, 350, /* x and y extent */
--- 121,128 ----
} gx_device_X;
/* The instance is public. */
! struct gx_device_X_s x_device =
! {
sizeof(gx_device_X),
&x_procs,
640, 350, /* x and y extent */
***************
*** 131,144 ****
1, /* bits per color pixel */
/* End of monochrome/color parameters */
1, /* bit-big-endian (for now) */
! 0, /* connection not initialized */
! { 0, 0, /* width, height */
0, XYBitmap, NULL, /* xoffset, format, data */
LSBFirst, 8, /* byte-order, bitmap-unit */
! MSBFirst, 8, 1 /* bitmap-bit-order, bitmap-pad, depth */
}
- };
/* Macro for casting gx_device argument */
#define xdev ((gx_device_X *)dev)
--- 132,179 ----
1, /* bits per color pixel */
/* End of monochrome/color parameters */
1, /* bit-big-endian (for now) */
! /* 0, */ /* connection not initialized */
! {
! 0, 0, /* width, height */
0, XYBitmap, NULL, /* xoffset, format, data */
LSBFirst, 8, /* byte-order, bitmap-unit */
! MSBFirst, 8, 1, /* bitmap-bit-order, bitmap-pad, depth */
! 0, /* bytes_per_line */
! 1, /* bits_per_pixel */
! 0, /* red_mask */
! 0, /* green_mask */
! 0, /* blue_mask */
! 0x0, /* obdata */
! {
! 0x0, /* create_image */
! 0x0, /* destroy_image */
! 0x0, /* get_pixel */
! 0x0, /* put_pixel */
! 0x0, /* sub_image */
! 0x0 /* add_pixel */
}
+ },
+ 0x0, /* dpy */
+ 0x0, /* scr */
+ 0x0, /* vis */
+ 0, /* cmap */
+ 0, /* win */
+ 0x0, /* gc */
+ {
+ 0, /* pixmap */
+ 0, /* no_pixmap */
+ 0, /* width */
+ 0, /* height */
+ 0, /* raster */
+ 0x0, /* bits */
+ 0 /* bits_size */
+ }, /* ht */
+ 0, /* fill_style */
+ {0, 0, 0, 0, 0, 0, 0, 0}, /* colors */
+ 0, /* back_color */
+ 0 /*fore_color */
+ }; /* x_device */
/* Macro for casting gx_device argument */
#define xdev ((gx_device_X *)dev)
diff -cb gss/gsfont.c gs/gsfont.c
*** gss/gsfont.c Fri Feb 24 03:05:13 1989
--- gs/gsfont.c Fri Jun 9 00:07:31 1989
***************
*** 185,191 ****
/* Dummy (ineffective) BuildChar procedure */
int
! gs_no_build_char_proc(struct gs_show_enum_s *penum, gs_state *pgs,
! gs_font *pfont, int chr, char *data)
{ return 1; /* failure, but not error */
}
--- 185,197 ----
/* Dummy (ineffective) BuildChar procedure */
int
! gs_no_build_char_proc(P5(char *penum, struct gs_state_s *pgs,
! struct gs_font_s *pfont, int chr, char *data))
{ return 1; /* failure, but not error */
}
diff -cb gss/gxdevice.h gs/gxdevice.h
*** gss/gxdevice.h Fri Feb 24 01:39:43 1989
--- gs/gxdevice.h Thu Jun 8 22:51:57 1989
***************
*** 59,65 ****
/* gx_default_proc, e.g. gx_default_tile_rectangle. */
/* The device procedure can also call this procedure */
/* if it doesn't implement the function for particular */
! /* values of the arguments. *
/* Open the device. OPTIONAL */
int (*open_device)(P1(gx_device *));
--- 59,65 ----
/* gx_default_proc, e.g. gx_default_tile_rectangle. */
/* The device procedure can also call this procedure */
/* if it doesn't implement the function for particular */
! /* values of the arguments. */
/* Open the device. OPTIONAL */
int (*open_device)(P1(gx_device *));
diff -cb gss/gxdraw.c gs/gxdraw.c
*** gss/gxdraw.c Fri Feb 24 03:13:25 1989
--- gs/gxdraw.c Thu Jun 8 23:41:40 1989
***************
*** 231,236 ****
}
/****** STUBS ******/
! int gx_default_draw_line() { return -1; }
! int gx_default_fill_trapezoid() { return -1; }
! int gx_default_tile_trapezoid() { return -1; }
--- 231,236 ----
}
/****** STUBS ******/
! int gx_default_draw_line(gx_device *a, int s, int d, int f, int q, int w) { return -1; }
! int gx_default_fill_trapezoid(gx_device *a, int s, int d, int f, int q, int w, int e, int r) { return -1; }
! int gx_default_tile_trapezoid(gx_device *q, gx_bitmap *w, int e, int r, int a, int s, int d, int f, int z, int x) { return -1; }
diff -cb gss/gxfont.h gs/gxfont.h
*** gss/gxfont.h Fri Feb 24 01:41:14 1989
--- gs/gxfont.h Fri Jun 9 00:07:27 1989
***************
*** 28,34 ****
(P5(struct gs_show_enum_s *, struct gs_state_s *, struct gs_font_s *,
int /* char code */, char * /* build_char_data */));
int gs_no_build_char_proc
! (P5(struct gs_show_enum_s *, struct gs_state_s *, struct gs_font_s *,
int, char *));
struct gs_font_s {
gs_font *next, *prev; /* chain for scaled font cache */
--- 28,34 ----
(P5(struct gs_show_enum_s *, struct gs_state_s *, struct gs_font_s *,
int /* char code */, char * /* build_char_data */));
int gs_no_build_char_proc
! (P5(char *, struct gs_state_s *, struct gs_font_s *,
int, char *));
struct gs_font_s {
gs_font *next, *prev; /* chain for scaled font cache */
diff -cb gss/ux-gcc-x.mak gs/ux-gcc-x.mak
*** gss/ux-gcc-x.mak Fri Feb 24 00:45:31 1989
--- gs/ux-gcc-x.mak Fri Jun 9 00:21:08 1989
***************
*** 28,43 ****
# -DDEBUG enables debugging features in the language interpreter.
# -Dgs_DEBUG enables debugging features in the library.
! CCDEBUG=
# Define the other compilation flags.
! CFLAGS=-O -ansi
# Define platform flags for ld.
# The following are appropriate for Sun OS4.0.
! LDPLAT=-Bstatic
# ---------------------------- End of options --------------------------- #
--- 28,44 ----
# -DDEBUG enables debugging features in the language interpreter.
# -Dgs_DEBUG enables debugging features in the library.
! CCDEBUG=-g
# Define the other compilation flags.
! CFLAGS=-ansi
# Define platform flags for ld.
# The following are appropriate for Sun OS4.0.
! #LDPLAT=-Bstatic
! LDPLAT=
# ---------------------------- End of options --------------------------- #
***************
*** 97,100 ****
GSUNIX=gs.$(OBJ) gsmain.$(OBJ) utrace.$(OBJ) $(INT) gs_lib0.$(OBJ) gdevx.$(OBJ)
gs: $(GSUNIX)
! cc $(CFLAGS) $(LDPLAT) -X -o gs $(GSUNIX) -lX11 -lm
--- 98,101 ----
GSUNIX=gs.$(OBJ) gsmain.$(OBJ) utrace.$(OBJ) $(INT) gs_lib0.$(OBJ) gdevx.$(OBJ)
gs: $(GSUNIX)
! gcc $(CFLAGS) $(LDPLAT) -o gs $(GSUNIX) -lX11 -lm
Thanks for any advice you can offer,
Rich Murphey
Electrical Engineering
Rice University
rich@rice.edu
Technical Details
Message-ID:
<8906120133.AA05849@kappa.rice.edu>Path:
arc1-ca.pugleaf.net!utzoo!telly!ziebmef!becker!censor!geac!jtsv16!uunet!cs.utexas.edu!tut.cis.ohio-state.edu!RICE.EDU!richShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!telly!ziebmef!becker!censor!geac!jtsv16!uunet!cs.utexas.edu!tut.cis.ohio-state.edu!RICE.EDU!rich From: rich@RICE.EDU (Richard Murphey) Newsgroups: gnu.ghostscript.bug Subject: ghostscript 1.2 using gcc-1.35 anyone? Message-ID: <8906120133.AA05849@kappa.rice.edu> Date: 12 Jun 89 01:33:26 GMT Distribution: gnu Organization: GNUs Not Usenet Lines: 264