Re: [PATCH] tools build feature: Quote CC and CXX for their arguments

2020-08-13 Thread Arnaldo Carvalho de Melo
Em Wed, Aug 12, 2020 at 07:31:32PM -0700, Tom Hebb escreveu:
> On Wed, Aug 12, 2020 at 3:15 PM Daniel Díaz  wrote:
> >   Makefile.config:414: *** No gnu/libc-version.h found, please install 
> > glibc-dev[el].  Stop.
> >   Makefile.perf:230: recipe for target 'sub-make' failed
> >   make[1]: *** [sub-make] Error 2
> >   Makefile:69: recipe for target 'all' failed
> >   make: *** [all] Error 2
> >
> > With CC and CXX quoted, some of those features are now detected.
> >
> > Fixes: e3232c2f39ac ("tools build feature: Use CC and CXX from parent")
> >
> > Signed-off-by: Daniel Díaz 
> 
> Whoops, I'm the one who introduced this issue. Fix looks good, thanks!
> 
> Reviewed-by: Thomas Hebb 
> Fixes: e3232c2f39ac ("tools build feature: Use CC and CXX from parent")

Thanks, applied.

- Arnaldo


Re: [PATCH] tools build feature: Quote CC and CXX for their arguments

2020-08-12 Thread Tom Hebb
On Wed, Aug 12, 2020 at 3:15 PM Daniel Díaz  wrote:
>
> When using a cross-compilation environment, such as OpenEmbedded,
> the CC an CXX variables are set to something more than just a
> command: there are arguments (such as --sysroot) that need to be
> passed on to the compiler so that the right set of headers and
> libraries are used.
>
> For the particular case that our systems detected, CC is set to
> the following:
>
>   export CC="aarch64-linaro-linux-gcc  
> --sysroot=/oe/build/tmp/work/machine/perf/1.0-r9/recipe-sysroot"
>
> Without quotes, detection is as follows:
>
>   Auto-detecting system features:
>   ... dwarf: [ OFF ]
>   ...dwarf_getlocations: [ OFF ]
>   ... glibc: [ OFF ]
>   ...  gtk2: [ OFF ]
>   ...libbfd: [ OFF ]
>   ...libcap: [ OFF ]
>   ...libelf: [ OFF ]
>   ...   libnuma: [ OFF ]
>   ...numa_num_possible_cpus: [ OFF ]
>   ...   libperl: [ OFF ]
>   ... libpython: [ OFF ]
>   ... libcrypto: [ OFF ]
>   ... libunwind: [ OFF ]
>   ...libdw-dwarf-unwind: [ OFF ]
>   ...  zlib: [ OFF ]
>   ...  lzma: [ OFF ]
>   ... get_cpuid: [ OFF ]
>   ...   bpf: [ OFF ]
>   ...libaio: [ OFF ]
>   ...   libzstd: [ OFF ]
>   ...disassembler-four-args: [ OFF ]
>
>   Makefile.config:414: *** No gnu/libc-version.h found, please install 
> glibc-dev[el].  Stop.
>   Makefile.perf:230: recipe for target 'sub-make' failed
>   make[1]: *** [sub-make] Error 2
>   Makefile:69: recipe for target 'all' failed
>   make: *** [all] Error 2
>
> With CC and CXX quoted, some of those features are now detected.
>
> Fixes: e3232c2f39ac ("tools build feature: Use CC and CXX from parent")
>
> Signed-off-by: Daniel Díaz 

Whoops, I'm the one who introduced this issue. Fix looks good, thanks!

Reviewed-by: Thomas Hebb 
Fixes: e3232c2f39ac ("tools build feature: Use CC and CXX from parent")

