summaryrefslogtreecommitdiff
path: root/dev-util
diff options
context:
space:
mode:
Diffstat (limited to 'dev-util')
-rw-r--r--dev-util/catalyst-lab/Manifest1
-rw-r--r--dev-util/catalyst-lab/catalyst-lab-1.6.0.ebuild33
-rw-r--r--dev-util/catalyst-lab/metadata.xml21
-rw-r--r--dev-util/conan/Manifest1
-rw-r--r--dev-util/conan/conan-2.10.1.ebuild47
-rw-r--r--dev-util/rt-tests/Manifest1
-rw-r--r--dev-util/rt-tests/files/rt-tests-2.8-musl.patch366
-rw-r--r--dev-util/rt-tests/rt-tests-2.8.ebuild38
-rw-r--r--dev-util/rust-rover/rust-rover-2024.2.1-r1.ebuild2
9 files changed, 509 insertions, 1 deletions
diff --git a/dev-util/catalyst-lab/Manifest b/dev-util/catalyst-lab/Manifest
new file mode 100644
index 000000000000..c9467249b280
--- /dev/null
+++ b/dev-util/catalyst-lab/Manifest
@@ -0,0 +1 @@
+DIST catalyst-lab-v1.6.0.tar.gz 44329 BLAKE2B 73d54738a656aa592a57074c12e6574993229b85ae057f5ebf5db249aed04095ab6b40b194ba77ac245645449d36e8cb756c2965ef900e2579890086226c9600 SHA512 b9f40320e9c3cfce8a86426473918abab707025e8522edbce1c9ec39b428552bcc9ef115fd1f65a96f1a71bb39654f162c1960e9ca73024d08df02f3664064c0
diff --git a/dev-util/catalyst-lab/catalyst-lab-1.6.0.ebuild b/dev-util/catalyst-lab/catalyst-lab-1.6.0.ebuild
new file mode 100644
index 000000000000..da03c1ad9fe4
--- /dev/null
+++ b/dev-util/catalyst-lab/catalyst-lab-1.6.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="An automation tool for building Gentoo release stages and binhost packages."
+HOMEPAGE="https://github.com/damiandudycz/catalyst-lab"
+SRC_URI="https://github.com/damiandudycz/catalyst-lab/archive/refs/tags/catalyst-lab-v${PV}.tar.gz"
+S="${WORKDIR}/${PN}-${PN}-v${PV}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="qemu git binhost"
+
+RDEPEND="
+ dev-util/catalyst
+ app-misc/yq
+ binhost? ( sys-fs/squashfs-tools )
+ qemu? ( app-emulation/qemu[static-user] )
+ git? ( dev-vcs/git dev-vcs/git-lfs )
+"
+BDEPEND="app-arch/unzip"
+
+src_install() {
+ # Install catalyst-lab
+ dodir /usr/bin
+ dobin "${S}/${PN}"
+
+ # Create the config file
+ insinto /etc/catalyst-lab
+ doins "${S}/${PN}.conf"
+}
diff --git a/dev-util/catalyst-lab/metadata.xml b/dev-util/catalyst-lab/metadata.xml
new file mode 100644
index 000000000000..2c4d473d889c
--- /dev/null
+++ b/dev-util/catalyst-lab/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>damiandudycz@yahoo.com</email>
+ <name>Damian Dudycz</name>
+ </maintainer>
+ <longdescription lang="en">
+ Catalyst-Lab is an automation tool designed to streamline the process of building various Gentoo release stages and binhost packages.
+ It manages the dependencies between stages, prepares the necessary files, and performs the builds.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/damiandudycz/catalyst-lab/issues</bugs-to>
+ </upstream>
+ <use>
+ <flag name="qemu">Building stages for different architecture using QEMU.</flag>
+ <flag name="git">Uploading binpkgs and releases to git repository.</flag>
+ <flag name="binhost">Binhost targets support to build selected packages.</flag>
+ </use>
+ <origin>gentoo-guru-overlay</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-util/conan/Manifest b/dev-util/conan/Manifest
index af0dab76862f..9088f56bd500 100644
--- a/dev-util/conan/Manifest
+++ b/dev-util/conan/Manifest
@@ -1,3 +1,4 @@
+DIST conan-2.10.1.gh.tar.gz 1172069 BLAKE2B c239866be7e30defbd787c93fa36d0b629f6f5338975a66d1c824d4038dfb529c97b35e02b74c2c753ce5466f1288e4f4b5ce63cfc5b47ab76e770cecd09fea3 SHA512 223da4ff12d899b39f4c62a4f51b65036acdb6fd8bbf061bdcf790210a38030060cc4a70f009b390fce27fd1f57666286a020cc73c23792aedcd0620bc6ee066
DIST conan-2.5.0.gh.tar.gz 1105167 BLAKE2B 2a4a3aba324b3aee968dde721e3659470912ce82eada0c9ffc37c4ff0b4c4b78b2927e3e9cde1f52b1104a3f3e8e32b3d7450643a83c14958c035051a63386a1 SHA512 685cafd0d1ba179d84b7e0e37d0ca5ce95e320e025132e62f3a128a68b085eabeff47bbc0b129d5b8cee17f2955014cb4073b7e648d9f9ccf56c1ee377625e18
DIST conan-2.6.0.gh.tar.gz 1108424 BLAKE2B d9883900e4c09c2332bc6c3a186c2e010cde237d2b20249317ffaee3bfb182620acac7ab40303fd00810d6420a9676155d09693c89fe5c8a8917144ed654bcac SHA512 7deb8498d992fdebacd8ce8bc77e63089c9389200f010f0e099c73beb22c524c2d288ae643cdddc0cb3ec8494c1f7365fa834ec159c015063cc6fa936e6eb312
DIST conan-2.7.1.gh.tar.gz 1125150 BLAKE2B 2ca8279187fd190f391c7c0aa0dea8f449e95b6e05d367b8e0e3bb0b771957fc293f1b07cc25c1b1534bb309cb4bb07f86f26d6a138532abe852102b2df2e68b SHA512 d1ea9393067aeb4492fb588bd5d7084dfa82e2ae3a649a6492041bb479556f6748aa7b1b67dad0b5a671406ce7ff99db402b465b39e165b75240615675cf6a1d
diff --git a/dev-util/conan/conan-2.10.1.ebuild b/dev-util/conan/conan-2.10.1.ebuild
new file mode 100644
index 000000000000..6c9fbdcf98c7
--- /dev/null
+++ b/dev-util/conan/conan-2.10.1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1
+
+DESCRIPTION="Distributed C/C++ package manager"
+HOMEPAGE="https://conan.io/"
+SRC_URI="https://github.com/conan-io/${PN}/archive/${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/bottle-0.12.8[${PYTHON_USEDEP}]
+ >=dev-python/colorama-0.4.3[${PYTHON_USEDEP}]
+ >=dev-python/distro-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/fasteners-0.15.0[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.0[${PYTHON_USEDEP}]
+ >=dev-python/patch-ng-1.18.0[${PYTHON_USEDEP}]
+ >=dev-python/pluginbase-0.5[${PYTHON_USEDEP}]
+ >=dev-python/pyjwt-2.4[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.8.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.25[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.26.6[${PYTHON_USEDEP}]
+"
+
+# Try to fix it if you're brave enough
+# Conan requires noumerous external toolchain dependencies with restricted
+# versions and cannot be managable outside of a pure CI environment.
+RESTRICT="test"
+
+src_prepare() {
+ default
+ # Fix strict dependencies
+ sed -i \
+ -e 's:,[[:space:]]\?<=\?[[:space:]]\?[[:digit:]|.]*::g' \
+ -e 's:==:>=:g' \
+ conans/requirements{,_server}.txt || die
+}
diff --git a/dev-util/rt-tests/Manifest b/dev-util/rt-tests/Manifest
index 4050036c4406..e14e4f2c9737 100644
--- a/dev-util/rt-tests/Manifest
+++ b/dev-util/rt-tests/Manifest
@@ -1 +1,2 @@
DIST rt-tests-2.7.tar.xz 106864 BLAKE2B 89af0a92465ca29eb19adb6bb521be377dedb4153fc98bdcce48e1bad71803ed4aad2088227cfc679ce2441d09932acae437911535daec266b7ac2247fbad8d8 SHA512 6f2e523a6ff683473a222dc3b38abd34a06610c78b488d9d103643e410089d03820c76a4f40afaa4694d29f36e1aef6ced584cae9bad72921e3d633e36a5cda3
+DIST rt-tests-2.8.tar.xz 108480 BLAKE2B 852143d6d8017f08cecf847e5feb8d59390373828826d75f5d22259208fc0c3e3966615039cfc9a832648377044ffd10cced481796d68426c70bb824b558c1f4 SHA512 e3fa03258cd1fe22a65c6af9ac17398dba79fbb5a92f6aacbbb06bfb677982abc421d699d2889850505e83d78b0605cced7dbfb176e023cc34bdd25ec819a3a5
diff --git a/dev-util/rt-tests/files/rt-tests-2.8-musl.patch b/dev-util/rt-tests/files/rt-tests-2.8-musl.patch
new file mode 100644
index 000000000000..c98111331a31
--- /dev/null
+++ b/dev-util/rt-tests/files/rt-tests-2.8-musl.patch
@@ -0,0 +1,366 @@
+From 0b7a1e0d3463aa8aa4b7dcad0ec154e658d68036 Mon Sep 17 00:00:00 2001
+From: Kurt Kanzenbach <kurt@kmk-computers.de>
+Date: Wed, 1 Apr 2020 20:15:24 +0200
+Subject: [PATCH] all: Fix musl build
+
+There are a few problems:
+
+ * pi stress: pthread_attr_setaffinity_np() is not supported
+ * cyclictest: SIGEV_THREAD_ID is not supported
+ * hackbench: Fix include, add missing casts
+ * all: Fix sched_* calls
+
+With these changes applied, the rt-tests seem to run fine.
+
+Signed-off-by: Kurt Kanzenbach <kurt@kmk-computers.de>
+---
+ Makefile | 5 --
+ src/backfire/sendme.c | 1
+ src/cyclictest/cyclictest.c | 68 ++++------------------------------
+ src/hackbench/hackbench.c | 12 +++---
+ src/include/musl.h | 28 ++++++++++++++
+ src/lib/rt-utils.c | 1
+ src/pi_tests/tst-mutexpi10.c | 2 +
+ src/pmqtest/pmqtest.c | 1
+ src/ptsematest/ptsematest.c | 1
+ src/rt-migrate-test/rt-migrate-test.c | 1
+ src/sched_deadline/cyclicdeadline.c | 1
+ 11 files changed, 51 insertions(+), 70 deletions(-)
+ create mode 100644 src/include/musl.h
+
+--- a/Makefile
++++ b/Makefile
+@@ -10,7 +10,6 @@ OBJDIR = bld
+ sources = cyclictest.c \
+ hackbench.c \
+ pip_stress.c \
+- pi_stress.c \
+ pmqtest.c \
+ ptsematest.c \
+ rt-migrate-test.c \
+@@ -58,7 +57,6 @@ ifeq (${PYLIB},)
+ endif
+
+ MANPAGES = src/cyclictest/cyclictest.8 \
+- src/pi_tests/pi_stress.8 \
+ src/ptsematest/ptsematest.8 \
+ src/rt-migrate-test/rt-migrate-test.8 \
+ src/sigwaittest/sigwaittest.8 \
+@@ -146,9 +144,6 @@ deadline_test: $(OBJDIR)/deadline_test.o
+ signaltest: $(OBJDIR)/signaltest.o $(OBJDIR)/librttest.a $(OBJDIR)/librttestnuma.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) $(RTTESTNUMA)
+
+-pi_stress: $(OBJDIR)/pi_stress.o $(OBJDIR)/librttest.a
+- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB)
+-
+ hwlatdetect: src/hwlatdetect/hwlatdetect.py
+ chmod +x src/hwlatdetect/hwlatdetect.py
+ ln -s src/hwlatdetect/hwlatdetect.py hwlatdetect
+--- a/src/backfire/sendme.c
++++ b/src/backfire/sendme.c
+@@ -16,6 +16,7 @@
+ #include <string.h>
+ #include <time.h>
+ #include <errno.h>
++#include "musl.h"
+ #include "rt-utils.h"
+ #include "rt-get_cpu.h"
+
+--- a/src/cyclictest/cyclictest.c
++++ b/src/cyclictest/cyclictest.c
+@@ -33,6 +33,7 @@
+ #include <sys/utsname.h>
+ #include <sys/mman.h>
+ #include <sys/syscall.h>
++#include "musl.h"
+ #include "rt_numa.h"
+
+ #include "rt-utils.h"
+@@ -634,12 +635,8 @@ static void *timerthread(void *param)
+ {
+ struct thread_param *par = param;
+ struct sched_param schedp;
+- struct sigevent sigev;
+ sigset_t sigset;
+- timer_t timer;
+ struct timespec now, next, interval, stop = { 0 };
+- struct itimerval itimer;
+- struct itimerspec tspec;
+ struct thread_stat *stat = par->stats;
+ int stopped = 0;
+ cpu_set_t mask;
+@@ -668,14 +665,6 @@ static void *timerthread(void *param)
+ sigaddset(&sigset, par->signal);
+ sigprocmask(SIG_BLOCK, &sigset, NULL);
+
+- if (par->mode == MODE_CYCLIC) {
+- sigev.sigev_notify = SIGEV_THREAD_ID | SIGEV_SIGNAL;
+- sigev.sigev_signo = par->signal;
+- sigev.sigev_notify_thread_id = stat->tid;
+- timer_create(par->clock, &sigev, &timer);
+- tspec.it_interval = interval;
+- }
+-
+ memset(&schedp, 0, sizeof(schedp));
+ schedp.sched_priority = par->prio;
+ if (setscheduler(0, par->policy, &schedp))
+@@ -729,20 +718,6 @@ static void *timerthread(void *param)
+ stop = now;
+ stop.tv_sec += duration;
+ }
+- if (par->mode == MODE_CYCLIC) {
+- if (par->timermode == TIMER_ABSTIME)
+- tspec.it_value = next;
+- else
+- tspec.it_value = interval;
+- timer_settime(timer, par->timermode, &tspec, NULL);
+- }
+-
+- if (par->mode == MODE_SYS_ITIMER) {
+- itimer.it_interval.tv_sec = interval.tv_sec;
+- itimer.it_interval.tv_usec = interval.tv_nsec / 1000;
+- itimer.it_value = itimer.it_interval;
+- setitimer(ITIMER_REAL, &itimer, NULL);
+- }
+
+ stat->threadstarted++;
+
+@@ -750,16 +725,10 @@ static void *timerthread(void *param)
+
+ uint64_t diff;
+ unsigned long diff_smi = 0;
+- int sigs, ret;
++ int ret;
+
+ /* Wait for next period */
+ switch (par->mode) {
+- case MODE_CYCLIC:
+- case MODE_SYS_ITIMER:
+- if (sigwait(&sigset, &sigs) < 0)
+- goto out;
+- break;
+-
+ case MODE_CLOCK_NANOSLEEP:
+ if (par->timermode == TIMER_ABSTIME) {
+ ret = clock_nanosleep(par->clock, TIMER_ABSTIME,
+@@ -873,11 +842,6 @@ static void *timerthread(void *param)
+
+ next.tv_sec += interval.tv_sec;
+ next.tv_nsec += interval.tv_nsec;
+- if (par->mode == MODE_CYCLIC) {
+- int overrun_count = timer_getoverrun(timer);
+- next.tv_sec += overrun_count * interval.tv_sec;
+- next.tv_nsec += overrun_count * interval.tv_nsec;
+- }
+ tsnorm(&next);
+
+ while (tsgreater(&now, &next)) {
+@@ -902,17 +866,6 @@ out:
+ pthread_mutex_unlock(&refresh_on_max_lock);
+ }
+
+- if (par->mode == MODE_CYCLIC)
+- timer_delete(timer);
+-
+- if (par->mode == MODE_SYS_ITIMER) {
+- itimer.it_value.tv_sec = 0;
+- itimer.it_value.tv_usec = 0;
+- itimer.it_interval.tv_sec = 0;
+- itimer.it_interval.tv_usec = 0;
+- setitimer(ITIMER_REAL, &itimer, NULL);
+- }
+-
+ /* close msr file */
+ if (smi)
+ close(par->msr_fd);
+@@ -1315,7 +1268,8 @@ static void process_options(int argc, ch
+ case OPT_VERBOSE: verbose = 1; break;
+ case 'x':
+ case OPT_POSIX_TIMERS:
+- use_nanosleep = MODE_CYCLIC; break;
++ fatal("--posix_timers is not available on your libc\n");
++ break;
+ case '?':
+ case OPT_HELP:
+ display_help(0); break;
+@@ -1351,13 +1305,6 @@ static void process_options(int argc, ch
+ }
+ }
+
+- if ((use_system == MODE_SYS_OFFSET) && (use_nanosleep == MODE_CYCLIC)) {
+- warn("The system option requires clock_nanosleep\n");
+- warn("and is not compatible with posix_timers\n");
+- warn("Using clock_nanosleep\n");
+- use_nanosleep = MODE_CLOCK_NANOSLEEP;
+- }
+-
+ /* if smp wasn't requested, test for numa automatically */
+ if (!smp) {
+ numa = numa_initialize();
+@@ -2071,7 +2018,6 @@ int main(int argc, char **argv)
+
+ }
+
+-
+ mode = use_nanosleep + use_system;
+
+ sigemptyset(&sigset);
+@@ -2126,6 +2072,7 @@ int main(int argc, char **argv)
+ void *currstk;
+ size_t stksize;
+ int node_cpu = cpu;
++ int err;
+
+ if (node_cpu == -1)
+ node_cpu = cpu_for_thread_ua(i, max_cpus);
+@@ -2134,11 +2081,12 @@ int main(int argc, char **argv)
+ node = rt_numa_numa_node_of_cpu(node_cpu);
+
+ /* get the stack size set for this thread */
+- if (pthread_attr_getstack(&attr, &currstk, &stksize))
++ err = pthread_attr_getstack(&attr, &currstk, &stksize);
++ if (err != EINVAL)
+ fatal("failed to get stack size for thread %d\n", i);
+
+ /* if the stack size is zero, set a default */
+- if (stksize == 0)
++ if (err == EINVAL || stksize == 0)
+ stksize = PTHREAD_STACK_MIN * 2;
+
+ /* allocate memory for a stack on appropriate node */
+--- a/src/hackbench/hackbench.c
++++ b/src/hackbench/hackbench.c
+@@ -25,7 +25,7 @@
+ #include <sys/socket.h>
+ #include <sys/wait.h>
+ #include <sys/time.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+ #include <limits.h>
+@@ -34,6 +34,8 @@
+ #include <setjmp.h>
+ #include <sched.h>
+
++#include "musl.h"
++
+ static unsigned int datasize = 100;
+ static unsigned int loops = 100;
+ static unsigned int num_groups = 10;
+@@ -128,9 +130,9 @@ static int inet_socketpair(int fds[2])
+ sin.sin_port = 0;
+ sin.sin_addr.s_addr = inet_addr("127.0.0.1");
+
+- if (bind(s1, &sin, len) < 0)
++ if (bind(s1, (struct sockaddr *)&sin, len) < 0)
+ barf("bind");
+- if (getsockname(s1, &sin, &len) < 0)
++ if (getsockname(s1, (struct sockaddr *)&sin, &len) < 0)
+ barf("getsockname");
+ if (listen(s1, 10) < 0)
+ barf("listen");
+@@ -138,9 +140,9 @@ static int inet_socketpair(int fds[2])
+ barf("ioctl");
+ if (ioctl(s1, FIONBIO, &ul) < 0)
+ barf("ioctl");
+- if (connect(s2, &sin, len) < 0)
++ if (connect(s2, (struct sockaddr *)&sin, len) < 0)
+ barf("connect");
+- if ((fds[0] = accept(s1, &sin, &len)) < 0)
++ if ((fds[0] = accept(s1, (struct sockaddr *)&sin, &len)) < 0)
+ barf("accept");
+ ul = 0;
+ if (ioctl(s2, FIONBIO, &ul) < 0)
+--- /dev/null
++++ b/src/include/musl.h
+@@ -0,0 +1,28 @@
++/*
++ * Copyright (C) 2020 Kurt Kanzenbach <kurt@kmk-computers.de>
++ * Time-stamp: <2020-04-04 10:54:01 kurt>
++ */
++
++#ifndef _MUSL_H_
++#define _MUSL_H_
++
++#include <unistd.h>
++#include <sys/syscall.h>
++
++/*
++ * Musl someshow defines sched_* to ENOSYS which is not correct ...
++ * See commit 1e21e78bf7a5 ("add support for thread scheduling (POSIX TPS option)")
++ *
++ * Workaround: define them to syscall(...)
++ */
++
++#define sched_getparam(pid, param) \
++ syscall(SYS_sched_getparam, pid, param)
++#define sched_setparam(pid, param) \
++ syscall(SYS_sched_setparam, pid, param)
++#define sched_getscheduler(pid) \
++ syscall(SYS_sched_getscheduler, pid)
++#define sched_setscheduler(pid, policy, param) \
++ syscall(SYS_sched_setscheduler, pid, policy, param)
++
++#endif /* _MUSL_H_ */
+--- a/src/lib/rt-utils.c
++++ b/src/lib/rt-utils.c
+@@ -24,6 +24,7 @@
+ #include <time.h>
+ #include <sys/time.h>
+
++#include "musl.h"
+ #include "rt-utils.h"
+ #include "rt-sched.h"
+ #include "rt-error.h"
+--- a/src/pi_tests/tst-mutexpi10.c
++++ b/src/pi_tests/tst-mutexpi10.c
+@@ -35,6 +35,8 @@
+ #include <string.h>
+ #include <signal.h>
+
++#include "musl.h"
++
+ /* test timeout */
+ #define TIMEOUT 2
+
+--- a/src/pmqtest/pmqtest.c
++++ b/src/pmqtest/pmqtest.c
+@@ -24,6 +24,7 @@
+ #include <pthread.h>
+ #include <inttypes.h>
+
++#include "musl.h"
+ #include "rt-utils.h"
+ #include "rt-get_cpu.h"
+ #include "rt-error.h"
+--- a/src/ptsematest/ptsematest.c
++++ b/src/ptsematest/ptsematest.c
+@@ -22,6 +22,7 @@
+ #include <pthread.h>
+ #include <inttypes.h>
+
++#include "musl.h"
+ #include "rt-utils.h"
+ #include "rt-get_cpu.h"
+ #include "rt-error.h"
+--- a/src/rt-migrate-test/rt-migrate-test.c
++++ b/src/rt-migrate-test/rt-migrate-test.c
+@@ -27,6 +27,7 @@
+
+ #include <linux/unistd.h>
+
++#include "musl.h"
+ #include "rt-utils.h"
+
+ int nr_tasks;
+--- a/src/sched_deadline/cyclicdeadline.c
++++ b/src/sched_deadline/cyclicdeadline.c
+@@ -30,6 +30,7 @@
+ #include <linux/unistd.h>
+ #include <linux/magic.h>
+
++#include "musl.h"
+ #include "rt-utils.h"
+ #include "rt-sched.h"
+ #include "rt-error.h"
diff --git a/dev-util/rt-tests/rt-tests-2.8.ebuild b/dev-util/rt-tests/rt-tests-2.8.ebuild
new file mode 100644
index 000000000000..8e34342f2447
--- /dev/null
+++ b/dev-util/rt-tests/rt-tests-2.8.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit python-single-r1 toolchain-funcs
+
+DESCRIPTION="A collection of latency testing tools for the linux(-rt) kernel"
+HOMEPAGE="https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/"
+SRC_URI="
+ https://kernel.org/pub/linux/utils/rt-tests/${P}.tar.xz
+ https://kernel.org/pub/linux/utils/rt-tests/older/${P}.tar.xz"
+
+LICENSE="GPL-2 GPL-2+ LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND="${PYTHON_DEPS}
+ sys-process/numactl"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ default
+ use elibc_musl && eapply "${FILESDIR}/${P}-musl.patch"
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)" AR="$(tc-getAR)"
+}
+
+src_install() {
+ emake CC="$(tc-getCC)" prefix=/usr DESTDIR="${ED}" install
+ python_fix_shebang "${ED}"
+ python_optimize
+}
diff --git a/dev-util/rust-rover/rust-rover-2024.2.1-r1.ebuild b/dev-util/rust-rover/rust-rover-2024.2.1-r1.ebuild
index 84ddbd29b850..0a528c115a88 100644
--- a/dev-util/rust-rover/rust-rover-2024.2.1-r1.ebuild
+++ b/dev-util/rust-rover/rust-rover-2024.2.1-r1.ebuild
@@ -23,7 +23,7 @@ BDEPEND="dev-util/patchelf"
RDEPEND="!bundled-jdk? ( >=virtual/jre-1.8 )
>=app-accessibility/at-spi2-core-2.46.0:2
dev-debug/gdb
- dev-debug/lldb
+ llvm-core/lldb
dev-libs/expat
dev-libs/glib:2
dev-libs/nspr