linux-qubasis
linux oasis port as a qubes template
git clone https://9o.is/git/linux-qubasis.git
commit 14c4d01939416978479df43e6898e81c27846d4b parent 982f894af4e0edd70f8a7889145355839590eb2a Author: Jul <jul@9o.is> Date: Thu, 27 Nov 2025 11:39:07 -0500 add mtdev Diffstat:
| M | pkg/gen.sh | | | 1 | + |
| A | pkg/mtdev/gen.sh | | | 26 | ++++++++++++++++++++++++++ |
| A | pkg/mtdev/patch/0001-Avoid-__builtin_ffs.patch | | | 44 | ++++++++++++++++++++++++++++++++++++++++++++ |
3 files changed, 71 insertions(+), 0 deletions(-)
diff --git a/pkg/gen.sh b/pkg/gen.sh @@ -33,6 +33,7 @@ pkg linux-headers pkg lpeg pkg lua pkg mandoc +pkg mtdev pkg netbsd-curses pkg oksh pkg openbsd diff --git a/pkg/mtdev/gen.sh b/pkg/mtdev/gen.sh @@ -0,0 +1,26 @@ +curl https://bitmath.se/org/code/mtdev/mtdev-1.1.6.tar.gz \ + 1325f389a2f25cd5f5a8ea4d29aad24aa7c3ec30401d679400dd79eb9c0a8dbb + +cflags " + -I$srcdir/include + -isystem $pkgdir/linux-headers/include + -Wno-unused-parameter + -Wno-sign-compare + -Wno-error=overflow + -Wno-overflow +" + +dep linux-headers/headers + +include --src-prefix include " + mtdev.h + mtdev-plumbing.h +" + +lib libmtdev.a --src-prefix src " + caps.c + core.c + iobuf.c + match.c + match_four.c +" diff --git a/pkg/mtdev/patch/0001-Avoid-__builtin_ffs.patch b/pkg/mtdev/patch/0001-Avoid-__builtin_ffs.patch @@ -0,0 +1,44 @@ +From 09e21bb5d6714687705dc8f2d00a09b3ff3b2436 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Fri, 7 Jun 2019 11:55:26 -0700 +Subject: [PATCH] Avoid __builtin_ffs + +--- + src/common.h | 5 +---- + src/core.c | 2 +- + 2 files changed, 2 insertions(+), 5 deletions(-) + +diff --git a/src/common.h b/src/common.h +index 80a3d6e..3c77f48 100644 +--- a/src/common.h ++++ b/src/common.h +@@ -77,12 +77,9 @@ static inline int bitcount(unsigned v) + return (((v + (v>>4)) & 0xF0F0F0F) * 0x1010101) >> 24; + } + +-/* Return index of first bit [0-31], -1 on zero */ +-#define firstbit(v) (__builtin_ffs(v) - 1) +- + /* boost-style foreach bit */ + #define foreach_bit(i, m) \ +- for (i = firstbit(m); i >= 0; i = firstbit((m) & (~0U << (i + 1)))) ++ for (i = -1; (m) & ~0U << (i + 1);) if ((m) & 1U << ++i) + + /* robust system ioctl calls */ + #define SYSCALL(call) while (((call) == -1) && (errno == EINTR)) +diff --git a/src/core.c b/src/core.c +index 0d91c0b..20ce0c6 100644 +--- a/src/core.c ++++ b/src/core.c +@@ -304,7 +304,7 @@ static void apply_typeA_changes(struct mtdev_state *state, + break; + } + if (id != MT_ID_NULL) { +- slot = firstbit(unused); ++ foreach_bit(slot, unused) break; + push_slot_changes(state, &data[i], prop[i], slot, syn); + SETBIT(used, slot); + CLEARBIT(unused, slot); +-- +2.25.0 +