Can't use -flto with skia

Bug #823548 reported by Bernhard Rosenkraenzer
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Linaro GCC
Fix Released
Low
Ramana Radhakrishnan
4.6-2011.07-stable
Won't Fix
Low
Unassigned
Linaro GCC Tracking
Fix Committed
Undecided
Unassigned

Bug Description

Attempting to build skia (Android graphics library) with -march=armv7-a -mtune=cortex-a9 -mcpu=cortex-a9 -flto results in

external/skia/include/core/SkRefCnt.h:40:51: sorry, unimplemented: gimple bytecode streams do not support machine specific builtin functions on this target

[...]

Related branches

Revision history for this message
Ramana Radhakrishnan (ramana) wrote :

Hmmm I have heard this one before. It's because we aren't streaming the neon builtins for LTO correctly. A patch needs to be backported from upstream.

Cheers
Ramana

Changed in gcc-linaro:
assignee: nobody → Ramana Radhakrishnan (ramana)
status: New → Confirmed
Revision history for this message
Michael Hope (michaelh1) wrote :

Thank you for the bug report. I've confirmed this with android-toolchain-eabi-linaro-4.6-2011.07-0-22-2011-08-09_19-15-34-linux-x86

michaelh@crucis:~/linaro/distros/android$ /home/michaelh/linaro/distros/android/android-toolchain-eabi/bin/arm-eabi-g++ -O2 -flto -mfpu=neon -march=armv7-a -mfloat-abi=softfp SkBitmapProcState_matrixProcs.ii
external/skia/src/core/SkBitmapProcState_matrixProcs.cpp:522:1: sorry, unimplemented: gimple bytecode streams do not support machine specific builtin functions on this target
external/skia/src/core/SkBitmapProcState_matrixProcs.cpp:522:1: sorry, unimplemented: gimple bytecode streams do not support machine specific builtin functions on this target
...

The fault is due the file using NEON intrinsics and GCC not knowing how to serialise these for the later link time optimisation. There is no work-around.

I've set it to low priority as the fault is LTO specific and it exists upstream.

Changed in gcc-linaro:
importance: Undecided → Low
status: Confirmed → Triaged
Changed in gcc-linaro:
status: Triaged → Fix Committed
milestone: none → 4.6-2011.09
Michael Hope (michaelh1)
Changed in gcc-linaro:
status: Fix Committed → Fix Released
Revision history for this message
Michael Hope (michaelh1) wrote :

Won't fix in the stable branch as the change:
 * is large
 * doesn't affect a -stable user
 * is a performance improvement

Revision history for this message
Andrew Stubbs (ams-codesourcery) wrote :

The patch was backported from upstream.

Related: lp:gcc-linaro/4.6,revno=106794
Related: lp:gcc-linaro/4.6,revno=106795

Changed in gcc-linaro-tracking:
milestone: none → 4.7.0
status: New → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.