8.4.4 Tls-first-copy Option

The --tls-first-copy linker option allocates a buffer of RAM to be used by the main thread for its thread-safe objects. It additionally supplies runtime startup code to initialize this RAM buffer from the thread-safe sections stored in flash memory. This is the default action if thread-safe objects are defined and this option is not specified.

Note that this option controls the first thread to execute in a program. Threads executed subsequently must have memory allocated and initialized by routines not controlled by this option.

The --no-tls-first-copy form of the option will not allocate RAM nor copy any thread safe objects for the first thread.