Linux XBMC for MIPSEL - BroadCom 7425
#1
Hello guys,

I have a question, I am commpiling and portin XBMC to mipsel.

I have following problem:

Code:
mipsel-oe-linux-g++  -mel -mabi=32 -mhard-float -march=mips32 --sysroot=/media/hdd/tmp/build/builds/egami//inihdp/tmp/sysroots/inihdp -Os -pipe -g -feliminate-unused-debug-types -fvisibility-inlines-hidden -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG=1 -O2 -Os -pipe -g -feliminate-unused-debug-types -fvisibility-inlines-hidden -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG=1 -O2 -D_LINUX -fPIC -I/home/test/tmp/frodo/lib/snesapu -Os -pipe -g -feliminate-unused-debug-types -fvisibility-inlines-hidden -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG=1 -O2 -Wl,-O1  -Wl,--as-needed -Wl,-O1  -Wl,--as-needed -Wl,-O1  -Wl,--as-needed -shared -o /home/test/tmp/frodo/system/players/paplayer//SNESAPU-mips.so SPC700.o APU.o DSP.o SNESAPU.o      -Wl,--unresolved-symbols=ignore-all \
        `cat /home/test/tmp/frodo/xbmc/cores/DllLoader/exports/wrapper.def` /home/test/tmp/frodo/xbmc/cores/DllLoader/exports/wrapper.o
/media/hdd/tmp/build/builds/egami//inihdp/tmp/sysroots/i686-linux/usr/libexec/mipsel-oe-linux/gcc/mipsel-oe-linux/4.9.1/ld: SPC700.o: Relocations in generic ELF (EM: 3)
/media/hdd/tmp/build/builds/egami//inihdp/tmp/sysroots/i686-linux/usr/libexec/mipsel-oe-linux/gcc/mipsel-oe-linux/4.9.1/ld: SPC700.o: Relocations in generic ELF (EM: 3)
SPC700.o: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
Makefile:24: recipe for target '/home/test/tmp/frodo/system/players/paplayer//SNESAPU-mips.so' failed
make[1]: *** [/home/test/tmp/frodo/system/players/paplayer//SNESAPU-mips.so] Error 1
make[1]: Leaving directory '/media/kieszen/prism/tmp/frodo/lib/snesapu/SNES/SNESAPU'
Makefile:284: recipe for target 'papcodecs' failed


My configure


Code:
./configure --disable-rpath
--enable-gles
--enable-libusb
--disable-nfs
--disable-airplay
--disable-libblueray
--disable-optical-drive
--enable-external-libraries
--disable-ssh
--disable-external_ffmpeg
--disable-x11
--disable-sdl
--disable-joystick
--disable-alsa
--enable-rtmp
--disable-debug
--disable-vdpau  
--disable-vaapi
--disable-crystalhd  
--disable-vdadecoder  
--disable-vtbdecoder
--disable-openmax  
--disable-joystick
--disable-xrandr  
--disable-rsxs  
--disable-projectm
--disable-rtmp  
--disable-airplay
--disable-airtunes
--disable-dvdcss
--disable-optical-drive  
--disable-libbluray
--disable-libusb  
--disable-libcec  
--disable-libmp3lame  
--disable-libcap


Is there a way to fix it ? As nasm is x86 assemm...
Reply
#2
I fixed that.

Last step is that LD has some issues with references

Code:
AR      /home/test/tmp/frodo/xbmc/cores/paplayer/paplayer.a
LD      /home/test/tmp/frodo/xbmc.bin
xbmc/cores/dvdplayer/DVDPlayer.a(DVDMessageQueue.o): In function `IDVDResourceCounted<CDVDMsg>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDMessageQueue.o): In function `IDVDResourceCounted<CDVDMsg>::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDMessageQueue.o): In function `IDVDResourceCounted<CDVDMsg>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDMessageQueue.o): In function `IDVDResourceCounted<CDVDMsg>::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDMessageQueue.o): In function `IDVDResourceCounted<CDVDMsg>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDMessageQueue.o): In function `IDVDResourceCounted<CDVDMsg>::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDMessageQueue.o): In function `IDVDResourceCounted<CDVDMsg>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDMessageQueue.o): In function `__gnu_cxx::new_allocator<DVDMessageListItem>::destroy(DVDMessageListItem*)':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDOverlayContainer.o): In function `CDVDOverlay::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h:83: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDOverlayContainer.o): In function `CDVDOverlay::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h:92: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h:92: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDOverlayContainer.o): In function `CDVDOverlay::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h:83: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDOverlayContainer.o): In function `CDVDOverlay::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h:92: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h:92: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayer.o): In function `IDVDResourceCounted<CDVDMsg>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayer.o):/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: more undefined references to `AtomicDecrement(long volatile*)' follow
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayer.o): In function `IDVDResourceCounted<CDVDMsg>::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayer.o): In function `IDVDResourceCounted<CDVDMsg>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayer.o):/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: more undefined references to `AtomicDecrement(long volatile*)' follow
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayer.o): In function `IDVDResourceCounted<CDVDMsg>::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayer.o): In function `IDVDResourceCounted<CDVDMsg>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayer.o):/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: more undefined references to `AtomicDecrement(long volatile*)' follow
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayerAudio.o): In function `IDVDResourceCounted<CDVDMsg>::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayerAudio.o): In function `IDVDResourceCounted<CDVDMsg>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayerSubtitle.o): In function `IDVDResourceCounted<CDVDMsg>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayerSubtitle.o): In function `CDVDOverlay::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h:92: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h:92: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayerTeletext.o):/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: more undefined references to `AtomicDecrement(long volatile*)' follow
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayerVideo.o): In function `IDVDResourceCounted<CDVDMsg>::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayerVideo.o): In function `IDVDResourceCounted<CDVDMsg>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayerVideo.o): In function `IDVDResourceCounted<CDVDMsg>::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDPlayerVideo.o): In function `IDVDResourceCounted<CDVDMsg>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDCodecs/Overlay/Overlay.a(DVDOverlayCodecCC.o): In function `CDVDOverlay::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h:92: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDCodecs/Overlay/Overlay.a(DVDOverlayCodecSSA.o): In function `IDVDResourceCounted<CDVDSubtitlesLibass>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDCodecs/Overlay/Overlay.a(DVDOverlayCodecSSA.o): In function `CDVDOverlayCodecSSA::Dispose()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecSSA.cpp:62: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDCodecs/Overlay/Overlay.a(DVDOverlayCodecSSA.o): In function `CDVDOverlay::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h:92: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDCodecs/Overlay/Overlay.a(DVDOverlayCodecSSA.o): In function `IDVDResourceCounted<CDVDSubtitlesLibass>::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDCodecs/Overlay/Overlay.a(DVDOverlayCodecSSA.o): In function `IDVDResourceCounted<CDVDSubtitlesLibass>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDCodecs/Overlay/Overlay.a(DVDOverlayCodecSSA.o): In function `IDVDResourceCounted<CDVDSubtitlesLibass>::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDCodecs/Overlay/Overlay.a(DVDOverlayCodecSSA.o): In function `IDVDResourceCounted<CDVDSubtitlesLibass>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDCodecs/Overlay/Overlay.a(DVDOverlayCodecText.o): In function `CDVDOverlayCodecText::Reset()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecText.cpp:129: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDCodecs/Overlay/Overlay.a(DVDOverlayCodecText.o): In function `CDVDOverlayCodecText::Flush()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecText.cpp:135: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDCodecs/Overlay/Overlay.a(DVDOverlayCodecText.o): In function `CDVDOverlayCodecText::Dispose()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecText.cpp:52: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDCodecs/Overlay/Overlay.a(DVDOverlayCodecText.o):/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h:92: more undefined references to `AtomicDecrement(long volatile*)' follow
xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitles.a(DVDSubtitleParserMicroDVD.o): In function `CDVDOverlay::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDSubtitles/../DVDCodecs/Overlay/DVDOverlay.h:83: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitles.a(DVDSubtitleParserSami.o): In function `CDVDOverlay::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDSubtitles/../DVDCodecs/Overlay/DVDOverlay.h:92: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitles.a(DVDSubtitleParserSami.o): In function `CDVDOverlay::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDSubtitles/../DVDCodecs/Overlay/DVDOverlay.h:83: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitles.a(DVDSubtitleParserSSA.o): In function `IDVDResourceCounted<CDVDSubtitlesLibass>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitles.a(DVDSubtitleParserSSA.o): In function `IDVDResourceCounted<CDVDSubtitlesLibass>::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitles.a(DVDSubtitleParserSSA.o): In function `CDVDOverlay::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDSubtitles/../DVDCodecs/Overlay/DVDOverlay.h:83: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitles.a(DVDSubtitleParserSubrip.o): In function `CDVDOverlay::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDSubtitles/../DVDCodecs/Overlay/DVDOverlay.h:83: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/DllLoader/dllloader.a(DllLoader.o): In function `DllLoader::~DllLoader()':
/home/test/tmp/frodo/xbmc/cores/DllLoader/DllLoader.cpp:142: undefined reference to `Restore_LDT_Keeper'
xbmc/cores/DllLoader/dllloader.a(DllLoader.o): In function `DllLoader::DllLoader(char const*, bool, bool, bool, Export*)':
/home/test/tmp/frodo/xbmc/cores/DllLoader/DllLoader.cpp:95: undefined reference to `Setup_LDT_Keeper'
xbmc/cores/VideoRenderers/VideoRenderer.a(OverlayRenderer.o): In function `OVERLAY::COverlay::Acquire()':
/home/test/tmp/frodo/xbmc/cores/VideoRenderers/OverlayRenderer.cpp:63: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/VideoRenderers/VideoRenderer.a(OverlayRenderer.o): In function `OVERLAY::COverlay::Release()':
/home/test/tmp/frodo/xbmc/cores/VideoRenderers/OverlayRenderer.cpp:69: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/VideoRenderers/VideoRenderer.a(OverlayRenderer.o): In function `OVERLAY::CRenderer::Release(std::vector<OVERLAY::CRenderer::SElement, std::allocator<OVERLAY::CRenderer::SElement> >&)':
/home/test/tmp/frodo/xbmc/cores/VideoRenderers/OverlayRenderer.cpp:137: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/VideoRenderers/VideoRenderer.a(OverlayRenderer.o): In function `OVERLAY::COverlay::Acquire()':
/home/test/tmp/frodo/xbmc/cores/VideoRenderers/OverlayRenderer.cpp:63: undefined reference to `AtomicIncrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/VideoRenderers/OverlayRenderer.cpp:63: undefined reference to `AtomicIncrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/VideoRenderers/OverlayRenderer.cpp:63: undefined reference to `AtomicIncrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/VideoRenderers/OverlayRenderer.cpp:63: undefined reference to `AtomicIncrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/VideoRenderers/OverlayRenderer.cpp:63: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/VideoRenderers/VideoRenderer.a(OverlayRenderer.o):/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h:83: more undefined references to `AtomicIncrement(long volatile*)' follow
xbmc/cores/VideoRenderers/VideoRenderer.a(OverlayRenderer.o): In function `OVERLAY::COverlayMainThread::Release()':
/home/test/tmp/frodo/xbmc/cores/VideoRenderers/OverlayRenderer.cpp:78: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/interfaces/python/xbmcmodule/xbmcmodule.a(PythonMonitor.o): In function `CPythonMonitor::Acquire()':
/home/test/tmp/frodo/xbmc/interfaces/python/xbmcmodule/PythonMonitor.cpp:94: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/interfaces/python/xbmcmodule/xbmcmodule.a(PythonMonitor.o): In function `CPythonMonitor::Release()':
/home/test/tmp/frodo/xbmc/interfaces/python/xbmcmodule/PythonMonitor.cpp:88: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitles.a(DVDSubtitleParserMPL2.o): In function `CDVDOverlay::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDSubtitles/../DVDCodecs/Overlay/DVDOverlay.h:83: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitles.a(DVDSubtitleParserVplayer.o): In function `CDVDOverlay::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDSubtitles/../DVDCodecs/Overlay/DVDOverlay.h:83: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDMessage.o): In function `CDVDMsgGeneralSynchronize::Wait(bool volatile*, unsigned int)':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDMessage.cpp:46: undefined reference to `AtomicIncrement(long volatile*)'
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDMessage.cpp:48: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDMessage.o): In function `IDVDResourceCounted<CDVDMsg>::Acquire()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:33: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/cores/dvdplayer/DVDPlayer.a(DVDMessage.o): In function `IDVDResourceCounted<CDVDMsg>::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDResource.h:39: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitles.a(DVDSubtitleLineCollection.o): In function `CDVDOverlay::Release()':
/home/test/tmp/frodo/xbmc/cores/dvdplayer/DVDSubtitles/../DVDCodecs/Overlay/DVDOverlay.h:92: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/interfaces/python/xbmcmodule/xbmcmodule.a(PythonPlayer.o): In function `CPythonPlayer::Release()':
/home/test/tmp/frodo/xbmc/interfaces/python/xbmcmodule/PythonPlayer.cpp:81: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/interfaces/python/xbmcmodule/xbmcmodule.a(PythonPlayer.o): In function `CPythonPlayer::Acquire()':
/home/test/tmp/frodo/xbmc/interfaces/python/xbmcmodule/PythonPlayer.cpp:87: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/threads/threads.a(Atomics.o): In function `CAtomicSpinLock::CAtomicSpinLock(long&)':
/home/test/tmp/frodo/xbmc/threads/Atomics.cpp:503: undefined reference to `cas(long volatile*, long, long)'
xbmc/threads/threads.a(LockFree.o): In function `lf_stack_push(lf_stack*, lf_node*)':
/home/test/tmp/frodo/xbmc/threads/LockFree.cpp:51: undefined reference to `cas2(long long volatile*, long long, long long)'
/home/test/tmp/frodo/xbmc/threads/LockFree.cpp:53: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/threads/threads.a(LockFree.o): In function `lf_stack_pop(lf_stack*)':
/home/test/tmp/frodo/xbmc/threads/LockFree.cpp:69: undefined reference to `cas2(long long volatile*, long long, long long)'
/home/test/tmp/frodo/xbmc/threads/LockFree.cpp:59: undefined reference to `AtomicDecrement(long volatile*)'
xbmc/threads/threads.a(LockFree.o): In function `lf_heap_grow(lf_heap*, unsigned int)':
/home/test/tmp/frodo/xbmc/threads/LockFree.cpp:117: undefined reference to `cas(long volatile*, long, long)'
xbmc/threads/threads.a(LockFree.o): In function `lf_queue_enqueue(lf_queue*, void*)':
/home/test/tmp/frodo/xbmc/threads/LockFree.cpp:214: undefined reference to `cas2(long long volatile*, long long, long long)'
/home/test/tmp/frodo/xbmc/threads/LockFree.cpp:214: undefined reference to `cas2(long long volatile*, long long, long long)'
/home/test/tmp/frodo/xbmc/threads/LockFree.cpp:203: undefined reference to `cas2(long long volatile*, long long, long long)'
/home/test/tmp/frodo/xbmc/threads/LockFree.cpp:226: undefined reference to `AtomicIncrement(long volatile*)'
xbmc/threads/threads.a(LockFree.o): In function `lf_queue_dequeue(lf_queue*)':
/home/test/tmp/frodo/xbmc/threads/LockFree.cpp:265: undefined reference to `cas2(long long volatile*, long long, long long)'
/home/test/tmp/frodo/xbmc/threads/LockFree.cpp:272: undefined reference to `AtomicDecrement(long volatile*)'
collect2: error: ld returned 1 exit status
Makefile:343: recipe for target 'xbmc.bin' failed
make: *** [xbmc.bin] Error 1


