commit 20c89ab7c5091ee48535392cae2177aa1a1c43eb
Author: Segher Boessenkool <segher@kernel.crashing.org>
Date: Fri Jan 12 21:50:52 2018 +0100
rs6000: Remove -mstring
-mstring is only enabled by default on 601, and with -Os on some
configurations. It is almost always slower (than not using it) and
does not very often lead to smaller code.
This patch disables it. If a user uses -mstring he gets a warning
(but not with -mno-string). I left the target attribute in place, it
just doesn't do anything anymore.
The patch also deletes a whole bunch of code. The 'N' and 'O' output
modifiers are now unused, but now is not the time to delete them.
Use -B for the linker since some architectures use extra start files defined by
the GCC specification and provided by the BSP, for example powerpc. Start
files are not found by -L.
In the long run, the GCC defined start files should be provided by GCC. This
is a GCC 11 topic.
Update #3818
Add a general purpose test suite for validation tests.
This is the first test suite generated from a specification item in the
rtems-central repository.
Update #3959.
In contrast to rtems_task_create() this function constructs a task with
a user-provided task storage area. The new directive uses a
configuration structure instead of individual parameters.
Add RTEMS_TASK_STORAGE_SIZE() to calculate the recommended size of a
task storage area based on the task attributes and the size dedicated to
the task stack and thread-local storage. This macro may allow future
extensions without breaking the API.
Add application configuration option
CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE to adjust RTEMS
Workspace size estimate.
Update #3959.
Add this application configuration option. This configuration option can be
used to reserve space for the dynamic linking of modules with thread-local
storage objects.
Add RTEMS_TASK_STORAGE_ALIGNMENT to define the minium alignment of a
thread-local storage size.
Update #4074.
QEMU is now stricter with MMIO sizes and accesses. uintptr_t on RV64
is 8 bytes and generates an sd instruction that Store/AMO faults
because sifive_test MMIO expects 4 bytes accesses.
Add a feature to enforce an explicit target file for assembler sources.
Add a build start file node list and use it as a test program
dependency.
The fix for #3846 and #4080 needs to be combined, because the fix
for #3846 requires the removal of 'before=["cstlib"]'. This patch fixes
two issues:
1. The tracking of start file dependencies.
2. Reflect that executables depend on the start files.
We need a start.o file in the right path so that the linker can find is
as specified by the linker script, and not for example a start.S.17.o
file in some path. This part is addressed by the "explicit_asm_target"
feature.
This build process extension
@after("apply_link")
@feature("cprogram", "cxxprogram")
def process_start_files(self):
if getattr(self, "start_files", False):
self.link_task.dep_nodes.extend(self.bld.start_files)
addresses 2.
Close#3846.
Close#4080.
In a multi-processor system we must broadcast the TLB maintenance operation to
the Inner Shareable domain to ensure that the other processors update their TLB
caches accordingly.
Close#4068.