gcc 3.5 compile fixes
Subsystems (7)
I tried to compile 2.6.7-bk9 with a recent gcc 3.5 snapshot on i386 and x86-64. It gave a lot of warnings and a lot of compile errors for make allyesconfig.
On x86-64 it miscompiled the kernel (due to kernel bugs); I will send fixes for that separately.
Most compile errors were about mixing extern and static declarations of the same symbol. I fixed this all except for the au88x0 driver in ALSA which had a too broken module setup (someone else will have to tackle that)
I got one gcc internal compiler error while compiling the sunrpc gss module. I filed an gcc bug for that.
One problem was that it didn't always inline fix_to_virt() which resulted in undefined symbols. (gcc 3.4 and up doesn't set always inline for normal inline). I fixed this by defining a new macro __always_inline in compiler.h and using that for fix_to_virt
Another issue (I think already fixed in -mm) was that memmove() needs to be moved out of line.
The result were a lot of patches for a lot of files. Instead of spamming l-k with them all I put them in
http://www.firstfloor.org/~andi/35/
Andrew, please consider adding them to your tree.
The resulting i386 kernel booted on one machine; but failed to find the SCSI disks on another (didn't investigate what the problem was on the later, some more work needed on that)
-Andi
I need the following patch to make recent -bk kernels compile against gcc35.
Quoted 35 lines · Andi Kleen
I tried to compile 2.6.7-bk9 with a recent gcc 3.5 snapshot on i386 and x86-64. It gave a lot of warnings and a lot of compile errors for make allyesconfig.
On x86-64 it miscompiled the kernel (due to kernel bugs); I will send fixes for that separately.
Most compile errors were about mixing extern and static declarations of the same symbol. I fixed this all except for the au88x0 driver in ALSA which had a too broken module setup (someone else will have to tackle that)
I got one gcc internal compiler error while compiling the sunrpc gss module. I filed an gcc bug for that.
One problem was that it didn't always inline
fix_to_virt()which resulted in undefined symbols. (gcc 3.4 and up doesn't set always inline for normal inline). I fixed this by defining a new macro__always_inlineincompiler.hand using that forfix_to_virtAnother issue (I think already fixed in -mm) was that
memmove()needs to be moved out of line.The result were a lot of patches for a lot of files. Instead of spamming l-k with them all I put them in
http://www.firstfloor.org/~andi/35/
Andrew, please consider adding them to your tree.The resulting i386 kernel booted on one machine; but failed to find the SCSI disks on another (didn't investigate what the problem was on the later, some more work needed on that)
(quoted diff) +0
-2-Andi -
Quoted 4 lines
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
arch/i386/kernel/cpu/mtrr/if.c +1 -1
@@ -16,7 +16,7 @@#define FILE_FCOUNT (f) (((struct seq_file *)((f)->private_data))->private) -static char *mtrr_strings[MTRR_NUM_TYPES ] = +char *mtrr_strings[MTRR_NUM_TYPES ] = {"uncachable" ,/* 0 */ "write-combining" ,/* 1 */
drivers/pcmcia/ds.c +1 -1
@@ -413,7 +413,7 @@EXPORT_SYMBOL (pcmcia_unregister_driver);#ifdef CONFIG_PROC_FS -static struct proc_dir_entry *proc_pccard =NULL ; +struct proc_dir_entry *proc_pccard =NULL ;static int proc_read_drivers_callback (struct device_driver *driver,void *d) {
drivers/usb/class/usblp.c +1 -1
@@ -1179,7 +1179,7 @@MODULE_DEVICE_TABLE (usb, usblp_ids); -static struct usb_driver usblp_driver = { +struct usb_driver usblp_driver = { .owner =THIS_MODULE , .name ="usblp" , .probe = usblp_probe,
net/ipv6/ip6_fib.c +1 -1
@@ -94,7 +94,7 @@static struct timer_list ip6_fib_timer =TIMER_INITIALIZER (fib6_run_gc,0 ,0 ); -static struct fib6_walker_t fib6_walker_list = { +struct fib6_walker_t fib6_walker_list = { .prev = &fib6_walker_list, .next = &fib6_walker_list, };
net/ipv6/xfrm6_state.c +1 -1
@@ -119,7 +119,7 @@return x0; } -static struct xfrm_state_afinfo xfrm6_state_afinfo = { +struct xfrm_state_afinfo xfrm6_state_afinfo = { .family =AF_INET6 , .lock =RW_LOCK_UNLOCKED , .init_tempsel = __xfrm6_init_tempsel,
scripts/kconfig/mconf.c +1 -1
@@ -88,7 +88,7 @@static int indent;static struct termios ios_org;static int rows, cols; -static struct menu *current_menu; +struct menu *current_menu;static int child_count;static int do_resize;static int single_menu_mode;
Quoted 2 lines · Felipe Alfaro Solana
I need the following patch to make recent -bk kernels compile against gcc35.
It's mostly redundant with my patch kit, except for scripts/* change. I missed that.
-Andi