| 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) |
| ############################################################################## |
| |
| # |