Thread: Building 8.3 beta 4 stops on (at least) 2 errors
Hi, I tried to compile PG8.3b4 for a test run on a R/S 6K running AIX 4.3 (powerpc-ibm-aix4.3.3.0) (Of course, make was replaced with a compiled verstion of GNUmake) Here are the step by step operations once having detarred the package 1 - Edition of ./src/include/pg_config_manual.h Setting BLCKSZ to 16384 (has to get records from a mainframe) 2 - ./configure --prefix=/tmp/pg83b4 --without-readline --without-zlib 3 - make 3.1 - First error happens when compiling tsquery.c xlc -O2 -qmaxmem=16384 -qsrcmsg -qlonglong -qnoansialias -I../../../../src/include -c -o tsquery.o tsquery.c 108 | PT_CLOSE = 5, ....................a a - 1506-275 (S) Unexpected text ',' encountered. The file shows : /* * token types for parsing */ typedef enum { PT_END = 0, PT_ERR = 1, PT_VAL = 2, PT_OPR = 3, PT_OPEN = 4, PT_CLOSE = 5, } ts_tokentype; 3.2 - I manually removed the offending comma and carried on the building process (expecting a major flaw to be detected at the 'make check' stage Then the building process stops on ecpg/informix.c xlc -O2 -qmaxmem=16384 -qsrcmsg -qlonglong -qnoansialias -I../include -I../../../../src/interfaces/ecpg/include -I../../../../src/interfaces/libpq -I../../../../src/include/utils -I../../../../src/include -c -o informix.o informix.c "/usr/include/stdio.h", line 434.12: 1506-343 (S) Redeclaration of fgetpos64 differs from previous declaration on line 274 of "/usr/include/stdio.h". "/usr/include/stdio.h", line 434.12: 1506-377 (I) The type "long long*" of parameter 2 differs from the previous type "long*". "/usr/include/stdio.h", line 437.12: 1506-343 (S) Redeclaration of fseeko64 differs from previous declaration on line 380 of "/usr/include/stdio.h". "/usr/include/stdio.h", line 437.12: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long". "/usr/include/stdio.h", line 438.12: 1506-343 (S) Redeclaration of fsetpos64 differs from previous declaration on line 276 of "/usr/include/stdio.h". "/usr/include/stdio.h", line 438.12: 1506-377 (I) The type "const long long*" of parameter 2 differs from the previous type "const long*". "/usr/include/stdio.h", line 439.16: 1506-343 (S) Redeclaration of ftello64 differs from previous declaration on line 381 of "/usr/include/stdio.h". "/usr/include/stdio.h", line 439.16: 1506-050 (I) Return type "long long" in redeclaration is not compatible with the previous return type "long". make[4]: *** [informix.o] Error 1 make[4]: Leaving directory `/home/lib2/postgres/postgresql-8.3beta4/src/interfaces/ecpg/compatlib' make[3]: *** [all] Error 2 make[3]: Leaving directory `/home/lib2/postgres/postgresql-8.3beta4/src/interfaces/ecpg' make[2]: *** [all] Error 2 make[2]: Leaving directory `/home/lib2/postgres/postgresql-8.3beta4/src/interfaces' make[1]: *** [all] Error 2 make[1]: Leaving directory `/home/lib2/postgres/postgresql-8.3beta4/src' make: *** [all] Error 2 I ll try again, time permitting, tomorrow with the newly uploaded RC1. I had no problem with 8.2.5 and 8.1.10. Regards J6M
"J6M" <j6m@adm.estp.fr> writes: > xlc -O2 -qmaxmem=16384 -qsrcmsg -qlonglong -qnoansialias -I../../../../src/include > -c -o tsquery.o tsquery.c > 108 | PT_CLOSE = 5, > ....................a > a - 1506-275 (S) Unexpected text ',' encountered. Some compilers are picky about extra commas in enum lists, some aren't. I guess we have not currently got any in the buildfarm that are. > xlc -O2 -qmaxmem=16384 -qsrcmsg -qlonglong -qnoansialias -I../include -I../../../../src/interfaces/ecpg/include > -I../../../../src/interfaces/libpq -I../../../../src/include/utils -I../../../../src/include > -c -o informix.o informix.c > "/usr/include/stdio.h", line 434.12: 1506-343 (S) Redeclaration of fgetpos64 > differs from previous declaration on line 274 of "/usr/include/stdio.h". > "/usr/include/stdio.h", line 434.12: 1506-377 (I) The type "long long*" of > parameter 2 differs from the previous type "long*". The problem here seems to be that informix.c was violating our coding rule that no system headers may be included before c.h (or in this case, postgres_fe.h). Please change the first few lines of the file to this ordering: #define POSTGRES_ECPG_INTERNAL #include "postgres_fe.h" #include <math.h> #include <ctype.h> #include <limits.h> #include <ecpgtype.h> ... and see if it doesn't work then. BTW, it seems we do not have any buildfarm members running xlc. If you can spare the cycles to build PG once a day or so, please consider joining the buildfarm so these types of portability issues can be caught sooner. http://www.pgbuildfarm.org/index.html regards, tom lane
Hi, Thanks. The build for 8.3RC1 worked and all regression tests were passed. Regards J6M ----- Original Message ----- From: "Tom Lane" <tgl@sss.pgh.pa.us> To: "J6M" <j6m@adm.estp.fr> Cc: <pgsql-ports@postgresql.org> Sent: Tuesday, January 08, 2008 2:20 AM Subject: Re: [PORTS] Building 8.3 beta 4 stops on (at least) 2 errors > "J6M" <j6m@adm.estp.fr> writes: >> xlc -O2 -qmaxmem=16384 -qsrcmsg -qlonglong -qnoansialias -I../../../../src/include >> -c -o tsquery.o tsquery.c >> 108 | PT_CLOSE = 5, >> ....................a >> a - 1506-275 (S) Unexpected text ',' encountered. > > Some compilers are picky about extra commas in enum lists, some aren't. > I guess we have not currently got any in the buildfarm that are. > >> xlc -O2 -qmaxmem=16384 -qsrcmsg -qlonglong -qnoansialias -I../include >> -I../../../../src/interfaces/ecpg/include >> -I../../../../src/interfaces/libpq -I../../../../src/include/utils -I../../../../src/include >> -c -o informix.o informix.c >> "/usr/include/stdio.h", line 434.12: 1506-343 (S) Redeclaration of >> fgetpos64 >> differs from previous declaration on line 274 of "/usr/include/stdio.h". >> "/usr/include/stdio.h", line 434.12: 1506-377 (I) The type "long long*" >> of >> parameter 2 differs from the previous type "long*". > > The problem here seems to be that informix.c was violating our coding > rule that no system headers may be included before c.h (or in this case, > postgres_fe.h). Please change the first few lines of the file to > this ordering: > > #define POSTGRES_ECPG_INTERNAL > #include "postgres_fe.h" > > #include <math.h> > #include <ctype.h> > #include <limits.h> > > #include <ecpgtype.h> > ... > > and see if it doesn't work then. > > BTW, it seems we do not have any buildfarm members running xlc. > If you can spare the cycles to build PG once a day or so, please > consider joining the buildfarm so these types of portability issues > can be caught sooner. > http://www.pgbuildfarm.org/index.html > > regards, tom lane