diff mbox series

[v3] sandbox: make function 'do_undefined' properly compiles for PowerPC

Message ID 98e71d2cd17cd9992e60190ede4a5b03.squirrel@_
State Accepted
Commit e0112bc508b142786b919eb48c2dc8eca9f0361b
Delegated to: Tom Rini
Headers show
Series [v3] sandbox: make function 'do_undefined' properly compiles for PowerPC | expand

Commit Message

WHR April 30, 2024, 4:55 p.m. UTC
The 2 bytes 0xffff is too short for being a PowerPC instruction, resulting
in an error similar to:
    /tmp/ccW8yjie.s: Assembler messages:
    /tmp/ccW8yjie.s: Error: unaligned opcodes detected in executable segment
    /tmp/ccW8yjie.s:223: Error: instruction address is not a multiple of 4 
    make[2]: *** [/tmp/ccyF4HIC.mk:17: /tmp/ccCKUFuF.ltrans5.ltrans.o] Error 1

Signed-off-by: WHR <msl0000023508@gmail.com>

---
v2:
Resubmit with diff content in plain text.
v3:
Reformat commit message body that was previously mangled by my email client.

 cmd/sandbox/exception.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Tom Rini May 14, 2024, 4:15 p.m. UTC | #1
On Wed, May 01, 2024 at 12:55:10AM +0800, WHR wrote:

> The 2 bytes 0xffff is too short for being a PowerPC instruction, resulting
> in an error similar to:
>     /tmp/ccW8yjie.s: Assembler messages:
>     /tmp/ccW8yjie.s: Error: unaligned opcodes detected in executable segment
>     /tmp/ccW8yjie.s:223: Error: instruction address is not a multiple of 4 
>     make[2]: *** [/tmp/ccyF4HIC.mk:17: /tmp/ccCKUFuF.ltrans5.ltrans.o] Error 1
> 
> Signed-off-by: WHR <msl0000023508@gmail.com>

Applied to u-boot/next, thanks!
diff mbox series

Patch

diff --git a/cmd/sandbox/exception.c b/cmd/sandbox/exception.c
index cfa153da26..f9c847d8ff 100644
--- a/cmd/sandbox/exception.c
+++ b/cmd/sandbox/exception.c
@@ -19,7 +19,11 @@  static int do_sigsegv(struct cmd_tbl *cmdtp, int flag, int argc,
 static int do_undefined(struct cmd_tbl *cmdtp, int flag, int argc,
 			char *const argv[])
 {
+#ifdef __powerpc__
+	asm volatile (".long 0xffffffff\n");
+#else
 	asm volatile (".word 0xffff\n");
+#endif
 	return CMD_RET_FAILURE;
 }