Thread

  1. ecpg glitches in Feb 23rd beta.

    Darren King <darrenk@insightdist.com> — 1998-02-23T15:31:04Z

    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> '[' ']' ';' ',' '{' '}' '=' '*' '(' ')'