Thread: Bug #612: PostgreSQL 7.2 does not build according to documentation under IRIX w/ MIPSpro

Bug #612: PostgreSQL 7.2 does not build according to documentation under IRIX w/ MIPSpro

From
pgsql-bugs@postgresql.org
Date:
Jonathan C. Patschke (jp@celestrion.net) reports a bug with a severity of 1
The lower the number the more severe it is.

Short Description
PostgreSQL 7.2 does not build according to documentation under IRIX w/ MIPSpro

Long Description
Ignore my submission about sh-vs-bash in configure.  Configure is still broken (doesn't set HAVE_SNPRINTF_DECL
properly),and the resulting tree still doesn't build under IRIX with MIPSpro ($CC accidentally got reset to gcc between
tries).

Should any of the developers desire an IRIX build-box, email me, and I'll see what I can do to make my system
available.

Here's my environment:

[jp@firehawk:/usr/src/postgresql-7.2]$ echo $BASH_VERSION -- $CC -- $CXX
2.05.0(1)-release -- /usr/bin/cc -- /usr/bin/CC
[jp@firehawk:/usr/src/postgresql-7.2]$ cc -version
MIPSpro Compilers: Version 7.3.1.2m
[jp@firehawk:/usr/src/postgresql-7.2]$ CC -version
MIPSpro Compilers: Version 7.3.1.2m
[jp@firehawk:/usr/src/postgresql-7.2]$  gmake --version
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
Built for mips-sgi-irix6.5


Here is the output of a configure + build run on a virgin source tree:
 
[jp@firehawk:/usr/src/postgresql-7.2]$ bash configure --prefix=/usr/db/postgres --with-includes=/usr/freeware/include
--with-libs=/usr/freeware/lib--with-tcl --with-tclconfig=/usr/freeware/lib --with-tkconfig=/usr/freeware/lib
--with-perl--with-openssl=/usr/freeware/ssl --enable-syslog > build.out 2>&1 ; gmake >> build.out 2>&1
 

creating cache ./config.cache
checking host system type... mips-sgi-irix6.5
checking which template to use... irix5
checking whether to build with locale support... no
checking whether to build with recode support... no
checking whether to build with multibyte character support... no
checking whether NLS is wanted... no
checking for default port number... 5432
checking for default soft limit on number of connections... 32
checking for gcc... /usr/bin/cc
checking whether the C compiler (/usr/bin/cc -O3 -I/usr/freeware/include -L/usr/freeware/lib32 -L/usr/lib32) works...
yes
checking whether the C compiler (/usr/bin/cc -O3 -I/usr/freeware/include -L/usr/freeware/lib32 -L/usr/lib32) is a
cross-compiler...no
 
checking whether we are using GNU C... no
checking whether /usr/bin/cc accepts -g... yes
using CFLAGS=-O3 -I/usr/freeware/include
checking whether the C compiler (/usr/bin/cc -O3 -I/usr/freeware/include -L/usr/freeware/lib32 -L/usr/lib32) works...
yes
checking whether the C compiler (/usr/bin/cc -O3 -I/usr/freeware/include -L/usr/freeware/lib32 -L/usr/lib32) is a
cross-compiler...no
 
