patches/linux/2.6.8/110-linux-2.6.8-allow-gcc-4.0-asm-i386.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Aug 07 14:05:47 2008 +0000 (2008-08-07)
changeset 766 717efd8b78b4
permissions -rw-r--r--
Update all samples to the latest set of options.
Update some samples to use newer features.
Add patches for the uClibc-20080801 snapshot to be able to build with gcc-4.3.
Add a patch against glibc-2.7 to allow building PPC with latest kernel headers.
Add a patch to gcc to use an alternate unwinding when built against uClibc (after a private explanation/request by Daniel Egger <daniel@eggers-club.de>)

/trunk/patches/glibc/2.7/230-powerpc-private_futex.patch | 15 15 0 0 +
/trunk/patches/uClibc/20080801/300-fix-asm.patch | 175 175 0 0 +++++++++
/trunk/patches/uClibc/20080801/100-ifaddrs.patch | 190 190 0 0 +++++++++
/trunk/patches/uClibc/20080801/200-mips-typeof.patch | 112 112 0 0 ++++++
/trunk/patches/gcc/4.3.1/330-unwind-for-uClibc.patch | 25 25 0 0 +
/trunk/samples/x86_64-unknown-linux-gnu/crosstool.config | 17 10 7 0 +
/trunk/samples/armeb-unknown-linux-uclibc/crosstool.config | 7 5 2 0 +
/trunk/samples/arm-unknown-linux-gnueabi/crosstool.config | 7 5 2 0 +
/trunk/samples/ia64-unknown-linux-gnu/crosstool.config | 14 11 3 0 +
/trunk/samples/x86_64-unknown-linux-uclibc/uClibc-20080801.config | 232 232 0 0 ++++++++++++
/trunk/samples/x86_64-unknown-linux-uclibc/crosstool.config | 34 21 13 0 +-
/trunk/samples/i686-nptl-linux-gnu/crosstool.config | 10 7 3 0 +
/trunk/samples/powerpc-unknown-linux-gnu/crosstool.config | 12 9 3 0 +
/trunk/samples/mips-unknown-linux-uclibc/uClibc-20080801.config | 249 249 0 0 ++++++++++++
/trunk/samples/mips-unknown-linux-uclibc/crosstool.config | 38 23 15 0 +-
/trunk/samples/arm-unknown-linux-uclibcgnueabi/crosstool.config | 14 10 4 0 +
/trunk/samples/armeb-unknown-linux-gnu/crosstool.config | 7 5 2 0 +
/trunk/samples/powerpc-unknown_nofpu-linux-gnu/crosstool.config | 12 9 3 0 +
/trunk/samples/arm-unknown-linux-uclibc/crosstool.config | 7 5 2 0 +
/trunk/samples/i586-geode-linux-uclibc/uClibc-20080801.config | 261 261 0 0 +++++++++++++
/trunk/samples/i586-geode-linux-uclibc/crosstool.config | 32 20 12 0 ++
/trunk/samples/powerpc-unknown-linux-uclibc/crosstool.config | 12 9 3 0 +
/trunk/samples/mipsel-unknown-linux-gnu/crosstool.config | 7 5 2 0 +
/trunk/samples/armeb-unknown-linux-uclibcgnueabi/crosstool.config | 7 5 2 0 +
/trunk/samples/alphaev56-unknown-linux-gnu/crosstool.config | 16 10 6 0 +
25 files changed, 1428 insertions(+), 84 deletions(-)
     1 Fixes
     2 
     3 In file included from include/asm/thread_info.h:16,
     4                  from include/linux/thread_info.h:21,
     5                  from include/linux/spinlock.h:12,
     6                  from include/linux/capability.h:45,
     7                  from include/linux/sched.h:7,
     8                  from arch/i386/kernel/asm-offsets.c:7:
     9 include/asm/processor.h:87: error: array type has incomplete element type
    10 make[1]: *** [arch/i386/kernel/asm-offsets.asm] Error 1
    11 
    12 --- linux-2.6.8/include/asm-i386/processor.h.old	Tue Mar 15 00:14:42 2005
    13 +++ linux-2.6.8/include/asm-i386/processor.h	Tue Mar 15 00:18:45 2005
    14 @@ -79,6 +79,58 @@
    15  #define X86_VENDOR_UNKNOWN 0xff
    16  
    17  /*
    18 + * Size of io_bitmap.
    19 + */
    20 +#define IO_BITMAP_BITS  65536
    21 +#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8)
    22 +#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
    23 +#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
    24 +#define INVALID_IO_BITMAP_OFFSET 0x8000
    25 +
    26 +struct tss_struct {
    27 +	unsigned short	back_link,__blh;
    28 +	unsigned long	esp0;
    29 +	unsigned short	ss0,__ss0h;
    30 +	unsigned long	esp1;
    31 +	unsigned short	ss1,__ss1h;	/* ss1 is used to cache MSR_IA32_SYSENTER_CS */
    32 +	unsigned long	esp2;
    33 +	unsigned short	ss2,__ss2h;
    34 +	unsigned long	__cr3;
    35 +	unsigned long	eip;
    36 +	unsigned long	eflags;
    37 +	unsigned long	eax,ecx,edx,ebx;
    38 +	unsigned long	esp;
    39 +	unsigned long	ebp;
    40 +	unsigned long	esi;
    41 +	unsigned long	edi;
    42 +	unsigned short	es, __esh;
    43 +	unsigned short	cs, __csh;
    44 +	unsigned short	ss, __ssh;
    45 +	unsigned short	ds, __dsh;
    46 +	unsigned short	fs, __fsh;
    47 +	unsigned short	gs, __gsh;
    48 +	unsigned short	ldt, __ldth;
    49 +	unsigned short	trace, io_bitmap_base;
    50 +	/*
    51 +	 * The extra 1 is there because the CPU will access an
    52 +	 * additional byte beyond the end of the IO permission
    53 +	 * bitmap. The extra byte must be all 1 bits, and must
    54 +	 * be within the limit.
    55 +	 */
    56 +	unsigned long	io_bitmap[IO_BITMAP_LONGS + 1];
    57 +	/*
    58 +	 * pads the TSS to be cacheline-aligned (size is 0x100)
    59 +	 */
    60 +	unsigned long __cacheline_filler[37];
    61 +	/*
    62 +	 * .. and then another 0x100 bytes for emergency kernel stack
    63 +	 */
    64 +	unsigned long stack[64];
    65 +} __attribute__((packed));
    66 +
    67 +#define ARCH_MIN_TASKALIGN	16
    68 +
    69 +/*
    70   * capabilities of CPUs
    71   */
    72  
    73 @@ -296,15 +348,6 @@
    74   */
    75  #define TASK_UNMAPPED_BASE	(PAGE_ALIGN(TASK_SIZE / 3))
    76  
    77 -/*
    78 - * Size of io_bitmap.
    79 - */
    80 -#define IO_BITMAP_BITS  65536
    81 -#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8)
    82 -#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
    83 -#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
    84 -#define INVALID_IO_BITMAP_OFFSET 0x8000
    85 -
    86  struct i387_fsave_struct {
    87  	long	cwd;
    88  	long	swd;
    89 @@ -356,49 +399,6 @@
    90  typedef struct {
    91  	unsigned long seg;
    92  } mm_segment_t;
    93 -
    94 -struct tss_struct {
    95 -	unsigned short	back_link,__blh;
    96 -	unsigned long	esp0;
    97 -	unsigned short	ss0,__ss0h;
    98 -	unsigned long	esp1;
    99 -	unsigned short	ss1,__ss1h;	/* ss1 is used to cache MSR_IA32_SYSENTER_CS */
   100 -	unsigned long	esp2;
   101 -	unsigned short	ss2,__ss2h;
   102 -	unsigned long	__cr3;
   103 -	unsigned long	eip;
   104 -	unsigned long	eflags;
   105 -	unsigned long	eax,ecx,edx,ebx;
   106 -	unsigned long	esp;
   107 -	unsigned long	ebp;
   108 -	unsigned long	esi;
   109 -	unsigned long	edi;
   110 -	unsigned short	es, __esh;
   111 -	unsigned short	cs, __csh;
   112 -	unsigned short	ss, __ssh;
   113 -	unsigned short	ds, __dsh;
   114 -	unsigned short	fs, __fsh;
   115 -	unsigned short	gs, __gsh;
   116 -	unsigned short	ldt, __ldth;
   117 -	unsigned short	trace, io_bitmap_base;
   118 -	/*
   119 -	 * The extra 1 is there because the CPU will access an
   120 -	 * additional byte beyond the end of the IO permission
   121 -	 * bitmap. The extra byte must be all 1 bits, and must
   122 -	 * be within the limit.
   123 -	 */
   124 -	unsigned long	io_bitmap[IO_BITMAP_LONGS + 1];
   125 -	/*
   126 -	 * pads the TSS to be cacheline-aligned (size is 0x100)
   127 -	 */
   128 -	unsigned long __cacheline_filler[37];
   129 -	/*
   130 -	 * .. and then another 0x100 bytes for emergency kernel stack
   131 -	 */
   132 -	unsigned long stack[64];
   133 -} __attribute__((packed));
   134 -
   135 -#define ARCH_MIN_TASKALIGN	16
   136  
   137  struct thread_struct {
   138  /* cached TLS descriptors. */