Page MenuHomeFreeBSD

D9108.id23791.diff
No OneTemporary

D9108.id23791.diff

Index: sys/boot/efi/boot1/Makefile
===================================================================
--- sys/boot/efi/boot1/Makefile
+++ sys/boot/efi/boot1/Makefile
@@ -69,6 +69,9 @@
CFLAGS+= -fPIC
LDFLAGS+= -Wl,-znocombreloc
.endif
+.if ${MACHINE_CPUARCH} == "arm"
+CFLAGS+= -fPIC
+.endif
#
# Add libstand for the runtime functions used by the compiler - for example
Index: sys/boot/efi/libefi/Makefile
===================================================================
--- sys/boot/efi/libefi/Makefile
+++ sys/boot/efi/libefi/Makefile
@@ -35,6 +35,9 @@
.if ${MACHINE_ARCH} == "amd64"
CFLAGS+= -fPIC -mno-red-zone
.endif
+.if ${MACHINE_CPUARCH} == "arm"
+CFLAGS+= -fPIC
+.endif
CFLAGS+= -I${.CURDIR}/../include
CFLAGS+= -I${.CURDIR}/../include/${MACHINE}
CFLAGS+= -I${.CURDIR}/../../../../lib/libstand
Index: sys/boot/efi/loader/arch/arm/ldscript.arm
===================================================================
--- sys/boot/efi/loader/arch/arm/ldscript.arm
+++ sys/boot/efi/loader/arch/arm/ldscript.arm
@@ -18,7 +18,7 @@
. = ALIGN(16);
.data :
{
- *(.data *.data.*)
+ *(.data .data.*)
*(.gnu.linkonce.d*)
*(.rodata)
*(.rodata.*)
Index: sys/boot/efi/loader/bootinfo.c
===================================================================
--- sys/boot/efi/loader/bootinfo.c
+++ sys/boot/efi/loader/bootinfo.c
@@ -351,21 +351,6 @@
vm_offset_t dtbp;
int dtb_size;
#endif
-#if defined(__arm__)
- vm_offset_t vaddr;
- size_t i;
- /*
- * These metadata addreses must be converted for kernel after
- * relocation.
- */
- uint32_t mdt[] = {
- MODINFOMD_SSYM, MODINFOMD_ESYM, MODINFOMD_KERNEND,
- MODINFOMD_ENVP,
-#if defined(LOADER_FDT_SUPPORT)
- MODINFOMD_DTBP
-#endif
- };
-#endif
howto = bi_getboothowto(args);
@@ -440,22 +425,6 @@
md = file_findmetadata(kfp, MODINFOMD_KERNEND);
bcopy(&kernend, md->md_data, sizeof kernend);
-#if defined(__arm__)
- *modulep -= __elfN(relocation_offset);
-
- /* Do relocation fixup on metadata of each module. */
- for (xp = file_findfile(NULL, NULL); xp != NULL; xp = xp->f_next) {
- for (i = 0; i < nitems(mdt); i++) {
- md = file_findmetadata(xp, mdt[i]);
- if (md) {
- bcopy(md->md_data, &vaddr, sizeof vaddr);
- vaddr -= __elfN(relocation_offset);
- bcopy(&vaddr, md->md_data, sizeof vaddr);
- }
- }
- }
-#endif
-
/* Copy module list and metadata. */
(void)bi_copymodules(addr);

File Metadata

Mime Type
text/plain
Expires
Tue, Mar 10, 3:05 PM (8 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29497966
Default Alt Text
D9108.id23791.diff (2 KB)

Event Timeline