patches/linux/2.6.11.3/120-linux-2.6.11-allow-gcc-4.0-asm-i386.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 13 10:32:38 2008 +0000 (2008-07-13)
changeset 645 8e58024f8e37
permissions -rw-r--r--
Ioannis E. VENETIS <venetis@mail.capsl.udel.edu> pointed out that GMP and MPFR were not used by gcc.
Turned out that none could use GMP and MPFR as the config option changed its name, but the change was not propagated to all users.

/trunk/scripts/build/binutils.sh | 2 1 1 0 +-
/trunk/scripts/build/debug/300-gdb.sh | 2 1 1 0 +-
/trunk/scripts/build/cc_gcc.sh | 6 3 3 0 +++---
3 files changed, 5 insertions(+), 5 deletions(-)
yann@402
     1
Fixes
yann@402
     2
yann@402
     3
In file included from include/asm/thread_info.h:16,
yann@402
     4
                 from include/linux/thread_info.h:21,
yann@402
     5
                 from include/linux/spinlock.h:12,
yann@402
     6
                 from include/linux/capability.h:45,
yann@402
     7
                 from include/linux/sched.h:7,
yann@402
     8
                 from arch/i386/kernel/asm-offsets.c:7:
yann@402
     9
include/asm/processor.h:87: error: array type has incomplete element type
yann@402
    10
make[1]: *** [arch/i386/kernel/asm-offsets.asm] Error 1
yann@402
    11
yann@402
    12
--- linux-2.6.11.3/include/asm-i386/processor.h.old	Tue Mar 15 06:45:26 2005
yann@402
    13
+++ linux-2.6.11.3/include/asm-i386/processor.h	Tue Mar 15 06:46:45 2005
yann@402
    14
@@ -81,6 +81,64 @@
yann@402
    15
 #define X86_VENDOR_UNKNOWN 0xff
yann@402
    16
 
yann@402
    17
 /*
yann@402
    18
+ * Size of io_bitmap.
yann@402
    19
+ */
yann@402
    20
+#define IO_BITMAP_BITS  65536
yann@402
    21
+#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8)
yann@402
    22
+#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
yann@402
    23
+#define INVALID_IO_BITMAP_OFFSET 0x8000
yann@402
    24
+#define INVALID_IO_BITMAP_OFFSET_LAZY 0x9000
yann@402
    25
+
yann@402
    26
+struct tss_struct {
yann@402
    27
+	unsigned short	back_link,__blh;
yann@402
    28
+	unsigned long	esp0;
yann@402
    29
+	unsigned short	ss0,__ss0h;
yann@402
    30
+	unsigned long	esp1;
yann@402
    31
+	unsigned short	ss1,__ss1h;	/* ss1 is used to cache MSR_IA32_SYSENTER_CS */
yann@402
    32
+	unsigned long	esp2;
yann@402
    33
+	unsigned short	ss2,__ss2h;
yann@402
    34
+	unsigned long	__cr3;
yann@402
    35
+	unsigned long	eip;
yann@402
    36
+	unsigned long	eflags;
yann@402
    37
+	unsigned long	eax,ecx,edx,ebx;
yann@402
    38
+	unsigned long	esp;
yann@402
    39
+	unsigned long	ebp;
yann@402
    40
+	unsigned long	esi;
yann@402
    41
+	unsigned long	edi;
yann@402
    42
+	unsigned short	es, __esh;
yann@402
    43
+	unsigned short	cs, __csh;
yann@402
    44
+	unsigned short	ss, __ssh;
yann@402
    45
+	unsigned short	ds, __dsh;
yann@402
    46
+	unsigned short	fs, __fsh;
yann@402
    47
+	unsigned short	gs, __gsh;
yann@402
    48
+	unsigned short	ldt, __ldth;
yann@402
    49
+	unsigned short	trace, io_bitmap_base;
yann@402
    50
+	/*
yann@402
    51
+	 * The extra 1 is there because the CPU will access an
yann@402
    52
+	 * additional byte beyond the end of the IO permission
yann@402
    53
+	 * bitmap. The extra byte must be all 1 bits, and must
yann@402
    54
+	 * be within the limit.
yann@402
    55
+	 */
yann@402
    56
+	unsigned long	io_bitmap[IO_BITMAP_LONGS + 1];
yann@402
    57
+	/*
yann@402
    58
+	 * Cache the current maximum and the last task that used the bitmap:
yann@402
    59
+	 */
yann@402
    60
+	unsigned long io_bitmap_max;
yann@402
    61
+	struct thread_struct *io_bitmap_owner;
yann@402
    62
+	/*
yann@402
    63
+	 * pads the TSS to be cacheline-aligned (size is 0x100)
yann@402
    64
+	 */
yann@402
    65
+	unsigned long __cacheline_filler[35];
yann@402
    66
+	/*
yann@402
    67
+	 * .. and then another 0x100 bytes for emergency kernel stack
yann@402
    68
+	 */
yann@402
    69
+	unsigned long stack[64];
yann@402
    70
+} __attribute__((packed));
yann@402
    71
