Also build for armv7

Signed-off-by: Peter Jones <pjones@redhat.com>
This commit is contained in:
Peter Jones 2016-02-23 09:57:39 -05:00
parent 0d85a58186
commit c9952e9c14
2 changed files with 138 additions and 1 deletions

View File

@ -0,0 +1,133 @@
From 5652abf9c4ede88d7b5cad25415db4ea530631a3 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
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 <pjones@redhat.com>
---
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

View File

@ -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 <pjones@redhat.com> - 3.0.3-2
- We still need build-id patches in some places.
* Mon Feb 22 2016 Peter Jones <pjones@redhat.com> - 3.0.3-1
- Rebase to 3.0.3