Commit f9cef7f breaks platformio SAMD platform
prices opened this issue · 1 comments
Description
After commit f9cef7f compiling on the SAMD platform gives:
.piolibdeps/Time/DateStrings.cpp: In function 'char* monthStr(uint8_t)':
.piolibdeps/Time/DateStrings.cpp:76:66: error: 'strcpy_P' was not declared in this scope
strcpy_P(buffer, (PGM_P)pgm_read_word(&(monthNames_P[month])));
^
.piolibdeps/Time/DateStrings.cpp: In function 'char* dayStr(uint8_t)':
.piolibdeps/Time/DateStrings.cpp:90:61: error: 'strcpy_P' was not declared in this scope
strcpy_P(buffer, (PGM_P)pgm_read_word(&(dayNames_P[day])));
^
*** [.pioenvs/bootloader/libb64/Time/DateStrings.cpp.o] Error 1
Steps To Reproduce Problem
Compile for the SAMD platform. This platform does not have strcpy_P natively.
Steps to fix the problem
Roll back one commit to d4fafb2 solves the issue.
The problem is that any platform that doesn't have strcpy_P (non-AVRs) will need it defined as strcpy. They updated it to only define strcpy_P if its an ESP chip, completely ignoring ARDUINO_ARCH_SAMD and any other platforms that don't have strcpy_P defined.
this is what they currently have:
#if defined(ESP8266) || defined(ARDUINO_ARCH_ESP32)
#ifndef strcpy_P
#define strcpy_P(dest, src) strcpy((dest), (src))
#endif
#endif
I'm not sure why it was ever changed from:
#ifndef strcpy_P
#define strcpy_P(dest, src) strcpy((dest), (src))
#endif