Re: [PATCH v3 2/3] buildman: Allow skipping the dtc build

Simon Glass
2024-09-01T20:10:06Z

Hi Tom,

On Thu, 22 Aug 2024 at 08:10, Tom Rini <trini@konsulko.com> wrote:
>
> On Wed, Aug 21, 2024 at 09:00:25PM -0600, Simon Glass wrote:
> > Hi Tom,
> >
> > On Fri, 16 Aug 2024 at 17:53, Simon Glass <sjg@chromium.org> wrote:
> > >
> > > Hi Tom,
> > >
> > > On Fri, 16 Aug 2024 at 11:22, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Thu, Aug 15, 2024 at 01:57:45PM -0600, Simon Glass wrote:
> > > >
> > > > > For most boards, the device-tree compiler is built in-tree, ignoring the
> > > > > system version. Add a special option to skip this build. This can be
> > > > > useful when the system dtc is up-to-date, as it speeds up the build.
> > > > >
> > > > > Signed-off-by: Simon Glass <sjg@chromium.org>
> > > > > ---
> > > > >
> > > > > (no changes since v1)
> > > > >
> > > > > tools/buildman/builder.py | 27 ++++++++++++++++++++++++++-
> > > > > tools/buildman/builderthread.py | 4 ++--
> > > > > tools/buildman/buildman.rst | 3 +++
> > > > > tools/buildman/cmdline.py | 2 ++
> > > > > tools/buildman/control.py | 3 ++-
> > > > > tools/buildman/test.py | 31 +++++++++++++++++++++++++++++++
> > > > > 6 files changed, 66 insertions(+), 4 deletions(-)
> > > >
> > > > We should probably do this more generically, outside of buildman. We
> > > > have scripts/dtc-version.sh and if the system version isn't new enough
> > > > (and we just need to define whatever the minimum version is), then we
> > > > build our (not currently that new anymore) dtc instead.
> > >
> > > Yes I think I did a patch for that ages ago [1], but it was rejected.
> > >
> > > I'd be very happy for it to be applied as I think it is a better
> > > solution than this one.
> > >
> > > I see that some poor sod tried to do this in Linux this morning.
> >
> > Any thoughts on that patch?
>
> I'm open to re-considering [1] again, but we need to handle the warning
> problem first. That means...
>
> > Also I do see one problem. Newer dtc version produce a lot of
> > warnings, which causes CI to fail. So if we always use the newest
> > version, people are going to see a ton of warnings when they run
> > locally. Am I missing something here?
>
> Well, it would be great to get our Kbuild logic anywhere close to
> in-sync again with upstream. But syncing up the disabling warning flags
> shouldn't be too hard.

So, coming back to this patch, the nice thing about it is that it is
deterministic. So people who build U-Boot and don't want funky
behaviour will be happy. It will use the internal dtc by default. To
use the external one, you must provide an option.

This patch only affects buildman, but as you can see the mechanism it
uses is to set the DTC variable, which people can do without buildman.
It's just a convenience, but useful enough to have a flag, I believe.

Regards,
Simon