checking for Cygwin environment... no
checking for mingw32 environment... no
checking for executable suffix... no
checking how to run the C preprocessor... /lib/cpp
checking whether to build with Tcl... yes
checking whether to build with Tk... yes
checking whether to build Perl modules... yes
checking whether to build Python modules... no
checking whether to build Java/JDBC tools... no
checking whether to build with PAM support... no
building with OpenSSL support
checking whether to build the ODBC driver... no
checking whether to build C++ modules... no
using CPPFLAGS=  -I/usr/freeware/include
using LDFLAGS=-L/usr/freeware/lib32 -L/usr/lib32  -L/usr/freeware/lib -L/usr/freeware/ssl/lib
checking for mawk... no
checking for gawk... gawk
checking for flex... /usr/freeware/bin/flex
checking whether ln -s works... yes
checking for non-GNU ld... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... no
checking for ranlib... ranlib
checking for lorder... no
checking for tar... /usr/freeware/bin/tar
checking for bison... bison -y
checking for wish... /usr/freeware/bin/wish
checking for perl... /usr/freeware/bin/perl
checking Perl installation directories... done
checking for readline... yes (-lreadline -ltermcap)
checking for library containing using_history... none required
checking for main in -lbsd... yes
checking for setproctitle in -lutil... no
checking for main in -lm... yes
checking for main in -ldl... yes
checking for main in -lsocket... yes
checking for main in -lnsl... yes
checking for main in -lipc... no
checking for main in -lIPC... no
checking for main in -llc... no
checking for main in -ldld... no
checking for main in -lld... no
checking for main in -lcompat... no
checking for main in -lBSD... no
checking for main in -lgen... yes
checking for main in -lPW... yes
checking for main in -lresolv... no
checking for main in -lunix... no
checking for library containing crypt... none required
checking for __inet_ntoa in -lbind... no
checking for inflate in -lz... yes
checking for library containing fdatasync... none required
checking for CRYPTO_new_ex_data in -lcrypto... yes
checking for SSL_library_init in -lssl... yes
checking for crypt.h... yes
checking for dld.h... no
checking for endian.h... no
checking for fp_class.h... yes
checking for getopt.h... yes
checking for ieeefp.h... yes
checking for pwd.h... yes
checking for sys/ipc.h... yes
checking for sys/pstat.h... no
checking for sys/select.h... yes
checking for sys/sem.h... yes
checking for sys/socket.h... no
checking for sys/shm.h... yes
checking for sys/types.h... yes
checking for sys/un.h... yes
checking for termios.h... yes
checking for kernel/OS.h... no
checking for kernel/image.h... no
checking for SupportDefs.h... no
checking for netinet/in.h... yes
checking for netinet/tcp.h... yes
checking whether string.h and strings.h may both be included... yes
checking for readline/readline.h... yes
checking for readline/history.h... yes
checking for openssl/ssl.h... yes
checking for openssl/err.h... yes
checking for working const... yes
checking for inline... __inline
checking for preprocessor stringizing operator... no
checking for signed types... yes
checking for volatile... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for tm_zone in struct tm... no
checking for tzname... yes
checking for union semun... yes
checking for struct cmsgcred... no
checking for struct fcred... no
checking for struct sockcred... no
checking for struct sockaddr_un... yes
checking for int timezone... yes
checking types of arguments for accept()... int, struct sockaddr *, int *
checking whether gettimeofday takes only one argument... no
checking for 8-bit clean memcmp... yes
checking for fcvt... yes
checking for getopt_long... no
checking for memmove... yes
checking for pstat... no
checking for setproctitle... no
checking for setsid... yes
checking for sigprocmask... yes
checking for sysconf... yes
checking for waitpid... yes
checking for dlopen... yes
checking for fdatasync... yes
checking for PS_STRINGS... no
checking for snprintf... yes
checking for vsnprintf... yes
checking for isinf... no
checking for fpclass... yes
checking for getrusage... yes
checking for srandom... yes
checking for gethostname... yes
checking for random... yes
checking for inet_aton... yes
checking for strerror... yes
checking for strdup... yes
checking for strtol... yes
checking for strtoul... yes
checking for strcasecmp... yes
checking for cbrt... yes
checking for rint... yes
checking for rl_completion_append_character... yes
checking for rl_completion_matches... yes
checking for rl_filename_completion_function... yes
checking for finite... yes
checking for sigsetjmp... yes
checking for syslog... yes
checking for optreset... no
checking test program... ok
checking whether long int is 64 bits... no
checking whether long long int is 64 bits... yes
checking whether snprintf handles 'long long int' as %lld... yes
checking for strtoll... yes
checking for strtoull... yes
checking for atexit... yes
checking size of unsigned long... 4
checking alignment of short... 2
checking alignment of int... 4
checking alignment of long... 4
checking alignment of long long int... 8
checking alignment of double... 8
checking for int8... no
checking for uint8... no
checking for int64... no
checking for uint64... no
checking for sig_atomic_t... yes
checking for POSIX signal interface... yes
checking for tclsh... /usr/freeware/bin/tclsh
checking for tclConfig.sh... /usr/freeware/lib/tclConfig.sh
checking for tkConfig.sh... /usr/freeware/lib/tkConfig.sh
checking for onsgmls... no
checking for nsgmls... no
updating cache ./config.cache
creating ./config.status
creating GNUmakefile
creating src/GNUmakefile
creating src/Makefile.global
creating src/backend/port/Makefile
creating src/include/pg_config.h
linking ./src/backend/port/dynloader/irix5.c to src/backend/port/dynloader.c
linking ./src/backend/port/dynloader/irix5.h to src/include/dynloader.h
linking ./src/include/port/irix5.h to src/include/pg_config_os.h
linking ./src/makefiles/Makefile.irix5 to src/Makefile.port
linking ./src/backend/port/tas/dummy.s to src/backend/port/tas.s