Seeems Atomics.cpp source code does not include thos efunctions, so I added them


Code:
/usr/bin/ccache mipsel-oe-linux-g++ -mel -mabi=32 -mhard-float -march=mips32 --sysroot=/media/kieszen/test/build-enviroment-core-23/builds/egami/inihdp/tmp/sysroots/inihdp -Os -pipe -g -feliminate-unused-debug-types -fvisibility-inlines-hidden -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG=1 -O2 -Os -pipe -g -feliminate-unused-debug-types -fvisibility-inlines-hidden -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG=1 -O2 -D_LINUX -fPIC -I/home/builder/kieszen/prism/tmp/frodo/lib/snesapu -Os -pipe -g -feliminate-unused-debug-types -fvisibility-inlines-hidden -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG=1 -O2 -Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--as-needed -shared -o /home/builder/kieszen/prism/tmp/frodo/system/players/paplayer//SNESAPU-mips.so SPC700.o APU.o DSP.o SNESAPU.o -Wl,--unresolved-symbols=ignore-all -Wl,-wrap,_IO_getc -Wl,-wrap,_IO_getc_unlocked -Wl,-wrap,_IO_putc -Wl,-wrap,__fxstat64 -Wl,-wrap,__lxstat64 -Wl,-wrap,__xstat64 -Wl,-wrap,_stat -Wl,-wrap,calloc -Wl,-wrap,clearerr -Wl,-wrap,close -Wl,-wrap,closedir -Wl,-wrap,fclose -Wl,-wrap,fdopen -Wl,-wrap,feof -Wl,-wrap,ferror -Wl,-wrap,fflush -Wl,-wrap,fgetc -Wl,-wrap,fgetpos -Wl,-wrap,fgetpos64 -Wl,-wrap,fgets -Wl,-wrap,fileno -Wl,-wrap,flockfile -Wl,-wrap,fopen -Wl,-wrap,fopen64 -Wl,-wrap,fprintf -Wl,-wrap,fputc -Wl,-wrap,fputs -Wl,-wrap,fread -Wl,-wrap,free -Wl,-wrap,freopen -Wl,-wrap,fseek -Wl,-wrap,fseeko64 -Wl,-wrap,fsetpos -Wl,-wrap,fsetpos64 -Wl,-wrap,fstat -Wl,-wrap,fstatvfs64 -Wl,-wrap,ftell -Wl,-wrap,ftello64 -Wl,-wrap,ftrylockfile -Wl,-wrap,funlockfile -Wl,-wrap,fwrite -Wl,-wrap,getc -Wl,-wrap,getc_unlocked -Wl,-wrap,getmntent -Wl,-wrap,ioctl -Wl,-wrap,lseek -Wl,-wrap,lseek64 -Wl,-wrap,malloc -Wl,-wrap,open -Wl,-wrap,open64 -Wl,-wrap,opendir -Wl,-wrap,popen -Wl,-wrap,printf -Wl,-wrap,read -Wl,-wrap,readdir -Wl,-wrap,readdir64 -Wl,-wrap,realloc -Wl,-wrap,rewind -Wl,-wrap,rewinddir -Wl,-wrap,setvbuf -Wl,-wrap,ungetc -Wl,-wrap,vfprintf -Wl,-wrap,write /home/builder/kieszen/prism/tmp/frodo/xbmc/cores/DllLoader/exports/wrapper.o
make[1]: Leaving directory '/media/kieszen/prism/tmp/frodo/lib/snesapu/SNES/SNESAPU'
LD      /media/kieszen/prism/tmp/frodo/xbmc.bin
-----------------------
XBMC built successfully
-----------------------

