symbols: Change implementation details of DECLARE_OPTIONAL_REGION()

It seems that GCC's LTO doesn't like the way we implement
DECLARE_OPTIONAL_REGION(). This patch changes it so that rather than
having a normal DECLARE_REGION() in <symbols.h> and then an extra
DECLARE_OPTIONAL_REGION() in the C file using it, you just say
DECLARE_OPTIONAL_REGION() directly in <symbols.h> (in place and instead
of the usual DECLARE_REGION()). This basically looks the same way in the
resulting object file but somehow LTO seems to like it better.

Signed-off-by: Julius Werner <jwerner@chromium.org>
Change-Id: I6096207b311d70c8e9956cd9406bec45be04a4a2
Reviewed-on: https://review.coreboot.org/c/coreboot/+/44791
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jacob Garber <jgarber1@ualberta.ca>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: HAOUAS Elyes <ehaouas@noos.fr>
This commit is contained in:
Julius Werner
2020-08-25 16:00:44 -07:00
parent 8cc80d5e50
commit 644a512e56
10 changed files with 17 additions and 31 deletions

View File

@ -5,6 +5,6 @@
#include <symbols.h>
DECLARE_REGION(watchdog_tombstone)
DECLARE_OPTIONAL_REGION(watchdog_tombstone)
#endif /* __CHROMEOS_SYMBOLS_H */

View File

@ -14,8 +14,6 @@
#define WATCHDOG_TOMBSTONE_MAGIC 0x9d2f41a7
DECLARE_OPTIONAL_REGION(watchdog_tombstone);
static void elog_handle_watchdog_tombstone(void *unused)
{
bool flag = false;