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(-)
1 diff -dur strace-4.5.15.orig/syscall.c strace-4.5.15/syscall.c
2 --- strace-4.5.15.orig/syscall.c 2006-12-21 23:13:33.000000000 +0100
3 +++ strace-4.5.15/syscall.c 2007-07-14 19:21:44.000000000 +0200
6 * Note: we only deal with only 32-bit CPUs here.
9 + if (!(tcp->flags & TCB_INSYSCALL) &&
10 + (tcp->flags & TCB_WAITEXECVE)) {
11 + /* caught a fake syscall from the execve's exit */
12 + tcp->flags &= ~TCB_WAITEXECVE;
17 if (regs.ARM_cpsr & 0x20) {
19 * Get the Thumb-mode system call number