* [PATCH v2] tags: honor COMPILED_SOURCE with apart output directory
@ 2016-12-15 16:35 Robert Jarzmik
2017-01-23 6:22 ` Robert Jarzmik
2017-04-24 18:06 ` Masahiro Yamada
0 siblings, 2 replies; 11+ messages in thread
From: Robert Jarzmik @ 2016-12-15 16:35 UTC (permalink / raw)
To: Michal Marek; +Cc: linux-kernel, linux-kbuild, Robert Jarzmik
When the kernel is compiled with an "O=" argument, the object files are
not necessarily in the source tree, and more probably in another tree.
In this situation, the current used check doesn't work, and
COMPILED_SOURCE tags is broken with O= builds.
This patch fixes it by looking for object files both in source tree and
potential destination tree.
It was verified that in the case of O= usage, the current directory is
the build tree, ie. the tree referenced by O=xxx, and j is the source
tree path concatenated with relative path of the object to the source
tree root, hence the simple expression to compute "k" as the built
object.
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
---
Since v1: amended k expression, Marek's comments
---
scripts/tags.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/scripts/tags.sh b/scripts/tags.sh
index a2ff3388e5ea..35cb64d5211c 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -106,7 +106,8 @@ all_compiled_sources()
case "$i" in
*.[cS])
j=${i/\.[cS]/\.o}
- if [ -e $j ]; then
+ k="${j#$tree}"
+ if [ -e $j -o -e "$k" ]; then
echo $i
fi
;;
--
2.1.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2] tags: honor COMPILED_SOURCE with apart output directory
2016-12-15 16:35 [PATCH v2] tags: honor COMPILED_SOURCE with apart output directory Robert Jarzmik
@ 2017-01-23 6:22 ` Robert Jarzmik
2017-02-14 7:33 ` Robert Jarzmik
2017-04-24 18:06 ` Masahiro Yamada
1 sibling, 1 reply; 11+ messages in thread
From: Robert Jarzmik @ 2017-01-23 6:22 UTC (permalink / raw)
To: Michal Marek; +Cc: linux-kernel, linux-kbuild
Robert Jarzmik <robert.jarzmik@free.fr> writes:
> When the kernel is compiled with an "O=" argument, the object files are
> not necessarily in the source tree, and more probably in another tree.
>
> In this situation, the current used check doesn't work, and
> COMPILED_SOURCE tags is broken with O= builds.
>
> This patch fixes it by looking for object files both in source tree and
> potential destination tree.
>
> It was verified that in the case of O= usage, the current directory is
> the build tree, ie. the tree referenced by O=xxx, and j is the source
> tree path concatenated with relative path of the object to the source
> tree root, hence the simple expression to compute "k" as the built
> object.
>
> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
> ---
> Since v1: amended k expression, Marek's comments
Hi Marek,
Is this version good for you ?
> ---
> scripts/tags.sh | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/tags.sh b/scripts/tags.sh
> index a2ff3388e5ea..35cb64d5211c 100755
> --- a/scripts/tags.sh
> +++ b/scripts/tags.sh
> @@ -106,7 +106,8 @@ all_compiled_sources()
> case "$i" in
> *.[cS])
> j=${i/\.[cS]/\.o}
> - if [ -e $j ]; then
> + k="${j#$tree}"
> + if [ -e $j -o -e "$k" ]; then
> echo $i
> fi
> ;;
Cheers.
--
Robert
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2] tags: honor COMPILED_SOURCE with apart output directory
2017-01-23 6:22 ` Robert Jarzmik
@ 2017-02-14 7:33 ` Robert Jarzmik
0 siblings, 0 replies; 11+ messages in thread
From: Robert Jarzmik @ 2017-02-14 7:33 UTC (permalink / raw)
To: Michal Marek; +Cc: linux-kernel, linux-kbuild
Robert Jarzmik <robert.jarzmik@free.fr> writes:
> Robert Jarzmik <robert.jarzmik@free.fr> writes:
>> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
>> ---
>> Since v1: amended k expression, Marek's comments
> Hi Marek,
>
> Is this version good for you ?
Marek, could you take a look please ?
--
Robert
>> ---
>> scripts/tags.sh | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/scripts/tags.sh b/scripts/tags.sh
>> index a2ff3388e5ea..35cb64d5211c 100755
>> --- a/scripts/tags.sh
>> +++ b/scripts/tags.sh
>> @@ -106,7 +106,8 @@ all_compiled_sources()
>> case "$i" in
>> *.[cS])
>> j=${i/\.[cS]/\.o}
>> - if [ -e $j ]; then
>> + k="${j#$tree}"
>> + if [ -e $j -o -e "$k" ]; then
>> echo $i
>> fi
>> ;;
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2] tags: honor COMPILED_SOURCE with apart output directory
2016-12-15 16:35 [PATCH v2] tags: honor COMPILED_SOURCE with apart output directory Robert Jarzmik
2017-01-23 6:22 ` Robert Jarzmik
@ 2017-04-24 18:06 ` Masahiro Yamada
2017-04-25 20:07 ` Robert Jarzmik
1 sibling, 1 reply; 11+ messages in thread
From: Masahiro Yamada @ 2017-04-24 18:06 UTC (permalink / raw)
To: Robert Jarzmik
Cc: Michal Marek, Linux Kernel Mailing List, Linux Kbuild mailing list
Hi Robert,
2016-12-16 1:35 GMT+09:00 Robert Jarzmik <robert.jarzmik@free.fr>:
> When the kernel is compiled with an "O=" argument, the object files are
> not necessarily in the source tree, and more probably in another tree.
Always in objtree.
> In this situation, the current used check doesn't work, and
> COMPILED_SOURCE tags is broken with O= builds.
>
> This patch fixes it by looking for object files both in source tree and
> potential destination tree.
>
> It was verified that in the case of O= usage, the current directory is
> the build tree, ie. the tree referenced by O=xxx, and j is the source
> tree path concatenated with relative path of the object to the source
> tree root, hence the simple expression to compute "k" as the built
> object.
>
> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
> ---
> Since v1: amended k expression, Marek's comments
> ---
> scripts/tags.sh | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/tags.sh b/scripts/tags.sh
> index a2ff3388e5ea..35cb64d5211c 100755
> --- a/scripts/tags.sh
> +++ b/scripts/tags.sh
> @@ -106,7 +106,8 @@ all_compiled_sources()
> case "$i" in
> *.[cS])
> j=${i/\.[cS]/\.o}
> - if [ -e $j ]; then
> + k="${j#$tree}"
> + if [ -e $j -o -e "$k" ]; then
Do we need to check both srctree and objtree?
I think checking objtree (after $tree is ripped off) is enough.
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2] tags: honor COMPILED_SOURCE with apart output directory
2017-04-24 18:06 ` Masahiro Yamada
@ 2017-04-25 20:07 ` Robert Jarzmik
2017-04-30 14:53 ` Masahiro Yamada
0 siblings, 1 reply; 11+ messages in thread
From: Robert Jarzmik @ 2017-04-25 20:07 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Michal Marek, Linux Kernel Mailing List, Linux Kbuild mailing list
Masahiro Yamada <yamada.masahiro@socionext.com> writes:
> Hi Robert,
>> diff --git a/scripts/tags.sh b/scripts/tags.sh
>> index a2ff3388e5ea..35cb64d5211c 100755
>> --- a/scripts/tags.sh
>> +++ b/scripts/tags.sh
>> @@ -106,7 +106,8 @@ all_compiled_sources()
>> case "$i" in
>> *.[cS])
>> j=${i/\.[cS]/\.o}
>> - if [ -e $j ]; then
>> + k="${j#$tree}"
>> + if [ -e $j -o -e "$k" ]; then
>
>
> Do we need to check both srctree and objtree?
> I think checking objtree (after $tree is ripped off) is enough.
If I remember correctly, as this goes back a couple of monthes when I made the
tests of this patch, the srctree is checked for the case when the kernel is
compiled without O=, and objtree for the case with O=.
Cheers.
--
Robert
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2] tags: honor COMPILED_SOURCE with apart output directory
2017-04-25 20:07 ` Robert Jarzmik
@ 2017-04-30 14:53 ` Masahiro Yamada
2017-05-04 6:29 ` Robert Jarzmik
0 siblings, 1 reply; 11+ messages in thread
From: Masahiro Yamada @ 2017-04-30 14:53 UTC (permalink / raw)
To: Robert Jarzmik
Cc: Michal Marek, Linux Kernel Mailing List, Linux Kbuild mailing list
Hi Robert,
2017-04-26 5:07 GMT+09:00 Robert Jarzmik <robert.jarzmik@free.fr>:
> Masahiro Yamada <yamada.masahiro@socionext.com> writes:
>
>> Hi Robert,
>>> diff --git a/scripts/tags.sh b/scripts/tags.sh
>>> index a2ff3388e5ea..35cb64d5211c 100755
>>> --- a/scripts/tags.sh
>>> +++ b/scripts/tags.sh
>>> @@ -106,7 +106,8 @@ all_compiled_sources()
>>> case "$i" in
>>> *.[cS])
>>> j=${i/\.[cS]/\.o}
>>> - if [ -e $j ]; then
>>> + k="${j#$tree}"
>>> + if [ -e $j -o -e "$k" ]; then
>>
>>
>> Do we need to check both srctree and objtree?
>> I think checking objtree (after $tree is ripped off) is enough.
>
> If I remember correctly, as this goes back a couple of monthes when I made the
> tests of this patch, the srctree is checked for the case when the kernel is
> compiled without O=, and objtree for the case with O=.
I thought of this too, but if O= is given, objects in srctree
should not be checked.
For example, the kernel may be compiled for ARCH=arm with O= first,
then for ARCH=x86 without O= second.
If we include objects from both trees, the generated tag file
will be a mixture of arm and x86.
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2] tags: honor COMPILED_SOURCE with apart output directory
2017-04-30 14:53 ` Masahiro Yamada
@ 2017-05-04 6:29 ` Robert Jarzmik
2017-05-06 15:57 ` Masahiro Yamada
0 siblings, 1 reply; 11+ messages in thread
From: Robert Jarzmik @ 2017-05-04 6:29 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Michal Marek, Linux Kernel Mailing List, Linux Kbuild mailing list
Masahiro Yamada <yamada.masahiro@socionext.com> writes:
> Hi Robert,
>
> 2017-04-26 5:07 GMT+09:00 Robert Jarzmik <robert.jarzmik@free.fr>:
>> Masahiro Yamada <yamada.masahiro@socionext.com> writes:
>>
>>> Hi Robert,
>>>> diff --git a/scripts/tags.sh b/scripts/tags.sh
>>>> index a2ff3388e5ea..35cb64d5211c 100755
>>>> --- a/scripts/tags.sh
>>>> +++ b/scripts/tags.sh
>>>> @@ -106,7 +106,8 @@ all_compiled_sources()
>>>> case "$i" in
>>>> *.[cS])
>>>> j=${i/\.[cS]/\.o}
>>>> - if [ -e $j ]; then
>>>> + k="${j#$tree}"
>>>> + if [ -e $j -o -e "$k" ]; then
>>>
>>>
>>> Do we need to check both srctree and objtree?
>>> I think checking objtree (after $tree is ripped off) is enough.
>>
>> If I remember correctly, as this goes back a couple of monthes when I made the
>> tests of this patch, the srctree is checked for the case when the kernel is
>> compiled without O=, and objtree for the case with O=.
>
>
> I thought of this too, but if O= is given, objects in srctree
> should not be checked.
>
> For example, the kernel may be compiled for ARCH=arm with O= first,
> then for ARCH=x86 without O= second.
>
> If we include objects from both trees, the generated tag file
> will be a mixture of arm and x86.
That's true, but is this case worth an additional test for this case, ie. is it
a case anybody uses ? Given that that this tags generation never worked for out
of tree builds, I was thinking it wasn't worth a :
[[ (-z $O -a -e $j) || (-n $O -a -e $k) ]];
Cheers.
--
Robert
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2] tags: honor COMPILED_SOURCE with apart output directory
2017-05-04 6:29 ` Robert Jarzmik
@ 2017-05-06 15:57 ` Masahiro Yamada
2017-06-05 6:05 ` Masahiro Yamada
0 siblings, 1 reply; 11+ messages in thread
From: Masahiro Yamada @ 2017-05-06 15:57 UTC (permalink / raw)
To: Robert Jarzmik
Cc: Michal Marek, Linux Kernel Mailing List, Linux Kbuild mailing list
Hi Robert,
2017-05-04 15:29 GMT+09:00 Robert Jarzmik <robert.jarzmik@free.fr>:
> Masahiro Yamada <yamada.masahiro@socionext.com> writes:
>
>> Hi Robert,
>>
>> 2017-04-26 5:07 GMT+09:00 Robert Jarzmik <robert.jarzmik@free.fr>:
>>> Masahiro Yamada <yamada.masahiro@socionext.com> writes:
>>>
>>>> Hi Robert,
>>>>> diff --git a/scripts/tags.sh b/scripts/tags.sh
>>>>> index a2ff3388e5ea..35cb64d5211c 100755
>>>>> --- a/scripts/tags.sh
>>>>> +++ b/scripts/tags.sh
>>>>> @@ -106,7 +106,8 @@ all_compiled_sources()
>>>>> case "$i" in
>>>>> *.[cS])
>>>>> j=${i/\.[cS]/\.o}
>>>>> - if [ -e $j ]; then
>>>>> + k="${j#$tree}"
>>>>> + if [ -e $j -o -e "$k" ]; then
>>>>
>>>>
>>>> Do we need to check both srctree and objtree?
>>>> I think checking objtree (after $tree is ripped off) is enough.
>>>
>>> If I remember correctly, as this goes back a couple of monthes when I made the
>>> tests of this patch, the srctree is checked for the case when the kernel is
>>> compiled without O=, and objtree for the case with O=.
>>
>>
>> I thought of this too, but if O= is given, objects in srctree
>> should not be checked.
>>
>> For example, the kernel may be compiled for ARCH=arm with O= first,
>> then for ARCH=x86 without O= second.
>>
>> If we include objects from both trees, the generated tag file
>> will be a mixture of arm and x86.
> That's true, but is this case worth an additional test for this case, ie. is it
> a case anybody uses ? Given that that this tags generation never worked for out
> of tree builds, I was thinking it wasn't worth a :
> [[ (-z $O -a -e $j) || (-n $O -a -e $k) ]];
I am not saying we should do like that.
My suggestion is even simpler.
Can we do like this?
diff --git a/scripts/tags.sh b/scripts/tags.sh
index d661f2f..d23dcbf 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -106,6 +106,7 @@ all_compiled_sources()
case "$i" in
*.[cS])
j=${i/\.[cS]/\.o}
+ j="${j#$tree}"
if [ -e $j ]; then
echo $i
fi
--
Best Regards
Masahiro Yamada
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2] tags: honor COMPILED_SOURCE with apart output directory
2017-05-06 15:57 ` Masahiro Yamada
@ 2017-06-05 6:05 ` Masahiro Yamada
2017-06-05 6:16 ` Masahiro Yamada
2017-06-05 12:00 ` Robert Jarzmik
0 siblings, 2 replies; 11+ messages in thread
From: Masahiro Yamada @ 2017-06-05 6:05 UTC (permalink / raw)
To: Robert Jarzmik
Cc: Michal Marek, Linux Kernel Mailing List, Linux Kbuild mailing list
Hi Robert,
2017-05-07 0:57 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>:
> Hi Robert,
>
> 2017-05-04 15:29 GMT+09:00 Robert Jarzmik <robert.jarzmik@free.fr>:
>> Masahiro Yamada <yamada.masahiro@socionext.com> writes:
>>
>>> Hi Robert,
>>>
>>> 2017-04-26 5:07 GMT+09:00 Robert Jarzmik <robert.jarzmik@free.fr>:
>>>> Masahiro Yamada <yamada.masahiro@socionext.com> writes:
>>>>
>>>>> Hi Robert,
>>>>>> diff --git a/scripts/tags.sh b/scripts/tags.sh
>>>>>> index a2ff3388e5ea..35cb64d5211c 100755
>>>>>> --- a/scripts/tags.sh
>>>>>> +++ b/scripts/tags.sh
>>>>>> @@ -106,7 +106,8 @@ all_compiled_sources()
>>>>>> case "$i" in
>>>>>> *.[cS])
>>>>>> j=${i/\.[cS]/\.o}
>>>>>> - if [ -e $j ]; then
>>>>>> + k="${j#$tree}"
>>>>>> + if [ -e $j -o -e "$k" ]; then
>>>>>
>>>>>
>>>>> Do we need to check both srctree and objtree?
>>>>> I think checking objtree (after $tree is ripped off) is enough.
>>>>
>>>> If I remember correctly, as this goes back a couple of monthes when I made the
>>>> tests of this patch, the srctree is checked for the case when the kernel is
>>>> compiled without O=, and objtree for the case with O=.
>>>
>>>
>>> I thought of this too, but if O= is given, objects in srctree
>>> should not be checked.
>>>
>>> For example, the kernel may be compiled for ARCH=arm with O= first,
>>> then for ARCH=x86 without O= second.
>>>
>>> If we include objects from both trees, the generated tag file
>>> will be a mixture of arm and x86.
>> That's true, but is this case worth an additional test for this case, ie. is it
>> a case anybody uses ? Given that that this tags generation never worked for out
>> of tree builds, I was thinking it wasn't worth a :
>> [[ (-z $O -a -e $j) || (-n $O -a -e $k) ]];
>
>
> I am not saying we should do like that.
>
>
> My suggestion is even simpler.
>
> Can we do like this?
>
>
> diff --git a/scripts/tags.sh b/scripts/tags.sh
> index d661f2f..d23dcbf 100755
> --- a/scripts/tags.sh
> +++ b/scripts/tags.sh
> @@ -106,6 +106,7 @@ all_compiled_sources()
> case "$i" in
> *.[cS])
> j=${i/\.[cS]/\.o}
> + j="${j#$tree}"
> if [ -e $j ]; then
> echo $i
> fi
>
>
I tested the code above, and it worked fine.
Could you send v3? Then, I will apply it soon.
Or, if you are not reluctant to do so,
may I modify your patch like above?
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2] tags: honor COMPILED_SOURCE with apart output directory
2017-06-05 6:05 ` Masahiro Yamada
@ 2017-06-05 6:16 ` Masahiro Yamada
2017-06-05 12:00 ` Robert Jarzmik
1 sibling, 0 replies; 11+ messages in thread
From: Masahiro Yamada @ 2017-06-05 6:16 UTC (permalink / raw)
To: Robert Jarzmik
Cc: Michal Marek, Linux Kernel Mailing List, Linux Kbuild mailing list
2017-06-05 15:05 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>:
> I tested the code above, and it worked fine.
>
> Could you send v3? Then, I will apply it soon.
>
> Or, if you are not reluctant to do so,
> may I modify your patch like above?
I meant "if you are reluctant to do so..."
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2] tags: honor COMPILED_SOURCE with apart output directory
2017-06-05 6:05 ` Masahiro Yamada
2017-06-05 6:16 ` Masahiro Yamada
@ 2017-06-05 12:00 ` Robert Jarzmik
1 sibling, 0 replies; 11+ messages in thread
From: Robert Jarzmik @ 2017-06-05 12:00 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Michal Marek, Linux Kernel Mailing List, Linux Kbuild mailing list
Masahiro Yamada <yamada.masahiro@socionext.com> writes:
> Hi Robert,
Hi Masahiro,
Sorry, I was out lately.
I sent a v3, thanks for keeping up pushing for this one.
Cheers.
--
Robert
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2017-06-05 12:01 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-15 16:35 [PATCH v2] tags: honor COMPILED_SOURCE with apart output directory Robert Jarzmik
2017-01-23 6:22 ` Robert Jarzmik
2017-02-14 7:33 ` Robert Jarzmik
2017-04-24 18:06 ` Masahiro Yamada
2017-04-25 20:07 ` Robert Jarzmik
2017-04-30 14:53 ` Masahiro Yamada
2017-05-04 6:29 ` Robert Jarzmik
2017-05-06 15:57 ` Masahiro Yamada
2017-06-05 6:05 ` Masahiro Yamada
2017-06-05 6:16 ` Masahiro Yamada
2017-06-05 12:00 ` Robert Jarzmik
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.