Compile errors c++\11.3.1\bits\c++config.h:430:10: fatal error:

after reinstalling the pc, the previously legally copied project shows these errors. Can you advise please?

  • framework-arduino-lpc176x @ 0.2.9
  • toolchain-gccarmnoneeabi @ 1.110301.0 (11.3.1)
    Converting Marlin.ino
    LDF: Library Dependency Finder → Library Dependency Finder (LDF) — PlatformIO latest documentation
    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.5.2
    Building in release mode
    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\MinSerial.cpp.o
    In file included from c:\users\42073.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\11.3.1\utility:68,
    from c:\users\42073.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\11.3.1\array:38,
    from C:\Users\42073.platformio\packages\framework-arduino-lpc176x\cores\arduino/HardwareSerial.h:26,
    from Marlin\src\HAL\LPC1768\MarlinSerial.h:24,
    from Marlin\src\HAL\LPC1768\MarlinSerial.cpp:24:
    c:\users\42073.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\11.3.1\bits\c++config.h:430:10: fatal error: bits/os_defines.h: No such file or directory
    430 | #include <bits/os_defines.h>
    | ^~~~~~~~~~~~~~~~~~~
    compilation terminated.
    *** [.pio\build\LPC1769\src\src\HAL\LPC1768\MarlinSerial.cpp.o] Error 1
    In file included from c:\users\42073.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\11.3.1\utility:68,
    from c:\users\42073.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\11.3.1\algorithm:60,
    from d:\fv_scube-2023-4 aktual\marlin\src\hal\lpc1768\hal.h:33,
    from Marlin\src\HAL\LPC1768../…/inc/…/HAL/HAL.h:30,
    from Marlin\src\HAL\LPC1768../…/inc/MarlinConfig.h:31,
    from Marlin\src\HAL\LPC1768\HAL_SPI.cpp:51:
    c:\users\42073.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\11.3.1\bits\c++config.h:430:10: fatal error: bits/os_defines.h: No such file or directory
    430 | #include <bits/os_defines.h>
    | ^~~~~~~~~~~~~~~~~~~
    compilation terminated.
    *** [.pio\build\LPC1769\src\src\HAL\LPC1768\HAL_SPI.cpp.o] Error 1
    In file included from c:\users\42073.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\11.3.1\utility:68,
    from c:\users\42073.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\11.3.1\algorithm:60,
    from d:\fv_scube-2023-4 aktual\marlin\src\hal\lpc1768\hal.h:33,
    from Marlin\src\HAL\LPC1768../…/inc/…/HAL/HAL.h:30,
    from Marlin\src\HAL\LPC1768../…/inc/MarlinConfig.h:31,
    from Marlin\src\HAL\LPC1768\MinSerial.cpp:24:
    c:\users\42073.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\11.3.1\bits\c++config.h:430:10: fatal error: bits/os_defines.h: No such file or directory
    430 | #include <bits/os_defines.h>
    | ^~~~~~~~~~~~~~~~~~~
    compilation terminated.
    In file included from c:\users\42073.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\11.3.1\utility:68,
    from c:\users\42073.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\11.3.1\algorithm:60,
    from d:\fv_scube-2023-4 aktual\marlin\src\hal\lpc1768\hal.h:33,
    from Marlin\src\HAL\LPC1768../…/inc/…/HAL/HAL.h:30,
    from Marlin\src\HAL\LPC1768../…/inc/MarlinConfig.h:31,
    from Marlin\src\HAL\LPC1768\HAL.cpp:24:
    c:\users\42073.platformio\packages\toolchain-gccarmnoneeabi\arm-none-eabi\include\c++\11.3.1\bits\c++config.h:430:10: fatal error: bits/os_defines.h: No such file or directory
    430 | #include <bits/os_defines.h>
    | ^~~~~~~~~~~~~~~~~~~
    compilation terminated.
    *** [.pio\build\LPC1769\src\src\HAL\LPC1768\MinSerial.cpp.o] Error 1
    *** [.pio\build\LPC1769\src\src\HAL\LPC1768\HAL.cpp.o] Error 1
    ============================================================ [FAILED] Took 3.40 seconds ============================================================

Environment Status Duration


LPC1769 FAILED 00:00:03.397
====================================================== 1 failed, 0 succeeded in 00:00:03.397 ======================================================

  • The terminal process “C:\Users\42073.platformio\penv\Scripts\platformio.exe ‘run’” terminated with exit code: 1.
  • Terminal will be reused by tasks, press any key to close it.

Delete this folder and retry.

tried several times and doesn’t work

Facing the exact same issue today.

*** [.pio/build/LPC1768/src/src/HAL/LPC1768/eeprom_wired.cpp.o] Error 1
In file included from /Users/kamaczka/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/include/c++/11.3.1/algorithm:60,
                 from Marlin/src/HAL/LPC1768/../../inc/../HAL/./LPC1768/HAL.h:33,
                 from Marlin/src/HAL/LPC1768/../../inc/../HAL/HAL.h:30,
                 from Marlin/src/HAL/LPC1768/../../inc/MarlinConfig.h:31,
                 from Marlin/src/HAL/LPC1768/fast_pwm.cpp:24:
/Users/kamaczka/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/include/c++/11.3.1/utility:68:10: fatal error: bits/c++config.h: No such file or directory
   68 | #include <bits/c++config.h>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.

I’ve already reinstalled, deleted, the stuff as suggested in other threads

Aha. So that’s weird. Per PlatformIO Registry the 11.3.1 version was only released a day ago, but the platform is already automatically using it? Sounds like someone just made an error in the version declaration of their custom platform.json. That doesn’t seem right, it’ll probably want a stable version.

Can you please add or find the platform_packages declaration for your selected environment (LPC1769) and add / modify it to fix the toolchain version to the previous one?

platform_packages =
   toolchain-gccarmnoneeabi@1.100301.220327
   ; possibly previous lines

Yeah, this is absolutely deadly what they did in the pio-nxplpc-arduino-lpc176x platform.

That’ll just take the highest version after or equal to 6.3.1, without having it ever tested. There’s no < x.y.z constraint.

CC @ivankravets critical for Marlin LPC176x compilation.

Overall I find it weird that with that toolchain, #include <algorithm> doesn’t work at all, it should be a standard header. Maybe the uploaded toolchain is broken in this regard?

So basically what I’m saying is, in your Marlin download, go to ini/lpc176x.ini, find the above quoted line with

platform_packages = framework-arduino-lpc176x@^0.2.8

and change it to

platform_packages =
  framework-arduino-lpc176x@^0.2.8
  toolchain-gccarmnoneeabi@1.100301.220327

A formal issue has been opened in

1 Like

That fixed the issue for me!
Thanks so much Max :slight_smile:

The offending 110301 package version was removed (renamed to by -teensy specific since that what it is) and thus compilation should be restored without any modifications.

1 Like