patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-i386.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Feb 24 11:00:05 2007 +0000 (2007-02-24)
changeset 1 eeea35fbf182
permissions -rw-r--r--
Add the full crosstool-NG sources to the new repository of its own.
You might just say: 'Yeah! crosstool-NG's got its own repo!".
Unfortunately, that's because the previous repo got damaged beyond repair and I had no backup.
That means I'm putting backups in place in the afternoon.
That also means we've lost history... :-(
yann@1
     1
Fixes
yann@1
     2
yann@1
     3
In file included from include/asm/thread_info.h:16,
yann@1
     4
                 from include/linux/thread_info.h:21,
yann@1
     5
                 from include/linux/spinlock.h:12,
yann@1
     6
                 from include/linux/capability.h:45,
yann@1
     7
                 from include/linux/sched.h:7,
yann@1
     8
                 from arch/i386/kernel/asm-offsets.c:7:
yann@1
     9
include/asm/processor.h:87: error: array type has incomplete element type
yann@1
    10
make[1]: *** [arch/i386/kernel/asm-offsets.asm] Error 1
yann@1
    11
yann@1
    12
--- linux-2.6.11.3/include/asm-i386/processor.h.old	Tue Mar 15 06:45:26 2005
yann@1
    13
+++ linux-2.6.11.3/include/asm-i386/processor.h	Tue Mar 15 06:46:45 2005
yann@1
    14
@@ -81,6 +81,64 @@
yann@1
    15
 #define X86_VENDOR_UNKNOWN 0xff
yann@1
    16
 
yann@1
    17
 /*
yann@1
    18
+ * Size of io_bitmap.
yann@1
    19
+ */
yann@1
    20
+#define IO_BITMAP_BITS  65536
yann@1
    21
+#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8)
yann@1
    22
+#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
yann@1
    23
+#define INVALID_IO_BITMAP_OFFSET 0x8000
yann@1
    24
+#define INVALID_IO_BITMAP_OFFSET_LAZY 0x9000
yann@1
    25
+
yann@1
    26
+struct tss_struct {
yann@1
    27
+	unsigned short	back_link,__blh;
yann@1
    28
+	unsigned long	esp0;
yann@1
    29
+	unsigned short	ss0,__ss0h;
yann@1
    30
+	unsigned long	esp1;
yann@1
    31
+	unsigned short	ss1,__ss1h;	/* ss1 is used to cache MSR_IA32_SYSENTER_CS */
yann@1
    32
+	unsigned long	esp2;
yann@1
    33
+	unsigned short	ss2,__ss2h;
yann@1
    34
+	unsigned long	__cr3;
yann@1
    35
+	unsigned long	eip;
yann@1
    36
+	unsigned long	eflags;
yann@1
    37
+	unsigned long	eax,ecx,edx,ebx;
yann@1
    38
+	unsigned long	esp;
yann@1
    39
+	unsigned long	ebp;
yann@1
    40
+	unsigned long	esi;
yann@1
    41
+	unsigned long	edi;
yann@1
    42
+	unsigned short	es, __esh;
yann@1
    43
+	unsigned short	cs, __csh;
yann@1
    44
+	unsigned short	ss, __ssh;
yann@1
    45
+	unsigned short	ds, __dsh;
yann@1
    46
+	unsigned short	fs, __fsh;
yann@1
    47
+	unsigned short	gs, __gsh;
yann@1
    48
+	unsigned short	ldt, __ldth;
yann@1
    49
+	unsigned short	trace, io_bitmap_base;
yann@1
    50
+	/*
yann@1
    51
+	 * The extra 1 is there because the CPU will access an
yann@1
    52
+	 * additional byte beyond the end of the IO permission
yann@1
    53
+	 * bitmap. The extra byte must be all 1 bits, and must
yann@1
    54
+	 * be within the limit.
yann@1
    55
+	 */
yann@1
    56
+	unsigned long	io_bitmap[IO_BITMAP_LONGS + 1];
yann@1
    57
+	/*
yann@1
    58
+	 * Cache the current maximum and the last task that used the bitmap:
yann@1
    59
+	 */
yann@1
    60
+	unsigned long io_bitmap_max;
yann@1
    61
+	struct thread_struct *io_bitmap_owner;
yann@1
    62
+	/*
yann@1
    63
+	 * pads the TSS to be cacheline-aligned (size is 0x100)
yann@1
    64
+	 */
yann@1
    65
+	unsigned long __cacheline_filler[35];
yann@1
    66
+	/*
yann@1
    67
+	 * .. and then another 0x100 bytes for emergency kernel stack
yann@1
    68
+	 */
yann@1
    69
+	unsigned long stack[64];
yann@1
    70
+} __attribute__((packed));
yann@1
    71
