[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: libatomic-ops build on lebrun.debian.org



On Wed, Jan 13, 2010 at 01:06:29PM -0800, Ian Wienand wrote:
> Hi,
> 
> libatomic-ops has been failing on lebrun.  However, I logged on to
> smetana in an attempt to reproduce this, and 1.2+cvs20091005-1 builds
> just fine ... I didn't do anything but drop in the the unstable chroot
> and dpkg-buildpackage.
> 
> Any suggestions?
> 
> -i
> 
> ---
> atomic_ops_stack.c:95: warning: unused variable 'i'
> /tmp/cctVwQzs.s: Assembler messages:
> /tmp/cctVwQzs.s:68: Error: Architecture mismatch on "membar".
> /tmp/cctVwQzs.s:68:  (Requires v9|v9a|v9b; requested architecture is sparclite.)

The sparc port is 32-bit.  Older sparcs had no support for integer
multiply and divide, so decisions were gradually made to up the
requirements for what machine the sparc port would support.  Hence we
get to sparclite (having passed v7 and v8).  The sparc v9 architecture
is 64-bit.  I believe, looking at the GCC source, that enabling any v9
instructions will force the use of the 64-bit architecture.  This is
obviously unsuitable, since the benefit of the 32-bit sparc port is that
it has better performance (pointers and longs are smaller, and therefore
fit into cache better).  Debian's sparc port remains 32-bit, but only
64-bit kernels are provided, since nobody (at all, anywhere) maintains
the 32-bit sparc kernel.

However, according to GCC (gcc/config/sparc/sparc.h):

  Prior to V9, there are no instructions to even talk about memory
  synchronization.

Hence you get the problem.  Somebody wrote assembly assuming that code
would be running on a 64-bit processor.  And it is, but because GCC
doesn't provide a 32-bit sparc v9 compiler, we have to compile for
sparclite.  This is something that you'll have to work out with
upstream, probably.

> /tmp/cctVwQzs.s:69: Error: Architecture mismatch on "cas".
> /tmp/cctVwQzs.s:69:  (Requires v9|v9a|v9b; requested architecture is sparclite.)
> /tmp/cctVwQzs.s:70: Error: Architecture mismatch on "membar".
> /tmp/cctVwQzs.s:70:  (Requires v9|v9a|v9b; requested architecture is sparclite.)
> /tmp/cctVwQzs.s:152: Error: Architecture mismatch on "membar".
> /tmp/cctVwQzs.s:152:  (Requires v9|v9a|v9b; requested architecture is sparclite.)
> /tmp/cctVwQzs.s:153: Error: Architecture mismatch on "cas".
> /tmp/cctVwQzs.s:153:  (Requires v9|v9a|v9b; requested architecture is sparclite.)
> /tmp/cctVwQzs.s:154: Error: Architecture mismatch on "membar".
> /tmp/cctVwQzs.s:154:  (Requires v9|v9a|v9b; requested architecture is sparclite.)
> /tmp/cctVwQzs.s:229: Error: Architecture mismatch on "membar".
> /tmp/cctVwQzs.s:229:  (Requires v9|v9a|v9b; requested architecture is sparclite.)
> /tmp/cctVwQzs.s:230: Error: Architecture mismatch on "cas".
> /tmp/cctVwQzs.s:230:  (Requires v9|v9a|v9b; requested architecture is sparclite.)
> /tmp/cctVwQzs.s:231: Error: Architecture mismatch on "membar".
> /tmp/cctVwQzs.s:231:  (Requires v9|v9a|v9b; requested architecture is sparclite.)
> ---
> 
> [1] https://buildd.debian.org/build.php?arch=sparc&pkg=libatomic-ops&ver=1.2%2Bcvs20091005-1
> 
> 
> -- 
> To UNSUBSCRIBE, email to debian-sparc-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> 

-- 
brian m. carlson / brian with sandals: Houston, Texas, US
+1 713 440 7475 | http://crustytoothpaste.ath.cx/~bmc | My opinion only
OpenPGP: RSA v4 4096b 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187

Attachment: signature.asc
Description: Digital signature


Reply to: