All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] packagegroup-rpi-test: Poky moved the license so fix LIC_FILES_CHKSUM
@ 2016-06-14 23:50 Andrei Gherzan
  2016-06-14 23:50 ` [PATCH 2/2] linux-raspberrypi: Fix v4.1 with GCC6 Andrei Gherzan
  2016-07-08 11:09 ` [PATCH 1/2] packagegroup-rpi-test: Poky moved the license so fix LIC_FILES_CHKSUM Andrei Gherzan
  0 siblings, 2 replies; 6+ messages in thread
From: Andrei Gherzan @ 2016-06-14 23:50 UTC (permalink / raw)
  To: yocto

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
---
 recipes-core/packagegroups/packagegroup-rpi-test.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/recipes-core/packagegroups/packagegroup-rpi-test.bb b/recipes-core/packagegroups/packagegroup-rpi-test.bb
index ae16cec..a47aeb2 100644
--- a/recipes-core/packagegroups/packagegroup-rpi-test.bb
+++ b/recipes-core/packagegroups/packagegroup-rpi-test.bb
@@ -1,6 +1,6 @@
 DESCRIPTION = "RaspberryPi Test Packagegroup"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3f40d7994397109285ec7b81fdeb3b58"
 
 inherit packagegroup
 
-- 
2.8.2



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] linux-raspberrypi: Fix v4.1 with GCC6
  2016-06-14 23:50 [PATCH 1/2] packagegroup-rpi-test: Poky moved the license so fix LIC_FILES_CHKSUM Andrei Gherzan
@ 2016-06-14 23:50 ` Andrei Gherzan
  2016-06-15 20:43   ` Khem Raj
  2016-07-08 11:09   ` Andrei Gherzan
  2016-07-08 11:09 ` [PATCH 1/2] packagegroup-rpi-test: Poky moved the license so fix LIC_FILES_CHKSUM Andrei Gherzan
  1 sibling, 2 replies; 6+ messages in thread
From: Andrei Gherzan @ 2016-06-14 23:50 UTC (permalink / raw)
  To: yocto

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
---
 ...ove-unused-sm_cache_map_vector-definition.patch | 31 +++++++++
 .../linux-raspberrypi-4.1/0003-fix-gcc6.patch      | 78 ++++++++++++++++++++++
 recipes-kernel/linux/linux-raspberrypi_4.1.bb      |  2 +
 3 files changed, 111 insertions(+)
 create mode 100644 recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch
 create mode 100644 recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch

diff --git a/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch b/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch
new file mode 100644
index 0000000..8d4a900
--- /dev/null
+++ b/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch
@@ -0,0 +1,31 @@
+The code using it also ifdef'ed with 0, anyyd gcc 6
+complains
+
+error: 'sm_cache_map_vector' defined but not used
+
+The code using it also ifdef'ed out
+
+Upstream-status: Denied [https://github.com/raspberrypi/linux/pull/1528]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ drivers/char/broadcom/vc_sm/vmcs_sm.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/char/broadcom/vc_sm/vmcs_sm.c
++++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c
+@@ -197,12 +197,14 @@ struct SM_STATE_T {
+ static struct SM_STATE_T *sm_state;
+ static int sm_inited;
+ 
++#if 0
+ static const char *const sm_cache_map_vector[] = {
+ 	"(null)",
+ 	"host",
+ 	"videocore",
+ 	"host+videocore",
+ };
++#endif
+ 
+ /* ---- Private Function Prototypes -------------------------------------- */
+ 
diff --git a/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch b/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch
new file mode 100644
index 0000000..61ec2fb
--- /dev/null
+++ b/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch
@@ -0,0 +1,78 @@
+Fix compile with GCC6
+
+Upstream-status: Denied [https://github.com/raspberrypi/linux/pull/1528]
+
+Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
+
+Index: source/include/linux/compiler-gcc6.h
+===================================================================
+--- /dev/null
++++ source/include/linux/compiler-gcc6.h
+@@ -0,0 +1,67 @@
++#ifndef __LINUX_COMPILER_H
++#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
++#endif
++
++#define __used				__attribute__((__used__))
++#define __must_check			__attribute__((warn_unused_result))
++#define __compiler_offsetof(a, b)	__builtin_offsetof(a, b)
++
++/* Mark functions as cold. gcc will assume any path leading to a call
++   to them will be unlikely.  This means a lot of manual unlikely()s
++   are unnecessary now for any paths leading to the usual suspects
++   like BUG(), printk(), panic() etc. [but let's keep them for now for
++   older compilers]
++
++   Early snapshots of gcc 4.3 don't support this and we can't detect this
++   in the preprocessor, but we can live with this because they're unreleased.
++   Maketime probing would be overkill here.
++
++   gcc also has a __attribute__((__hot__)) to move hot functions into
++   a special section, but I don't see any sense in this right now in
++   the kernel context */
++#define __cold			__attribute__((__cold__))
++
++#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
++
++#ifndef __CHECKER__
++# define __compiletime_warning(message) __attribute__((warning(message)))
++# define __compiletime_error(message) __attribute__((error(message)))
++#endif /* __CHECKER__ */
++
++/*
++ * Mark a position in code as unreachable.  This can be used to
++ * suppress control flow warnings after asm blocks that transfer
++ * control elsewhere.
++ *
++ * Early snapshots of gcc 4.5 don't support this and we can't detect
++ * this in the preprocessor, but we can live with this because they're
++ * unreleased.  Really, we need to have autoconf for the kernel.
++ */
++#define unreachable() __builtin_unreachable()
++
++/* Mark a function definition as prohibited from being cloned. */
++#define __noclone	__attribute__((__noclone__))
++
++/*
++ * Tell the optimizer that something else uses this function or variable.
++ */
++#define __visible __attribute__((externally_visible))
++
++/*
++ * GCC 'asm goto' miscompiles certain code sequences:
++ *
++ *   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
++ *
++ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
++ *
++ * (asm goto is automatically volatile - the naming reflects this.)
++ */
++#define asm_volatile_goto(x...)	do { asm goto(x); asm (""); } while (0)
++
++#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
++#define __HAVE_BUILTIN_BSWAP32__
++#define __HAVE_BUILTIN_BSWAP64__
++#define __HAVE_BUILTIN_BSWAP16__
++#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
++
++#define KASAN_ABI_VERSION 4
diff --git a/recipes-kernel/linux/linux-raspberrypi_4.1.bb b/recipes-kernel/linux/linux-raspberrypi_4.1.bb
index 79fac66..87c77b8 100644
--- a/recipes-kernel/linux/linux-raspberrypi_4.1.bb
+++ b/recipes-kernel/linux/linux-raspberrypi_4.1.bb
@@ -5,6 +5,8 @@ LINUX_VERSION ?= "4.1.21"
 SRCREV = "ff45bc0e8917c77461b2901e2743e6339bb70413"
 SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-4.1.y \
            file://0001-dts-add-overlay-for-pitft22.patch \
+           file://0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch \
+           file://0003-fix-gcc6.patch \
           "
 
 require linux-raspberrypi.inc
-- 
2.8.2



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] linux-raspberrypi: Fix v4.1 with GCC6
  2016-06-14 23:50 ` [PATCH 2/2] linux-raspberrypi: Fix v4.1 with GCC6 Andrei Gherzan
@ 2016-06-15 20:43   ` Khem Raj
  2016-07-08 13:23     ` Andrei Gherzan
  2016-07-08 11:09   ` Andrei Gherzan
  1 sibling, 1 reply; 6+ messages in thread
From: Khem Raj @ 2016-06-15 20:43 UTC (permalink / raw)
  To: Andrei Gherzan; +Cc: yocto


[-- Attachment #1.1: Type: text/plain, Size: 6949 bytes --]



On Tue, Jun 14, 2016 at 4:50 PM, Andrei Gherzan <andrei@gherzan.ro> wrote:
> Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
> ---
> ...ove-unused-sm_cache_map_vector-definition.patch | 31 +++++++++
> .../linux-raspberrypi-4.1/0003-fix-gcc6.patch      | 78 ++++++++++++++++++++++
> recipes-kernel/linux/linux-raspberrypi_4.1.bb      |  2 +
> 3 files changed, 111 insertions(+)
> create mode 100644 recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch
> create mode 100644 recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch
> 
> diff --git a/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch b/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch
> new file mode 100644
> index 0000000..8d4a900
> --- /dev/null
> +++ b/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch
> @@ -0,0 +1,31 @@
> +The code using it also ifdef'ed with 0, anyyd gcc 6
> +complains
> +
> +error: 'sm_cache_map_vector' defined but not used
> +
> +The code using it also ifdef'ed out
> +
> +Upstream-status: Denied [https://github.com/raspberrypi/linux/pull/1528]
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +---
> + drivers/char/broadcom/vc_sm/vmcs_sm.c | 2 ++
> + 1 file changed, 2 insertions(+)
> +
> +--- a/drivers/char/broadcom/vc_sm/vmcs_sm.c
> ++++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c
> +@@ -197,12 +197,14 @@ struct SM_STATE_T {
> + static struct SM_STATE_T *sm_state;
> + static int sm_inited;
> +
> ++#if 0
> + static const char *const sm_cache_map_vector[] = {
> +       "(null)",
> +       "host",
> +       "videocore",
> +       "host+videocore",
> + };
> ++#endif
> +
> + /* ---- Private Function Prototypes -------------------------------------- */
> +
> diff --git a/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch b/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch
> new file mode 100644
> index 0000000..61ec2fb
> --- /dev/null
> +++ b/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch
> @@ -0,0 +1,78 @@
> +Fix compile with GCC6
> +
> +Upstream-status: Denied [https://github.com/raspberrypi/linux/pull/1528]
> +
> +Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
> +
> +Index: source/include/linux/compiler-gcc6.h
> +===================================================================
> +--- /dev/null
> ++++ source/include/linux/compiler-gcc6.h
> +@@ -0,0 +1,67 @@
> ++#ifndef __LINUX_COMPILER_H
> ++#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
> ++#endif
> ++
> ++#define __used                                __attribute__((__used__))
> ++#define __must_check                  __attribute__((warn_unused_result))
> ++#define __compiler_offsetof(a, b)     __builtin_offsetof(a, b)
> ++
> ++/* Mark functions as cold. gcc will assume any path leading to a call
> ++   to them will be unlikely.  This means a lot of manual unlikely()s
> ++   are unnecessary now for any paths leading to the usual suspects
> ++   like BUG(), printk(), panic() etc. [but let's keep them for now for
> ++   older compilers]
> ++
> ++   Early snapshots of gcc 4.3 don't support this and we can't detect this
> ++   in the preprocessor, but we can live with this because they're unreleased.
> ++   Maketime probing would be overkill here.
> ++
> ++   gcc also has a __attribute__((__hot__)) to move hot functions into
> ++   a special section, but I don't see any sense in this right now in
> ++   the kernel context */
> ++#define __cold                        __attribute__((__cold__))
> ++
> ++#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
> ++
> ++#ifndef __CHECKER__
> ++# define __compiletime_warning(message) __attribute__((warning(message)))
> ++# define __compiletime_error(message) __attribute__((error(message)))
> ++#endif /* __CHECKER__ */
> ++
> ++/*
> ++ * Mark a position in code as unreachable.  This can be used to
> ++ * suppress control flow warnings after asm blocks that transfer
> ++ * control elsewhere.
> ++ *
> ++ * Early snapshots of gcc 4.5 don't support this and we can't detect
> ++ * this in the preprocessor, but we can live with this because they're
> ++ * unreleased.  Really, we need to have autoconf for the kernel.
> ++ */
> ++#define unreachable() __builtin_unreachable()
> ++
> ++/* Mark a function definition as prohibited from being cloned. */
> ++#define __noclone     __attribute__((__noclone__))
> ++
> ++/*
> ++ * Tell the optimizer that something else uses this function or variable.
> ++ */
> ++#define __visible __attribute__((externally_visible))
> ++
> ++/*
> ++ * GCC 'asm goto' miscompiles certain code sequences:
> ++ *
> ++ *   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
> ++ *
> ++ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
> ++ *
> ++ * (asm goto is automatically volatile - the naming reflects this.)
> ++ */
> ++#define asm_volatile_goto(x...)       do { asm goto(x); asm (""); } while (0)
> ++
> ++#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
> ++#define __HAVE_BUILTIN_BSWAP32__
> ++#define __HAVE_BUILTIN_BSWAP64__
> ++#define __HAVE_BUILTIN_BSWAP16__
> ++#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
> ++

should you back port below commit from upstream instead ?

From cb984d101b30eb7478d32df56a0023e4603cba7f Mon Sep 17 00:00:00 2001
From: Joe Perches <joe@perches.com <mailto:joe@perches.com>>
Date: Thu, 25 Jun 2015 15:01:02 -0700
Subject: [PATCH] compiler-gcc: integrate the various compiler-gcc[345].h files

As gcc major version numbers are going to advance rather rapidly in the
future, there's no real value in separate files for each compiler
version.

Deduplicate some of the macros #defined in each file too.

Neaten comments using normal kernel commenting style.


> ++#define KASAN_ABI_VERSION 4
> diff --git a/recipes-kernel/linux/linux-raspberrypi_4.1.bb b/recipes-kernel/linux/linux-raspberrypi_4.1.bb
> index 79fac66..87c77b8 100644
> --- a/recipes-kernel/linux/linux-raspberrypi_4.1.bb
> +++ b/recipes-kernel/linux/linux-raspberrypi_4.1.bb
> @@ -5,6 +5,8 @@ LINUX_VERSION ?= "4.1.21"
> SRCREV = "ff45bc0e8917c77461b2901e2743e6339bb70413"
> SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-4.1.y \
>            file://0001-dts-add-overlay-for-pitft22.patch \
> +           file://0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch \
> +           file://0003-fix-gcc6.patch \
>           "
> 
> require linux-raspberrypi.inc
> --
> 2.8.2
> 
> --
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto

[-- Attachment #1.2: Type: text/html, Size: 11763 bytes --]

[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 211 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] packagegroup-rpi-test: Poky moved the license so fix LIC_FILES_CHKSUM
  2016-06-14 23:50 [PATCH 1/2] packagegroup-rpi-test: Poky moved the license so fix LIC_FILES_CHKSUM Andrei Gherzan
  2016-06-14 23:50 ` [PATCH 2/2] linux-raspberrypi: Fix v4.1 with GCC6 Andrei Gherzan
@ 2016-07-08 11:09 ` Andrei Gherzan
  1 sibling, 0 replies; 6+ messages in thread
From: Andrei Gherzan @ 2016-07-08 11:09 UTC (permalink / raw)
  To: yocto

[-- Attachment #1: Type: text/plain, Size: 886 bytes --]

On Wed, Jun 15, 2016 at 12:50:19AM +0100, Andrei Gherzan wrote:
> Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
> ---
>  recipes-core/packagegroups/packagegroup-rpi-test.bb | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/recipes-core/packagegroups/packagegroup-rpi-test.bb b/recipes-core/packagegroups/packagegroup-rpi-test.bb
> index ae16cec..a47aeb2 100644
> --- a/recipes-core/packagegroups/packagegroup-rpi-test.bb
> +++ b/recipes-core/packagegroups/packagegroup-rpi-test.bb
> @@ -1,6 +1,6 @@
>  DESCRIPTION = "RaspberryPi Test Packagegroup"
>  LICENSE = "MIT"
> -LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
> +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3f40d7994397109285ec7b81fdeb3b58"
>
>  inherit packagegroup
>
> --
> 2.8.2
>

Merged to master.

--
Andrei Gherzan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] linux-raspberrypi: Fix v4.1 with GCC6
  2016-06-14 23:50 ` [PATCH 2/2] linux-raspberrypi: Fix v4.1 with GCC6 Andrei Gherzan
  2016-06-15 20:43   ` Khem Raj
@ 2016-07-08 11:09   ` Andrei Gherzan
  1 sibling, 0 replies; 6+ messages in thread
From: Andrei Gherzan @ 2016-07-08 11:09 UTC (permalink / raw)
  To: yocto

[-- Attachment #1: Type: text/plain, Size: 6143 bytes --]

On Wed, Jun 15, 2016 at 12:50:20AM +0100, Andrei Gherzan wrote:
> Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
> ---
>  ...ove-unused-sm_cache_map_vector-definition.patch | 31 +++++++++
>  .../linux-raspberrypi-4.1/0003-fix-gcc6.patch      | 78 ++++++++++++++++++++++
>  recipes-kernel/linux/linux-raspberrypi_4.1.bb      |  2 +
>  3 files changed, 111 insertions(+)
>  create mode 100644 recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch
>  create mode 100644 recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch
>
> diff --git a/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch b/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch
> new file mode 100644
> index 0000000..8d4a900
> --- /dev/null
> +++ b/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch
> @@ -0,0 +1,31 @@
> +The code using it also ifdef'ed with 0, anyyd gcc 6
> +complains
> +
> +error: 'sm_cache_map_vector' defined but not used
> +
> +The code using it also ifdef'ed out
> +
> +Upstream-status: Denied [https://github.com/raspberrypi/linux/pull/1528]
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +---
> + drivers/char/broadcom/vc_sm/vmcs_sm.c | 2 ++
> + 1 file changed, 2 insertions(+)
> +
> +--- a/drivers/char/broadcom/vc_sm/vmcs_sm.c
> ++++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c
> +@@ -197,12 +197,14 @@ struct SM_STATE_T {
> + static struct SM_STATE_T *sm_state;
> + static int sm_inited;
> +
> ++#if 0
> + static const char *const sm_cache_map_vector[] = {
> + 	"(null)",
> + 	"host",
> + 	"videocore",
> + 	"host+videocore",
> + };
> ++#endif
> +
> + /* ---- Private Function Prototypes -------------------------------------- */
> +
> diff --git a/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch b/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch
> new file mode 100644
> index 0000000..61ec2fb
> --- /dev/null
> +++ b/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch
> @@ -0,0 +1,78 @@
> +Fix compile with GCC6
> +
> +Upstream-status: Denied [https://github.com/raspberrypi/linux/pull/1528]
> +
> +Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
> +
> +Index: source/include/linux/compiler-gcc6.h
> +===================================================================
> +--- /dev/null
> ++++ source/include/linux/compiler-gcc6.h
> +@@ -0,0 +1,67 @@
> ++#ifndef __LINUX_COMPILER_H
> ++#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
> ++#endif
> ++
> ++#define __used				__attribute__((__used__))
> ++#define __must_check			__attribute__((warn_unused_result))
> ++#define __compiler_offsetof(a, b)	__builtin_offsetof(a, b)
> ++
> ++/* Mark functions as cold. gcc will assume any path leading to a call
> ++   to them will be unlikely.  This means a lot of manual unlikely()s
> ++   are unnecessary now for any paths leading to the usual suspects
> ++   like BUG(), printk(), panic() etc. [but let's keep them for now for
> ++   older compilers]
> ++
> ++   Early snapshots of gcc 4.3 don't support this and we can't detect this
> ++   in the preprocessor, but we can live with this because they're unreleased.
> ++   Maketime probing would be overkill here.
> ++
> ++   gcc also has a __attribute__((__hot__)) to move hot functions into
> ++   a special section, but I don't see any sense in this right now in
> ++   the kernel context */
> ++#define __cold			__attribute__((__cold__))
> ++
> ++#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
> ++
> ++#ifndef __CHECKER__
> ++# define __compiletime_warning(message) __attribute__((warning(message)))
> ++# define __compiletime_error(message) __attribute__((error(message)))
> ++#endif /* __CHECKER__ */
> ++
> ++/*
> ++ * Mark a position in code as unreachable.  This can be used to
> ++ * suppress control flow warnings after asm blocks that transfer
> ++ * control elsewhere.
> ++ *
> ++ * Early snapshots of gcc 4.5 don't support this and we can't detect
> ++ * this in the preprocessor, but we can live with this because they're
> ++ * unreleased.  Really, we need to have autoconf for the kernel.
> ++ */
> ++#define unreachable() __builtin_unreachable()
> ++
> ++/* Mark a function definition as prohibited from being cloned. */
> ++#define __noclone	__attribute__((__noclone__))
> ++
> ++/*
> ++ * Tell the optimizer that something else uses this function or variable.
> ++ */
> ++#define __visible __attribute__((externally_visible))
> ++
> ++/*
> ++ * GCC 'asm goto' miscompiles certain code sequences:
> ++ *
> ++ *   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
> ++ *
> ++ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
> ++ *
> ++ * (asm goto is automatically volatile - the naming reflects this.)
> ++ */
> ++#define asm_volatile_goto(x...)	do { asm goto(x); asm (""); } while (0)
> ++
> ++#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
> ++#define __HAVE_BUILTIN_BSWAP32__
> ++#define __HAVE_BUILTIN_BSWAP64__
> ++#define __HAVE_BUILTIN_BSWAP16__
> ++#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
> ++
> ++#define KASAN_ABI_VERSION 4
> diff --git a/recipes-kernel/linux/linux-raspberrypi_4.1.bb b/recipes-kernel/linux/linux-raspberrypi_4.1.bb
> index 79fac66..87c77b8 100644
> --- a/recipes-kernel/linux/linux-raspberrypi_4.1.bb
> +++ b/recipes-kernel/linux/linux-raspberrypi_4.1.bb
> @@ -5,6 +5,8 @@ LINUX_VERSION ?= "4.1.21"
>  SRCREV = "ff45bc0e8917c77461b2901e2743e6339bb70413"
>  SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-4.1.y \
>             file://0001-dts-add-overlay-for-pitft22.patch \
> +           file://0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch \
> +           file://0003-fix-gcc6.patch \
>            "
>
>  require linux-raspberrypi.inc
> --
> 2.8.2
>

Merged to master.

--
Andrei Gherzan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] linux-raspberrypi: Fix v4.1 with GCC6
  2016-06-15 20:43   ` Khem Raj
@ 2016-07-08 13:23     ` Andrei Gherzan
  0 siblings, 0 replies; 6+ messages in thread
From: Andrei Gherzan @ 2016-07-08 13:23 UTC (permalink / raw)
  To: Khem Raj; +Cc: yocto

[-- Attachment #1: Type: text/plain, Size: 7546 bytes --]

On Wed, Jun 15, 2016 at 01:43:23PM -0700, Khem Raj wrote:
>
>
> On Tue, Jun 14, 2016 at 4:50 PM, Andrei Gherzan <andrei@gherzan.ro> wrote:
> > Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
> > ---
> > ...ove-unused-sm_cache_map_vector-definition.patch | 31 +++++++++
> > .../linux-raspberrypi-4.1/0003-fix-gcc6.patch      | 78 ++++++++++++++++++++++
> > recipes-kernel/linux/linux-raspberrypi_4.1.bb      |  2 +
> > 3 files changed, 111 insertions(+)
> > create mode 100644 recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch
> > create mode 100644 recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch
> >
> > diff --git a/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch b/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch
> > new file mode 100644
> > index 0000000..8d4a900
> > --- /dev/null
> > +++ b/recipes-kernel/linux/linux-raspberrypi-4.1/0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch
> > @@ -0,0 +1,31 @@
> > +The code using it also ifdef'ed with 0, anyyd gcc 6
> > +complains
> > +
> > +error: 'sm_cache_map_vector' defined but not used
> > +
> > +The code using it also ifdef'ed out
> > +
> > +Upstream-status: Denied [https://github.com/raspberrypi/linux/pull/1528]
> > +
> > +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > +---
> > + drivers/char/broadcom/vc_sm/vmcs_sm.c | 2 ++
> > + 1 file changed, 2 insertions(+)
> > +
> > +--- a/drivers/char/broadcom/vc_sm/vmcs_sm.c
> > ++++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c
> > +@@ -197,12 +197,14 @@ struct SM_STATE_T {
> > + static struct SM_STATE_T *sm_state;
> > + static int sm_inited;
> > +
> > ++#if 0
> > + static const char *const sm_cache_map_vector[] = {
> > +       "(null)",
> > +       "host",
> > +       "videocore",
> > +       "host+videocore",
> > + };
> > ++#endif
> > +
> > + /* ---- Private Function Prototypes -------------------------------------- */
> > +
> > diff --git a/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch b/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch
> > new file mode 100644
> > index 0000000..61ec2fb
> > --- /dev/null
> > +++ b/recipes-kernel/linux/linux-raspberrypi-4.1/0003-fix-gcc6.patch
> > @@ -0,0 +1,78 @@
> > +Fix compile with GCC6
> > +
> > +Upstream-status: Denied [https://github.com/raspberrypi/linux/pull/1528]
> > +
> > +Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
> > +
> > +Index: source/include/linux/compiler-gcc6.h
> > +===================================================================
> > +--- /dev/null
> > ++++ source/include/linux/compiler-gcc6.h
> > +@@ -0,0 +1,67 @@
> > ++#ifndef __LINUX_COMPILER_H
> > ++#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
> > ++#endif
> > ++
> > ++#define __used                                __attribute__((__used__))
> > ++#define __must_check                  __attribute__((warn_unused_result))
> > ++#define __compiler_offsetof(a, b)     __builtin_offsetof(a, b)
> > ++
> > ++/* Mark functions as cold. gcc will assume any path leading to a call
> > ++   to them will be unlikely.  This means a lot of manual unlikely()s
> > ++   are unnecessary now for any paths leading to the usual suspects
> > ++   like BUG(), printk(), panic() etc. [but let's keep them for now for
> > ++   older compilers]
> > ++
> > ++   Early snapshots of gcc 4.3 don't support this and we can't detect this
> > ++   in the preprocessor, but we can live with this because they're unreleased.
> > ++   Maketime probing would be overkill here.
> > ++
> > ++   gcc also has a __attribute__((__hot__)) to move hot functions into
> > ++   a special section, but I don't see any sense in this right now in
> > ++   the kernel context */
> > ++#define __cold                        __attribute__((__cold__))
> > ++
> > ++#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
> > ++
> > ++#ifndef __CHECKER__
> > ++# define __compiletime_warning(message) __attribute__((warning(message)))
> > ++# define __compiletime_error(message) __attribute__((error(message)))
> > ++#endif /* __CHECKER__ */
> > ++
> > ++/*
> > ++ * Mark a position in code as unreachable.  This can be used to
> > ++ * suppress control flow warnings after asm blocks that transfer
> > ++ * control elsewhere.
> > ++ *
> > ++ * Early snapshots of gcc 4.5 don't support this and we can't detect
> > ++ * this in the preprocessor, but we can live with this because they're
> > ++ * unreleased.  Really, we need to have autoconf for the kernel.
> > ++ */
> > ++#define unreachable() __builtin_unreachable()
> > ++
> > ++/* Mark a function definition as prohibited from being cloned. */
> > ++#define __noclone     __attribute__((__noclone__))
> > ++
> > ++/*
> > ++ * Tell the optimizer that something else uses this function or variable.
> > ++ */
> > ++#define __visible __attribute__((externally_visible))
> > ++
> > ++/*
> > ++ * GCC 'asm goto' miscompiles certain code sequences:
> > ++ *
> > ++ *   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
> > ++ *
> > ++ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
> > ++ *
> > ++ * (asm goto is automatically volatile - the naming reflects this.)
> > ++ */
> > ++#define asm_volatile_goto(x...)       do { asm goto(x); asm (""); } while (0)
> > ++
> > ++#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
> > ++#define __HAVE_BUILTIN_BSWAP32__
> > ++#define __HAVE_BUILTIN_BSWAP64__
> > ++#define __HAVE_BUILTIN_BSWAP16__
> > ++#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
> > ++
>
> should you back port below commit from upstream instead ?
>
> From cb984d101b30eb7478d32df56a0023e4603cba7f Mon Sep 17 00:00:00 2001
> From: Joe Perches <joe@perches.com <mailto:joe@perches.com>>
> Date: Thu, 25 Jun 2015 15:01:02 -0700
> Subject: [PATCH] compiler-gcc: integrate the various compiler-gcc[345].h files
>
> As gcc major version numbers are going to advance rather rapidly in the
> future, there's no real value in separate files for each compiler
> version.
>
> Deduplicate some of the macros #defined in each file too.
>
> Neaten comments using normal kernel commenting style.
>

Shoot. I've seen your email after I merged this. I leave it like this
for now but indeed this would have been a better solution.

I'll keep this in mind if this bites again.

>
> > ++#define KASAN_ABI_VERSION 4
> > diff --git a/recipes-kernel/linux/linux-raspberrypi_4.1.bb b/recipes-kernel/linux/linux-raspberrypi_4.1.bb
> > index 79fac66..87c77b8 100644
> > --- a/recipes-kernel/linux/linux-raspberrypi_4.1.bb
> > +++ b/recipes-kernel/linux/linux-raspberrypi_4.1.bb
> > @@ -5,6 +5,8 @@ LINUX_VERSION ?= "4.1.21"
> > SRCREV = "ff45bc0e8917c77461b2901e2743e6339bb70413"
> > SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-4.1.y \
> >            file://0001-dts-add-overlay-for-pitft22.patch \
> > +           file://0002-vmcs-Remove-unused-sm_cache_map_vector-definition.patch \
> > +           file://0003-fix-gcc6.patch \
> >           "
> >
> > require linux-raspberrypi.inc
> > --
> > 2.8.2
> >
> > --
> > _______________________________________________
> > yocto mailing list
> > yocto@yoctoproject.org
> > https://lists.yoctoproject.org/listinfo/yocto



--
Andrei Gherzan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-07-08 13:23 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-14 23:50 [PATCH 1/2] packagegroup-rpi-test: Poky moved the license so fix LIC_FILES_CHKSUM Andrei Gherzan
2016-06-14 23:50 ` [PATCH 2/2] linux-raspberrypi: Fix v4.1 with GCC6 Andrei Gherzan
2016-06-15 20:43   ` Khem Raj
2016-07-08 13:23     ` Andrei Gherzan
2016-07-08 11:09   ` Andrei Gherzan
2016-07-08 11:09 ` [PATCH 1/2] packagegroup-rpi-test: Poky moved the license so fix LIC_FILES_CHKSUM Andrei Gherzan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.