[PATCH 2/3] binman: Use target-specific tools when cross-compiling

Alper Nebi Yasak alpernebiyasak at gmail.com
Sun Sep 6 01:04:02 CEST 2020


On 05/09/2020 19:37, Simon Glass wrote:
> This looks good, but it drops the use of DTC to specify the
> device-tree compiler. Can you add it back?

I think you're referring to this hunk:

>      # If we don't have a directory, put it in the tools tempdir
>      search_list = []
>      for path in search_paths:
>          search_list.extend(['-i', path])
> -    args = ['-I', 'dts', '-o', dtb_output, '-O', 'dtb',
> +    dtc, args = tools.GetTargetCompileTool('dtc')
> +    args += ['-I', 'dts', '-o', dtb_output, '-O', 'dtb',
>              '-W', 'no-unit_address_vs_reg']
>      args.extend(search_list)
>      args.append(dts_input)
> -    dtc = os.environ.get('DTC') or 'dtc'
>      command.Run(dtc, *args, capture_stderr=capture_stderr)
>      return dtb_output

where I removed the os.environ.get('DTC'). Instead of that, I get the
command for dtc from GetTargetCompileTool('dtc'), which does check the
'DTC' environment variable:

> +def GetTargetCompileTool(name, cross_compile=None):
>      [...]
> +    env = dict(os.environ)
> +
> +    target_name = None
> +    extra_args = []
> +    if name in ('as', 'ld', 'cc', 'cpp', 'ar', 'nm', 'ldr', 'strip',
> +                'objcopy', 'objdump', 'dtc'):
> +        target_name, *extra_args = env.get(name.upper(), '').split(' ')
> +
> +    if target_name:
> +        return target_name, extra_args

If that's not convincing enough: running 'DTC=false binman test' gets me
a lot of test errors that I don't get without the 'DTC=false'.


More information about the U-Boot mailing list