Bug #75
closed
Why doesn't xorg omap driver build with --enable-neon
Added by Hammel over 13 years ago.
Updated over 13 years ago.
Description
Compiling the xorg omap driver with --enable-neon fails with the following message:
{standard input}: Assembler messages:
{standard input}:105: Error: bad instruction `vld1.u8 {d0},[r1]!'
{standard input}:108: Error: bad instruction `vld1.u8 {d1},[r4]!'
{standard input}:109: Error: bad instruction `vld1.u8 {q1},[r7]!'
{standard input}:110: Error: bad instruction `vzip.u8 d0,d1'
{standard input}:111: Error: bad instruction `vld1.u8 {q2},[r6]!'
{standard input}:112: Error: bad instruction `vst2.u8 {q0,q1},[r5]!'
{standard input}:113: Error: bad instruction `vmov.u8 q1,q2'
{standard input}:114: Error: bad instruction `vst2.u8 {q0,q1},[sl]!'
make5: *** [image-format-conversions.lo] Error 1
CC sw-exa.lo
This appears to mean that the cross-compiler is not properly enabled for neon capabilities. But the Crosstool-NG config file includes the following two entries:
CT_ARCH_FPU="neon"
CT_CC_CORE_EXTRA_CONFIG="--with-fpu=neon"
This seems to be all that is required, but I'll need to check with the Crosstool-NG list to be certain.
Emailed Crosstool-NG list to ask about this issue.
Verified today that the updated xcc (with specified options under Details) does not build the driver.
I found three URLs that helped me solve this problem today:
Linaro's native GCC toolchain working group: https://wiki.linaro.org/WorkingGroups/ToolChain/Using/GCCNative
This lead to the config they use to build gcc:
http://bazaar.launchpad.net/~linaro-toolchain-dev/cbuild/trunk/view/head:/config/cortexa8r1.mk
And when mixed with the info from the Ubuntu Hard Float for ARM page:
http://wiki.debian.org/ArmHardFloatPort
I managed to come up with a cross toolchain configuration for Crosstool-NG that supports building the omap xorg driver with --enable-neon included in the configure options.
The differences (see attached file) from my original configuration are the following:
1. Switch from GCC 4.4.3 to 4.4.1 to keep in line with Linaro's suggested build
2. Enable Thumb internetworking
3. Tuned for Cortex-A9 which apparently will also support A8.
4. Added --with-float=softfp to --with-fpu=neon in both CT_CC_CORE_EXTRA_CONFIG and CT_CC_EXTRA_CONFIG.
I think the one that made the real difference is #4 but the rest (I believe) keeps me inline with the Linaro and Ubuntu suggested cross compiler configurations. Time to rebuild everything with the new toolchain.
Also available in: Atom
PDF