genode/repos/libports/lib/import
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
..
import-acpica.mk Adapt high-level components to new parent API 2016-11-30 13:37:03 +01:00
import-av.inc libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-avcodec.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-avfilter.mk Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
import-avformat.mk Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
import-avresample.mk libav: update to version 11.6 2016-05-09 13:09:55 +02:00
import-avutil.mk libav: update to version 11.6 2016-05-09 13:09:55 +02:00
import-curl.mk lib/curl: adjust for new spec directories 2016-06-22 12:26:33 +02:00
import-expat.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-ffat_block.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-freetype.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-gallium.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-gmp.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-history.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-icu.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-jbig2dec.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-jitterentropy.mk Introduce 'spec' subdirectories to outline aspects 2015-09-16 13:58:50 +02:00
import-jpeg.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-libbz2.mk libports: libbz2 (Bzip2) 2015-01-20 11:23:52 +01:00
import-libc-setjmp.mk dde_linux: migrate to new ports mechanism 2014-05-27 11:14:43 +02:00
import-libc.mk libc: clean up import-libc.mk 2016-07-15 11:38:25 +02:00
import-libcore-rust.mk Fixed linking and memory allocation for rust 2016-05-23 15:49:56 +02:00
import-libcrypto.mk openssl: add ARM support 2014-05-27 11:14:45 +02:00
import-libexfat.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-libext2fs.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-libfuse.mk Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
import-libiconv.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-libntfs-3g.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-libpng.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-libssh.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-libssl.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-libusb.mk libports: add libusb 2016-11-08 15:26:28 +01:00
import-lua.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-luacxx.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-lwip.mk lib/lwip: fix import description 2016-03-07 12:34:43 +01:00
import-mpc.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-mpfr.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-mupdf.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-ncurses.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-openjpeg.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-pcre.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-pcsc-lite.mk libports: add pcsc-lite library 2016-11-08 15:26:29 +01:00
import-posix.mk Simpify startup of dynamically linked binaries 2017-01-13 13:06:52 +01:00
import-python.mk Introduce 'spec' subdirectories to outline aspects 2015-09-16 13:58:50 +02:00
import-qemu-usb_include.mk qemu-usb: xHCI model as library 2016-02-05 10:47:43 +01:00
import-qoost.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-qt5_core.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5_gui.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5_jscore.mk Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
import-qt5_network.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5_printsupport.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5_qml.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5_qpa_nitpicker.mk qt5: fix include dir of 'qt5_qpa_nitpicker' library 2014-12-04 17:17:23 +01:00
import-qt5_qtquick2plugin.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5_quick.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5_script.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5_scriptclassic.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5_sql.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5_ui_tools.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5_v8.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5_webcore.mk Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
import-qt5_webkit.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5_webkitwidgets.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5_widgets.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5_wtf.mk Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
import-qt5_xml.mk Qt5: migrate to new ports mechanism 2014-08-22 16:16:40 +02:00
import-qt5.inc Simpify startup of dynamically linked binaries 2017-01-13 13:06:52 +01:00
import-readline.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-resample.mk libav: update to version 11.6 2016-05-09 13:09:55 +02:00
import-sdl_image.mk libports/sdl_image: enable XPM, add include/SDL 2014-11-12 14:44:17 +01:00
import-sdl_mixer.mk libports: fix sdl_mixer include paths 2014-10-10 13:02:30 +02:00
import-sdl_net.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-sdl_ttf.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-sdl.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-stdcxx.mk tool_chain: update GCC to version 4.9.2 2015-05-26 09:39:49 +02:00
import-swscale.mk Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
import-x86emu.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00
import-zlib.mk libports: migrate to new ports mechanism 2014-05-27 11:14:42 +02:00