Commit Graph

32553 Commits

Author SHA1 Message Date
Sebastian Huber
e214ff4b63 posix: Remove unused _POSIX_Get_object_body() 2019-02-12 13:20:20 +01:00
Sebastian Huber
7fdcd02338 psxtests: Remove bogus file
This file is unused and makes trouble on Windows.

Updates #3638.
2019-02-12 10:26:34 +01:00
Sebastian Huber
eec706e2bf bsps/powerpc: Fix small data area section
Fix small data area in case no fixed size is desired.  Rename
bsp_section_set_sdata_sbss_size into bsp_section_small_data_area_size
since this symbol reflects the overall small data area size (including
space for libdl).  Do not use bsp_section_sbss_size before definition in
linker command file.  Add new symbols to <bsp/linker-symbols.h>.

Update #3687.
2019-02-11 11:41:13 +01:00
Chris Johns
6c9f0176a9 libdl: Add powerpc large memory and small data support.
- Add support for architecure sections that can be handled by the
  architecture back end.

- Add trampoline/fixup support for PowerPC. This means the PowerPC
  now supports large memory loading of applications.

- Add a bit allocator to manage small block based regions of memory.

- Add small data (sdata/sbss) support for the PowerPC. The support
  makes the linker allocated small data region of memory a global
  resource available to libdl loaded object files.

Updates #3687
Updates #3685
2019-02-09 10:06:34 +11:00
Chris Johns
194eb403c3 libdl: Add support for large memory programs
- Add trampolines to support relocs that are out of range on
  support architectures.

- Support not loading separate text/data sections in an object
  file if the symbol provided in the section is a duplicate.
  A base image may have pulled in part of an object and another
  part needs to be dynamically loaded.

- Refactor the unresolved handling to scale to hundreds of
  unresolved symbols when loading large number of files.

Updates #3685
2019-02-09 10:06:34 +11:00
Chris Johns
d8c70ba65b libdl: Add support for trampolines
- Trampolines or fixups for veneers provide long jump support
  for instruciton sets that implement short relative address
  branches. The linker provides trampolines when creating a
  static image. This patch adds trampoline support to libdl
  and the ARM architecture.

- The dl09 test requires enough memory so modules are outside
  the relative branch instruction ranges for the architecture.

Updates #3685
2019-02-09 10:06:34 +11:00
Chris Johns
4408603e27 libdl: Fix the support for constructors and desctructors.
- Fix the handling of pending objects.
- Add a constructor flags in objects to track then being called.

Closes #2921
2019-02-09 10:06:34 +11:00
Chris Johns
a7c6176293 libtest/dl08: Add a test for archives.
- Create 2 archives.
- Load 1 object file which loads 6 object files from the libraries.

Updates #3686
2019-02-09 10:06:34 +11:00
Chris Johns
bac5363453 libtests/dl02: Update the rtl-shell path. More verbose test.
Updates #3686
2019-02-09 10:06:34 +11:00
Chris Johns
85b599747e libtests/dl02: Update the rtl-shell path.
Updates #3686
2019-02-09 10:06:34 +11:00
Chris Johns
89c59be38d libdl: Add symbol searching and loading from archives.
- Load archive symbol tables to support searching of archives
  for symbols.
- Search archive symbols and load the object file that contains
  the symbol.
- Search the global and archives until all remaining unresolved symbols
  are not found. Group the loaded object files in the pending queue.
- Run the object file and loaded dependents as a group before adding to the
  main object list.
- Remove orphaned object files after references are removed.

Updates #3686
2019-02-09 10:06:34 +11:00
Chris Johns
b08278e852 powerpc/psim: Increase the psim memory to 256M
This allows test dl09 to run and test PowePC backend trampoline support.

Updates #3685
2019-02-09 10:06:34 +11:00
Chris Johns
e2f13430be libdl: Fix dlerror non-conformance
Closes #3298
2019-02-09 10:06:33 +11:00
Chris Johns
2d8a9c794c libmisc: Fix rtems_print_buffer
Closes #3684
2019-02-09 10:06:33 +11:00
Jiri Gaisler
568490a054 griscv: add additional cpu configurations
* Also switch default config to imafd as the C extension
	  is not supported for code coverage
2019-02-08 13:07:27 +01:00
Sebastian Huber
26333f2ad0 score: Fix _User_extensions_Thread_switch() (SMP)
We have to read the first node again once we obtained the lock since it
may have aready changed.
2019-02-08 10:17:26 +01:00
Sebastian Huber
4e686261d8 bsps/irq: Fix interrupt server init (SMP) 2019-02-07 11:13:59 +01:00
Sebastian Huber
fbd08066af score: Fix plain priority thread queues (SMP)
We must add/remove the priority queue to the FIFO of priority queues.
2019-02-07 08:48:18 +01:00
Sebastian Huber
0fb52cede1 bsps/arm: Fix generic timer frequency
Update #3456.
2019-02-07 08:48:18 +01:00
Sebastian Huber
03fcbb15d2 fs: Add struct dirent::d_type support 2019-02-05 10:17:04 +01:00
Sebastian Huber
9399473cb8 riscv: Fix misaligned access in context validate 2019-02-02 11:03:13 +01:00
Sebastian Huber
b015c01443 build: Do not install test programs 2019-01-30 09:46:35 +01:00
Sebastian Huber
03cdd5eab8 record: Add enum value for each event
Update #3665.
2019-01-30 09:46:35 +01:00
Sebastian Huber
dca618404e Add low level event recording support
Add low level event recording infrastructure for system and user
defined events.  The infrastructure is able to record high frequency
events such as

 * SMP lock acquire/release,
 * interrupt entry/exit,
 * thread switches,
 * UMA zone allocate/free, and
 * Ethernet packet input/output, etc.

