From c6eead1353e03542e5bad9efda3b6553125520d8 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Wed, 7 Dec 2016 17:20:38 +1100 Subject: libdl: Add C++ exception support to loaded modules. This has been tested on SPARC, i386, PowerPC and ARM. Closes #2767. --- cpukit/libdl/rtl-elf.h | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'cpukit/libdl/rtl-elf.h') diff --git a/cpukit/libdl/rtl-elf.h b/cpukit/libdl/rtl-elf.h index 7f6ea300a3..e3ac07f7ed 100644 --- a/cpukit/libdl/rtl-elf.h +++ b/cpukit/libdl/rtl-elf.h @@ -54,6 +54,18 @@ extern "C" { */ #define RTEMS_RTL_ELF_STRING_MAX (256) +/** + * Architecture specific handler to translate unknown section flags to RTL + * section flags. + * + * @param obj The object file being relocated. + * @param shdr The ELF section header. + * @retval 0 Unknown or unsupported flags. + * @retval uint32_t RTL object file flags. + */ +uint32_t rtems_rtl_elf_section_flags (const rtems_rtl_obj_t* obj, + const Elf_Shdr* shdr); + /** * Architecture specific handler to check is a relocation record's type is * required to resolve a symbol. @@ -136,13 +148,6 @@ bool rtems_rtl_elf_find_symbol (rtems_rtl_obj_t* obj, */ bool rtems_rtl_elf_file_check (rtems_rtl_obj_t* obj, int fd); -/** - * The ELF file details handler. - * - * @param obj Load the details of the obj. - */ -bool rtems_rtl_elf_load_details (rtems_rtl_obj_t* obj); - /** * The ELF format load handler. * @@ -151,6 +156,13 @@ bool rtems_rtl_elf_load_details (rtems_rtl_obj_t* obj); */ bool rtems_rtl_elf_file_load (rtems_rtl_obj_t* obj, int fd); +/** + * The ELF format unload handler. + * + * @param obj The object to unload. + */ +bool rtems_rtl_elf_file_unload (rtems_rtl_obj_t* obj); + /** * The ELF format signature handler. * -- cgit v1.2.3