gmake -C doc all
gmake[1]: Entering directory `/usr/src/postgresql-7.2/doc'
gzip -d -c man.tar.gz | /usr/freeware/bin/tar xf -
for file in man1/*.1; do \
  mv $file $file.bak && \
  sed -e 's/\\fR(l)/\\fR(5)/' $file.bak >$file && \
  rm $file.bak || exit; \
done
/bin/sh ../config/mkinstalldirs man5
mkdir man5
for file in manl/*.l; do \
  sed -e '/^\.TH/s/"l"/"5sql"/'   \
              -e 's/\\fR(l)/\\fR(5)/' \
      $file >man5/`basename $file | sed 's/.l$/.5sql/'` || exit; \
done
gmake[1]: Leaving directory `/usr/src/postgresql-7.2/doc'
gmake -C src all
gmake[1]: Entering directory `/usr/src/postgresql-7.2/src'
gmake -C backend all
gmake[2]: Entering directory `/usr/src/postgresql-7.2/src/backend'
prereqdir=`cd parser/ >/dev/null && pwd` && \
  cd ../../src/include/parser/ && rm -f parse.h && \
  ln -s "$prereqdir/parse.h" .
gmake -C utils fmgroids.h
gmake[3]: Entering directory `/usr/src/postgresql-7.2/src/backend/utils'
CPP='/lib/cpp' AWK='gawk' /bin/sh Gen_fmgrtab.sh ../../../src/include/catalog/pg_proc.h
gmake[3]: Leaving directory `/usr/src/postgresql-7.2/src/backend/utils'
cd ../../src/include/utils/ && rm -f fmgroids.h && \
    ln -s ../../../src/backend/utils/fmgroids.h .
gmake -C access all
gmake[3]: Entering directory `/usr/src/postgresql-7.2/src/backend/access'
gmake -C common SUBSYS.o
gmake[4]: Entering directory `/usr/src/postgresql-7.2/src/backend/access/common'
/usr/bin/cc -O3 -I/usr/freeware/include -woff 1164,1171,1185,1195,1552 -I../../../../src/include
-I/usr/freeware/include-U_NO_XOPEN4  -c -o heaptuple.o heaptuple.c
 
cc-1143 cc: ERROR File = ../../../../src/include/c.h, Line = 631
  Declaration is incompatible with
          "int snprintf(char *, ssize_t, const char *, ...)" (declared at line
          235 of "/usr/include/stdio.h").

  snprintf(char *str, size_t count, const char *fmt,...)
  ^

