feat(st): adapt stm32 linker scripts for clang

With Clang, the address inside a section does not seem relative to its
start address. Use ABSOLUTE keyword for those addresses.
For stm32 binary containing BL2 and its DT, we can use that as PIE is
not used (either disabled or used with BL2_IN_XIP_MEM).
This is still working with GCC.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: I4e06c8a72c41370695db27fb6c52414487dfae47
diff --git a/plat/st/stm32mp1/stm32mp1.ld.S b/plat/st/stm32mp1/stm32mp1.ld.S
index 873b2ae..c9d9873 100644
--- a/plat/st/stm32mp1/stm32mp1.ld.S
+++ b/plat/st/stm32mp1/stm32mp1.ld.S
@@ -43,7 +43,7 @@
          * The strongest and only alignment contraint is MMU 4K page.
          * Indeed as images below will be removed, 4K pages will be re-used.
          */
-        . = ( STM32MP_BL2_DTB_BASE - STM32MP_BINARY_BASE );
+        . = ABSOLUTE( STM32MP_BL2_DTB_BASE );
         __DTB_IMAGE_START__ = .;
         *(.dtb_image*)
         __DTB_IMAGE_END__ = .;
@@ -54,9 +54,9 @@
          * Indeed as images below will be removed, 4K pages will be re-used.
          */
 #if SEPARATE_CODE_AND_RODATA
-        . = ( STM32MP_BL2_RO_BASE - STM32MP_BINARY_BASE );
+        . = ABSOLUTE( STM32MP_BL2_RO_BASE );
 #else
-        . = ( STM32MP_BL2_BASE - STM32MP_BINARY_BASE );
+        . = ABSOLUTE( STM32MP_BL2_BASE );
 #endif
         __BL2_IMAGE_START__ = .;
         *(.bl2_image*)
diff --git a/plat/st/stm32mp2/aarch64/stm32mp2.ld.S b/plat/st/stm32mp2/aarch64/stm32mp2.ld.S
index cf28540..cf71f27 100644
--- a/plat/st/stm32mp2/aarch64/stm32mp2.ld.S
+++ b/plat/st/stm32mp2/aarch64/stm32mp2.ld.S
@@ -43,7 +43,7 @@
          * The strongest and only alignment contraint is MMU 4K page.
          * Indeed as images below will be removed, 4K pages will be re-used.
          */
-        . = ( STM32MP_BL2_DTB_BASE - STM32MP_BINARY_BASE );
+        . = ABSOLUTE( STM32MP_BL2_DTB_BASE );
         __DTB_IMAGE_START__ = .;
         *(.dtb_image*)
         __DTB_IMAGE_END__ = .;
@@ -54,9 +54,9 @@
          * Indeed as images below will be removed, 4K pages will be re-used.
          */
 #if SEPARATE_CODE_AND_RODATA
-        . = ( STM32MP_BL2_RO_BASE - STM32MP_BINARY_BASE );
+        . = ABSOLUTE( STM32MP_BL2_RO_BASE );
 #else
-        . = ( STM32MP_BL2_BASE - STM32MP_BINARY_BASE );
+        . = ABSOLUTE( STM32MP_BL2_BASE );
 #endif
         __BL2_IMAGE_START__ = .;
         *(.bl2_image*)