selected processor does not support Thumb mode `smc 0'
Hi, I am trying to compile UEFI code with linaro toolchain version: # arm-linux-gnueabi-gcc --version arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.7.1-5ubuntu1~ppa1) 4.7.1 Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. I got the erros as follows: "/usr/bin/arm-linux-gnueabi-gcc" -mthumb -march=armv7-a -I/home/shiva/workspace/arndale/edk2/SamsungPlatformPkg/ExynosPkg/Exynos5250/Include/Platform -g -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -c -include AutoGen.h -mword-relocations -mlittle-endian -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -O0 -o /home/shiva/workspace/arndale/edk2/Build/Arndale-Exynos/DEBUG_ARMLINUXGCC/ARM/SamsungPlatformPkg/ExynosPkg/Exynos5250/Sec/Sec/OUTPUT/./Smc.obj -I/home/shiva/workspace/arndale/edk2/SamsungPlatformPkg/ExynosPkg/Exynos5250/Sec -I/home/shiva/workspace/arndale/edk2/Build/Arndale-Exynos/DEBUG_ARMLINUXGCC/ARM/SamsungPlatformPkg/ExynosPkg/Exynos5250/Sec/Sec/DEBUG -I/home/shiva/workspace/arndale/edk2/MdePkg -I/home/shiva/workspace/arndale/edk2/MdePkg/Include -I/home/shiva/workspace/arndale/edk2/MdePkg/Include/Arm -I/home/shiva/workspace/arndale/edk2/MdeModulePkg -I/home/shiva/workspace/arndale/edk2/MdeModulePkg/Include -I/home/shiva/workspace/arndale/edk2/ArmPkg -I/home/shiva/workspace/arndale/edk2/ArmPkg/Include -I/home/shiva/workspace/arndale/edk2/ArmPlatformPkg -I/home/shiva/workspace/arndale/edk2/ArmPlatformPkg/Include -I/home/shiva/workspace/arndale/edk2/SamsungPlatformPkg/ExynosPkg/Exynos5250 -I/home/shiva/workspace/arndale/edk2/SamsungPlatformPkg/ExynosPkg/Exynos5250/Include /home/shiva/workspace/arndale/edk2/SamsungPlatformPkg/ExynosPkg/Exynos5250/Sec/Smc.c Smc.s: Assembler messages: Smc.s:51: Error: selected processor does not support Thumb mode `smc 0' Is there any issue with the toolchain or any flags I am using? -- Thanks and Regards, Shiva. ___ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain
Re: selected processor does not support Thumb mode `smc 0'
Hi, On 7 December 2012 13:19, Shivamurthy Shastri wrote: > Hi, > > I am trying to compile UEFI code with linaro toolchain version: > > # arm-linux-gnueabi-gcc --version > arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.7.1-5ubuntu1~ppa1) 4.7.1 > Copyright (C) 2012 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > I got the erros as follows: > > "/usr/bin/arm-linux-gnueabi-gcc" -mthumb -march=armv7-a > -I/home/shiva/workspace/arndale/edk2/SamsungPlatformPkg/ExynosPkg/Exynos5250/Include/Platform > -g -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces > -Wno-array-bounds -c -include AutoGen.h -mword-relocations -mlittle-endian > -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char > -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -O0 -o > /home/shiva/workspace/arndale/edk2/Build/Arndale-Exynos/DEBUG_ARMLINUXGCC/ARM/SamsungPlatformPkg/ExynosPkg/Exynos5250/Sec/Sec/OUTPUT/./Smc.obj > -I/home/shiva/workspace/arndale/edk2/SamsungPlatformPkg/ExynosPkg/Exynos5250/Sec > -I/home/shiva/workspace/arndale/edk2/Build/Arndale-Exynos/DEBUG_ARMLINUXGCC/ARM/SamsungPlatformPkg/ExynosPkg/Exynos5250/Sec/Sec/DEBUG > -I/home/shiva/workspace/arndale/edk2/MdePkg > -I/home/shiva/workspace/arndale/edk2/MdePkg/Include > -I/home/shiva/workspace/arndale/edk2/MdePkg/Include/Arm > -I/home/shiva/workspace/arndale/edk2/MdeModulePkg > -I/home/shiva/workspace/arndale/edk2/MdeModulePkg/Include > -I/home/shiva/workspace/arndale/edk2/ArmPkg > -I/home/shiva/workspace/arndale/edk2/ArmPkg/Include > -I/home/shiva/workspace/arndale/edk2/ArmPlatformPkg > -I/home/shiva/workspace/arndale/edk2/ArmPlatformPkg/Include > -I/home/shiva/workspace/arndale/edk2/SamsungPlatformPkg/ExynosPkg/Exynos5250 > -I/home/shiva/workspace/arndale/edk2/SamsungPlatformPkg/ExynosPkg/Exynos5250/Include > /home/shiva/workspace/arndale/edk2/SamsungPlatformPkg/ExynosPkg/Exynos5250/Sec/Smc.c > Smc.s: Assembler messages: > Smc.s:51: Error: selected processor does not support Thumb mode `smc 0' > > Is there any issue with the toolchain or any flags I am using? The issue is the -march=armv7-a option. Technically, baseline ARMv7-A does not support the 'smc' instruction - it is added by the Security Extensions. Gas (which is the program producing your error message) is following this behaviour. Gas does expose -march=armv7-a+sec which does allow 'smc', unfortunately GCC does not understand this option. There are two ways around this: 1) Use -mcpu= instead of -march=armv7-a. If all you want is 'smc', using -mcpu=cortex-a8 will do. 2) If you are using inline assembly to generate the 'smc' instruction, add '.arch_extension sec' to the assembly before the sec instruction. I hope this helps. Thanks, Matt -- Matthew Gretton-Dann Linaro Toolchain Working Group matthew.gretton-d...@linaro.org ___ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain
[ACTIVITY] 3-7 December 2012
== Blueprints == InitialCurrentActual initial-aarch64-backport31 Oct 201214 Dec 2012 aarch64-baremetal-testing 31 Oct 201214 Dec 2012 fix-gcc-multiarch-testing 31 Dec 201231 Dec 2012 backport-fma-intrinsic 31 Dec 201231 Dec 2012 fused-multiply-add-support 31 Dec 201231 Dec 2012 gcc-investigate-lra-for-arm 31 Dec 201231 Dec 2012 == Progress == * Admin * Interviewing * Took over from Michael * Preparation for taking over from Michael * re-PINGed triplet backport patches upstream * Patch review * Initial thoughts about cards == Next Week == * initial-aarch64-backport and aarch64-baremetal-testing * Complete documentation * gcc-investigate-lra-for-arm * Analyse benchmarks * Run HOT/COLD partitioning benchmarks * Analyse ARM results * On x86_64 to see what the actual benefit we could get * fix-gcc-multiarch-testing * Come up with strawman proposal for updating testsuite to handle testing with varying command-line options. == Future == * backport-fma-intrinsic & fused-multiply-add-support * Backport patches once fix-gcc-multiarch-testing has been done. -- Matthew Gretton-Dann Linaro Toolchain Working Group matthew.gretton-d...@linaro.org ___ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain
[ACTIVITY] 3-7 December 2012
== Progress == * Turn off 64-bits bitos in Neon: Ping-ed patch proposal. * Disable peeling: benchmarks show good results; sent a proposal upstream to discuss preliminary implementation & needed testsuite modifications. * builtin_bswap16 backport to linaro-4.7: need to investigation an unexpected regression reported for i686 target. * Updated gdb linaro sources to 7.5.1, exercising the release process. * Trying to bootstrap gcc-linaro/4.7 on board: need to retry with a different rootfs distribution. == Next == * handle 64-bits bitops in Neon and disable-peeling feedback from upstream if any. * finish builtin_bswap16 backport ___ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain
[ACTIVITY] report week 49
* usual set of meetings etc * rebased qemu-linaro on upstream 1.3, rolled tarball for 2012.12; Zhenqiang has tested it and it should be ready to go next week * qemu arm patch catchup; pinging or resending some patches of mine from before upstream freeze * applied a set of boot-wrapper patches from tixy * virtio patch code review: design definitely coming together now KVM blueprint progress tracker (note new url): http://cbuild.validation.linaro.org/helpers/backlog?group_by=topic&colour_by=state&projects=linaro-kvm?group_by=topic&colour_by=state&projects=linaro-kvm -- PMM ___ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain