Makefile: make-4.3 now longer un-escapes \# in macros
authorYaroslav Syrytsia <me@ys.lc>
Mon, 30 Mar 2020 13:41:37 +0000 (16:41 +0300)
committerYann E. MORIN <yann.morin.1998@free.fr>
Tue, 31 Mar 2020 19:37:45 +0000 (21:37 +0200)
commit35c5cf56d21a250f8c86443a84e0b32301a70665
tree8806ffe1081f7407470b917db694c25b4384f710
parentd7f553ba9f129dfeda71ff05bc38219aa3b4d02b
Makefile: make-4.3 now longer un-escapes \# in macros

make-4.3 shipped with a backward incompatible change in how sharp signs
are handled in macros. Previously, up to make 4.2, the sharp sign would
always start a comment, unless backslash-escaped, even in a macro or a
fucntion call.

Now, the sharp sign is no longer starting a comment when it appears
inside such a macro or function call. This behaviour was supposed to be
in force since 3.81, but was not; 4.3 fixed the code to match the doc.

As such, use of external toolchains is broken, as we use the sharp sign
in the copy_toolchain_sysroot macro, in shell variable expansion to
strip off any leading /: ${target\#/}.

Fix that by applying the workaround suggested in the release annoucement
[0], by using a variable to hold a sharp sign.

[0] https://lists.gnu.org/archive/html/info-gnu/2020-01/msg00004.html

Signed-off-by: Yaroslav Syrytsia <me@ys.lc>
[yann.morin.1998@free.fr:
  - move the SHARP_SIGN definition out of Makefile and into support/
  - expand the commit log
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
support/misc/utils.mk
toolchain/helpers.mk