On Fri, Aug 28, 2009 at 09:38:45PM -0500, Steve M. Robbins: > Hi, > > Boost failed to build this week, with numerous files spewing out > assembler errors such as > > Error: opcode not supported on this processor: mips1 (mips1) `ll $3,4($16)' > > > What causes the compiler to emit opcodes that the assembler cannot > process? Boost (v 1.38) built OK on june 30, and I'm sure that many > of the files in question have not changed in v 1.39. ll/sc are mips2 opcodes - Debian used to be mips1 to support the pre R4k (R3/R2k arch). For atomic ops the only solution was to use ll/sc from mips2 and for r2/r3k emulate them in kernel. For the assembler to emit mips2 opcodes although it was told to do mips1 you need to instruct the assembler: http://lists.debian.org/debian-mips/2009/04/msg00017.html > I'd appreciate help debugging this. > > See > https://buildd.debian.org/fetch.cgi?&pkg=boost1.39&ver=1.39.0-1&arch=mips&stamp=1249965048&file=log > https://buildd.debian.org/fetch.cgi?&pkg=boost1.39&ver=1.39.0-1&arch=mipsel&stamp=1250006828&file=log > https://buildd.debian.org/fetch.cgi?&pkg=boost1.39&ver=1.39.0-2&arch=mips&stamp=1251393955&file=log A quick grep revealed this file and some functions using ll/sc: boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp inline void atomic_increment( int * pw ) { // ++*pw; int tmp; __asm__ __volatile__ ( "0:\n\t" "ll %0, %1\n\t" "addiu %0, 1\n\t" "sc %0, %1\n\t" "beqz %0, 0b": "=&r"( tmp ), "=m"( *pw ): "m"( *pw ) ); } Flo -- Florian Lohoff flo@rfc822.org "Es ist ein grobes Missverständnis und eine Fehlwahrnehmung, dem Staat im Internet Zensur- und Überwachungsabsichten zu unterstellen." - - Bundesminister Dr. Wolfgang Schäuble -- 10. Juli in Berlin
Attachment:
signature.asc
Description: Digital signature