Mipsel Commpilation for BroadCom CPU. Smile Smile
Reply
#3
Code:
root@duo2:~# /usr/lib/xbmc/xbmc.bin -h
Usage: xbmc [OPTION]... [FILE]...

Arguments:
  -d <n>                delay <n> seconds before starting
  -fs                   Runs XBMC in full screen
  --standalone          XBMC runs in a stand alone environment without a window
                        manager and supporting applications. For example, that
                        enables network settings.
  -p or --portable      XBMC will look for configurations in install folder instead of ~/.xbmc
  --legacy-res          Enables screen resolutions such as PAL, NTSC, etc.
  -l or --lircdev       LircDevice to use default is /dev/lircd .
  -n or --nolirc        do not use Lirc, i.e. no remote input.
  --debug               Enable debug logging
  --version             Print version information
  --test                Enable test mode. [FILE] required.
  --settings=<filename>         Loads specified file after advancedsettings.xml replacing any settings specified
                                specified file must exist in special://xbmc/system/

Code:
root@vuduo2:~# /usr/lib/xbmc/xbmc.bin -b
ALSA lib /home/admin/oecore23/builds/egami/inihdp/tmp/work/mips32el-oe-linux/alsa-lib/alsa-lib-1.0.27.2-r0/alsa-lib-1.0.27.2/src/pcm/pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM
gbm_create_device: invalid fd: -1
ERROR: Unable to create application. Exiting
Segmentation fault

