Subject: Re; Postgres95
To: None <stscl@cscip.uni-sb.de>
From: Dave Millen <dmill@globalnet.co.uk>
List: port-arm32
Date: 11/17/1996 18:03:45
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.

I hope the above helps, and would appreciate any pointers you can give
me in this matter.


Regards

Dave Millen