[Buildroot] [PATCH] Makefile: fix custom toolchain building with 4.3+

Yann E. MORIN yann.morin.1998 at free.fr
Tue Mar 31 19:50:24 UTC 2020


Yaroslav, All,

On 2020-03-30 16:41 +0300, Yaroslav Syrytsia spake thusly:
> make 4.3 has backward-incompatibility change which breaks
> builds that use custom toolchains
> 
> Signed-off-by: Yaroslav Syrytsia <me at ys.lc>

I've moved the definition of SHARP_SIGN to the utility helper .mk file,
and expanded the commit log.

Applied to master, thanks!

Regards,
Yann E. MORIN.

> ---
>  Makefile             | 14 ++++++++++++++
>  toolchain/helpers.mk |  8 ++++----
>  2 files changed, 18 insertions(+), 4 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index ae29b042ec..5e603eed21 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -105,6 +105,20 @@ ifneq ($(firstword $(sort $(RUNNING_MAKE_VERSION) $(MIN_MAKE_VERSION))),$(MIN_MA
>  $(error You have make '$(RUNNING_MAKE_VERSION)' installed. GNU make >= $(MIN_MAKE_VERSION) is required)
>  endif
>  
> +# make 4.3:
> +# https://lwn.net/Articles/810071/
> +# 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')
> +SHARP_SIGN := \#
> +
>  # absolute path
>  TOPDIR := $(CURDIR)
>  CONFIG_CONFIG_IN = Config.in
> diff --git a/toolchain/helpers.mk b/toolchain/helpers.mk
> index 2c2a987c3e..44d0c83d1e 100644
> --- a/toolchain/helpers.mk
> +++ b/toolchain/helpers.mk
> @@ -119,12 +119,12 @@ copy_toolchain_sysroot = \
>  	done ; \
>  	for link in $$(find $(STAGING_DIR) -type l); do \
>  		target=$$(readlink $${link}) ; \
> -		if [ "$${target}" == "$${target\#/}" ] ; then \
> +		if [ "$${target}" == "$${target$(SHARP_SIGN)/}" ] ; then \
>  			continue ; \
>  		fi ; \
> -		relpath="$(call relpath_prefix,$${target\#/})" ; \
> -		echo "Fixing symlink $${link} from $${target} to $${relpath}$${target\#/}" ; \
> -		ln -sf $${relpath}$${target\#/} $${link} ; \
> +		relpath="$(call relpath_prefix,$${target$(SHARP_SIGN)/})" ; \
> +		echo "Fixing symlink $${link} from $${target} to $${relpath}$${target$(SHARP_SIGN)/}" ; \
> +		ln -sf $${relpath}$${target$(SHARP_SIGN)/} $${link} ; \
>  	done ; \
>  	relpath="$(call relpath_prefix,$${ARCH_LIB_DIR})" ; \
>  	if [ "$${relpath}" != "" ]; then \
> -- 
> 2.26.0
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'



More information about the buildroot mailing list