toad.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
Mastodon server operated by David Troy, a tech pioneer and investigative journalist addressing threats to democracy. Thoughtful participation and discussion welcome.

Administered by:

Server stats:

211
active users

#glibc

0 posts0 participants0 posts today
Sourceware<p>The next GNU Tools Cauldron, taking place in Porto, Portugal, on September 26-28, 2025.</p><p><a href="https://inbox.sourceware.org/gcc/87o6ubhn4j.fsf@oracle.com/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">inbox.sourceware.org/gcc/87o6u</span><span class="invisible">bhn4j.fsf@oracle.com/</span></a><br><a href="https://gcc.gnu.org/wiki/cauldron2025" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">gcc.gnu.org/wiki/cauldron2025</span><span class="invisible"></span></a><br><a href="https://gnu-tools-cauldron.org/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">gnu-tools-cauldron.org/</span><span class="invisible"></span></a></p><p>Some <a href="https://fosstodon.org/tags/Sourceware" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Sourceware</span></a> Project Leadership Committee members and <span class="h-card" translate="no"><a href="https://social.sfconservancy.org/users/conservancy" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>conservancy</span></a></span> staff should also be there.</p><p><a href="https://fosstodon.org/tags/GCC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GCC</span></a> <a href="https://fosstodon.org/tags/GDB" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GDB</span></a> <a href="https://fosstodon.org/tags/binutils" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>binutils</span></a> <a href="https://fosstodon.org/tags/CGEN" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CGEN</span></a> <a href="https://fosstodon.org/tags/DejaGnu" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DejaGnu</span></a> <a href="https://fosstodon.org/tags/newlib" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>newlib</span></a> <a href="https://fosstodon.org/tags/glibc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>glibc</span></a> <a href="https://fosstodon.org/tags/poke" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>poke</span></a> <a href="https://fosstodon.org/tags/libabigail" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>libabigail</span></a> <a href="https://fosstodon.org/tags/elfutils" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>elfutils</span></a></p>
Kevin Karhan :verified:<p><span class="h-card" translate="no"><a href="https://cuties.cloud/@ULTROS_PROFESSIONAL" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>ULTROS_PROFESSIONAL</span></a></span> <span class="h-card" translate="no"><a href="https://studio8502.ca/@mos_8502" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>mos_8502</span></a></span> yeah. <a href="https://infosec.space/tags/GlibC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GlibC</span></a> randomly bricks shit at minor version updates.</p><p>Their response: <em>"JuSt ReCoMpIlE!"</em></p>
Kevin Karhan :verified:<p><span class="h-card" translate="no"><a href="https://mastodon.social/@mrmasterkeyboard" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>mrmasterkeyboard</span></a></span> <span class="h-card" translate="no"><a href="https://mstdn.jp/@landley" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>landley</span></a></span> <em>exactly that</em> is literally the Problem with <a href="https://infosec.space/tags/native" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>native</span></a> <a href="https://infosec.space/tags/Linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Linux</span></a> games:</p><ul><li>A lot of them <em>won't run</em> on modern distros because of <a href="https://infosec.space/tags/GlibC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GlibC</span></a>!</li></ul>
Kevin Karhan :verified:<p><span class="h-card" translate="no"><a href="https://mastodon.social/@mrmasterkeyboard" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>mrmasterkeyboard</span></a></span> <span class="h-card" translate="no"><a href="https://mstdn.jp/@landley" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>landley</span></a></span> My choice of <span class="h-card" translate="no"><a href="https://social.treehouse.systems/@musl" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>musl</span></a></span> for <span class="h-card" translate="no"><a href="https://infosec.space/@OS1337" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>OS1337</span></a></span> is because I want my stuff to be statically linked and not every minor update to have the risk to brick shit, because <a href="https://infosec.space/tags/GlibC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GlibC</span></a> is notorious for that since the <a href="https://infosec.space/tags/GNU" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GNU</span></a> project are nonchalantly thinking <em>"just recompile it"</em> is a valid excuse.</p><ul><li>Espechally since (for better or worse) not everything is (A)GPL(v3)-licensed and prople may need to deal with <a href="https://infosec.space/tags/binaries" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>binaries</span></a> and/or <a href="https://infosec.space/tags/CCSS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CCSS</span></a> because in many cases patents and licensing are not allowing the distribution of it.</li></ul><p>I mean, we all <em>'loved'</em> to live in a world where this wasn't the case but if I were to like deal with a vocoder for <a href="https://en.wikipedia.org/wiki/Mixed-excitation_linear_prediction" rel="nofollow noopener" target="_blank">MELP</a>, <a href="https://en.wikipedia.org/wiki/Multi-Band_Excitation" rel="nofollow noopener" target="_blank">AMBE</a> or <a href="https://twelp.pro" rel="nofollow noopener" target="_blank">TWELP</a> I'm pretty shure I'd <em>never ever</em> be allowed to distribute it's source code, even for <em>"clients exempted from the need to obtain licensing"</em>...</p>
Kevin Karhan :verified:<p><span class="h-card" translate="no"><a href="https://fosstodon.org/@lmemsm" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>lmemsm</span></a></span> basically the Idea behind <a href="https://infosec.space/@OS1337" rel="nofollow noopener" target="_blank">it</a> is to be a <em>brutally simple</em> <a href="https://infosec.space/tags/toybox" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>toybox</span></a> + <a href="https://infosec.space/tags/musl" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>musl</span></a> / <a href="https://infosec.space/tags/linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>linux</span></a> distro that grew out of the necessity for me to actually think about <a href="https://infosec.space/tags/firmware" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>firmware</span></a> for some projects. </p><ul><li>And lets just say I did saw <span class="h-card" translate="no"><a href="https://fosstodon.org/@w84death" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>w84death</span></a></span> 's <a href="https://infosec.space/tags/Floppynux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Floppynux</span></a> and <span class="h-card" translate="no"><a href="https://mstdn.jp/@landley" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>landley</span></a></span> did present <a href="https://www.youtube.com/watch?v=SGmtP5Lg_t0" rel="nofollow noopener" target="_blank">a</a> <a href="https://www.youtube.com/watch?v=MkJkyMuBm3g" rel="nofollow noopener" target="_blank">lot</a> of <em>convincing arguments</em> <a href="https://www.youtube.com/watch?v=Sk9TatW9ino" rel="nofollow noopener" target="_blank">alongside a literal walktrough</a> to get started.</li></ul><p>Basically I want something that is so simple and auditable that it's practical to make it pass any <a href="https://infosec.space/tags/verification" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>verification</span></a> demands for <a href="https://infosec.space/tags/SecureTerminal" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SecureTerminal</span></a>|s in <a href="https://infosec.space/tags/CriticalInfrastructure" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CriticalInfrastructure</span></a> and <a href="https://infosec.space/tags/Communications" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Communications</span></a>. </p><ul><li>OFC one may point at my other projects and say: <em>"Why don't you just put <a href="https://infosec.space/tags/RaspberryPiOS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RaspberryPiOS</span></a> on a <a href="https://infosec.space/tags/microSD" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>microSD</span></a>?"</em> ignoring that the smallest image is &gt;330MB in size and that seems kinda overkill for essentially my demands for a minimalist <a href="https://infosec.space/tags/Linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Linux</span></a> with very few programs in userspace. </li></ul><p>Not to mention a <a href="https://infosec.space/tags/GNUfree" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GNUfree</span></a> - <a href="https://infosec.space/tags/Linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Linux</span></a> distro is the way to go if I want that thing to not get bricked constantly by minor <a href="https://infosec.space/tags/GlibC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GlibC</span></a>-changes... </p><ul><li>End goal is something akin to <a href="https://infosec.space/tags/MSDOS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>MSDOS</span></a> in it's brutal simplicity, but way more extendable.</li></ul> <p>I hope that answers your question...</p><ul><li>Sorry for the delay.</li></ul>
datenwolf<p>All I want is just a collection of <a href="https://chaos.social/tags/binutils" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>binutils</span></a>, <a href="https://chaos.social/tags/GCC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GCC</span></a>, <a href="https://chaos.social/tags/llvm" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>llvm</span></a>+<a href="https://chaos.social/tags/clang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clang</span></a>, <a href="https://chaos.social/tags/glibc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>glibc</span></a> and <a href="https://chaos.social/tags/musl" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>musl</span></a> that are "free standing" / relocatable, which I can pack into a <a href="https://chaos.social/tags/squashfs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>squashfs</span></a> image to carry around to my various development machines.</p><p>You'd think that for something as fundamental as compiler infrastructure with over 60 years of knowledge, the whole bootstrapping and bringup process would have been super streamlined, or at least mostly pain free by now.</p><p>Yeah, about that. IYKYK</p>
IBBoard<p>Reading through the code, and I'm not even sure that some of the PHP functions make sense!</p><p>PHP has a `crypt` function that takes a string and a salt. But the Wordpress code _and_ the in-page function are using the hashed password as the salt. Which makes no sense. How can you salt a password with the hashed password and get something that you can compare against?</p><p>Wait. There _is_ something in the PHP docs. Not well signposted. But apparently "salt" _is_ extracted from hashed values. Which is SO obvious from the parameter naming 🙄</p><p>Should say up-front "$salt is not actually the salt - it's a string containing the salt and other characters that's processed according to the chosen crypt algorithm"</p><p>*digs further*</p><p>Oh. It looks like that magic behaviour is ACTUALLY the fault of glibc2 😑 <a href="https://linux.die.net/man/3/crypt" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">linux.die.net/man/3/crypt</span><span class="invisible"></span></a></p><p>(Not clear yet how it handles `$P$` not being one of its known prefixes 😐)</p><p><a href="https://hachyderm.io/tags/PHP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PHP</span></a> <a href="https://hachyderm.io/tags/WTF" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WTF</span></a> <a href="https://hachyderm.io/tags/Wordpress" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Wordpress</span></a> <a href="https://hachyderm.io/tags/glibc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>glibc</span></a></p>
Felix Palmen :freebsd: :c64:<p>Solved! 🥳 </p><p>This was a pretty "interesting" bug. Remember when I invented a way to implement <a href="https://mastodon.bsd.cafe/tags/async" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>async</span></a> / <a href="https://mastodon.bsd.cafe/tags/await" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>await</span></a> in <a href="https://mastodon.bsd.cafe/tags/C" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>C</span></a>, for jobs running on a threadpool. Back then I said it only works when completion of the task resumes execution on the *same* pool thread.</p><p>Trying to improve overall performance, I found the complex logic to identify the thread job to put on a pool thread a real deal-breaker. Just having one single MPMC queue with a single semaphore for all pool threads to wait on is a lot more efficient. But then, a job continued after an awaited task will resume on a "random" thread.</p><p>It theoretically works by making sure to restore the CORRECT context (the original one of the pool thread) every time after executing a job, whether partially (up to the next await) or completely.</p><p>Only it didn't, at least here on <a href="https://mastodon.bsd.cafe/tags/FreeBSD" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FreeBSD</span></a>, and I finally understood the reason for this was that I was using <a href="https://mastodon.bsd.cafe/tags/TLS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TLS</span></a> (thread-local storage) to find the context to restore.</p><p>Well, most architectures store a pointer to the current thread metadata in a register. <a href="https://mastodon.bsd.cafe/tags/POSIX" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>POSIX</span></a> user <a href="https://mastodon.bsd.cafe/tags/context" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>context</span></a> <a href="https://mastodon.bsd.cafe/tags/switching" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>switching</span></a> saves and restores registers. I found a source claiming that the <a href="https://mastodon.bsd.cafe/tags/Linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Linux</span></a> (<a href="https://mastodon.bsd.cafe/tags/glibc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>glibc</span></a>) implementation explicitly does NOT include the register holding a thread pointer. Obviously, <a href="https://mastodon.bsd.cafe/tags/FreeBSD" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FreeBSD</span></a>'s implementation DOES include it. POSIX doesn't have to say anything about that.</p><p>In short, avoiding TLS accesses when running with a custom context solved the crash. 🤯</p>
Aho<p><span class="h-card" translate="no"><a href="https://social.linux.pizza/@MichaelRoss" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>MichaelRoss</span></a></span> something I have been trying to look for is a <a href="https://mastodon.social/tags/Linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Linux</span></a> <a href="https://mastodon.social/tags/ls" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ls</span></a> that isn't depending on <a href="https://mastodon.social/tags/glibc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>glibc</span></a> or another <a href="https://mastodon.social/tags/libc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>libc</span></a> implementation, the reason is there was some malware that attached itself to glibc and prevented you to see the directories and files it used and also the process directory in /proc <br>Had you a ls that wasn't built with glibc, then all the files and directories would be listed.</p>
Freexian :debian:<p>Debian LTS contributors released 46 Debian LTS Advisories about security updates for various packages in April 2025.</p><p>These include critical security bug fixes for jetty9, zabbix and glibc and more. Also several LTS contributors prepared packages for the recent point release of current stable Debian 12, with many prepared in conjunction with related LTS updates of the same packages.</p><p>Read more about this in our monthly report for April here: <a href="https://www.freexian.com/blog/debian-lts-report-2025-04/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">freexian.com/blog/debian-lts-r</span><span class="invisible">eport-2025-04/</span></a></p><p>This work is funded by Freexian's Debian LTS offering.</p><p>Your organization too can sponsor the Debian LTS (<a href="https://www.freexian.com/lts/debian/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="">freexian.com/lts/debian/</span><span class="invisible"></span></a>) and join the esteemed list of sponsors in the monthly report.</p><p><a href="https://hachyderm.io/tags/debian" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>debian</span></a> <a href="https://hachyderm.io/tags/debianlts" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>debianlts</span></a> <a href="https://hachyderm.io/tags/freexian" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>freexian</span></a> <a href="https://hachyderm.io/tags/infosec" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>infosec</span></a> <a href="https://hachyderm.io/tags/glibc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>glibc</span></a></p>
jbz<p>⚠️ Steam Will Stop Working on Outdated Linux Systems This August | Linuxiac </p><p>「 According to a recent announcement, the Steam client will no longer run on any distribution with a GNU C Library (glibc) version older than 2.31 starting August 15,&nbsp;2025.</p><p>Users who stay on an outdated toolchain will find not only Steam but also any purchased games unable to launch until the underlying operating system is upgraded 」</p><p><a href="https://linuxiac.com/steam-will-stop-working-on-outdated-linux-systems-this-august/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">linuxiac.com/steam-will-stop-w</span><span class="invisible">orking-on-outdated-linux-systems-this-august/</span></a></p><p><a href="https://indieweb.social/tags/steam" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>steam</span></a> <a href="https://indieweb.social/tags/glibc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>glibc</span></a> <a href="https://indieweb.social/tags/linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>linux</span></a> <a href="https://indieweb.social/tags/opensource" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>opensource</span></a></p>
Tuckers Nuts Resist! 🇺🇦 <p><span class="h-card" translate="no"><a href="https://mastodon.social/@cleverboi" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>cleverboi</span></a></span> <br>Boi, I'm not knowledgeable about glibc, but I do use and like Pop!_Os, so I'm boosting your twt in an effort to secure you an answer.<br>I don't know your use case, so I have no clue why you'd be having this software issue with Pop!_Os!<br>Hope someone else can be of actual assistance.<br><a href="https://mstdn.social/tags/Linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Linux</span></a> <a href="https://mstdn.social/tags/GLIBC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GLIBC</span></a> <a href="https://mstdn.social/tags/Pop" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Pop</span></a>!_Os <a href="https://mstdn.social/tags/PopOs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PopOs</span></a></p>
Vitex<p>glibc (2.41-7) unstable; urgency=medium</p><p> Starting with glibc 2.41, shared libraries requiring an executable stack<br> cannot be dynamically loaded through the <a href="https://f.cz/tags/dlopen" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>dlopen</span></a> mechanism from a binary that<br> does not require an executable stack. This change aims to improve security,<br> as the previous behavior was used as a vector for RCE (<a href="https://f.cz/tags/CVE" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CVE</span></a>-2023-38408).<br> Attempting to do so will result in the following error:</p><p> cannot enable executable stack as shared object requires: Invalid argument</p><p> While most libraries generated in the past 20 years do not require an<br> executable stack, some third-party software still need this capability. Many<br> vendors have already updated their binaries to address this.</p><p> If you need to run a program that requires an executable stack through<br> dynamic loaded shared libraries, you can use the glibc.rtld.execstack<br> tunable:</p><p> Glibc6_TUNABLES=glibc.rtld.execstack=2 ./program</p><p> -- Aurelien Jarno &lt;aurel32@debian.org&gt; Sun, 13 Apr 2025 14:41:11 +0200</p><p><a href="https://f.cz/tags/Debian" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Debian</span></a> <a href="https://f.cz/tags/Changelog" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Changelog</span></a> <a href="https://f.cz/tags/GLibC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GLibC</span></a> <a href="https://f.cz/tags/Security" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Security</span></a> <a href="https://f.cz/tags/Linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Linux</span></a></p>
you╭👺+300╭🐈x5╭⁂+3╭(Ⓐ+a<p><a href="https://mastodon.social/tags/tek" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>tek</span></a> 0.2.0 out now: <a href="https://codeberg.org/unspeaker/tek/releases/tag/0.2.0" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/unspeaker/tek/rel</span><span class="invisible">eases/tag/0.2.0</span></a></p><p>it's buggy as hell, and about half the features i've showcased previously are disabled for now. but, more importantly, i've managed to build it as a single binary that you should be able to run on any <a href="https://mastodon.social/tags/linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>linux</span></a> with <a href="https://mastodon.social/tags/glibc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>glibc</span></a> and <a href="https://mastodon.social/tags/jack" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>jack</span></a>... let me know what happens!</p><p><a href="https://mastodon.social/tags/rust" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>rust</span></a> <a href="https://mastodon.social/tags/tui" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>tui</span></a> <a href="https://mastodon.social/tags/daw" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>daw</span></a></p>
Felix Palmen :freebsd: :c64:<p>Today, I implemented the <a href="https://mastodon.bsd.cafe/tags/async" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>async</span></a> / <a href="https://mastodon.bsd.cafe/tags/await" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>await</span></a> pattern (as known from <a href="https://mastodon.bsd.cafe/tags/csharp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>csharp</span></a> and meanwhile quite some other languages) ...</p><p>... in good old <a href="https://mastodon.bsd.cafe/tags/C" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>C</span></a>! 😎 </p><p>Well, at least sort of.</p><p>* It requires some standard library support, namely <a href="https://mastodon.bsd.cafe/tags/POSIX" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>POSIX</span></a> user context switching with <a href="https://mastodon.bsd.cafe/tags/getcontext" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>getcontext</span></a> and friends, which was deprecated in POSIX-1.2008. But it's still available on many systems, including <a href="https://mastodon.bsd.cafe/tags/FreeBSD" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FreeBSD</span></a>, <a href="https://mastodon.bsd.cafe/tags/NetBSD" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>NetBSD</span></a>, <a href="https://mastodon.bsd.cafe/tags/Linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Linux</span></a> (with <a href="https://mastodon.bsd.cafe/tags/glibc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>glibc</span></a>). It's NOT available e.g. on <a href="https://mastodon.bsd.cafe/tags/OpenBSD" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OpenBSD</span></a>, or Linux with some alternative libc.</p><p>* I can't do anything about the basic language syntax, so some boilerplate comes with using it.</p><p>* It has some overhead (room for extra stacks, even extra syscalls as getcontext unfortunately also always saves/restores the signal mask)</p><p>But then ... async/await in C! 🥳 </p><p>Here are the docs:<br><a href="https://zirias.github.io/poser/api/latest/class_p_s_c___async_task.html" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">zirias.github.io/poser/api/lat</span><span class="invisible">est/class_p_s_c___async_task.html</span></a></p><p><a href="https://mastodon.bsd.cafe/tags/C" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>C</span></a> <a href="https://mastodon.bsd.cafe/tags/coding" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>coding</span></a></p>
Felix Palmen :freebsd: :c64:<p>I finally eliminated the need for a dedicated <a href="https://mastodon.bsd.cafe/tags/thread" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>thread</span></a> controlling the pam helper <a href="https://mastodon.bsd.cafe/tags/process" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>process</span></a> in <a href="https://mastodon.bsd.cafe/tags/swad" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>swad</span></a>. 🥳 </p><p>The building block that was still missing from <a href="https://mastodon.bsd.cafe/tags/poser" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>poser</span></a> was a way to await some async I/O task performed on the main thread from a worker thread. So I added a class to allow exactly that. The naive implementation just signals the main thread to carry out the requested task and then waits on a <a href="https://mastodon.bsd.cafe/tags/semaphore" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>semaphore</span></a> for completion, which of course blocks the worker thread.</p><p>Turns out we can actually do better, reaching similar functionality like e.g. <a href="https://mastodon.bsd.cafe/tags/async" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>async</span></a> / <a href="https://mastodon.bsd.cafe/tags/await" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>await</span></a> in C#: Release the worker thread to do other jobs while waiting. The key to this is user context switching support like offered by <a href="https://mastodon.bsd.cafe/tags/POSIX" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>POSIX</span></a>-1.2001 <a href="https://mastodon.bsd.cafe/tags/getcontext" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>getcontext</span></a> and friends. Unfortunately it was deprecated in POSIX-1.2008 without an obvious replacement (the docs basically say "use threads", which doesn't work for my scenario), but still lots of systems provide it, e.g. <a href="https://mastodon.bsd.cafe/tags/FreeBSD" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FreeBSD</span></a>, <a href="https://mastodon.bsd.cafe/tags/NetBSD" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>NetBSD</span></a>, <a href="https://mastodon.bsd.cafe/tags/Linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Linux</span></a> (with <a href="https://mastodon.bsd.cafe/tags/glibc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>glibc</span></a>) ...</p><p>The posercore lib now offers both implementations, prefering to use user context switching if available. It comes at a price: Every thread job now needs its private stack space (I allocated 64kiB there for now), and of course the switching takes some time as well, but that's very likely better than leaving a task idle waiting. And there's a restriction, resuming must still happen on the same thread that called the "await", so if this thread is currently busy, we have to wait a little bit longer. I still think it's a very nice solution. 😎 </p><p>In any case, the code for the PAM credential checker module looks much cleaner now (the await "magic" happens on line 174):<br><a href="https://github.com/Zirias/swad/blob/57eefe93cdad0df55ebede4bd877d22e7be1a7f8/src/bin/swad/cred/pamchecker.c" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/Zirias/swad/blob/57</span><span class="invisible">eefe93cdad0df55ebede4bd877d22e7be1a7f8/src/bin/swad/cred/pamchecker.c</span></a></p><p><a href="https://mastodon.bsd.cafe/tags/C" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>C</span></a> <a href="https://mastodon.bsd.cafe/tags/coding" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>coding</span></a></p>
Boud<p>The <a href="https://framapiaf.org/tags/Maneage" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Maneage</span></a> <a href="https://framapiaf.org/tags/reproducibility" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>reproducibility</span></a> system for scientific research papers that starts from a minimal POSIX-like host OS does not yet build [1] the <a href="https://framapiaf.org/tags/GNUCLibrary" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GNUCLibrary</span></a> = <a href="https://framapiaf.org/tags/GLibC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GLibC</span></a> . We have a draft implementation building glibc *after* <a href="https://framapiaf.org/tags/GCC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GCC</span></a> [2]; and an alternative proposal arguing that building glibc *first* and gcc second would be more long-term sustainable [[1] comment18].</p><p>Should GLibC be built first? Why (or why not)?</p><p>[1] <a href="https://savannah.nongnu.org/task/?15390" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">savannah.nongnu.org/task/?1539</span><span class="invisible">0</span></a><br>[2] <a href="https://gitlab.com/maneage/project-dev/-/blob/glibc/reproduce/software/make/core-gnu.mk#L718" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">gitlab.com/maneage/project-dev</span><span class="invisible">/-/blob/glibc/reproduce/software/make/core-gnu.mk#L718</span></a></p>
Kevin Karhan :verified:<p><span class="h-card" translate="no"><a href="https://mstdn.jp/@landley" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>landley</span></a></span> <span class="h-card" translate="no"><a href="https://todon.nl/@burnoutqueen" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>burnoutqueen</span></a></span> Yeah...</p><p><a href="https://infosec.space/tags/GPLv3" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GPLv3</span></a> is a desaster as it's 99% ideology and 1% license text and alongside <a href="https://infosec.space/tags/AGPLv3" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>AGPLv3</span></a> completely ignores the reality of how <a href="https://infosec.space/tags/licensing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>licensing</span></a> and <a href="https://infosec.space/tags/patents" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>patents</span></a> and <a href="https://infosec.space/tags/IP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>IP</span></a> works.</p><ul><li>Not that I like the status-quo, but we'd rather see businesses steer clear of anything GPLv2+ or GPLv3 or worse.</li></ul><p>And on the flipside we basically get <em>"source available"</em> stuff like <a href="https://infosec.space/tags/SSPL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SSPL</span></a> which only serves as a means to commit <a href="https://infosec.space/tags/AssetDenial" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>AssetDenial</span></a> and monopolize commercial offerings...</p><ul><li>I think <a href="https://infosec.space/tags/Linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Linux</span></a> being <a href="https://infosec.space/tags/GPLv2only" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GPLv2only</span></a> is a good compromise and my personal gripes with <a href="https://infosec.space/tags/FSF" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FSF</span></a> &amp; <a href="https://infosec.space/tags/GNUtils" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GNUtils</span></a> as well as <a href="https://infosec.space/tags/GlibC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GlibC</span></a> are something different...</li></ul>
Kevin Karhan :verified:<p><span class="h-card" translate="no"><a href="https://kitsunes.club/@Jessica" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>Jessica</span></a></span> <span class="h-card" translate="no"><a href="https://mstdn.social/@BrodieOnLinux" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>BrodieOnLinux</span></a></span> +9001%</p><p>The reason I don't use <a href="https://infosec.space/tags/GlibC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GlibC</span></a> on <span class="h-card" translate="no"><a href="https://infosec.space/@OS1337" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>OS1337</span></a></span> is because it's <a href="https://infosec.space/@kkarhan/114175034719920644" rel="nofollow noopener" target="_blank">constantly breaking userspace</a>…</p>
NerdNextDoor :Blobhaj:<p>Making a <a href="https://mastodon.social/tags/Linux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Linux</span></a> <a href="https://mastodon.social/tags/Distro" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Distro</span></a> from the <a href="https://mastodon.social/tags/LFN" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LFN</span></a> guide by MapleCircuit. (Great guy, search up the series <a href="https://mastodon.social/tags/LinuxfromNothing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LinuxfromNothing</span></a> and go follow him!!!)</p><p>I’m using <a href="https://mastodon.social/tags/Musl" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Musl</span></a> instead of <a href="https://mastodon.social/tags/Glibc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Glibc</span></a> for funsies.</p><p>I’m <a href="https://mastodon.social/tags/Nerdy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Nerdy</span></a> as shit, and that’s pretty cool.</p><p><a href="https://mastodon.social/tags/Tech" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Tech</span></a> <a href="https://mastodon.social/tags/Technology" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Technology</span></a> <a href="https://mastodon.social/tags/Nerd" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Nerd</span></a></p>