mbox series

[0/2] kbuild: use relative path from $(srctree) instead of __FILE__

Message ID 1507802164-31614-1-git-send-email-yamada.masahiro@socionext.com
Headers show
Series kbuild: use relative path from $(srctree) instead of __FILE__ | expand

Message

Masahiro Yamada Oct. 12, 2017, 9:56 a.m. UTC
Kbuild works in objtree, not in srctree.  So, __FILE__ is prefixed
with $(srctree)/ for out-of-tree build.

For example, WARN_ON() will look as follows if you built your kernel
out of source tree:

WARNING: CPU: 1 PID: 1 at /path/to/build/directory/arch/arm64/kernel/foo.c:...

With this series, it will always look like follows regardless of O= option.

WARNING: CPU: 1 PID: 1 at arch/arm64/kernel/foo.c:...

If GCC does not support -Wno-builtin-macro-redefined (i.e. gcc version < 4.4),
the output is prefixed with absolute path.



Masahiro Yamada (2):
  kbuild: add stringify helper to quote a string passed to C files
  kbuild: redefine __FILE__ as relative path from $(srctree) if possible

 Makefile               | 9 +++++++++
 scripts/Kbuild.include | 4 ++++
 scripts/Makefile.lib   | 2 +-
 3 files changed, 14 insertions(+), 1 deletion(-)

-- 
2.7.4

Comments

Masahiro Yamada Oct. 14, 2017, 3:17 a.m. UTC | #1
2017-10-12 18:56 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>:
>

> Kbuild works in objtree, not in srctree.  So, __FILE__ is prefixed

> with $(srctree)/ for out-of-tree build.

>

> For example, WARN_ON() will look as follows if you built your kernel

> out of source tree:

>

> WARNING: CPU: 1 PID: 1 at /path/to/build/directory/arch/arm64/kernel/foo.c:...

>

> With this series, it will always look like follows regardless of O= option.

>

> WARNING: CPU: 1 PID: 1 at arch/arm64/kernel/foo.c:...

>

> If GCC does not support -Wno-builtin-macro-redefined (i.e. gcc version < 4.4),

> the output is prefixed with absolute path.

>


I expect to replace __FILE__ with its relative path,
but actually it replaces __FILE__ with relative path of __BASE_FILE__.
This will change the behavior in several places.

I take back this series.


-- 
Best Regards
Masahiro Yamada