summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arc/Makefile15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arc/Makefile b/arch/arc/Makefile
index de25cc9..03ea6db 100644
--- a/arch/arc/Makefile
+++ b/arch/arc/Makefile
@@ -6,3 +6,18 @@ head-y := arch/arc/cpu/$(CPU)/start.o
libs-y += arch/arc/cpu/$(CPU)/
libs-y += arch/arc/lib/
+
+# MetaWare debugger doesn't support PIE (position-independent executable)
+# so the only way to load U-Boot in MDB is to fake it by:
+# 1. Reset PIE flag in ELF header
+# 2. Strip all debug information from elf
+ifdef CONFIG_SYS_LITTLE_ENDIAN
+ EXEC_TYPE_OFFSET=16
+else
+ EXEC_TYPE_OFFSET=17
+endif
+
+mdbtrick: u-boot
+ $(Q)printf '\x02' | dd of=u-boot bs=1 seek=$(EXEC_TYPE_OFFSET) count=1 \
+ conv=notrunc &> /dev/null
+ $(Q)$(CROSS_COMPILE)strip -g u-boot