patches/linux/3.0.9/100-headers_install-fix-__packed-in-exported-kernel-head.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Jan 03 22:57:25 2012 +0100 (2012-01-03)
changeset 2936 2dfea349d307
parent 2735 f09ed6dd71a3
permissions -rw-r--r--
cc/gcc: build core compilers for canadian

Currently, we rely on an existing external cross-compiler targetting
the target, to build the C library.

This can pause quite a few problems if that compiler is different from
the one we are building, because it could introduce some ABI issues.

This patch removes this dependency, by building the core compilers
as we do for standard cross, and also by building the binutils and
gcc, for running on the build machine.

This means we no longer need to offer the cross-sompiler selection in
the menuconfig.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@2735
     1
commit f210735fe2f17a6225432ee3d1239bcf23a8659c
yann@2735
     2
Author: Markus Trippelsdorf <markus@trippelsdorf.de>
yann@2735
     3
Date:   Fri Jun 24 15:51:00 2011 +0200
yann@2735
     4
yann@2735
     5
    headers_install: fix __packed in exported kernel headers
yann@2735
     6
    
yann@2735
     7
    checkpatch.pl warns about using __attribute__((packed)) in kernel
yann@2735
     8
    headers: "__packed is preferred over __attribute__((packed))". If one
yann@2735
     9
    follows that advice it could cause problems in the exported header
yann@2735
    10
    files, because the outside world doesn't know about this shortcut.
yann@2735
    11
    
yann@2735
    12
    For example busybox will fail to compile:
yann@2735
    13
     CC      miscutils/ubi_attach_detach.o
yann@2735
    14
     In file included from miscutils/ubi_attach_detach.c:27:0:
yann@2735
    15
     /usr/include/mtd/ubi-user.h:330:3: error: conflicting types for ‘__packed’
yann@2735
    16
     /usr/include/mtd/ubi-user.h:314:3: note: previous declaration of ‘__packed’ was here
yann@2735
    17
    ...
yann@2735
    18
    
yann@2735
    19
    Fix the problem by substituting __packed with __attribute__((packed)) in
yann@2735
    20
    the header_install.pl script.
yann@2735
    21
    
yann@2735
    22
    Cc: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
yann@2735
    23
    CC: Joe Perches <joe@perches.com>
yann@2735
    24
    Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de>
yann@2735
    25
    Signed-off-by: Michal Marek <mmarek@suse.cz>
yann@2735
    26
yann@2735
    27
diff --git a/scripts/headers_install.pl b/scripts/headers_install.pl
yann@2735
    28
index efb3be1..48462be 100644
yann@2735
    29
--- a/scripts/headers_install.pl
yann@2735
    30
+++ b/scripts/headers_install.pl
yann@2735
    31
@@ -35,6 +35,7 @@ foreach my $file (@files) {
yann@2735
    32
 		$line =~ s/([\s(])__iomem\s/$1/g;
yann@2735
    33
 		$line =~ s/\s__attribute_const__\s/ /g;
yann@2735
    34
 		$line =~ s/\s__attribute_const__$//g;
yann@2735
    35
+		$line =~ s/\b__packed\b/__attribute__((packed))/g;
yann@2735
    36
 		$line =~ s/^#include <linux\/compiler.h>//;
yann@2735
    37
 		$line =~ s/(^|\s)(inline)\b/$1__$2__/g;
yann@2735
    38
 		$line =~ s/(^|\s)(asm)\b(\s|[(]|$)/$1__$2__$3/g;