Patchwork [3/4] gummiboot: use objcopy from the env

login
register
mail settings
Submitter Robert Yang
Date March 27, 2014, 8:11 a.m.
Message ID <8acc674de6bd8eda29c0ff56773030698490aafa.1395906476.git.liezhi.yang@windriver.com>
Download mbox | patch
Permalink /patch/69375/
State New
Headers show

Comments

Robert Yang - March 27, 2014, 8:11 a.m.
Fix the error:
[snip]
| nm -D -u src/efi/gummiboot.so | grep ' U ' && exit 1 || :
| objcopy -j .text -j .sdata -j .data -j .dynamic \
|   -j .dynsym -j .rel -j .rela -j .reloc -j .eh_frame \
|   --target=efi-app-x86_64 src/efi/gummiboot.so gummibootx64.efi
| objcopy: src/efi/gummiboot.so: Invalid bfd target
| make[1]: *** [gummibootx64.efi] Error 1
| make[1]: *** Waiting for unfinished jobs....
| make: *** [all] Error 2
[snip]

It uses the "objcopy" directly, which is not suitable for cross compile.

[YOCTO #6054]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
 .../gummiboot/gummiboot/fix-objcopy.patch          |   39 ++++++++++++++++++++
 meta/recipes-bsp/gummiboot/gummiboot_git.bb        |    4 +-
 2 files changed, 42 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-bsp/gummiboot/gummiboot/fix-objcopy.patch
Khem Raj - March 28, 2014, 12:49 a.m.
On Thu, Mar 27, 2014 at 1:11 AM, Robert Yang <liezhi.yang@windriver.com> wrote:
> ++OBJCOPY ?= objcopy

if it is a automake file you could also try

OBJCOPY = @OBJCOPY@

instead of above weak assignment.
Robert Yang - March 28, 2014, 3:02 a.m.
On 03/28/2014 08:49 AM, Khem Raj wrote:
> On Thu, Mar 27, 2014 at 1:11 AM, Robert Yang <liezhi.yang@windriver.com> wrote:
>> ++OBJCOPY ?= objcopy
>
> if it is a automake file you could also try
>
> OBJCOPY = @OBJCOPY@
>
> instead of above weak assignment.
>

Hello Khem,

I had tried that before, but it didn't work since the configure didn't
check objcopy or there was no AC_SUBST([OBJCOPY])

// Robert

>

Patch

diff --git a/meta/recipes-bsp/gummiboot/gummiboot/fix-objcopy.patch b/meta/recipes-bsp/gummiboot/gummiboot/fix-objcopy.patch
new file mode 100644
index 0000000..2683f83
--- /dev/null
+++ b/meta/recipes-bsp/gummiboot/gummiboot/fix-objcopy.patch
@@ -0,0 +1,39 @@ 
+From 0f7f9e3bb1d0e1b93f3ad8a1d5d7bdd3fbf27494 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Thu, 27 Mar 2014 07:20:33 +0000
+Subject: [PATCH] Makefile.am: use objcopy from the env
+
+It uses the "objcopy" directly, which is not suitable for cross compile.
+
+Upstream-Status: Pending
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ Makefile.am | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index d224418..dcd95b0 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -19,6 +19,8 @@
+ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
+ AM_MAKEFLAGS = --no-print-directory
+ 
++OBJCOPY ?= objcopy
++
+ gummibootlibdir = $(prefix)/lib/gummiboot
+ 
+ AM_CPPFLAGS = -include config.h
+@@ -143,7 +145,7 @@ $(efi_solib): $(efi_objects)
+ .DELETE_ON_ERROR: $(efi_solib)
+ 
+ $(efi_loadername): $(efi_solib)
+-	$(AM_V_GEN) objcopy -j .text -j .sdata -j .data -j .dynamic \
++	$(AM_V_GEN) $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic \
+ 	  -j .dynsym -j .rel -j .rela -j .reloc -j .eh_frame \
+ 	  --target=efi-app-$(ARCH) $< $@
+ 
+-- 
+1.8.3.4
+
diff --git a/meta/recipes-bsp/gummiboot/gummiboot_git.bb b/meta/recipes-bsp/gummiboot/gummiboot_git.bb
index 61de58c..b0435f5 100644
--- a/meta/recipes-bsp/gummiboot/gummiboot_git.bb
+++ b/meta/recipes-bsp/gummiboot/gummiboot_git.bb
@@ -11,7 +11,9 @@  inherit deploy
 
 PV = "43+git${SRCPV}"
 SRCREV = "4062c51075ba054d4949c714fe06123f9ad3097d"
-SRC_URI = "git://anongit.freedesktop.org/gummiboot"
+SRC_URI = "git://anongit.freedesktop.org/gummiboot \
+           file://fix-objcopy.patch \
+          "
 
 COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux"