[edk2,5/7] ArmPkg/ArmExceptionLib: make build time define visible to the compiler

Message ID 1458220815-6944-6-git-send-email-ard.biesheuvel@linaro.org
State Accepted
Commit 8a771a2e39771b950823abcd3786e82cfd8e6e27
Headers show

Commit Message

Ard Biesheuvel March 17, 2016, 1:20 p.m.
The global gArmRelocateVectorTable is a build time constant, but due to
its external linkage and lack of constness, the compiler does not see that.
So turn it into a static boolean, and at the same time, make the function
CopyExceptionHandlers() (which is only called if gArmRelocateVectorTable is
set) static as well, so that the compiler can eliminate it completely if
we are using the vector table in place.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

---
 ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

-- 
2.5.0

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Patch

diff --git a/ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.c b/ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.c
index 5977a3e8fae1..0cf0766b9cbf 100644
--- a/ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.c
+++ b/ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.c
@@ -26,6 +26,7 @@ 
 #include <Library/DebugLib.h>
 #include <Library/DefaultExceptionHandlerLib.h>
 
+STATIC
 RETURN_STATUS
 CopyExceptionHandlers(
   IN  PHYSICAL_ADDRESS        BaseAddress
@@ -66,9 +67,9 @@  extern UINTN                    gDebuggerNoHandlerValue;
 // library we cannot represent this in a PCD since PCDs are evaluated on
 // a per-module basis.
 #if defined(ARM_RELOCATE_VECTORS)
-BOOLEAN gArmRelocateVectorTable = TRUE;
+STATIC CONST BOOLEAN gArmRelocateVectorTable = TRUE;
 #else
-BOOLEAN gArmRelocateVectorTable = FALSE;
+STATIC CONST BOOLEAN gArmRelocateVectorTable = FALSE;
 #endif
 
 
@@ -151,6 +152,7 @@  with default exception handlers.
 @retval EFI_UNSUPPORTED       This function is not supported.
 
 **/
+STATIC
 RETURN_STATUS
 CopyExceptionHandlers(
   IN  PHYSICAL_ADDRESS        BaseAddress