+
yann@1
    72
+#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
yann@1
    73
+#define ARCH_MIN_TASKALIGN	16
yann@1
    74
+
yann@1
    75
+/*
yann@1
    76
  * capabilities of CPUs
yann@1
    77
  */
yann@1
    78
 
yann@1
    79
@@ -308,16 +366,6 @@
yann@1
    80
 
yann@1
    81
 #define HAVE_ARCH_PICK_MMAP_LAYOUT
yann@1
    82
 
yann@1
    83
-/*
yann@1
    84
- * Size of io_bitmap.
yann@1
    85
- */
yann@1
    86
-#define IO_BITMAP_BITS  65536
yann@1
    87
-#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8)
yann@1
    88
-#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
yann@1
    89
-#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
yann@1
    90
-#define INVALID_IO_BITMAP_OFFSET 0x8000
yann@1
    91
-#define INVALID_IO_BITMAP_OFFSET_LAZY 0x9000
yann@1
    92
-
yann@1
    93
 struct i387_fsave_struct {
yann@1
    94
 	long	cwd;
yann@1
    95
 	long	swd;
yann@1
    96
@@ -371,54 +419,6 @@
yann@1
    97
 } mm_segment_t;
yann@1
    98
 
yann@1
    99
 struct thread_struct;
yann@1
   100
-
yann@1
   101
-struct tss_struct {
yann@1
   102
-	unsigned short	back_link,__blh;
yann@1
   103
-	unsigned long	esp0;
yann@1
   104
-	unsigned short	ss0,__ss0h;
yann@1
   105
-	unsigned long	esp1;
yann@1
   106
-	unsigned short	ss1,__ss1h;	/* ss1 is used to cache MSR_IA32_SYSENTER_CS */
yann@1
   107
-	unsigned long	esp2;
yann@1
   108
-	unsigned short	ss2,__ss2h;
yann@1
   109
-	unsigned long	__cr3;
yann@1
   110
-	unsigned long	eip;
yann@1
   111
-	unsigned long	eflags;
yann@1
   112
-	unsigned long	eax,ecx,edx,ebx;
yann@1
   113
-	unsigned long	esp;
yann@1
   114
-	unsigned long	ebp;
yann@1
   115
-	unsigned long	esi;
yann@1
   116
-	unsigned long	edi;
yann@1
   117
-	unsigned short	es, __esh;
yann@1
   118
-	unsigned short	cs, __csh;
yann@1
   119
-	unsigned short	ss, __ssh;
yann@1
   120
-	unsigned short	ds, __dsh;
yann@1
   121
-	unsigned short	fs, __fsh;
yann@1
   122
-	unsigned short	gs, __gsh;
yann@1
   123
-	unsigned short	ldt, __ldth;
yann@1
   124
-	unsigned short	trace, io_bitmap_base;
yann@1
   125
-	/*
yann@1
   126
-	 * The extra 1 is there because the CPU will access an
yann@1
   127
-	 * additional byte beyond the end of the IO permission
yann@1
   128
-	 * bitmap. The extra byte must be all 1 bits, and must
yann@1
   129
-	 * be within the limit.
yann@1
   130
-	 */
yann@1
   131
-	unsigned long	io_bitmap[IO_BITMAP_LONGS + 1];
yann@1
   132
-	/*
yann@1
   133
-	 * Cache the current maximum and the last task that used the bitmap:
yann@1
   134
-	 */
yann@1
   135
-	unsigned long io_bitmap_max;
yann@1
   136
-	struct thread_struct *io_bitmap_owner;
yann@1
   137
-	/*
yann@1
   138
-	 * pads the TSS to be cacheline-aligned (size is 0x100)
yann@1
   139
-	 */
yann@1
   140
-	unsigned long __cacheline_filler[35];
yann@1
   141
-	/*
yann@1
   142
-	 * .. and then another 0x100 bytes for emergency kernel stack
yann@1
   143
-	 */
yann@1
   144
-	unsigned long stack[64];
yann@1
   145
-} __attribute__((packed));
yann@1
   146
-
yann@1
   147
-#define ARCH_MIN_TASKALIGN	16
yann@1
   148
 
yann@1
   149
 struct thread_struct {
yann@1
   150
 /* cached TLS descriptors. */