Обсуждение: ecpg glitches in Feb 23rd beta.

Поиск
Список
Период
Сортировка

ecpg glitches in Feb 23rd beta.

От
darrenk@insightdist.com (Darren King)
Дата:
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> '[' ']' ';' ',' '{' '}' '=' '*' '(' ')'


Re: [HACKERS] ecpg glitches in Feb 23rd beta.

От
Michael Meskes
Дата:
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