summaryrefslogtreecommitdiffstats
path: root/spec/acfg/if/max-thread-local-storage-size.yml
blob: 93c59e6067e78f00d3677792cf480e8666527357 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
appl-config-option-type: integer
copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
default-value: 0
description: |
  If the value of this configuration option is greater than zero, then it
  defines the maximum thread-local storage size, otherwise the thread-local
  storage size is defined by the linker depending on the thread-local storage
  objects used by the application in the statically-linked executable.
enabled-by: true
index-entries: []
interface-type: appl-config-option
links:
- role: interface-placement
  uid: domain
- role: interface-ingroup
  uid: group-general
- role: constraint
  uid: ../constraint/min-zero
- role: constraint
  uid: ../constraint/max-size
- role: constraint
  uid: ../constraint/multiple-of-task-storage-alignment
name: CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE
notes: |
  This configuration option can be used to reserve space for the dynamic linking
  of modules with thread-local storage objects.

  If the thread-local storage size defined by the thread-local storage
  objects used by the application in the statically-linked executable is greater
  than a non-zero value of this configuration option, then a fatal error will
  occur during system initialization.

  Use ${/rtems/basedefs/if/align-up:/name} and
  ${/rtems/task/if/storage-alignment:/name} to adjust the size to meet the
  minimum alignment requirement of a thread-local storage area.

  The actual thread-local storage size is determined when the application
  executable is linked.  The ``rtems-exeinfo`` command line tool included in
  the RTEMS Tools can be used to obtain the thread-local storage size and
  alignment of an application executable.
type: interface