Patch to correctly handle the MIPS case.

It was build up by Yann E. MORIN <yann.morin.1998@anciens.enib.fr> from some
bits gathered from buildroot, which is LGPL v2.1
License for dmalloc is:
 * Permission to use, copy, modify, and distribute this software for
 * any purpose and without fee is hereby granted, provided that the
 * above copyright notice and this permission notice appear in all
 * copies, and that the name of Gray Watson not be used in advertising
 * or publicity pertaining to distribution of the document or software
 * without specific, written prior permission.
 *
 * Gray Watson makes no representations about the suitability of the
 * software described herein for any purpose.  It is provided "as is"
 * without express or implied warranty.

I personnaly believe that the resulting code should therefore be
LGPL v2.1, but don't believe me, ask your lawyers!

diff -dur dmalloc-5.5.2.orig/configure dmalloc-5.5.2/configure
--- dmalloc-5.5.2.orig/configure	2007-05-18 12:15:39.000000000 +0200
+++ dmalloc-5.5.2/configure	2007-05-18 12:15:48.000000000 +0200
@@ -7107,7 +7107,7 @@
 echo $ECHO_N "checking return.h macros work... $ECHO_C" >&6
 if test "$cross_compiling" = yes; then
    cat >>confdefs.h <<\_ACEOF
-#define RETURN_MACROS_WORK 0
+#define RETURN_MACROS_WORK 1
 _ACEOF
  echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
diff -dur dmalloc-5.5.2.orig/return.h dmalloc-5.5.2/return.h
--- dmalloc-5.5.2.orig/return.h	2007-05-14 19:26:14.000000000 +0200
+++ dmalloc-5.5.2/return.h	2007-05-18 12:15:48.000000000 +0200
@@ -106,26 +106,16 @@
 /*************************************/
 
 /*
- * For DEC Mips machines running Ultrix
+ * For Mips machines running Linux
  */
 #if __mips
 
 /*
- * I have no idea how to get inline assembly with the default cc.
- * Anyone know how?
- */
-
-#if 0
-
-/*
  * NOTE: we assume here that file is global.
  *
- * $31 is the frame pointer.  $2 looks to be the return address but maybe
- * not consistently.
+ * $31 is the return address.
  */
-#define GET_RET_ADDR(file)	asm("sw $2, file")
-
-#endif
+#define GET_RET_ADDR(file)	asm("sw $31, %0" : "=m" (file))
 
 #endif /* __mips */
 
