Обсуждение: Postgres 6.4.1 on DEC-ALPHA

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

Postgres 6.4.1 on DEC-ALPHA

От
Adriaan Joubert
Дата:
Hi,

    I'm having real problem to get postgres 6.4.1 to run on Alpha. It
compiled with only one minor problem, but when I try to do anything
(createdb, or psql template1) i get the following

> createdb
Connection to database 'template1' failed.
FATAL 1:  palloc failure: memory exhausted

createdb: database creation failed on postgres.


Running the postmaster -i -d 5 I get

-----------------------------------------
/data/pgsql/bin/postmaster: BackendStartup: pid 7916 user postgres db
template1
socket 5
/data/pgsql/bin/postmaster child[7916]: starting with
(/data/pgsql/bin/postgres,
 -p, -d5, -P5, -v131072, template1, )
FindExec: found "/data/pgsql/bin/postgres" using argv[0]
debug info:
        User         = postgres
        RemoteHost   = localhost
        RemotePort   = 0
        DatabaseName = template1
        Verbose      = 5
        Noversion    = f
        timings      = f
        dates        = Normal
        bufsize      = 64
        sortmem      = 512
        query echo   = f
InitPostgres
FATAL 1:  palloc failure: memory exhausted
proc_exit(0) [#0]
shmem_exit(0) [#0]
exit(0)
/data/pgsql/bin/postmaster: reaping dead processes...
/data/pgsql/bin/postmaster: CleanupProc: pid 7916 exited with status 0



Does anybody have any idea where this palloc failure comes from? I've
had postgres 6.3.2 running without
any problems. And the machine has got over 600MB of memory, so that
isn't the problem.

Cheers,

Adriaan


Re: [GENERAL] Postgres 6.4.1 on DEC-ALPHA

От
Carl Riches
Дата:
On Tue, 22 Dec 1998, Adriaan Joubert wrote:

> Hi,
>
>     I'm having real problem to get postgres 6.4.1 to run on Alpha. It
> compiled with only one minor problem, but when I try to do anything
> (createdb, or psql template1) i get the following
>

I have been unable to get postgres 6.4 to compile on our DEC Alphas
running Digital Unix 4.0d.  What version of the DEC OS are you running,
and what did you have to do to make it compile?

Thanks for your help,
Carl

Carl G. Riches
Software Engineer
Department of Mathematics
Box 354350            voice:     206-543-5082 or 206-616-3636
University of Washington    fax:       206-543-0397
Seattle, WA  98195-4350        internet:  riches@ms.washington.edu


Re: [GENERAL] Postgres 6.4.1 on DEC-ALPHA

От
Adriaan Joubert
Дата:
I managed to compile postgres 6.4.1 without too much hassle, with the
following

./configure --with-CC=cc --without-CXX

There was only a single problem in

/data/build/pgsql/src/backend/port/snprintf.c

where around line 120 it should read


#ifndef HAVE_LONG_INT_64
static void fmtnum __P((long_long value, int base, int dosign, int ljust,
int le
n, int zpad));
#else
static void fmtnum __P((long value, int base, int dosign, int ljust, int
len, in
t zpad));
#endif


Then everything is fine. Don't even try with gcc -- I've also tried with
the gcc from egcs 1.0.3
and there are a lot of errors.

Problem is that even when postgres has compiled, it isn't working. I've
spent most of two days
on this now, but am back on 6.3.2 now (sigh).

Adriaan


Re: [GENERAL] Postgres 6.4.1 on DEC-ALPHA

От
Bruce Momjian
Дата:
> I managed to compile postgres 6.4.1 without too much hassle, with the
> following
>
> ./configure --with-CC=cc --without-CXX
>
> There was only a single problem in
>
> /data/build/pgsql/src/backend/port/snprintf.c
>
> where around line 120 it should read
>
>
> #ifndef HAVE_LONG_INT_64
> static void fmtnum __P((long_long value, int base, int dosign, int ljust,
> int le
> n, int zpad));
> #else
> static void fmtnum __P((long value, int base, int dosign, int ljust, int
> len, in
> t zpad));
> #endif

Huh?  What platform are you using?

It currently reads:

    #ifndef HAVE_LONG_LONG_INT_64
    static void fmtnum __P((long value, int base, int dosign, int ljust, int len, i$
    #else
    static void fmtnum __P((long_long value, int base, int dosign, int ljust, int l$
    #endif

This was a last minute change suggested by someone, and it looked
correct.  We are saying if they don't have long long, use long.  It that
wrong?


>
>
> Then everything is fine. Don't even try with gcc -- I've also tried with
> the gcc from egcs 1.0.3
> and there are a lot of errors.
>
> Problem is that even when postgres has compiled, it isn't working. I've
> spent most of two days
> on this now, but am back on 6.3.2 now (sigh).

That is bad.  Please send us some more info.

--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

RE: [GENERAL] Postgres 6.4.1 on DEC-ALPHA

От
"Hiroshi Inoue"
Дата:
Hi all,

> -----Original Message-----
> From: owner-pgsql-general@postgreSQL.org
> [mailto:owner-pgsql-general@postgreSQL.org]On Behalf Of Bruce Momjian
> Sent: Thursday, December 24, 1998 6:14 AM
> To: Adriaan Joubert
> Cc: riches@ms.washington.edu; pgsql-general@postgreSQL.org
> Subject: Re: [GENERAL] Postgres 6.4.1 on DEC-ALPHA
>
>
> > I managed to compile postgres 6.4.1 without too much hassle, with the
> > following
> >
> > ./configure --with-CC=cc --without-CXX
> >
> > There was only a single problem in
> >
> > /data/build/pgsql/src/backend/port/snprintf.c
> >
> > where around line 120 it should read
> >
> >
> > #ifndef HAVE_LONG_INT_64
> > static void fmtnum __P((long_long value, int base, int dosign,
> int ljust,
> > int le
> > n, int zpad));
> > #else
> > static void fmtnum __P((long value, int base, int dosign, int ljust, int
> > len, in
> > t zpad));
> > #endif
>

On my platform(Solaris 2.51 x86),I also have the same problem.
And moreover there is another problem.

On my platform,type long long exists and the following step

        unsigned long_long uvalue;

causes compilation error(gcc version is 2.7.2.3).  long_long is
typedef'd and unsigned (typedef) is out of specification ?

Hiroshi Inoue
Inoue@tpf.co.jp


*** src/backend/port/snprintf.c.orig    Fri Dec 18 17:00:23 1998
--- src/backend/port/snprintf.c    Wed Dec 23 16:27:05 1998
***************
*** 48,53 ****
--- 48,54 ----
  /* IRIX doesn't do 'long long' in va_arg(), so use a typedef */
  #ifdef HAVE_LONG_LONG_INT_64
  typedef long long long_long;
+ typedef unsigned long long unsigned_long_long;
  #endif

  /*
***************
*** 114,120 ****

  static void fmtstr __P((char *value, int ljust, int len, int zpad, int
maxwidth));

! #ifndef HAVE_LONG_INT_64
  static void fmtnum __P((long value, int base, int dosign, int ljust, int
len, int zpad));
  #else
  static void fmtnum __P((long_long value, int base, int dosign, int ljust,
int len, int zpad));
--- 115,121 ----

  static void fmtstr __P((char *value, int ljust, int len, int zpad, int
maxwidth));

! #ifndef HAVE_LONG_LONG_INT_64
  static void fmtnum __P((long value, int base, int dosign, int ljust, int
len, int zpad));
  #else
  static void fmtnum __P((long_long value, int base, int dosign, int ljust,
int len, int zpad));
***************
*** 350,356 ****
  {
      int            signvalue = 0;
  #ifdef HAVE_LONG_LONG_INT_64
!     unsigned long_long uvalue;
  #else
      unsigned long uvalue;
  #endif
--- 351,357 ----
  {
      int            signvalue = 0;
  #ifdef HAVE_LONG_LONG_INT_64
!     unsigned_long_long uvalue;
  #else
      unsigned long uvalue;
  #endif


Re: [GENERAL] Postgres 6.4.1 on DEC-ALPHA

От
Bruce Momjian
Дата:
[Charset iso-8859-1 unsupported, filtering to ASCII...]
> Hi all,
>
> > -----Original Message-----
> > From: owner-pgsql-general@postgreSQL.org
> > [mailto:owner-pgsql-general@postgreSQL.org]On Behalf Of Bruce Momjian
> > Sent: Thursday, December 24, 1998 6:14 AM
> > To: Adriaan Joubert
> > Cc: riches@ms.washington.edu; pgsql-general@postgreSQL.org
> > Subject: Re: [GENERAL] Postgres 6.4.1 on DEC-ALPHA
> >
> >
> > > I managed to compile postgres 6.4.1 without too much hassle, with the
> > > following
> > >
> > > ./configure --with-CC=cc --without-CXX
> > >
> > > There was only a single problem in
> > >
> > > /data/build/pgsql/src/backend/port/snprintf.c
> > >
> > > where around line 120 it should read
> > >
> > >
> > > #ifndef HAVE_LONG_INT_64
> > > static void fmtnum __P((long_long value, int base, int dosign,
> > int ljust,
> > > int le
> > > n, int zpad));
> > > #else
> > > static void fmtnum __P((long value, int base, int dosign, int ljust, int
> > > len, in
> > > t zpad));
> > > #endif
> >
>
> On my platform(Solaris 2.51 x86),I also have the same problem.
> And moreover there is another problem.
>
> On my platform,type long long exists and the following step
>
>         unsigned long_long uvalue;
>
> causes compilation error(gcc version is 2.7.2.3).  long_long is
> typedef'd and unsigned (typedef) is out of specification ?

Yes, you have found two problems.  HAVE_LONG should have been
HAVE_LONG_LONG, and you can't unsigned a typedef.  I have applied fixes
for both of these.

This long long stuff was clearly broken, but now that we have configure
properly recognizing it, the snprint stuff is showing our problems.

Looks like we will need a patch for these problems.

--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026