Open
Description
Issue Summary
via https://github.com/ianfixes/arduino_ci/issues/140#issuecomment-656966055
My initial reverse-engineer of arduino compilation used the wrong compiler options: -std=c++0x
.
Here is a dump of actual arduino compilation commands:
/home/.../snap/arduino/41/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/bin/arm-none-eabi-g++
-mcpu=cortex-m0plus
-mthumb
-c
-g
-Os
-Wall
-Wextra
-Wno-expansion-to-defined
-std=gnu++11
-ffunction-sections
-fdata-sections
-fno-threadsafe-statics
-nostdlib
--param max-inline-insns-single=500
-fno-rtti
-fno-exceptions
-MMD
-DF_CPU=48000000L
-DARDUINO=10813
-DARDUINO_SAMD_MKRWIFI1010
-DARDUINO_ARCH_SAMD
-DUSE_ARDUINO_MKR_PIN_LAYOUT
-D__SAMD21G18A__
-DUSB_VID=0x2341
-DUSB_PID=0x8054
-DUSBCON
"-DUSB_MANUFACTURER=\"Arduino LLC\""
"-DUSB_PRODUCT=\"Arduino MKR WiFi 1010\""
-DUSE_BQ24195L_PMIC
-I/home/.../snap/arduino/41/.arduino15/packages/arduino/tools/CMSIS/4.5.0/CMSIS/Include/
-I/home/.../snap/arduino/41/.arduino15/packages/arduino/tools/CMSIS-Atmel/1.2.0/CMSIS/Device/ATMEL/
-I/home/.../snap/arduino/41/.arduino15/packages/arduino/hardware/samd/1.8.6/cores/arduino
-I/home/.../snap/arduino/41/.arduino15/packages/arduino/hardware/samd/1.8.6/variants/mkrwifi1010
-I/home/.../snap/arduino/current/Arduino/libraries/TaskScheduler/src
-I/home/.../snap/arduino/current/Arduino/libraries/WiFiNINA/src
-I/home/.../snap/arduino/current/Arduino/libraries/RTCZero/src
-I/home/.../snap/arduino/current/Arduino/libraries/StreamUtils/src
-I/home/.../snap/arduino/41/.arduino15/packages/arduino/hardware/samd/1.8.6/libraries/SPI
/home/.../snap/arduino/current/Arduino/libraries/RTCZero/src/RTCZero.cpp
-o /tmp/arduino_build_827430/libraries/RTCZero/RTCZero.cpp.o
Of these, the following look like they should be swapped in immediately:
-std=gnu++11
-Wno-expansion-to-defined
-nostdlib
This will likely change the nature of the workaround for things like String.h
and Stream.h
, possibly allowing (or requiring, depending on how you look at it) a ground-up rewrite of those.