mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-12 21:53:28 +00:00
This patch was back ported from upstream Mesa and generalizes the memory management of buffer objects used by the binder. Before this patch the binder was treated as a special case where buffer objects were allocated with a simple "next block or wrap" allocator. With this commit the binder now uses the vm_heap allocators as done by all other buffer allocations which leads to issues with reference counting and object destruction being resolved. Original commit message: We're moving towards a path where all contexts share the same virtual memory - because this will make implementing vm_bind much easier - , and to achieve that we need to rework the binder memzone. As it is, different contexts will choose overlapping addresses. So in this patch we adjust the Binder to be 1GB - per Ken's suggestion - and use a real vma_heap for it. As a bonus the code gets simpler since it just reuses the same pattern we already have for the other memzones.
This directory contains ports of 3rd-party libraries to Genode. Usage ----- The tool './tool/ports/prepare_port' in the toplevel directory automates the task of downloading and preparing the 3rd-party source codes. One can select individual ports that have to be prepared by specifying their base names (without the version number) as command-line argument. For example, the following command prepares both the C library and the Freetype library: ! ./tool/ports/prepare_port libc freetype To compile and link against 3rd-party libraries of the 'libports' repository, you have to include the repository into the build process by appending it to the 'REPOSITORIES' declaration of your '<build-dir>/etc/build.conf' file. Under the hood -------------- For each library, there is a file contained in the 'libports/ports/' subdirectory. The file is named after the library and contains the library-specific rules for downloading the source code and installing header files. How does 'libports' relate to the other repositories? ----------------------------------------------------- Most libraries hosted in the 'libports' repository expect a complete C library, which is provided via the 'libc' port. The libc, in turn, depends on the 'os' repository for its back end.