OK Thanks Chris
On 13/1/2023 8:12 am, Kinsey Moore wrote: > When generating the symbol table for loadable modules, include TLS > symbols so that the modules can reference them. > --- > linkers/rtems-syms.cpp | 5 +++++ > rtemstoolkit/rld-elf.cpp | 1 + > rtemstoolkit/rld-symbols.cpp | 3 +++ > 3 files changed, 9 insertions(+) > > diff --git a/linkers/rtems-syms.cpp b/linkers/rtems-syms.cpp > index 5aa4d27..e5170e1 100644 > --- a/linkers/rtems-syms.cpp > +++ b/linkers/rtems-syms.cpp > @@ -242,6 +242,11 @@ output_sym::operator ()(const > rld::symbols::symtab::value_type& value) > > c.write_line ("asm(\" .asciz \\\"" + sym.name () + "\\\"\");"); > > + if (sym.type() == STT_TLS) > + { > + c.write_line ("asm(\" .type \\\"" + sym.name () + "\\\", > %tls_object\");"); > + } > + > if (embed) > { > c.write_line ("#if __SIZEOF_POINTER__ == 8"); > diff --git a/rtemstoolkit/rld-elf.cpp b/rtemstoolkit/rld-elf.cpp > index ffa3376..68efdbe 100644 > --- a/rtemstoolkit/rld-elf.cpp > +++ b/rtemstoolkit/rld-elf.cpp > @@ -891,6 +891,7 @@ namespace rld > { > if (((stype == STT_NOTYPE) || > (stype == STT_OBJECT) || > + (stype == STT_TLS) || > (stype == STT_FUNC)) && > ((weak && (sbind == STB_WEAK)) || > (!unresolved && ((local && (sbind == STB_LOCAL)) || > diff --git a/rtemstoolkit/rld-symbols.cpp b/rtemstoolkit/rld-symbols.cpp > index 661b598..01291c0 100644 > --- a/rtemstoolkit/rld-symbols.cpp > +++ b/rtemstoolkit/rld-symbols.cpp > @@ -277,6 +277,9 @@ namespace rld > case STT_FILE: > type = "STT_FILE "; > break; > + case STT_TLS: > + type = "STT_TLS "; > + break; > default: > if ((type_val >= STT_LOPROC) && (type_val <= STT_HIPROC)) > type = "STT_LOPROC(" + rld::to_string (type_val) + ")"; _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel