Make bin - OSX Mavericks

I’m trying to follow the instructions to load your own patch from the Getting Started Wiki http://hoxtonowl.com/wiki/Getting_Started and from the GitHub README GitHub - pingdynasty/OwlWare: Firmware for the OWL programmable effects pedal

Unfortunately I’m getting the following error when trying to run ‘make bin’ on OSX Mavericks.
arm-none-eabi-gcc: error trying to exec ‘cc1’: execvp: No such file or directory

I’ve done some googling and it looks as though it might be a ‘PATH’ issue, but TBH I’m getting a bit confused. I’m not entirely sure whether the arm-none-eabi-gcc can’t find whatever it needs on my set-up, or within the files/executables that it brings with it. Any help would be appreciated.

While I’m here, there’s a slight problem with the makefile.common, in that the TOOLROOT path is likely to change (apparently per quarter) if users download the GNU ARM Toolchain as recommended in the README.

Cheers,
Steve

Hmm, odd! Which version of the toolchain are you using, the latest?
I’m still on gcc-arm-none-eabi-4_7-2013q3 which works fine, I’ll download and install the most recent and see what happens.

Latest arm-gcc works for me with this in Makefile.common:
TOOLROOT=$(TEMPLATEROOT)/Tools/gcc-arm-none-eabi-4_8-2013q4/bin

Not sure if it’s relevant, but have you done:
sudo xcode-select --install
( see https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/xcode-select.1.html )

I appreciate the help.

TOOLROOT=$(TEMPLATEROOT)/Tools/gcc-arm-none-eabi-4_8-2013q4/bin
Yep, that's the version I'm using and it's that path in Makefile.common The Command Line Tools are definitely installed as well.

Is there anything else you can think of that I could check?
Thanks,
Steve

Strange!
Can you pls post the output of ‘which make’, ‘git status’, and ‘ls Tools’, along with the messages preceding the error?

which make - /usr/bin/make
ls Tools - STM32F4-Discovery_FW_V1.1.0 gcc-arm-none-eabi-4_8-2013q4

git status gives a lot of cruft because of line ending differences (I’m not sure why though, most of the files haven’t been opened). Anyway here’s the full list:

On branch master

Changes not staged for commit:

(use “git add <file>…” to update what will be committed)

(use “git checkout – <file>…” to discard changes in working directory)

(commit or discard the untracked or modified content in submodules)

modified: .gitignore

modified: .gitmodules

modified: Build/.gitignore

modified: LICENSE

modified: Libraries/.gitignore

modified: Libraries/OwlPatches (modified content)

modified: Libraries/syscalls/syscalls.c

modified: Makefile

modified: Makefile.common

modified: Makefile.f4

modified: README.md

modified: Source/ApplicationSettings.cpp

modified: Source/ApplicationSettings.h

modified: Source/CodecController.cpp

modified: Source/CodecController.h

modified: Source/MemoryBuffer.hpp

modified: Source/MidiController.cpp

modified: Source/MidiController.h

modified: Source/MidiHandler.hpp

modified: Source/MidiReader.hpp

modified: Source/MidiStatus.h

modified: Source/Owl.cpp

modified: Source/Owl.h

modified: Source/PatchController.cpp

modified: Source/PatchController.h

modified: Source/PatchProcessor.cpp

modified: Source/PatchProcessor.h

modified: Source/PatchRegistry.cpp

modified: Source/PatchRegistry.h

modified: Source/SampleBuffer.hpp

modified: Source/SampleBufferTest.cpp

modified: Source/StompBox.cpp

modified: Source/StompBox.h

modified: Source/armcontrol.c

modified: Source/armcontrol.h

modified: Source/audio.h

modified: Source/basicmaths.c

modified: Source/basicmaths.h

modified: Source/clock.c

modified: Source/clock.h

modified: Source/codec.c

modified: Source/codec.h

modified: Source/device.h

modified: Source/eepromcontrol.c

modified: Source/eepromcontrol.h

modified: Source/errorhandlers.c

modified: Source/gdbscript

modified: Source/gpio.c

modified: Source/gpio.h

modified: Source/hardfault.c

modified: Source/main.cpp

modified: Source/midicontrol.cpp

modified: Source/midicontrol.h

modified: Source/operators.cpp

modified: Source/owlcontrol.c

modified: Source/owlcontrol.h

modified: Source/serial.c

modified: Source/serial.h

modified: Source/sysex.c

modified: Source/sysex.h

modified: Source/testdlopen.cpp

modified: Source/usb_bsp.c

modified: Source/usb_conf.h

modified: Source/usbcontrol.c

modified: Source/usbcontrol.h

modified: Source/usbd_conf.h

modified: Source/usbd_desc.c

modified: Source/usbd_desc.h

modified: Source/usbd_usr.c

modified: Tools/.gitignore

Untracked files:

(use “git add <file>…” to include in what will be committed)

Tools/.DS_Store

Tools/STM32F4-Discovery_FW_V1.1.0/

Tools/gcc-arm-none-eabi-4_8-2013q4/

Any use?

Sorry, I’ve just updated my git config on my OSX instance so that line endings don’t matter

On branch master

Changes not staged for commit:

(use “git add <file>…” to update what will be committed)

(use “git checkout – <file>…” to discard changes in working directory)

modified: Makefile.common

Untracked files:

(use “git add <file>…” to include in what will be committed)

Tools/.DS_Store

Tools/STM32F4-Discovery_FW_V1.1.0/

Tools/gcc-arm-none-eabi-4_8-2013q4/

no changes added to commit (use “git add” and/or “git commit -a”)

Here’s the diff on the Makefile.common
-TOOLROOT=$(TEMPLATEROOT)/Tools/gcc-arm-none-eabi-4_7-2013q3/bin
+TOOLROOT=$(TEMPLATEROOT)/Tools/gcc-arm-none-eabi-4_8-2013q4/bin

Well the STM32F4-Discovery_FW_V1.1.0 folder should be in Libraries, not Tools, apart from that it all seems very vanilla.
What output do you get when you do ‘make clean all’ ? (only the few messages preceding the error)

Very similar, here are the 3 lines. I moved the STM folder into libraries first, in case that makes a difference.

./Tools/gcc-arm-none-eabi-4_8-2013q4/bin/arm-none-eabi-gcc -c -g -Wall -Wcpp -DUSE_FULL_ASSERT -D__FPU_PRESENT=1 -D__FPU_USED=1 -DEXTERNAL_SRAM -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -I./Libraries -I./Libraries/STM32F4-Discovery_FW_V1.1.0/Libraries/CMSIS/ST/STM32F4xx -I./Libraries/STM32F4-Discovery_FW_V1.1.0/Libraries/CMSIS/Include -I./Libraries/STM32F4-Discovery_FW_V1.1.0/Libraries/STM32F4xx_StdPeriph_Driver/inc -I./Source -I./Libraries/STM32F4-Discovery_FW_V1.1.0/Libraries/CMSIS/ST/STM32F4xx/Include -I./Libraries/STM32F4-Discovery_FW_V1.1.0/Libraries/CMSIS/Include -I./Libraries/STM32F4-Discovery_FW_V1.1.0/Libraries/STM32_USB_Device_Library/Core/inc -I./Libraries/STM32F4-Discovery_FW_V1.1.0/Libraries/STM32_USB_Device_Library/Class/cdc/inc -I./Libraries/STM32F4-Discovery_FW_V1.1.0/Libraries/STM32_USB_OTG_Driver/inc -DUSE_STDPERIPH_DRIVER -DARM_MATH_CM4 -DSTM32F4XX -D__FPU_PRESENT -fno-builtin -std=c99 ./Source/codec.c -o Build/codec.o arm-none-eabi-gcc: error trying to exec 'cc1': execvp: No such file or directory make: *** [Build/codec.o] Error 1

That looks exactly like mine.

Did you unpack gcc-arm with tar?

Maybe worth trying to add the path to the binaries, e.g. in Makefile.common:

# Tools
PATH=$(PATH):$(TOOLROOT)/bin:$(TOOLROOT)/lib/gcc/arm-none-eabi/4.8.3/
CC=$(TOOLROOT)/arm-none-eabi-gcc

Not that it should be needed!

Could you try unsetting GCC_EXEC_PREFIX as per this:

(if you do ‘env | grep GCC’ you should see if it is set)

Did you unpack gcc-arm with tar?
I used the OSX built in Archive Utility (i.e. I double-clicked on the file I'd downloaded: gcc-arm-none-eabi-4_8-2013q4-20131218-mac.tar.bz2), I have no idea what that uses under the hood.

Adding the PATH to the binaries results in:
Makefile.common:10: *** Recursive variable `PATH’ references itself (eventually). Stop.

Hmmmm. Are you using Mavericks? If so could you show me the output of echo $PATH please?

Thanks.

Yes I’m on Mavericks. Here’s my path (I use macports):

/opt/local/bin:/opt/local/sbin:/Users/mars/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/System/Library/Frameworks/Python.framework/Versions/2.3/bin

Don’t really think it’s a path issue though, since the tools are directly referenced.

Maybe the Mac unpacker messed up the file attributes. Could you try removing your gcc-arm and untarring from the command line with ‘tar xfj gcc-arm-none-eabi-4_8-2013q4-20131218-mac.tar.bz2’

TL;DR GREAT SUCCESS!!! Thanks.

Don’t really think it’s a path issue though, since the tools are directly referenced. /opt/local/bin:/opt/local/sbin:/Users/mars/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/System/Library/Frameworks/Python.framework/Versions/2.3/bin

Yeah, I think you’re right. I thought there might be some issue with a path to /Applications/Xcode.app/Contents/Developer/usr/bin as there seem to be a few posts about the Command Line Tools and PATH to that location, but I guess not.

Maybe the Mac unpacker messed up the file attributes. Could you try removing your gcc-arm and untarring from the command line with ‘tar xfj gcc-arm-none-eabi-4_8-2013q4-20131218-mac.tar.bz2?
W00t!!! That worked :) Thanks so much for your patience - as someone who hates trying to debug issues when I don't have my hand on the keyboard, I really appreciate it.

Steve