summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/systemd
diff options
context:
space:
mode:
authorAlexander Kanavin <alex.kanavin@gmail.com>2021-05-05 17:18:22 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-05-09 23:30:10 +0100
commitc88679a2f1a3aa84f7699a0ee752cf8071e8a430 (patch)
treead8353831945a0ab29f7a24b079fd30e55d27c06 /meta/recipes-core/systemd
parent464a09f45f619f1f96e3f5c83dc3d6d68eadfcbe (diff)
downloadopenembedded-core-contrib-c88679a2f1a3aa84f7699a0ee752cf8071e8a430.tar.gz
systemd-boot: backport a fix to address failures with new gnu-efi
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/systemd')
-rw-r--r--meta/recipes-core/systemd/files/48fff0a2af3f62acd446ebec8081b039b72caad8.patch179
-rw-r--r--meta/recipes-core/systemd/systemd.inc1
2 files changed, 180 insertions, 0 deletions
diff --git a/meta/recipes-core/systemd/files/48fff0a2af3f62acd446ebec8081b039b72caad8.patch b/meta/recipes-core/systemd/files/48fff0a2af3f62acd446ebec8081b039b72caad8.patch
new file mode 100644
index 0000000000..e3ce296741
--- /dev/null
+++ b/meta/recipes-core/systemd/files/48fff0a2af3f62acd446ebec8081b039b72caad8.patch
@@ -0,0 +1,179 @@
+From 48fff0a2af3f62acd446ebec8081b039b72caad8 Mon Sep 17 00:00:00 2001
+From: Daan De Meyer <daan.j.demeyer@gmail.com>
+Date: Fri, 12 Mar 2021 22:09:44 +0000
+Subject: [PATCH] boot: Move console declarations to missing_efi.h
+
+These were added to eficonex.h in gnu-efi 3.0.13. Let's move them
+to missing_efi.h behind an appropriate guard to fix the build with
+recent versions of gnu-efi.
+
+(cherry picked from commit 95ba433a5f34baf92921fb58051bc8241f908c0e)
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/boot/efi/console.c | 57 --------------------------------
+ src/boot/efi/console.h | 6 +---
+ src/boot/efi/missing_efi.h | 67 ++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 68 insertions(+), 62 deletions(-)
+
+diff --git a/src/boot/efi/console.c b/src/boot/efi/console.c
+index 2dd4543d51..1d6dfeeea2 100644
+--- a/src/boot/efi/console.c
++++ b/src/boot/efi/console.c
+@@ -9,63 +9,6 @@
+ #define SYSTEM_FONT_WIDTH 8
+ #define SYSTEM_FONT_HEIGHT 19
+
+-#define EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID \
+- { 0xdd9e7534, 0x7762, 0x4698, { 0x8c, 0x14, 0xf5, 0x85, 0x17, 0xa6, 0x25, 0xaa } }
+-
+-struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL;
+-
+-typedef EFI_STATUS (EFIAPI *EFI_INPUT_RESET_EX)(
+- struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+- BOOLEAN ExtendedVerification
+-);
+-
+-typedef UINT8 EFI_KEY_TOGGLE_STATE;
+-
+-typedef struct {
+- UINT32 KeyShiftState;
+- EFI_KEY_TOGGLE_STATE KeyToggleState;
+-} EFI_KEY_STATE;
+-
+-typedef struct {
+- EFI_INPUT_KEY Key;
+- EFI_KEY_STATE KeyState;
+-} EFI_KEY_DATA;
+-
+-typedef EFI_STATUS (EFIAPI *EFI_INPUT_READ_KEY_EX)(
+- struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+- EFI_KEY_DATA *KeyData
+-);
+-
+-typedef EFI_STATUS (EFIAPI *EFI_SET_STATE)(
+- struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+- EFI_KEY_TOGGLE_STATE *KeyToggleState
+-);
+-
+-typedef EFI_STATUS (EFIAPI *EFI_KEY_NOTIFY_FUNCTION)(
+- EFI_KEY_DATA *KeyData
+-);
+-
+-typedef EFI_STATUS (EFIAPI *EFI_REGISTER_KEYSTROKE_NOTIFY)(
+- struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+- EFI_KEY_DATA KeyData,
+- EFI_KEY_NOTIFY_FUNCTION KeyNotificationFunction,
+- VOID **NotifyHandle
+-);
+-
+-typedef EFI_STATUS (EFIAPI *EFI_UNREGISTER_KEYSTROKE_NOTIFY)(
+- struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+- VOID *NotificationHandle
+-);
+-
+-typedef struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL {
+- EFI_INPUT_RESET_EX Reset;
+- EFI_INPUT_READ_KEY_EX ReadKeyStrokeEx;
+- EFI_EVENT WaitForKeyEx;
+- EFI_SET_STATE SetState;
+- EFI_REGISTER_KEYSTROKE_NOTIFY RegisterKeyNotify;
+- EFI_UNREGISTER_KEYSTROKE_NOTIFY UnregisterKeyNotify;
+-} EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL;
+-
+ EFI_STATUS console_key_read(UINT64 *key, BOOLEAN wait) {
+ EFI_GUID EfiSimpleTextInputExProtocolGuid = EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID;
+ static EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInputEx;
+diff --git a/src/boot/efi/console.h b/src/boot/efi/console.h
+index 41df3a406e..2c69af552a 100644
+--- a/src/boot/efi/console.h
++++ b/src/boot/efi/console.h
+@@ -1,11 +1,7 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ #pragma once
+
+-#define EFI_SHIFT_STATE_VALID 0x80000000
+-#define EFI_RIGHT_CONTROL_PRESSED 0x00000004
+-#define EFI_LEFT_CONTROL_PRESSED 0x00000008
+-#define EFI_RIGHT_ALT_PRESSED 0x00000010
+-#define EFI_LEFT_ALT_PRESSED 0x00000020
++#include "missing_efi.h"
+
+ #define EFI_CONTROL_PRESSED (EFI_RIGHT_CONTROL_PRESSED|EFI_LEFT_CONTROL_PRESSED)
+ #define EFI_ALT_PRESSED (EFI_RIGHT_ALT_PRESSED|EFI_LEFT_ALT_PRESSED)
+diff --git a/src/boot/efi/missing_efi.h b/src/boot/efi/missing_efi.h
+index 1b838af2a4..b6aae1eb5b 100644
+--- a/src/boot/efi/missing_efi.h
++++ b/src/boot/efi/missing_efi.h
+@@ -53,3 +53,70 @@ typedef struct _EFI_RNG_PROTOCOL {
+ } EFI_RNG_PROTOCOL;
+
+ #endif
++
++#ifndef EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID
++
++#define EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID \
++ { 0xdd9e7534, 0x7762, 0x4698, { 0x8c, 0x14, 0xf5, 0x85, 0x17, 0xa6, 0x25, 0xaa } }
++
++#define EFI_SHIFT_STATE_VALID 0x80000000
++#define EFI_RIGHT_CONTROL_PRESSED 0x00000004
++#define EFI_LEFT_CONTROL_PRESSED 0x00000008
++#define EFI_RIGHT_ALT_PRESSED 0x00000010
++#define EFI_LEFT_ALT_PRESSED 0x00000020
++
++struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL;
++
++typedef EFI_STATUS (EFIAPI *EFI_INPUT_RESET_EX)(
++ struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
++ BOOLEAN ExtendedVerification
++);
++
++typedef UINT8 EFI_KEY_TOGGLE_STATE;
++
++typedef struct {
++ UINT32 KeyShiftState;
++ EFI_KEY_TOGGLE_STATE KeyToggleState;
++} EFI_KEY_STATE;
++
++typedef struct {
++ EFI_INPUT_KEY Key;
++ EFI_KEY_STATE KeyState;
++} EFI_KEY_DATA;
++
++typedef EFI_STATUS (EFIAPI *EFI_INPUT_READ_KEY_EX)(
++ struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
++ EFI_KEY_DATA *KeyData
++);
++
++typedef EFI_STATUS (EFIAPI *EFI_SET_STATE)(
++ struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
++ EFI_KEY_TOGGLE_STATE *KeyToggleState
++);
++
++typedef EFI_STATUS (EFIAPI *EFI_KEY_NOTIFY_FUNCTION)(
++ EFI_KEY_DATA *KeyData
++);
++
++typedef EFI_STATUS (EFIAPI *EFI_REGISTER_KEYSTROKE_NOTIFY)(
++ struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
++ EFI_KEY_DATA KeyData,
++ EFI_KEY_NOTIFY_FUNCTION KeyNotificationFunction,
++ VOID **NotifyHandle
++);
++
++typedef EFI_STATUS (EFIAPI *EFI_UNREGISTER_KEYSTROKE_NOTIFY)(
++ struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
++ VOID *NotificationHandle
++);
++
++typedef struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL {
++ EFI_INPUT_RESET_EX Reset;
++ EFI_INPUT_READ_KEY_EX ReadKeyStrokeEx;
++ EFI_EVENT WaitForKeyEx;
++ EFI_SET_STATE SetState;
++ EFI_REGISTER_KEYSTROKE_NOTIFY RegisterKeyNotify;
++ EFI_UNREGISTER_KEYSTROKE_NOTIFY UnregisterKeyNotify;
++} EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL;
++
++#endif
diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc
index 3a919fd82b..88dddb309c 100644
--- a/meta/recipes-core/systemd/systemd.inc
+++ b/meta/recipes-core/systemd/systemd.inc
@@ -18,6 +18,7 @@ SRCREV = "17472dca0160cbe7b807ca648475fd70d0d62fe5"
SRCBRANCH = "v247-stable"
SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH} \
file://7c5fd25119a495009ea62f79e5daec34cc464628.patch \
+ file://48fff0a2af3f62acd446ebec8081b039b72caad8.patch \
"
S = "${WORKDIR}/git"