[General] move scripts and patches to general folder (#782)

Co-authored-by: Viktor <viktorxda@users.noreply.github.com>
pull/791/head
viktorxda 2023-05-12 12:49:01 +02:00 committed by GitHub
parent c64db44a4f
commit de3b24a97b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
67 changed files with 4391 additions and 39 deletions

View File

@ -449,7 +449,7 @@ jobs:
echo "${TLEXT}_HEADERS_${LXHDRS}=y" >> $CONF_PATH
GCC_VER=$(echo $TOOLNAME | cut -d '-' -f 2)
echo "${TLEXT}_GCC_${GCC_VER:3:1}=y" >> $CONF_PATH
echo "BR2_ROOTFS_POST_BUILD_SCRIPT=\"\$(TOPDIR)/../scripts/executing_commands_for_${LIBC}.sh\"" >> $CONF_PATH
echo "BR2_ROOTFS_POST_BUILD_SCRIPT=\"\$(BR2_EXTERNAL_SCRIPTS_PATH)/executing_commands_for_${LIBC}.sh\"" >> $CONF_PATH
cat $CONF_PATH
make BOARD=$BOARD all

View File

@ -22,7 +22,7 @@ endif
ROOT_DIR := $(CURDIR)
BR_EXT_DIR := $(ROOT_DIR)/br-ext-chip-$(PLATFORM)
GENERAL_DIR := $(ROOT_DIR)/general
SCRIPTS_DIR := $(ROOT_DIR)/scripts
SCRIPTS_DIR := $(GENERAL_DIR)/scripts
BR_VER ?= 2021.02.12
BR_DIR := $(ROOT_DIR)/buildroot-$(BR_VER)

View File

@ -1 +0,0 @@
../../../../../patches/linux/4.9.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,41 @@
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 790fbf6..f1f1631 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -38,7 +38,7 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index ba525c2..766127c 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -637,7 +637,9 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+#if (__GNUC__ << 16) + __GNUC_MINOR__ < 0x1000000
+extern YYLTYPE yylloc ;
+#endif
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-parser.tab.c_shipped b/scripts/dtc/dtc-parser.tab.c_shipped
index 31cec50..430f5e1 100644
--- a/scripts/dtc/dtc-parser.tab.c_shipped
+++ b/scripts/dtc/dtc-parser.tab.c_shipped
@@ -185,7 +185,7 @@ struct YYLTYPE
extern YYSTYPE yylval;
-extern YYLTYPE yylloc;
+extern YYLTYPE yylloc ;
int yyparse (void);
#endif /* !YY_YY_DTC_PARSER_TAB_H_INCLUDED */

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.18.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,54 @@
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 3b41bfc..5e62bc0 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -39,7 +39,7 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
#define YY_USER_ACTION \
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index 2d30f41..e073c9b 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -637,7 +637,9 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+#if (__GNUC__ << 16) + __GNUC_MINOR__ < 0x1000000
+extern YYLTYPE yylloc ;
+#endif
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
#define YY_USER_ACTION \
diff --git a/scripts/dtc/dtc-parser.tab.c_shipped b/scripts/dtc/dtc-parser.tab.c_shipped
index c8769d5..f7fbb2e 100644
--- a/scripts/dtc/dtc-parser.tab.c_shipped
+++ b/scripts/dtc/dtc-parser.tab.c_shipped
@@ -70,7 +70,7 @@
#include "dtc.h"
#include "srcpos.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern int yylex(void);
extern void print_error(char const *fmt, ...);
diff --git a/scripts/dtc/dtc-parser.y b/scripts/dtc/dtc-parser.y
index f412460..e00a3c4 100644
--- a/scripts/dtc/dtc-parser.y
+++ b/scripts/dtc/dtc-parser.y
@@ -24,7 +24,7 @@
#include "dtc.h"
#include "srcpos.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern int yylex(void);
extern void print_error(char const *fmt, ...);

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch

View File

@ -0,0 +1,22 @@
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -121,7 +121,7 @@
#define __get_user_check(x,p) \
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register unsigned long __r2 asm("r2"); \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
@@ -165,8 +165,8 @@
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
const typeof(*(p)) __user *__tmp_p = (p); \
- register const typeof(*(p)) __r2 asm("r2") = (x); \
- register const typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
+ register typeof(*(p)) __r2 asm("r2") = (x); \
+ register typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.4.x/gcc8_err_encountered.patch

View File

@ -0,0 +1,26 @@
This fixes kernel compilation errors on GCC >= 8.x on old 3.x kernels
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85745
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -121,7 +121,7 @@
#define get_user(x,p) \
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register unsigned long __r2 asm("r2"); \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
@@ -158,8 +158,8 @@
#define put_user(x,p) \
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
- register const typeof(*(p)) __r2 asm("r2") = (x); \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __r2 asm("r2") = (x); \
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.0.x-3.3.x/gcc8_err_encountered.patch

View File

@ -0,0 +1,26 @@
This fixes kernel compilation errors on GCC >= 8.x on old 3.x kernels
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85745
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -111,7 +111,7 @@
#define get_user(x,p) \
({ \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register unsigned long __r2 asm("r2"); \
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \
@@ -145,8 +145,8 @@
#define put_user(x,p) \
({ \
- register const typeof(*(p)) __r2 asm("r2") = (x); \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __r2 asm("r2") = (x); \
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \
case 1: \

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.4.x/gcc8_err_encountered.patch

View File

@ -0,0 +1,26 @@
This fixes kernel compilation errors on GCC >= 8.x on old 3.x kernels
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85745
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -121,7 +121,7 @@
#define get_user(x,p) \
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register unsigned long __r2 asm("r2"); \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
@@ -158,8 +158,8 @@
#define put_user(x,p) \
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
- register const typeof(*(p)) __r2 asm("r2") = (x); \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __r2 asm("r2") = (x); \
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \

View File

@ -1 +0,0 @@
../../../../../patches/linux/4.9.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,41 @@
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 790fbf6..f1f1631 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -38,7 +38,7 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index ba525c2..766127c 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -637,7 +637,9 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+#if (__GNUC__ << 16) + __GNUC_MINOR__ < 0x1000000
+extern YYLTYPE yylloc ;
+#endif
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-parser.tab.c_shipped b/scripts/dtc/dtc-parser.tab.c_shipped
index 31cec50..430f5e1 100644
--- a/scripts/dtc/dtc-parser.tab.c_shipped
+++ b/scripts/dtc/dtc-parser.tab.c_shipped
@@ -185,7 +185,7 @@ struct YYLTYPE
extern YYSTYPE yylval;
-extern YYLTYPE yylloc;
+extern YYLTYPE yylloc ;
int yyparse (void);
#endif /* !YY_YY_DTC_PARSER_TAB_H_INCLUDED */

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.0.x-3.3.x/gcc8_err_encountered.patch

View File

@ -0,0 +1,26 @@
This fixes kernel compilation errors on GCC >= 8.x on old 3.x kernels
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85745
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -111,7 +111,7 @@
#define get_user(x,p) \
({ \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register unsigned long __r2 asm("r2"); \
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \
@@ -145,8 +145,8 @@
#define put_user(x,p) \
({ \
- register const typeof(*(p)) __r2 asm("r2") = (x); \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __r2 asm("r2") = (x); \
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \
case 1: \

View File

@ -1 +0,0 @@
../../../../../patches/linux/4.9.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,41 @@
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 790fbf6..f1f1631 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -38,7 +38,7 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index ba525c2..766127c 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -637,7 +637,9 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+#if (__GNUC__ << 16) + __GNUC_MINOR__ < 0x1000000
+extern YYLTYPE yylloc ;
+#endif
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-parser.tab.c_shipped b/scripts/dtc/dtc-parser.tab.c_shipped
index 31cec50..430f5e1 100644
--- a/scripts/dtc/dtc-parser.tab.c_shipped
+++ b/scripts/dtc/dtc-parser.tab.c_shipped
@@ -185,7 +185,7 @@ struct YYLTYPE
extern YYSTYPE yylval;
-extern YYLTYPE yylloc;
+extern YYLTYPE yylloc ;
int yyparse (void);
#endif /* !YY_YY_DTC_PARSER_TAB_H_INCLUDED */

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.0.x-3.3.x/gcc8_err_encountered.patch

View File

@ -0,0 +1,26 @@
This fixes kernel compilation errors on GCC >= 8.x on old 3.x kernels
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85745
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -111,7 +111,7 @@
#define get_user(x,p) \
({ \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register unsigned long __r2 asm("r2"); \
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \
@@ -145,8 +145,8 @@
#define put_user(x,p) \
({ \
- register const typeof(*(p)) __r2 asm("r2") = (x); \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __r2 asm("r2") = (x); \
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \
case 1: \

View File

@ -1 +0,0 @@
../../../../../patches/linux/4.9.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,41 @@
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 790fbf6..f1f1631 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -38,7 +38,7 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index ba525c2..766127c 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -637,7 +637,9 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+#if (__GNUC__ << 16) + __GNUC_MINOR__ < 0x1000000
+extern YYLTYPE yylloc ;
+#endif
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-parser.tab.c_shipped b/scripts/dtc/dtc-parser.tab.c_shipped
index 31cec50..430f5e1 100644
--- a/scripts/dtc/dtc-parser.tab.c_shipped
+++ b/scripts/dtc/dtc-parser.tab.c_shipped
@@ -185,7 +185,7 @@ struct YYLTYPE
extern YYSTYPE yylval;
-extern YYLTYPE yylloc;
+extern YYLTYPE yylloc ;
int yyparse (void);
#endif /* !YY_YY_DTC_PARSER_TAB_H_INCLUDED */

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.18.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,54 @@
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 3b41bfc..5e62bc0 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -39,7 +39,7 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
#define YY_USER_ACTION \
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index 2d30f41..e073c9b 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -637,7 +637,9 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+#if (__GNUC__ << 16) + __GNUC_MINOR__ < 0x1000000
+extern YYLTYPE yylloc ;
+#endif
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
#define YY_USER_ACTION \
diff --git a/scripts/dtc/dtc-parser.tab.c_shipped b/scripts/dtc/dtc-parser.tab.c_shipped
index c8769d5..f7fbb2e 100644
--- a/scripts/dtc/dtc-parser.tab.c_shipped
+++ b/scripts/dtc/dtc-parser.tab.c_shipped
@@ -70,7 +70,7 @@
#include "dtc.h"
#include "srcpos.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern int yylex(void);
extern void print_error(char const *fmt, ...);
diff --git a/scripts/dtc/dtc-parser.y b/scripts/dtc/dtc-parser.y
index f412460..e00a3c4 100644
--- a/scripts/dtc/dtc-parser.y
+++ b/scripts/dtc/dtc-parser.y
@@ -24,7 +24,7 @@
#include "dtc.h"
#include "srcpos.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern int yylex(void);
extern void print_error(char const *fmt, ...);

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch

View File

@ -0,0 +1,22 @@
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -121,7 +121,7 @@
#define __get_user_check(x,p) \
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register unsigned long __r2 asm("r2"); \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
@@ -165,8 +165,8 @@
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
const typeof(*(p)) __user *__tmp_p = (p); \
- register const typeof(*(p)) __r2 asm("r2") = (x); \
- register const typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
+ register typeof(*(p)) __r2 asm("r2") = (x); \
+ register typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \

View File

@ -1 +0,0 @@
../../../../../patches/linux/4.9.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,41 @@
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 790fbf6..f1f1631 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -38,7 +38,7 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index ba525c2..766127c 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -637,7 +637,9 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+#if (__GNUC__ << 16) + __GNUC_MINOR__ < 0x1000000
+extern YYLTYPE yylloc ;
+#endif
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-parser.tab.c_shipped b/scripts/dtc/dtc-parser.tab.c_shipped
index 31cec50..430f5e1 100644
--- a/scripts/dtc/dtc-parser.tab.c_shipped
+++ b/scripts/dtc/dtc-parser.tab.c_shipped
@@ -185,7 +185,7 @@ struct YYLTYPE
extern YYSTYPE yylval;
-extern YYLTYPE yylloc;
+extern YYLTYPE yylloc ;
int yyparse (void);
#endif /* !YY_YY_DTC_PARSER_TAB_H_INCLUDED */

View File

@ -1 +0,0 @@
../../../../../patches/linux/4.9.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,41 @@
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 790fbf6..f1f1631 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -38,7 +38,7 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index ba525c2..766127c 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -637,7 +637,9 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+#if (__GNUC__ << 16) + __GNUC_MINOR__ < 0x1000000
+extern YYLTYPE yylloc ;
+#endif
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-parser.tab.c_shipped b/scripts/dtc/dtc-parser.tab.c_shipped
index 31cec50..430f5e1 100644
--- a/scripts/dtc/dtc-parser.tab.c_shipped
+++ b/scripts/dtc/dtc-parser.tab.c_shipped
@@ -185,7 +185,7 @@ struct YYLTYPE
extern YYSTYPE yylval;
-extern YYLTYPE yylloc;
+extern YYLTYPE yylloc ;
int yyparse (void);
#endif /* !YY_YY_DTC_PARSER_TAB_H_INCLUDED */

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.18.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,54 @@
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 3b41bfc..5e62bc0 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -39,7 +39,7 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
#define YY_USER_ACTION \
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index 2d30f41..e073c9b 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -637,7 +637,9 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+#if (__GNUC__ << 16) + __GNUC_MINOR__ < 0x1000000
+extern YYLTYPE yylloc ;
+#endif
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
#define YY_USER_ACTION \
diff --git a/scripts/dtc/dtc-parser.tab.c_shipped b/scripts/dtc/dtc-parser.tab.c_shipped
index c8769d5..f7fbb2e 100644
--- a/scripts/dtc/dtc-parser.tab.c_shipped
+++ b/scripts/dtc/dtc-parser.tab.c_shipped
@@ -70,7 +70,7 @@
#include "dtc.h"
#include "srcpos.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern int yylex(void);
extern void print_error(char const *fmt, ...);
diff --git a/scripts/dtc/dtc-parser.y b/scripts/dtc/dtc-parser.y
index f412460..e00a3c4 100644
--- a/scripts/dtc/dtc-parser.y
+++ b/scripts/dtc/dtc-parser.y
@@ -24,7 +24,7 @@
#include "dtc.h"
#include "srcpos.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern int yylex(void);
extern void print_error(char const *fmt, ...);

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch

View File

@ -0,0 +1,22 @@
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -121,7 +121,7 @@
#define __get_user_check(x,p) \
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register unsigned long __r2 asm("r2"); \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
@@ -165,8 +165,8 @@
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
const typeof(*(p)) __user *__tmp_p = (p); \
- register const typeof(*(p)) __r2 asm("r2") = (x); \
- register const typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
+ register typeof(*(p)) __r2 asm("r2") = (x); \
+ register typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.18.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,54 @@
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 3b41bfc..5e62bc0 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -39,7 +39,7 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
#define YY_USER_ACTION \
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index 2d30f41..e073c9b 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -637,7 +637,9 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+#if (__GNUC__ << 16) + __GNUC_MINOR__ < 0x1000000
+extern YYLTYPE yylloc ;
+#endif
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
#define YY_USER_ACTION \
diff --git a/scripts/dtc/dtc-parser.tab.c_shipped b/scripts/dtc/dtc-parser.tab.c_shipped
index c8769d5..f7fbb2e 100644
--- a/scripts/dtc/dtc-parser.tab.c_shipped
+++ b/scripts/dtc/dtc-parser.tab.c_shipped
@@ -70,7 +70,7 @@
#include "dtc.h"
#include "srcpos.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern int yylex(void);
extern void print_error(char const *fmt, ...);
diff --git a/scripts/dtc/dtc-parser.y b/scripts/dtc/dtc-parser.y
index f412460..e00a3c4 100644
--- a/scripts/dtc/dtc-parser.y
+++ b/scripts/dtc/dtc-parser.y
@@ -24,7 +24,7 @@
#include "dtc.h"
#include "srcpos.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern int yylex(void);
extern void print_error(char const *fmt, ...);

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch

View File

@ -0,0 +1,22 @@
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -121,7 +121,7 @@
#define __get_user_check(x,p) \
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register unsigned long __r2 asm("r2"); \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
@@ -165,8 +165,8 @@
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
const typeof(*(p)) __user *__tmp_p = (p); \
- register const typeof(*(p)) __r2 asm("r2") = (x); \
- register const typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
+ register typeof(*(p)) __r2 asm("r2") = (x); \
+ register typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \

View File

@ -1 +0,0 @@
../../../../../patches/linux/4.9.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,41 @@
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 790fbf6..f1f1631 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -38,7 +38,7 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index ba525c2..766127c 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -637,7 +637,9 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+#if (__GNUC__ << 16) + __GNUC_MINOR__ < 0x1000000
+extern YYLTYPE yylloc ;
+#endif
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-parser.tab.c_shipped b/scripts/dtc/dtc-parser.tab.c_shipped
index 31cec50..430f5e1 100644
--- a/scripts/dtc/dtc-parser.tab.c_shipped
+++ b/scripts/dtc/dtc-parser.tab.c_shipped
@@ -185,7 +185,7 @@ struct YYLTYPE
extern YYSTYPE yylval;
-extern YYLTYPE yylloc;
+extern YYLTYPE yylloc ;
int yyparse (void);
#endif /* !YY_YY_DTC_PARSER_TAB_H_INCLUDED */

View File

@ -1 +0,0 @@
../../../../../patches/linux/4.19.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,11 @@
--- a/scripts/dtc/dtc-lexer.l 2019-12-21 12:57:45.000000000 +0300
+++ b/scripts/dtc/dtc-lexer.l 2021-10-24 16:01:38.478555927 +0300
@@ -38,7 +38,7 @@
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+extern YYLTYPE yylloc ;
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */

View File

@ -1 +0,0 @@
../../../../../patches/linux/4.19.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,11 @@
--- a/scripts/dtc/dtc-lexer.l 2019-12-21 12:57:45.000000000 +0300
+++ b/scripts/dtc/dtc-lexer.l 2021-10-24 16:01:38.478555927 +0300
@@ -38,7 +38,7 @@
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+extern YYLTYPE yylloc ;
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.18.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,54 @@
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 3b41bfc..5e62bc0 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -39,7 +39,7 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
#define YY_USER_ACTION \
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index 2d30f41..e073c9b 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -637,7 +637,9 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+#if (__GNUC__ << 16) + __GNUC_MINOR__ < 0x1000000
+extern YYLTYPE yylloc ;
+#endif
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
#define YY_USER_ACTION \
diff --git a/scripts/dtc/dtc-parser.tab.c_shipped b/scripts/dtc/dtc-parser.tab.c_shipped
index c8769d5..f7fbb2e 100644
--- a/scripts/dtc/dtc-parser.tab.c_shipped
+++ b/scripts/dtc/dtc-parser.tab.c_shipped
@@ -70,7 +70,7 @@
#include "dtc.h"
#include "srcpos.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern int yylex(void);
extern void print_error(char const *fmt, ...);
diff --git a/scripts/dtc/dtc-parser.y b/scripts/dtc/dtc-parser.y
index f412460..e00a3c4 100644
--- a/scripts/dtc/dtc-parser.y
+++ b/scripts/dtc/dtc-parser.y
@@ -24,7 +24,7 @@
#include "dtc.h"
#include "srcpos.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern int yylex(void);
extern void print_error(char const *fmt, ...);

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch

View File

@ -0,0 +1,22 @@
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -121,7 +121,7 @@
#define __get_user_check(x,p) \
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register unsigned long __r2 asm("r2"); \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
@@ -165,8 +165,8 @@
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
const typeof(*(p)) __user *__tmp_p = (p); \
- register const typeof(*(p)) __r2 asm("r2") = (x); \
- register const typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
+ register typeof(*(p)) __r2 asm("r2") = (x); \
+ register typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.18.x/ARM-vfp-force-non-conditional-encoding-for-external-Thumb2-tail-call.patch

View File

@ -0,0 +1,149 @@
From patchwork Thu Sep 17 06:19:48 2020
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Ard Biesheuvel <ardb@kernel.org>
X-Patchwork-Id: 11781619
Return-Path:
<SRS0=6281=C2=lists.infradead.org=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@kernel.org>
Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
[172.30.200.123])
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E7EA96CA
for <patchwork-linux-arm@patchwork.kernel.org>;
Thu, 17 Sep 2020 06:20:24 +0000 (UTC)
Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(No client certificate requested)
by mail.kernel.org (Postfix) with ESMTPS id 758BF208E4
for <patchwork-linux-arm@patchwork.kernel.org>;
Thu, 17 Sep 2020 06:20:24 +0000 (UTC)
Authentication-Results: mail.kernel.org;
dkim=pass (2048-bit key) header.d=lists.infradead.org
header.i=@lists.infradead.org header.b="asIIUop8";
dkim=fail reason="signature verification failed" (1024-bit key)
header.d=kernel.org header.i=@kernel.org header.b="Dfh0zH+Q"
DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 758BF208E4
Authentication-Results: mail.kernel.org;
dmarc=fail (p=none dis=none) header.from=kernel.org
Authentication-Results: mail.kernel.org;
spf=none
smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
Content-Type:MIME-Version:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
List-Unsubscribe:List-Id:Message-Id:Date:Subject:To:From:Reply-To:Content-ID:
Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
:Resent-Message-ID:In-Reply-To:References:List-Owner;
bh=Lo1QvkycLV/7qa6tRuaKU+043GrCtYRFDvZNpiyIHFs=; b=asIIUop8zx9VLyP8RxH3FSnpIB
goa+Fn9zbDfPdm1XBArYJdBUQkptX0eK5ggte4+RtYnD6jtYPnDQ1atbG+LXFXdCGBPPGD7Ec0NCz
2rf7GocaLxeNTnfrTrLiyeLitFTbrFsfog6LNatG/wbNnekF7ykhcZ7bzwvfMVNbAYwx0vMjCBUDv
yaOUflwQYiTda6AkoJnj1IISdIYLgkCEIzyDVq3rIFW3BA+m5EhmhXKI2gcksipSVuIsbux+px9ZV
v42wJcIXgnVA+qJct1MFfxvPN1vQBL9aLZclNOcXNmKZD8Q09LA4yNxvFkRoNLlBOPKYSN6XHmtJn
mAF9oPSw==;
Received: from localhost ([::1] helo=merlin.infradead.org)
by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
id 1kInGx-0003LG-UJ; Thu, 17 Sep 2020 06:20:00 +0000
Received: from mail.kernel.org ([198.145.29.99])
by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
id 1kInGv-0003Kq-Ma
for linux-arm-kernel@lists.infradead.org; Thu, 17 Sep 2020 06:19:58 +0000
Received: from e123331-lin.nice.arm.com (unknown [91.140.120.15])
(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
(No client certificate requested)
by mail.kernel.org (Postfix) with ESMTPSA id 9D4CD20707;
Thu, 17 Sep 2020 06:19:54 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
s=default; t=1600323596;
bh=ziD1S262d4AhvP0HlkLo4WCfu8gkBuZJo+18GfJki9c=;
h=From:To:Cc:Subject:Date:From;
b=Dfh0zH+QgFdYO0gLoboRtZhySJAl+bjUHgIo8kCQVGjvzCWF7i2BSPEKZiFbSIEGm
fFSTDES62ApoJHYwFnIAtXQMpjV7DYbIoeuFScbKPT4lMxCYpo/X7ffl/+OEWMkRAK
4Unu4CMR1SVL+8a4DZhSoF74nrvGspRqV5Nh1iTI=
From: Ard Biesheuvel <ardb@kernel.org>
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: vfp: force non-conditional encoding for external Thumb2
tail call
Date: Thu, 17 Sep 2020 09:19:48 +0300
Message-Id: <20200917061948.12403-1-ardb@kernel.org>
X-Mailer: git-send-email 2.17.1
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
X-CRM114-CacheID: sfid-20200917_021957_811961_126E0A54
X-CRM114-Status: GOOD ( 13.51 )
X-Spam-Score: -8.2 (--------)
X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary:
Content analysis details: (-8.2 points)
pts rule name description
---- ----------------------
--------------------------------------------------
-5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at https://www.dnswl.org/,
high trust [198.145.29.99 listed in list.dnswl.org]
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
-0.0 SPF_PASS SPF: sender matches SPF record
0.1 DKIM_SIGNED Message has a DKIM or DK signature,
not necessarily
valid
-0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from
envelope-from domain
-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
author's domain
-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
-3.0 DKIMWL_WL_HIGH DKIMwl.org - Whitelisted High sender
X-BeenThere: linux-arm-kernel@lists.infradead.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <linux-arm-kernel.lists.infradead.org>
List-Unsubscribe:
<http://lists.infradead.org/mailman/options/linux-arm-kernel>,
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
List-Subscribe:
<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
Cc: ndesaulniers@google.com, linux@armlinux.org.uk, stable@vger.kernel.org,
Ard Biesheuvel <ardb@kernel.org>
MIME-Version: 1.0
Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
Errors-To:
linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
Nick reports that the following error is produced in some cases when
using GCC+ld.bfd to build the ARM defconfig with Thumb2 enabled:
arch/arm/vfp/vfphw.o: in function `vfp_support_entry':
(.text+0xa): relocation truncated to fit: R_ARM_THM_JUMP19 against
symbol `vfp_kmode_exception' defined in .text.unlikely section in
arch/arm/vfp/vfpmodule.o
$ arm-linux-gnueabihf-ld --version
GNU ld (GNU Binutils for Debian) 2.34
Generally, the linker should be able to fix up out of range branches by
emitting veneers, but apparently, it fails to do so in this particular
case, i.e., a conditional 'tail call' to vfp_kmode_exception(), which
is not defined in the same object file.
So let's force the use of a non-conditional encoding of the B instruction,
which has more space for an immediate offset.
Cc: <stable@vger.kernel.org>
Reported-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
arch/arm/vfp/vfphw.S | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S
index 4fcff9f59947..f1468702fbc9 100644
--- a/arch/arm/vfp/vfphw.S
+++ b/arch/arm/vfp/vfphw.S
@@ -82,6 +82,7 @@ ENTRY(vfp_support_entry)
ldr r3, [sp, #S_PSR] @ Neither lazy restore nor FP exceptions
and r3, r3, #MODE_MASK @ are supported in kernel mode
teq r3, #USR_MODE
+THUMB( it ne )
bne vfp_kmode_exception @ Returns through lr
VFPFMRX r1, FPEXC @ Is the VFP enabled?

View File

@ -1 +0,0 @@
../../../../../patches/linux/4.9.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,41 @@
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 790fbf6..f1f1631 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -38,7 +38,7 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index ba525c2..766127c 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -637,7 +637,9 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+#if (__GNUC__ << 16) + __GNUC_MINOR__ < 0x1000000
+extern YYLTYPE yylloc ;
+#endif
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/scripts/dtc/dtc-parser.tab.c_shipped b/scripts/dtc/dtc-parser.tab.c_shipped
index 31cec50..430f5e1 100644
--- a/scripts/dtc/dtc-parser.tab.c_shipped
+++ b/scripts/dtc/dtc-parser.tab.c_shipped
@@ -185,7 +185,7 @@ struct YYLTYPE
extern YYSTYPE yylval;
-extern YYLTYPE yylloc;
+extern YYLTYPE yylloc ;
int yyparse (void);
#endif /* !YY_YY_DTC_PARSER_TAB_H_INCLUDED */

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.9.x/fix_yylloc_for_modern_host_compilers.patch

View File

@ -0,0 +1,54 @@
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 3b41bfc..5e62bc0 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -39,7 +39,7 @@ LINECOMMENT "//".*\n
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
#define YY_USER_ACTION \
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index 2d30f41..e073c9b 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -637,7 +637,9 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+#if (__GNUC__ << 16) + __GNUC_MINOR__ < 0x1000000
+extern YYLTYPE yylloc ;
+#endif
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
#define YY_USER_ACTION \
diff --git a/scripts/dtc/dtc-parser.tab.c_shipped b/scripts/dtc/dtc-parser.tab.c_shipped
index c8769d5..f7fbb2e 100644
--- a/scripts/dtc/dtc-parser.tab.c_shipped
+++ b/scripts/dtc/dtc-parser.tab.c_shipped
@@ -70,7 +70,7 @@
#include "dtc.h"
#include "srcpos.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern int yylex(void);
extern void print_error(char const *fmt, ...);
diff --git a/scripts/dtc/dtc-parser.y b/scripts/dtc/dtc-parser.y
index f412460..e00a3c4 100644
--- a/scripts/dtc/dtc-parser.y
+++ b/scripts/dtc/dtc-parser.y
@@ -24,7 +24,7 @@
#include "dtc.h"
#include "srcpos.h"
-YYLTYPE yylloc;
+YYLTYPE yylloc ;
extern int yylex(void);
extern void print_error(char const *fmt, ...);

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.9.x/gcc8_err_encountered.patch

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.9.x/overlayfs.v17-3.9-rc2.patch

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.0.x-3.3.x/gcc8_err_encountered.patch

View File

@ -0,0 +1,26 @@
This fixes kernel compilation errors on GCC >= 8.x on old 3.x kernels
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85745
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -111,7 +111,7 @@
#define get_user(x,p) \
({ \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register unsigned long __r2 asm("r2"); \
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \
@@ -145,8 +145,8 @@
#define put_user(x,p) \
({ \
- register const typeof(*(p)) __r2 asm("r2") = (x); \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __r2 asm("r2") = (x); \
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \
case 1: \

View File

@ -1 +0,0 @@
../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch

View File

@ -0,0 +1,22 @@
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -121,7 +121,7 @@
#define __get_user_check(x,p) \
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register unsigned long __r2 asm("r2"); \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
@@ -165,8 +165,8 @@
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
const typeof(*(p)) __user *__tmp_p = (p); \
- register const typeof(*(p)) __r2 asm("r2") = (x); \
- register const typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
+ register typeof(*(p)) __r2 asm("r2") = (x); \
+ register typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \

View File

@ -1,9 +1,9 @@
EXTERNAL_FAMILY = $(shell cat $(BR2_CONFIG) | grep -oE "board.\w+" | cut -d "/" -f 2)
EXTERNAL_RELEASE = $(shell cat $(BR2_CONFIG) | grep -oE "\w+_defconfig" | cut -d "_" -f 2)
EXTERNAL_VENDOR = $(shell cat $(BR2_CONFIG) | grep -oE "br-ext-chip-\w+" | cut -d "-" -f 4)
EXTERNAL_FAMILY = $(shell grep -oE "board.\w+" $(BR2_CONFIG) | cut -d "/" -f 2)
EXTERNAL_RELEASE = $(shell grep -oE "\w+_defconfig" $(BR2_CONFIG) | cut -d "_" -f 2)
EXTERNAL_VENDOR = $(shell grep -oE "br-ext-chip-\w+" $(BR2_CONFIG))
BR2_EXTERNAL_VENDOR_PATH = $(BR2_EXTERNAL_GENERAL_PATH)/../br-ext-chip-$(EXTERNAL_VENDOR)
BR2_EXTERNAL_SCRIPTS_PATH = $(BR2_EXTERNAL_GENERAL_PATH)/../scripts
export BR2_EXTERNAL_VENDOR_PATH = $(BR2_EXTERNAL_GENERAL_PATH)/../$(EXTERNAL_VENDOR)
export BR2_EXTERNAL_SCRIPTS_PATH = $(BR2_EXTERNAL_GENERAL_PATH)/scripts
include $(BR2_EXTERNAL_GENERAL_PATH)/linux/linux-ext-vendor-patcher.mk
include $(sort $(wildcard $(BR2_EXTERNAL_GENERAL_PATH)/package/*/*.mk))

View File

@ -0,0 +1,21 @@
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -121,7 +121,7 @@
#define __get_user_check(x,p) \
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __user *__p asm("r0") = (p);\
register unsigned long __r2 asm("r2"); \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
@@ -165,7 +165,7 @@
({ \
unsigned long __limit = current_thread_info()->addr_limit - 1; \
- register const typeof(*(p)) __r2 asm("r2") = (x); \
- register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register typeof(*(p)) __r2 asm("r2") = (x); \
+ register typeof(*(p)) __user *__p asm("r0") = (p); \
register unsigned long __l asm("r1") = __limit; \
register int __e asm("r0"); \
switch (sizeof(*(__p))) { \

View File

@ -34,7 +34,7 @@ rm -f ${TARGET_DIR}/usr/bin/gdbserver
soc=$(grep defconfig ${BR2_CONFIG} | rev | cut -d "_" -f3- | cut -d "/" -f1 | rev)
release=$(cat ${TARGET_DIR}/usr/lib/os-release | grep BUILD_OPTION | cut -d "=" -f2)
exlist="${BASE_DIR}/../scripts/excludes/${soc}_${release}.list"
exlist="${BR2_EXTERNAL_SCRIPTS_PATH}/excludes/${soc}_${release}.list"
if [ -f ${exlist} ]; then
for e in $(cat ${exlist}); do