patches/ltrace/0.5.3/140-mips.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Tue Oct 16 20:57:44 2012 +0200 (2012-10-16)
changeset 3079 37831a33e07e
permissions -rw-r--r--
kernel/linux: fix using custom location

Currently, extract and patch are skipped as thus:
- using a custom directory of pre-installed headers
- a correctly named directory already exists

Otherwise, extract and patch are done.

The current second condition is wrong, because it allows the following
sequence to happen:
- a non-custom kernel is used
- a previous build only partially extracted the non-custom sources
- that p[revious build broke during extraction (eg. incomplete tarball...)
- a subsequent build will find a properly named directory, and will
thus skip extract and patch, which is wrong

Fix that by following the conditions in this table:

Type | Extract | Patch
----------------------+---------+-------
Pre-installed headers | N | N
custom directory | N | N
custom tarball | Y | N
mainstream tarball | Y | Y

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: David Holsgrove <david.holsgrove@xilinx.com>
jocke@1685
     1
This patch is courtesy of OpenEmbedded, by Khem Raj <raj.khem@gmail.com>
jocke@1685
     2
jocke@1685
     3
http://cgit.openembedded.org/cgit.cgi/openembedded/commit/?id=b85b779688f0abc389e3c25d06b54de8b86385c1
jocke@1685
     4
jocke@1685
     5
Index: ltrace-0.5.3/sysdeps/linux-gnu/mipsel/plt.c
jocke@1685
     6
===================================================================
jocke@1685
     7
--- ltrace-0.5.3.orig/sysdeps/linux-gnu/mipsel/plt.c	2009-10-23 23:25:59.292780574 -0700
jocke@1685
     8
+++ ltrace-0.5.3/sysdeps/linux-gnu/mipsel/plt.c	2009-10-23 23:26:22.671522220 -0700
jocke@1685
     9
@@ -1,4 +1,4 @@
jocke@1685
    10
-#include <debug.h>
jocke@1685
    11
+#include "debug.h"
jocke@1685
    12
 #include <gelf.h>
jocke@1685
    13
 #include <sys/ptrace.h>
jocke@1685
    14
 #include "common.h"
jocke@1685
    15
Index: ltrace-0.5.3/sysdeps/linux-gnu/mipsel/regs.c
jocke@1685
    16
===================================================================
jocke@1685
    17
--- ltrace-0.5.3.orig/sysdeps/linux-gnu/mipsel/regs.c	2009-10-23 23:25:59.312777529 -0700
jocke@1685
    18
+++ ltrace-0.5.3/sysdeps/linux-gnu/mipsel/regs.c	2009-10-23 23:26:08.190311896 -0700
jocke@1685
    19
@@ -4,7 +4,6 @@
jocke@1685
    20
 #include <sys/types.h>
jocke@1685
    21
 #include <sys/ptrace.h>
jocke@1685
    22
 #include <asm/ptrace.h>
jocke@1685
    23
-#include <linux/user.h>
jocke@1685
    24
 
jocke@1685
    25
 #include "common.h"
jocke@1685
    26
 #include "mipsel.h"
jocke@1685
    27
Index: ltrace-0.5.3/handle_event.c
jocke@1685
    28
===================================================================
jocke@1685
    29
--- ltrace-0.5.3.orig/handle_event.c	2009-10-23 23:29:48.780274445 -0700
jocke@1685
    30
+++ ltrace-0.5.3/handle_event.c	2009-10-23 23:37:32.260284055 -0700
jocke@1685
    31
@@ -573,7 +573,8 @@ handle_breakpoint(Event *event) {
jocke@1685
    32
 			void *old_addr;
jocke@1685
    33
 			struct library_symbol *sym= event->proc->callstack[i].c_un.libfunc;
jocke@1685
    34
 			assert(sym);
jocke@1685
    35
-			old_addr = dict_find_entry(event->proc->breakpoints, sym2addr(event->proc, sym))->addr;
jocke@1685
    36
+			struct Breakpoint *tbp = dict_find_entry(event->proc->breakpoints, sym2addr(event->proc, sym));
jocke@1685
    37
+			old_addr = tbp->addr;
jocke@1685
    38
 			addr=sym2addr(event->proc,sym);
jocke@1685
    39
 			assert(old_addr !=0 && addr !=0);
jocke@1685
    40
 			if(addr != old_addr){