Bladeren bron

Split out rodata

rodata should be split for security

Signed-off-by: Callum Farmer <gmbr3@opensuse.org>
Callum Farmer 1 jaar geleden
bovenliggende
commit
b3e80c38bc

+ 1 - 1
Make.rules

@@ -37,7 +37,7 @@
 .SECONDARY:
 
 %.efi: %.so
-	$(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .rel \
+	$(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .rodata -j .rel \
 		    -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* \
 		    -j .reloc $(FORMAT) $*.so $@
 

+ 2 - 2
gnuefi/elf_aarch64_efi.lds

@@ -17,8 +17,6 @@ SECTIONS
     *(.text)
     *(.text.*)
     *(.gnu.linkonce.t.*)
-    *(.srodata)
-    *(.rodata*)
     . = ALIGN(16);
   }
   _etext = .;
@@ -99,6 +97,8 @@ SECTIONS
   }
   . = ALIGN(4096);
   .rela.plt : { *(.rela.plt) }
+  . = ALIGN(4096);
+  .rodata : { *(.rodata*) }
   . = ALIGN(512);
   _edata = .;
   _data_size = _edata - _data;

+ 2 - 2
gnuefi/elf_arm_efi.lds

@@ -9,8 +9,6 @@ SECTIONS
     *(.text)
     *(.text.*)
     *(.gnu.linkonce.t.*)
-    *(.srodata)
-    *(.rodata*)
     . = ALIGN(16);
   }
   _etext = .;
@@ -85,6 +83,8 @@ SECTIONS
   }
   . = ALIGN(4096);
   .rel.plt : { *(.rel.plt) }
+  . = ALIGN(4096);
+  .rodata : { *(.rodata*) }
   _edata = .;
   _data_size = _edata - _etext;
 

+ 2 - 1
gnuefi/elf_ia32_efi.lds

@@ -27,7 +27,6 @@ SECTIONS
    _data = .;
    *(.got.plt)
    *(.got)
-   *(.rodata*)
    *(.data)
    *(.data1)
    *(.data.*)
@@ -88,6 +87,8 @@ SECTIONS
   }
   . = ALIGN(4096);
   .rel.plt : { *(.rel.plt) }
+  . = ALIGN(4096);
+  .rodata : { *(.rodata*) }
   _edata = .;
   _data_size = _edata - _etext;
   . = ALIGN(4096);

+ 2 - 2
gnuefi/elf_loongarch64_efi.lds

@@ -9,8 +9,6 @@ SECTIONS
     *(.text)
     *(.text.*)
     *(.gnu.linkonce.t.*)
-    *(.srodata)
-    *(.rodata*)
     . = ALIGN(16);
   }
   _etext = .;
@@ -43,6 +41,8 @@ SECTIONS
   .rela.plt : { *(.rela.plt) }
   .rela.got : { *(.rela.got) }
   .rela.data : { *(.rela.data) *(.rela.data*) }
+  . = ALIGN(4096);
+  .rodata : { *(.rodata*) }
   . = ALIGN(512);
   _edata = .;
   _data_size = _edata - _data;

+ 2 - 2
gnuefi/elf_mips64el_efi.lds

@@ -9,8 +9,6 @@ SECTIONS
     *(.text)
     *(.text.*)
     *(.gnu.linkonce.t.*)
-    *(.srodata)
-    *(.rodata*)
     . = ALIGN(16);
   }
   _etext = .;
@@ -84,6 +82,8 @@ SECTIONS
   }
   . = ALIGN(4096);
   .rel.plt : { *(.rel.plt) }
+  . = ALIGN(4096);
+  .rodata : { *(.rodata*) }
   _edata = .;
   _data_size = _edata - _etext;
 

+ 2 - 3
gnuefi/elf_riscv64_efi.lds

@@ -11,8 +11,6 @@ SECTIONS {
 		*(.text)
 		*(.text.*)
 		*(.gnu.linkonce.t.*)
-		*(.srodata)
-		*(.rodata*)
 		. = ALIGN(16);
 	}
 	_etext = .;
@@ -87,7 +85,8 @@ SECTIONS {
   }
 . = ALIGN(4096);
 .rela.plt : { *(.rela.plt) }
-	. = ALIGN(512);
+. = ALIGN(4096);
+.rodata : { *(.rodata*) }
 	_edata = .;
 	_data_size = _edata - _data;
 

+ 2 - 1
gnuefi/elf_x86_64_efi.lds

@@ -33,7 +33,6 @@ SECTIONS
   .data :
   {
    _data = .;
-   *(.rodata*)
    *(.got.plt)
    *(.got)
    *(.data*)
@@ -97,6 +96,8 @@ SECTIONS
   . = ALIGN(4096);
   .rela.plt : { *(.rela.plt) }
   . = ALIGN(4096);
+  .rodata : { *(.rodata*) }
+  . = ALIGN(4096);
   .dynsym   : { *(.dynsym) }
   . = ALIGN(4096);
   .dynstr   : { *(.dynstr) }

+ 2 - 1
gnuefi/elf_x86_64_fbsd_efi.lds

@@ -31,7 +31,6 @@ SECTIONS
   .data :
   {
    _data = .;
-   *(.rodata*)
    *(.got.plt)
    *(.got)
    *(.data*)
@@ -88,6 +87,8 @@ SECTIONS
     *(.rela.ctors*)
     *(.rela.dtors*)
   }
+  . = ALIGN(4096);
+  .rodata : { *(.rodata*) }
   _edata = .;
   _data_size = _edata - _etext;
   . = ALIGN(4096);