Thread (8 messages) 8 messages, 2 authors, 2016-08-11

Re: c6x linker issue on linux-next-20160808 + some linker table work

From: "Luis R. Rodriguez" <mcgrof@kernel.org>
Date: 2016-08-11 15:59:31
Also in: lkml

Possibly related (same subject, not in this thread)

On Thu, Aug 11, 2016 at 07:32:42AM -0400, Mark Salter wrote:
On Thu, 2016-08-11 at 07:56 +0200, Luis R. Rodriguez wrote:
quoted
On Wed, Aug 10, 2016 at 07:04:09PM -0400, Mark Salter wrote:
quoted
On Wed, 2016-08-10 at 23:30 +0200, Luis R. Rodriguez wrote:
quoted
OK thanks I've found a clean solution minimal solution to this as follows. This now
builds fine. Is this a fine work around for now ?
Almost. You also need:
diff --git a/include/linux/tables.h b/include/linux/tables.h
index a39ab03..3fa8d4d 100644
--- a/include/linux/tables.h
+++ b/include/linux/tables.h
@@ -325,7 +325,7 @@
              __attribute__((used,                                      \
                             weak,                                      \
                             __aligned__(LINUX_SECTION_ALIGNMENT(name)),\
-                            section(SECTION_TBL(SECTION_RODATA,        \
+                            section(SECTION_TBL(SECTION_TBL_RO,        \
                                                 name, level))))
 
 /**

Otherwise, start and end RO table markers end up in different sections.
I thought that was not needed as weak attributes already force it to go to
.const ? Anyway I've added this as well. Thanks!
The section attribute forced both variables into .rodata but the weak
attribute prevented accesses from using the SB-relative reloc. The
non-weak variable is the one that led to the link error.
I ask as set_section_tbl_type() was not patched for instance, so firmware/Makefile
still uses SECTION_RODATA, and it compiles and links fine. Should that also be
using then SECTION_TBL_RO ? Or do we only need this for the C constructors ?

  Luis
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help