[meta-xilinx] [PATCH 2/2] Add GCC6 patch for compiler-gcc6.h file missing

Nathan Rossi nathan at nathanrossi.com
Sat Jul 16 10:46:47 PDT 2016


On Tue, Jul 12, 2016 at 7:05 AM, Manjukumar Matha
<manjukumar.harthikote-matha at xilinx.com> wrote:
> Copy compiler-gcc5.h as compiler-gcc6.h to fix compilation error This is a
> temporary fix till Xilinx u-boot gets updated
>
> Upstream Status: Never
>
> Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha at xilinx.com>
> ---
>  ...compiler-gcc6.h-Fix-u-boot-issue-for-gcc6.patch | 92 ++++++++++++++++++++++
>  1 file changed, 92 insertions(+)
>  create mode 100644 recipes-bsp/u-boot/u-boot-xlnx/0001-compiler-gcc6.h-Fix-u-boot-issue-for-gcc6.patch
>
> diff --git a/recipes-bsp/u-boot/u-boot-xlnx/0001-compiler-gcc6.h-Fix-u-boot-issue-for-gcc6.patch b/recipes-bsp/u-boot/u-boot-xlnx/0001-compiler-gcc6.h-Fix-u-boot-issue-for-gcc6.patch
> new file mode 100644
> index 0000000..27aab4f
> --- /dev/null
> +++ b/recipes-bsp/u-boot/u-boot-xlnx/0001-compiler-gcc6.h-Fix-u-boot-issue-for-gcc6.patch
> @@ -0,0 +1,92 @@
> +From 27097b226f9b54a433e92dd5591bf48b830a8d77 Mon Sep 17 00:00:00 2001
> +From: Manjukumar Matha <manjukumar.harthikote-matha at xilinx.com>
> +Date: Wed, 22 Jun 2016 02:34:32 -0700
> +Subject: [PATCH] compiler-gcc6.h: Fix u-boot issue for gcc6
> +
> +Fix the u-boot compilation error while using gcc6
> +include/linux/compiler-gcc.h:114:30: fatal error: linux/compiler-gcc6.h: No
> +such file or directory
> +
> +This is a temporary fix, till u-boot-xlnx gets updated to latest revision
> +
> +Upstream Status: Never

"Never" is not commonly used. I have replaced this with inappropriate
to keep consistent with the oe guidelines
(http://openembedded.org/wiki/Commit_Patch_Message_Guidelines#Patch_Header_Recommendations).

But otherwise, applied.

Thanks,
Nathan

> +Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha at xilinx.com>
> +---
> + include/linux/compiler-gcc6.h | 65 +++++++++++++++++++++++++++++++++++++++++++
> + 1 file changed, 65 insertions(+)
> + create mode 100644 include/linux/compiler-gcc6.h
> +
> +diff --git a/include/linux/compiler-gcc6.h b/include/linux/compiler-gcc6.h
> +new file mode 100644
> +index 0000000..c8c5659
> +--- /dev/null
> ++++ b/include/linux/compiler-gcc6.h
> +@@ -0,0 +1,65 @@
> ++#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 */
> +--
> +2.1.4
> +
> --
> 2.7.4
>
> --
> _______________________________________________
> meta-xilinx mailing list
> meta-xilinx at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-xilinx



More information about the meta-xilinx mailing list