genode/repos/base
Norman Feske a0abb093ed Remove output-section fill from linker scripts
The linker scripts use to fill alignment gaps within the text section
with the magic value 0x90909090, which correponds to the opcodes of four
nop instructions on x86. This patch removes this value because it
apparently solves no problem. If, for some reason (e.g., due to a dangling
pointer) a thread executes instructions within alignment paddings, NOP
instructions are not any better than any other instruction. The program
will eventually execute the instructions after the padding, which is
most likely fatal. It would be more reasonable to fill the padding with
the opcode of an illegal instruction so that such an error can be
immediately detected. That said, I cannot remember a single instance,
where the fill value has helped us during debugging.

Even if the mechanism served a purpose on x86, it is still better to
remove it because it does not equally work on the other architectures
where the linker scripts are used. I.e., on ARM, the opcode 0x90909090
is not a NOP instruction.
2015-01-20 11:25:59 +01:00
..
etc Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
include imx31: remove platform completely (fix #1360) 2015-01-12 14:24:15 +01:00
lib base: Genode's dynamic linker 2014-11-12 14:44:15 +01:00
mk imx31: remove platform completely (fix #1360) 2015-01-12 14:24:15 +01:00
run Log name of exiting child from Child::exit() 2014-09-11 10:23:39 +02:00
src Remove output-section fill from linker scripts 2015-01-20 11:25:59 +01:00
README Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00

README

This is generic part of the Genode implementation. It consists of two parts:

:_Core_: is the ultimate root of the Genode application tree
  and provides abstractions for the lowest-level hardware resources
  such as RAM, ROM, CPU, and generic device access. All generic parts of Core
  can be found here - for system-specific implementations refer to the
  appropriate 'base-<system>' directory.

:_Base libraries and protocols_: that are used by each Genode component
  to interact with other components. This is the glue that holds everything
  together.