From: Nishanth Menon <nm@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH V2 07/12] board: LaCie: Move common headers to board-common directory
Date: Mon, 16 Nov 2015 09:34:07 -0600 [thread overview]
Message-ID: <5649F76F.6040702@ti.com> (raw)
In-Reply-To: <CAK7LNASVyT-+MOzKJeVgXnfvm2WD4LK9yhJjcz4vxema7HUwzA@mail.gmail.com>
On 11/15/2015 09:32 PM, Masahiro Yamada wrote:
> 2015-11-15 14:38 GMT+09:00 Nishanth Menon <nm@ti.com>:
>> On 11/14/2015 05:56 PM, Masahiro Yamada wrote:
>>> 2015-11-13 14:43 GMT+09:00 Nishanth Menon <nm@ti.com>:
>>>> Header files can be located in a generic location without
>>>> needing to reference them with ../common/
>>>>
>>>> Generated with the following script
>>>>
>>>> #!/bin/bash
>>>> vendor=board/LaCie
>>>> common=$vendor/common
>>>>
>>>> cfiles=`git grep "../common" $vendor|grep "#include"|cut -d '"' -f2|sort -u|grep c$`
>>>> headers=`git grep "../common" $vendor|grep "#include"|cut -d '"' -f2|sort -u|grep h$`
>>>>
>>>> mkdir -p $common/include/board-common
>>>> set -x
>>>> for header in $headers
>>>> do
>>>> echo "processing $header in $common"
>>>> hbase=`basename $header`
>>>> git mv $common/$hbase $common/include/board-common
>>>> sed -i -e "s/\"..\/common\/$hbase\"/<board-common\/$hbase>/g" $vendor/*/*.[chS]
>>>> sed -i -e "s/\"$hbase\"/<board-common\/$hbase>/g" $vendor/common/*.[chS]
>>>> done
>>>>
>>>> Cc: Simon Guinot <simon.guinot@sequanux.org>
>>>> Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
>>>>
>>>> Signed-off-by: Nishanth Menon <nm@ti.com>
>>>> ---
>>>
>>>
>>> As far as I understood from 02 to 12,
>>> the effect of this series is:
>>>
>>> either
>>> replace "../common/foo.h" with <board-common/foo.h>
>> for board/specific board files.
>>
>>> or
>>> replace "bar.h" with <board-common/bar.h>
>> yes - for board/common headers which are exposed.
>>
>>>
>>> Vendor common headers are referenced within their own directory.
>>> #include "..." is better than #include <...> in such cases.
>>
>> Not after this series, which is what is the 3rd change done by this
>> series: The headers are moved to a common location away from the
>> board/common directory.
>>
>> This is more inline with what you did with mach.
>>
>>> I still do not understand what problem this series wants to solve.
>>
>> standardize board common header inclusion strategy across boards in a
>> consistent manner similar to what mach/ changes have been doing.
>>
>> Overall, you did mention in https://patchwork.ozlabs.org/patch/541068/
>>
>>
>> [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>
>>
>>
>>
>> Why did we not let folks user relative includes such as #include
>> "../../mach/xyz.h" ? because it constraints us from changing the
>> directory architecture in the future.
>>
>> This is exactly the same problem that board/<vendor>/ folders have.
>>
>>
>> Why is it that you dont see that as a problem?
>>
>
>
> You are misunderstanding.
>
> SoC headers (either <asm/arch/*.h> in old style, or <mach/*.h> in new
> style) are exported.
>
>
> For example, arch/asm/include/asm/gpio.h includes <asm/arch/gpio.h>.
> Also, many files under drivers/ include <asm/arch/*.h>
>
> I do not think any drivers should depend on SoC specific headers,
> but it is the place where we stand now.
>
>
> OTOH, vendor headers should be only referenced locally.
> We should not expand the scope. No need to standardize the include path.
>
^^^
>
> Relative path is a correct way to include a header file with local scope.
>
> Even Linux does so.
>
> For example
>
> drivers/pinctrl/sunxi/pinctrl-sunxi.c
>
Hmm... so, lets review our status currently:
a) board/$(VENDOR)/board_X, board/$(VENDOR)/board_Y,
board/$(VENDOR)/board_Z all need a common function, this is currently
in board/$(VENDOR)/common/xyz.c.
b) the function prototype for the function needs to be in xyz.h so
that board/$(VENDOR)/board_[XYZ] can use the function.
c) your suggestion is to stay in local scope for
board/$(VENDOR)/board_[XYZ] by "../common/xyz.h"
So much I have understood. I dont understand *why* you feel that
vendor headers should only be referenced locally. Could you elaborate
a little more on that? Is it because of the risk that drivers will now
be able to do <board-common/xyz.h> ?
If that is the case, and Tom, Simon, you folks agree as well, I can
drop the entire series.
--
Regards,
Nishanth Menon
next prev parent reply other threads:[~2015-11-16 15:34 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-13 5:43 [U-Boot] [PATCH V2 00/12] Series to move headers to a consistent include location Nishanth Menon
2015-11-13 5:43 ` [U-Boot] [PATCH V2 01/12] Makefile: Include vendor common library in include search path Nishanth Menon
2015-11-15 14:45 ` Igor Grinberg
2015-11-13 5:43 ` [U-Boot] [PATCH V2 02/12] board: BuR: Move common headers to board-common directory Nishanth Menon
2015-11-13 5:43 ` [U-Boot] [PATCH V2 03/12] board: compulab: " Nishanth Menon
2015-11-13 5:43 ` [U-Boot] [PATCH V2 05/12] board: gdsys: " Nishanth Menon
2015-11-16 8:01 ` Dirk Eibach
2015-11-16 8:04 ` Dirk Eibach
2015-11-13 5:43 ` [U-Boot] [PATCH V2 06/12] board: keymile: " Nishanth Menon
2015-11-18 13:58 ` Valentin Longchamp
2015-11-13 5:43 ` [U-Boot] [PATCH V2 07/12] board: LaCie: " Nishanth Menon
2015-11-13 10:30 ` Simon Guinot
2015-11-13 14:06 ` Tom Rini
2015-11-13 15:32 ` Simon Guinot
2015-11-13 23:57 ` Nishanth Menon
2015-11-14 2:05 ` Simon Glass
2015-11-16 1:53 ` Tom Rini
2015-11-14 23:56 ` Masahiro Yamada
2015-11-15 5:38 ` Nishanth Menon
2015-11-16 3:32 ` Masahiro Yamada
2015-11-16 15:34 ` Nishanth Menon [this message]
2015-11-17 0:45 ` Tom Rini
2015-11-13 5:43 ` [U-Boot] [PATCH V2 08/12] board: mpl: " Nishanth Menon
2015-11-13 8:19 ` David Müller (ELSOFT AG)
2015-11-13 14:02 ` Tom Rini
2015-11-13 5:43 ` [U-Boot] [PATCH V2 09/12] board: seco: " Nishanth Menon
2015-11-13 5:43 ` [U-Boot] [PATCH V2 10/12] board: siemens: " Nishanth Menon
2015-11-16 9:17 ` Egli, Samuel
2015-11-13 5:43 ` [U-Boot] [PATCH V2 11/12] board: varisys: " Nishanth Menon
2015-11-16 7:42 ` Andy Fleming
2015-11-13 5:43 ` [U-Boot] [PATCH V2 12/12] board: xes: " Nishanth Menon
2015-11-13 5:51 ` [U-Boot] [PATCH RESEND V2 04/12] board: freescale: " Nishanth Menon
2015-12-19 23:07 ` [U-Boot] [PATCH V2 00/12] Series to move headers to a consistent include location Simon Glass
2015-12-20 0:25 ` Nishanth Menon
2015-12-28 4:22 ` Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5649F76F.6040702@ti.com \
--to=nm@ti.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox