GNU bug report logs - #45756
Prepending '+' to the recipe line when linking with GCC's -flto=jobserver

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: automake; Reported by: "R. Diez" <rdiezmail-temp2@HIDDEN>; Keywords: help confirmed; dated Sun, 10 Jan 2021 06:27:02 UTC; Maintainer for automake is bug-automake@HIDDEN.
Added tag(s) confirmed and help. Request was from Karl Berry <karl@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 45756 <at> debbugs.gnu.org:


Received: (at 45756) by debbugs.gnu.org; 6 Feb 2021 22:37:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 06 17:37:37 2021
Received: from localhost ([127.0.0.1]:46599 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1l8WCv-0001Pn-Ih
	for submit <at> debbugs.gnu.org; Sat, 06 Feb 2021 17:37:37 -0500
Received: from freefriends.org ([96.88.95.60]:49240)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <karl@HIDDEN>) id 1l8WCt-0001PZ-W6
 for 45756 <at> debbugs.gnu.org; Sat, 06 Feb 2021 17:37:36 -0500
X-Envelope-From: karl@HIDDEN
Received: from freefriends.org (freefriends.org [96.88.95.60])
 by freefriends.org (8.14.7/8.14.7) with ESMTP id 116MbYTX018726
 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); 
 Sat, 6 Feb 2021 15:37:35 -0700
Received: (from apache@localhost)
 by freefriends.org (8.14.7/8.14.7/Submit) id 116MbXul018725;
 Sat, 6 Feb 2021 15:37:33 -0700
Date: Sat, 6 Feb 2021 15:37:33 -0700
Message-Id: <202102062237.116MbXul018725@HIDDEN>
From: Karl Berry <karl@HIDDEN>
To: nbowler@HIDDEN, automake@HIDDEN, 45756 <at> debbugs.gnu.org
Subject: Re: bug#45756: Prepending '+' to the recipe line when linking with
 GCC's -flto=jobserver
In-Reply-To: <CADyTPEwuCvDCj7-Tjgctt=VvQnRK6TQkKwHv9acCvnA1YoGP3A@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 45756
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hi Nick - thanks for the reply on this. It all sounds sensible.

    Finally this issue could also probably be solved by changing GNU make
    itself: providing another mechanism to keep jobserver fds open in rules.

Clearly that would be great.

On the Automake side, I just don't have the desire to work on
this issue. I'm happy to apply a patch if you or anyone has a
reasonable improvement, but I'm not going to come up with it on my own,
unfortunately. --thanks, karl.




Information forwarded to bug-automake@HIDDEN:
bug#45756; Package automake. Full text available.

Message received at 45756 <at> debbugs.gnu.org:


Received: (at 45756) by debbugs.gnu.org; 4 Feb 2021 23:12:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 04 18:12:38 2021
Received: from localhost ([127.0.0.1]:42478 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1l7nng-0007g2-Mn
	for submit <at> debbugs.gnu.org; Thu, 04 Feb 2021 18:12:38 -0500
Received: from mail-yb1-f178.google.com ([209.85.219.178]:37905)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <nbowler@HIDDEN>) id 1l7nnc-0007fm-HB
 for 45756 <at> debbugs.gnu.org; Thu, 04 Feb 2021 18:12:36 -0500
Received: by mail-yb1-f178.google.com with SMTP id i6so4909953ybq.5
 for <45756 <at> debbugs.gnu.org>; Thu, 04 Feb 2021 15:12:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=draconx-ca.20150623.gappssmtp.com; s=20150623;
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :cc; bh=h6n7ZyJvvvt+foHTstcBgp/PgpjMQrYEKDWeS4NmQ44=;
 b=epEfzc3GCD4kXLOWe3b3vH0d86Iwd2G9l9tfbSL5YfJ/Ynkdr6QuoSMBDhN9x/SStd
 rmo2vhTOCPyLfT3lkf9LXt8DPimQGSAjTxFd1TZ8rBeRwC9YwicA0FrjHgoTIwsC3gh0
 Zzyp/1Jav4c8iaELxNdNgZD6J+Xz9pIddEDtDdT54y4xx5ol7+EG+u/mVnuyTIOpMqSG
 5Zz7d5AqhZxvMFt+3k6HT0b5POzSrSolcJuFLwKPoDvEWDLpbFiQyG6Fu4L2jr+ZXoze
 fM8/TEnmUXwEKNPvmqxwK7LWLMKcZx6ospaIX6B01XWwDCGlAEwDGREd+U2p0ekWIwz7
 T1og==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:in-reply-to:references:from:date
 :message-id:subject:to:cc;
 bh=h6n7ZyJvvvt+foHTstcBgp/PgpjMQrYEKDWeS4NmQ44=;
 b=B2T7kOyUcpWYFXN5mXMx/wnPiaCpv8oRIMx8yumv2KoZedFOJcBALFVnrfNx+PLycb
 /xGy847j+lPrhPfG7UOxkAmDDzGK2S7JvfK7JBKHSXxpmUTt8TPGRC6ap9con7Jtn8Tb
 iNAyIjcNwDtR1cuoN4J3T+93fhozVGmZDlRG5p9P2bH5Mhg44tjaOX8Id0++z7+UmQ1g
 uSgdyIWAWTU6EspifTFkoFK8rHHeiamRJRt28KDGA4ysIz3H6nxHPAn8IUtqG4q+FYhK
 Rb2KsL0uH2gwP9Li0roFenTTqNk/g+Mz/guK+fEhxmWXW2sm3qdtsXmJGO0PvfeRtGhZ
 OyGg==
