While building mythtv-backend on the plug, I hit the following message, which leads me to believe that either the compiler isn't aware of exactly which instruction set to use, or that the chip in the SheevaPlug doesn't support the 'pld' instruction:
gcc -c -pipe -g -fomit-frame-pointer -O3 -pthread -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -w -D_REENTRANT -DPIC -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_AV_CONFIG_H -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -I.. -I../.. -I../libavutil -I../libswscale -I/usr/include/qt3 -o dsputil_arm_s.o armv4l/dsputil_arm_s.S
armv4l/dsputil_arm_s.S: Assembler messages:
armv4l/dsputil_arm_s.S:79: Error: selected processor does not support `pld [r1]'
From sniffing around it appears this is a 'preload' instruction which can be used to optimize execution, and is apparently optional; i.e., it can be removed without harming anything (though potentially slowing things down on a processor which supports it). Also, it seems that some ARM architectures support it, and some don't.
I got the compiler onto my plug via 'apt-get install build-essential'; is any sort of configuration required for it to build code for the correct processor? I've seen references to -mcpu and -march command line switches for the compiler; has anyone been able to build any assembly-level code using this compiler and instruction?
In the absence of any insights, I may just hack the instructions out, but I'm hopeful there's a cleaner way to resolve this.
Thanks, as always, for any pointers or suggestions,
Charles Green