rt-thread-official/components/libc/cplusplus/cpp11
Wat cb6d451564 Add GCC generalized atomic operation function 2024-03-24 23:01:11 -04:00
..
armclang [components][kconfig] 整理Kconfig目录名称和结构 (#5698) 2022-03-25 23:07:18 +08:00
figures [components][kconfig] 整理Kconfig目录名称和结构 (#5698) 2022-03-25 23:07:18 +08:00
gcc [cpp] attach CXXFLAGS to reduce the resource consumptions 2023-06-14 08:49:33 -04:00
README.md [components][kconfig] 整理Kconfig目录名称和结构 (#5698) 2022-03-25 23:07:18 +08:00
README_ZH.md [components][kconfig] 整理Kconfig目录名称和结构 (#5698) 2022-03-25 23:07:18 +08:00
SConscript [cpp] support rt-thread CPP wrapper sub-switch macros 2023-06-14 08:49:33 -04:00
atomic_8.c Add GCC generalized atomic operation function 2024-03-24 23:01:11 -04:00
emutls.c [HUST CSE] add forced type conversion when using 'realloc','malloc','calloc' for better readability 2023-04-28 15:55:28 +01:00
thread_local_impl.cpp [components][kconfig] 整理Kconfig目录名称和结构 (#5698) 2022-03-25 23:07:18 +08:00

README.md

C++ 11 support for RT-Thread

Features

Here are some features about rt-thread c++11 threading futures.

  • Atomic.
  • Conditional variables.
  • Clocks.
  • Future.
  • Mutexes.
  • Threads.
  • TLS.

How To Use

Note that using C++ 11 in rt-thread requires modifying some of the files in the toolchain. Before modifying the tool, back up the tool chain.

  1. Enable c++11 support

  2. Download toolchain GCC 10.2.1:

    gcc version 10.2.1 20201103 (release) (GNU Arm Embedded Toolchain 10-2020-q4-major)
    
  3. Delete the following files:

    rm -f toolchain/arm-none-eabi/include/c++/10.2.1/thread
    rm -f toolchain/arm-none-eabi/include/c++/10.2.1/mutex
    rm -f toolchain/arm-none-eabi/include/c++/10.2.1/condition_variable
    rm -f toolchain/arm-none-eabi/include/c++/10.2.1/future
    rm -f toolchain/arm-none-eabi/include/pthread.h
    
  4. Clear the contents of the following files and keep them to prevent compilation failures:

    toolchain/arm-none-eabi/include/sys/_pthreadtypes.h
    
  5. Update rtconfig.py file. add compilation parameters:

    CXXFLAGS = CFLAGS  + ' -std=c++11 -fabi-version=0 -MMD -MP -MF'