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
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
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