• glibg10b@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    I’ve found a good compromise between the two. I’ve disabled most of the desktop profile USE flags and I compile everything with -Ofast and LTO

    Portage errors are uncommon, and build failures are easily fixed by disabling compilation flags from package.env. Build failures get less and less common as package.env grows (it’s currently at about 20 lines)

    As for the kernel, I just started with a distribution kernel, disabled all modules and only enabled the ones that I need (this can automatically be done with make localmodconfig). These modules are built-in (so lsmod usually returns nothing)

    I chose systemd because of the huge increase in boot speed

    • boonhet@lemm.ee
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      1 year ago

      Compiling everything with LTO landed me in a situation where a bunch of packages fail to build because apparently having some LTO’d static libraries can cause issues.

      I’m now going to start investigating where exactly the issue is. Trouble is, the package that was giving me errors, depended on a whole lot of static libraries, soooooo… Good luck to me.

      Being an ultra-madlad, I used to also -ffast-math everything that didn’t fail, but because I didn’t know about package.env yet, I found it easier to just keep it off rather than turning it off and on again every time I needed to emerge something that failed because of it.

      • glibg10b@lemmy.ml
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        1 year ago

        apparently having some LTO’d static libraries can cause issues

        Yeah, I think I’ve had that problem once or twice. I think I found the culprits by disabling all build flags for libraries that seemed related, rebuilding them, running emerge @preserved-rebuild and then repeating the process to narrow it down

        dmesg and PFL help with diagnosing crashes due to libraries, but I’m not sure if static libraries show up in dmesg’s output

        If it helps, here’s my package.env:

        # Build failures
        app-emulation/wine-vanilla noflto O3
        sys-apps/groff O3
        dev-lang/rust noflto
        dev-lang/python O3
        sys-auth/polkit O3
        sys-libs/libomp noflto
        sys-libs/compiler-rt noflto
        net-libs/nodejs O3
        dev-lang/duktape O3
        x11-drivers/xf86-video-intel noflto
        
        # Runtime failures
        gnome-extra/cjs noflto O3
        sys-devel/llvm noflto