X-Gm-Message-State: AOAM531Y5Fqlw/EdggrPUbxQBAS0ETpqzZyGHcbGVsQIfKzShjS08PiH
 k7iy4+C4HZ5HNroGN+TxwqKNZMF5pABkERUSaz089A==
X-Google-Smtp-Source: ABdhPJw40vNT8aAQxqDix5Tfx4hk35jIS4yy3SZNmyLavkpzaYJqi14i6vUy90KtBQBh0AhSuuxua786T7hF+JCMKko=
X-Received: by 2002:a25:3007:: with SMTP id w7mr2266189ybw.495.1612480346745; 
 Thu, 04 Feb 2021 15:12:26 -0800 (PST)
MIME-Version: 1.0
Received: by 2002:a25:b912:0:0:0:0:0 with HTTP;
 Thu, 4 Feb 2021 15:12:26 -0800 (PST)
X-Originating-IP: [24.53.240.163]
In-Reply-To: <c71b8e0b-ebd1-e74c-e1c9-bcdb1763d31b@HIDDEN>
References: <202101070206.10726GLY031505@HIDDEN>
 <c71b8e0b-ebd1-e74c-e1c9-bcdb1763d31b@HIDDEN>
From: Nick Bowler <nbowler@HIDDEN>
Date: Thu, 4 Feb 2021 18:12:26 -0500
Message-ID: <CADyTPEwuCvDCj7-Tjgctt=VvQnRK6TQkKwHv9acCvnA1YoGP3A@HIDDEN>
Subject: Re: bug#45756: Prepending '+' to the recipe line when linking with
 GCC's -flto=jobserver
To: "R. Diez" <rdiezmail-temp2@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 45756
Cc: 45756 <at> debbugs.gnu.org, automake@HIDDEN, Karl Berry <karl@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

On 2021-01-09, R. Diez <rdiezmail-temp2@HIDDEN> wrote:
> [Resending in hopes it will attach to the new bug. --karl]
>
>> [...]
>> At any rate, it would be extremely helpful to have a minimal-as-possible
>> runnable (automake-able) example showing the case where the + needs to
>> be prepended. rdiez, can you create such a mini-project?
>  > [...]
>
> I normally use Autoconf, and I do not understand very much the separation
> between Autoconf and Automake. I do not know who is responsible for the
> generation of the makefile rules to link the executable. Either Autoconf or
> Automake must decide that GCC is not just used for compiling each object
> file, but also for linking, and that rule is not visible in the makefile.am
> file.
>
> Of course, such a linking rule does not user $(MAKE), and there is no '+'
> prefix, so the GNU Make jobserver file descriptors will not be passed to
> child processes. This is documented in the GNU Make manual.
>
> You do not need any special demo project for this. Just take any existing
> Automake project written in C or C++, and use these compilation flags in
> configure.ac :
>
> AM_CFLAGS="-flto=jobserver"
> AM_CXXFLAGS="-flto=jobserver"
>
> If you run the makefile with "make -j 2", GCC will receive environment
> variable MAKEFLAGS with a setting like "--jobserver-fds=xxx", but GNU Make
> will
> close the file descriptors mentioned there before executing the rule and
> running GCC. This issue is not visible in GCC yet due to this bug I
> reported:
>
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94330
>
> I am not sure how I can demonstrate this in a project, there is not actually
> much to demonstrate.
>
> This is not just an issue while linking. Like I said, any stage, including
> compilation of a single object file, could use the GNU Make jobs server. So
> there should be a global option in Autoconf or Automake to prepend a '+' to
> all generated rules.

This issue has come up from time to time.  I think I wrote something on
it recently.  think everyone can agree that a solution to this problem
is desirable.

However simply prepending "+" to commands is not practical for Automake
to do because "+" has way more effects than just keeping the jobserver
fds open.  In particular, it will completely break "make -n".

A configure option to allow the user to enable this (rather than an
automake option) would probably be a simple and acceptable way to
get things at leas working, even if it's not an "ideal" solution.

Another possibility is for a "+"-prefixed command to check MAKEFLAGS
to see if options like -n that suppress command execution were used
(Automake already has to do this sort of thing in some rules).

Since I believe the jobserver feature is exclusive to GNU make, I
imagine it would also be possible to make use of GNU make substitution
features to only add the "+" when make options that suppress command
execution are omitted.  This could probably be done in a manner that is
interoperable with other make implementations and would likely perform
better than shell tests inside commands.

Finally this issue could also probably be solved by changing GNU make
itself: providing another mechanism to keep jobserver fds open in rules.

Cheers,
  Nick




Information forwarded to bug-automake@HIDDEN:
bug#45756; Package automake. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 4 Feb 2021 02:10:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 03 21:10:03 2021
Received: from localhost ([127.0.0.1]:39300 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1l7U5r-0005h4-7t
	for submit <at> debbugs.gnu.org; Wed, 03 Feb 2021 21:10:03 -0500
Received: from lists.gnu.org ([209.51.188.17]:38570)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <karl@HIDDEN>) id 1l7U5q-0005gv-86
 for submit <at> debbugs.gnu.org; Wed, 03 Feb 2021 21:10:02 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:49310)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <karl@HIDDEN>)
 id 1l7U5q-00010D-1F
 for bug-automake@HIDDEN; Wed, 03 Feb 2021 21:10:02 -0500
Received: from freefriends.org ([96.88.95.60]:43968)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <karl@HIDDEN>)
 id 1l7U5h-0002dy-Oa
 for bug-automake@HIDDEN; Wed, 03 Feb 2021 21:10:00 -0500
Received: from freefriends.org (freefriends.org [96.88.95.60])
 by freefriends.org (8.14.7/8.14.7) with ESMTP id 11429lR8008352
 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <bug-automake@HIDDEN>; Wed, 3 Feb 2021 19:09:48 -0700
Received: (from apache@localhost)
 by freefriends.org (8.14.7/8.14.7/Submit) id 11429lhi008351;
 Wed, 3 Feb 2021 19:09:47 -0700
Resent-Date: Wed, 3 Feb 2021 19:09:47 -0700
Resent-From: Karl Berry <karl@HIDDEN>
Resent-Message-Id: <202102040209.11429lhi008351@HIDDEN>
Resent-To: bug-automake@HIDDEN
X-Envelope-From: ruben10post@HIDDEN
X-Envelope-To: <karl@HIDDEN>
X-YMail-OSG: evvcDo8VM1kxGA6BC4az9xgq4OoxmWwQ5HL2laixLmixVP7tLr3ELcjEcrKOEsG
 MNfm_xQXRdxUxVGBdnKhLhyDGOMwc2Lq3eGWaQ7BN0k7yZArBLmuncnRDaXclemjnTDlPGJP3as6
 a8gJZs5m7mbtLXJndCAFP3Sguf.ExcSqSdgBMfu.EwKGvkQoBE04cLbxeC7SmWrtPzWt6RNLZYNX
 NFmCk.U_qUBpt9qRYue4v3YX_u4E0etoUBYYv3xGnTZklBrrXRbZX_PUu1RGTMa.yxRMHpaxftS4
 1WxGqWkpDeUReTn9RYEPmJt6UUBeoNfT_ATS1I9MEp7pr69_11.TSdZ0yJ64iEhfqwJzGNLn0Fuq
 Oaw3dLNv8ovXIIDV00wo7n.8E8ktdKk0wLtahDzWDV8Cv8WMujexujGaflFoNSeIRWKpTxHfA_He
 ZgcAt7v0R4_ofVrZlTWRIwcfuTeunvl2vV4kUzJYNJOu6LMHe6W_YgLgdP_rFsIkcpIZ4VzNuZhE
 T2t.LXMqkqln6Yy.n5Blf8Wy8To3ogikRCVFazi05g1.kI7TTkahdoxgXjdGJE7nQOs_sGxlIfoj
 FgedZ1u6v6o59IItx_9fwfn31nH.QtNEFwVt2bH9bQtdUJChKyv282pLLIVXyDw0A2e.G_f8ce41
 4C0DHBKGijLjVLgfSuong6dNLThkiKxJTgBMNHP_vpTvu7euMwg4N9MSIb69yrmfdmOm4Q3wx29e
 nQkgz9crC1_fKYcc6huPPAU92svVKq2kbI660bplu0lcChppvw9fzeIZqAhcDBwBqaCUe2TZqhka
 _p3utFb7ozJMsv7KlltnBrGugssoBfswg_hor31N7hAkQnf9gdAgtaHxs1KNCesA6nZ.zSmZmsUs
 U1FEZnAae2YSn.gRTli0myMCWZdToNa9Krp.Ihz5.nbPckP3bcLv8FWK9fMHwfnKzXBLUEu0IECT
 ESW310jGNyv_bt7x.q4XIHdAe3zhTDMZaAwR4PQ2kTxTDDZdhZdEC30MiwO8commys6lbG85Q2wy
 3o9Ou8oQGLXXTvFmKW7DJ0M78vG.w5YrH5ZztmeFr.4en1YUzM1P2Yn1L_zo_aIoDUjCsUcXAi9i
 z.x90__U4EmyAKuqSBSvP4KdtMe8L4b5hbgP9cyOZUdhSc2ITYe7PtOXCjzI6MiH.R4oicJFZPJu
 01U3kvvrX8p9S2RR3C1LjlD6wQrYXsaIAcILauZkMLISdFM0jC8oySu5itsCmuTZoB2rE80GddLx
 C5aFrDcbYBLiGqubL1YbFKediWx8M_Dc9iFvJaf0zYuinnDRffDy.M7_pzB5cP3b0vc.IabAH.FH
 65AMdQn2PNujEctXMbev8qTFs6i6.y8pOflVlNxvEreQKNbgh_QLnR7Dnnk.aQ0UBPBvVyA4JLo7
 hco2xpy8qB3LKrjBWJOwLYu3lPgRz5sTDcpEzYNOm5dGHBtDShlA1VpTh0zEEE6yP_qfNambhkQ7
 C48LjW_pP.mRTS3Z4dZw5fE_61in5TWo0dTLbGnVPoq8wypTm4VRfWH.t2nKsrZ.G_LBjMdkuTV3
 8rRfwfsuiCEk..8VQmG5VBsgmn8jGyycFixz6vS__zTjhUEyu8Rhf6kJ7GTr_j.xJZfeNaSRAafx
 WCb4Ujecl.uFYixiqSMviI0aF0sqZui4JnqXQQXHrhRl_Hk4j88ZFvX6_ywU1h5r4p1LDNL1Uuao
 eocO4AQRCZbS5PjTzYi2e30jGH57p8yP6lF8_XfLCwVzXiSBp.DEU9azok9IJD5531uSPcpO2Fub
 VD2t8posIlKrhDgShi2moWUCqEUNjfuM8Z7ABFSBDYNCHmJYFeM8C9VqF4wnYphhIS.beoNoNRn7
 Rve4v4er5ZjfoSD8UdA0gh_4hpAOc9mnl2RrknfH9SE1G4UtaD3lnRPA.23JezYVmlinbvEzszFC
 0E5a1BrSWBjRKHFuQtHXbtQqa6S0aC4QiJUo.pqRvqaMZ80_LbbeDS.i0lYu.21jWkyRJB1CNdSE
 r9wcrJ6GXcvDhoVeSW3vnnzrGW8ncV1c92mfWU75v6soi33RxSSGSzGWKrN.8.SuHa5kxQThQ2LO
 s9JMUEKISlS5yfOF0wZpdeEFVTwU4TmX0Ok5rhkRZDxLPd1uzfXimG2pFZ4Zk6pjlFh_0.ZIYwco
 PL.AGphMBVDBxgSHU9LqcPrXVLpSpFQLNNzj3MLKB.2yol72KZCzMoG9Gm7AkgBXvrQq8papbDOA
 5WMhbnU7PLK445BQ2vRYzwEbAKSp68raRkOSq4n1ga2LIwRQmlYNeBV5qOjwjmdmFFvU6SP8x5WR
 9BDuQ86EVtsK7lSdg9Gz2_bsRKVt85dlehOjRU2Ih5P.MQ9tX0Kyq9EZDhgWjP6uAYVAnkgZAwRy
 k2bPoVjiBndsEaDK4x7LfxJ3YUFn.2.rRo0MtRn6QWhmB5UnkwEQuHn.q1fxEMDa0c.B1.GcxZKe
 yQXnsovqogVj1ObI_RXL_iCcuFZrSFXtj43gRF3YLc7J567QGqKulYibUbi301fZyPsSbVHExHie
 1SekOoH4-
