[Bug c/68958] New: MIPS: cannot build glibc with mips32r2 at O1 or higher
manuel.lauss at googlemail dot com
gcc-bugzilla@gcc.gnu.org
Thu Dec 17 14:19:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68958
Bug ID: 68958
Summary: MIPS: cannot build glibc with mips32r2 at O1 or higher
Product: gcc
Version: 5.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: manuel.lauss at googlemail dot com
Target Milestone: ---
Created attachment 37063
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37063&action=edit
fully preprocessed source of gconv_conf.
Building glibc-2.22/iconv/gconv_conf.c for mips32r2 hardfloat little endian
results in the following GAS error. Gcc is configured "--with-arch=mips32r2
--with-tune=mips32r2 --with-abi=32 --with-little-endian"
mips32r2el-hardfloat-linux-gnu-gcc -mips32r2 -c -o gconv_conf.o gconv_conf.i
-pipe -fgnu89-inline -O2
{standard input}: Assembler messages:
{standard input}:794: Warning: macro instruction expanded into multiple
instructions
{standard input}:798: Error: macro used $at after ".set noat"
{standard input}:798: Warning: macro instruction expanded into multiple
instructions
{standard input}:821: Warning: macro instruction expanded into multiple
instructions
{standard input}:823: Error: macro used $at after ".set noat"
{standard input}:823: Warning: macro instruction expanded into multiple
instructions
-O0 is fine, every other optimization level produces this error.
The errors point to ll/sc pairs:
__gconv_get_path:
.frame $fp,88,$31 # vars= 24, regs= 10/0, args= 16, gp= 8
.mask 0xc0ff0000,-4
.fmask 0x00000000,0
.set noreorder
.cpload $25
.set reorder
addiu $sp,$sp,-88
sw $fp,80($sp)
move $fp,$sp
sw $31,84($sp)
sw $23,76($sp)
sw $22,72($sp)
sw $21,68($sp)
sw $20,64($sp)
sw $19,60($sp)
sw $18,56($sp)
sw $17,52($sp)
sw $16,48($sp)
.cprestore 16
sw $0,24($fp)
.set noreorder
.set nomacro
.set noat
1:
ll $3,lock.10985 <================
bne $3,$0,2f
li $2,0
li $1,1
sc $1,lock.10985 <================
beq $1,$0,1b
li $2,1
sync
2:
.set at
.set macro
.set reorder
I'm attaching preprocessed source.
More information about the Gcc-bugs
mailing list