+
yann@402
    72
+#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
yann@402
    73
+#define ARCH_MIN_TASKALIGN	16
yann@402
    74
+
yann@402
    75
+/*
yann@402
    76
  * capabilities of CPUs
yann@402
    77
  */
yann@402
    78
 
yann@402
    79
@@ -308,16 +366,6 @@
yann@402
    80
 
yann@402
    81
 #define HAVE_ARCH_PICK_MMAP_LAYOUT
yann@402
    82
 
yann@402
    83
-/*
yann@402
    84
- * Size of io_bitmap.
yann@402
    85
- */
yann@402
    86
-#define IO_BITMAP_BITS  65536
yann@402
    87
-#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8)
yann@402
    88
-#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
yann@402
    89
-#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
yann@402
    90
-#define INVALID_IO_BITMAP_OFFSET 0x8000
yann@402
    91
-#define INVALID_IO_BITMAP_OFFSET_LAZY 0x9000
yann@402
    92
-
yann@402
    93
 struct i387_fsave_struct {
yann@402
    94
 	long	cwd;
yann@402
    95
 	long	swd;
yann@402
    96
@@ -371,54 +419,6 @@
yann@402
    97
 } mm_segment_t;
yann@402
    98
 
yann@402
    99
 struct thread_struct;
yann@402
   100
-
yann@402
   101
-struct tss_struct {
yann@402
   102
-	unsigned short	back_link,__blh;
yann@402
   103
-	unsigned long	esp0;
yann@402
   104
-	unsigned short	ss0,__ss0h;
yann@402
   105
-	unsigned long	esp1;
yann@402
   106
-	unsigned short	ss1,__ss1h;	/* ss1 is used to cache MSR_IA32_SYSENTER_CS */
yann@402
   107
-	unsigned long	esp2;
yann@402
   108
-	unsigned short	ss2,__ss2h;
yann@402
   109
-	unsigned long	__cr3;
yann@402
   110
-	unsigned long	eip;
yann@402
   111
-	unsigned long	eflags;
yann@402
   112
-	unsigned long	eax,ecx,edx,ebx;
yann@402
   113
-	unsigned long	esp;
yann@402
   114
-	unsigned long	ebp;
yann@402
   115
-	unsigned long	esi;
yann@402
   116
-	unsigned long	edi;
yann@402
   117
-	unsigned short	es, __esh;
yann@402
   118
-	unsigned short	cs, __csh;
yann@402
   119
-	unsigned short	ss, __ssh;
yann@402
   120
-	unsigned short	ds, __dsh;
yann@402
   121
-	unsigned short	fs, __fsh;
yann@402
   122
-	unsigned short	gs, __gsh;
yann@402
   123
-	unsigned short	ldt, __ldth;
yann@402
   124
-	unsigned short	trace, io_bitmap_base;
yann@402
   125
-	/*
yann@402
   126
-	 * The extra 1 is there because the CPU will access an
yann@402
   127
-	 * additional byte beyond the end of the IO permission
yann@402
   128
-	 * bitmap. The extra byte must be all 1 bits, and must
yann@402
   129
-	 * be within the limit.
yann@402
   130
-	 */
yann@402
   131
-	unsigned long	io_bitmap[IO_BITMAP_LONGS + 1];
yann@402
   132
-	/*
yann@402
   133
-	 * Cache the current maximum and the last task that used the bitmap:
yann@402
   134
-	 */
yann@402
   135
-	unsigned long io_bitmap_max;
yann@402
   136
-	struct thread_struct *io_bitmap_owner;
yann@402
   137
-	/*
yann@402
   138
-	 * pads the TSS to be cacheline-aligned (size is 0x100)
yann@402
   139
-	 */
yann@402
   140
-	unsigned long __cacheline_filler[35];
yann@402
   141
-	/*
yann@402
   142
-	 * .. and then another 0x100 bytes for emergency kernel stack
yann@402
   143
-	 */
yann@402
   144
-	unsigned long stack[64];
yann@402
   145
-} __attribute__((packed));
yann@402
   146
-
yann@402
   147
-#define ARCH_MIN_TASKALIGN	16
yann@402
   148
 
yann@402
   149
 struct thread_struct {
yann@402
   150
 /* cached TLS descriptors. */