Fix build error with optimizations disabled (-O0)
authorSandrine Bailleux <sandrine.bailleux@arm.com>
Mon, 11 Apr 2016 12:17:50 +0000 (13:17 +0100)
committerSandrine Bailleux <sandrine.bailleux@arm.com>
Thu, 14 Apr 2016 15:24:03 +0000 (16:24 +0100)
commit10c252c14b7f446c0b49ef1aafbd5d37804577dd
tree5c3790bfeedbfdefbfdd5757fb62d026a93f64bf
parent403973c95daa62b8411f789a8a93ef9e18b7f980
Fix build error with optimizations disabled (-O0)

If Trusted Firmware is built with optimizations disabled (-O0), the
linker throws the following error:

    undefined reference to 'xxx'

Where 'xxx' is a raw inline function defined in a header file. The
reason is that, with optimizations disabled, GCC may decide to skip
the inlining. If that is the case, an external definition to the
compilation unit must be provided. Because no external definition
is present, the linker throws the error.

This patch fixes the problem by declaring the following inline
functions static, so the internal definition is used:
 - cm_set_next_context()
 - bakery_lock_init()

Note that building the TF with optimizations disabled when Trusted
Board Boot is enabled is currently unsupported, as this makes the BL2
image too big to fit in memory without any adjustment of its base
address. Similarly, disabling optimizations for debug builds on FVP
is unsupported at the moment.

Change-Id: I284a9f84cc8df96a0c1a52dfe05c9e8544c0cefe
include/common/context_mgmt.h
include/lib/bakery_lock.h