summaryrefslogtreecommitdiff
path: root/components/cplusplus/cpp11/README.md
diff options
context:
space:
mode:
authorWayne Lin <[email protected]>2021-11-10 16:01:38 +0800
committerWayne Lin <[email protected]>2021-11-10 16:01:38 +0800
commit9b44e57a6022b8eb46eda7037b719ec918fdcc55 (patch)
tree26be9facf0f37d1c38b9e4b6e4abc99d6f8b5a8d /components/cplusplus/cpp11/README.md
parent37f5236dfa45b98d02e867536a10ac0b6622b80b (diff)
parentfdbaa2a808d12d522ad90702795c08ae8443aab9 (diff)
Merge branch 'master' of https://github.com/RT-Thread/rt-thread into nuvoton
Diffstat (limited to 'components/cplusplus/cpp11/README.md')
-rw-r--r--components/cplusplus/cpp11/README.md49
1 files changed, 49 insertions, 0 deletions
diff --git a/components/cplusplus/cpp11/README.md b/components/cplusplus/cpp11/README.md
new file mode 100644
index 0000000000..a292051608
--- /dev/null
+++ b/components/cplusplus/cpp11/README.md
@@ -0,0 +1,49 @@
+# 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
+
+ ![](figures/Snipaste_2021-09-02_16-00-09.png)
+
+2. Download toolchain GCC 10.2.1:
+
+ ```shell
+ gcc version 10.2.1 20201103 (release) (GNU Arm Embedded Toolchain 10-2020-q4-major)
+ ```
+
+3. Delete the following files:
+
+ ```shell
+ 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:
+
+ ```shell
+ toolchain/arm-none-eabi/include/sys/_pthreadtypes.h
+ ```
+
+5. Update `rtconfig.py` file. add compilation parameters:
+
+ ```shell
+ CXXFLAGS = CFLAGS + ' -std=c++11 -fabi-version=0 -MMD -MP -MF'
+ ```