From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id mDLdDHkmOWFGLAAAgWs5BA (envelope-from ) for ; Wed, 08 Sep 2021 23:09:13 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id kB7BCHkmOWGwBQAAB5/wlQ (envelope-from ) for ; Wed, 08 Sep 2021 21:09:13 +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 B5D652F100 for ; Wed, 8 Sep 2021 23:09:12 +0200 (CEST) Received: from localhost ([::1]:53104 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mO4oh-0007q6-Qg for larch@yhetil.org; Wed, 08 Sep 2021 17:09:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45170) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mO4oL-0007pt-6g for guix-devel@gnu.org; Wed, 08 Sep 2021 17:08:49 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:33746) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mO4oJ-0007jJ-RF; Wed, 08 Sep 2021 17:08:47 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=35426 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mO4oJ-0007Io-FJ; Wed, 08 Sep 2021 17:08:47 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Sarah Morgensen Subject: Re: gcc: build all languages at once? References: <86czpt1pe6.fsf@mgsn.dev> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 22 Fructidor an 229 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 08 Sep 2021 23:08:44 +0200 In-Reply-To: <86czpt1pe6.fsf@mgsn.dev> (Sarah Morgensen's message of "Tue, 31 Aug 2021 10:43:13 -0700") Message-ID: <87r1dyzsf7.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable 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@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1631135352; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=MJJ3uDTX/Nh7ynAg7gKGKyK1rrP/GKHIfj5GvVelgbs=; b=aymZnnoh7z7zlO4Hf3/YhtKtWopNKUAcoZudSSTTHVu9yjJ0+4nfri/xrfndBU6vxZ9GRR kEdBq3ofVBIqw74XMGTQDWBW+AQewdTuPuUAEm+/OVSvzWxu3aoon4aEmp/vCNpBIhbL/e Hpabp34tEhjpDZsX+noS8XGrxyeLbqyBVRGZ/zJ2BdpgOIln9u47mw5ixP5ZtqLiR2idoZ XySFc/xqzAX1Nk3mZfEJPbvoPcBcv3iFmyJvM/gaiBWCg22XtJHcEvMlonVdozfITOWUlb Nv3LLgVQx0zRIyOQwZSvtoXvuEmIWjtuXVztRjsW+mbyWBqeNq162ycVzKjbMQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1631135352; a=rsa-sha256; cv=none; b=c9kRpwULMJRhQu9HoNhI1nM0jpP/depIx1CATka/TZAiKWqxvVnbLa7KGf8rQilQVlCT4Y b55R5REAWXmXzF3cSGyNZE3AfU2bAa5T90DpANHAYQoINeCpcPsstZq+b2cDP0wN1+w8QK H9SfLrwzTh2NJQHe/ECnu0kQXK7zHpasK0RpfbRgCGUF7EJUEECzJqQyLKH/Cu/YaB9Wm0 iiO9e2jRZRfXkG4Z+dvpzgGnIrl3y4NbJf2H4fFaJ6lhUGP4nAYn2LybYtrXt1WIe3g66J +UVJ/BsDgZtJvJoOnBg2WeXq3QxFS05yDAZ6mkg5NY75dVnSst0pjES+o9y/Wg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; 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-Migadu-Spam-Score: -1.91 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; 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-Migadu-Queue-Id: B5D652F100 X-Spam-Score: -1.91 X-Migadu-Scanner: scn1.migadu.com X-TUID: +r+lHAhce99Q Hi Sarah, Sarah Morgensen skribis: > I notice that out of GCC's supported languages (ada, c, c++, d, fortran, > go, jit, lto, objc, obj-c++) we currently build all except ada, and five > of them (d, fortran, go, objc, and obj-c++) are built separately. Most > of GCC's build time is spent bootstrapping and building the actual > compiler, rather than building the frontends, so we would save a lot of > build time by building them all together. Yes, but at the expense of the build time of the main GCC package and of its size. > We could also possibly reuse the 'core' parts of GCC between language > frontends, saving some space. (This is what distros seem to do.) That=E2=80=99d be ideal, but I=E2=80=99m not sure it=E2=80=99s feasible. I= t=E2=80=99s feasible for FHS distros that =E2=80=9Cjust=E2=80=9D need to shuffle files around in various= binary packages, but here we=E2=80=99d have to have several outputs or something, = and most likely they=E2=80=99d refer to one another. > If we do this, I'm not sure whether it would be better to have each > additional language as an output for gcc, or as a separate package. > > Currently, the only build-time difference between our GCC packages is > that our package for 'jit' uses '--enable-host-shared', which > "[specifies] that the host code should be built into > position-independent machine code (with -fPIC), allowing it to be used > within shared libraries, but yielding a slightly slower compiler" [0]. > I don't think it would be too big of a hit to just turn that on > unconditionally, but we could also keep 'jit' as a separately-built > package. Yeah, dunno. > What do you all think? There=E2=80=99s definitely room for improvement in this area, but it=E2=80= =99s not clear to me what can be done within the constraints that we have, in particular the closure size of gcc (gcc:lib in particular) and having a reasonably small set of dependencies for =E2=80=98gcc-final=E2=80=99. I su= ppose experimentation could tell us which approach to follow! Thanks, Ludo=E2=80=99.