diff --git a/package/pdbg/0001-template.S-fix-to-build-on-architecture-with-non-emp.patch b/package/pdbg/0001-template.S-fix-to-build-on-architecture-with-non-emp.patch new file mode 100644 index 0000000000..15c0eef611 --- /dev/null +++ b/package/pdbg/0001-template.S-fix-to-build-on-architecture-with-non-emp.patch @@ -0,0 +1,63 @@ +From 50ae93273376ede704012030009c29bd58d6a569 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sun, 26 Nov 2017 16:22:25 +0100 +Subject: [PATCH] template.S: fix to build on architecture with non-empty + __USER_LABEL_PREFIX__ + +Blackfin has a non-empty __USER_LABEL_PREFIX__, which means that a +symbol called "foo" in C must be named "_foo" in assembler. + +Interestingly, it seems like "$(CC) -xassembler - -c" doesn't pass the +input source file through the C preprocessor, so we do this +explicitly. + +Submitted-upstream: https://github.com/open-power/pdbg/pull/26 +Signed-off-by: Thomas Petazzoni +--- + Makefile.am | 2 +- + template.S | 22 +++++++++++++++------- + 2 files changed, 16 insertions(+), 8 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 9d34bff..82e0856 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -62,4 +62,4 @@ p9z-fsi.dtb.o: p9z-fsi.dts p9-fsi.dtsi + %.dtb.o: %.dts + dtc -i$(dir $@) -I dts $< -O dtb > $@.tmp + symbol_prefix=`echo $@ | tr '.-' '_'` ; \ +- sed "s%SYMBOL_PREFIX%$${symbol_prefix}%g; s%FILENAME%$@.tmp%g" $(top_srcdir)/template.S | $(CC) -xassembler - -c -o $@ ++ sed "s%SYMBOL_PREFIX%$${symbol_prefix}%g; s%FILENAME%$@.tmp%g" $(top_srcdir)/template.S | $(CPP) - | $(CC) -xassembler - -c -o $@ +diff --git a/template.S b/template.S +index 2e6cbdb..1407a7c 100644 +--- a/template.S ++++ b/template.S +@@ -1,10 +1,18 @@ ++#ifdef __USER_LABEL_PREFIX__ ++#define CONCAT1(a, b) CONCAT2(a, b) ++#define CONCAT2(a, b) a ## b ++#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) ++#else ++#define SYM(x) x ++#endif ++ + .section .data +-_binary_SYMBOL_PREFIX_start: ++SYM(_binary_SYMBOL_PREFIX_start): + .incbin "FILENAME" + .align 4 +-_binary_SYMBOL_PREFIX_end: +-_binary_SYMBOL_PREFIX_size: +- .long _binary_SYMBOL_PREFIX_end - _binary_SYMBOL_PREFIX_start +-.globl _binary_SYMBOL_PREFIX_start +-.globl _binary_SYMBOL_PREFIX_end +-.globl _binary_SYMBOL_PREFIX_size ++SYM(_binary_SYMBOL_PREFIX_end): ++SYM(_binary_SYMBOL_PREFIX_size): ++ .long SYM(_binary_SYMBOL_PREFIX_end) - SYM(_binary_SYMBOL_PREFIX_start) ++.globl SYM(_binary_SYMBOL_PREFIX_start) ++.globl SYM(_binary_SYMBOL_PREFIX_end) ++.globl SYM(_binary_SYMBOL_PREFIX_size) +-- +2.13.6 +