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

Simon Glass sjg at chromium.org
Sun Sep 6 02:17:52 CEST 2020


Hi Alper,

On Sat, 5 Sep 2020 at 17:04, Alper Nebi Yasak <alpernebiyasak at gmail.com> wrote:
>
> 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'.

OK I did look at that function thinking you might have done that, but
was expecting the same code...so this seems OK to me.

Reviewed-by: Simon Glass <sjg at chromium.org>

Regards,
Simon


More information about the U-Boot mailing list