pixman-0.32.6 fails to build on mips32r2
Submitted by Vicente Olivert Riera
Assigned to Søren Sandmann Pedersen
Description
Created attachment 105565 pixman-01-fix-mips-dspr2-asm.patch
Building pixman-0.32.6 on mips32r2 targets results in the following problems:
pixman-mips-dspr2-asm.S:4267: Error: opcode not supported on this processor:
mips32r2 (mips32r2) precr.qb.ph $12,$24,$25' pixman-mips-dspr2-asm.S:4267: Error: opcode not supported on this processor: mips32r2 (mips32r2)
precrq.qb.ph $8,$14,$12'
pixman-mips-dspr2-asm.S:4271: Error: opcode not supported on this processor:
mips32r2 (mips32r2) `replv.ph $9,$9'
[...]
This is a regression from pixman-0.32.4. There is a change in pixman/pixman-mips-dspr2-asm.h between pixman-0.32.4 and pixman-0.32.6. The diff is:
--- pixman-0.32.4/pixman/pixman-mips-dspr2-asm.h 2013-05-14
00:29:26.000000000 +0100
+++ pixman-0.32.6/pixman/pixman-mips-dspr2-asm.h 2014-07-03
18:35:21.000000000 +0100
@@ -72,7 +72,10 @@
#define LEAF_MIPS32R2(symbol)
.globl symbol;
.align 2;
+#ifdef ELF
-
.hidden symbol; \ .type symbol, @function; \
symbol: .frame sp, 0, ra;
.set push; \
+#endif
.ent symbol, 0; If you revert those changes pixman-0.32.6 builds fine. It seems that putting that #if clause in that place is causing the problem. The attached patch rewrites that logic to do the same thing as that #if clause does and fixes the problem.
Patch 105565, "pixman-01-fix-mips-dspr2-asm.patch":
pixman-01-fix-mips-dspr2-asm.patch
Version: other