Robert P. J. DAY says:
apparently, the patchset for gcc 4.2.1 applies properly to the
source for gcc 4.2.2 and gcc 4.2.3. so, if you want, you can simply
add support for those last two just by augmenting menuconfig and
adding a couple symlinks for those two directories. seems like a
cheap way to add a couple new versions.
4 In file included from arch/ppc/kernel/time.c:68:
5 arch/ppc/kernel/time.c:92: error: static declaration of 'time_offset' follows non-static declaration
6 include/linux/timex.h:236: error: previous declaration of 'time_offset' was here
7 make[1]: *** [arch/ppc/kernel/time.o] Error 1
9 when compiling with gcc-4.0
12 http://user.it.uu.se/~mikpe/linux/patches/2.6/patch-gcc4-fixes-v2-2.6.11
13 Also removes some obsolete externs that caused problems for Mike
14 Mike's patch has a bit more stuff in it, but this was enough for me
17 diff -rupN linux-2.6.11/arch/ppc/kernel/time.c linux-2.6.11.gcc4-fixes-v2/arch/ppc/kernel/time.c
18 --- linux-2.6.11/arch/ppc/kernel/time.c 2005-03-02 19:24:14.000000000 +0100
19 +++ linux-2.6.11.gcc4-fixes-v2/arch/ppc/kernel/time.c 2005-03-02 19:36:26.000000000 +0100
20 @@ -89,7 +89,7 @@ unsigned long tb_to_ns_scale;
22 extern unsigned long wall_jiffies;
24 -static long time_offset;
25 +static long ppc_time_offset;
27 DEFINE_SPINLOCK(rtc_lock);
29 @@ -172,7 +172,7 @@ void timer_interrupt(struct pt_regs * re
30 xtime.tv_sec - last_rtc_update >= 659 &&
31 abs((xtime.tv_nsec / 1000) - (1000000-1000000/HZ)) < 500000/HZ &&
32 jiffies - wall_jiffies == 1) {
33 - if (ppc_md.set_rtc_time(xtime.tv_sec+1 + time_offset) == 0)
34 + if (ppc_md.set_rtc_time(xtime.tv_sec+1 + ppc_time_offset) == 0)
35 last_rtc_update = xtime.tv_sec+1;
37 /* Try again one minute later */
38 @@ -289,7 +289,7 @@ void __init time_init(void)
39 unsigned old_stamp, stamp, elapsed;
41 if (ppc_md.time_init != NULL)
42 - time_offset = ppc_md.time_init();
43 + ppc_time_offset = ppc_md.time_init();
46 /* 601 processor: dec counts down by 128 every 128ns */
47 @@ -334,10 +334,10 @@ void __init time_init(void)
48 set_dec(tb_ticks_per_jiffy);
50 /* If platform provided a timezone (pmac), we correct the time */
52 - sys_tz.tz_minuteswest = -time_offset / 60;
53 + if (ppc_time_offset) {
54 + sys_tz.tz_minuteswest = -ppc_time_offset / 60;
55 sys_tz.tz_dsttime = 0;
56 - xtime.tv_sec -= time_offset;
57 + xtime.tv_sec -= ppc_time_offset;
59 set_normalized_timespec(&wall_to_monotonic,
60 -xtime.tv_sec, -xtime.tv_nsec);
61 diff -rupN linux-2.6.11/arch/ppc/syslib/open_pic_defs.h linux-2.6.11.gcc4-fixes-v2/arch/ppc/syslib/open_pic_defs.h
62 --- linux-2.6.11/arch/ppc/syslib/open_pic_defs.h 2005-03-02 19:24:14.000000000 +0100
63 +++ linux-2.6.11.gcc4-fixes-v2/arch/ppc/syslib/open_pic_defs.h 2005-03-02 19:36:26.000000000 +0100
64 @@ -172,9 +172,6 @@ struct OpenPIC {
65 OpenPIC_Processor Processor[OPENPIC_MAX_PROCESSORS];
68 -extern volatile struct OpenPIC __iomem *OpenPIC;
72 * Current Task Priority Register
74 diff -rupN linux-2.6.11/include/asm-ppc/prom.h linux-2.6.11.gcc4-fixes-v2/include/asm-ppc/prom.h
75 --- linux-2.6.11/include/asm-ppc/prom.h 2003-09-28 12:19:57.000000000 +0200
76 +++ linux-2.6.11.gcc4-fixes-v2/include/asm-ppc/prom.h 2005-03-02 19:36:26.000000000 +0100
78 typedef void *phandle;
79 typedef void *ihandle;
81 -extern char *prom_display_paths[];
82 -extern unsigned int prom_num_displays;
84 struct address_range {