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

--