cc-1143 cc: ERROR File = ../../../../src/include/c.h, Line = 637
  Declaration is incompatible with
          "int vsnprintf(char *, ssize_t, const char *, char *)" (declared at
          line 244 of "/usr/include/stdio.h").

  extern int    vsnprintf(char *str, size_t count, const char *fmt, va_list args);
                ^

cc-1065 cc: ERROR File = ../../../../src/include/catalog/pg_attribute.h, Line = 43
  A semicolon is expected at this point.

  {
  ^

cc-1012 cc: WARNING File = ../../../../src/include/catalog/pg_attribute.h, Line = 69
  Parsing restarts here after previous syntax error.

      int2        attlen;
                        ^

cc-1166 cc: ERROR File = ../../../../src/include/catalog/pg_attribute.h, Line = 145
  Expected a declaration.

  } FormData_pg_attribute;
  ^

cc-1020 cc: ERROR File = ../../../../src/include/catalog/pg_attribute.h, Line = 160
  The identifier "FormData_pg_attribute" is undefined.

  typedef FormData_pg_attribute *Form_pg_attribute;
          ^

cc-1065 cc: ERROR File = ../../../../src/include/catalog/pg_am.h, Line = 38
  A semicolon is expected at this point.

  {
  ^

cc-1012 cc: WARNING File = ../../../../src/include/catalog/pg_am.h, Line = 59
  Parsing restarts here after previous syntax error.

      regproc        ambuild;        /* "build new index" function */
                            ^

cc-1166 cc: ERROR File = ../../../../src/include/catalog/pg_am.h, Line = 62
  Expected a declaration.

  } FormData_pg_am;
  ^

cc-1020 cc: ERROR File = ../../../../src/include/catalog/pg_am.h, Line = 69
  The identifier "FormData_pg_am" is undefined.

  typedef FormData_pg_am *Form_pg_am;
          ^

cc-1065 cc: ERROR File = ../../../../src/include/catalog/pg_class.h, Line = 44
  A semicolon is expected at this point.

  {
  ^

cc-1012 cc: WARNING File = ../../../../src/include/catalog/pg_class.h, Line = 65
  Parsing restarts here after previous syntax error.

      int2        reltriggers;    /* # of TRIGGERs */
                             ^

cc-1166 cc: ERROR File = ../../../../src/include/catalog/pg_class.h, Line = 78
  Expected a declaration.

  } FormData_pg_class;
  ^

cc-1020 cc: ERROR File = ../../../../src/include/catalog/pg_class.h, Line = 89
  The identifier "FormData_pg_class" is undefined.

  typedef FormData_pg_class *Form_pg_class;
          ^

cc-1065 cc: ERROR File = ../../../../src/include/catalog/pg_type.h, Line = 40
  A semicolon is expected at this point.

  {
  ^

cc-1012 cc: WARNING File = ../../../../src/include/catalog/pg_type.h, Line = 66
  Parsing restarts here after previous syntax error.

      bool        typbyval;
                          ^

cc-1166 cc: ERROR File = ../../../../src/include/catalog/pg_type.h, Line = 150
  Expected a declaration.

  } FormData_pg_type;
  ^

