[U-Boot] [PATCH v2 1/7] tegra: Rework Tamonten support

Stephen Warren swarren at wwwdotorg.org
Sat Jun 9 18:18:34 CEST 2012


Allen Martin <amartin at nvidia.com> wrote:
>On Fri, Jun 08, 2012 at 10:28:57PM -0700, Stephen Warren wrote:
>> On 06/08/2012 03:27 PM, Allen Martin wrote:
>> > On Fri, Jun 08, 2012 at 02:07:25PM -0700, Stephen Warren wrote:
>> >> On 06/08/2012 02:01 PM, Allen Martin wrote:
>> >>> On Fri, May 25, 2012 at 06:46:22AM -0700, Thierry Reding wrote:
>> >>>> This commit uses the common Tegra board implementation instead
>of
>> >>>> duplicating a lot of the code. In addition, the Plutux and
>Medcom
>> >>>> specific board files can be removed as the MMC/SD setup is
>common
>> >>>> among all Tamonten-based boards.
>> >>>>
>> >>>> ...
>> >>>> diff --git a/board/avionic-design/medcom/Makefile
>b/board/avionic-design/medcom/Makefile
>> >>>> index b0c318c..d96d043 100644
>> >>>> --- a/board/avionic-design/medcom/Makefile
>> >>>> +++ b/board/avionic-design/medcom/Makefile
>> >>>> @@ -26,12 +26,12 @@
>> >>>>  include $(TOPDIR)/config.mk
>> >>>>
>> >>>>  ifneq ($(OBJTREE),$(SRCTREE))
>> >>>> -$(shell mkdir -p $(obj)../common)
>> >>>> +$(shell mkdir -p $(obj)../common $(obj)../../nvidia/common)
>> >>>>  endif
>> >>>>
>> >>>>  LIB    = $(obj)lib$(BOARD).o
>> >>>>
>> >>>
>> >>> This breaks with my patchset to split out the arm7 code to an SPL
>> >>> because even though SRCDIR and OBJDIR are the same, in the SPL
>build
>> >>> $(obj) is a subdir of $(SPLTREE) not $(OBJTREE) (not my doing).
>> >>>
>> >>> How about the following instead which seems more to the point:
>> >>>
>> >>> ifeq ($(wildcard $(obj)../common),)
>> >>> $(shell mkdir -p $(obj)../common)
>> >>> endif
>> >>> ifeq ($(wildcard $(obj)../../nvidia/common),)
>> >>> $(shell mkdir -p $(obj)../../nvidia/common)
>> >>> endif
>> >>
>> >> Maybe I'm just not reading it right, but isn't that just running
>the
>> >> exact same mkdir commands, just splitting it into two commands,
>and
>> >> making them optional based on the $(wildcard)? I'm still not clear
>what
>> >> the problem is.
>> >>
>> >> Anyway, if this is an issue, then compal/paz00 and
>compulabl/trimslice
>> >> will need to be fixed for the SPL changes in the same way.
>> > 
>> > The problem is this:
>> > 
>> >>>>  ifneq ($(OBJTREE),$(SRCTREE))
>> > 
>> > is true, but these directories:
>> > 
>> >>>> +$(shell mkdir -p $(obj)../common $(obj)../../nvidia/common)
>> > 
>> > don't exist because $(obj) is not under $(OBJTREE) in the SPL
>build,
>> > it's under $(SPLTREE)
>> 
>> OK, so I think the issue is just that $(obj) isn't the correct place
>to
>> mkdir these, not that we shouldn't attempt to mkdir any directory. In
>> other words, don't you need to switch between mkdir in the object
>tree
>> or the SPL tree rather than switching between doing a mkdir and not?
>> It's quite possible this only affects builds where OBJDIR!=SRCDIR, so
>a
>> regular build might not show up the problem I /think/ exists in the
>code
>> quoted a couple of emails above.
>
>$(obj) is always the place where the object files are going to be
>placed, that may be in $(OBJTREE) or in $(SRCTREE) or in $(SPLTREE)
>depending on what you're building and what you have set.
>
>I think the $(wildcard) suggestion I made is the most straightforward,
>it basically says "we're about to spit out an object file to here, so
>make sure the directory exists first".  In the "normal" case where
>your object files are in your source tree the directory will already
>exist so it won't do anything.

Ah right, I understand now.

But why not make it super-simple and just run the mkdir unconditionally; it won't cause any harm for an in-tree object location, but removes the need for anyone to think about the conditional logic.

(I hope this is legible due to email client!)

-- 
Sent from my Android phone with K-9 Mail. Please excuse my brevity.


More information about the U-Boot mailing list