From 7ffc433c2ec1db3a600ad78ba4c44d863991967f Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Wed, 24 May 2023 22:05:50 +0800 Subject: BaseTools: make sure the got is empty Add ASSERT()s that .got and .got.plt sections are empty to linker scripts for gcc and clang. Suggested-by: Ard Biesheuvel Signed-off-by: Gerd Hoffmann Reviewed-by: Liming Gao Reviewed-by: Rebecca Cran --- BaseTools/Scripts/ClangBase.lds | 10 ++++++++++ BaseTools/Scripts/GccBase.lds | 10 ++++++++++ 2 files changed, 20 insertions(+) (limited to 'BaseTools/Scripts') diff --git a/BaseTools/Scripts/ClangBase.lds b/BaseTools/Scripts/ClangBase.lds index 61452dd..c7dcd20 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 83cebd2..9f27e83 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. -- cgit v1.1