ecpg glitches in Feb 23rd beta.

Started by Nonamealmost 28 years ago2 messages
#1Noname
darrenk@insightdist.com

1. ecpg Makefiles have hard-coded gcc-only options hard coded.

2. ecpg/preproc/Makefile trashes CFLAGS instead of appending to it.

3. ecpg/preproc/preproc.y has duplicate S_SIGNED

Patch appended to fix #1-#3 for Michael's review. Don't appear to
break anything else, but I'm not the one working on this.

4. ecpg/preproc/preproc.y has an illegal assignment between "void*"
and "const char*". Log of the make error is...

gmake -C preproc all
gmake[3]: Entering directory `/ceo/darrenk/pgsql63d/src/interfaces/ecpg/preproc'
xlc -I../../../include -I../../../backend -I/gnu -qchars=signed -qmaxmem=8192 -qhalt=w -qsrcmsg -I../include -DMAJOR_VERSION=1 -DMINOR_VERSION=0 -DPATCHLEVEL=0 -c y.tab.c -o y.tab.o
289 | free(yyvsp[-2].type.name);
...........................a......
a - 1506-280 (E) Function argument assignment between types "void*" and "const char*" is not allowed.
gmake[3]: *** [y.tab.o] Error 1

This one I don't know how to fix. I just commented ecpg out of the
interfaces make and all else went a-ok.

darrenk

*** interfaces/ecpg/lib/Makefile.in.orig	Mon Feb 23 09:00:20 1998
--- interfaces/ecpg/lib/Makefile.in	Mon Feb 23 09:00:51 1998
***************
*** 61,66 ****
  libecpg.a : libecpg.a(ecpglib.o) libecpg.a(typename.o)
  ecpglib.o : ecpglib.c ../include/ecpglib.h ../include/ecpgtype.h
! 	$(CC) -O2 -g -Wall -I../include $(PQ_INCLUDE) -c ecpglib.c
  typename.o : typename.c ../include/ecpgtype.h
! 	$(CC) -g -O2 -Wall -I../include $(PQ_INCLUDE) -c typename.c
--- 61,66 ----
  libecpg.a : libecpg.a(ecpglib.o) libecpg.a(typename.o)
  ecpglib.o : ecpglib.c ../include/ecpglib.h ../include/ecpgtype.h
! 	$(CC) -I../include $(PQ_INCLUDE) -c ecpglib.c
  typename.o : typename.c ../include/ecpgtype.h
! 	$(CC) -I../include $(PQ_INCLUDE) -c typename.c
*** interfaces/ecpg/preproc/Makefile.orig	Mon Feb 23 09:01:35 1998
--- interfaces/ecpg/preproc/Makefile	Mon Feb 23 09:09:02 1998
***************
*** 6,12 ****
  MINOR_VERSION=0
  PATCHLEVEL=0

! CFLAGS=-I../include -O2 -g -Wall -DMAJOR_VERSION=$(MAJOR_VERSION) -DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL)

all:: ecpg

--- 6,12 ----
  MINOR_VERSION=0
  PATCHLEVEL=0

! CFLAGS+=-I../include -DMAJOR_VERSION=$(MAJOR_VERSION) -DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL)

all:: ecpg

***************
*** 21,27 ****

# Rule that really do something.
ecpg: y.tab.o pgc.o type.o ecpg.o ../lib/typename.o
! $(CC) -g -O2 -Wall -o ecpg y.tab.o pgc.o type.o ecpg.o ../lib/typename.o $(LEXLIB)

  y.tab.h y.tab.c: preproc.y
  	$(YACC) $(YFLAGS) $<
--- 21,27 ----

# Rule that really do something.
ecpg: y.tab.o pgc.o type.o ecpg.o ../lib/typename.o
! $(CC) -o ecpg y.tab.o pgc.o type.o ecpg.o ../lib/typename.o $(LEXLIB)

  y.tab.h y.tab.c: preproc.y
  	$(YACC) $(YFLAGS) $<
*** interfaces/ecpg/preproc/preproc.y.orig	Mon Feb 23 08:38:33 1998
--- interfaces/ecpg/preproc/preproc.y	Mon Feb 23 08:38:39 1998
***************
*** 231,237 ****
  %token <tagname> S_SYMBOL S_LENGTH S_ANYTHING S_LABEL
  %token <tagname> S_VARCHAR S_VARCHAR2
! %token <tagname> S_EXTERN S_STATIC S_AUTO S_CONST S_REGISTER S_STRUCT S_SIGNED
  %token <tagname> S_UNSIGNED S_SIGNED
  %token <tagname> S_LONG S_SHORT S_INT S_CHAR S_FLOAT S_DOUBLE S_BOOL
  %token <tagname> '[' ']' ';' ',' '{' '}' '=' '*' '(' ')'
--- 231,237 ----

%token <tagname> S_SYMBOL S_LENGTH S_ANYTHING S_LABEL
%token <tagname> S_VARCHAR S_VARCHAR2
! %token <tagname> S_EXTERN S_STATIC S_AUTO S_CONST S_REGISTER S_STRUCT
%token <tagname> S_UNSIGNED S_SIGNED
%token <tagname> S_LONG S_SHORT S_INT S_CHAR S_FLOAT S_DOUBLE S_BOOL
%token <tagname> '[' ']' ';' ',' '{' '}' '=' '*' '(' ')'

#2Michael Meskes
meskes@topsystem.de
In reply to: Noname (#1)
Re: [HACKERS] ecpg glitches in Feb 23rd beta.

Darren King writes:

1. ecpg Makefiles have hard-coded gcc-only options hard coded.

2. ecpg/preproc/Makefile trashes CFLAGS instead of appending to it.

3. ecpg/preproc/preproc.y has duplicate S_SIGNED

Patch appended to fix #1-#3 for Michael's review. Don't appear to
break anything else, but I'm not the one working on this.

Thanks. I've included them in my source tree and will submit them with my
next patch.

4. ecpg/preproc/preproc.y has an illegal assignment between "void*"
and "const char*". Log of the make error is...

Hopefully I've fixed this one, too.

Michael
--
Dr. Michael Meskes, Project-Manager | topsystem Systemhaus GmbH
meskes@topsystem.de | Europark A2, Adenauerstr. 20
meskes@debian.org | 52146 Wuerselen
Go SF49ers! Go Rhein Fire! | Tel: (+49) 2405/4670-44
Use Debian GNU/Linux! | Fax: (+49) 2405/4670-10