[RTEMS Project] #3687: Add architecture section support to libdl and support PowerPC's small data.
RTEMS trac
trac at rtems.org
Sat Feb 2 05:18:03 UTC 2019
#3687: Add architecture section support to libdl and support PowerPC's small data.
--------------------------+-------------------------
Reporter: Chris Johns | Owner: Chris Johns
Type: defect | Status: assigned
Priority: normal | Milestone: 5.1
Component: lib/dl | Version: 5
Severity: normal | Keywords:
Blocked By: | Blocking:
--------------------------+-------------------------
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.
--
Ticket URL: <http://devel.rtems.org/ticket/3687>
RTEMS Project <http://www.rtems.org/>
RTEMS Project
More information about the bugs
mailing list