Skip to content

Instantly share code, notes, and snippets.

@neagix
Created October 5, 2013 03:38
Show Gist options
  • Save neagix/6836405 to your computer and use it in GitHub Desktop.
Save neagix/6836405 to your computer and use it in GitHub Desktop.
errors when building on ARM cortex A9
$ ./libretro-build.sh build_libretro_mupen64
armv7l CPU detected
Script: ~/libretro-super/libretro-build.sh
CC = gcc
CXX = g++
STRIP =
Compiler: CC="gcc" CXX="g++"
=== ARM NEON opts enabled... ===
=== Cortex A9 opts enabled... ===
=== ARM hardfloat ABI enabled... ===
unix-neon-cortexa9-hardfloat
Directory ~/libretro-super/dist/unix already exists, skipping creation...
=== Building Mupen 64 Plus (ARM dynarec) ===
rm -f mupen64plus-core/src/r4300/new_dynarec/linkage_arm.o mupen64plus-rsp-hle/src/ucode1.o mupen64plus-rsp-hle/src/ucode2.o mupen64plus-rsp-hle/src/ucode3.o mupen64plus-rsp-hle/src/ucode3mp3.o gles2rice/src/Blender.o gles2rice/src/Combiner.o gles2rice/src/CombinerTable.o gles2rice/src/Config.o gles2rice/src/ConvertImage16.o gles2rice/src/ConvertImage.o gles2rice/src/Debugger.o gles2rice/src/DecodedMux.o gles2rice/src/DeviceBuilder.o gles2rice/src/DirectXDecodedMux.o gles2rice/src/FrameBuffer.o gles2rice/src/GeneralCombiner.o gles2rice/src/GraphicsContext.o gles2rice/src/OGLCombiner.o gles2rice/src/OGLDecodedMux.o gles2rice/src/OGLES2FragmentShaders.o gles2rice/src/OGLExtCombiner.o gles2rice/src/OGLExtRender.o gles2rice/src/OGLGraphicsContext.o gles2rice/src/OGLRender.o gles2rice/src/OGLRenderExt.o gles2rice/src/OGLTexture.o gles2rice/src/RenderBase.o gles2rice/src/Render.o gles2rice/src/RenderExt.o gles2rice/src/RenderTexture.o gles2rice/src/RSP_Parser.o gles2rice/src/RSP_S2DEX.o gles2rice/src/Texture.o gles2rice/src/TextureFilters_2xsai.o gles2rice/src/TextureFilters.o gles2rice/src/TextureFilters_hq2x.o gles2rice/src/TextureFilters_hq4x.o gles2rice/src/TextureManager.o gles2rice/src/VectorMath.o gles2rice/src/Video.o gles2n64/src/2xSAI.o gles2n64/src/3DMath.o gles2n64/src/Config.o gles2n64/src/CRC.o gles2n64/src/DepthBuffer.o gles2n64/src/F3DCBFD.o gles2n64/src/F3D.o gles2n64/src/F3DDKR.o gles2n64/src/F3DEX2.o gles2n64/src/F3DEX.o gles2n64/src/F3DPD.o gles2n64/src/F3DWRUS.o gles2n64/src/GBI.o gles2n64/src/gDP.o gles2n64/src/gles2N64.o gles2n64/src/gSP.o gles2n64/src/L3D.o gles2n64/src/L3DEX2.o gles2n64/src/L3DEX.o gles2n64/src/N64.o gles2n64/src/OpenGL.o gles2n64/src/RDP.o gles2n64/src/RSP.o gles2n64/src/S2DEX2.o gles2n64/src/S2DEX.o gles2n64/src/ShaderCombiner.o gles2n64/src/Textures.o gles2n64/src/VI.o gles2glide64/src/Glide64/3dmath.o gles2glide64/src/Glide64/Combine.o gles2glide64/src/Glide64/Config.o gles2glide64/src/Glide64/CRC.o gles2glide64/src/Glide64/Debugger.o gles2glide64/src/Glide64/DepthBufferRender.o gles2glide64/src/Glide64/FBtoScreen.o gles2glide64/src/Glide64/Ini.o gles2glide64/src/Glide64/Keys.o gles2glide64/src/Glide64/Main.o gles2glide64/src/Glide64/rdp.o gles2glide64/src/Glide64/TexBuffer.o gles2glide64/src/Glide64/TexCache.o gles2glide64/src/Glide64/Util.o gles2glide64/src/Glitch64/combiner.o gles2glide64/src/Glitch64/geometry.o gles2glide64/src/Glitch64/glState.o gles2glide64/src/Glitch64/main.o gles2glide64/src/Glitch64/textures.o libretro/audio_plugin.o libretro/glsym.o libretro/input_plugin.o libretro/libretro.o libretro/opengl_state_machine.o libretro/resampler.o libretro/sinc.o libretro/utils.o libretro/libco/libco.o mupen64plus-rsp-hle/src/alist.o mupen64plus-rsp-hle/src/cicx105.o mupen64plus-rsp-hle/src/jpeg.o mupen64plus-rsp-hle/src/main.o mupen64plus-core/src/api/callbacks.o mupen64plus-core/src/api/common.o mupen64plus-core/src/api/config.o mupen64plus-core/src/api/frontend.o mupen64plus-core/src/main/main.o mupen64plus-core/src/main/md5.o mupen64plus-core/src/main/rom.o mupen64plus-core/src/main/savestates.o mupen64plus-core/src/main/util.o mupen64plus-core/src/memory/dma.o mupen64plus-core/src/memory/flashram.o mupen64plus-core/src/memory/memory.o mupen64plus-core/src/memory/n64_cic_nus_6105.o mupen64plus-core/src/memory/pif.o mupen64plus-core/src/memory/tlb.o mupen64plus-core/src/plugin/plugin.o mupen64plus-core/src/r4300/profile.o mupen64plus-core/src/r4300/recomp.o mupen64plus-core/src/r4300/exception.o mupen64plus-core/src/r4300/pure_interp.o mupen64plus-core/src/r4300/reset.o mupen64plus-core/src/r4300/interupt.o mupen64plus-core/src/r4300/r4300.o mupen64plus-core/src/r4300/empty_dynarec.o mupen64plus-core/src/r4300/new_dynarec/new_dynarec.o gles2rice/src/osal_files_.o gles2rice/src/liblinux/BMGImage.o gles2rice/src/liblinux/BMGUtils.o gles2rice/src/liblinux/bmp.o mupen64plus_libretro.so
"gcc" -std=gnu99 -c mupen64plus-core/src/r4300/new_dynarec/linkage_arm.S -o mupen64plus-core/src/r4300/new_dynarec/linkage_arm.o
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o mupen64plus-rsp-hle/src/ucode1.o mupen64plus-rsp-hle/src/ucode1.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o mupen64plus-rsp-hle/src/ucode2.o mupen64plus-rsp-hle/src/ucode2.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o mupen64plus-rsp-hle/src/ucode3.o mupen64plus-rsp-hle/src/ucode3.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o mupen64plus-rsp-hle/src/ucode3mp3.o mupen64plus-rsp-hle/src/ucode3mp3.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/Blender.o gles2rice/src/Blender.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/Combiner.o gles2rice/src/Combiner.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/CombinerTable.o gles2rice/src/CombinerTable.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/Config.o gles2rice/src/Config.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/ConvertImage16.o gles2rice/src/ConvertImage16.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/ConvertImage.o gles2rice/src/ConvertImage.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/Debugger.o gles2rice/src/Debugger.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/DecodedMux.o gles2rice/src/DecodedMux.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/DeviceBuilder.o gles2rice/src/DeviceBuilder.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/DirectXDecodedMux.o gles2rice/src/DirectXDecodedMux.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/FrameBuffer.o gles2rice/src/FrameBuffer.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/GeneralCombiner.o gles2rice/src/GeneralCombiner.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/GraphicsContext.o gles2rice/src/GraphicsContext.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/OGLCombiner.o gles2rice/src/OGLCombiner.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/OGLDecodedMux.o gles2rice/src/OGLDecodedMux.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/OGLES2FragmentShaders.o gles2rice/src/OGLES2FragmentShaders.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/OGLExtCombiner.o gles2rice/src/OGLExtCombiner.cpp
"g++" -I. -marm -DARM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2rice/src/OGLExtRender.o gles2rice/src/OGLExtRender.cpp
/tmp/ccKQqbP9.s: Assembler messages:
/tmp/ccKQqbP9.s:1819: Error: ARM register expected -- `mov %ebx,[sp,#4]'
/tmp/ccKQqbP9.s:1820: Error: ARM register expected -- `mov %eax,[sp,#8]'
/tmp/ccKQqbP9.s:1821: Error: ARM register expected -- `mov %ecx,[sp,#12]'
/tmp/ccKQqbP9.s:1822: Error: ARM register expected -- `mov %edx,[sp,#16]'
/tmp/ccKQqbP9.s:1823: Error: ARM register expected -- `mov %esi,[sp,#20]'
/tmp/ccKQqbP9.s:1824: Error: ARM register expected -- `mov [r3,#0],%ecx'
/tmp/ccKQqbP9.s:1825: Error: ARM register expected -- `mov $0,%edx'
/tmp/ccKQqbP9.s:1826: Error: ARM register expected -- `mov [sp,#32],%eax'
/tmp/ccKQqbP9.s:1828: Error: ARM register expected -- `mov [sp,#24],%ebx'
/tmp/ccKQqbP9.s:1829: Error: ARM register expected -- `sub $4,%ebx'
/tmp/ccKQqbP9.s:1831: Error: ARM register expected -- `mov (%ecx,%ebx),%esi'
/tmp/ccKQqbP9.s:1832: Error: bad instruction `xor %ebx,%esi'
/tmp/ccKQqbP9.s:1833: Error: bad instruction `rol $4,%edx'
/tmp/ccKQqbP9.s:1834: Error: ARM register expected -- `add %esi,%edx'
/tmp/ccKQqbP9.s:1835: Error: ARM register expected -- `sub $4,%ebx'
/tmp/ccKQqbP9.s:1836: Error: bad instruction `jge 1b'
/tmp/ccKQqbP9.s:1837: Error: bad instruction `xor %eax,%esi'
/tmp/ccKQqbP9.s:1838: Error: ARM register expected -- `add %esi,%edx'
/tmp/ccKQqbP9.s:1839: Error: ARM register expected -- `add [sp,#28],%ecx'
/tmp/ccKQqbP9.s:1840: Error: bad instruction `dec %eax'
/tmp/ccKQqbP9.s:1841: Error: bad instruction `jge 0b'
/tmp/ccKQqbP9.s:1842: Error: ARM register expected -- `mov [sp,#4],%ebx'
/tmp/ccKQqbP9.s:1843: Error: ARM register expected -- `mov %edx,[sp,#36]'
/tmp/ccKQqbP9.s:1844: Error: ARM register expected -- `mov [sp,#8],%eax'
/tmp/ccKQqbP9.s:1845: Error: ARM register expected -- `mov [sp,#12],%ecx'
/tmp/ccKQqbP9.s:1846: Error: ARM register expected -- `mov [sp,#16],%edx'
/tmp/ccKQqbP9.s:1847: Error: ARM register expected -- `mov [sp,#20],%esi'
make: *** [gles2rice/src/FrameBuffer.o] Error 1
make: *** Waiting for unfinished jobs....
Failed to build Mupen 64 (ARM dynarec)
cp: cannot stat `mupen64plus_libretro.so': No such file or directory
@mirzak
Copy link

mirzak commented Oct 21, 2013

I have the same issue. Any luck with this?

Edit: All though you don't seem to have setup CC and CXX correctly? Are you using gcc for you your host when trying to compile for arm? Or maybe you are doing native arm compiling?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment