patches/dmalloc/5.5.2/130-mips.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Oct 14 17:42:10 2008 +0000 (2008-10-14)
changeset 929 7c958fb04f28
parent 103 b6e20abe9256
permissions -rw-r--r--
Sample config for e500v2 toolchain

On Tuesday 14 October 2008 17:05:31 Nate Case wrote:
> This is a sample config file for Freescale e500v2 processors (e.g.,
> MPC8548, MPC8572). It uses eglibc (for e500/SPE patches) and a recent
> gcc (4.3.1, for e500v2 DPFP support) and will generate appropriate
> dual-precision floating point instructions by default.
>
> Note: If building a Linux kernel with this toolchain, you will want to
> make sure -mno-spe AND -mspe=no are passed to gcc to prevent SPE
> ABI/instructions from getting into the kernel (which is currently
> unsupported). At this time, the kernel build system only passes
> -mno-spe by default (this should be fixed soon hopefully).
>
> A binutils snapshot is used to fix a bug present in 2.18 preventing
> U-Boot from being compiled (CodeSourcery issue #2297: internal.h
> (ELF_IS_SECTION_IN_SEGMENT): Adjust to cope with segments at the end of
> memory).

Obsoletes the powerpc-unknown-linux-gnuspe sample, so remove it.

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