Add ASSERT()s that .got and .got.plt sections are empty
to linker scripts for gcc and clang.

Suggested-by: Ard Biesheuvel <a...@kernel.org>
Signed-off-by: Gerd Hoffmann <kra...@redhat.com>
Reviewed-by: Liming Gao <gaolim...@byosoft.com.cn>
Reviewed-by: Rebecca Cran <rebe...@bsdio.com>
---
 BaseTools/Scripts/ClangBase.lds | 10 ++++++++++
 BaseTools/Scripts/GccBase.lds   | 10 ++++++++++
 2 files changed, 20 insertions(+)

diff --git a/BaseTools/Scripts/ClangBase.lds b/BaseTools/Scripts/ClangBase.lds
index 61452ddd9506..c7dcd2024ac8 100644
--- a/BaseTools/Scripts/ClangBase.lds
+++ b/BaseTools/Scripts/ClangBase.lds
@@ -59,6 +59,16 @@ SECTIONS {
     KEEP (*(.hii))
   }
 
+  .got : {
+    *(.got)
+  }
+  ASSERT(SIZEOF(.got) == 0, "Unexpected GOT entries detected!")
+
+  .got.plt (INFO) : {
+    *(.got.plt)
+  }
+  ASSERT(SIZEOF(.got.plt) == 0 || SIZEOF(.got.plt) == 0xc || SIZEOF(.got.plt) 
== 0x18, "Unexpected GOT/PLT entries detected!")
+
   /*
    * Retain the GNU build id but in a non-allocatable section so GenFw
    * does not copy it into the PE/COFF image.
diff --git a/BaseTools/Scripts/GccBase.lds b/BaseTools/Scripts/GccBase.lds
index 83cebd29d599..9f27e83bb0fc 100644
--- a/BaseTools/Scripts/GccBase.lds
+++ b/BaseTools/Scripts/GccBase.lds
@@ -59,6 +59,16 @@ SECTIONS {
     KEEP (*(.hii))
   }
 
+  .got : {
+    *(.got)
+  }
+  ASSERT(SIZEOF(.got) == 0, "Unexpected GOT entries detected!")
+
+  .got.plt (INFO) : {
+    *(.got.plt)
+  }
+  ASSERT(SIZEOF(.got.plt) == 0 || SIZEOF(.got.plt) == 0xc || SIZEOF(.got.plt) 
== 0x18, "Unexpected GOT/PLT entries detected!")
+
   /*
    * Retain the GNU build id but in a non-allocatable section so GenFw
    * does not copy it into the PE/COFF image.
-- 
2.40.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#105250): https://edk2.groups.io/g/devel/message/105250
Mute This Topic: https://groups.io/mt/99109295/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to