On Wed, Jun 21, 2023 at 05:19:18PM +0700, Ammar Faizi wrote: > On Wed, Jun 21, 2023 at 12:04:47PM +0200, Stefan Hajnoczi wrote: > > I don't know which features require the toolchain and libc to cooperate. > > I guess Thread Local Storage won't work and helper functions that > > compilers emit (like the memset example that Alviro gave). > > Yeah, thread local storage won't work. But the point of my question is > about liburing. So I expect the answer that's relevant to liburing. > > I mean, you can still use libc and TLS in your app even though the > liburing.so and liburing.a are nolibc. > > > Disabling hardening because it requires work to support it in a nolibc > > world seems dubious to me. I don't think it's a good idea for io_uring > > to lower security because that hurts its image and reduces adoption. > > Especially right now, when the security of io_uring is being scrutinized > > (https://security.googleblog.com/2023/06/learnings-from-kctf-vrps-42-linux.html). > > > > While I'm sharing these opinions with you, I understand that some people > > want nolibc and are fine with disabling the stack protector. The main > > thing I would like is for liburing to compile or fail with a clear error > > message instead of breaking somewhere during the build. > > Right, my mistake. I think it's fixed in upstream by commit: > > 319f4be8bd049055c333185928758d0fb445fc43 ("build: Disable stack protector unconditionally") > > Please give it a whirl. I apologize for breaking the Fedora build. No need to apologize! Thanks for taking a look. I ran an rpmbuild with liburing.git/master and it succeeds now. Stefan