[Buildroot] [PATCH 1/1] fix failure during 'make linux-menuconfig' when PATH env var has spaces

Dan Raymond draymond at foxvalley.net
Wed Mar 3 17:37:12 UTC 2021


On 3/3/2021 10:11 AM, Arnout Vandecappelle wrote:

>   Hi Dan,
>
> On 01/03/2021 03:40, Dan Raymond wrote:
>>   $(2)_CONFIGURATOR_MAKE_ENV = \
>> -    $$(filter-out PATH=% PKG_CONFIG=% PKG_CONFIG_SYSROOT_DIR=% \
>> -       PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=% PKG_CONFIG_ALLOW_SYSTEM_LIBS=% \
>> -       PKG_CONFIG_LIBDIR=%,$$($(2)_MAKE_ENV)) \
>> +    $$(call strip_env,PATH PKG_CONFIG PKG_CONFIG_SYSROOT_DIR \
>> +       PKG_CONFIG_ALLOW_SYSTEM_CFLAGS PKG_CONFIG_ALLOW_SYSTEM_LIBS \
>> +       PKG_CONFIG_LIBDIR,$$($(2)_MAKE_ENV)) \
>>       PKG_CONFIG_PATH="$(HOST_PKG_CONFIG_PATH)"
> This is a bit of half-hearted quoting. It happens to work for spaces, but
> breaks down on double quotes, backslashes, dollar signs, and probably others as
> well.
>
>   I don't like to solve one specific corner case but leaving the door wide open
> for different ones...
>
>   Unfortunately, proper shell quoting is really really hard.
>
>   Therefore, I'd propose to skirt around the issue entirely by overriding the
> environment variables directly. Something like this (untested):
>
> $(2)_CONFIGURATOR_MAKE_ENV = \
> 	$$($(2)_MAKE_ENV) \
> 	PATH="$$(BR_PATH)" \
> 	PKG_CONFIG= \
> 	...

I like your idea.  It is much simpler.  I'll prepare a new patch and 
test it.  But why are you setting PATH="$$(BR_PATH)"? Previously the 
PATH variable was stripped entirely.



More information about the buildroot mailing list