genode/repos/ports/src/noux
Norman Feske 4da52517c1 Simpify startup of dynamically linked binaries
This patch removes the component_entry_point library, which used to
proved a hook for the libc to intercept the call of the
'Component::construct' function. The mechansim has several shortcomings
(see the discussion in the associated issue) and was complex. So we
eventually discarded the approach in favor of the explicit handling of
the startup.

A regular Genode component provides a 'Component::construct' function,
which is determined by the dynamic linker via a symbol lookup.
For the time being, the dynamic linker falls back to looking up a 'main'
function if no 'Component::construct' function could be found.

The libc provides an implementation of 'Component::construct', which
sets up the libc's task handling and finally call the function
'Libc::Component::construct' from the context of the appllication task.
This function is expected to be provided by the libc-using application.
Consequently, Genode components that use the libc have to implement the
'Libc::Component::construct' function.

The new 'posix' library provides an implementation of
'Libc::Component::construct' that calls a main function. Hence, POSIX
programs that merely use the POSIX API merely have to add 'posix' to the
'LIBS' declaration in their 'target.mk' file. Their execution starts at
'main'.

Issue #2199
2017-01-13 13:06:52 +01:00
..
minimal vfs: depend on ld library 2015-07-07 19:48:07 +02:00
net Adapt high-level components to new parent API 2016-11-30 13:37:03 +01:00
args.h base: avoid use of deprecated base/printf.h 2016-08-29 17:27:10 +02:00
child_env.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
child_policy.h Make label prefixing more strict 2016-11-30 13:37:07 +01:00
child.h noux: avoid tons of "no attachment" messages 2016-11-30 13:37:05 +01:00
cpu_session_component.h noux: avoid tons of "no attachment" messages 2016-11-30 13:37:05 +01:00
dataspace_registry.h Adapt high-level components to new parent API 2016-11-30 13:37:03 +01:00
destruct_dispatcher.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
destruct_queue.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
dummy_input_io_channel.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
environment.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
family_member.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
file_descriptor_registry.h base: avoid use of deprecated base/printf.h 2016-08-29 17:27:10 +02:00
interrupt_handler.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
io_channel_listener.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
io_channel.h Remove inconsistent use of 'is_' prefix 2016-05-23 15:52:39 +02:00
io_receptor_registry.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
kill_broadcaster.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
local_rom_service.h Adapt high-level components to new parent API 2016-11-30 13:37:03 +01:00
main.cc Simpify startup of dynamically linked binaries 2017-01-13 13:06:52 +01:00
parent_execve.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
parent_exit.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
path.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
pd_session_component.h Adapt high-level components to new parent API 2016-11-30 13:37:03 +01:00
pipe_io_channel.h noux: fix leak in pipe ring buffer 2016-04-11 11:55:01 +02:00
ram_session_component.h Adapt high-level components to new parent API 2016-11-30 13:37:03 +01:00
random_file_system.h vfs: pass Env and allocator when creating file-systems 2016-11-08 15:26:31 +01:00
range_checked_index.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
region_map_component.h Adapt high-level components to new parent API 2016-11-30 13:37:03 +01:00
rom_session_component.h base: rename 'Volatile_object' to 'Reconstructible' 2016-12-01 17:46:50 +01:00
shared_pointer.h base: avoid use of deprecated base/printf.h 2016-08-29 17:27:10 +02:00
stdio_file_system.h vfs: pass Env and allocator when creating file-systems 2016-11-08 15:26:31 +01:00
terminal_connection.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
terminal_io_channel.h base: avoid use of deprecated base/printf.h 2016-08-29 17:27:10 +02:00
user_info.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
vfs_io_channel.h vfs: default constructor for Dirent and Stat 2016-06-28 11:09:27 +02:00
wake_up_notifier.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00