diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index d8012976c4..e0915ad64e 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -38,6 +38,23 @@ #include "HardwareSerial.h" #endif + +#ifdef __GNUC__ +#ifndef GCC_VERSION +#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) +#endif +#if GCC_VERSION < 40602 // Test for GCC < 4.6.2 +#ifdef PROGMEM +#undef PROGMEM +#define PROGMEM __attribute__((section(".progmem.data"))) // Workaround for http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34734#c4 +#ifdef PSTR +#undef PSTR +#define PSTR(s) (__extension__({static const char __c[] PROGMEM = (s); &__c[0];})) // Copied from pgmspace.h in avr-libc source +#endif +#endif +#endif +#endif + #include "MarlinSerial.h" #ifndef cbi @@ -269,4 +286,4 @@ extern void digipot_i2c_init(); #endif -extern void calculate_volumetric_multipliers(); \ No newline at end of file +extern void calculate_volumetric_multipliers();