patches/dmalloc/5.5.2/200-mips.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Apr 26 21:31:05 2008 +0000 (2008-04-26)
changeset 454 372b2f397baa
permissions -rw-r--r--
Configure tsocks with a simple heuristic.

Consider the proxy has to be in a 'local' network. It means it is directly
reachable by the local machine, even if the local machine has to hop through
one or more gates to reach the proxy (often the case in enterprise networks
where class A 10.0.0.0/8 is in fact sub-divided into smaller networks, each
one of them in a different location, eg. 10.1.0.0/16 in a place, while
10.2.0.0/16 would be on the other side of the world). Not being in the same
subnet does not mean the proxy is not available.

So we will build a mask with at most high bits set, which defines a network
that has both the local machine and the proxy. Because a machine may have
more than one interface, build a mask for each of them, removing 127.0.0.1
which is added automagically by tsocks, and removing duplicate masks.

If all of this does not work, then it means the local machine can NOT in fact
reach the proxy, which in turn means the user mis-configured something (most
probably a typo...).

/trunk/scripts/crosstool.sh | 61 52 9 0 +++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 52 insertions(+), 9 deletions(-)
     1 Patch to correctly handle the MIPS case.
     2 
     3 It was build up by Yann E. MORIN <yann.morin.1998@anciens.enib.fr> from some
     4 bits gathered from buildroot, which is LGPL v2.1
     5 License for dmalloc is:
     6  * Permission to use, copy, modify, and distribute this software for
     7  * any purpose and without fee is hereby granted, provided that the
     8  * above copyright notice and this permission notice appear in all
     9  * copies, and that the name of Gray Watson not be used in advertising
    10  * or publicity pertaining to distribution of the document or software
    11  * without specific, written prior permission.
    12  *
    13  * Gray Watson makes no representations about the suitability of the
    14  * software described herein for any purpose.  It is provided "as is"
    15  * without express or implied warranty.
    16 
    17 I personnaly believe that the resulting code should therefore be
    18 LGPL v2.1, but don't believe me, ask your lawyers!
    19 
    20 diff -dur dmalloc-5.5.2.orig/configure dmalloc-5.5.2/configure
    21 --- dmalloc-5.5.2.orig/configure	2007-05-18 12:15:39.000000000 +0200
    22 +++ dmalloc-5.5.2/configure	2007-05-18 12:15:48.000000000 +0200
    23 @@ -7107,7 +7107,7 @@
    24  echo $ECHO_N "checking return.h macros work... $ECHO_C" >&6
    25  if test "$cross_compiling" = yes; then
    26     cat >>confdefs.h <<\_ACEOF
    27 -#define RETURN_MACROS_WORK 0
    28 +#define RETURN_MACROS_WORK 1
    29  _ACEOF
    30   echo "$as_me:$LINENO: result: no" >&5
    31  echo "${ECHO_T}no" >&6
    32 diff -dur dmalloc-5.5.2.orig/return.h dmalloc-5.5.2/return.h
    33 --- dmalloc-5.5.2.orig/return.h	2007-05-14 19:26:14.000000000 +0200
    34 +++ dmalloc-5.5.2/return.h	2007-05-18 12:15:48.000000000 +0200
    35 @@ -106,26 +106,16 @@
    36  /*************************************/
    37  
    38  /*
    39 - * For DEC Mips machines running Ultrix
    40 + * For Mips machines running Linux
    41   */
    42  #if __mips
    43  
    44  /*
    45 - * I have no idea how to get inline assembly with the default cc.
    46 - * Anyone know how?
    47 - */
    48 -
    49 -#if 0
    50 -
    51 -/*
    52   * NOTE: we assume here that file is global.
    53   *
    54 - * $31 is the frame pointer.  $2 looks to be the return address but maybe
    55 - * not consistently.
    56 + * $31 is the return address.
    57   */
    58 -#define GET_RET_ADDR(file)	asm("sw $2, file")
    59 -
    60 -#endif
    61 +#define GET_RET_ADDR(file)	asm("sw $31, %0" : "=m" (file))
    62  
    63  #endif /* __mips */
    64