Bug 9606 - libjpeg-turbo fail to build with mips64-nf (soft float)
Summary: libjpeg-turbo fail to build with mips64-nf (soft float)
Status: VERIFIED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: graphics (show other bugs)
Version: 2.2
Hardware: EdgeRouter mips64
: Medium+ normal
Target Milestone: 2.2 M1
Assignee: Maxin B. John
QA Contact: Yi Zhao
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2016-05-08 12:46 UTC by Kevin Hao
Modified: 2016-08-12 04:50 UTC (History)
5 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kevin Hao 2016-05-08 12:46:43 UTC
1. Configure a edgerouter BSP.
2. echo "DEFAULTTUNE = \"mips64-nf\"" >>conf/local.conf
3. bitbake core-image-sato
Comment 1 Peter Kjellerstedt 2016-05-09 11:37:00 UTC
We have the following in a bbappend for libjpeg-turbo in our layer to work around this problem:

SIMD = ""
SIMD_mipsel = " --without-simd"

EXTRA_OECONF_append_class-target = "${SIMD}"
Comment 2 Maxin B. John 2016-06-08 08:51:00 UTC
Hi,

libjpeg-turbo-1.5.0 was released yesteerday. I got the same error as Kevin Hao mentioned  while trying to build 1.5.0 release. 

(In reply to comment #1)
> We have the following in a bbappend for libjpeg-turbo in our layer to work
> around this problem:
> 
> SIMD = ""
> SIMD_mipsel = " --without-simd"
> 
> EXTRA_OECONF_append_class-target = "${SIMD}"

Peter, could you share the local.conf changes that you have done to build the mipsel BSP? 

In my case, the mipsel build of libjpeg-turbo - 1.5.0 went fine with the following config:

MACHINE= "edgerouter"
DEFAULTTUNE= "mips32el"
Comment 3 Maxin B. John 2016-06-08 12:15:10 UTC
Build Failure:

| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S: Assembler messages:
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2842: Error: opcode not supported on this processor: mips32r2 (mips32r2) `mtc1 $9,$f0'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2845: Error: opcode not supported on this processor: mips32r2 (mips32r2) `lwc1 $f2,0($6)'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2846: Error: opcode not supported on this processor: mips32r2 (mips32r2) `lwc1 $f10,0($5)'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2847: Error: opcode not supported on this processor: mips32r2 (mips32r2) `lwc1 $f4,4($6)'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2848: Error: opcode not supported on this processor: mips32r2 (mips32r2) `lwc1 $f12,4($5)'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2849: Error: opcode not supported on this processor: mips32r2 (mips32r2) `lwc1 $f6,8($6)'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2850: Error: opcode not supported on this processor: mips32r2 (mips32r2) `lwc1 $f14,8($5)'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2851: Error: opcode not supported on this processor: mips32r2 (mips32r2) `lwc1 $f8,12($6)'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2852: Error: opcode not supported on this processor: mips32r2 (mips32r2) `lwc1 $f16,12($5)'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2853: Error: opcode not supported on this processor: mips32r2 (mips32r2) `madd.s $f2,$f0,$f2,$f10'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2854: Error: opcode not supported on this processor: mips32r2 (mips32r2) `madd.s $f4,$f0,$f4,$f12'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2855: Error: opcode not supported on this processor: mips32r2 (mips32r2) `madd.s $f6,$f0,$f6,$f14'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2856: Error: opcode not supported on this processor: mips32r2 (mips32r2) `madd.s $f8,$f0,$f8,$f16'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2857: Error: opcode not supported on this processor: mips32r2 (mips32r2) `lwc1 $f10,16($5)'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2858: Error: opcode not supported on this processor: mips32r2 (mips32r2) `lwc1 $f12,20($5)'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2859: Error: opcode not supported on this processor: mips32r2 (mips32r2) `trunc.w.s $f2,$f2'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2860: Error: opcode not supported on this processor: mips32r2 (mips32r2) `trunc.w.s $f4,$f4'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2861: Error: opcode not supported on this processor: mips32r2 (mips32r2) `trunc.w.s $f6,$f6'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2862: Error: opcode not supported on this processor: mips32r2 (mips32r2) `trunc.w.s $f8,$f8'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2863: Error: opcode not supported on this processor: mips32r2 (mips32r2) `lwc1 $f14,24($5)'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2864: Error: opcode not supported on this processor: mips32r2 (mips32r2) `lwc1 $f16,28($5)'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2865: Error: opcode not supported on this processor: mips32r2 (mips32r2) `mfc1 $9,$f2'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2866: Error: opcode not supported on this processor: mips32r2 (mips32r2) `mfc1 $10,$f4'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2867: Error: opcode not supported on this processor: mips32r2 (mips32r2) `mfc1 $11,$f6'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2868: Error: opcode not supported on this processor: mips32r2 (mips32r2) `mfc1 $12,$f8'
| ../../libjpeg-turbo-1.5.0/simd/jsimd_mips_dspr2.S:2869: Error: opcode not supported on this processor: mips32r2 (mips32r2) `lwc1 $f2,16($6)'

<snip>

libjpeg-turbo don't have non-floating point ABI support in MIPS at the moment. 

We can work-around using:

EXTRA_OECONF_append_class-target = " ${@bb.utils.contains("MIPSPKGSFX_FPU", "-nf", "--without-simd", "", d)}"
Comment 4 Maxin B. John 2016-06-08 12:52:25 UTC
Fix/upgrade sent to oe-core:
http://lists.openembedded.org/pipermail/openembedded-core/2016-June/122601.html
Comment 6 Yi Zhao 2016-08-12 04:50:40 UTC
Verified with poky master: e274a5167ea2e495355bd1382b1388d047b845d7