IRC channel logs

2023-06-14.log

back to list of logs

<janneke>re: thread-join, we fixed a glibc-confusion problem, possibly glibc-2.35 may have leeked-in somewhere; re-building VMs to re-check
<gabber>i hope this is the right place to ask about GNU Mach, too :) i've idiotically tried adding a new host to the Mach microkernel but i am not really used to using autotools that much. while my (indubitably simplicistic) aproach starts compiling, i run into a _Static_assert error -- i guess sizeof tests fails because they are tested the wrong platform. but i have no clue where this is coming from? any ideas?
<gabber>the assert() fails in kern/mach_debug.server.c which is autogenerated (at least i think so) through a make target defined in Makefrag.am. i've started reading the autotools book but i'm not sure this is the most straight forward way to keep going -- so i've come here (:
<Pellescours>gabber: yes it's the right place :)
<gabber>\o/
<Pellescours>what do you mean by adding new host to gnumach ?
<Pellescours>adding a new host triplet ?
<gabber>a new architecture
<gabber>i've extended --enable-platform in configure.ac and copied files (from i386 to riscv64)
<luckyluke>gabber: are you porting gnumach to riscv? :)
<gabber>digging a bit further i stumbled upon include/mach_debug/mach_debug.defs which i suspect creates the _Static_assert calls
<gabber>luckyluke: i can't promise anything
<gabber>and i won't -- but i've had this "how hard can it be" and i wanted to get my hands dirty with kernels
<gabber>soooo... what are these "Matchmaker definitions" i've stumbled upon? what language are they written in? unfortunately duckduckgo is utterly useless when searching these terms
<luckyluke>Iirc matchmaker is the language of the RPC definitons, in this case those handled by the kernel
<luckyluke>They are used by MiG to generate some packing/unpacking code
<gabber>RPC as in remote procedure call?
<luckyluke>Yes, it's the main interface user<->kernel
<gabber> https://git.savannah.gnu.org/cgit/hurd/gnumach.git/tree/include/mach_debug/mach_debug.defs#n27
<gabber>so this is written in a mach/mig special programming language?
<luckyluke>it's rather just a definition language, you can define data types, structures, functions and a few attributes basically, but no code
<luckyluke>it's the human-friendly definition of the function calls
<luckyluke>and the main use is to generate the parsing code automatically, using mig
<luckyluke>it should be quite arch-indipendent, we recently made it work on x86_64, so probably most of the work would be already done for another 64-bit arch
<gabber>ah -- x86_64 has arrived? how cool! yes, maybe this makes my job much easier
<gabber>i thought one of these .defs files was responsible for the _Static_assert check failing when building -- which does not seem to be defined anywhere?
<luckyluke>it's still not fully functional we have a very early prototype of a debian/hurd system... but a lot of things work :)
<luckyluke>probably this comes from the files generated by mig, they contain some static asserts about the message struct sizes
<gabber>i see! this makes sense!
<luckyluke>but how are you compiling it? do you already have a basic riscv64/ tree with arch-specific code?