hafnium: Fix build when _Noreturn is not available

Message ID 20220420054235.3727707-1-raj.khem@gmail.com
State New
Headers show
Series hafnium: Fix build when _Noreturn is not available | expand

Commit Message

Khem Raj April 20, 2022, 5:42 a.m. UTC
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Jon Mason <jon.mason@arm.com>
Cc: Ross Burton <ross.burton@arm.com>
---
 .../0001-define-_Noreturn-if-needed.patch     | 33 +++++++++++++++++++
 meta-arm/recipes-bsp/hafnium/hafnium_2.6.bb   |  1 +
 2 files changed, 34 insertions(+)
 create mode 100644 meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch

Comments

Ross Burton April 20, 2022, 8:32 a.m. UTC | #1
Missing Upstream-Status.

However, I'd prefer to understand what the actual problem is first, as
this feels like a workaround not a fix.

Ross

On Wed, 20 Apr 2022 at 06:42, Khem Raj <raj.khem@gmail.com> wrote:
>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> Cc: Jon Mason <jon.mason@arm.com>
> Cc: Ross Burton <ross.burton@arm.com>
> ---
>  .../0001-define-_Noreturn-if-needed.patch     | 33 +++++++++++++++++++
>  meta-arm/recipes-bsp/hafnium/hafnium_2.6.bb   |  1 +
>  2 files changed, 34 insertions(+)
>  create mode 100644 meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch
>
> diff --git a/meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch b/meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch
> new file mode 100644
> index 0000000..b73c533
> --- /dev/null
> +++ b/meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch
> @@ -0,0 +1,33 @@
> +From 0d941ba32a082023575fd0d14d52a12b7547b367 Mon Sep 17 00:00:00 2001
> +From: Khem Raj <raj.khem@gmail.com>
> +Date: Tue, 19 Apr 2022 22:32:56 -0700
> +Subject: [PATCH] define _Noreturn if needed
> +
> +The new _Noreturn function specifier is not recognized by the parser and shows as a syntax error:
> +
> +Fixes
> +../git/inc/hf/panic.h:13:1: error: '_Noreturn' is a C11 extension [-Werror,-Wc11-extensions]
> +noreturn void panic(const char *fmt, ...);
> +^
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +---
> + inc/hf/panic.h | 4 ++++
> + 1 file changed, 4 insertions(+)
> +
> +diff --git a/inc/hf/panic.h b/inc/hf/panic.h
> +index ec864e4f..588f1193 100644
> +--- a/inc/hf/panic.h
> ++++ b/inc/hf/panic.h
> +@@ -10,4 +10,8 @@
> +
> + #include <stdnoreturn.h>
> +
> ++#ifndef _Noreturn
> ++#define _Noreturn __attribute__ ((noreturn))
> ++#endif
> ++
> + noreturn void panic(const char *fmt, ...);
> +--
> +2.36.0
> +
> diff --git a/meta-arm/recipes-bsp/hafnium/hafnium_2.6.bb b/meta-arm/recipes-bsp/hafnium/hafnium_2.6.bb
> index 96e455f..a9f41b9 100644
> --- a/meta-arm/recipes-bsp/hafnium/hafnium_2.6.bb
> +++ b/meta-arm/recipes-bsp/hafnium/hafnium_2.6.bb
> @@ -10,6 +10,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
>  inherit deploy python3native pkgconfig
>
>  SRC_URI = "gitsm://git.trustedfirmware.org/hafnium/hafnium.git;protocol=https;branch=master \
> +           file://0001-define-_Noreturn-if-needed.patch \
>             file://host-ld.patch \
>             file://pkg-config-native.patch \
>             file://native-dtc.patch"
> --
> 2.36.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#3278): https://lists.yoctoproject.org/g/meta-arm/message/3278
> Mute This Topic: https://lists.yoctoproject.org/mt/90578787/1676615
> Group Owner: meta-arm+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/meta-arm/unsub [ross@burtonini.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Khem Raj May 10, 2022, 10:03 p.m. UTC | #2
On Wed, Apr 20, 2022 at 1:33 AM Ross Burton <ross@burtonini.com> wrote:
>
> Missing Upstream-Status.
>
> However, I'd prefer to understand what the actual problem is first, as
> this feels like a workaround not a fix.

ping, now that gcc12 is in master, it should be reproducible for you.

>
> Ross
>
> On Wed, 20 Apr 2022 at 06:42, Khem Raj <raj.khem@gmail.com> wrote:
> >
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > Cc: Jon Mason <jon.mason@arm.com>
> > Cc: Ross Burton <ross.burton@arm.com>
> > ---
> >  .../0001-define-_Noreturn-if-needed.patch     | 33 +++++++++++++++++++
> >  meta-arm/recipes-bsp/hafnium/hafnium_2.6.bb   |  1 +
> >  2 files changed, 34 insertions(+)
> >  create mode 100644 meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch
> >
> > diff --git a/meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch b/meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch
> > new file mode 100644
> > index 0000000..b73c533
> > --- /dev/null
> > +++ b/meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch
> > @@ -0,0 +1,33 @@
> > +From 0d941ba32a082023575fd0d14d52a12b7547b367 Mon Sep 17 00:00:00 2001
> > +From: Khem Raj <raj.khem@gmail.com>
> > +Date: Tue, 19 Apr 2022 22:32:56 -0700
> > +Subject: [PATCH] define _Noreturn if needed
> > +
> > +The new _Noreturn function specifier is not recognized by the parser and shows as a syntax error:
> > +
> > +Fixes
> > +../git/inc/hf/panic.h:13:1: error: '_Noreturn' is a C11 extension [-Werror,-Wc11-extensions]
> > +noreturn void panic(const char *fmt, ...);
> > +^
> > +
> > +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > +---
> > + inc/hf/panic.h | 4 ++++
> > + 1 file changed, 4 insertions(+)
> > +
> > +diff --git a/inc/hf/panic.h b/inc/hf/panic.h
> > +index ec864e4f..588f1193 100644
> > +--- a/inc/hf/panic.h
> > ++++ b/inc/hf/panic.h
> > +@@ -10,4 +10,8 @@
> > +
> > + #include <stdnoreturn.h>
> > +
> > ++#ifndef _Noreturn
> > ++#define _Noreturn __attribute__ ((noreturn))
> > ++#endif
> > ++
> > + noreturn void panic(const char *fmt, ...);
> > +--
> > +2.36.0
> > +
> > diff --git a/meta-arm/recipes-bsp/hafnium/hafnium_2.6.bb b/meta-arm/recipes-bsp/hafnium/hafnium_2.6.bb
> > index 96e455f..a9f41b9 100644
> > --- a/meta-arm/recipes-bsp/hafnium/hafnium_2.6.bb
> > +++ b/meta-arm/recipes-bsp/hafnium/hafnium_2.6.bb
> > @@ -10,6 +10,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
> >  inherit deploy python3native pkgconfig
> >
> >  SRC_URI = "gitsm://git.trustedfirmware.org/hafnium/hafnium.git;protocol=https;branch=master \
> > +           file://0001-define-_Noreturn-if-needed.patch \
> >             file://host-ld.patch \
> >             file://pkg-config-native.patch \
> >             file://native-dtc.patch"
> > --
> > 2.36.0
> >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#3278): https://lists.yoctoproject.org/g/meta-arm/message/3278
> > Mute This Topic: https://lists.yoctoproject.org/mt/90578787/1676615
> > Group Owner: meta-arm+owner@lists.yoctoproject.org
> > Unsubscribe: https://lists.yoctoproject.org/g/meta-arm/unsub [ross@burtonini.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
Jon Mason May 11, 2022, 3:41 p.m. UTC | #3
On Tue, 19 Apr 2022 22:42:35 -0700, Khem Raj wrote:
> 


Applied, thanks!

[1/1] hafnium: Fix build when _Noreturn is not available
      commit: cb2eb8e3736be072735d35bb69f0e3be8432843c

Best regards,

Patch

diff --git a/meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch b/meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch
new file mode 100644
index 0000000..b73c533
--- /dev/null
+++ b/meta-arm/recipes-bsp/hafnium/hafnium/0001-define-_Noreturn-if-needed.patch
@@ -0,0 +1,33 @@ 
+From 0d941ba32a082023575fd0d14d52a12b7547b367 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 Apr 2022 22:32:56 -0700
+Subject: [PATCH] define _Noreturn if needed
+
+The new _Noreturn function specifier is not recognized by the parser and shows as a syntax error:
+
+Fixes
+../git/inc/hf/panic.h:13:1: error: '_Noreturn' is a C11 extension [-Werror,-Wc11-extensions]
+noreturn void panic(const char *fmt, ...);
+^
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ inc/hf/panic.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/inc/hf/panic.h b/inc/hf/panic.h
+index ec864e4f..588f1193 100644
+--- a/inc/hf/panic.h
++++ b/inc/hf/panic.h
+@@ -10,4 +10,8 @@
+ 
+ #include <stdnoreturn.h>
+ 
++#ifndef _Noreturn
++#define _Noreturn __attribute__ ((noreturn))
++#endif
++
+ noreturn void panic(const char *fmt, ...);
+-- 
+2.36.0
+
diff --git a/meta-arm/recipes-bsp/hafnium/hafnium_2.6.bb b/meta-arm/recipes-bsp/hafnium/hafnium_2.6.bb
index 96e455f..a9f41b9 100644
--- a/meta-arm/recipes-bsp/hafnium/hafnium_2.6.bb
+++ b/meta-arm/recipes-bsp/hafnium/hafnium_2.6.bb
@@ -10,6 +10,7 @@  PACKAGE_ARCH = "${MACHINE_ARCH}"
 inherit deploy python3native pkgconfig
 
 SRC_URI = "gitsm://git.trustedfirmware.org/hafnium/hafnium.git;protocol=https;branch=master \
+           file://0001-define-_Noreturn-if-needed.patch \
            file://host-ld.patch \
            file://pkg-config-native.patch \
            file://native-dtc.patch"