[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Unable to build git@7774cfed62 using make@033330e
From: |
Dario Gjorgjevski |
Subject: |
Re: Unable to build git@7774cfed62 using make@033330e |
Date: |
Mon, 8 Apr 2024 12:46:14 +0200 |
Thank you very much -- I had completely missed that commit.
I sent an email to the Git mailing list.
Best regards,
Dario
On Thu, Apr 4, 2024 at 8:24 PM Martin Dorey
<Martin.Dorey@hitachivantara.com> wrote:
>
> I'm afraid it's a bug in git's config.mak.uname. To point at one example, I
> think of many:
>
> https://github.com/git/git/blob/7774cfed62/config.mak.uname#L248
>
> ... starts with a tab but, this human is reasonably confident, from eg the
> indentation, that it's intended as Make syntax rather than shell script.
> "else" is common in shell script and in Gnu Make. When Make's parser sees
> one in a rule's "recipe", how's it to decide whether it's for the shell or
> for Make? According to the Make documentation, it's determined by whether
> the line starts with a tab. That's clear, simple and imo what someone new to
> the beast would guess but the implementation in Make wasn't previously
> rigorous.
>
> This came up recently in the Linux kernel build system, resulting in:
>
> https://github.com/torvalds/linux/commit/82175d1f9430d5a026e2231782d13da0bf57155c
>
> In finding that, I see that poor Yamada-san caught an earful:
>
> https://www.spinics.net/lists/linux-kbuild/msg39477.html
> https://www.spinics.net/lists/linux-kbuild/msg39482.html
>
> I fear we should have led with the "else" explanation, as I did above. The
> Make check-in:
>
> https://git.savannah.gnu.org/cgit/make.git/commit/?id=07fcee35f058a876447c8a021f9eb1943f902534
>
> ... mentions "SV 64815" and its patch mentions "SV 64085", neither of which
> were right:
>
> https://savannah.gnu.org/bugs/?64815: gxditview renders '\-' as '-' (a short
> line segment like a hyphen)
> https://savannah.gnu.org/bugs/?64085: -e passed to shell in POSIX mode with
> -i or .IGNORE
>
> The intended Make bug was:
>
> https://savannah.gnu.org/bugs/?64185: *** only one 'else' per conditional.
> Stop. due to else in recipe
>
> ________________________________
> From: bug-make-bounces+martin.dorey=hds.com@gnu.org
> <bug-make-bounces+martin.dorey=hds.com@gnu.org> on behalf of Dario
> Gjorgjevski <dario.gjorgjevski@gmail.com>
> Sent: Thursday, April 4, 2024 06:41
> To: bug-make@gnu.org <bug-make@gnu.org>
> Subject: Unable to build git@7774cfed62 using make@033330e
>
> ***** EXTERNAL EMAIL *****
>
> Attempting to build git@7774cfed62 using make@033330e results in a
> missing 'endif' at the end of config.mak.uname:
>
> config.mak.uname:842: *** missing 'endif'. Stop.
>
> Permalink to config.mak.uname:
> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fgit%2Fgit%2Fblob%2F7774cfed62%2Fconfig.mak.uname&data=05%7C02%7Cmartin.dorey%40hds.com%7C84b15985315d44685dfd08dc54ada395%7C18791e1761594f52a8d4de814ca8284a%7C0%7C0%7C638478351967935311%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=iMn1yFKf%2BejRxv4YtHG1vuRc7F9CU%2FbL4pDC4PYcNow%3D&reserved=0.
> (Included from Makefile:
> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fgit%2Fgit%2Fblob%2F7774cfed62%2FMakefile%23L1438&data=05%7C02%7Cmartin.dorey%40hds.com%7C84b15985315d44685dfd08dc54ada395%7C18791e1761594f52a8d4de814ca8284a%7C0%7C0%7C638478351967943429%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=jk37ludTLJf9cNnM%2BySubfTcBHN5GFjrOAdp%2FmG88bk%3D&reserved=0.)
> As far as I can see, both git's Makefile and config.mak.uname look
> good. The latest tagged release of make, 4.4.1, has no problems with
> it, and neither does the make shipped with macOS.
>
> Best regards,
> Dario
>