ecpg glitches in Feb 23rd beta.

Darren King <darrenk@insightdist.com>

From: darrenk@insightdist.com (Darren King)
To: pgsql-hackers@postgresql.org
Date: 1998-02-23T15:31:04Z
Lists: pgsql-hackers
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> '[' ']' ';' ',' '{' '}' '=' '*' '(' ')'