It allows post-mortem analysis in fatal error handlers, e.g. the last
events are in the record buffer, the newest event overwrites the oldest
event.  It is possible to detect record buffer overflows for consumers
that expect a continuous stream of events, e.g. to display the system
state in real-time.

The implementation supports high-end SMP machines (more than 1GHz
processor frequency, more than four processors).

Add a new API instead. The implementation uses per-processor data
structures and no atomic read-modify-write operations.  It is uses
per-processor ring buffers to record the events.

The CPU counter is used to get the time of events. It is combined with
periodic uptime events to synchronize it with CLOCK_REALTIME.

The existing capture engine tries to solve this problem also, but its
performance is not good enough for high-end production systems.  The
main issues are the variable-size buffers and the use of SMP locks for
synchronization.  To fix this, the API would change significantly.

Update #3665.
2019-01-29 13:51:33 +01:00
Sebastian Huber
f0ae613ba7 m68k: Avoid _Addresses_Add_offset()
This prevents a cyclic dependency between <rtems/score/cpu.h> and
<rtems/score/address.h>.
2019-01-29 13:27:01 +01:00
Sebastian Huber
e74a3fd13d samples/pppd: Use less memory hungry configuration
This avoids link-time failures on some low memory BSPs.
2019-01-29 13:27:01 +01:00
Sebastian Huber
4f3a2532a3 psxtmtests: Fix format warnings
Update #3384.
2019-01-28 14:17:39 +01:00
Sebastian Huber
b1381ae7c3 bsps/powerpc: Fix warnings 2019-01-25 15:50:40 +01:00
Sebastian Huber
81aec18146 bsps/powerpc: Fix 64-bit issues in assembler files
We have to be careful with instructions which operate explicitly on
words or doublewords.

Update #3082.
2019-01-25 15:40:11 +01:00
Maksim E. Kozlov
afd50b3a62 libmisc: Fix swapped parameters and enable floating point usage. 2019-01-23 10:32:55 -06:00
Jiri Gaisler
d3d4e77c42 riscv: add griscv bsp
Update #3678.
2019-01-22 12:50:09 +01:00
Jiri Gaisler
c1dcd6af56 grlib: make memory coherency cpu-independent
Update #3678.
2019-01-22 12:50:09 +01:00
Jiri Gaisler
9b2b389e8d grlib: use cpu-independent routines for uncached access
Update #3678.
2019-01-22 12:50:08 +01:00
Jiri Gaisler
5981c8ca9f grlib: use rtems_interrupt_handler_install()
Update #3678.
2019-01-22 12:49:58 +01:00
Jiri Gaisler
411c29735d grlib: make apbuart driver independent of bsp
Update #3678.
2019-01-22 12:48:19 +01:00
Sebastian Huber
7eb606d393 grlib: Move source files
Update #3678.
2019-01-22 12:46:33 +01:00
Sebastian Huber
3172092576 grlib: Move header files
Update #3678.
2019-01-22 12:46:28 +01:00
Sebastian Huber
95c19211d1 bsps/arm: Remove unused bsp_stack_irq_size
Update #3459.
2019-01-21 09:17:51 +01:00
Sebastian Huber
926ed2b020 score: Remove unused _ISR_lock_Flash() 2019-01-18 13:33:18 +01:00
Sebastian Huber
41310c026c score: Improve debug support for ISR locks
Ensure that interrupts are disabled while acquiring an ISR lock.
2019-01-18 13:33:18 +01:00
Sebastian Huber
b5bdecfe00 score: Avoid internal API and use ISR lock 2019-01-18 13:33:18 +01:00
Sebastian Huber
93e3b34161 score: Simplify _Addresses_Is_aligned()
The CPU_ALIGNMENT must not be zero, this is also checked via a static
assertion.  Fix formatting.
2019-01-18 11:49:09 +01:00
Joel Sherrill
12dfe5dcb1 bsps/i386/shared/cache/cache.c: Make compile 2019-01-16 15:42:18 -06:00
Joel Sherrill
4596127889 m68k/include/rtems/score/cpu.h: Add include of address.h 2019-01-14 09:15:49 -06:00
Sebastian Huber
47d5aee5d2 build: Add missing $(LDADD) for dependencies 2019-01-14 09:38:13 +01:00
Sebastian Huber
d1fff86c95 build: Remove bogus spqreslib_LDADD 2019-01-14 09:09:39 +01:00
Sebastian Huber
dc0285fd09 build: Add missing $(LDADD) for dependencies 2019-01-14 09:09:39 +01:00
Sebastian Huber
8eaf136de9 memalign: Add missing attributes to fix warning
Update #3666.
2019-01-10 11:35:38 +01:00
Sebastian Huber
7bde91bd5f Fix format warnings due to ino_t changes 2019-01-10 09:06:56 +01:00
Sebastian Huber
3a5c71dea4 psxconfig01: Fix pre-processor conditions
Do not rely on compiler optimizations to throw away empty loops.

Close #3673.
2019-01-10 08:12:16 +01:00