blob: 935ac983a64d71d2013ec670ece5b2645020db18 [file] [log] [blame]
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!
Index: dmalloc-5.5.2/return.h
===================================================================
--- dmalloc-5.5.2.orig/return.h
+++ dmalloc-5.5.2/return.h
@@ -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 */
Index: dmalloc-5.5.2/configure.ac
===================================================================
--- dmalloc-5.5.2.orig/configure.ac
+++ dmalloc-5.5.2/configure.ac
@@ -585,31 +585,7 @@ int main() { return 1; }
# check if the return.h macros work
#
AC_MSG_CHECKING([return.h macros work])
-AC_RUN_IFELSE([
-
-#define __CONF_H__
-#define USE_RETURN_MACROS 1
-#define RETURN_MACROS_WORK 1
-
-#include "return.h"
-
-static void foo (void)
-{
- char *ret_addr;
- GET_RET_ADDR(ret_addr);
-}
-
-main()
-{
- foo();
- exit(0);
-}
-],
-[ AC_DEFINE(RETURN_MACROS_WORK, 1) AC_MSG_RESULT([yes]) ],
-[ AC_DEFINE(RETURN_MACROS_WORK, 0) AC_MSG_RESULT([no]) ],
-[ AC_DEFINE(RETURN_MACROS_WORK, 0) AC_MSG_RESULT([no]) ]
-)
-
+AC_DEFINE(RETURN_MACROS_WORK, 1)
##############################################################################
#