On Thu, Nov 12, 2015 at 09:56:26AM -0700, Simon Glass wrote: > Hi Nishanth, > > On 12 November 2015 at 09:45, Nishanth Menon <n...@ti.com> wrote: > > On 11/12/2015 10:22 AM, Tom Rini wrote: > >> On Thu, Nov 12, 2015 at 09:16:00AM -0700, Simon Glass wrote: > >>> Hi, > >>> > >>> On 10 November 2015 at 08:34, Nishanth Menon <n...@ti.com> wrote: > >>>> On 11/10/2015 08:55 AM, Nishanth Menon wrote: > >>>>> On 12:25-20151110, Masahiro Yamada wrote: > >>>>>> 2015-11-10 5:24 GMT+09:00 Simon Glass <s...@chromium.org>: > >>>>>>>>> I am unhappy because I was hoping > >>>>>>>>> we could stop creating symbolic links during building > >>>>>>>>> in a long run. > >>>>>>> > >>>>>>> But how? I don't see that it is possible if we want to have a sensible > >>>>>>> prefix for each include. > >>>>>> > >>>>>> > >>>>>> [step 1] move SoC-specific headers to > >>>>>> arch/<arch>/mach-<soc>/include/mach > >>>>>> > >>>>>> [step 2] change #include <asm/arch/foo.h> to #include <mach/foo.h> > >>>>>> > >>>>>> [step 3] Drop CONFIG_CREATE_ARCH_SYMLINK > >>>>>> > >>>>>> > >>>>>> For example, mach-uniphier finished [1] and [2], > >>>>>> so it does not require the symbolic link. > >>>>>> (several ARM SoCs finished [1]) > >>>>>> > >>>>>> > >>>>>> I think this is the way ARM should do, at least. > >>>>>> > >>>>>> The topic of debate is PowerPC. Should we introduce mach-<soc> > >>>>>> directories or not? > >>>>>> > >>>>> > >>>>> OK: Option 4: > >>>>> > >>>>> How about this guys? include/board-common is an actual directory > >>>>> and instead of headers being located in board/$(VENDOR)/common or > >>>>> board/$(VENDOR)/common/include, we move the common headers to > >>>>> include/board/$(VENDOR)/ Directory. This will make the usage as follows: > >>>>> > >>>>> #include <$(VENDOR)/xyz.h> > >>>>> > >>>>> I know this does not exactly meet Simon's suggestion here of being > >>>>> identifiably board-common/xyz.h -> but at least knowing the prefix as > >>>>> vendor name implies a board common header. > >>>>> > >>>>> diff --git a/Makefile b/Makefile > >>>>> index 3c21f8ddf9e9..2bd684199512 100644 > >>>>> --- a/Makefile > >>>>> +++ b/Makefile > >>>>> @@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags) > >>>>> # U-Boot objects....order is important (i.e. start must be first) > >>>>> > >>>>> HAVE_VENDOR_COMMON_LIB = $(if $(wildcard > >>>>> $(srctree)/board/$(VENDOR)/common/Makefile),y,n) > >>>>> +UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), > >>>>> -I$(srctree)/include/board-common) > >>>>> > >>>>> libs-y += lib/ > >>>>> libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/ > >>>>> > >>>>> How does this sound? > >>>>> > >>>> Spin off from option 4 is option 5 -> where we dont have the Makefile > >>>> change. the board includes are located in > >>>> include/board-common/$(VENDOR)/ directory. > >>>> > >>>> > >>>> Usage will be: > >>>> > >>>> #include <board-common/$(VENDOR)/xyz.h> > >>>> > >>>> > >>>> Almost meets Simon's needs(identifiable as board common header) and I > >>>> think matches what Masahiro-san wants as well(no symlinks). > >>>> > >>>> > >>>> OK, i am out of ideas at least for now... Any other suggestions / > >>>> opinions? > >>> > >>> If we don't want a symlink then option 5 seems good to me. Thanks very > >>> much for looking into this in so much detail, Nishanth. > >>> > >>> Thoughts - Masahiro? Tom? > >> > >> No symlink should mean Masahiro is happy, so if you're fine with #5 then > >> that works for me too, thanks! > >> > > > > I just have yet another option 6 variation -> looking at the mach > > strategy: > > > > UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), > > -I$(srctree)/board/$(VENDOR)/common/include) > > > > vendors should create common headers in > > board/$(VENDOR)/include/board-common/xyz.h > > > > the users then can do: > > #include <board-common/xyz.h> > > > > How does that sound? ofcourse, similar to mach, it requires some > > discipline.. > > Looks good, and it's nice that the files are in board/
#6 it is, thanks again Nishanth! -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot