Hi Florian, On Thu, Feb 27, 2025 at 03:43:29PM +0100, Florian Weimer wrote: > * Alejandro Colomar: > > > Could you please try to find out the cause of the actual problem? Maybe > > there's a fix that doesn't involve reverting that patch. Or maybe > > there's a bug in some tool, and we can report it. > > NEWS in GNU make explains this: > > * WARNING: Backward-incompatibility! > Number signs (#) appearing inside a macro reference or function invocation > no longer introduce comments and should not be escaped with backslashes: > thus a call such as: > foo := $(shell echo '#') > is legal. Previously the number sign needed to be escaped, for example: > foo := $(shell echo '\#') > Now this latter will resolve to "\#". If you want to write makefiles > portable to both versions, assign the number sign to a variable: > H := \# > foo := $(shell echo '$H') > This was claimed to be fixed in 3.81, but wasn't, for some reason. > To detect this change search for 'nocomment' in the .FEATURES variable. Thanks for pasting the relevant NEWS entry. > > Applying the $H suggestion seems harmless enough, although this make > change seems to be fairly problematic in general. However, I learned about that change last month (after Boris's report), and I think it's not our problem here. The thing is, on my system, grep(1) is just fine with that escaped hash: $ echo '#foo' | grep '\#foo' #foo While Sergei seems to be getting a warning from grep(1). So, something in our systems differs, even if our make(1) version is the same. Our bash(1) version is also the same (sh(1) is not, but we're not using sh(1), AFAIK). So something other than make(1) seems to be treating the \# differently. Have a lovely day! Alex -- <https://www.alejandro-colomar.es/>
Attachment:
signature.asc
Description: PGP signature