Opened on 02/02/19 at 05:18:03
Closed on 02/26/20 at 03:52:04
#3687 closed defect (fixed)
Add architecture section support to libdl and support PowerPC's small data.
Reported by: | Chris Johns | Owned by: | Chris Johns |
---|---|---|---|
Priority: | normal | Milestone: | 5.1 |
Component: | lib/dl | Version: | 5 |
Severity: | normal | Keywords: | |
Cc: | Blocked By: | ||
Blocking: |
Description
Add support for architecture specific sections. Allow architecture back end support to handle sections that are specific to an architecture.
Add PowerPC sdata
and sbss
support. The PowerPC can support a small data 64K continuous system wide region of memory. Small data accesses are faster as the instruction is smaller however the variable is referenced as a signed 16bit offset from the register r13
. This register is offset from the region's base address by 32K. The linker creates the .sdata
and .sbss
regions and sets the _SDA_BASE_
symbol which is loaded into r13
. Any run-time loaded code with small data support needs space in the small data region therefore a BSP needs a way to define the space and the linker needs to allocate it. Provide a way for PowerPC BSPs to add extra memory to the small data region.
RTEMS supports the PowerPC EABI and uses sysv
small data allocations. RTEMS uses the default variable size of 8
as the selector for a variable to be allocated in the small data region. The GCC user manual recommends all code is built with the same settings. Dynamically loaded code could be built with small data disabled and if enabled the default size is recommended.
Note, small data is system wide which means a default size of 8
allows only 8192 8 byte variables.
Provide an allocator to manage the available small data memory.
Change History (5)
comment:1 Changed on 02/08/19 at 23:08:42 by Chris Johns <chrisj@…>
comment:2 Changed on 02/11/19 at 10:43:14 by Sebastian Huber <sebastian.huber@…>
In [changeset:"eec706e2bf41a9a166aa5e744d041171015214ea/rtems" eec706e2/rtems]:
comment:3 Changed on 02/18/19 at 00:28:02 by Chris Johns <chrisj@…>
In [changeset:"3ecb207d05a585b34e88ac649be0e4f503fdb290/rtems" 3ecb207/rtems]:
comment:4 Changed on 03/06/19 at 19:34:29 by Chris Johns <chrisj@…>
In [changeset:"ec1dd51aae0cbce0560b3d72a6f86c938340f2fc/rtems" ec1dd51a/rtems]:
comment:5 Changed on 02/26/20 at 03:52:04 by Chris Johns
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
In [changeset:"6c9f0176a916cdbe88e04417e7aa1405d80c500f/rtems" 6c9f017/rtems]: