]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
build: workaround behaviour regression in gnu make 4.3
authorDaniel P. Berrangé <berrange@redhat.com>
Fri, 13 Mar 2020 18:39:25 +0000 (18:39 +0000)
committerDaniel P. Berrangé <berrange@redhat.com>
Mon, 16 Mar 2020 12:07:21 +0000 (12:07 +0000)
We need the "$(space)" variable to contain a single whitespace
character. We do this by assigning and then appending an empty
string to the variable. Variable appends get separated by a
single whitespace historically, but GNU make 4.3 introduced a
behaviour regression.

  https://lists.gnu.org/archive/html/bug-make/2020-01/msg00057.html

[quote]
* WARNING: Backward-incompatibility!
  Previously appending using '+=' to an empty variable would
  result in a value starting with a space.  Now the initial
  space is only added if the variable already contains some
  value.  Similarly, appending an empty string does not
  add a trailing space.
[/quote]

This patch tries a new trick to get a single whitespace by
getting make to expand two non-existant variables separated
by a space.

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
build-aux/syntax-check.mk

index b829c8a18b9e11fb5542ebdcfaea494026ffab64..3020921be84b4b229e5cc7a46610432603efb26d 100644 (file)
@@ -687,8 +687,7 @@ msg_gen_function += virLastErrorPrefixMessage
 # msg_gen_function += vshPrint
 # msg_gen_function += vshError
 
-space =
-space +=
+space = $(null) $(null)
 func_re= ($(subst $(space),|,$(msg_gen_function)))
 
 # Look for diagnostics that aren't marked for translation.