From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id 2DduO+U/cl/BNAAA0tVLHw (envelope-from ) for ; Mon, 28 Sep 2020 19:56:21 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id 8BsNN+U/cl/7IQAAB5/wlQ (envelope-from ) for ; Mon, 28 Sep 2020 19:56:21 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id B49859402B4 for ; Mon, 28 Sep 2020 19:56:21 +0000 (UTC) Received: from localhost ([::1]:49882 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kMzG0-0002yp-LW for larch@yhetil.org; Mon, 28 Sep 2020 15:56:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33736) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kMzFq-0002yK-Rn for guix-devel@gnu.org; Mon, 28 Sep 2020 15:56:10 -0400 Received: from world.peace.net ([64.112.178.59]:50812) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kMzFp-0005SV-11 for guix-devel@gnu.org; Mon, 28 Sep 2020 15:56:10 -0400 Received: from mhw by world.peace.net with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kMzFl-00064B-Ca; Mon, 28 Sep 2020 15:56:05 -0400 From: Mark H Weaver To: zimoun Subject: Re: emacs-lucid (was Re: Emacs closure at ~900MB?) In-Reply-To: References: <86wo0mnjs3.fsf@gmail.com> <87d02e3v61.fsf@ambrevar.xyz> <87k0wjt774.fsf@roquette.i-did-not-set--mail-host-address--so-tickle-me> <87h7rk8pmz.fsf@netris.org> Date: Mon, 28 Sep 2020 15:54:44 -0400 Message-ID: <87r1qlhe1s.fsf@netris.org> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=64.112.178.59; envelope-from=mhw@netris.org; helo=world.peace.net X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/28 15:56:07 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Guix Devel Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Spam-Score: -1.01 X-TUID: 8hnfyYYz/L4T zimoun 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