cc-1020 cc: ERROR File = ../../../../src/include/catalog/pg_type.h, Line = 157
  The identifier "FormData_pg_type" is undefined.

  typedef FormData_pg_type *Form_pg_type;
          ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 51
  Expression must have pointer-to-struct or pointer-to-union type.

          data_length = att_align(data_length, att[i]->attlen, att[i]->attalign);
                        ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 51
  Expression must have pointer-to-struct or pointer-to-union type.

          data_length = att_align(data_length, att[i]->attlen, att[i]->attalign);
                        ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 51
  Expression must have pointer-to-struct or pointer-to-union type.

          data_length = att_align(data_length, att[i]->attlen, att[i]->attalign);
                        ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 52
  Expression must have pointer-to-struct or pointer-to-union type.

          data_length = att_addlength(data_length, att[i]->attlen, value[i]);
                        ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 52
  Expression must have pointer-to-struct or pointer-to-union type.

          data_length = att_addlength(data_length, att[i]->attlen, value[i]);
                        ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 108
  Expression must have pointer-to-struct or pointer-to-union type.

          data = (char *) att_align((long) data, att[i]->attlen, att[i]->attalign);
                          ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 108
  Expression must have pointer-to-struct or pointer-to-union type.

          data = (char *) att_align((long) data, att[i]->attlen, att[i]->attalign);
                          ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 108
  Expression must have pointer-to-struct or pointer-to-union type.

          data = (char *) att_align((long) data, att[i]->attlen, att[i]->attalign);
                          ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 110
  Expression must have pointer-to-struct or pointer-to-union type.

          if (att[i]->attbyval)
              ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 113
  Expression must have pointer-to-struct or pointer-to-union type.

              store_att_byval(data, value[i], att[i]->attlen);
              ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 113
  Expression must have pointer-to-struct or pointer-to-union type.

              store_att_byval(data, value[i], att[i]->attlen);
              ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 115
  Expression must have pointer-to-struct or pointer-to-union type.

          else if (att[i]->attlen == -1)
                   ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 131
  Expression must have pointer-to-struct or pointer-to-union type.

                     (size_t) (att[i]->attlen));
                               ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 134
  Expression must have pointer-to-struct or pointer-to-union type.

          data = (char *) att_addlength((long) data, att[i]->attlen, value[i]);
                          ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 134
  Expression must have pointer-to-struct or pointer-to-union type.

          data = (char *) att_addlength((long) data, att[i]->attlen, value[i]);
                          ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 296
  Expression must have pointer-to-struct or pointer-to-union type.

          if (att[attnum]->attcacheoff != -1)
              ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 298
  Expression must have pointer-to-struct or pointer-to-union type.

              return fetchatt(att[attnum],
                     ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 298
  Expression must have pointer-to-struct or pointer-to-union type.

              return fetchatt(att[attnum],
                     ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 298
  Expression must have pointer-to-struct or pointer-to-union type.

              return fetchatt(att[attnum],
                     ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 298
  Expression must have pointer-to-struct or pointer-to-union type.

              return fetchatt(att[attnum],
                     ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 298
  Expression must have pointer-to-struct or pointer-to-union type.

              return fetchatt(att[attnum],
                     ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 298
  Expression must have pointer-to-struct or pointer-to-union type.

              return fetchatt(att[attnum],
                     ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 298
  Expression must have pointer-to-struct or pointer-to-union type.

              return fetchatt(att[attnum],
                     ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 311
  Expression must have pointer-to-struct or pointer-to-union type.

                  if (att[j]->attlen <= 0)
                      ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 335
  Expression must have pointer-to-struct or pointer-to-union type.

          att[0]->attcacheoff = 0;
          ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 337
  Expression must have pointer-to-struct or pointer-to-union type.

          while (j < attnum && att[j]->attcacheoff > 0)
                               ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 340
  Expression must have pointer-to-struct or pointer-to-union type.

          off = att[j - 1]->attcacheoff + att[j - 1]->attlen;
                ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 340
  Expression must have pointer-to-struct or pointer-to-union type.

          off = att[j - 1]->attcacheoff + att[j - 1]->attlen;
                                          ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 345
  Expression must have pointer-to-struct or pointer-to-union type.

                att[j]->attcacheoff == -1 &&
                ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 347
  Expression must have pointer-to-struct or pointer-to-union type.

                (HeapTupleAllFixed(tuple) || att[j]->attlen > 0)); j++)
                                             ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 353
  Expression must have pointer-to-struct or pointer-to-union type.

              off = att_align(off, att[j]->attlen, att[j]->attalign);
                    ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 353
  Expression must have pointer-to-struct or pointer-to-union type.

              off = att_align(off, att[j]->attlen, att[j]->attalign);
                    ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 353
  Expression must have pointer-to-struct or pointer-to-union type.

              off = att_align(off, att[j]->attlen, att[j]->attalign);
                    ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 355
  Expression must have pointer-to-struct or pointer-to-union type.

              att[j]->attcacheoff = off;
              ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 357
  Expression must have pointer-to-struct or pointer-to-union type.

              off = att_addlength(off, att[j]->attlen, tp + off);
                    ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 357
  Expression must have pointer-to-struct or pointer-to-union type.

              off = att_addlength(off, att[j]->attlen, tp + off);
                    ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 360
  Expression must have pointer-to-struct or pointer-to-union type.

          return fetchatt(att[attnum], tp + att[attnum]->attcacheoff);
                 ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 360
  Expression must have pointer-to-struct or pointer-to-union type.

          return fetchatt(att[attnum], tp + att[attnum]->attcacheoff);
                 ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 360
  Expression must have pointer-to-struct or pointer-to-union type.

          return fetchatt(att[attnum], tp + att[attnum]->attcacheoff);
                 ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 360
  Expression must have pointer-to-struct or pointer-to-union type.

          return fetchatt(att[attnum], tp + att[attnum]->attcacheoff);
                 ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 360
  Expression must have pointer-to-struct or pointer-to-union type.

          return fetchatt(att[attnum], tp + att[attnum]->attcacheoff);
                 ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 360
  Expression must have pointer-to-struct or pointer-to-union type.

          return fetchatt(att[attnum], tp + att[attnum]->attcacheoff);
                 ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 360
  Expression must have pointer-to-struct or pointer-to-union type.

          return fetchatt(att[attnum], tp + att[attnum]->attcacheoff);
                 ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 390
  Expression must have pointer-to-struct or pointer-to-union type.

              if (usecache && att[i]->attcacheoff != -1)
                              ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 391
  Expression must have pointer-to-struct or pointer-to-union type.

                  off = att[i]->attcacheoff;
                        ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 394
  Expression must have pointer-to-struct or pointer-to-union type.

                  off = att_align(off, att[i]->attlen, att[i]->attalign);
                        ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 394
  Expression must have pointer-to-struct or pointer-to-union type.

                  off = att_align(off, att[i]->attlen, att[i]->attalign);
                        ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 394
  Expression must have pointer-to-struct or pointer-to-union type.

                  off = att_align(off, att[i]->attlen, att[i]->attalign);
                        ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 397
  Expression must have pointer-to-struct or pointer-to-union type.

                      att[i]->attcacheoff = off;
                      ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 400
  Expression must have pointer-to-struct or pointer-to-union type.

              off = att_addlength(off, att[i]->attlen, tp + off);
                    ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 400
  Expression must have pointer-to-struct or pointer-to-union type.

              off = att_addlength(off, att[i]->attlen, tp + off);
                    ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 402
  Expression must have pointer-to-struct or pointer-to-union type.

              if (usecache && att[i]->attlen == -1)
                              ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 406
  Expression must have pointer-to-struct or pointer-to-union type.

          off = att_align(off, att[attnum]->attlen, att[attnum]->attalign);
                ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 406
  Expression must have pointer-to-struct or pointer-to-union type.

          off = att_align(off, att[attnum]->attlen, att[attnum]->attalign);
                ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 406
  Expression must have pointer-to-struct or pointer-to-union type.

          off = att_align(off, att[attnum]->attlen, att[attnum]->attalign);
                ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 408
  Expression must have pointer-to-struct or pointer-to-union type.

          return fetchatt(att[attnum], tp + off);
                 ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 408
  Expression must have pointer-to-struct or pointer-to-union type.

          return fetchatt(att[attnum], tp + off);
                 ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 408
  Expression must have pointer-to-struct or pointer-to-union type.

          return fetchatt(att[attnum], tp + off);
                 ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 661
  Expression must have pointer-to-struct or pointer-to-union type.

      numberOfAttributes = RelationGetForm(relation)->relnatts;
                           ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 677
  Expression must have pointer-to-struct or pointer-to-union type.

              value[attoff] = heap_getattr(tuple,
                              ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 677
  Expression must have pointer-to-struct or pointer-to-union type.

              value[attoff] = heap_getattr(tuple,
                              ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 677
  Expression must have pointer-to-struct or pointer-to-union type.

              value[attoff] = heap_getattr(tuple,
                              ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 677
  Expression must have pointer-to-struct or pointer-to-union type.

              value[attoff] = heap_getattr(tuple,
                              ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 677
  Expression must have pointer-to-struct or pointer-to-union type.

              value[attoff] = heap_getattr(tuple,
                              ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 677
  Expression must have pointer-to-struct or pointer-to-union type.

              value[attoff] = heap_getattr(tuple,
                              ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 677
  Expression must have pointer-to-struct or pointer-to-union type.

              value[attoff] = heap_getattr(tuple,
                              ^

cc-1130 cc: ERROR File = heaptuple.c, Line = 677
  Expression must have pointer-to-struct or pointer-to-union type.

              value[attoff] = heap_getattr(tuple,
                              ^

81 errors detected in the compilation of "heaptuple.c".
gmake[4]: *** [heaptuple.o] Error 2
gmake[4]: Leaving directory `/usr/src/postgresql-7.2/src/backend/access/common'
gmake[3]: *** [common-recursive] Error 2
gmake[3]: Leaving directory `/usr/src/postgresql-7.2/src/backend/access'
gmake[2]: *** [access-recursive] Error 2
gmake[2]: Leaving directory `/usr/src/postgresql-7.2/src/backend'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/usr/src/postgresql-7.2/src'
gmake: *** [all] Error 2


Sample Code


No file was uploaded with this report
pgsql-bugs@postgresql.org writes:
> Ignore my submission about sh-vs-bash in configure.  Configure is still broken (doesn't set HAVE_SNPRINTF_DECL
properly),and the resulting tree still doesn't build under IRIX with MIPSpro ($CC accidentally got reset to gcc between
tries).

A lot of this looks like problems with configure using the wrong cpp
to do C preprocessor tests.  In particular the syntax errors in the
include/catalog files suggest that configure's conclusion that you
have pre-ANSI preprocessing:
    > checking for preprocessor stringizing operator... no
is wrong.  I see
    > checking how to run the C preprocessor... /lib/cpp
and I wonder whether /lib/cpp is actually equivalent to /usr/bin/cc's
preprocessing.  Does /usr/bin/cc accept a -E switch?  If so, why didn't
configure use that?  (Do you maybe have CPP=/lib/cpp in your
environment?)

Also, where did configure come by all these switches for cc:

> checking whether the C compiler (/usr/bin/cc -O3 -I/usr/freeware/include -L/usr/freeware/lib32 -L/usr/lib32) works...
yes

Bottom line is that I suspect configure is being misled by some of
your environment settings.  But another possibility is that
src/makefiles/Makefile.irix5 is doing something inappropriate.
In particular I wonder why it has
    override CPPFLAGS += -U_NO_XOPEN4
Is this (still) appropriate for IRIX?  If so, perhaps it needs to be
done in src/template/irix5 instead (so that configure will see it)?

            regards, tom lane

Re: Bug #612: PostgreSQL 7.2 does not build according to

From
Peter Eisentraut
Date:
> Ignore my submission about sh-vs-bash in configure.  Configure is
> still broken (doesn't set HAVE_SNPRINTF_DECL properly), and the
> resulting tree still doesn't build under IRIX with MIPSpro ($CC
> accidentally got reset to gcc between tries).

Shows us the config.log file.

--
Peter Eisentraut   peter_e@gmx.net

Re: Bug #612: PostgreSQL 7.2 does not build according to

From
"Jonathan C. Patschke"
Date:
> A lot of this looks like problems with configure using the wrong cpp
> to do C preprocessor tests.  In particular the syntax errors in the

I tried setting it manually and that fixed it.  I couldn't get configure
to work using either method of getting at MIPSpro's preprocessor (/lib/cpp
and /usr/bin/cc -E should both work).  So, I told it to use GCC's
preprocessor, and all was well.

> and I wonder whether /lib/cpp is actually equivalent to /usr/bin/cc's
> preprocessing.  Does /usr/bin/cc accept a -E switch?  If so, why didn't
> configure use that?  (Do you maybe have CPP=/lib/cpp in your
> environment?)

/lib/cpp is the proper preprocessor for MIPSpro.  However, it just didn't
seem to generate things properly.  For example, it absolutely failed to
generate the table mapping function-names to IDs.

> > checking whether the C compiler (/usr/bin/cc -O3
-I/usr/freeware/include -L/usr/freeware/lib32 -L/usr/lib32) works... yes

That's in my environment.  It saves me from having to include them every
time, as all the vendor-supplied stuff is in /usr, and all the GNU and
otherwise-freeware is in /usr/freeware.  It's an IRIX convention.

> Bottom line is that I suspect configure is being misled by some of
> your environment settings.  But another possibility is that
> src/makefiles/Makefile.irix5 is doing something inappropriate.
> In particular I wonder why it has
>     override CPPFLAGS += -U_NO_XOPEN4
> Is this (still) appropriate for IRIX?  If so, perhaps it needs to be
> done in src/template/irix5 instead (so that configure will see it)?

I don't -think- it's still appropriate, but I don't know.  Thanks to
Robert E. Bruccoleri, I got it working.  I made a few modifications to the
script he gave me.  Here's mine:

#!/bin/ksh -x

rm -f config.cache config.status

export SGI_ABI=-n32
export CC=/usr/bin/cc
export CXX=/usr/bin/CC
cat >config.cache <<EOF
ac_cv_lib_nsl_main=${ac_cv_lib_nsl_main='no'}
ac_cv_prog_CPP=${ac_cv_prog_CPP='/usr/freeware/bin/gcc -E'}
ac_cv_prog_gcc=${ac_cv_prog_gcc=no}
ac_cv_prog_perl=${ac_cv_prog_perl=/usr/freeware/bin/perl}
EOF
gmake clean
CC="cc -n32" \
AWK=/usr/freeware/bin/gawk \
INSTALL=/usr/src/postgresql-7.2/config/install-sh \
LDFLAGS="-rpath /usr/freeware/lib" \
./configure --prefix=/usr/db/postgres \
        --enable-hba \
        --with-pgport=5432 \
        --disable-locale \
        --enable-cassert \
        --with-template=irix5 \
        --with-includes="/usr/freeware/include
/usr/freeware/include/readline" \
        --with-libs=/usr/freeware/lib \
        --without-CXX \
        --with-maxbackends=128 \
        --enable-debug \
        --enable-syslog \
        --with-tcl \
        --with-tclconfig=/usr/freeware/lib \
        --with-tkconfig=/usr/freeware/lib \
        --with-openssl=/usr/freeware/ssl \
#       --with-perl \
        --without-java \
        --enable-odbc
gmake
gmake check

The PERL stuff is disabled because I got an odd linker error ("device not
found" or somesuch) that I couldn't fix while linking to libperl.so.  I
couldn't find any documentation on when the linker might throw that error,
so I gave up.

There's one warning that really bothered me, though.  I don't know the
code well-enough to make this call, but I almost have to agree with the
compiler:

  cc-1184 cc: WARNING File = dynahash.c, Line = 545
  "=" is used where where "==" may have been intended.

                Assert(currBucket && !(saveState.currBucket = NULL));

But, like I said, I don't understand the internals of the code well enough
to make that call.  I just thought I'd bring it up in case it was causing
somebody grief.

Anyway, PostgreSQL compiles/works now, and I thank you guys so much for
being so helpful and for producing such a wonderful product.

--Jonathan