I will put the #if 0 statements around those 64 bit statements, that is a nice quick fix. We were able to get things working with the --disable-asm, so with the #if statements things should work fine.
I do not normally use the --disable-armvfp --disable-neon \ flags, but before I understood the error I was just going back to basics shutting off anything that wasn't required. Thanks, Bryan On Wed, Dec 14, 2011 at 3:14 PM, Janne Grunau <[email protected]>wrote: > On 2011-12-14 12:38:59 -0800, Bryan Galusha wrote: > > Having an issue compiling libav for the ARM cortex-a8. > > The compiler is choking on the R and Q operand codes that appear in both > > intmath.h and intreadwrite.h, which it errors out on saying the Q and R > > operand codes are "invalid operand" > > > > Here is the error in intmath.h: > > error: invalid operand in inline asm: 'adds $1, ${1:Q}, ${2:Q}, lsr #31 > > itet ne > > mvnne $1, #1<<31 > > moveq $0, ${1:Q} > > eorne $0, $1, ${1:Q}, asr #31 > > ' > > Which corresponds to this function from intmath.h > > #define av_clipl_int32 av_clipl_int32_arm > > static av_always_inline av_const int32_t av_clipl_int32_arm(int64_t a) > > { > > int x, y; > > __asm__ ("adds %1, %R2, %Q2, lsr #31 \n\t" > > "itet ne \n\t" > > "mvnne %1, #1<<31 \n\t" > > "moveq %0, %Q2 \n\t" > > "eorne %0, %1, %R2, asr #31 \n\t" > > : "=r"(x), "=&r"(y) : "r"(a)); > > return x; > > } > > > > Removing the R and Q operand codes makes the compiler happy, but > obviously > > the code won't function correctly > > as first workaround just wrap a '#if 0', '#endif' around the functions. > There a pure C implemtations which will be used then. > > > Any help with this issue would be greatly appreciated, version and > > ./configure information below, > > Bryan > > > > > > i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build > > 5658) (LLVM build 2336.1.00) > > > > ./configure --enable-cross-compile --arch=arm --target-os=darwin > > --cc='/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch > > armv7 -miphoneos-version-min=5.0' > > > --sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk > > --cpu=cortex-a8 --enable-pic \ > > > > > --extra-ldflags=-L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/system > > \ > > --extra-cflags='-march=armv7-a -mfloat-abi=softfp' \ > > --enable-pic --disable-doc \ > > --disable-encoders --disable-decoders --disable-hwaccels \ > > --disable-muxers --disable-demuxers --disable-parsers --disable-bsfs \ > > --disable-protocols --disable-indevs --disable-outdevs --disable-devices > \ > > --disable-filters --disable-network --disable-zlib --disable-bzlib \ > > there is --disable-everything as shortcut for most of your options > > > --disable-armvfp --disable-neon \ > > is there any specific reason to disable vfp and neon? As far as I know > vfp and neon are supported by all cortex-a8+ CPUs used by apple. > > Janne > _______________________________________________ > libav-tools mailing list > [email protected] > https://lists.libav.org/mailman/listinfo/libav-tools >
_______________________________________________ libav-tools mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-tools
