[U-Boot] Full paths when compiling

Simon Glass sjg at chromium.org
Tue Jan 6 03:44:36 CET 2015


Hi Masahiro,

On 5 January 2015 at 07:32, Masahiro YAMADA <yamada.m at jp.panasonic.com> wrote:
> Hi Simon,
>
>
> 2015-01-05 11:11 GMT+09:00 Simon Glass <sjg at chromium.org>:
>> Hi Masahiro,
>>
>> I notice that when compiling I get the full paths to the source when I
>> use __FILE__:
>>
>> /home/sjg/c/src/third_party/u-boot/files/cros/lib/readwrite.c:
>> vboot_rw_select_kernel: VbSelectAndLoadKernel: 65552
>> /home/sjg/c/src/third_party/u-boot/files/cros/lib/vboot.c:
>> vboot_set_error: Stage 'VbSelectAndLoadKernel' produced vboot error
>> 0x10010
>> /home/sjg/c/src/third_party/u-boot/files/cros/vboot/stages.c:
>> vboot_run_stage: Error: stage 'rw_selectkernel' returned -1
>>
>> Is there a way to only get the relative path, say "cros/lib/readwrite.c"?
>
>
>
> [1] In-tree build (without O=...)
>
> [2] Out-of-tree build and the build directory is right under the source tree
>     For example, O=foo
>
> [3] Out-of-tree build and the build directory is not right under the source tree
>     For example, O=foo/bar  or O=../foo
>
>
> __FILE__  points to the source file in relative path for [1] and [2],
> and in absolute path for [3].
>
>
> I guess you are doing [3].  Just try [1] or [2].
>
>
>
> FYI, the relative/absolute path is determined by "srctree" of the top Makefile.
>
>
>
> ifeq ($(KBUILD_SRC),)
>         # building in the source tree
>         srctree := .
> else
>         ifeq ($(KBUILD_SRC)/,$(dir $(CURDIR)))
>                 # building in a subdirectory of the source tree
>                 srctree := ..
>         else
>                 srctree := $(KBUILD_SRC)
>         endif
> endif

Thanks for the info, that explains what is going on. I changed from
[2] to [3] recently but didn't notice the problem right away. I wonder
whether it would be better to always use the srcroot-relative path
when compiling? What is the benefit of the full path? Or maybe it
should be controllable somehow?

Regards,
Simon


More information about the U-Boot mailing list