genode/repos/libports/run
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
..
acpica.run Make label prefixing more strict 2016-11-30 13:37:07 +01:00
avplay.run Omit superfluous use of "CAP"/"SIGNAL" services 2016-05-09 13:24:51 +02:00
eglgears.run Make label prefixing more strict 2016-11-30 13:37:07 +01:00
expat.run Omit superfluous use of "CAP"/"SIGNAL" services 2016-05-09 13:24:51 +02:00
ldso.run Remove blocking calls from root and parent RPCs 2016-11-25 16:06:42 +01:00
libc_block.run Simpify startup of dynamically linked binaries 2017-01-13 13:06:52 +01:00
libc_ffat_fs.run Simpify startup of dynamically linked binaries 2017-01-13 13:06:52 +01:00
libc_ffat.run ahci: new AHCI driver implementation 2015-05-20 17:52:58 +02:00
libc_filesystem_test.inc Simpify startup of dynamically linked binaries 2017-01-13 13:06:52 +01:00
libc_fuse_exfat.run Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
libc_fuse_ext2.run Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
libc_pipe.run Simpify startup of dynamically linked binaries 2017-01-13 13:06:52 +01:00
libc_vfs_fs.run Simpify startup of dynamically linked binaries 2017-01-13 13:06:52 +01:00
libc_vfs_ram.run Simpify startup of dynamically linked binaries 2017-01-13 13:06:52 +01:00
libc_vfs.run Simpify startup of dynamically linked binaries 2017-01-13 13:06:52 +01:00
libc.run Move server API concept to base framework 2016-04-11 11:51:46 +02:00
lwip_lx.run Increase nic_drv RAM quantum 2016-10-21 12:39:34 +02:00
lwip.run Simpify startup of dynamically linked binaries 2017-01-13 13:06:52 +01:00
moon.run Increase qemu RAM in moon test 2016-11-30 13:38:06 +01:00
mupdf.run Omit superfluous use of "CAP"/"SIGNAL" services 2016-05-09 13:24:51 +02:00
nic_router.run Simpify startup of dynamically linked binaries 2017-01-13 13:06:52 +01:00
pthread.run Simpify startup of dynamically linked binaries 2017-01-13 13:06:52 +01:00
python.run Omit superfluous use of "CAP"/"SIGNAL" services 2016-05-09 13:24:51 +02:00
qt5_avplay.run libc: pipe plugin 2016-05-23 15:52:35 +02:00
qt5_calculatorform.run libc: pipe plugin 2016-05-23 15:52:35 +02:00
qt5_common.inc Make label prefixing more strict 2016-11-30 13:37:07 +01:00
qt5_drivers.inc qt5: qt5_drivers.inc fixes 2016-12-23 16:52:09 +01:00
qt5_openglwindow.run libc: pipe plugin 2016-05-23 15:52:35 +02:00
qt5_previewer.run libc: pipe plugin 2016-05-23 15:52:35 +02:00
qt5_qpluginwidget.run libc: pipe plugin 2016-05-23 15:52:35 +02:00
qt5_quicktest.run libc: pipe plugin 2016-05-23 15:52:35 +02:00
qt5_samegame.run libc: pipe plugin 2016-05-23 15:52:35 +02:00
qt5_tetrix.run libc: pipe plugin 2016-05-23 15:52:35 +02:00
qt5_textedit.run Make label prefixing more strict 2016-11-30 13:37:07 +01:00
qt5.run libc: pipe plugin 2016-05-23 15:52:35 +02:00
rust.run Move rust support to libports 2016-05-23 15:52:38 +02:00
sdl.run Omit superfluous use of "CAP"/"SIGNAL" services 2016-05-09 13:24:51 +02:00
smartcard.run Simpify startup of dynamically linked binaries 2017-01-13 13:06:52 +01:00
stdcxx.run stdcxx: simple regression test 2015-06-03 12:53:48 +02:00
test-nicbridge_static2.run Make label prefixing more strict 2016-11-30 13:37:07 +01:00
test-nicbridge_static.run Make label prefixing more strict 2016-11-30 13:37:07 +01:00
test-ping_client.run Omit superfluous use of "CAP"/"SIGNAL" services 2016-05-09 13:24:51 +02:00
test-ping_server.run Omit superfluous use of "CAP"/"SIGNAL" services 2016-05-09 13:24:51 +02:00