diff options
author | Chris Johns <chrisj@rtems.org> | 2019-01-09 22:14:11 +1100 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2019-02-09 10:06:34 +1100 |
commit | 4408603e27d028c5c735cf5d9d8160807ce1d591 (patch) | |
tree | c27bef5ceb630e13724bd11791659c0fae3e0543 /cpukit/libdl/rtl-unresolved.c | |
parent | libtest/dl08: Add a test for archives. (diff) | |
download | rtems-4408603e27d028c5c735cf5d9d8160807ce1d591.tar.bz2 |
libdl: Fix the support for constructors and desctructors.
- Fix the handling of pending objects.
- Add a constructor flags in objects to track then being called.
Closes #2921
Diffstat (limited to 'cpukit/libdl/rtl-unresolved.c')
-rw-r--r-- | cpukit/libdl/rtl-unresolved.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/cpukit/libdl/rtl-unresolved.c b/cpukit/libdl/rtl-unresolved.c index 4e81c3c64e..7e2d920594 100644 --- a/cpukit/libdl/rtl-unresolved.c +++ b/cpukit/libdl/rtl-unresolved.c @@ -181,7 +181,8 @@ rtems_rtl_unresolved_resolve_reloc (rtems_rtl_unresolv_rec* rec, if (rec->rec.reloc.name == rd->name && rec->rec.reloc.obj != NULL) { if (rtems_rtl_trace (RTEMS_RTL_TRACE_UNRESOLVED)) - printf ("rtl: unresolv: resolve reloc: %s\n", rd->name_rec->rec.name.name); + printf ("rtl: unresolv: resolve reloc: %s\n", + rd->name_rec->rec.name.name); rtems_rtl_obj_relocate_unresolved (&rec->rec.reloc, rd->sym); @@ -193,6 +194,7 @@ rtems_rtl_unresolved_resolve_reloc (rtems_rtl_unresolv_rec* rec, if (rec->rec.reloc.obj->unresolved == 0) { pending = rtems_rtl_pending_unprotected (); + rtems_chain_extract (&rec->rec.reloc.obj->link); rtems_chain_append (pending, &rec->rec.reloc.obj->link); } |