Have the glibc build use the cross-objdump, rather than the host one.
On some distros (eg. Fedora), the native objdump can not interpret objects not for the native system, and thus fail.
This commit adds a new patch against glibc-2.7 that introduces OBJDUMP_FOR_HOST, wich, if set, overides the detected objdump.
Note: bizarely enough, glibc already has code to detect the cross-objdump, but that does not work for an unknown reason... :-(
/trunk/patches/glibc/2.7/220-objdump_for_host.patch | 13 13 0 0 +++++++++
/trunk/scripts/build/libc_glibc.sh | 37 21 16 0 +++++++++++++++------------
2 files changed, 34 insertions(+), 16 deletions(-)
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 {