LPC1769 build fails With errors in duration_t.h

Any assistance would be greatly appreciated,

Getting the error output here:

‘sprintf’ may write a terminating nul past the end of the destination [-Wformat-overflow=]

Here are the build Messages:

> Executing task: C:\Users\stephen\.platformio\penv\Scripts\platformio.exe run <

Processing LPC1769 (platform: ://github.com/p3p/pio-nxplpc-arduino-lpc176x/archive/0.1.3.zip; board: nxp_lpc1769; framework: arduino)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION:://docs.platformio.org/page/boards/nxplpc-arduino-lpc176x/nxp_lpc1769.html
PLATFORM: NXP Arduino LPC176x (0.1.3) > NXP LPC1769
HARDWARE: LPC1769 120MHz, 31.97KB RAM, 464KB Flash
DEBUG: Current (cmsis-dap) On-board (cmsis-dap) External (blackmagic, jlink)
PACKAGES: 
 - framework-arduino-lpc176x 0.2.9 
 - toolchain-gccarmnoneeabi 1.100301.220327 (10.3.1)
Converting Marlin.ino
LDF: Library Dependency Finder ->s://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ off, Compatibility ~ strict
Found 3 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <Servo> 1.0.0
|-- <TMCStepper> 0.7.3
|-- <U8glib-HAL> 0.4.1
Building in release mode
upload disk:  I:
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\DebugMonitor.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\HAL.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\HAL_SPI.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\MarlinSerial.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\eeprom_flash.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\eeprom_sdcard.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\eeprom_wired.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\fast_pwm.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\include\digipot_mcp4451_I2C_routines.c.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\include\i2c_util.c.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\main.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\tft\tft_spi.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\tft\xpt2046.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\timers.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\u8g\LCD_I2C_routines.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\u8g\LCD_pin_routines.c.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\u8g\u8g_com_HAL_LPC1768_hw_spi.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\u8g\u8g_com_HAL_LPC1768_ssd_hw_i2c.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\u8g\u8g_com_HAL_LPC1768_st7920_hw_spi.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\u8g\u8g_com_HAL_LPC1768_st7920_sw_spi.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\u8g\u8g_com_HAL_LPC1768_sw_spi.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\usb_serial.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\LPC1768\watchdog.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\shared\HAL_spi_L6470.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\shared\backtrace\backtrace.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\shared\backtrace\unwarm.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\shared\backtrace\unwarm_arm.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\shared\backtrace\unwarm_thumb.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\shared\backtrace\unwarmbytab.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\shared\backtrace\unwarmmem.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\shared\backtrace\unwinder.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\shared\backtrace\unwmemaccess.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\shared\eeprom_api.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\shared\eeprom_if_i2c.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\shared\eeprom_if_spi.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\shared\esp_wifi.cpp.o
Compiling .pio\build\LPC1769\src\src\HAL\shared\servo.cpp.o
Compiling .pio\build\LPC1769\src\src\MarlinCore.cpp.o
Compiling .pio\build\LPC1769\src\src\core\serial.cpp.o
Compiling .pio\build\LPC1769\src\src\core\utility.cpp.o
Compiling .pio\build\LPC1769\src\src\feature\babystep.cpp.o
Compiling .pio\build\LPC1769\src\src\feature\bedlevel\bedlevel.cpp.o
Compiling .pio\build\LPC1769\src\src\feature\bedlevel\ubl\ubl.cpp.o
Compiling .pio\build\LPC1769\src\src\feature\bedlevel\ubl\ubl_G29.cpp.o
Compiling .pio\build\LPC1769\src\src\feature\bedlevel\ubl\ubl_motion.cpp.o
Compiling .pio\build\LPC1769\src\src\feature\caselight.cpp.o
Compiling .pio\build\LPC1769\src\src\feature\leds\neopixel.cpp.o
Compiling .pio\build\LPC1769\src\src\feature\tmc_util.cpp.o
Compiling .pio\build\LPC1769\src\src\feature\z_stepper_align.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\bedlevel\G42.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\bedlevel\M420.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\bedlevel\ubl\G29.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\bedlevel\ubl\M421.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\calibrate\G28.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\calibrate\G34_M422.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\calibrate\M48.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\config\M200-M205.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\config\M220.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\config\M221.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\config\M301.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\config\M302.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\config\M304.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\config\M575.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\config\M672.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\config\M92.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M108_M112_M410.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M111.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M120_M121.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M17_M18_M84.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M211.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M226.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M280.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M350_M351.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M380_M381.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M400.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M42.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M80_M81.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M85.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M993_M994.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M997.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\M999.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\control\T.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\eeprom\M500-M504.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\feature\digipot\M907-M910.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\feature\trinamic\M122.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\feature\trinamic\M569.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\feature\trinamic\M906.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\feature\trinamic\M911-M914.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\gcode.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\geometry\G92.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\geometry\M206_M428.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\host\M110.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\host\M113.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\host\M114.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\host\M115.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\host\M118.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\host\M119.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\lcd\M0_M1.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\lcd\M117.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\lcd\M145.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\lcd\M300.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\motion\G0_G1.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\motion\G2_G3.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\motion\G4.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\motion\M290.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\parser.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\probe\G30.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\probe\M401_M402.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\probe\M851.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\queue.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\sd\M1001.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\sd\M20.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\sd\M21_M22.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\sd\M23.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\sd\M24_M25.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\sd\M26.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\sd\M27.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\sd\M28_M29.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\sd\M30.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\sd\M32.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\sd\M33.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\sd\M34.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\sd\M524.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\sd\M928.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\stats\M31.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\stats\M75-M78.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\temp\M104_M109.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\temp\M105.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\temp\M106_M107.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\temp\M140_M190.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\temp\M141_M191.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\temp\M155.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\temp\M303.cpp.o
Compiling .pio\build\LPC1769\src\src\gcode\units\M82_M83.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\dogm\lcdprint_u8g.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\dogm\status_screen_DOGM.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\dogm\status_screen_lite_ST7920.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\dogm\u8g_dev_ssd1306_sh1106_128x64_I2C.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\dogm\u8g_dev_st7565_64128n_HAL.cpp.o
In file included from Marlin\src\gcode\stats\../../inc/../HAL/./LPC1768/../shared/Marduino.h:36,
                 from Marlin\src\gcode\stats\../../inc/../HAL/./LPC1768/HAL.h:39,
                 from Marlin\src\gcode\stats\../../inc/../HAL/HAL.h:26,
                 from Marlin\src\gcode\stats\../../inc/MarlinConfig.h:30,
                 from Marlin\src\gcode\stats\../gcode.h:294,
                 from Marlin\src\gcode\stats\M31.cpp:23:
Marlin\src\gcode\stats\../../module/../libs/duration_t.h: In static member function 'static void GcodeSuite::M31()':
Marlin\src\gcode\stats\../../module/../libs/duration_t.h:130:35: warning: 'sprintf' may write a terminating nul past the end of the destination [-Wformat-overflow=]
  130 |     if (y) sprintf_P(buffer, PSTR("%iy %id %ih %im %is"), y, d, h, m, s);
C:\Users\stephen\.platformio\packages\framework-arduino-lpc176x\cores\arduino/Arduino.h:58:18: note: in definition of macro 'PSTR'
   58 | #define PSTR(v) (v)
      |                  ^
In file included from Marlin\src\gcode\stats\../../module/printcounter.h:25,
                 from Marlin\src\gcode\stats\M31.cpp:25:
Marlin\src\gcode\stats\../../module/../libs/duration_t.h:130:21: note: 'sprintf' output between 15 and 22 bytes into a destination of size 21
  130 |     if (y) sprintf_P(buffer, PSTR("%iy %id %ih %im %is"), y, d, h, m, s);
Compiling .pio\build\LPC1769\src\src\lcd\dogm\u8g_dev_st7920_128x64_HAL.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\dogm\u8g_dev_tft_320x240_upscale_from_128x64.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\dogm\u8g_dev_uc1701_mini12864_HAL.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\dogm\u8g_fontutf8.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\dogm\ultralcd_DOGM.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\dogm\ultralcd_st7920_u8glib_rrd_AVR.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\extui\anycubic_chiron_lcd.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\extui\anycubic_i3mega_lcd.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\extui\ui_api.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\fontutils.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\lcdprint.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\menu\menu.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\menu\menu_advanced.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\menu\menu_configuration.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\menu\menu_custom.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\menu\menu_game.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\menu\menu_main.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\menu\menu_media.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\menu\menu_mixer.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\menu\menu_motion.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\menu\menu_temperature.cpp.o
In file included from c:\users\stephen\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\10.3.1\functional:56,
                 from c:\users\stephen\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\10.3.1\pstl\glue_algorithm_defs.h:13,
                 from c:\users\stephen\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\10.3.1\algorithm:74,
                 from Marlin\src\lcd\../inc/../HAL/./LPC1768/HAL.h:35,
                 from Marlin\src\lcd\../inc/../HAL/HAL.h:26,
                 from Marlin\src\lcd\../inc/MarlinConfig.h:30,
                 from Marlin\src\lcd\lcdprint.h:35,
                 from Marlin\src\lcd\lcdprint.cpp:31:
c:\users\stephen\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\10.3.1\bits\functional_hash.h:168:3: error: redefinition of 'struct std::hash<long unsigned int>'
  168 |   _Cxx_hashtable_define_trivial_hash(unsigned long)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\users\stephen\.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\10.3.1\bits\functional_hash.h:136:3: note: previous definition of 'struct std::hash<long unsigned int>'
  136 |   _Cxx_hashtable_define_trivial_hash(wchar_t)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Compiling .pio\build\LPC1769\src\src\lcd\menu\menu_tmc.cpp.o
Compiling .pio\build\LPC1769\src\src\lcd\menu\menu_tune.cpp.o
*** [.pio\build\LPC1769\src\src\lcd\lcdprint.cpp.o] Error 1
============================================================================================ [FAILED] Took 25.36 seconds ============================================================================================

Environment    Status    Duration
-------------  --------  ------------
LPC1769        FAILED    00:00:25.358
======================================================================================= 1 failed, 0 succeeded in 00:00:25.358 ======================================================================================= 
The terminal process "C:\Users\stephen\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1.

Here is the portion in duration_t.h that it seems to have a problem with:
char* toString(char * const buffer) const {

int y = this->year(),

    d = this->day() % 365,

    h = this->hour() % 24,

    m = this->minute() % 60,

    s = this->second() % 60;

**if (y) sprintf_P(buffer, PSTR("%iy %id %ih %im %is"), y, d, h, m, s);**

else if (d) sprintf_P(buffer, PSTR("%id %ih %im %is"), d, h, m, s);

else if (h) sprintf_P(buffer, PSTR("%ih %im %is"), h, m, s);

else if (m) sprintf_P(buffer, PSTR("%im %is"), m, s);

else sprintf_P(buffer, PSTR("%is"), s);

return buffer;

}

What version of Marlin with which board config files are you trying to compile?

I have the same problem. Have you solved the issue?

It was big tree tech’s marlin 2.0.6 I think. I just reconfigured Vanilla marlin from scratch for it and it compiled. must be something in Platformio’s latest build that doesn’t play nice with that version.

The PlatformIO core version alone does not influence the used compiler version or the platform version.

If it’s appearing in the latest version of Marlin, please file an issue at Issues · MarlinFirmware/Marlin · GitHub with your configuration changes to have it cross-checked by the developers.

Continuing the discussion from LPC1769 build fails With errors in duration_t.h:

It’s not the latest version of marlin is the problem, the big tree tech github hasn’t updated the SKR 1.4 board firmware build in over a year. I would recommend just building it with the latest firmware from marlin because Big Tree Tech isn’t keeping their build of the software up to date.

I taught myself to use VSCode and PlatformIO, then compiled a fresh Marlin from scratch for my custom built printer that has a BigTreeTech SKR 1.4 Turbo board with a TFT35 touchscreen controller, which took me 3 weeks to compile. I finally got the printer working properly and I have been very happy. …Move forward in time approx. 1 year … Lately I decided to make a slight change and to add sensorless homing on the X + Y axis’s, so I ordered and received my new TMC 2209’s from BigTreeTech, then I opened my VSCode and decided to compile my old Marlin before making any changes, just to make sure it was ok. Now I am getting the same message you are: ‘sprintf’ may write a terminating nul past the end of the destination [-Wformat-overflow=]

I have no idea how to fix this and I can’t find any help except this one page in this forum. Can you please tell me how to fix this??

You can download and test my Marlin from my Google Drive link: https://drive.google.com/drive/folders/1qvYz0zTAlarCPpCFFVqoRxS3kefq3Zng?usp=sharing

Thanks !!

Honestly just build the latest version of marlin 2.X from scratch. BTT isn’t updating quick enough for the product. you will need to edit a few files but it’s not bad.

using the Marlin 2.1.1 version, modify the precompiled command in configuation.h
change line 90
#define MOTHERBOARD BOARD_BTT_SKR_V1_4

select env:LPC1768(Marlin-2.1.1)
Compiled successfully