Code:
root@vuduo2:~# /usr/lib/xbmc/xbmc.bin -v
XBMC Media Center 12.0-ALPHA2 Git:20120531-1495cbe
Copyright (C) 2005-2011 Team XBMC - http://www.xbmc.org

Code:
root@duo2:~# cat /proc/cpuinfo
system type             : BCM7425B2 STB platform
machine                 : Unknown
processor               : 0
cpu model               : Broadcom BMIPS5000 V1.1  FPU V0.1
BogoMIPS                : 864.25
cpu MHz                 : 1305.100
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 64
extra interrupt vector  : yes
hardware watchpoint     : no
isa                     : mips1 mips2 mips32r1
ASEs implemented        :
shadow register sets    : 1
kscratch registers      : 0
core                    : 0
VCED exceptions         : not available
VCEI exceptions         : not available

processor               : 1
cpu model               : Broadcom BMIPS5000 V1.1  FPU V0.1
BogoMIPS                : 655.36
cpu MHz                 : 1305.100
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 64
extra interrupt vector  : yes
hardware watchpoint     : no
isa                     : mips1 mips2 mips32r1
ASEs implemented        :
shadow register sets    : 1
kscratch registers      : 0
core                    : 0
VCED exceptions         : not available
VCEI exceptions         : not available


So now is time to wait for opengl driver for BCM STB Smile
Reply
#4
sorry for the probably stupid question, but why are you working with 12.0 (Frodo) and not latest version?
Reply
#5
After I will finish toolchain, I will move to KODI Smile
Reply
#6
warning: you'll find that the build system has changed substantially, and the dependencies has as well (versions, some removed, some added, ...) you will risk having to redo large chunks of your work.
Reply
#7
(2014-09-11, 10:23)ironic_monkey Wrote: warning: you'll find that the build system has changed substantially, and the dependencies has as well (versions, some removed, some added, ...) you will risk having to redo large chunks of your work.

Do not worry, toolchain will base on thing which already exist, so it won't cause problems as You think, as it will use current versions of each lib and build with current revision.

It will generete rootfs as well and everything else.
Reply
#8
You might check into https://github.com/theuni/xbmc/commits/mips

Cory and I (davilla) did a xbmc for mips long ago for sigma.
Reply
#9
(2014-09-11, 15:14)MeatGrinder Wrote: You might check into https://github.com/theuni/xbmc/commits/mips

Cory and I (davilla) did a xbmc for mips long ago for sigma.

Thanks for infromations, but how do You commpile it ?

Do You have any toolchain ?
Reply
#10
Sigma's toolchain. best not to try to compile but take the applicable/relevant code changes. I think there is another branch somewhere, this looks like early work. Not sure if Sigma ever released source changes, as not sure if it was ever a released product.
Reply
#11
(2014-09-11, 21:34)MeatGrinder Wrote: Sigma's toolchain. best not to try to compile but take the applicable/relevant code changes. I think there is another branch somewhere, this looks like early work. Not sure if Sigma ever released source changes, as not sure if it was ever a released product.

I am planning to adapt changes to KODI, but just changes and source change are usless if You have no tools to commpile it.

Does SIGMA enviroment is public ? I did not find it anywhere.
Reply
#12
nothing public, best you can do is talk to https://github.com/gvsigma
Reply
#13
(2014-09-10, 23:35)BMCMaster Wrote:
Code:
root@vuduo2:~# /usr/lib/xbmc/xbmc.bin -v
XBMC Media Center 12.0-ALPHA2 Git:20120531-1495cbe
Copyright (C) 2005-2011 Team XBMC - http://www.xbmc.org
(2014-09-11, 09:10)da-anda Wrote: sorry for the probably stupid question, but why are you working with 12.0 (Frodo) and not latest version?
Sorry to again ask the probably not so stupid question, but

WHY NOT at least begin with latest stable 13.2 (Gotham) or the master which now is 14.0 Alpha (Helix)? Why are you trying to start by compiling an Alpha of XBMC 12.0 which is over 2-years old?

I think that you are that way making it much harder for yourself than it needs to be. And you will be able to get more support here if you instead was trying to compile master as its mainline.


I was also wondering if you will be only looking at Linux for BCM7425, or if you later plan on Kodi on MIPS for Android too?


Other than that I want to wish you good luck!
Reply
#14
No opengl driver is going to hurt, no opengl user libs is going to hurt even more. Those are typically closed source and if you don't have them matched to your GPU, this port will be useless.

Next up is hardware video decode. Without that, this port will be useless unless you are happy watching SD video content and doing software decode.
Reply
#15
mhhh mips for android should only be a switch to the correct toolchain (similar to android arm vs x86 now)
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
Reply

Logout Mark Read Team Forum Stats Members Help
XBMC for MIPSEL - BroadCom 74251