So, recently i've decided to give musl libc a try. I installed Gentoo Hardened Musl, and here's what i saw.. First off, worth mentioning, that musl is focused on following the standards, unlike glibc. Well, the first problem is Xorg server, it uses glibc's lazy bindings, which are basically "let's just assume that all undefined symbols will be resolved at runtime", so on musl you need to load all plugins before Xorg tries to load your display driver (i915 for me).

Section "Module"
    Load "exa"
    Load "wfb"

    Load "dri"
    Load "dri2"
    Load "glx"
    
    Load "int10"
    Load "vbe"
    Load "fb"
    Load "shadowfb"
    Load "shadow"
    Load "vgahw"
    Load "evdev"
    Load "fbdevhw"
EndSection
(Taken from Sabotage linux github)

After installation of xorg, everything seemed to be pretty nice, until i tried to build telegram desktop, which i use pretty often. So, there is no official gentoo ebuild for telegram desktop and i cannot use binary version, because all pre-compiled linux binaries are 100% glibc. I added reagentoo overlay via layman and started compiling everything. And google breakpad did not want to. It uses some glibc-specific headers. There actually is a patch to fix that, but it never made it's way upstream and thus cannot be applied to breakpad, because it conflicts with the current code. Moreover, breakpad's dependencies also seem to be glibc oriented.. So i decided to disable telegram crash reporting, by defining this macro. I then copied ebuild to local overlay and removed google breakpad from denendencies, it built successfully and i was able to use telegram!

Next one was firefox, there is not much to say, it builds, but fails to pre-compile JS and just hangs, eating all 12 gigs of ram, leaving me with ~500M.

Because of that, i decied to leave musl for now and try something simpler, and this simpler is Void linux actually NixOS, but let's leave it for another post