patches/dmalloc/5.5.2/130-mips.patch
author Anthony Foiani <anthony.foiani@gmail.com>
Thu May 19 23:09:43 2011 +0200 (2011-05-19)
changeset 2462 139b85d70b62
parent 103 b6e20abe9256
permissions -rw-r--r--
complibs/ppl: fix 0.11-0.11.2 to compile with --disable-shared

PPL 0.11 (through 0.11.2) had a small bug where it still tried to build
and test its Java interface even when shared libraries are disabled.
Since that's exactly what ct-ng does, it explodes.

This is the patch from the PPL authors (see final link below).

More information can be found in these messages/threads:

Anthony's initial report and analysis with Yann:
http://www.cygwin.com/ml/crossgcc/2011-05/msg00046.html

Ron Flory hit the same problem:
http://www.cygwin.com/ml/crossgcc/2011-05/msg00054.html

Anthony's report to the ppl-devel list:
http://www.cs.unipr.it/pipermail/ppl-devel/2011-May/017450.html

Roberto's reply with a link to the fix in the PPL git repo:
http://www.cs.unipr.it/pipermail/ppl-devel/2011-May/017455.html

Signed-Off-By: Anthony Foiani <anthony.foiani@gmail.com>
     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