I sent a message about this yesterday, but it does not appear to have
got to the list.

According to the attached message, mips builds for Linux should not use
-mips2 in the compilation or linking.  It appears that this can be
prevented by removing the mips special case from src/template/linux.

-----Forwarded Message-----

From: rmurray@debian.org
To: Oliver Elphick <olly@lfix.co.uk>
Subject: Re: [Fwd: Mail delivery failed: returning message to sender]
Date: 20 Mar 2002 07:48:38 -0800

On Wed, Mar 20, 2002 at 09:52:52AM +0000, Oliver Elphick wrote:
> > Upstream automatically passes -mips2 to gcc on mips platforms.  In the case
> > of Linux, this should not be done, as the main reason to use it (ll/sc) is
> > handled by glibc and emulated by the kernel.  It also makes all of postgresql
> > unusable on DECstation mipsel machines,...
> 
> The build failure appears to be that
> debian/tmp/usr/lib/postgresql/bin/postgres has somehow been deleted
> during the build.  (The build log shows it being installed correctly.) 
> Are you saying that this is related to use of -mips2, or is that a
> totally separate problem?

No, the kernel doesn't always have the greatest error messages...

test.c:
main(void)
{
        return 1;
}

rmurray@resume:~$ gcc -o t test.c ; ls -l t ; ./t
-rwxr-xr-x    1 rmurray  rmurray      7628 Mar 20 16:43 t
rmurray@resume:~$ gcc -mips2 -o t test.c ; ls -l t ; ./t
-rwxr-xr-x    1 rmurray  rmurray      7628 Mar 20 16:44 t
bash: ./t: No such file or directory

The reason this worked in the past is due to a bug in binutils -- it wasn't
setting the mips2 bit in the elf header of the binary.  That bug has now
been fixed, and the kernel refuses to run anything with a mips# bit set
in the header, as it is used to indicate an irix binary, according to the
comments in elf.h.

-- 
Ryan Murray, Debian Developer (rmurray@cyberhqz.com, rmurray@debian.org)
The opinions expressed here are my own.


21 Mar 2002 10:27:52 +0000
Oliver Elphick <olly@lfix.co.uk>
Linux/mips compile should not use -mips2
Oliver Elphick writes:

> > > Upstream automatically passes -mips2 to gcc on mips platforms.  In the case
> > > of Linux, this should not be done, as the main reason to use it (ll/sc) is
> > > handled by glibc and emulated by the kernel.  It also makes all of postgresql
> > > unusable on DECstation mipsel machines,...

It's gone.  I never liked it there anyway.

-- 
Peter Eisentraut   peter_e@gmx.net


Thu, 21 Mar 2002 10:26:49 -0500 (EST)
Peter Eisentraut <peter_e@gmx.net>
Re: Linux/mips compile should not use -mips2