mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-28 13:16:41 +00:00
u-boot: add rockchip patches to fix aarch64 build
This commit is contained in:
parent
27dff6bd1d
commit
a6d6c7c8fd
@ -0,0 +1,23 @@
|
|||||||
|
From 45be7edd81e458ca90985a0c687e769aa9ebaf5b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jonas Karlman <jonas@kwiboo.se>
|
||||||
|
Date: Mon, 9 Sep 2019 05:59:12 +0000
|
||||||
|
Subject: [PATCH] Revert "Makefile: enable -Werror option"
|
||||||
|
|
||||||
|
This reverts commit 76ba1d8a713bc964fc8e0a639f90344c4c60f026.
|
||||||
|
---
|
||||||
|
Makefile | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index f81ac1f9f9..fe2a57fa58 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -360,7 +360,7 @@ KBUILD_CPPFLAGS := -D__KERNEL__ -D__UBOOT__
|
||||||
|
KBUILD_CFLAGS := -Wall -Wstrict-prototypes \
|
||||||
|
-Wno-format-security \
|
||||||
|
-fno-builtin -ffreestanding
|
||||||
|
-KBUILD_CFLAGS += -fshort-wchar -Werror
|
||||||
|
+KBUILD_CFLAGS += -fshort-wchar
|
||||||
|
KBUILD_AFLAGS := -D__ASSEMBLY__
|
||||||
|
|
||||||
|
# Read UBOOTRELEASE from include/config/uboot.release (if it exists)
|
@ -0,0 +1,48 @@
|
|||||||
|
From 4270dca0656b872ac44dc860151bba76c257cfe2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||||||
|
Date: Mon, 14 May 2018 15:22:06 +0200
|
||||||
|
Subject: [PATCH] Makefile: adopt --std=gnu11 for HOSTCFLAGS on Linux
|
||||||
|
|
||||||
|
Following the conversion of the SPDX license tags, a number of files
|
||||||
|
compiled with -pedantic now generate warnings similar to the following
|
||||||
|
for using C99-style '//' comments in ISO C90 code:
|
||||||
|
|
||||||
|
tools/gen_eth_addr.c:1:1: warning: C++ style comments are not allowed in ISO C90
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
^
|
||||||
|
|
||||||
|
The SPDX comment-style change means that these files have adopted C99,
|
||||||
|
so need to change the language-standard to --std=gnu99 or --std=gnu11
|
||||||
|
to let the compiler know this.
|
||||||
|
|
||||||
|
As we now require GCC 6 or newer for the cross-compiler, the project has
|
||||||
|
implicitly moved the project to GNU11: let older GCC versions on various
|
||||||
|
Linux distros know to treat our host tools as GNU11 as well.
|
||||||
|
|
||||||
|
References: commit 83d290c56fab ("SPDX: Convert all of our single license tags to Linux Kernel style")
|
||||||
|
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||||||
|
Reviewed-by: Tom Rini <trini@konsulko.com>
|
||||||
|
---
|
||||||
|
Makefile | 9 +++++++++
|
||||||
|
1 file changed, 9 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index fe2a57fa58..484a1eb01d 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -260,6 +260,15 @@ HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer \
|
||||||
|
$(if $(CONFIG_TOOLS_DEBUG),-g)
|
||||||
|
HOSTCXXFLAGS = -O2
|
||||||
|
|
||||||
|
+# With the move to GCC 6, we have implicitly upgraded our language
|
||||||
|
+# standard to GNU11 (see https://gcc.gnu.org/gcc-5/porting_to.html).
|
||||||
|
+# Some Linux distributions (including RHEL7, SLES13, Debian 8) still
|
||||||
|
+# have older compilers as their default, so we make it explicit for
|
||||||
|
+# these that our host tools are GNU11 (i.e. C11 w/ GNU extensions).
|
||||||
|
+ifeq ($(HOSTOS),linux)
|
||||||
|
+HOSTCFLAGS += --std=gnu11
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
ifeq ($(HOSTOS),cygwin)
|
||||||
|
HOSTCFLAGS += -ansi
|
||||||
|
endif
|
@ -0,0 +1,41 @@
|
|||||||
|
From 7fcf14b5dafa574cb9f565afebc8428c50f0be02 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tom Rini <trini@konsulko.com>
|
||||||
|
Date: Tue, 19 Jun 2018 23:53:54 -0400
|
||||||
|
Subject: [PATCH] Makefile: Ensure we build with -std=gnu11
|
||||||
|
|
||||||
|
As many targets are now commonly built with gcc-6 or later (which
|
||||||
|
defaults to a newer C standard than older compilers), certain C
|
||||||
|
constructs are now being used as they produce more readable code. And
|
||||||
|
while all compilers that we support building with support the C11
|
||||||
|
standard (and GNU11) they do not default to that standard. Ensure that
|
||||||
|
we pass along -std=gnu11 when building.
|
||||||
|
|
||||||
|
Signed-off-by: Tom Rini <trini@konsulko.com>
|
||||||
|
---
|
||||||
|
Makefile | 5 +++--
|
||||||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index 484a1eb01d..752bff499e 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -265,8 +265,9 @@ HOSTCXXFLAGS = -O2
|
||||||
|
# Some Linux distributions (including RHEL7, SLES13, Debian 8) still
|
||||||
|
# have older compilers as their default, so we make it explicit for
|
||||||
|
# these that our host tools are GNU11 (i.e. C11 w/ GNU extensions).
|
||||||
|
+CSTD_FLAG := -std=gnu11
|
||||||
|
ifeq ($(HOSTOS),linux)
|
||||||
|
-HOSTCFLAGS += --std=gnu11
|
||||||
|
+HOSTCFLAGS += $(CSTD_FLAG)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(HOSTOS),cygwin)
|
||||||
|
@@ -368,7 +369,7 @@ KBUILD_CPPFLAGS := -D__KERNEL__ -D__UBOOT__
|
||||||
|
|
||||||
|
KBUILD_CFLAGS := -Wall -Wstrict-prototypes \
|
||||||
|
-Wno-format-security \
|
||||||
|
- -fno-builtin -ffreestanding
|
||||||
|
+ -fno-builtin -ffreestanding $(CSTD_FLAG)
|
||||||
|
KBUILD_CFLAGS += -fshort-wchar
|
||||||
|
KBUILD_AFLAGS := -D__ASSEMBLY__
|
||||||
|
|
@ -0,0 +1,45 @@
|
|||||||
|
From dcee38742d6376e3fec6e5997077c681d28d1656 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Bin Meng <bmeng.cn@gmail.com>
|
||||||
|
Date: Sun, 16 Sep 2018 22:35:28 -0700
|
||||||
|
Subject: [PATCH] Makefile: Use -fno-strict-aliasing globally
|
||||||
|
|
||||||
|
The -fstrict-aliasing option is implicitly enabled at levels -O2,
|
||||||
|
-O3, -Os by GCC. This option allows the compiler to assume the
|
||||||
|
strictest aliasing rules applicable to the language being compiled.
|
||||||
|
For example, the practice of reading from a different union member
|
||||||
|
than the one most recently written to (called "type-punning") is
|
||||||
|
common. In this case, "type-punning" only works if the memory is
|
||||||
|
accessed through the union type, but might not work by taking the
|
||||||
|
address, casting the resulting pointer and dereferencing the result,
|
||||||
|
which is an undefined behavior per the "strict aliasing rules".
|
||||||
|
|
||||||
|
GCC's -Wstrict-aliasing (included in -Wall) option does not catch
|
||||||
|
all cases, but does attempt to catch the more common pitfalls. So
|
||||||
|
there are cases that GCC does not report but the codes are violating
|
||||||
|
the "strict aliasing rules".
|
||||||
|
|
||||||
|
Given lots of codes that may be written to rely on "type-punning",
|
||||||
|
and Linux kernel disables it by -fno-strict-aliasing globally, since
|
||||||
|
U-Boot currently does this on nds32/riscv/x86 builds only, extend
|
||||||
|
this for all architecture builds.
|
||||||
|
|
||||||
|
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
|
||||||
|
Reviewed-by: Tom Rini <trini@konsulko.com>
|
||||||
|
Reviewed-by: Simon Glass <sjg@chromium.org>
|
||||||
|
---
|
||||||
|
Makefile | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index 752bff499e..14cf1fae33 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -370,7 +370,7 @@ KBUILD_CPPFLAGS := -D__KERNEL__ -D__UBOOT__
|
||||||
|
KBUILD_CFLAGS := -Wall -Wstrict-prototypes \
|
||||||
|
-Wno-format-security \
|
||||||
|
-fno-builtin -ffreestanding $(CSTD_FLAG)
|
||||||
|
-KBUILD_CFLAGS += -fshort-wchar
|
||||||
|
+KBUILD_CFLAGS += -fshort-wchar -fno-strict-aliasing
|
||||||
|
KBUILD_AFLAGS := -D__ASSEMBLY__
|
||||||
|
|
||||||
|
# Read UBOOTRELEASE from include/config/uboot.release (if it exists)
|
Loading…
x
Reference in New Issue
Block a user