> ---
>  tools/build/Makefile.feature | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature
> index 774f0b0ca28a..e7818b44b48e 100644
> --- a/tools/build/Makefile.feature
> +++ b/tools/build/Makefile.feature
> @@ -8,7 +8,7 @@ endif
>
>  feature_check = $(eval $(feature_check_code))
>  define feature_check_code
> -  feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CC=$(CC) 
> CXX=$(CXX) CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" 
> CXXFLAGS="$(EXTRA_CXXFLAGS) $(FEATURE_CHECK_CXXFLAGS-$(1))" 
> LDFLAGS="$(LDFLAGS) $(FEATURE_CHECK_LDFLAGS-$(1))" -C $(feature_dir) 
> $(OUTPUT_FEATURES)test-$1.bin >/dev/null 2>/dev/null && echo 1 || echo 0)
> +  feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CC="$(CC)" 
> CXX="$(CXX)" CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" 
> CXXFLAGS="$(EXTRA_CXXFLAGS) $(FEATURE_CHECK_CXXFLAGS-$(1))" 
> LDFLAGS="$(LDFLAGS) $(FEATURE_CHECK_LDFLAGS-$(1))" -C $(feature_dir) 
> $(OUTPUT_FEATURES)test-$1.bin >/dev/null 2>/dev/null && echo 1 || echo 0)

We should probably also be quoting the arguments that expand $(OUTPUT_FEATURES)
too, although trying to handle path names with spaces is probably a
lost cause anyway.

>  endef
>
>  feature_set = $(eval $(feature_set_code))
> --
> 2.25.1
>


[PATCH] tools build feature: Quote CC and CXX for their arguments

2020-08-12 Thread Daniel Díaz
When using a cross-compilation environment, such as OpenEmbedded,
the CC an CXX variables are set to something more than just a
command: there are arguments (such as --sysroot) that need to be
passed on to the compiler so that the right set of headers and
libraries are used.

For the particular case that our systems detected, CC is set to
the following:

  export CC="aarch64-linaro-linux-gcc  
--sysroot=/oe/build/tmp/work/machine/perf/1.0-r9/recipe-sysroot"

Without quotes, detection is as follows:

  Auto-detecting system features:
  ... dwarf: [ OFF ]
  ...dwarf_getlocations: [ OFF ]
  ... glibc: [ OFF ]
  ...  gtk2: [ OFF ]
  ...libbfd: [ OFF ]
  ...libcap: [ OFF ]
  ...libelf: [ OFF ]
  ...   libnuma: [ OFF ]
  ...numa_num_possible_cpus: [ OFF ]
  ...   libperl: [ OFF ]
  ... libpython: [ OFF ]
  ... libcrypto: [ OFF ]
  ... libunwind: [ OFF ]
  ...libdw-dwarf-unwind: [ OFF ]
  ...  zlib: [ OFF ]
  ...  lzma: [ OFF ]
  ... get_cpuid: [ OFF ]
  ...   bpf: [ OFF ]
  ...libaio: [ OFF ]
  ...   libzstd: [ OFF ]
  ...disassembler-four-args: [ OFF ]

  Makefile.config:414: *** No gnu/libc-version.h found, please install 
glibc-dev[el].  Stop.
  Makefile.perf:230: recipe for target 'sub-make' failed
  make[1]: *** [sub-make] Error 2
  Makefile:69: recipe for target 'all' failed
  make: *** [all] Error 2

With CC and CXX quoted, some of those features are now detected.

Fixes: e3232c2f39ac ("tools build feature: Use CC and CXX from parent")

Signed-off-by: Daniel Díaz 
---
 tools/build/Makefile.feature | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature
index 774f0b0ca28a..e7818b44b48e 100644
--- a/tools/build/Makefile.feature
+++ b/tools/build/Makefile.feature
@@ -8,7 +8,7 @@ endif
 
 feature_check = $(eval $(feature_check_code))
 define feature_check_code
-  feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CC=$(CC) 
CXX=$(CXX) CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" 
CXXFLAGS="$(EXTRA_CXXFLAGS) $(FEATURE_CHECK_CXXFLAGS-$(1))" LDFLAGS="$(LDFLAGS) 
$(FEATURE_CHECK_LDFLAGS-$(1))" -C $(feature_dir) $(OUTPUT_FEATURES)test-$1.bin 
>/dev/null 2>/dev/null && echo 1 || echo 0)
+  feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CC="$(CC)" 
CXX="$(CXX)" CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" 
CXXFLAGS="$(EXTRA_CXXFLAGS) $(FEATURE_CHECK_CXXFLAGS-$(1))" LDFLAGS="$(LDFLAGS) 
$(FEATURE_CHECK_LDFLAGS-$(1))" -C $(feature_dir) $(OUTPUT_FEATURES)test-$1.bin 
>/dev/null 2>/dev/null && echo 1 || echo 0)
 endef
 
 feature_set = $(eval $(feature_set_code))
-- 
2.25.1