1b3f3620ea
and aarch64 builds. Signed-off-by: Peter Jones <pjones@redhat.com>
110 lines
3.4 KiB
Diff
110 lines
3.4 KiB
Diff
From 0587ab32cf5037fd759dfcec0e858a57372cb64f Mon Sep 17 00:00:00 2001
|
|
From: Peter Jones <pjones@redhat.com>
|
|
Date: Wed, 15 Jul 2015 10:15:51 -0400
|
|
Subject: [PATCH 10/10] Explicitly place our build-id notes on all arches.
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Apparently some linkers will just throw caution to the wind and decide
|
|
to stick stuff we don't explicitly mention at 0, no matter what else has
|
|
already explicitly been located there. A debian/ubuntu builder noted:
|
|
|
|
gcc -O0 -g3 -fpic -Wall -fshort-wchar -fno-strict-aliasing \
|
|
-fno-merge-constants -ffreestanding -fno-stack-protector \
|
|
-fno-stack-check --std=c11 -DCONFIG_aarch64 -D__KERNEL__ \
|
|
-I/usr/include/efi/ -I/usr/include/efi/aarch64/ \
|
|
-iquote/«PKGBUILDDIR»/include "-DDEBUGDIR=L\"/\"" \
|
|
-ffreestanding -I/usr/lib/gcc/aarch64-linux-gnu/4.9/include \
|
|
-c -o fakeesrt2.o fakeesrt2.c
|
|
ld -nostdlib --warn-common --no-undefined --fatal-warnings -shared \
|
|
-Bsymbolic -L/usr/lib -L/usr/lib --build-id=sha1 \
|
|
/usr/lib/crt0-efi-aarch64.o --defsym=EFI_SUBSYSTEM=0xa \
|
|
-o fakeesrt2.so fakeesrt2.o -lefi -lgnuefi \
|
|
/usr/lib/gcc/aarch64-linux-gnu/4.9/libgcc.a \
|
|
-T elf_aarch64_efi.lds
|
|
ld: section .note.gnu.build-id loaded at [00000000,00000023] overlaps section .text loaded at [00000000,0000668f]
|
|
|
|
This shouldn't be a problem if we explicitly tell it where to put them.
|
|
|
|
Ard added a patch to do this on Arm and aarch64 targets in 16409cad4cb,
|
|
but it needs to be everywhere.
|
|
|
|
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|
---
|
|
gnuefi/elf_ia32_efi.lds | 2 ++
|
|
gnuefi/elf_ia32_fbsd_efi.lds | 2 ++
|
|
gnuefi/elf_ia64_efi.lds | 2 ++
|
|
gnuefi/elf_x86_64_efi.lds | 2 ++
|
|
gnuefi/elf_x86_64_fbsd_efi.lds | 2 ++
|
|
5 files changed, 10 insertions(+)
|
|
|
|
diff --git a/gnuefi/elf_ia32_efi.lds b/gnuefi/elf_ia32_efi.lds
|
|
index b164094..6cc4ce1 100644
|
|
--- a/gnuefi/elf_ia32_efi.lds
|
|
+++ b/gnuefi/elf_ia32_efi.lds
|
|
@@ -46,6 +46,8 @@ SECTIONS
|
|
*(.bss)
|
|
*(COMMON)
|
|
}
|
|
+ .note.gnu.build-id : { *(.note.gnu.build-id) }
|
|
+
|
|
. = ALIGN(4096);
|
|
.dynamic : { *(.dynamic) }
|
|
. = ALIGN(4096);
|
|
diff --git a/gnuefi/elf_ia32_fbsd_efi.lds b/gnuefi/elf_ia32_fbsd_efi.lds
|
|
index 1f56cd7..77d6fad 100644
|
|
--- a/gnuefi/elf_ia32_fbsd_efi.lds
|
|
+++ b/gnuefi/elf_ia32_fbsd_efi.lds
|
|
@@ -46,6 +46,8 @@ SECTIONS
|
|
*(.bss)
|
|
*(COMMON)
|
|
}
|
|
+ .note.gnu.build-id : { *(.note.gnu.build-id) }
|
|
+
|
|
. = ALIGN(4096);
|
|
.dynamic : { *(.dynamic) }
|
|
. = ALIGN(4096);
|
|
diff --git a/gnuefi/elf_ia64_efi.lds b/gnuefi/elf_ia64_efi.lds
|
|
index a6ec717..baca962 100644
|
|
--- a/gnuefi/elf_ia64_efi.lds
|
|
+++ b/gnuefi/elf_ia64_efi.lds
|
|
@@ -43,6 +43,8 @@ SECTIONS
|
|
*(.bss)
|
|
*(COMMON)
|
|
}
|
|
+ .note.gnu.build-id : { *(.note.gnu.build-id) }
|
|
+
|
|
. = ALIGN(4096);
|
|
.dynamic : { *(.dynamic) }
|
|
. = ALIGN(4096);
|
|
diff --git a/gnuefi/elf_x86_64_efi.lds b/gnuefi/elf_x86_64_efi.lds
|
|
index 3862d9f..942d1f3 100644
|
|
--- a/gnuefi/elf_x86_64_efi.lds
|
|
+++ b/gnuefi/elf_x86_64_efi.lds
|
|
@@ -46,6 +46,8 @@ SECTIONS
|
|
*(COMMON)
|
|
*(.rel.local)
|
|
}
|
|
+ .note.gnu.build-id : { *(.note.gnu.build-id) }
|
|
+
|
|
_edata = .;
|
|
_data_size = . - _etext;
|
|
. = ALIGN(4096);
|
|
diff --git a/gnuefi/elf_x86_64_fbsd_efi.lds b/gnuefi/elf_x86_64_fbsd_efi.lds
|
|
index 507fe43..6fd2031 100644
|
|
--- a/gnuefi/elf_x86_64_fbsd_efi.lds
|
|
+++ b/gnuefi/elf_x86_64_fbsd_efi.lds
|
|
@@ -43,6 +43,8 @@ SECTIONS
|
|
*(COMMON)
|
|
*(.rel.local)
|
|
}
|
|
+ .note.gnu.build-id : { *(.note.gnu.build-id) }
|
|
+
|
|
. = ALIGN(4096);
|
|
.dynamic : { *(.dynamic) }
|
|
. = ALIGN(4096);
|
|
--
|
|
2.5.0
|
|
|