Subject: Re: Re; Postgres95
To: None <port-arm32@NetBSD.ORG>
From: Robert Black <r.black@ic.ac.uk>
List: port-arm32
Date: 11/18/1996 14:22:18
On Nov 17, 6:03pm, Dave Millen wrote:
> Subject: Re; Postgres95
> Hi Stefan,
>
> on 6/11/96 you wrote:
>
> > As described in the docs, I used gmake to make the MAKEFILE.global.
> > Compiling it with
> >
> > PORTNAME=BSD44_derived
> >
> > which should be for 'OSs derived from 4.4-lite BSD (NetBSD, FreeBSD)',
> > according to the documentation, resulted in a compilation phase of about 20
> > minutes and a final abort with the following error messages:
> >
> >
> > /usr/local/steve/postgres95/src/backend/storage/ipc/s_lock.c:
> > In function
'tas':
> > /usr/local/steve/postgres95/src/backend/storage/ipc/s_lock.c:393:
> > Inconsistent operand constraints in an
'asm'
> >
> >
> > The relevant code there is
> >
> > #if defined(PORTNAME_BSD44_derived) || \
> > defined(PORTNAME_bsdi) || \
> > defined(PORTNAME_bsdi_2_1) || \
> > defined(PORTNAME_linux)
> >
> > int
> > tas(slock_t *m)
> > {
> > slock_t res;
> > __asm__("xchgb %0,%1":"=q" (res),"=m" (*m):"0" (0x1));
> > return(res);
> > }
>
>
> There were several suggestions for the meaning of this, and I am not
> familiar enough with Intel assembler to know whether it's 'one of
> theirs';-) but I am experienced in 680x0 and it's NOT that.
>
> Reading between the lines, I think the code checks bit 0 of 'm' and
> returns 1 if set, 0 otherwise.
>
> I substituted the following in order to implement this:
>
>
> int
> tas(slock_t *m)
> {
> slock_t res;
> tres=0;
> if (m && 0x1)
> tres=1;
> return(res);
> }
>
> and carried on compiling, but after a while, pathnames are wrong in some
> of the 'Makefile.inc' files. Using a printout from 'du' and correcting
> these eventually comes up against undefined references to 'dlopen',
> 'dlsym' and 'dlclose'. I can find no reference to these anywhere and so
> commented them out, but eventually 'gmake' does not know how to make
> 'dllist.o'(I think) and that's as far as I have got.
These are references to dynamic loading. RiscBSD currently does not support any
form of dynamic loading. Sorry.
Cheers
Rob
--