efi: Drop preprocessor directives from zboot.lds
authorVitaly Kuznetsov <vkuznets@redhat.com>
Fri, 6 Jun 2025 15:41:12 +0000 (17:41 +0200)
committerArd Biesheuvel <ardb@kernel.org>
Tue, 10 Jun 2025 16:47:55 +0000 (18:47 +0200)
Older versions of `ld` don't seem to support preprocessor directives in
linker scripts, e.g. on RHEL9's ld-2.35.2-63.el9 the build fails with:

 ld:./drivers/firmware/efi/libstub/zboot.lds:32: ignoring invalid character `#' in expression
 ld:./drivers/firmware/efi/libstub/zboot.lds:33: syntax error

We don't seem to need these '#ifdef', no empty .sbat section is created
when CONFIG_EFI_SBAT_FILE="":

 # objdump -h arch/arm64/boot/vmlinuz.efi

 arch/arm64/boot/vmlinuz.efi:     file format pei-aarch64-little

 Sections:
 Idx Name          Size      VMA               LMA               File off  Algn
   0 .text         00b94000  0000000000001000  0000000000001000  00001000  2**2
                   CONTENTS, ALLOC, LOAD, READONLY, CODE
   1 .data         00000200  0000000000b95000  0000000000b95000  00b95000  2**2
                   CONTENTS, ALLOC, LOAD, DATA

Fixes: 0f9a1739dd0e ("efi: zboot specific mechanism for embedding SBAT section")
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
drivers/firmware/efi/libstub/zboot.lds

index c3a166675450d52c096c4dd717e3a6f0dade56db..4b8d5cd3dfa2776f927b4149a9c8aa63aa7e61cb 100644 (file)
@@ -29,14 +29,12 @@ SECTIONS
                . = _etext;
        }
 
-#ifdef CONFIG_EFI_SBAT
         .sbat : ALIGN(4096) {
                _sbat = .;
                *(.sbat)
                _esbat = ALIGN(4096);
                . = _esbat;
        }
-#endif
 
        .data : ALIGN(4096) {
                _data = .;