Arduino-Makefile with Teensy 3.6: unrecognized command line option '-mfloat-abi'

Status
Not open for further replies.

wilywampa

Member
Has anyone used sudar/Arduino-Makefile with a Teensy 3.6? I'm running OSX 10.10.5 with Arduino 1.6.12 and Teensyduino 1.31 and get the following error when I try to compile the Blink example with BOARD_TAG=teensy36:

Code:
-------------------------
Arduino.mk Configuration:
- [AUTODETECTED]       CURRENT_OS = MAC
- [USER]               ARDUINO_DIR = /Applications/Arduino.app/Contents/Java
- [USER]               ARDMK_DIR = /Users/jniehus/Documents/Arduino/Arduino-Makefile
- [AUTODETECTED]       ARDUINO_VERSION = 1612
- [USER]               ARCHITECTURE = arm
- [USER]               ARDMK_VENDOR = teensy
- [AUTODETECTED]       ARDUINO_PREFERENCES_PATH = /Users/jniehus/Library/Arduino15/preferences.txt
- [AUTODETECTED]       ARDUINO_SKETCHBOOK = /Users/jniehus/Documents/Arduino (from arduino preferences file)
- [USER]               AVR_TOOLS_DIR = /Applications/Arduino.app/Contents/Java/hardware/tools/arm
- [COMPUTED]           ARDUINO_LIB_PATH = /Applications/Arduino.app/Contents/Java/libraries (from ARDUINO_DIR)
- [USER]               ARDUINO_PLATFORM_LIB_PATH = /Applications/Arduino.app/Contents/Java/hardware/teensy/avr/libraries
- [COMPUTED]           ARDUINO_VAR_PATH = /Applications/Arduino.app/Contents/Java/hardware/teensy/arm/variants (from ARDUINO_DIR)
- [USER]               BOARDS_TXT = /Applications/Arduino.app/Contents/Java/hardware/teensy/avr/boards.txt
- [DEFAULT]            USER_LIB_PATH = /Users/jniehus/Documents/Arduino/libraries (in user sketchbook)
- [DEFAULT]            PRE_BUILD_HOOK = pre-build-hook.sh
- [USER]               BOARD_TAG = teensy36
- [COMPUTED]           CORE = teensy3 (from build.core)
- [COMPUTED]           VARIANT =  (from build.variant)
- [COMPUTED]           OBJDIR = build-teensy36 (from BOARD_TAG)
- [USER]               ARDUINO_CORE_PATH = /Applications/Arduino.app/Contents/Java/hardware/teensy/avr/cores/teensy3
- [ASSUMED]            MONITOR_BAUDRATE = 9600
- [DEFAULT]            OPTIMIZATION_LEVEL = s
- [USER]               MCU_FLAG_NAME = mcpu
- [DEFAULT]            CFLAGS_STD =
- [DEFAULT]            CXXFLAGS_STD =
- [AUTODETECTED]       DEVICE_PATH = /dev/tty.usbmodem2235781
- [DEFAULT]            FORCE_MONITOR_PORT =
- [AUTODETECTED]       Size utility: Basic (not AVR-aware)
- [COMPUTED]           BOOTLOADER_PARENT = /Applications/Arduino.app/Contents/Java/hardware/teensy/arm/bootloaders (from ARDUINO_DIR)
- [COMPUTED]           ARDMK_VERSION = 1.5
- [COMPUTED]           CC_VERSION = 4.8.4 (arm-none-eabi-gcc)
-------------------------
mkdir -p build-teensy36
/Applications/Arduino.app/Contents/Java/hardware/tools/arm/bin/arm-none-eabi-g++ -x c++ -include Arduino.h -MMD -c -DLAYOUT_US_ENGLISH -DUSB_SERIAL  -mcpu=cortex-m4 -DF_CPU=96000000 -DARDUINO=1612 -DARDUINO_ARCH_ARM -D__PROG_TYPES_COMPAT__ -I/Applications/Arduino.app/Contents/Java/hardware/teensy/avr/cores/teensy3 -I/Applications/Arduino.app/Contents/Java/hardware/teensy/arm/variants/    -Wall -ffunction-sections -fdata-sections -Os  -g -Wall -ffunction-sections -fdata-sections -nostdlib -mthumb -mcpu=cortex-m4 -mfloat-abi -D__MK66FX1M0__ -DTEENSYDUINO=131 -fno-exceptions -felide-constructors -std=gnu++0x -fno-rtti -fpermissive -fno-exceptions  Blink.ino -o build-teensy36/Blink.ino.o
arm-none-eabi-g++: error: unrecognized command line option '-mfloat-abi'
make: *** [build-teensy36/Blink.ino.o] Error 1

I am able to make, upload, and run the sketch through the Arduino application.

I tried editing boards.txt to remove "-mfloat-abi" from the command by editing boards.txt and got the same error for "-mfpu".

Thanks!
 
You need a proper value for those flags: -mfloat-abi=hard -mfpu=fpv4-sp-d16. boards.txt has the correct flags:
teensy36.build.flags.cpu=-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant

Your command line has "-mcpu=cortex-m4 ..." twice, the first version is probably from Teensy 3.0 or 3.1, the second from 3.6. So something is quite messed up.
 
Thanks, I completely missed that it didn't have a value in the command. The command that the makefile uses to parse the board settings is flawed in that it gets confused if there are multiple "=" in the setting, so it cut off everything after the "=" in "-mfloat-abi=hard". To fix it, I was able to set

Code:
PARSE_TEENSY = $(shell grep -v "^\#" "$(BOARDS_TXT)" | grep $(1).$(2) | cut -d = -f 2- )

in my makefile. Will submit a pull request to fix it in master.
 
Status
Not open for further replies.
Back
Top