Hello,

I have been trying to compile postgresql-7.0.3 on a uVax II running NetBSD
1.5, after some problems i am almost there, now i only get these errors
during the final compile:
gcc -I../include -I../backend -O2 -pipe -Wall -Wmissing-prototypes -Wmissin
g-declarations -o postgres access/SUBSYS.o bootstrap/SUBSYS.o
catalog/SUBSYS.o commands/SUBSYS.o executor/SUBSYS.o lib/SUBSYS.o
libpq/SUBSYS.o main/SUBSYS.o parser/SUBSYS.o nodes/SUBSYS.o
optimizer/SUBSYS.o port/SUBSYS.o postmaster/SUBSYS.o regex/SUBSYS.o
rewrite/SUBSYS.o storage/SUBSYS.o tcop/SUBSYS.o >utils/SUBSYS.o
../utils/version.o -lcrypt -lcompat -lm -lutil -ltermcap -lcurses
access/SUBSYS.o: Undefined symbol `r0' referenced
storage/SUBSYS.o: Undefined symbol `r0' referenced
collect2: ld returned 1 exit status
gmake[1]: *** [postgres] Error 1
gmake[1]: Leaving directory `/dinges/temp/postgresql-7.0.3/src/backend'
gmake: *** [all] Error 2
I have change something in /src/include/storage/s_lock.h (because else i
would get another error, saying that slock_t was already defined in os.h):
#if defined(NEED_VAX_TAS_ASM)
/*
* VAXen -- even multiprocessor ones
* (thanks to Tom Ivar Helbekkmo)
*/
#define TAS(lock) tas(lock)

typedef unsigned char slock_t; <---- DELETED THIS LINE

static __inline__ int
tas(volatile slock_t *lock)
{
register _res;

__asm__(" movl $1, r0 \
bbssi $0, (%1), 1 f \
clrl r0 \
1: movl r0, %0 "
: "=r"(_res) /* return value, in
register */
: "r"(lock) /* argument, 'lock
pointer', in register */
: "r0"); /* inline code uses
this register */
return (int) _res;
}

#endif /* NEED_VAX_TAS_ASM */
Can anybody help me and explain to me how to fix this?

Are there people here that have any postgresql version running on the vax?
which version do you use and which OS for your vax

thank you,
bart

Search Discussions

  • Bruce Momjian at Jan 18, 2001 at 1:19 am
    Do a mailing list search. Someone did work on a VAX port about a year
    ago. They never got it to work, though. Sounds like you have problems
    with the assembly code.


    [ Charset ISO-8859-1 unsupported, converting... ]
    Hello,

    I have been trying to compile postgresql-7.0.3 on a uVax II running NetBSD
    1.5, after some problems i am almost there, now i only get these errors
    during the final compile:
    gcc -I../include -I../backend -O2 -pipe -Wall -Wmissing-prototypes -Wmissin
    g-declarations -o postgres access/SUBSYS.o bootstrap/SUBSYS.o
    catalog/SUBSYS.o commands/SUBSYS.o executor/SUBSYS.o lib/SUBSYS.o
    libpq/SUBSYS.o main/SUBSYS.o parser/SUBSYS.o nodes/SUBSYS.o
    optimizer/SUBSYS.o port/SUBSYS.o postmaster/SUBSYS.o regex/SUBSYS.o
    rewrite/SUBSYS.o storage/SUBSYS.o tcop/SUBSYS.o >utils/SUBSYS.o
    ../utils/version.o -lcrypt -lcompat -lm -lutil -ltermcap -lcurses
    access/SUBSYS.o: Undefined symbol `r0' referenced
    storage/SUBSYS.o: Undefined symbol `r0' referenced
    collect2: ld returned 1 exit status
    gmake[1]: *** [postgres] Error 1
    gmake[1]: Leaving directory `/dinges/temp/postgresql-7.0.3/src/backend'
    gmake: *** [all] Error 2
    I have change something in /src/include/storage/s_lock.h (because else i
    would get another error, saying that slock_t was already defined in os.h):
    #if defined(NEED_VAX_TAS_ASM)
    /*
    * VAXen -- even multiprocessor ones
    * (thanks to Tom Ivar Helbekkmo)
    */
    #define TAS(lock) tas(lock)

    typedef unsigned char slock_t; <---- DELETED THIS LINE

    static __inline__ int
    tas(volatile slock_t *lock)
    {
    register _res;

    __asm__(" movl $1, r0 \
    bbssi $0, (%1), 1 f \
    clrl r0 \
    1: movl r0, %0 "
    : "=r"(_res) /* return value, in
    register */
    : "r"(lock) /* argument, 'lock
    pointer', in register */
    : "r0"); /* inline code uses
    this register */
    return (int) _res;
    }

    #endif /* NEED_VAX_TAS_ASM */
    Can anybody help me and explain to me how to fix this?

    Are there people here that have any postgresql version running on the vax?
    which version do you use and which OS for your vax

    thank you,
    bart

    --
    Bruce Momjian | http://candle.pha.pa.us
    pgman@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
  • Tom Lane at Jan 18, 2001 at 2:14 am

    "bart sikkes" <b.sikkes@student.utwente.nl> writes:
    I have been trying to compile postgresql-7.0.3 on a uVax II running NetBSD
    1.5, after some problems i am almost there, now i only get these errors
    during the final compile:
    gcc -I../include -I../backend -O2 -pipe -Wall -Wmissing-prototypes -Wmissin
    g-declarations -o postgres access/SUBSYS.o bootstrap/SUBSYS.o
    catalog/SUBSYS.o commands/SUBSYS.o executor/SUBSYS.o lib/SUBSYS.o
    libpq/SUBSYS.o main/SUBSYS.o parser/SUBSYS.o nodes/SUBSYS.o
    optimizer/SUBSYS.o port/SUBSYS.o postmaster/SUBSYS.o regex/SUBSYS.o
    rewrite/SUBSYS.o storage/SUBSYS.o tcop/SUBSYS.o >utils/SUBSYS.o
    ../utils/version.o -lcrypt -lcompat -lm -lutil -ltermcap -lcurses
    access/SUBSYS.o: Undefined symbol `r0' referenced
    storage/SUBSYS.o: Undefined symbol `r0' referenced
    collect2: ld returned 1 exit status

    I'll bet that the assembler is taking the 'r0' references in the TAS()
    snippet to be a global-variable name, rather than register name as
    intended. Possibly $0 or %0 or some such locution is needed.

    The VAX port has evidently not been used in a long time. I had noticed
    that it was inconsistent with all the other ports in defining slock_t
    in s_lock.h rather than in the OS-specific header files; that's clearly
    wrong now.

    Feel free to submit a patch once you get it worked out.

    regards, tom lane
  • Alfred Perlstein at Jan 18, 2001 at 2:24 am

    * Tom Lane [010117 18:14] wrote:
    "bart sikkes" <b.sikkes@student.utwente.nl> writes:
    I have been trying to compile postgresql-7.0.3 on a uVax II running NetBSD
    1.5, after some problems i am almost there, now i only get these errors
    during the final compile:
    gcc -I../include -I../backend -O2 -pipe -Wall -Wmissing-prototypes -Wmissin
    g-declarations -o postgres access/SUBSYS.o bootstrap/SUBSYS.o
    catalog/SUBSYS.o commands/SUBSYS.o executor/SUBSYS.o lib/SUBSYS.o
    libpq/SUBSYS.o main/SUBSYS.o parser/SUBSYS.o nodes/SUBSYS.o
    optimizer/SUBSYS.o port/SUBSYS.o postmaster/SUBSYS.o regex/SUBSYS.o
    rewrite/SUBSYS.o storage/SUBSYS.o tcop/SUBSYS.o >utils/SUBSYS.o
    ../utils/version.o -lcrypt -lcompat -lm -lutil -ltermcap -lcurses
    access/SUBSYS.o: Undefined symbol `r0' referenced
    storage/SUBSYS.o: Undefined symbol `r0' referenced
    collect2: ld returned 1 exit status

    I'll bet that the assembler is taking the 'r0' references in the TAS()
    snippet to be a global-variable name, rather than register name as
    intended. Possibly $0 or %0 or some such locution is needed.

    The VAX port has evidently not been used in a long time. I had noticed
    that it was inconsistent with all the other ports in defining slock_t
    in s_lock.h rather than in the OS-specific header files; that's clearly
    wrong now.

    Feel free to submit a patch once you get it worked out.
    It's been a long, long time, but I think r0 is actually a register
    name on VAX, dunno if it would cause a conflict, probably depends on
    the asm syntax.

    --
    -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
    "I have the heart of a child; I keep it in a jar on my desk."
  • Tom Ivar Helbekkmo at Jan 18, 2001 at 9:38 am

    Tom Lane writes:

    The VAX port has evidently not been used in a long time. I had noticed
    that it was inconsistent with all the other ports in defining slock_t
    in s_lock.h rather than in the OS-specific header files; that's clearly
    wrong now.
    I did the VAX port, and it worked, once upon a time. Now, I haven't
    had a NetBSD/vax system for a long time, and the surrounding code has
    changed. If noone else does anything about it, I probably will fix it
    eventually, but I can't do anything as it now stands.

    -tih
    --
    The basic difference is this: hackers build things, crackers break them.
  • Peter Eisentraut at Jan 18, 2001 at 11:26 pm

    bart sikkes writes:

    I have been trying to compile postgresql-7.0.3 on a uVax II running NetBSD
    The spinlock assembly code for VAX was corrupted during a code indentation
    run. I'll try to remember to fix it over the weekend.

    --
    Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
  • Bruce Momjian at Jan 18, 2001 at 11:32 pm

    bart sikkes writes:
    I have been trying to compile postgresql-7.0.3 on a uVax II running NetBSD
    The spinlock assembly code for VAX was corrupted during a code indentation
    run. I'll try to remember to fix it over the weekend.
    Oh, no. That is terrible. This the first I heard about it. Any idea
    when it happened so I can fix it?

    --
    Bruce Momjian | http://candle.pha.pa.us
    pgman@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
  • Bruce Momjian at Jan 18, 2001 at 11:41 pm

    bart sikkes writes:
    I have been trying to compile postgresql-7.0.3 on a uVax II running NetBSD
    The spinlock assembly code for VAX was corrupted during a code indentation
    run. I'll try to remember to fix it over the weekend.
    OK, here is the fix:

    __asm__(" movl $1, r0 \
    bbssi $0, (%1), 1f \
    ^^
    clrl r0 \


    The old pgindent had a bug with numbers followed by a letter, '1f -> '1 f'.

    The new version I have fixes that problem, and I verified that the VAX
    ASM doesn't change under the new pgindent.

    --
    Bruce Momjian | http://candle.pha.pa.us
    pgman@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
  • Bruce Momjian at Jan 18, 2001 at 11:41 pm
    FYI, I just committed the fix to the CVS tree.

    bart sikkes writes:
    I have been trying to compile postgresql-7.0.3 on a uVax II running NetBSD
    The spinlock assembly code for VAX was corrupted during a code indentation
    run. I'll try to remember to fix it over the weekend.

    --
    Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/

    --
    Bruce Momjian | http://candle.pha.pa.us
    pgman@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
  • Bruce Momjian at Jan 18, 2001 at 11:42 pm
    Also, the current pgindent README has:

    find . -name '*.[ch]' -type f -print | egrep -v '\+\+|/odbc/|s_lock.h' | xargs> bart sikkes writes:

    so I exclude s_lock.h from the pgindent run for exactly this reason that
    the ASM could get corrupted.
    I have been trying to compile postgresql-7.0.3 on a uVax II running NetBSD
    The spinlock assembly code for VAX was corrupted during a code indentation
    run. I'll try to remember to fix it over the weekend.

    --
    Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/

    --
    Bruce Momjian | http://candle.pha.pa.us
    pgman@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

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppgsql-ports @
categoriespostgresql
postedJan 18, '01 at 12:35a
activeJan 18, '01 at 11:42p
posts10
users6
websitepostgresql.org
irc#postgresql

People

Translate

site design / logo © 2022 Grokbase