diff options
Diffstat (limited to 'recipes-bsp/efilinux')
3 files changed, 104 insertions, 0 deletions
diff --git a/recipes-bsp/efilinux/efilinux/0001-Disable-address-of-packed-member-warning.patch b/recipes-bsp/efilinux/efilinux/0001-Disable-address-of-packed-member-warning.patch new file mode 100644 index 00000000..afb99514 --- /dev/null +++ b/recipes-bsp/efilinux/efilinux/0001-Disable-address-of-packed-member-warning.patch | |||
@@ -0,0 +1,33 @@ | |||
1 | From 7c171c1813651a3a02ad2cda361b42ebc7ce324d Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Sat, 12 Aug 2017 10:34:19 -0700 | ||
4 | Subject: [PATCH 1/2] Disable address-of-packed-member warning | ||
5 | |||
6 | Clang complains so make it happy | ||
7 | |||
8 | loaders/bzimage/bzimage.c:346:55: error: taking address of packed member 'base' of class or structure 'dt_addr_t' may result in an unaligned pointer value [-Werror,-Waddress-of-packed-member] | ||
9 | err = emalloc(gdt.limit, 8, (EFI_PHYSICAL_ADDRESS *)&gdt.base); | ||
10 | |||
11 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
12 | --- | ||
13 | Upstream-Status: Pending | ||
14 | |||
15 | Makefile | 2 +- | ||
16 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
17 | |||
18 | diff --git a/Makefile b/Makefile | ||
19 | index a955e34..ff1b79b 100644 | ||
20 | --- a/Makefile | ||
21 | +++ b/Makefile | ||
22 | @@ -61,7 +61,7 @@ ifeq ($(ARCH),ia32) | ||
23 | endif | ||
24 | endif | ||
25 | ifeq ($(ARCH),x86_64) | ||
26 | - CFLAGS += -mno-red-zone | ||
27 | + CFLAGS += -mno-red-zone -Wno-address-of-packed-member | ||
28 | endif | ||
29 | |||
30 | LDFLAGS=-T $(LDSCRIPT) -Bsymbolic -shared -nostdlib -znocombreloc \ | ||
31 | -- | ||
32 | 2.14.1 | ||
33 | |||
diff --git a/recipes-bsp/efilinux/efilinux/0002-initialize-char-pointers.patch b/recipes-bsp/efilinux/efilinux/0002-initialize-char-pointers.patch new file mode 100644 index 00000000..127c187a --- /dev/null +++ b/recipes-bsp/efilinux/efilinux/0002-initialize-char-pointers.patch | |||
@@ -0,0 +1,33 @@ | |||
1 | From 49053e4ff0f3550d019cdad8a93677c18fc69791 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Sat, 12 Aug 2017 10:35:09 -0700 | ||
4 | Subject: [PATCH 2/2] initialize char pointers | ||
5 | |||
6 | Clang complains about using them without initializing | ||
7 | |||
8 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
9 | --- | ||
10 | Upstream-Status: Pending | ||
11 | |||
12 | entry.c | 4 ++-- | ||
13 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
14 | |||
15 | diff --git a/entry.c b/entry.c | ||
16 | index 0aa6cdd..23ba51e 100644 | ||
17 | --- a/entry.c | ||
18 | +++ b/entry.c | ||
19 | @@ -402,9 +402,9 @@ efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *_table) | ||
20 | WCHAR *error_buf; | ||
21 | EFI_STATUS err; | ||
22 | EFI_LOADED_IMAGE *info; | ||
23 | - CHAR16 *name, *options; | ||
24 | + CHAR16 *name = NULL, *options; | ||
25 | UINT32 options_size; | ||
26 | - char *cmdline; | ||
27 | + char *cmdline = NULL; | ||
28 | |||
29 | InitializeLib(image, _table); | ||
30 | sys_table = _table; | ||
31 | -- | ||
32 | 2.14.1 | ||
33 | |||
diff --git a/recipes-bsp/efilinux/efilinux_1.1.bb b/recipes-bsp/efilinux/efilinux_1.1.bb new file mode 100644 index 00000000..63e80f88 --- /dev/null +++ b/recipes-bsp/efilinux/efilinux_1.1.bb | |||
@@ -0,0 +1,38 @@ | |||
1 | DESCRIPTION = "A UEFI OS loader" | ||
2 | LICENSE = "BSD-2-Clause" | ||
3 | LIC_FILES_CHKSUM = "file://efilinux.h;beginline=5;endline=27;md5=f8d56e644672ac63fd81b55c205283ad" | ||
4 | |||
5 | DEPENDS = "gnu-efi" | ||
6 | |||
7 | inherit deploy | ||
8 | |||
9 | SRCREV = "a995826f9e43f1134baea61610eafd8c173bb776" | ||
10 | PV = "1.1+git${SRCPV}" | ||
11 | |||
12 | SRC_URI = "git://git.kernel.org/pub/scm/boot/efilinux/efilinux.git \ | ||
13 | file://0001-Disable-address-of-packed-member-warning.patch \ | ||
14 | file://0002-initialize-char-pointers.patch \ | ||
15 | " | ||
16 | |||
17 | S = "${WORKDIR}/git" | ||
18 | |||
19 | COMPATIBLE_HOST = '(x86_64|i.86).*-(linux|freebsd.*)' | ||
20 | |||
21 | EXTRA_OEMAKE = "INCDIR=${STAGING_INCDIR} LIBDIR=${STAGING_LIBDIR}" | ||
22 | |||
23 | # syslinux uses $LD for linking, strip `-Wl,' so it can work | ||
24 | export LDFLAGS = "`echo $LDFLAGS | sed 's/-Wl,//g'`" | ||
25 | |||
26 | do_deploy () { | ||
27 | install ${S}/efilinux.efi ${DEPLOYDIR}/efilinux.efi | ||
28 | } | ||
29 | addtask deploy before do_build after do_compile | ||
30 | |||
31 | python () { | ||
32 | ccargs = d.getVar('TUNE_CCARGS').split() | ||
33 | if '-mx32' in ccargs: | ||
34 | # use x86_64 EFI ABI | ||
35 | ccargs.remove('-mx32') | ||
36 | ccargs.append('-m64') | ||
37 | d.setVar('TUNE_CCARGS', ' '.join(ccargs)) | ||
38 | } | ||