References: <202101070206.10726GLY031505@HIDDEN>
Message-ID: <c71b8e0b-ebd1-e74c-e1c9-bcdb1763d31b@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <202101070206.10726GLY031505@HIDDEN>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-GB
X-Mailer: WebService/1.1.17501
 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo
 Apache-HttpAsyncClient/4.1.4 (Java/11.0.8)
Content-Transfer-Encoding: 7bit
Date: Sat, 9 Jan 2021 18:30:02 +0100
From: "R. Diez" <rdiezmail-temp2@HIDDEN>
To: Karl Berry <karl@HIDDEN>
Subject: bug#45756: Prepending '+' to the recipe line when linking with GCC's
 -flto=jobserver
Received-SPF: pass client-ip=96.88.95.60; envelope-from=karl@HIDDEN;
 helo=freefriends.org
X-Spam_score_int: -30
X-Spam_score: -3.1
X-Spam_bar: ---
X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001,
 HEADER_FROM_DIFFERENT_DOMAINS=0.249, NML_ADSP_CUSTOM_MED=0.9,
 RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.1 (-)
X-Debbugs-Envelope-To: submit
Cc: automake@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.1 (--)

[Resending in hopes it will attach to the new bug. --karl]

> [...]
> At any rate, it would be extremely helpful to have a minimal-as-possible
> runnable (automake-able) example showing the case where the + needs to
> be prepended. rdiez, can you create such a mini-project?
 > [...]

I normally use Autoconf, and I do not understand very much the separation between Autoconf and Automake. I do not know who is responsible for the 
generation of the makefile rules to link the executable. Either Autoconf or Automake must decide that GCC is not just used for compiling each object 
file, but also for linking, and that rule is not visible in the makefile.am file.

Of course, such a linking rule does not user $(MAKE), and there is no '+' prefix, so the GNU Make jobserver file descriptors will not be passed to 
child processes. This is documented in the GNU Make manual.

You do not need any special demo project for this. Just take any existing Automake project written in C or C++, and use these compilation flags in 
configure.ac :

AM_CFLAGS="-flto=jobserver"
AM_CXXFLAGS="-flto=jobserver"

If you run the makefile with "make -j 2", GCC will receive environment variable MAKEFLAGS with a setting like "--jobserver-fds=xxx", but GNU Make will 
close the file descriptors mentioned there before executing the rule and running GCC. This issue is not visible in GCC yet due to this bug I reported:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94330

I am not sure how I can demonstrate this in a project, there is not actually much to demonstrate.

This is not just an issue while linking. Like I said, any stage, including compilation of a single object file, could use the GNU Make jobs server. So 
there should be a global option in Autoconf or Automake to prepend a '+' to all generated rules.

In fact, you would have thought that this should be the default, because any tool, at any stage, could decide in the future to go multithread, and 
there is no reason to ignore an existing GNU Make job server to limit the overall system load.

Regards,
   rdiez




Information forwarded to bug-automake@HIDDEN:
bug#45756; Package automake. Full text available.
bug reassigned from package 'debbugs.gnu.org' to 'automake'. Request was from Karl Berry <karl@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 45756 <at> debbugs.gnu.org:


Received: (at 45756) by debbugs.gnu.org; 13 Jan 2021 12:15:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 13 07:15:17 2021
Received: from localhost ([127.0.0.1]:34578 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1kzf3V-0005G7-JP
	for submit <at> debbugs.gnu.org; Wed, 13 Jan 2021 07:15:17 -0500
Received: from sonic309-24.consmr.mail.ir2.yahoo.com ([77.238.179.82]:42202)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ruben10post@HIDDEN>) id 1kzf3S-0005Fg-Qs
 for 45756 <at> debbugs.gnu.org; Wed, 13 Jan 2021 07:15:16 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048;
 t=1610540108; bh=1/DAwYRjQ3Vl+rHIwFJ/7OsOGZP2wtMB3WOla+UHFTw=;
 h=To:From:Subject:Date:References:From:Subject:Reply-To;
 b=dptsTDUOlFsRtobHjU2g/9abGZZ/lz+SstQCfc96zXRl9ezEoMwB3dtkDNvQPEVHLTV+PLHze35YLo6zveClkv+1oqjEk5BPXtY07Jez3rH7nkGysYLLZJmygCXBlyHoMrxLU5kHHiKRo24+xsrr5KGw86U+pBld1cA8ikARg9D8R2LVMUyDLkVs1GYaROZGG5pbieyuKcaFjFwHaGQ7QDLQg1J5xuya5g2btrnn5HDhjCv05k5VDt20COthu8UaRWGbGu47ziN46596kMK9AMS1p8WO6aLL1BzuJYCRGB9qUyynvCp0fv9O1X0S5h3KoHpaYkKjHo5UtTtxJLfuhQ==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;
 t=1610540108; bh=xJ/ygAY3j6175MObIsEmdOE+iO+7rpeP4NRgTDcSsiM=;
 h=To:From:Subject:Date:From:Subject:Reply-To;
 b=aDcIuZvMb37sqiREUtGm0Vr9PKjxjLpb2iD+Tv8lmB8pAsCHhh0OGScOyjoNFFhd67hJhmCVNHXnWIO+C6dgjDKIKo7YSUt6Y5nWBmIMPh49o+HZ94ReUhuv+Mdng+tMR3TIvdt+vw+l5t5efvOCwN29dJ/aiDNn/EtiG67XWGmtsopAVWeOBFykwtGWGLF6BNqX3rV1T1Nk4pEk1dlGrlkeX9xXiRVXb/B2r/xjO3SMlHAq5QRe9YXmuxcS+NaYvltChmGQT5u1GcGUF3gt/x2JEXuPqv2H9wyGkZmr7o2BobtnPF6BRQc+ePmS+7wKD6qijBq3yIEdhw0koepnIg==
X-YMail-OSG: F4sdctsVM1n0qS4rx_nhM6fXF2wV19dFe.X.Jc4FMina7BI8ZMj7qkerKGKLyt0
 9ZHNh4yAw_E3CxFoAKJCu8CWPqP9cDOCRs7kCpUohI9CQ3_kvw0d5XRfamaTRU.jJif.nZf2hJY.
 OWxQb9x_KtRxkO.nqXRxMQ0iJjlwib4CTY9Wo42ZrGsqzaqFbnXAB7UMxLJ2nmdwRwesXX6imc03
 Fnwe6C5DvH9GrT7zjuskBLlp18rHfviLG2ux4BFWC2mjzWe6tY5MAYHNg7SUvtspGioVCaFaF8Nk
 0gJpgNbNlgslnj.LqXDBK8WP8hjBVetUyYf7RgaV5dQVyXwL4qbCZUmVx7ZUAAlEDIKP7ZxwRKDt
 4JV4g1cXS8rw1Zg41RqKk5aoI9dCSV.tzcs0HEYJyJfpqDMDLdpqtSVqujhTjGg6y6iKwhKWUWDO
 QK8mxt6ujcsvp.4Cyc1SvkEkEic4E59kkB_ogO1I2xVpgognx.Nu9RcCu6k.g5GxUP7v0N0gIRf8
 c4OU7UIO67epCNTO6qVH4JJM1.TscwCkSRpG1bMBlAzBAlB3HuiopAdIZwQkpAcVs5qQHlSeV57U
 YF6zcCQDav7kJGR1OAeHrxmWq.4QSgdgWjNBVWKftEVFDgFxSezIlugsavCWD3lncvttiaKbqRIw
 L0WkhKaozkyz5jcNPKuPU1z7ndoq6BIGcxvHLU0eEXc0G0syJzKPY5A.W1sCfMVmuwGv339cyGvj
 NgZtgev9ImXUfKvVdOH2MAQsc5EBqYvn5ZBM7nGWuqyyhEdd5KwReiGlgCc9opwfrC4ItHcuwU3q
 SXTFNyNa8OSMXyIiIb6gnPebbXUdeGEMMaf4UJuPzX9F4L164GzwyMvdxMk1ClcLXZcs_wd7VgT8
 xG4eLCNMR8Lbz3eibKB9LCuHckzr9q2P9nXg9JvsxAr5.SaXRkFosCHVsKE0hSc8MbLgOwkTP_HL
 Zc.Sqw5vH5MxunYQg1qlh671cNxJW5LU7khOwsvzyQD9K4S05MnOXwpeuHi2MU8qcC1FfRHPk1lt
 IT_hvEaVzgmNJVYvL.VjQ.f5Kem0bgIWQ9PGFYhVBObM2GPkcg8n7365cne6uZ1.lQxwcp0cMVpG
 aqELpC5hESdQl1E51Yf8HFh54iI9pXUOainB1iJDJ6Z6YaptMZJYXqkP78ov_iKXjz_WcCdi60FX
 2Vb6o.BkThQ4aTsWKhM3O9ro7EbTRNb5xU8QKLM8ylgDqGb8.gDwrnaCuDQeBZ8nNcLcdXRCS74z
 g4G2KhJ9ufkSGgdY..IkVMiI9wKFQa1cZ_RU2YtZvioVavfvQzRyaOpdsFX8HSJILT1hizz4t8AA
 _5FVRNHvwZGPVSfVccpkHWo9zcmrTUiuItK2n452GjRASqQ370lgJpxnOhSx9WqJvkSB4DBC5OZb
 jitnnPXX9Rw9DSmQLttQ0Mo632Dq8NJyr2TalsGhjq1tTpLe1CNVe7ZW6LeKDgjFaVBgc7rpcuUW
 WXJsrw2zewfIhjjkZybALcTzEzM87ReTBTqTA_fzppImvDLPkswQdONHzekIx7rrXukUeuN9t186
 e9jTTde5n6cvABaYTeipZMPKv0vz_fJfjqTEF19BTb_oObeDM0tW_B_.2C5pKKI17GPwNlP1p.mX
 .2x.tnR7YAbkW2Ec5s6QCu0m.UPExYABm5TqkUjsZtfx.ThxWQ5ifehQegypiK3t_.mfgvrbgX4H
 d2XWdmanD0Yjn4vMuV7PzEpRUtCIQDPvAMqP0c84p1szbHSfwtPqnE_IsMChRepFdEql9RKaCudB
 zL4esGAVgJhlUwjQRBvhhqHaUl4Z10IAKS5sMlxz1X134UvZ83jJ8ckOJGs4xiT.W6igb8xPMqFH
 JF1qHhC0hsxMLDRI_rkcpzAWSrqlYK0swRgwHSSZSI_L4zkMCP2IG3jgIE5qhcVn5cfb8Ro3aDHn
 tgantH7ZXnnkiUMPhUbznsfvgaLmqnJ_4oY6p4H46ZAEVh8gwc95IBr2tcrMT.mcUp8LlDHlsUWI
 A3rPKWz_VzSMkwfj.B0N69XzhG3tUWL296svPfdZKHgj5vNdtJUZ02JatM9aijvMDHBsBLmd0b0W
 i.mkTCGAFkb18W5smg1K77wKjuTQ7NLaxCuggFkPbAi_vVOh1NPMPwwvk9YYHAleiSkgTYywf3xo
 0J6KtgP7HVvW1MYHtp9acMUamc.r6rN2E5bL.nmrluEDgUvDvQ8narT0QtfB74IkbBgPHaxkZWF7
 7Ps6iJp.rNipNJgzR7MBp25fHOlm7BO1SbAjfZwOAJ6erCbyQ50QApjxvWNLXJP67pY8jWS3BPrT
 AEdrxhXTmNH6.isjmOyZ7AdwycAULPnGVaLckgYWV34jHqMct2XL5rd14azqBHu1ZbzRiSMKJNNB
 OJ5WYUXG4Ka75W8Xf6hZXsrVfpcVJ2moljvpi3nxsGzFC
Received: from sonic.gate.mail.ne1.yahoo.com by
 sonic309.consmr.mail.ir2.yahoo.com with HTTP; Wed, 13 Jan 2021 12:15:08 +0000
Received: by smtp404.mail.ir2.yahoo.com (VZM Hermes SMTP Server) with ESMTPA
 ID 9e28acbe8a5784852d3226920b0e8fc0; 
 Wed, 13 Jan 2021 12:15:05 +0000 (UTC)
To: 45756 <at> debbugs.gnu.org
From: "R. Diez" <rdiezmail-temp2@HIDDEN>
Subject: Always prepend '+' to the recipe line
Message-ID: <a3e8fe6d-9894-a84d-1ee3-13181db1ce59@HIDDEN>
Date: Wed, 13 Jan 2021 13:15:03 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-GB
Content-Transfer-Encoding: 7bit
References: <a3e8fe6d-9894-a84d-1ee3-13181db1ce59.ref@HIDDEN>
X-Mailer: WebService/1.1.17501
 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo
 Apache-HttpAsyncClient/4.1.4 (Java/11.0.8)
Content-Length: 822
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 45756
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is not just an issue while linking. Any stage, including compilation of a single object file, could use the GNU Make jobs server. So 
there should be a global option in Autoconf or Automake to prepend a '+' to all generated rules.

In fact, you would have thought that this should be the default, because any tool, at any stage, could decide in the future to go 
multithread, and there is no reason to ignore an existing GNU Make job server to limit the overall system load.

Beware that you cannot test this issue well with GCC at the moment, because GCC option -flto=jobserver will not issue any warning if the 
file descriptors are not available. I reported this a while ago, and it got fixed, but the target GCC version is 11, which has not been 
released yet:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94330




Information forwarded to help-debbugs@HIDDEN:
bug#45756; Package debbugs.gnu.org. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 10 Jan 2021 06:26:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 10 01:26:21 2021
Received: from localhost ([127.0.0.1]:53011 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1kyUB9-0005D4-4T
	for submit <at> debbugs.gnu.org; Sun, 10 Jan 2021 01:26:21 -0500
Received: from lists.gnu.org ([209.51.188.17]:44428)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <karl@HIDDEN>) id 1kyQ7O-0007G3-BR
 for submit <at> debbugs.gnu.org; Sat, 09 Jan 2021 21:06:13 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:33834)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <karl@HIDDEN>)
 id 1kyQ7O-0003gG-7T
 for bug-automake@HIDDEN; Sat, 09 Jan 2021 21:06:10 -0500
Received: from freefriends.org ([96.88.95.60]:57520)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <karl@HIDDEN>)
 id 1kyQ7K-0005An-0K
 for bug-automake@HIDDEN; Sat, 09 Jan 2021 21:06:08 -0500
Received: from freefriends.org (freefriends.org [96.88.95.60])
 by freefriends.org (8.14.7/8.14.7) with ESMTP id 10A262xB015647
 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); 
 Sat, 9 Jan 2021 19:06:03 -0700
Received: (from apache@localhost)
 by freefriends.org (8.14.7/8.14.7/Submit) id 10A262ar015642;
 Sat, 9 Jan 2021 19:06:02 -0700
Resent-Date: Sat, 9 Jan 2021 19:06:02 -0700
Resent-From: Karl Berry <karl@HIDDEN>
Resent-Message-Id: <202101100206.10A262ar015642@HIDDEN>
Resent-To: bug-automake@HIDDEN
X-Envelope-From: automake-bounces+karl=freefriends.org@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048;
 t=1582040827; bh=OK4gp11SSHp/8U8C0q0IfTddL8HZcpg2ZKMiLZ0jHkw=;
 h=To:From:Subject:Date:References:From:Subject;
 b=PT7QsSdHEnKfrtKee/+lpy89KSgpjDAi0+ODdgI9MsAIwSWt/Z9fC0aNtI/ymUBgWhvguC9JizZK+gR+cLAyflfbj0VMokw3uhlANZJW3WjZMiTdPii99mquCXPuSUL1IdcdTISCAvcYG6xHlKAMaK7bD4H1MFYW27tUCy/q7QdIMOh7YlNcxoszA9hAGoooxEnYm2exG3pX+hl/z9rnQpFVTvoB0I+3+UD79bBn9sjE6MdEgBarmKfTGe9v/sJqBLFpqgxfE7qdWeaJsGeOiGUOAmh3f5ulNDhrPMWGHH8lE9WJTHKPSHR6CjcZspg5PYnaqy0bb/f9nysThz0S2A==
X-YMail-OSG: rrBj1pwVM1lm2UULsFZXj06CeLMJYVgJs79bLcZ6EvQfYPq_ekkbUV6PS7EZgS0
 K3yjJTl3QAzD8cdIucsIvwutEBy676QXe7PeGpnFeajbEfGx1b1uQUEpknreDyDbKvqVZllcMlUO
 URngL829A9nwIvQ1sB0AKHg99adeDw3lMvvPPyfkdvNoK1CxpcuuvZQ2bLNVPLMrttpOuCgE9ODt
 1._r1G87CAE.8L_f7c1EubGpVafn0FhLqgZjzKmHEeXvMkRBez4Cumka5VGLHdF8_XfAGucDyKSO
 XoqI2mfdMj2ECNkKhtxyVAA8Z7zknqLB7wsZIRhvDCWv6tzOezrtcUpMEAQqYKW9vbx6lkaSH5ce
 gucXZ.roKTj8T_AL5LTpUaOsUno3lO9IkJ2V6ddCI0xiCjdFzph7.Q8GUdxKs37q9eOc00iymysI
 VkZIxM0_1sNGrLcXMIsYqn7q8_4hiqyAnz0aFD4n87OqdWfR7MZgh8ruaxPGjIrodCdmacuyKP4u
 C4gihqQ29LC_kxPTWtzN49G.Lu4Y2bipAbjFa2tlMFTqmBdMu1tDMebV..Ha3l34ZMjCjp86pIGm
 xvBHjypbwtZ51Mys5v90Pb1PPRxiAbgiTkMespLDmpZwbt5cBvLAkUcm8Nl.GjFrPJV44fKsYlXF
 6oHCVF5CJ2cBv34xwmJ5O.iHGMUJegKfpQsgFtCeW4ym6OMPG2.Sg9JG2VnS83GXCf6fg_4Lz3Yf
 j6jPpYnHF34yWdy76PwtzRSpRDEoNJnCUpBXmil4qp11jYqe0qWJo14UICGMBOzX41LPhFBxm3gz
 _fw_8lIwngjtqGewiMdgga2fC86QkLYkLPiaykfJCx5FljLaje.2Yb2fvdVWcmUUdywV0vs3PxPw
 AUiXG6pEYrYqJQLN3zOpZ6CvTwVsZS2lDdMv4lAtHXZj.bg33RrNHtr0aWHnK_jDTpTCJFKY1nTC
 LQd6DQM4DMTBjUsqJumX__AvwutkAyLyXSDtm_eu6iNm2FCnIHH_mcxqh4xbnkgDJLOWUC9a9T.l
 _Ao4VrZ.qJ841OQylqFypwrmi1z1O1U_WDR9a77JILOXWHEyfOfKo65oWJM8fc.9WbDt2MvlbSUr
 VJg4ya6caU7zHn5kG62tmGoC6g8vMz9GYCzHJOFS3dgJ0gytXxJQTL5H6f8uufm8wbVETXJtQR4t
 flpzUQPgQOr6kJ_QUQxvZh2.Iv5OFhcvuHlvIrcHfOij54aCQUXDCQnMQJnXJkmA7_AmVUp2Ui3P
 bKjnt03IbQtJ2wTDraIY.y0eGDMCIc_SLsKOBsMk0D6InqFesEUYeTeXbAVKNDwf74OrBywRemb_
 KdMA3Am_.YLQ8.SMzkpYge1mOvTTvlJY3jt6ZlL7hR60zkxVQiUidVY2urpACWEzXtu_JrCuenHK
 2GkCKAhPUCfHhWfAntp2tHRqxckNcSfT8Mbw-
Message-ID: <670366fc-a125-55cd-7908-c36087f54c3f@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.4.1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-GB
Content-Transfer-Encoding: 7bit
References: <670366fc-a125-55cd-7908-c36087f54c3f.ref@HIDDEN>
X-Mailer: WebService/1.1.15199 hermes Apache-HttpAsyncClient/4.1.4
 (Java/1.8.0_181)
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x
X-Received-From: 77.238.177.82
X-Mailman-Approved-At: Tue, 18 Feb 2020 11:05:31 -0500
X-BeenThere: automake@HIDDEN
X-Mailman-Version: 2.1.23
Precedence: list
Date: Tue, 18 Feb 2020 16:47:05 +0100
From: "R. Diez" <rdiezmail-temp2@HIDDEN>
To: automake@HIDDEN
Subject: Prepending '+' to the recipe line when linking with GCC's
 -flto=jobserver
Received-SPF: pass client-ip=96.88.95.60; envelope-from=karl@HIDDEN;
 helo=freefriends.org
X-Spam_score_int: -47
X-Spam_score: -4.8
X-Spam_bar: ----
X-Spam_report: (-4.8 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001,
 DKIM_INVALID=0.1, DKIM_SIGNED=0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25,
 MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -2.1 (--)
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Sun, 10 Jan 2021 01:26:13 -0500
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.1 (--)

[Resending to bug-automake for tracking. --karl]

Hi all:

I am developing firmware similar to this one:

https://github.com/rdiez/JtagDue

First, I am building a GCC 8.3.0 cross-compiler toolchain for ARM
Cortex-M4F on Ubuntu 18.04.4 LTS, and I am then using it to build some
embedded software with a cross-compiling Autoconf project.

GCC introduced some time ago option -flto=jobserver in order to use the
GNU Make jobserver when parallelising LTO builds.

I am actually building many such Autoconf projects from a top-level
makefile, so using the top-level jobserver prevents overloading the
system with too many parallel jobs. That is what the jobserver was
designed for.

When doing a recursive make, you need to place a '+' character at the
beginning of the recipe line in order to let GNU Make pass the jobserver
file descriptors to the child processes. Alternatively, if you reference
variable $(MAKE) inside the recipe like, you get the same
effect. Otherwise, GNU Make does not let child processes inherit those
file descriptors (or so I heard, probably with "close fd on exec").

In my top-level makefile, I added those '+' prefixes manually, so all
Autoconf-generated makefiles are building in parallel but using the
top-level jobserver.

The trouble is, invoking GCC in the linking phase with -flto=jobserver
is actually a similar "recursive make" situation: GCC needs to inherit
those jobserver file descriptors.

However, Autoconf/Automake does not generate that '+' prefix for the
linking recipe.

Is there a way to overcome this limitation?

This will probably become a general issue in the future, as each stage
could theoretically benefit from multi-core CPUs. See for example:

https://gcc.gnu.org/wiki/ParallelGcc

Thanks in advance,
   rdiez




Acknowledgement sent to "R. Diez" <rdiezmail-temp2@HIDDEN>:
New bug report received and forwarded. Copy sent to help-debbugs@HIDDEN. Full text available.
Report forwarded to help-debbugs@HIDDEN:
bug#45756; Package debbugs.gnu.org. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sat, 6 Feb 2021 22:45:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.