Device-os: gcc-arm-none-eabi-49 is no longer available from homebrew; using gcc-arm-none-eabi

Created on 2 Aug 2016  路  12Comments  路  Source: particle-iot/device-os

The build instructions specify prerequisites for Mac OS X, that include installing gcc-arm-none-eabi-49 via a Homebrew tap. That version is no longer labelled as such, but it's possible to install gcc-arm-none-eabi.

When I do that, I get this version string:

Edwards-MacBook-Air:firmware emv$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20150529 (release) [ARM/embedded-4_9-branch revision 227977]

which I think is correct.


Completeness:

  • [x] Minimum test case added
  • [x] Device, system and user firmware versions stated
  • [x] Particle confirmed

All 12 comments

We are currently using this specific build of version 4.9.3 internally:

arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20150303 (release) [ARM/embedded-4_9-branch revision 221220]

The exact 4.9.3 version that Homebrew picks up is at

https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update/+download/gcc-arm-none-eabi-4_9-2015q3-20150921-mac.tar.bz2

There's a full set of release notes describing what's different. I see several small bug fixes (er, small if they are not your bugs, large if they are your bugs).

The Homebrew tap pulls the files from

https://launchpad.net/gcc-arm-embedded/4.9

which looks like it has a full set of details, should someone need to pull a particular version.

We should probably fix the instructions to represent the same build version we are using internally for now. Not sure if this means we need to create a tap of our own that we can better control when it updates, but something like that. I don't think it hurts to have the latest 4.9.3 but to stay in sync with Particle, 4.9.3 20150303 is the current build we are using in the Cloud.

I am having the same problem. How can i install this formula?

FYI -- I have built with px4/px4/gcc-arm-none-eabi-54 installed through homebrew and it seems to work fine

@BracWebb I tried it as well but i am running into these issues:

opt/local/arm-none-eabi/include/sys/time.h:38:19: error: field 'it_interval' has incomplete type struct timeval it_interval; ^ /opt/local/arm-none-eabi/include/sys/time.h:39:19: error: field 'it_value' has incomplete type struct timeval it_value; ^ lib/mbedtls/library/timing.c:66:20: error: field 'start' has incomplete type struct timeval start; ^ lib/mbedtls/library/timing.c: In function 'mbedtls_timing_get_timer': lib/mbedtls/library/timing.c:285:20: error: storage size of 'offset' isn't known struct timeval offset; ^ lib/mbedtls/library/timing.c:285:20: error: unused variable 'offset' [-Werror=unused-variable]

I managed to install 4.9.3 and it compiles now, thanks.
That article helped me do just that: http://mygeekdaddy.net/2014/12/05/how-to-install-a-local-file-in-homebrew/

This downloads the formula posted above by @technobly & puts it into your local px4 tap:

curl -s https://raw.githubusercontent.com/PX4/homebrew-px4/\
aec23308d7df9f5c19b2245a5e8c9dbd2b62c041/\
gcc-arm-none-eabi-49.rb > \
/usr/local/Library/Taps/px4/homebrew-px4/gcc-arm-none-eabi-49.rb

Note: brew install gcc-arm-none-eabi-49 does emit some Formulae deprecation warnings, but this appears to be working.

@thelostspore thanks for posting your tips. Unfortunately for me when I tried to follow it, homebrew didn't like the sha1 included in the old formula and wanted a sha256 to proceed. I've edited the formula and tested the install. Here are my steps:

1) Copy/Paste this in Terminal and press ENTER to create the proper Brew formula

echo -e "require 'formula'

class GccArmNoneEabi49 < Formula
  homepage 'https://launchpad.net/gcc-arm-embdded'
  version '20150306'
  url 'https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q1-update/+download/gcc-arm-none-eabi-4_9-2015q1-20150306-mac.tar.bz2'
  sha256 '049469f06c35d1a7c6d333236bc62ed340531c4377b4e16ce8c5aa8d134e8e8b'

  def install
    ohai 'Copying binaries...'
    system 'cp', '-rv', 'arm-none-eabi', 'bin', 'lib', 'share', \"#{prefix}/\"
  end
end" > /usr/local/Homebrew/Library/Taps/px4/homebrew-px4/gcc-arm-none-eabi-49.rb

2) install it!

brew install gcc-arm-none-eabi-49

better, do this : brew cask install gcc-arm-embedded

Was this page helpful?
0 / 5 - 0 ratings