Skip to content

Commit

Permalink
Make ARM compilers work on Linux.
Browse files Browse the repository at this point in the history
  • Loading branch information
jpakkane committed Aug 2, 2019
1 parent 9943635 commit 9a62d69
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 2 deletions.
35 changes: 35 additions & 0 deletions cross/armclang-linux.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Using ARM compilers from Linux command line is tricky and
# not really well documented because they want you to use
# their IDE instead.
#
# First you need to do the full install with the IDE and set
# up license files et al. This may be possible from the command
# line.
#
# Then you need to do the following:
#
# Select toolchain by running /opt/arm/developmentstudio-2019.0/bin/select_default_toolchain
# Armcc is only available in toolchain version 5.
# Armclang is only available in toolchain version 6.
# Start shell with /opt/arm/developmentstudio-2019.0/bin/suite_exec zsh
# Now the compilers will work.

[binaries]
# we could set exe_wrapper = qemu-arm-static but to test the case
# when cross compiled binaries can't be run we don't do that
c = '/opt/arm/developmentstudio-2019.0/sw/ARMCompiler6.12/bin/armclang'
#c = '/opt/arm/developmentstudio-2019.0/sw/ARMCompiler5.06u6/bin/armcc'
#cpp = '/usr/bin/arm-linux-gnueabihf-g++'
ar = '/opt/arm/developmentstudio-2019.0/sw/ARMCompiler6.12/bin/armar'
#strip = '/usr/arm-linux-gnueabihf/bin/strip'
#pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'

[properties]

#c_args = ['--target=aarch64-arm-none-eabi']

[host_machine]
system = 'baremetal'
cpu_family = 'arm'
cpu = 'armv7' # Not sure if correct.
endian = 'little'
4 changes: 2 additions & 2 deletions mesonbuild/compilers/mixins/arm.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,8 @@ class ArmclangCompiler:
def __init__(self, compiler_type: 'CompilerType'):
if not self.is_cross:
raise mesonlib.EnvironmentException('armclang supports only cross-compilation.')
# Check whether 'armlink.exe' is available in path
self.linker_exe = 'armlink.exe'
# Check whether 'armlink' is available in path
self.linker_exe = 'armlink'
args = '--vsn'
try:
p, stdo, stderr = mesonlib.Popen_safe(self.linker_exe, args)
Expand Down

0 comments on commit 9a62d69

Please sign in to comment.