2017-06-05 12:00:20

by Robert Jarzmik

[permalink] [raw]
Subject: [PATCH v3] tags: honor COMPILED_SOURCE with apart output directory

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 <[email protected]>
---
Since v1: amended k expression, Marek's comments
Since v2: removed k from Masahiro's comments
---
scripts/tags.sh | 1 +
1 file changed, 1 insertion(+)

diff --git a/scripts/tags.sh b/scripts/tags.sh
index a2ff3388e5ea..2a61db329adf 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
--
2.1.4


2017-06-05 23:58:16

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH v3] tags: honor COMPILED_SOURCE with apart output directory

Hi Robert,

I wanted you to update the log.

2017-06-05 20:59 GMT+09:00 Robert Jarzmik <[email protected]>:
> 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 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.

only in the 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.

"k" is no longer used in v3.


> Signed-off-by: Robert Jarzmik <[email protected]>



I fixed up the git description and applied to linux-kbuild/fixes.
If you see something wrong, please let me know.



--
Best Regards
Masahiro Yamada

2017-06-06 06:13:43

by Robert Jarzmik

[permalink] [raw]
Subject: Re: [PATCH v3] tags: honor COMPILED_SOURCE with apart output directory

Masahiro Yamada <[email protected]> writes:

> Hi Robert,
>
> I wanted you to update the log.
>
> 2017-06-05 20:59 GMT+09:00 Robert Jarzmik <[email protected]>:
>> 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 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.
>
> only in the 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.
>
> "k" is no longer used in v3.
>
>
>> Signed-off-by: Robert Jarzmik <[email protected]>
>
>
>
> I fixed up the git description and applied to linux-kbuild/fixes.
> If you see something wrong, please let me know.
Your changes are perfectly correct, thanks.

Cheers.

--
Robert