zimoun <zimon.touto...@gmail.com> writes:

> However, I am still confused that the GNU Emacs package with default
> options (--with-modules, --with-cairo, --disable-build-details)
> depends on LLVM via GTK+ and Mesa; and not on only GNU tools.

LLVM is an optional input for Mesa which enables the Gallium 'llvmpipe'
driver, a fast software rasterizer that uses LLVM to do runtime code
generation.

  https://docs.mesa3d.org/gallium/drivers/llvmpipe.html

Among other things, this allows use of the GNOME Shell on systems
without hardware support for 3D graphics.

GTK depends on Mesa.

> Is it possible to build Emacs with Gtk compiled without LLVM?

When LLVM was first added to Mesa's inputs in Guix, I reverted that
commit on my private branch for a year or two, to avoid building LLVM.
This saved me disk space and compile time, since I don't use substitutes
and therefore build everything from source anyway.  For those who use
substitutes, this change would be more costly.  I eventually gave up on
this since I now need LLVM for IceCat anyway.

Alternatively, for those who do not wish to maintain their own private
branch, here's a hybrid approach that might be workable: add a local
variant of 'mesa' with 'llvm' removed from 'inputs' (and "-Dllvm=true"
removed from the configure flags), then add a local variant of 'gtk+'
that uses your local 'mesa', and finally add a local variant of 'emacs'
that uses your local 'gtk+'.  I guess those last two steps could be
replaced by deep package rewrites, although I've never used that
functionality since I prefer the more flexible "private git branch"
approach to customizing Guix to my preferences.

      Mark

Reply via email to