f31522130f
Build system (5 gaps hardened): - COOKBOOK_OFFLINE defaults to true (fork-mode) - normalize_patch handles diff -ruN format - New 'repo validate-patches' command (25/25 relibc patches) - 14 patched Qt/Wayland/display recipes added to protected list - relibc archive regenerated with current patch chain Boot fixes (fixable): - Full ISO EFI partition: 16 MiB → 1 MiB (matches mini, BIOS hardcoded 2 MiB offset) - D-Bus system bus: absolute /usr/bin/dbus-daemon path (was skipped) - redbear-sessiond: absolute /usr/bin/redbear-sessiond path (was skipped) - daemon framework: silenced spurious INIT_NOTIFY warnings for oneshot_async services (P0-daemon-silence-init-notify.patch) - udev-shim: demoted INIT_NOTIFY warning to INFO (expected for oneshot_async) - relibc: comprehensive named semaphores (sem_open/close/unlink) replacing upstream todo!() stubs - greeterd: Wayland socket timeout 15s → 30s (compositor DRM wait) - greeter-ui: built and linked (header guard unification, sem_compat stubs removed) - mc: un-ignored in both configs, fixed glib/libiconv/pcre2 transitive deps - greeter config: removed stale keymapd dependency from display/greeter services - prefix toolchain: relibc headers synced, _RELIBC_STDLIB_H guard unified Unfixable (diagnosed, upstream): - i2c-hidd: abort on no-I2C-hardware (QEMU) — process::exit → relibc abort - kded6/greeter-ui: page fault 0x8 — Qt library null deref - Thread panics fd != -1 — Rust std library on Redox - DHCP timeout / eth0 MAC — QEMU user-mode networking - hwrngd/thermald — no hardware RNG/thermal in VM - live preload allocation — BIOS memory fragmentation, continues on demand
52 lines
2.0 KiB
ReStructuredText
52 lines
2.0 KiB
ReStructuredText
libdrm - userspace library for drm
|
|
----------------------------------
|
|
|
|
This is libdrm, a userspace library for accessing the DRM, direct rendering
|
|
manager, on Linux, BSD and other operating systems that support the ioctl
|
|
interface.
|
|
The library provides wrapper functions for the ioctls to avoid exposing the
|
|
kernel interface directly, and for chipsets with drm memory manager, support
|
|
for tracking relocations and buffers.
|
|
New functionality in the kernel DRM drivers typically requires a new libdrm,
|
|
but a new libdrm will always work with an older kernel.
|
|
|
|
libdrm is a low-level library, typically used by graphics drivers such as
|
|
the Mesa drivers, the X drivers, libva and similar projects.
|
|
|
|
Syncing with the Linux kernel headers
|
|
-------------------------------------
|
|
|
|
The library should be regularly updated to match the recent changes in the
|
|
`include/uapi/drm/`.
|
|
|
|
libdrm maintains a human-readable version for the token format modifier, with
|
|
the simpler ones being extracted automatically from `drm_fourcc.h` header file
|
|
with the help of a python script. This might not always possible, as some of
|
|
the vendors require decoding/extracting them programmatically. For that
|
|
reason one can enhance the current vendor functions to include/provide the
|
|
newly added token formats, or, in case there's no such decoding
|
|
function, to add one that performs the tasks of extracting them.
|
|
|
|
For simpler format modifier tokens there's a script (gen_table_fourcc.py) that
|
|
creates a static table, by going over `drm_fourcc.h` header file. The script
|
|
could be further modified if it can't handle new (simpler) token format
|
|
modifiers instead of the generated static table.
|
|
|
|
Compiling
|
|
---------
|
|
|
|
To set up meson:
|
|
|
|
meson builddir/
|
|
|
|
By default this will install into /usr/local, you can change your prefix
|
|
with --prefix=/usr (or `meson configure builddir/ -Dprefix=/usr` after
|
|
the initial meson setup).
|
|
|
|
Then use ninja to build and install:
|
|
|
|
ninja -C builddir/ install
|
|
|
|
If you are installing into a system location you will need to run install
|
|
separately, and as root.
|