diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2018-09-17 08:24:25 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-09-17 09:33:54 +0200 |
commit | cec347bff0f2225540a8c188835978d46ab35790 (patch) | |
tree | 4d041f8aaa0f478763864b242a0565b2bdcc9f01 /arch/arm/include | |
parent | 1bcddfb3215c27a87e86190cf492aaa68fd0019f (diff) | |
download | barebox-cec347bff0f2225540a8c188835978d46ab35790.tar.gz barebox-cec347bff0f2225540a8c188835978d46ab35790.tar.xz |
ARM: Multi PBL: Fix image calculation for certain toolchains
The current way to calculate the compressed image position works
with the OSELAS toolchains, but not with the Debian/Ubuntu toolchains.
For these toolchains &image_end_marker already returns the correct
address, adding global_variable_offset() to it is wrong.
The solution seems to be to put the image_end_marker into a different
object file so that the compiler cannot play any tricks to resolve
the address internally in the object file.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/include')
-rw-r--r-- | arch/arm/include/asm/sections.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/include/asm/sections.h b/arch/arm/include/asm/sections.h index 6933c7032d..b4659256cc 100644 --- a/arch/arm/include/asm/sections.h +++ b/arch/arm/include/asm/sections.h @@ -3,6 +3,7 @@ #ifndef __ASSEMBLY__ #include <asm-generic/sections.h> +#include <linux/types.h> extern char __rel_dyn_start[]; extern char __rel_dyn_end[]; @@ -10,6 +11,7 @@ extern char __dynsym_start[]; extern char __dynsym_end[]; extern char __exceptions_start[]; extern char __exceptions_stop[]; +extern uint32_t __image_end_marker[]; #endif |