From c9952e9c14b004896e5b053d2b4da2aff1cc064b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Feb 23 2016 14:57:39 +0000 Subject: Also build for armv7 Signed-off-by: Peter Jones --- diff --git a/0001-Explicitly-place-our-build-id-notes.patch b/0001-Explicitly-place-our-build-id-notes.patch new file mode 100644 index 0000000..d80fc50 --- /dev/null +++ b/0001-Explicitly-place-our-build-id-notes.patch @@ -0,0 +1,133 @@ +From 5652abf9c4ede88d7b5cad25415db4ea530631a3 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Wed, 15 Jul 2015 10:15:51 -0400 +Subject: [PATCH] Explicitly place our build-id notes. +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. +I hope. + +Signed-off-by: Peter Jones +--- + gnuefi/elf_aarch64_efi.lds | 1 + + gnuefi/elf_arm_efi.lds | 1 + + 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 ++ + 7 files changed, 12 insertions(+) + +diff --git a/gnuefi/elf_aarch64_efi.lds b/gnuefi/elf_aarch64_efi.lds +index 8864757..85f1582 100644 +--- a/gnuefi/elf_aarch64_efi.lds ++++ b/gnuefi/elf_aarch64_efi.lds +@@ -38,6 +38,7 @@ SECTIONS + . = ALIGN(16); + _bss_end = .; + } ++ + .rela.dyn : { *(.rela.dyn) } + .rela.plt : { *(.rela.plt) } + .rela.got : { *(.rela.got) } +diff --git a/gnuefi/elf_arm_efi.lds b/gnuefi/elf_arm_efi.lds +index 2ca8fc6..665bbdb 100644 +--- a/gnuefi/elf_arm_efi.lds ++++ b/gnuefi/elf_arm_efi.lds +@@ -39,6 +39,7 @@ SECTIONS + . = ALIGN(16); + _bss_end = .; + } ++ + .rel.dyn : { *(.rel.dyn) } + .rel.plt : { *(.rel.plt) } + .rel.got : { *(.rel.got) } +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 + diff --git a/gnu-efi.spec b/gnu-efi.spec index c6e4a36..8f13c22 100644 --- a/gnu-efi.spec +++ b/gnu-efi.spec @@ -1,7 +1,7 @@ Summary: Development Libraries and headers for EFI Name: gnu-efi Version: 3.0.3 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 1 Group: Development/System License: BSD @@ -10,6 +10,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: %{ix86} x86_64 ia64 aarch64 BuildRequires: git Source: http://superb-dca2.dl.sourceforge.net/project/gnu-efi/gnu-efi-%{version}.tar.bz2 +Patch0001: 0001-Explicitly-place-our-build-id-notes.patch %define debug_package %{nil} @@ -93,6 +94,9 @@ rm -rf %{buildroot} %attr(0644,root,root) /boot/efi/EFI/%{efidir}/*.efi %changelog +* Tue Feb 23 2016 Peter Jones - 3.0.3-2 +- We still need build-id patches in some places. + * Mon Feb 22 2016 Peter Jones - 3.0.3-1 - Rebase to 3.0.3