[U-Boot] __FILE__ usage and and SPL limits for SRAM

Felipe Balbi felipe.balbi at linux.intel.com
Tue Mar 28 11:47:03 UTC 2017


Hi,

Nishanth Menon <nm at ti.com> writes:
> Hi Masahiro-san,
>
> On Tue, Mar 28, 2017 at 1:29 AM, Masahiro Yamada
> <yamada.masahiro at socionext.com> wrote:
> [...]
>>
>> When O= is given, the build system runs in the object tree,
>> not in the source tree.
>> (This is the same as Linux.)
>>
>> If you see 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
>>
>>
>>
>>
>> If O=  points to a sub-directory of the source tree,
>> the relative path "srctree := .." is used.
>>
>> Otherwise, the absolute path srctree := $(KBUILD_SRC) is used.
>> In your case, "O=../b" means the source tree and the obj tree
>> are siblings.  So, absolute path.
>
> I did simplify this a bit with O=../b to highlight exactly what you
> mentioned above. in our case, the O=path points to a completely
> different directory path.
>
>> If you want to see a short relative path for __FILE__,
>> I'd recommend to use a sub-directory for O=.
>>
>> For example, your source tree is located at
>> ~/aaaaaaaaa/bbbbbbb/cccccccc/u-boot,
>> create a directory  ~/aaaaaaaaa/bbbbbbb/cccccccc/u-boot/foo,
>> then give  O=foo
>
> Typical product build such as OE recipes used (in our case) does not
> build into the source folder, instead, all binary builds are pointed
> to either a temporary location or a package build location. So, while
> O=source_path/build would aliviate the problem, it still does'nt
> really solve the root of the issue.

have you tried using __BASE_FILE__ instead of __FILE__? You could also
redefine __FILE__ or __BASE_FILE__ while building SPL.

-- 
balbi


More information about the U-Boot mailing list