mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-10-01 06:21:56 -09:00
package/dmalloc: Add patch to fix powerpc build
Fixes the following build failure on powerpc64le: http://autobuild.buildroot.net/results/1f84facd106abdd59be87b9f6e1eb24bcef0a846 Assembler messages: Error: missing operand The code will fail to build on any powerpc platform with optimisation disabled as package contains incorrect syntax behind !defined(__OPTIMIZE__). The patch has been submitted to the project: https://github.com/j256/dmalloc/pull/113 Signed-off-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
committed by
Arnout Vandecappelle (Essensium/Mind)
parent
ef7642c506
commit
2712e32028
54
package/dmalloc/0002-return-Fix-PowerPC-assembly.patch
Normal file
54
package/dmalloc/0002-return-Fix-PowerPC-assembly.patch
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
From 6d87fc890c3de81ee33baf25d7c3c86532f26060 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Joel Stanley <joel@jms.id.au>
|
||||||
|
Date: Mon, 9 May 2022 20:27:58 +0930
|
||||||
|
Subject: [PATCH] return: Fix PowerPC assembly
|
||||||
|
|
||||||
|
The original assembly used suspicious syntax. However, due to the
|
||||||
|
!defined(__OPTIMIZE__) guard this code was rarely built.
|
||||||
|
|
||||||
|
There nothing to stop the compiler using r0 between the two asm blocks,
|
||||||
|
which may have been the cause of the note mentioning it failed when
|
||||||
|
build with optimisation enabled.
|
||||||
|
|
||||||
|
Write a single asm statement that places the result in the given
|
||||||
|
location.
|
||||||
|
|
||||||
|
This builds for powerpc64le and passes tests.
|
||||||
|
|
||||||
|
Signed-off-by: Joel Stanley <joel@jms.id.au>
|
||||||
|
Upstream: https://github.com/j256/dmalloc/pull/113
|
||||||
|
---
|
||||||
|
return.h | 13 +++----------
|
||||||
|
1 file changed, 3 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/return.h b/return.h
|
||||||
|
index 55b9369fe12d..fafbe3754f0f 100644
|
||||||
|
--- a/return.h
|
||||||
|
+++ b/return.h
|
||||||
|
@@ -260,20 +260,13 @@ asm void ASM_GET_RET_ADDR(file)
|
||||||
|
/*************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
- * For Powerpc 603 based system running LynxOS 2.3.1 using gcc/gas.
|
||||||
|
- */
|
||||||
|
-#if defined(__powerpc__) && defined(__GNUC__) && !defined(__OPTIMIZE__)
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- * This won't compile if "-O2" is used, but it seems to work fine with
|
||||||
|
- * "-O0". I'm no assembler expert; I was happy enough to come up with
|
||||||
|
- * something that works at all... :-)
|
||||||
|
+ * For PowerPC using gcc/gas.
|
||||||
|
*/
|
||||||
|
+#if defined(__powerpc__) && defined(__GNUC__)
|
||||||
|
|
||||||
|
#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__ */
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
||||||
Reference in New Issue
Block a user