[U-Boot] [PATCH] makefiles: fixes/cleanup for building build tools

Scott Wood scottwood at freescale.com
Tue Oct 27 20:34:10 CET 2009


On Mon, Oct 26, 2009 at 07:57:50PM -0400, Mike Frysinger wrote:
> On Monday 26 October 2009 18:17:03 Scott Wood wrote:
> > Currently, some of the tools instead set CC to be HOSTCC in order to re-use
> > some pattern rules -- but this fails when the user overrides CC on the make
> > command line.  Also, the HOSTCFLAGS in tools/Makefile are currently not
> > being used because config.mk overwrites them.
> > 
> > This patch adds static pattern rules for files that have been requested to
> > be built with the native compiler using $(HOSTSRCS) and $(HOSTOBJS), and
> > converts the tools to use them.
> 
> your new easylogo rule lacks HOSTLDFLAGS ...

OK, will add.

> perhaps it would make more sense to create a HOSTCOMPILE/HOSTLINK (or 
> whatever) variable so this kind of thing isnt missed ?
> HOSTCOMPILE = $(HOSTCC) $(HOSTCFLAGS)
> HOSTLINK = $(HOSTCOMPILE) $(HOSTLDFLAGS)

Maybe.  What about PEDCFLAGS?  Should that be the default for HOSTCOMPILE,
and then have a HOSTCOMPILENOPED?

> also, PEDCFLAGS seems at odds with the rest of your consistency changes. 
> how about naming it HOSTCFLAGS+PED ?  then you would have a new var:
> HOSTCOMPILE+PED = $(HOSTCC) $(HOSTCFLAGS+PED)

I left off the HOST for conciseness because we only use -pedantic when
building hosted stuff (and that's unlikely to change, since main u-boot code
has lower portability requirements), but I can add it if desired.

> > It restores easylogo to using the host compiler, which was broken by commit
> > 38d299c2db81bd889c601b5dfc12c4e83ef83333 (if this was an intentional
> >  change, please let me know -- but it seems to be a build tool).
> 
> it was intentional, but for different reasons.  easylogo isnt integrated
> into the u-boot build system, so in order to compile things in there, you
> had to go into the subdir and manually run `make`.  if it were integrated
> into the build system like all other tools, then converting to host tools
> is fine.  but unless i missed something, it doesnt appear to be ?  and
> now, going into the subdir and running `make` wont work either ...

I was expecting it to be built by adding easylogo to TOOLSUBDIRS (it would
be better if there were a distinct make target for it, but that's another
patch).  Other tools such as gdb already assume they're being run in this
manner.

-Scott


More information about the U-Boot mailing list