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