summaryrefslogtreecommitdiff
path: root/0036-Install-our-libraries-in-LIBDIR-gnuefi-ARCH.patch
diff options
context:
space:
mode:
Diffstat (limited to '0036-Install-our-libraries-in-LIBDIR-gnuefi-ARCH.patch')
-rw-r--r--0036-Install-our-libraries-in-LIBDIR-gnuefi-ARCH.patch134
1 files changed, 134 insertions, 0 deletions
diff --git a/0036-Install-our-libraries-in-LIBDIR-gnuefi-ARCH.patch b/0036-Install-our-libraries-in-LIBDIR-gnuefi-ARCH.patch
new file mode 100644
index 0000000..75705ec
--- /dev/null
+++ b/0036-Install-our-libraries-in-LIBDIR-gnuefi-ARCH.patch
@@ -0,0 +1,134 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones@redhat.com>
+Date: Fri, 25 Oct 2019 15:41:16 -0400
+Subject: [PATCH] Install our libraries in $(LIBDIR)/gnuefi/$(ARCH)
+
+This makes it possible to install all the output on the same machine for
+cross-builds. This also adds "install_compat", which uses the previous
+paths.
+
+Signed-off-by: Peter Jones <pjones@redhat.com>
+---
+ Make.defaults | 1 +
+ Makefile | 4 ++--
+ apps/Makefile | 2 +-
+ gnuefi/Makefile | 22 ++++++++++++++++++----
+ inc/Makefile | 3 +++
+ lib/Makefile | 5 ++++-
+ 6 files changed, 29 insertions(+), 8 deletions(-)
+
+diff --git a/Make.defaults b/Make.defaults
+index 157559d20ee..7231e9bced2 100755
+--- a/Make.defaults
++++ b/Make.defaults
+@@ -72,6 +72,7 @@ LD := $(prefix)$(CROSS_COMPILE)ld
+ AR := $(prefix)$(CROSS_COMPILE)ar
+ RANLIB := $(prefix)$(CROSS_COMPILE)ranlib
+ OBJCOPY := $(prefix)$(CROSS_COMPILE)objcopy
++SYMLINK := ln -vfs
+
+
+ # Host/target identification
+diff --git a/Makefile b/Makefile
+index eecce6d9736..962ac72b664 100644
+--- a/Makefile
++++ b/Makefile
+@@ -87,10 +87,10 @@ clean:
+ fi; \
+ done
+
+-install:
++install install_compat:
+ @set -e ; for d in $(SUBDIRS); do \
+ mkdir -p $(OBJDIR)/$$d; \
+- $(MAKE) -C $(OBJDIR)/$$d -f $(SRCDIR)/$$d/Makefile SRCDIR=$(SRCDIR)/$$d install; done
++ $(MAKE) -C $(OBJDIR)/$$d -f $(SRCDIR)/$$d/Makefile SRCDIR=$(SRCDIR)/$$d $@ ; done
+
+ .PHONY: $(SUBDIRS) clean depend
+
+diff --git a/apps/Makefile b/apps/Makefile
+index 3b96f153a23..8ab83d58a3c 100644
+--- a/apps/Makefile
++++ b/apps/Makefile
+@@ -91,6 +91,6 @@ ctors_test.so : ctors_fns.o ctors_test.o
+ clean:
+ @rm -vf $(TARGETS) *~ *.o *.so
+
+-.PHONY: install
++.PHONY: install install_compat
+
+ include $(SRCDIR)/../Make.rules
+diff --git a/gnuefi/Makefile b/gnuefi/Makefile
+index bea629b0b29..7652669a7cc 100644
+--- a/gnuefi/Makefile
++++ b/gnuefi/Makefile
+@@ -60,16 +60,30 @@ clean:
+ @rm -vf $(TARGETS) *~ *.o $(OBJS)
+
+ install:
++ mkdir -p $(INSTALLROOT)$(LIBDIR)/gnuefi/$(ARCH)
++ $(INSTALL) -m 644 -t $(INSTALLROOT)$(LIBDIR)/gnuefi/$(ARCH)/ $(TARGETS)
++ifneq (,$(findstring FreeBSD,$(OS)))
++ ifeq ($(ARCH),x64)
++ $(INSTALL) -m 644 $(SRCDIR)/elf_$(ARCH)_fbsd_efi.lds $(INSTALLROOT)$(LIBDIR)/gnuefi/$(ARCH)
++ else
++ $(INSTALL) -m 644 $(SRCDIR)/elf_$(ARCH)_efi.lds $(INSTALLROOT)$(LIBDIR)/gnuefi/$(ARCH)
++ endif
++else
++ $(INSTALL) -m 644 $(SRCDIR)/elf_$(ARCH)_efi.lds $(INSTALLROOT)$(LIBDIR)/gnuefi/$(ARCH)
++endif
++
++install_compat: install
+ mkdir -p $(INSTALLROOT)$(LIBDIR)
+- $(INSTALL) -m 644 $(TARGETS) $(INSTALLROOT)$(LIBDIR)
++ $(SYMLINK) gnuefi/$(ARCH)/libgnuefi.a $(INSTALLROOT)$(LIBDIR)/libgnuefi.a
++ $(SYMLINK) gnuefi/$(ARCH)/crt0-efi-$(ARCH).o $(INSTALLROOT)$(LIBDIR)/crt0-efi-$(BFD_ARCH).o
+ ifneq (,$(findstring FreeBSD,$(OS)))
+ ifeq ($(ARCH),x64)
+- $(INSTALL) -m 644 $(SRCDIR)/elf_$(ARCH)_fbsd_efi.lds $(INSTALLROOT)$(LIBDIR)
++ $(SYMLINK) gnuefi/$(ARCH)/elf_$(ARCH)_fbsd_efi.lds $(INSTALLROOT)$(LIBDIR)/elf_$(BFD_ARCH)_fbsd_efi.lds
+ else
+- $(INSTALL) -m 644 $(SRCDIR)/elf_$(ARCH)_efi.lds $(INSTALLROOT)$(LIBDIR)
++ $(SYMLINK) gnuefi/$(ARCH)/elf_$(ARCH)_efi.lds $(INSTALLROOT)$(LIBDIR)/elf_$(BFD_ARCH)_efi.lds
+ endif
+ else
+- $(INSTALL) -m 644 $(SRCDIR)/elf_$(ARCH)_efi.lds $(INSTALLROOT)$(LIBDIR)
++ $(SYMLINK) gnuefi/$(ARCH)/elf_$(ARCH)_efi.lds $(INSTALLROOT)$(LIBDIR)/elf_$(BFD_ARCH)_efi.lds
+ endif
+
+ include $(SRCDIR)/../Make.rules
+diff --git a/inc/Makefile b/inc/Makefile
+index 13022fd6ae1..445d340f0fa 100644
+--- a/inc/Makefile
++++ b/inc/Makefile
+@@ -17,4 +17,7 @@ install:
+ $(INSTALL) -m 644 $(SRCDIR)/protocol/*.h $(INSTALLROOT)$(PREFIX)/include/efi/protocol
+ $(INSTALL) -m 644 $(SRCDIR)/$(ARCH)/*.h $(INSTALLROOT)$(PREFIX)/include/efi/$(ARCH)
+
++install_compat: install
++ @if [ ! -h $(DEST)/$(BFD_ARCH) ]; then $(SYMLINK) $(ARCH) $(INSTALLROOT)$(PREFIX)/include/efi/$(BFD_ARCH) ; fi
++
+ include $(SRCDIR)/../Make.rules
+diff --git a/lib/Makefile b/lib/Makefile
+index 6dca2cf1398..f0d7b9b08e6 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -66,7 +66,7 @@ OBJS = $(FILES:%=%.o) ctors.o
+
+ SUBDIRS = $(ARCHES) runtime
+
+-LIBDIRINSTALL = $(INSTALLROOT)$(LIBDIR)
++LIBDIRINSTALL ?= $(INSTALLROOT)$(LIBDIR)/gnuefi/$(ARCH)
+
+ all: libsubdirs libefi.a
+
+@@ -88,6 +88,9 @@ $(LIBDIRINSTALL)/libefi.a: libefi.a | $(LIBDIRINSTALL)
+
+ install: $(LIBDIRINSTALL)/libefi.a
+
++install_compat: install
++ $(SYMLINK) gnuefi/$(ARCH)/libefi.a $(INSTALLROOT)$(LIBDIR)/libefi.a
++
+ include $(SRCDIR)/../Make.rules
+
+ .PHONY: libsubdirs