summaryrefslogtreecommitdiff
path: root/patches
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2016-03-13 20:21:31 (GMT)
committerAlexey Neyman <stilor@att.net>2016-04-02 01:15:39 (GMT)
commit85af58487290a46e7252504f2af808ad3c99d5d4 (patch)
treec375861ccbcf7466c49f382c07e84fe7e7c276cf /patches
parente1d494a2489bc469f4a50a6942fa15255621e985 (diff)
Unbreak powerpc-unknown-linux-uclibc.
There is invalid assembly in dmalloc for PowerPC. The issue is that 'stw' expects a memory operand, and =g constraint allows both registers and memory. Newer GCC tends to choose register even at -O0, resulting in invalid assembly. Instead, force a register constraint in 'mflr' and let GCC decide if it wants to store it into memory at all. Reported this upstream. Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'patches')
-rw-r--r--patches/dmalloc/5.5.2/170-ppc-bogus-assembly.patch13
1 files changed, 13 insertions, 0 deletions
diff --git a/patches/dmalloc/5.5.2/170-ppc-bogus-assembly.patch b/patches/dmalloc/5.5.2/170-ppc-bogus-assembly.patch
new file mode 100644
index 0000000..d92bd8a
--- /dev/null
+++ b/patches/dmalloc/5.5.2/170-ppc-bogus-assembly.patch
@@ -0,0 +1,13 @@
+diff -ur dmalloc-5.5.2.orig/return.h dmalloc-5.5.2/return.h
+--- dmalloc-5.5.2.orig/return.h 2016-03-13 13:11:48.090431764 -0700
++++ dmalloc-5.5.2/return.h 2016-03-13 13:12:11.246642618 -0700
+@@ -251,8 +251,7 @@
+
+ #define GET_RET_ADDR(file) \
+ do { \
+- asm("mflr 0"); \
+- asm("stw 0,%0" : "=g" (file)); \
++ asm("mflr %0" : "=r"(file)); \
+ } while(0)
+
+ #endif /* __powerpc__ && __GNUC__ && !__OPTIMIZE__ */