Re: [PATCH] c6x: platforms: cache: Export symbol L1P_cache_block_invalidate and L1D_cache_block_writeback

From: Chen Gang
Date: Tue Mar 31 2015 - 15:19:31 EST


On 3/27/15 05:31, Chen Gang wrote:
> On 3/26/15 22:58, Mark Salter wrote:
>> On Wed, 2015-03-04 at 15:05 +0800, Chen Gang wrote:
>>> They are needed by other modules, the related error with allmodconfig:
>>>
>>> MODPOST 3327 modules
>>> ERROR: "L1P_cache_block_invalidate" [drivers/misc/lkdtm.ko] undefined!
>>> ERROR: "L1D_cache_block_writeback" [drivers/misc/lkdtm.ko] undefined!
>>>
>>> Signed-off-by: Chen Gang <gang.chen.5i5j@xxxxxxxxx>
>>> ---
>>
>> Thanks! I added this to the c6x tree for next merge window.
>>

Sorry, I did not finish the gcc/binutils issues on time.

- For binutils patch, it is fixed by me, it is passed binutils related
member's first checking, I guess it can correctly fix the related
issue (although may still need improvement). It is in attachment.

- For gcc, it is fixed by c6x gcc related member and it is integrated
into gcc main line. (I sent fix patch for it, but my original patch
is incorrect).

I guess, I reported issues and sent patches were too late. And next I
should report and send fix patches in time (within 20??-??-20), so can
leave a little more time to others for reviewing and integrating

>
> Thank you for your work for all the related patches. And I am analyzing
> related c6x gcc/binutils issues:
>
> - For binutils/ld issue, I have sent fix patch for it, the patch is OK
> (really fix the root cause), but need some additional improvement, I
> shall sent patch v2 for it within this month.
>
> - For gcc issue, I am analyzing, hope I can find root cause today, and
> send fix patch within this month.
>
>
> Thanks.
>

--
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


It will cause multiple definitions for _HEAP_START, _HEAP_MAX, and
_STACK_START (e.g. build linux kernel).

2015-03-27 Chen Gang <gang.chen.5i5j@xxxxxxxxx>

* emulparams/elf32_tic6x_le.sh: Skip OTHER_BSS_SECTIONS for
relocating operation.
---
ld/ChangeLog | 5 +++++
ld/emulparams/elf32_tic6x_le.sh | 9 +++++++--
2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/ld/ChangeLog b/ld/ChangeLog
index 3a5edf2..587e2be 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2015-03-27 Chen Gang <gang.chen.5i5j@xxxxxxxxx>
+
+ * emulparams/elf32_tic6x_le.sh: Skip OTHER_BSS_SECTIONS for
+ relocating operation.
+
2015-03-24 Marcus Shawcroft <marcus.shawcroft@xxxxxxx>

* emultempl/aarch64elf.em (_aarch64_add_stub_section): Set section
diff --git a/ld/emulparams/elf32_tic6x_le.sh b/ld/emulparams/elf32_tic6x_le.sh
index dfd64c1..6533c7f 100644
--- a/ld/emulparams/elf32_tic6x_le.sh
+++ b/ld/emulparams/elf32_tic6x_le.sh
@@ -44,7 +44,11 @@ OTHER_READWRITE_SECTIONS=".fardata ${RELOCATING-0} : { *(.fardata${RELOCATING+ .
OTHER_READWRITE_RELOC_SECTIONS="
.rel.fardata ${RELOCATING-0} : { *(.rel.fardata${RELOCATING+ .rel.fardata.*}) }
.rela.fardata ${RELOCATING-0} : { *(.rela.fardata${RELOCATING+ .rela.fardata.*}) }"
-case ${target} in
+# For relocating operation, skip OTHER_BSS_SECTIONS, or will cause multiple definition.
+if [ ${RELOCATING-0} ]; then
+ OTHER_BSS_SECTIONS="";
+else
+ case ${target} in
*-elf)
OTHER_BSS_SECTIONS="
.heap :
@@ -60,5 +64,6 @@ case ${target} in
_STACK_START = .;
}"
;;
-esac
+ esac
+fi
ATTRS_SECTIONS='.c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }'
-- 1.9.3