patches/dmalloc/5.5.2/130-mips.patch
author Cody Schafer <dev@codyps.com>
Fri May 09 19:13:49 2014 -0700 (2014-05-09)
changeset 3312 4876ff97e039
parent 103 b6e20abe9256
permissions -rw-r--r--
cc/gcc: allow CC_EXTRA_CONFIG_ARRAY on baremetal

The final bare-metal compiler is built using the core backend.
Currently the core uses the CC_CORE_EXTRA_CONFIG_ARRAY variable.

While this works as supposed to, this can leave the user puzzled
in the menuconfig, since all he can see is the core options, not
the final options.

Only show the core options if any of the core passes are needed,
and use the final options in the core-backend if we're issuing
the bare-metal compiler.

Signed-off-by: Cody P Schafer <dev@codyps.com>
[yann.morin.1998@free.fr: hide core options if no core pass needed;
use final option in core backend if issuing the bare-metal compiler]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <22181e546ba746202489.1399688067@localhost>
Patchwork-Id: 347586
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