mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-24 15:06:42 +00:00
kernel/linux: fix packed attribute in exported headers
UBI headers (and maybe others as well) are broken because the 'packed' attribute is not sanitised when the headers are exported to userspace. Apply the fix from upstream: https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=f210735fe2f17a6225432ee3d1239bcf23a8659c (Also, buildroot does the same, BTW) Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
This commit is contained in:
parent
6ad1f80bd7
commit
f2c5014909
@ -0,0 +1,38 @@
|
|||||||
|
commit f210735fe2f17a6225432ee3d1239bcf23a8659c
|
||||||
|
Author: Markus Trippelsdorf <markus@trippelsdorf.de>
|
||||||
|
Date: Fri Jun 24 15:51:00 2011 +0200
|
||||||
|
|
||||||
|
headers_install: fix __packed in exported kernel headers
|
||||||
|
|
||||||
|
checkpatch.pl warns about using __attribute__((packed)) in kernel
|
||||||
|
headers: "__packed is preferred over __attribute__((packed))". If one
|
||||||
|
follows that advice it could cause problems in the exported header
|
||||||
|
files, because the outside world doesn't know about this shortcut.
|
||||||
|
|
||||||
|
For example busybox will fail to compile:
|
||||||
|
CC miscutils/ubi_attach_detach.o
|
||||||
|
In file included from miscutils/ubi_attach_detach.c:27:0:
|
||||||
|
/usr/include/mtd/ubi-user.h:330:3: error: conflicting types for ‘__packed’
|
||||||
|
/usr/include/mtd/ubi-user.h:314:3: note: previous declaration of ‘__packed’ was here
|
||||||
|
...
|
||||||
|
|
||||||
|
Fix the problem by substituting __packed with __attribute__((packed)) in
|
||||||
|
the header_install.pl script.
|
||||||
|
|
||||||
|
Cc: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
|
||||||
|
CC: Joe Perches <joe@perches.com>
|
||||||
|
Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de>
|
||||||
|
Signed-off-by: Michal Marek <mmarek@suse.cz>
|
||||||
|
|
||||||
|
diff --git a/scripts/headers_install.pl b/scripts/headers_install.pl
|
||||||
|
index efb3be1..48462be 100644
|
||||||
|
--- a/scripts/headers_install.pl
|
||||||
|
+++ b/scripts/headers_install.pl
|
||||||
|
@@ -35,6 +35,7 @@ foreach my $file (@files) {
|
||||||
|
$line =~ s/([\s(])__iomem\s/$1/g;
|
||||||
|
$line =~ s/\s__attribute_const__\s/ /g;
|
||||||
|
$line =~ s/\s__attribute_const__$//g;
|
||||||
|
+ $line =~ s/\b__packed\b/__attribute__((packed))/g;
|
||||||
|
$line =~ s/^#include <linux\/compiler.h>//;
|
||||||
|
$line =~ s/(^|\s)(inline)\b/$1__$2__/g;
|
||||||
|
$line =~ s/(^|\s)(asm)\b(\s|[(]|$)/$1__$2__$3/g;
|
@ -0,0 +1,38 @@
|
|||||||
|
commit f210735fe2f17a6225432ee3d1239bcf23a8659c
|
||||||
|
Author: Markus Trippelsdorf <markus@trippelsdorf.de>
|
||||||
|
Date: Fri Jun 24 15:51:00 2011 +0200
|
||||||
|
|
||||||
|
headers_install: fix __packed in exported kernel headers
|
||||||
|
|
||||||
|
checkpatch.pl warns about using __attribute__((packed)) in kernel
|
||||||
|
headers: "__packed is preferred over __attribute__((packed))". If one
|
||||||
|
follows that advice it could cause problems in the exported header
|
||||||
|
files, because the outside world doesn't know about this shortcut.
|
||||||
|
|
||||||
|
For example busybox will fail to compile:
|
||||||
|
CC miscutils/ubi_attach_detach.o
|
||||||
|
In file included from miscutils/ubi_attach_detach.c:27:0:
|
||||||
|
/usr/include/mtd/ubi-user.h:330:3: error: conflicting types for ‘__packed’
|
||||||
|
/usr/include/mtd/ubi-user.h:314:3: note: previous declaration of ‘__packed’ was here
|
||||||
|
...
|
||||||
|
|
||||||
|
Fix the problem by substituting __packed with __attribute__((packed)) in
|
||||||
|
the header_install.pl script.
|
||||||
|
|
||||||
|
Cc: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
|
||||||
|
CC: Joe Perches <joe@perches.com>
|
||||||
|
Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de>
|
||||||
|
Signed-off-by: Michal Marek <mmarek@suse.cz>
|
||||||
|
|
||||||
|
diff --git a/scripts/headers_install.pl b/scripts/headers_install.pl
|
||||||
|
index efb3be1..48462be 100644
|
||||||
|
--- a/scripts/headers_install.pl
|
||||||
|
+++ b/scripts/headers_install.pl
|
||||||
|
@@ -35,6 +35,7 @@ foreach my $file (@files) {
|
||||||
|
$line =~ s/([\s(])__iomem\s/$1/g;
|
||||||
|
$line =~ s/\s__attribute_const__\s/ /g;
|
||||||
|
$line =~ s/\s__attribute_const__$//g;
|
||||||
|
+ $line =~ s/\b__packed\b/__attribute__((packed))/g;
|
||||||
|
$line =~ s/^#include <linux\/compiler.h>//;
|
||||||
|
$line =~ s/(^|\s)(inline)\b/$1__$2__/g;
|
||||||
|
$line =~ s/(^|\s)(asm)\b(\s|[(]|$)/$1__$2__$3/g;
|
@ -0,0 +1,38 @@
|
|||||||
|
commit f210735fe2f17a6225432ee3d1239bcf23a8659c
|
||||||
|
Author: Markus Trippelsdorf <markus@trippelsdorf.de>
|
||||||
|
Date: Fri Jun 24 15:51:00 2011 +0200
|
||||||
|
|
||||||
|
headers_install: fix __packed in exported kernel headers
|
||||||
|
|
||||||
|
checkpatch.pl warns about using __attribute__((packed)) in kernel
|
||||||
|
headers: "__packed is preferred over __attribute__((packed))". If one
|
||||||
|
follows that advice it could cause problems in the exported header
|
||||||
|
files, because the outside world doesn't know about this shortcut.
|
||||||
|
|
||||||
|
For example busybox will fail to compile:
|
||||||
|
CC miscutils/ubi_attach_detach.o
|
||||||
|
In file included from miscutils/ubi_attach_detach.c:27:0:
|
||||||
|
/usr/include/mtd/ubi-user.h:330:3: error: conflicting types for ‘__packed’
|
||||||
|
/usr/include/mtd/ubi-user.h:314:3: note: previous declaration of ‘__packed’ was here
|
||||||
|
...
|
||||||
|
|
||||||
|
Fix the problem by substituting __packed with __attribute__((packed)) in
|
||||||
|
the header_install.pl script.
|
||||||
|
|
||||||
|
Cc: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
|
||||||
|
CC: Joe Perches <joe@perches.com>
|
||||||
|
Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de>
|
||||||
|
Signed-off-by: Michal Marek <mmarek@suse.cz>
|
||||||
|
|
||||||
|
diff --git a/scripts/headers_install.pl b/scripts/headers_install.pl
|
||||||
|
index efb3be1..48462be 100644
|
||||||
|
--- a/scripts/headers_install.pl
|
||||||
|
+++ b/scripts/headers_install.pl
|
||||||
|
@@ -35,6 +35,7 @@ foreach my $file (@files) {
|
||||||
|
$line =~ s/([\s(])__iomem\s/$1/g;
|
||||||
|
$line =~ s/\s__attribute_const__\s/ /g;
|
||||||
|
$line =~ s/\s__attribute_const__$//g;
|
||||||
|
+ $line =~ s/\b__packed\b/__attribute__((packed))/g;
|
||||||
|
$line =~ s/^#include <linux\/compiler.h>//;
|
||||||
|
$line =~ s/(^|\s)(inline)\b/$1__$2__/g;
|
||||||
|
$line =~ s/(^|\s)(asm)\b(\s|[(]|$)/$1__$2__$3/g;
|
@ -0,0 +1,38 @@
|
|||||||
|
commit f210735fe2f17a6225432ee3d1239bcf23a8659c
|
||||||
|
Author: Markus Trippelsdorf <markus@trippelsdorf.de>
|
||||||
|
Date: Fri Jun 24 15:51:00 2011 +0200
|
||||||
|
|
||||||
|
headers_install: fix __packed in exported kernel headers
|
||||||
|
|
||||||
|
checkpatch.pl warns about using __attribute__((packed)) in kernel
|
||||||
|
headers: "__packed is preferred over __attribute__((packed))". If one
|
||||||
|
follows that advice it could cause problems in the exported header
|
||||||
|
files, because the outside world doesn't know about this shortcut.
|
||||||
|
|
||||||
|
For example busybox will fail to compile:
|
||||||
|
CC miscutils/ubi_attach_detach.o
|
||||||
|
In file included from miscutils/ubi_attach_detach.c:27:0:
|
||||||
|
/usr/include/mtd/ubi-user.h:330:3: error: conflicting types for ‘__packed’
|
||||||
|
/usr/include/mtd/ubi-user.h:314:3: note: previous declaration of ‘__packed’ was here
|
||||||
|
...
|
||||||
|
|
||||||
|
Fix the problem by substituting __packed with __attribute__((packed)) in
|
||||||
|
the header_install.pl script.
|
||||||
|
|
||||||
|
Cc: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
|
||||||
|
CC: Joe Perches <joe@perches.com>
|
||||||
|
Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de>
|
||||||
|
Signed-off-by: Michal Marek <mmarek@suse.cz>
|
||||||
|
|
||||||
|
diff --git a/scripts/headers_install.pl b/scripts/headers_install.pl
|
||||||
|
index efb3be1..48462be 100644
|
||||||
|
--- a/scripts/headers_install.pl
|
||||||
|
+++ b/scripts/headers_install.pl
|
||||||
|
@@ -35,6 +35,7 @@ foreach my $file (@files) {
|
||||||
|
$line =~ s/([\s(])__iomem\s/$1/g;
|
||||||
|
$line =~ s/\s__attribute_const__\s/ /g;
|
||||||
|
$line =~ s/\s__attribute_const__$//g;
|
||||||
|
+ $line =~ s/\b__packed\b/__attribute__((packed))/g;
|
||||||
|
$line =~ s/^#include <linux\/compiler.h>//;
|
||||||
|
$line =~ s/(^|\s)(inline)\b/$1__$2__/g;
|
||||||
|
$line =~ s/(^|\s)(asm)\b(\s|[(]|$)/$1__$2__$3/g;
|
@ -0,0 +1,38 @@
|
|||||||
|
commit f210735fe2f17a6225432ee3d1239bcf23a8659c
|
||||||
|
Author: Markus Trippelsdorf <markus@trippelsdorf.de>
|
||||||
|
Date: Fri Jun 24 15:51:00 2011 +0200
|
||||||
|
|
||||||
|
headers_install: fix __packed in exported kernel headers
|
||||||
|
|
||||||
|
checkpatch.pl warns about using __attribute__((packed)) in kernel
|
||||||
|
headers: "__packed is preferred over __attribute__((packed))". If one
|
||||||
|
follows that advice it could cause problems in the exported header
|
||||||
|
files, because the outside world doesn't know about this shortcut.
|
||||||
|
|
||||||
|
For example busybox will fail to compile:
|
||||||
|
CC miscutils/ubi_attach_detach.o
|
||||||
|
In file included from miscutils/ubi_attach_detach.c:27:0:
|
||||||
|
/usr/include/mtd/ubi-user.h:330:3: error: conflicting types for ‘__packed’
|
||||||
|
/usr/include/mtd/ubi-user.h:314:3: note: previous declaration of ‘__packed’ was here
|
||||||
|
...
|
||||||
|
|
||||||
|
Fix the problem by substituting __packed with __attribute__((packed)) in
|
||||||
|
the header_install.pl script.
|
||||||
|
|
||||||
|
Cc: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
|
||||||
|
CC: Joe Perches <joe@perches.com>
|
||||||
|
Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de>
|
||||||
|
Signed-off-by: Michal Marek <mmarek@suse.cz>
|
||||||
|
|
||||||
|
diff --git a/scripts/headers_install.pl b/scripts/headers_install.pl
|
||||||
|
index efb3be1..48462be 100644
|
||||||
|
--- a/scripts/headers_install.pl
|
||||||
|
+++ b/scripts/headers_install.pl
|
||||||
|
@@ -35,6 +35,7 @@ foreach my $file (@files) {
|
||||||
|
$line =~ s/([\s(])__iomem\s/$1/g;
|
||||||
|
$line =~ s/\s__attribute_const__\s/ /g;
|
||||||
|
$line =~ s/\s__attribute_const__$//g;
|
||||||
|
+ $line =~ s/\b__packed\b/__attribute__((packed))/g;
|
||||||
|
$line =~ s/^#include <linux\/compiler.h>//;
|
||||||
|
$line =~ s/(^|\s)(inline)\b/$1__$2__/g;
|
||||||
|
$line =~ s/(^|\s)(asm)\b(\s|[(]|$)/$1__$2__$3/g;
|
Loading…
Reference in New Issue
Block a user