summaryrefslogtreecommitdiffstats
path: root/cpukit/libdl
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2017-12-23 18:18:56 +1100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-01-25 08:45:26 +0100
commit2afb22b7e1ebcbe40373ff7e0efae7d207c655a9 (patch)
tree44759efe9374f13200a97e96d91bd9a2b7e5ce2a /cpukit/libdl
parentMAINTAINERS: Add myself to Write After Approval. (diff)
downloadrtems-2afb22b7e1ebcbe40373ff7e0efae7d207c655a9.tar.bz2
Remove make preinstall
A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
Diffstat (limited to 'cpukit/libdl')
-rw-r--r--cpukit/libdl/Makefile.am5
-rw-r--r--cpukit/libdl/dlfcn-shell.h17
-rw-r--r--cpukit/libdl/dlfcn.h112
-rw-r--r--cpukit/libdl/include/arch/arm/machine/elf_machdep.h132
-rw-r--r--cpukit/libdl/include/arch/bfin/machine/elf_machdep.h28
-rw-r--r--cpukit/libdl/include/arch/h8300/machine/elf_machdep.h59
-rw-r--r--cpukit/libdl/include/arch/i386/machine/elf_machdep.h63
-rw-r--r--cpukit/libdl/include/arch/lm32/machine/elf_machdep.h34
-rw-r--r--cpukit/libdl/include/arch/m68k/machine/elf_machdep.h47
-rw-r--r--cpukit/libdl/include/arch/mips/machine/elf_machdep.h199
-rw-r--r--cpukit/libdl/include/arch/moxie/machine/elf_machdep.h15
-rw-r--r--cpukit/libdl/include/arch/nios2/machine/elf_machdep.h46
-rw-r--r--cpukit/libdl/include/arch/powerpc/machine/elf_machdep.h105
-rw-r--r--cpukit/libdl/include/arch/sparc/machine/elf_machdep.h92
-rw-r--r--cpukit/libdl/include/arch/v850/machine/elf_machdep.h74
-rw-r--r--cpukit/libdl/include/link.h45
-rw-r--r--cpukit/libdl/include/link_elf.h79
-rw-r--r--cpukit/libdl/include/sys/cdefs_elf.h152
-rw-r--r--cpukit/libdl/include/sys/exec_elf.h1101
-rw-r--r--cpukit/libdl/preinstall.am7
-rw-r--r--cpukit/libdl/rap-shell.h14
-rw-r--r--cpukit/libdl/rap.h115
-rw-r--r--cpukit/libdl/rtl-allocator.h181
-rw-r--r--cpukit/libdl/rtl-fwd.h33
-rw-r--r--cpukit/libdl/rtl-indirect-ptr.h235
-rw-r--r--cpukit/libdl/rtl-obj-cache.h132
-rw-r--r--cpukit/libdl/rtl-obj-comp.h122
-rw-r--r--cpukit/libdl/rtl-obj-fwd.h39
-rw-r--r--cpukit/libdl/rtl-obj.h635
-rw-r--r--cpukit/libdl/rtl-sym.h135
-rw-r--r--cpukit/libdl/rtl-trace.h102
-rw-r--r--cpukit/libdl/rtl-unresolved.h212
-rw-r--r--cpukit/libdl/rtl.h321
33 files changed, 2 insertions, 4686 deletions
diff --git a/cpukit/libdl/Makefile.am b/cpukit/libdl/Makefile.am
index b21c16750a..8b95a7d91c 100644
--- a/cpukit/libdl/Makefile.am
+++ b/cpukit/libdl/Makefile.am
@@ -1,7 +1,7 @@
-if LIBDL
-
include $(top_srcdir)/automake/compile.am
+if LIBDL
+
noinst_LIBRARIES = libdl.a
libdl_a_SOURCES = \
dlfcn-shell.c \
@@ -33,5 +33,4 @@ libdl_a_CPPFLAGS = $(AM_CPPFLAGS) -DRTEMS_RTL_RAP_LOADER=1 -DRTEMS_RTL_ELF_LOADE
endif
-include $(srcdir)/preinstall.am
include $(top_srcdir)/automake/local.am
diff --git a/cpukit/libdl/dlfcn-shell.h b/cpukit/libdl/dlfcn-shell.h
deleted file mode 100644
index 9383577d25..0000000000
--- a/cpukit/libdl/dlfcn-shell.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * COPYRIGHT (c) 2012 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#if !defined(_DLFCN_SHELL_H_)
-#define _DLFCN_SHELL_H_
-
-int shell_dlopen (int argc, char* argv[]);
-int shell_dlclose (int argc, char* argv[]);
-int shell_dlsym (int argc, char* argv[]);
-int shell_dlcall (int argc, char* argv[]);
-
-#endif
diff --git a/cpukit/libdl/dlfcn.h b/cpukit/libdl/dlfcn.h
deleted file mode 100644
index 1ac3ba1330..0000000000
--- a/cpukit/libdl/dlfcn.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* $NetBSD: dlfcn.h,v 1.21 2010/01/07 07:35:35 skrll Exp $ */
-
-/*-
- * Copyright (c) 1998 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Paul Kranenburg.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _DLFCN_H_
-#define _DLFCN_H_
-
-//#include <sys/featuretest.h>
-#include <sys/cdefs.h>
-
-#if defined(_NETBSD_SOURCE)
-typedef struct _dl_info {
- const char *dli_fname; /* File defining the symbol */
- void *dli_fbase; /* Base address */
- const char *dli_sname; /* Symbol name */
- const void *dli_saddr; /* Symbol address */
-} Dl_info;
-#endif /* defined(_NETBSD_SOURCE) */
-
-/*
- * User interface to the run-time linker.
- */
-__BEGIN_DECLS
-void *dlopen(const char *, int);
-int dlclose(void *);
-void *dlsym(void * __restrict, const char * __restrict);
-#if defined(_NETBSD_SOURCE)
-int dladdr(void * __restrict, Dl_info * __restrict);
-int dlctl(void *, int, void *);
-#endif
-int dlinfo(void *, int, void *);
-const char *dlerror(void);
-__END_DECLS
-
-/* Values for dlopen `mode'. */
-#define RTLD_LAZY 1
-#define RTLD_NOW 2
-#define RTLD_GLOBAL 0x100 /* Allow global searches in object */
-#define RTLD_LOCAL 0x200
-#if defined(_NETBSD_SOURCE)
-#define DL_LAZY RTLD_LAZY /* Compat */
-#endif
-
-/*
- * Special handle arguments for dlsym().
- */
-#define RTLD_NEXT ((void *) -1) /* Search subsequent objects. */
-#define RTLD_DEFAULT ((void *) -2) /* Use default search algorithm. */
-#define RTLD_SELF ((void *) -3) /* Search the caller itself. */
-
-/*
- * dlctl() commands
- */
-#if defined(_NETBSD_SOURCE)
-#define DL_GETERRNO 1
-#define DL_GETSYMBOL 2
-#if 0
-#define DL_SETSRCHPATH x
-#define DL_GETLIST x
-#define DL_GETREFCNT x
-#define DL_GETLOADADDR x
-#endif /* 0 */
-#endif /* defined(_NETBSD_SOURCE) */
-
-/*
- * dlinfo() commands
- *
- * From Solaris: http://docs.sun.com/app/docs/doc/816-5168/dlinfo-3c?a=view
- */
-#define RTLD_DI_UNRESOLVED 10
-#if defined(_NETBSD_SOURCE)
-#define RTLD_DI_LINKMAP 3
-#if 0
-#define RTLD_DI_ARGSINFO 1
-#define RTLD_DI_CONFIGADDR 2
-#define RTLD_DI_LMID 4
-#define RTLD_DI_SERINFO 5
-#define RTLD_DI_SERINFOSIZE 6
-#define RTLD_DI_ORIGIN 7
-#define RTLD_DI_GETSIGNAL 8
-#define RTLD_DI_SETSIGNAL 9
-#endif
-#endif /* _NETBSD_SOURCE */
-
-#endif /* !defined(_DLFCN_H_) */
diff --git a/cpukit/libdl/include/arch/arm/machine/elf_machdep.h b/cpukit/libdl/include/arch/arm/machine/elf_machdep.h
deleted file mode 100644
index 8f01d05212..0000000000
--- a/cpukit/libdl/include/arch/arm/machine/elf_machdep.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/* $NetBSD: elf_machdep.h,v 1.8 2009/05/30 05:56:52 skrll Exp $ */
-
-#if defined(__ARMEB__)
-#define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
-#else
-#define ELF32_MACHDEP_ENDIANNESS ELFDATA2LSB
-#endif
-
-#define ELF64_MACHDEP_ENDIANNESS XXX /* break compilation */
-#define ELF64_MACHDEP_ID_CASES \
- /* no 64-bit ELF machine types supported */
-
-/* Processor specific flags for the ELF header e_flags field. */
-#define EF_ARM_RELEXEC 0x00000001
-#define EF_ARM_HASENTRY 0x00000002
-#define EF_ARM_INTERWORK 0x00000004 /* GNU binutils 000413 */
-#define EF_ARM_SYMSARESORTED 0x00000004 /* ARM ELF A08 */
-#define EF_ARM_APCS_26 0x00000008 /* GNU binutils 000413 */
-#define EF_ARM_DYNSYMSUSESEGIDX 0x00000008 /* ARM ELF B01 */
-#define EF_ARM_APCS_FLOAT 0x00000010 /* GNU binutils 000413 */
-#define EF_ARM_MAPSYMSFIRST 0x00000010 /* ARM ELF B01 */
-#define EF_ARM_PIC 0x00000020
-#define EF_ARM_ALIGN8 0x00000040 /* 8-bit structure alignment. */
-#define EF_ARM_NEW_ABI 0x00000080
-#define EF_ARM_OLD_ABI 0x00000100
-#define EF_ARM_SOFT_FLOAT 0x00000200
-#define EF_ARM_EABIMASK 0xff000000
-
-#define ELF32_MACHDEP_ID_CASES \
- case EM_ARM: \
- break;
-
-#define ELF32_MACHDEP_ID EM_ARM
-
-#define ARCH_ELFSIZE 32 /* MD native binary size */
-
-/* Processor specific relocation types */
-
-#define R_ARM_NONE 0
-#define R_ARM_PC24 1
-#define R_ARM_ABS32 2
-#define R_ARM_REL32 3
-#define R_ARM_PC13 4
-#define R_ARM_ABS16 5
-#define R_ARM_ABS12 6
-#define R_ARM_THM_ABS5 7
-#define R_ARM_ABS8 8
-#define R_ARM_SBREL32 9
-#define R_ARM_THM_CALL 10
-#define R_ARM_THM_PC8 11
-#define R_ARM_AMP_VCALL9 12
-#define R_ARM_SWI24 13
-#define R_ARM_THM_SWI8 14
-#define R_ARM_XPC25 15
-#define R_ARM_THM_XPC22 16
-
-/* TLS relocations */
-#define R_ARM_TLS_DTPMOD32 17 /* ID of module containing symbol */
-#define R_ARM_TLS_DTPOFF32 18 /* Offset in TLS block */
-#define R_ARM_TLS_TPOFF32 19 /* Offset in static TLS block */
-
-/* 20-31 are reserved for ARM Linux. */
-#define R_ARM_COPY 20
-#define R_ARM_GLOB_DAT 21
-#define R_ARM_JUMP_SLOT 22
-#define R_ARM_RELATIVE 23
-#define R_ARM_GOTOFF 24
-#define R_ARM_GOTPC 25
-#define R_ARM_GOT32 26
-#define R_ARM_PLT32 27
-#define R_ARM_CALL 28
-#define R_ARM_JUMP24 29
-#define R_ARM_THM_JUMP24 30
-#define R_ARM_BASE_ABS 31
-
-#define R_ARM_ALU_PCREL_7_0 32
-#define R_ARM_ALU_PCREL_15_8 33
-#define R_ARM_ALU_PCREL_23_15 34
-#define R_ARM_ALU_SBREL_11_0 35
-#define R_ARM_ALU_SBREL_19_12 36
-#define R_ARM_ALU_SBREL_27_20 37
-#define R_ARM_V4BX 40
-#define R_ARM_TARGET2 41
-#define R_ARM_PREL31 42
-
-#define R_ARM_MOVW_ABS_NC 43
-#define R_ARM_MOVT_ABS 44
-
-#define R_ARM_THM_MOVW_ABS_NC 47
-#define R_ARM_THM_MOVT_ABS 48
-
-#define R_ARM_THM_JUMP19 51
-
-/* 96-111 are reserved to G++. */
-#define R_ARM_GNU_VTENTRY 100
-#define R_ARM_GNU_VTINHERIT 101
-#define R_ARM_THM_JUMP11 102
-#define R_ARM_THM_JUMP8 103
-
-/* More TLS relocations */
-#define R_ARM_TLS_GD32 104 /* PC-rel 32 bit for global dynamic */
-#define R_ARM_TLS_LDM32 105 /* PC-rel 32 bit for local dynamic */
-#define R_ARM_TLS_LDO32 106 /* 32 bit offset relative to TLS */
-#define R_ARM_TLS_IE32 107 /* PC-rel 32 bit for GOT entry of */
-#define R_ARM_TLS_LE32 108
-#define R_ARM_TLS_LDO12 109
-#define R_ARM_TLS_LE12 110
-#define R_ARM_TLS_IE12GP 111
-
-/* 112-127 are reserved for private experiments. */
-
-#define R_ARM_RXPC25 249
-#define R_ARM_RSBREL32 250
-#define R_ARM_THM_RPC22 251
-#define R_ARM_RREL32 252
-#define R_ARM_RABS32 253
-#define R_ARM_RPC24 254
-#define R_ARM_RBASE 255
-
-#define R_TYPE(name) __CONCAT(R_ARM_,name)
-
-/* Processor specific program header flags */
-#define PF_ARM_SB 0x10000000
-#define PF_ARM_PI 0x20000000
-#define PF_ARM_ENTRY 0x80000000
-
-/* Processor specific section header flags */
-#define SHF_ENTRYSECT 0x10000000
-#define SHF_COMDEF 0x80000000
-
-/* Processor specific symbol types */
-#define STT_ARM_TFUNC STT_LOPROC
diff --git a/cpukit/libdl/include/arch/bfin/machine/elf_machdep.h b/cpukit/libdl/include/arch/bfin/machine/elf_machdep.h
deleted file mode 100644
index cf0dc19221..0000000000
--- a/cpukit/libdl/include/arch/bfin/machine/elf_machdep.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#define ELF32_MACHDEP_ENDIANNESS ELFDATA2LSB
-
-#define ELF32_MACHDEP_ID_CASES \
- case EM_BLACKFIN: \
- break;
-
-#define ELF32_MACHDEP_ID EM_BLACKFIN
-
-#define ARCH_ELFSIZE 32
-
-#define R_BFIN_UNUSED0 0
-
-#define R_BFIN_RIMM16 5
-#define R_BFIN_LUIMM16 6
-#define R_BFIN_HUIMM16 7
-#define R_BFIN_PCREL12_JUMP_S 8
-#define R_BFIN_PCREL24_JUMP_X 9
-#define R_BFIN_PCREL24 10
-#define R_BFIN_PCREL24_JU 13
-#define R_BFIN_PCREL24_CALL_X 14
-
-#define R_BFIN_BYTE_DATA 16
-#define R_BFIN_BYTE2_DATA 17
-#define R_BFIN_BYTE4_DATA 18
-
-
-
-#define R_TYPE(name) __CONCAT(R_BFIN_,name)
diff --git a/cpukit/libdl/include/arch/h8300/machine/elf_machdep.h b/cpukit/libdl/include/arch/h8300/machine/elf_machdep.h
deleted file mode 100644
index 3d049157eb..0000000000
--- a/cpukit/libdl/include/arch/h8300/machine/elf_machdep.h
+++ /dev/null
@@ -1,59 +0,0 @@
-
-#define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
-
-#define ELF32_MACHDEP_ID_CASES \
- case EM_H8_300: \
- case EM_H8_300H: \
- case EM_H8S: \
- case EM_H8_500: \
- break;
-
-#define ELF32_MACHDEP_ID EM_H8_300
-#define ARCH_ELFSIZE 32
-
-#define R_H8_NONE 0
-#define R_H8_DIR32 1
-#define R_H8_DIR32_28 2
-#define R_H8_DIR32_24 3
-#define R_H8_DIR32_16 4
-#define R_H8_DIR32U 6
-#define R_H8_DIR32U_28 7
-#define R_H8_DIR32U_24 8
-#define R_H8_DIR32U_20 9
-#define R_H8_DIR32U_16 10
-#define R_H8_DIR24 11
-#define R_H8_DIR24_20 12
-#define R_H8_DIR24_16 13
-#define R_H8_DIR24U 14
-#define R_H8_DIR24U_20 15
-#define R_H8_DIR24U_16 16
-#define R_H8_DIR16 17
-#define R_H8_DIR16U 18
-#define R_H8_DIR16S_32 19
-#define R_H8_DIR16S_28 20
-#define R_H8_DIR16S_24 21
-#define R_H8_DIR16S_20 22
-#define R_H8_DIR16S 23
-#define R_H8_DIR8 24
-#define R_H8_DIR8U 25
-#define R_H8_DIR8Z_32 26
-#define R_H8_DIR8Z_28 27
-#define R_H8_DIR8Z_24 28
-#define R_H8_DIR8Z_20 29
-#define R_H8_DIR8Z_16 30
-#define R_H8_PCREL16 31
-#define R_H8_PCREL8 32
-#define R_H8_BPOS 33
-#define R_H8_PCREL32 34
-#define R_H8_GOT32O 35
-#define R_H8_GOT16O 36
-#define R_H8_DIR16A8 59
-#define R_H8_DIR16R8 60
-#define R_H8_DIR24A8 61
-#define R_H8_DIR24R8 62
-#define R_H8_DIR32A16 63
-#define R_H8_ABS32 65
-#define R_H8_ABS32A16 127
-
-
-#define R_TYPE(name) __CONCAT(R_H8_,name)
diff --git a/cpukit/libdl/include/arch/i386/machine/elf_machdep.h b/cpukit/libdl/include/arch/i386/machine/elf_machdep.h
deleted file mode 100644
index 442c561a9c..0000000000
--- a/cpukit/libdl/include/arch/i386/machine/elf_machdep.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* $NetBSD: elf_machdep.h,v 1.10 2009/05/30 05:56:52 skrll Exp $ */
-
-#define ELF32_MACHDEP_ENDIANNESS ELFDATA2LSB
-#define ELF32_MACHDEP_ID_CASES \
- case EM_386: \
- case EM_486: \
- break;
-
-#define ELF64_MACHDEP_ENDIANNESS XXX /* break compilation */
-#define ELF64_MACHDEP_ID_CASES \
- /* no 64-bit ELF machine types supported */
-
-#define ELF32_MACHDEP_ID EM_386
-
-#define ARCH_ELFSIZE 32 /* MD native binary size */
-
-/* i386 relocations */
-#define R_386_NONE 0
-#define R_386_32 1
-#define R_386_PC32 2
-#define R_386_GOT32 3
-#define R_386_PLT32 4
-#define R_386_COPY 5
-#define R_386_GLOB_DAT 6
-#define R_386_JMP_SLOT 7
-#define R_386_RELATIVE 8
-#define R_386_GOTOFF 9
-#define R_386_GOTPC 10
-
-/* TLS relocations */
-#define R_386_TLS_TPOFF 14
-#define R_386_TLS_IE 15
-#define R_386_TLS_GOTIE 16
-#define R_386_TLS_LE 17
-#define R_386_TLS_GD 18
-#define R_386_TLS_LDM 19
-
-/* The following relocations are GNU extensions. */
-#define R_386_16 20
-#define R_386_PC16 21
-#define R_386_8 22
-#define R_386_PC8 23
-
-/* More TLS relocations */
-#define R_386_TLS_GD_32 24
-#define R_386_TLS_GD_PUSH 25
-#define R_386_TLS_GD_CALL 26
-#define R_386_TLS_GD_POP 27
-#define R_386_TLS_LDM_32 28
-#define R_386_TLS_LDM_PUSH 29
-#define R_386_TLS_LDM_CALL 30
-#define R_386_TLS_LDM_POP 31
-#define R_386_TLS_LDO_32 32
-#define R_386_TLS_IE_32 33
-#define R_386_TLS_LE_32 34
-#define R_386_TLS_DTPMOD32 35
-#define R_386_TLS_DTPOFF32 36
-#define R_386_TLS_TPOFF32 37
-#define R_386_TLS_GOTDESC 39
-#define R_386_TLS_DESC_CALL 40
-#define R_386_TLS_DESC 41
-
-#define R_TYPE(name) __CONCAT(R_386_,name)
diff --git a/cpukit/libdl/include/arch/lm32/machine/elf_machdep.h b/cpukit/libdl/include/arch/lm32/machine/elf_machdep.h
deleted file mode 100644
index 29c75b89db..0000000000
--- a/cpukit/libdl/include/arch/lm32/machine/elf_machdep.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
-
-#define ELF32_MACHDEP_ID_CASES \
- case EM_LATTICEMICO32: \
- break;
-
-#define ELF32_MACHDEP_ID EM_LATTICEMICO32
-
-#define EF_MACH32_MACH 0x00000001
-
-//#define EF_BLACKFIN
-
-#define ARCH_ELFSIZE 32
-
-#define R_LM32_NONE 0
-#define R_LM32_8 1
-#define R_LM32_16 2
-#define R_LM32_32 3
-#define R_LM32_HI16 4
-#define R_LM32_LO16 5
-#define R_LM32_GPREL16 6
-#define R_LM32_CALL 7
-#define R_LM32_BRANCH 8
-#define R_LM32_GNU_VTINHERIT 9
-#define R_LM32_GNU_VTENTRY 10
-#define R_LM32_16_GOT 11
-#define R_LM32_GOTOFF_HI16 12
-#define R_LM32_GOTOFF_LO16 13
-#define R_LM32_COPY 14
-#define R_LM32_GLOT_DAT 15
-#define R_LM32_JMP_SLOT 16
-#define R_LM32_RELATIVE 17
-
-#define R_TYPE(name) __CONCAT(R_LM32_,name)
diff --git a/cpukit/libdl/include/arch/m68k/machine/elf_machdep.h b/cpukit/libdl/include/arch/m68k/machine/elf_machdep.h
deleted file mode 100644
index 9a987c69b5..0000000000
--- a/cpukit/libdl/include/arch/m68k/machine/elf_machdep.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* $NetBSD: elf_machdep.h,v 1.7 2002/01/28 21:34:48 thorpej Exp $ */
-
-#define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
-#define ELF32_MACHDEP_ID_CASES \
- case EM_68K: \
- break;
-
-#define ELF64_MACHDEP_ENDIANNESS XXX /* break compilation */
-#define ELF64_MACHDEP_ID_CASES \
- /* no 64-bit ELF machine types supported */
-
-#define ELF32_MACHDEP_ID EM_68K
-
-/*
- * Machine-dependent ELF flags. These are defined by the GNU tools.
- */
-#define EF_CPU32 0x00810000
-#define EF_M68000 0x01000000
-
-#define ARCH_ELFSIZE 32 /* MD native binary size */
-
-/* m68k relocation types */
-#define R_68K_NONE 0
-#define R_68K_32 1
-#define R_68K_16 2
-#define R_68K_8 3
-#define R_68K_PC32 4
-#define R_68K_PC16 5
-#define R_68K_PC8 6
-#define R_68K_GOT32 7
-#define R_68K_GOT16 8
-#define R_68K_GOT8 9
-#define R_68K_GOT32O 10
-#define R_68K_GOT16O 11
-#define R_68K_GOT8O 12
-#define R_68K_PLT32 13
-#define R_68K_PLT16 14
-#define R_68K_PLT8 15
-#define R_68K_PLT32O 16
-#define R_68K_PLT16O 17
-#define R_68K_PLT8O 18
-#define R_68K_COPY 19
-#define R_68K_GLOB_DAT 20
-#define R_68K_JMP_SLOT 21
-#define R_68K_RELATIVE 22
-
-#define R_TYPE(name) __CONCAT(R_68K_,name)
diff --git a/cpukit/libdl/include/arch/mips/machine/elf_machdep.h b/cpukit/libdl/include/arch/mips/machine/elf_machdep.h
deleted file mode 100644
index 26700ce4ce..0000000000
--- a/cpukit/libdl/include/arch/mips/machine/elf_machdep.h
+++ /dev/null
@@ -1,199 +0,0 @@
-/* $NetBSD: elf_machdep.h,v 1.15 2011/03/15 07:39:22 matt Exp $ */
-
-#ifndef _MIPS_ELF_MACHDEP_H_
-#define _MIPS_ELF_MACHDEP_H_
-
-#ifdef _LP64
-#define ARCH_ELFSIZE 64 /* MD native binary size */
-#else
-#define ARCH_ELFSIZE 32 /* MD native binary size */
-#endif
-
-#if ARCH_ELFSIZE == 32
-#define ELF32_MACHDEP_ID_CASES \
- case EM_MIPS: \
- break;
-
-#define ELF32_MACHDEP_ID EM_MIPS
-
-#elif ARCH_ELFSIZE == 64
-#define ELF64_MACHDEP_ID_CASES \
- case EM_MIPS: \
- break;
-
-#define ELF64_MACHDEP_ID EM_MIPS
-
-#endif
-
-
-/* mips relocs. */
-
-#define R_MIPS_NONE 0
-#define R_MIPS_16 1
-#define R_MIPS_32 2
-#define R_MIPS_REL32 3
-#define R_MIPS_REL R_MIPS_REL32
-#define R_MIPS_26 4
-#define R_MIPS_HI16 5 /* high 16 bits of symbol value */
-#define R_MIPS_LO16 6 /* low 16 bits of symbol value */
-#define R_MIPS_GPREL16 7 /* GP-relative reference */
-#define R_MIPS_LITERAL 8 /* Reference to literal section */
-#define R_MIPS_GOT16 9 /* Reference to global offset table */
-#define R_MIPS_GOT R_MIPS_GOT16
-#define R_MIPS_PC16 10 /* 16 bit PC relative reference */
-#define R_MIPS_CALL16 11 /* 16 bit call thru glbl offset tbl */
-#define R_MIPS_CALL R_MIPS_CALL16
-#define R_MIPS_GPREL32 12
-
-/* 13, 14, 15 are not defined at this point. */
-#define R_MIPS_UNUSED1 13
-#define R_MIPS_UNUSED2 14
-#define R_MIPS_UNUSED3 15
-
-/*
- * The remaining relocs are apparently part of the 64-bit Irix ELF ABI.
- */
-#define R_MIPS_SHIFT5 16
-#define R_MIPS_SHIFT6 17
-
-#define R_MIPS_64 18
-#define R_MIPS_GOT_DISP 19
-#define R_MIPS_GOT_PAGE 20
-#define R_MIPS_GOT_OFST 21
-#define R_MIPS_GOT_HI16 22
-#define R_MIPS_GOT_LO16 23
-#define R_MIPS_SUB 24
-#define R_MIPS_INSERT_A 25
-#define R_MIPS_INSERT_B 26
-#define R_MIPS_DELETE 27
-#define R_MIPS_HIGHER 28
-#define R_MIPS_HIGHEST 29
-#define R_MIPS_CALL_HI16 30
-#define R_MIPS_CALL_LO16 31
-#define R_MIPS_SCN_DISP 32
-#define R_MIPS_REL16 33
-#define R_MIPS_ADD_IMMEDIATE 34
-#define R_MIPS_PJUMP 35
-#define R_MIPS_RELGOT 36
-#define R_MIPS_JALR 37
-/* TLS relocations */
-
-#define R_MIPS_TLS_DTPMOD32 38 /* Module number 32 bit */
-#define R_MIPS_TLS_DTPREL32 39 /* Module-relative offset 32 bit */
-#define R_MIPS_TLS_DTPMOD64 40 /* Module number 64 bit */
-#define R_MIPS_TLS_DTPREL64 41 /* Module-relative offset 64 bit */
-#define R_MIPS_TLS_GD 42 /* 16 bit GOT offset for GD */
-#define R_MIPS_TLS_LDM 43 /* 16 bit GOT offset for LDM */
-#define R_MIPS_TLS_DTPREL_HI16 44 /* Module-relative offset, high 16 bits */
-#define R_MIPS_TLS_DTPREL_LO16 45 /* Module-relative offset, low 16 bits */
-#define R_MIPS_TLS_GOTTPREL 46 /* 16 bit GOT offset for IE */
-#define R_MIPS_TLS_TPREL32 47 /* TP-relative offset, 32 bit */
-#define R_MIPS_TLS_TPREL64 48 /* TP-relative offset, 64 bit */
-#define R_MIPS_TLS_TPREL_HI16 49 /* TP-relative offset, high 16 bits */
-#define R_MIPS_TLS_TPREL_LO16 50 /* TP-relative offset, low 16 bits */
-
-#define R_MIPS_max 51
-
-#define R_TYPE(name) __CONCAT(R_MIPS_,name)
-
-#define R_MIPS16_min 100
-#define R_MIPS16_26 100
-#define R_MIPS16_GPREL 101
-#define R_MIPS16_GOT16 102
-#define R_MIPS16_CALL16 103
-#define R_MIPS16_HI16 104
-#define R_MIPS16_LO16 105
-#define R_MIPS16_max 106
-
-
-/* mips dynamic tags */
-
-#define DT_MIPS_RLD_VERSION 0x70000001
-#define DT_MIPS_TIME_STAMP 0x70000002
-#define DT_MIPS_ICHECKSUM 0x70000003
-#define DT_MIPS_IVERSION 0x70000004
-#define DT_MIPS_FLAGS 0x70000005
-#define DT_MIPS_BASE_ADDRESS 0x70000006
-#define DT_MIPS_CONFLICT 0x70000008
-#define DT_MIPS_LIBLIST 0x70000009
-#define DT_MIPS_CONFLICTNO 0x7000000b
-#define DT_MIPS_LOCAL_GOTNO 0x7000000a /* number of local got ents */
-#define DT_MIPS_LIBLISTNO 0x70000010
-#define DT_MIPS_SYMTABNO 0x70000011 /* number of .dynsym entries */
-#define DT_MIPS_UNREFEXTNO 0x70000012
-#define DT_MIPS_GOTSYM 0x70000013 /* first dynamic sym in got */
-#define DT_MIPS_HIPAGENO 0x70000014
-#define DT_MIPS_RLD_MAP 0x70000016 /* address of loader map */
-
-/*
- * ELF Flags
- */
-#define EF_MIPS_PIC 0x00000002 /* Contains PIC code */
-#define EF_MIPS_CPIC 0x00000004 /* STD PIC calling sequence */
-#define EF_MIPS_ABI2 0x00000020 /* N32 */
-
-#define EF_MIPS_ARCH_ASE 0x0f000000 /* Architectural extensions */
-#define EF_MIPS_ARCH_MDMX 0x08000000 /* MDMX multimedia extension */
-#define EF_MIPS_ARCH_M16 0x04000000 /* MIPS-16 ISA extensions */
-
-#define EF_MIPS_ARCH 0xf0000000 /* Architecture field */
-#define EF_MIPS_ARCH_1 0x00000000 /* -mips1 code */
-#define EF_MIPS_ARCH_2 0x10000000 /* -mips2 code */
-#define EF_MIPS_ARCH_3 0x20000000 /* -mips3 code */
-#define EF_MIPS_ARCH_4 0x30000000 /* -mips4 code */
-#define EF_MIPS_ARCH_5 0x40000000 /* -mips5 code */
-#define EF_MIPS_ARCH_32 0x50000000 /* -mips32 code */
-#define EF_MIPS_ARCH_64 0x60000000 /* -mips64 code */
-#define EF_MIPS_ARCH_32R2 0x70000000 /* -mips32r2 code */
-#define EF_MIPS_ARCH_64R2 0x80000000 /* -mips64r2 code */
-
-#define EF_MIPS_ABI 0x0000f000
-#define EF_MIPS_ABI_O32 0x00001000
-#define EF_MIPS_ABI_O64 0x00002000
-#define EF_MIPS_ABI_EABI32 0x00003000
-#define EF_MIPS_ABI_EABI64 0x00004000
-
-#if defined(__MIPSEB__)
-#define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
-#define ELF64_MACHDEP_ENDIANNESS ELFDATA2MSB
-#elif defined(__MIPSEL__)
-#define ELF32_MACHDEP_ENDIANNESS ELFDATA2LSB
-#define ELF64_MACHDEP_ENDIANNESS ELFDATA2LSB
-#elif !defined(HAVE_NBTOOL_CONFIG_H)
-#error neither __MIPSEL__ nor __MIPSEB__ are defined.
-#endif
-
-#ifdef _KERNEL
-#ifdef _KERNEL_OPT
-#include "opt_compat_netbsd.h"
-#endif
-#ifdef COMPAT_16
-/*
- * Up to 1.6, the ELF dynamic loader (ld.elf_so) was not relocatable.
- * Tell the kernel ELF exec code not to try relocating the interpreter
- * for dynamically-linked ELF binaries.
- */
-#define ELF_INTERP_NON_RELOCATABLE
-#endif /* COMPAT_16 */
-
-/*
- * We need to be able to include the ELF header so we can pick out the
- * ABI being used.
- */
-#ifdef ELFSIZE
-#define ELF_MD_PROBE_FUNC ELFNAME2(mips_netbsd,probe)
-#define ELF_MD_COREDUMP_SETUP ELFNAME2(coredump,setup)
-#endif
-
-struct exec_package;
-
-int mips_netbsd_elf32_probe(struct lwp *, struct exec_package *, void *, char *,
- vaddr_t *);
-void coredump_elf32_setup(struct lwp *, void *);
-
-int mips_netbsd_elf64_probe(struct lwp *, struct exec_package *, void *, char *,
- vaddr_t *);
-void coredump_elf64_setup(struct lwp *, void *);
-#endif /* _KERNEL */
-
-#endif /* _MIPS_ELF_MACHDEP_H_ */
diff --git a/cpukit/libdl/include/arch/moxie/machine/elf_machdep.h b/cpukit/libdl/include/arch/moxie/machine/elf_machdep.h
deleted file mode 100644
index 3f0df23cdc..0000000000
--- a/cpukit/libdl/include/arch/moxie/machine/elf_machdep.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
-
-#define ELF32_MACHDEP_ID_CASES \
- case EM_MOXIE: \
- break;
-
-#define ELF32_MACHDEP_ID EM_MOXIE
-
-#define ARCH_ELFSIZE 32
-
-#define R_MOXIE_NONE 0
-#define R_MOXIE_32 1
-#define R_MOXIE_PCREL10 2
-
-#define R_TYPE(name) __CONCAT(R_MOXIE_,name)
diff --git a/cpukit/libdl/include/arch/nios2/machine/elf_machdep.h b/cpukit/libdl/include/arch/nios2/machine/elf_machdep.h
deleted file mode 100644
index 3f3c108bf5..0000000000
--- a/cpukit/libdl/include/arch/nios2/machine/elf_machdep.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* $NetBSD: elf_machdep.h,v 1.7 2002/01/28 21:34:48 thorpej Exp $ */
-
-#define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
-#define ELF32_MACHDEP_ID_CASES \
- case EM_ALTERA_NIOS2: \
- break;
-
-#define ELF64_MACHDEP_ENDIANNESS XXX /* break compilation */
-#define ELF64_MACHDEP_ID_CASES \
- /* no 64-bit ELF machine types supported */
-
-#define ELF32_MACHDEP_ID EM_ALTERA_NIOS2
-
-/*
- * Machine-dependent ELF flags. These are defined by the GNU tools.
- */
-#define EF_NIOS2 0x00810000
-
-#define ARCH_ELFSIZE 32 /* MD native binary size */
-
-/* NIOS2 relocation types */
-#define R_NIOS2_NONE 0
-#define R_NIOS2_32 1
-#define R_NIOS2_16 2
-#define R_NIOS2_8 3
-#define R_NIOS2_PC32 4
-#define R_NIOS2_PC16 5
-#define R_NIOS2_PC8 6
-#define R_NIOS2_GOT32 7
-#define R_NIOS2_GOT16 8
-#define R_NIOS2_GOT8 9
-#define R_NIOS2_GOT32O 10
-#define R_NIOS2_GOT16O 11
-#define R_NIOS2_GOT8O 12
-#define R_NIOS2_PLT32 13
-#define R_NIOS2_PLT16 14
-#define R_NIOS2_PLT8 15
-#define R_NIOS2_PLT32O 16
-#define R_NIOS2_PLT16O 17
-#define R_NIOS2_PLT8O 18
-#define R_NIOS2_COPY 19
-#define R_NIOS2_GLOB_DAT 20
-#define R_NIOS2_JMP_SLOT 21
-#define R_NIOS2_RELATIVE 22
-
-#define R_TYPE(name) __CONCAT(R_NIOS2_,name)
diff --git a/cpukit/libdl/include/arch/powerpc/machine/elf_machdep.h b/cpukit/libdl/include/arch/powerpc/machine/elf_machdep.h
deleted file mode 100644
index f0fdb3f33b..0000000000
--- a/cpukit/libdl/include/arch/powerpc/machine/elf_machdep.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* $NetBSD: elf_machdep.h,v 1.9 2011/01/15 10:00:07 matt Exp $ */
-
-#define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
-#define ELF32_MACHDEP_ID_CASES \
- case EM_PPC: \
- break;
-
-#define ELF64_MACHDEP_ENDIANNESS ELFDATA2MSB
-#define ELF64_MACHDEP_ID_CASES \
- case EM_PPC64: \
- break;
-
-#define ELF32_MACHDEP_ID EM_PPC
-#define ELF64_MACHDEP_ID EM_PPC64
-
-#ifdef _LP64
-#define ARCH_ELFSIZE 64 /* MD native binary size */
-#else
-#define ARCH_ELFSIZE 32 /* MD native binary size */
-#endif
-
-/* Specify the value of _GLOBAL_OFFSET_TABLE_ */
-#define DT_PPC_GOT DT_LOPROC
-
-#define R_PPC_NONE 0
-#define R_PPC_32 1
-#define R_PPC_24 2
-#define R_PPC_16 3
-#define R_PPC_16_LO 4
-#define R_PPC_16_HI 5 /* R_PPC_ADDIS */
-#define R_PPC_16_HA 6
-#define R_PPC_14 7
-#define R_PPC_14_TAKEN 8
-#define R_PPC_14_NTAKEN 9
-#define R_PPC_REL24 10 /* R_PPC_BRANCH */
-#define R_PPC_REL14 11
-#define R_PPC_REL14_TAKEN 12
-#define R_PPC_REL14_NTAKEN 13
-#define R_PPC_GOT16 14
-#define R_PPC_GOT16_LO 15
-#define R_PPC_GOT16_HI 16
-#define R_PPC_GOT16_HA 17
-#define R_PPC_PLT24 18
-#define R_PPC_COPY 19
-#define R_PPC_GLOB_DAT 20
-#define R_PPC_JMP_SLOT 21
-#define R_PPC_RELATIVE 22
-#define R_PPC_LOCAL24PC 23
-#define R_PPC_U32 24
-#define R_PPC_U16 25
-#define R_PPC_REL32 26
-#define R_PPC_PLT32 27
-#define R_PPC_PLTREL32 28
-#define R_PPC_PLT16_LO 29
-#define R_PPC_PLT16_HI 30
-#define R_PPC_PLT16_HA 31
-#define R_PPC_SDAREL16 32
-#define R_PPC_SECTOFF 33
-#define R_PPC_SECTOFF_LO 34
-#define R_PPC_SECTOFF_HI 35
-#define R_PPC_SECTOFF_HA 36
-#define R_PPC_ADDR30 37
-
-/* TLS relocations */
-#define R_PPC_TLS 67
-
-#define R_PPC_DTPMOD32 68
-#define R_PPC_TPREL16 69
-#define R_PPC_TPREL16_LO 70
-#define R_PPC_TPREL16_HI 71
-#define R_PPC_TPREL16_HA 72
-#define R_PPC_TPREL32 73
-#define R_PPC_DTPREL16 74
-#define R_PPC_DTPREL16_LO 75
-#define R_PPC_DTPREL16_HI 76
-#define R_PPC_DTPREL16_HA 77
-#define R_PPC_DTPREL32 78
-
-#define R_PPC_GOT_TLSGD16 79
-#define R_PPC_GOT_TLSGD16_LO 80
-#define R_PPC_GOT_TLSGD16_HI 81
-#define R_PPC_GOT_TLSGD16_HA 82
-#define R_PPC_GOT_TLSLD16 83
-#define R_PPC_GOT_TLSLD16_LO 84
-#define R_PPC_GOT_TLSLD16_HI 85
-#define R_PPC_GOT_TLSLD16_HA 86
-
-#define R_PPC_GOT_TPREL16 87
-#define R_PPC_GOT_TPREL16_LO 88
-#define R_PPC_GOT_TPREL16_HI 89
-#define R_PPC_GOT_TPREL16_HA 90
-#define R_PPC_GOT_DTPREL16 91
-#define R_PPC_GOT_DTPREL16_LO 92
-#define R_PPC_GOT_DTPREL16_HI 93
-#define R_PPC_GOT_DTPREL16_HA 94
-#define R_PPC_TLSGD 95
-#define R_PPC_TLSLD 96
-
-/* Used for the secure-plt PIC code sequences */
-#define R_PPC_REL16 249
-#define R_PPC_REL16_LO 250
-#define R_PPC_REL16_HI 251
-#define R_PPC_REL16_HA 252
-
-#define R_TYPE(name) __CONCAT(R_PPC_,name)
diff --git a/cpukit/libdl/include/arch/sparc/machine/elf_machdep.h b/cpukit/libdl/include/arch/sparc/machine/elf_machdep.h
deleted file mode 100644
index e8f2b630c2..0000000000
--- a/cpukit/libdl/include/arch/sparc/machine/elf_machdep.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* $NetBSD: elf_machdep.h,v 1.7 2009/05/30 05:56:53 skrll Exp $ */
-
-#define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
-#define ELF32_MACHDEP_ID_CASES \
- case EM_SPARC: \
- case EM_SPARC32PLUS: \
- break;
-
-#define ELF64_MACHDEP_ENDIANNESS ELFDATA2MSB
-#define ELF64_MACHDEP_ID_CASES \
- case EM_SPARC32PLUS: \
- case EM_SPARCV9: \
- /* no 64-bit ELF machine types supported */
-
-#define ELF32_MACHDEP_ID EM_SPARC /* XXX right? */
-
-#define ARCH_ELFSIZE 32 /* MD native binary size */
-
-#define R_SPARC_NONE 0
-#define R_SPARC_8 1
-#define R_SPARC_16 2
-#define R_SPARC_32 3
-#define R_SPARC_DISP8 4
-#define R_SPARC_DISP16 5
-#define R_SPARC_DISP32 6
-#define R_SPARC_WDISP30 7
-#define R_SPARC_WDISP22 8
-#define R_SPARC_HI22 9
-#define R_SPARC_22 10
-#define R_SPARC_13 11
-#define R_SPARC_LO10 12
-#define R_SPARC_GOT10 13
-#define R_SPARC_GOT13 14
-#define R_SPARC_GOT22 15
-#define R_SPARC_PC10 16
-#define R_SPARC_PC22 17
-#define R_SPARC_WPLT30 18
-#define R_SPARC_COPY 19
-#define R_SPARC_GLOB_DAT 20
-#define R_SPARC_JMP_SLOT 21
-#define R_SPARC_RELATIVE 22
-#define R_SPARC_UA32 23
-#define R_SPARC_PLT32 24
-#define R_SPARC_HIPLT22 25
-#define R_SPARC_LOPLT10 26
-#define R_SPARC_PCPLT32 27
-#define R_SPARC_PCPLT22 28
-#define R_SPARC_PCPLT10 29
-#define R_SPARC_10 30
-#define R_SPARC_11 31
-#define R_SPARC_64 32
-#define R_SPARC_OLO10 33
-#define R_SPARC_HH22 34
-#define R_SPARC_HM10 35
-#define R_SPARC_LM22 36
-#define R_SPARC_PC_HH22 37
-#define R_SPARC_PC_HM10 38
-#define R_SPARC_PC_LM22 39
-#define R_SPARC_WDISP16 40
-#define R_SPARC_WDISP19 41
-#define R_SPARC_GLOB_JMP 42
-#define R_SPARC_7 43
-#define R_SPARC_5 44
-#define R_SPARC_6 45
-
-/* TLS relocations */
-#define R_SPARC_TLS_GD_HI22 56
-#define R_SPARC_TLS_GD_LO10 57
-#define R_SPARC_TLS_GD_ADD 58
-#define R_SPARC_TLS_GD_CALL 59
-#define R_SPARC_TLS_LDM_HI22 60
-#define R_SPARC_TLS_LDM_LO10 61
-#define R_SPARC_TLS_LDM_ADD 62
-#define R_SPARC_TLS_LDM_CALL 63
-#define R_SPARC_TLS_LDO_HIX22 64
-#define R_SPARC_TLS_LDO_LOX10 65
-#define R_SPARC_TLS_LDO_ADD 66
-#define R_SPARC_TLS_IE_HI22 67
-#define R_SPARC_TLS_IE_LO10 68
-#define R_SPARC_TLS_IE_LD 69
-#define R_SPARC_TLS_IE_LDX 70
-#define R_SPARC_TLS_IE_ADD 71
-#define R_SPARC_TLS_LE_HIX22 72
-#define R_SPARC_TLS_LE_LOX10 73
-#define R_SPARC_TLS_DTPMOD32 74
-#define R_SPARC_TLS_DTPMOD64 75
-#define R_SPARC_TLS_DTPOFF32 76
-#define R_SPARC_TLS_DTPOFF64 77
-#define R_SPARC_TLS_TPOFF32 78
-#define R_SPARC_TLS_TPOFF64 79
-
-#define R_TYPE(name) __CONCAT(R_SPARC_,name)
diff --git a/cpukit/libdl/include/arch/v850/machine/elf_machdep.h b/cpukit/libdl/include/arch/v850/machine/elf_machdep.h
deleted file mode 100644
index b76d1491d6..0000000000
--- a/cpukit/libdl/include/arch/v850/machine/elf_machdep.h
+++ /dev/null
@@ -1,74 +0,0 @@
-#define ELF32_MACHDEP_ENDIANNESS ELFDATA2LSB
-
-#define ELF32_MACHDEP_ID_CASES \
- case EM_V850: \
- break;
-
-#define ELF32_MACHDEP_ID EM_V850
-
-
-
-#define EF_V850_ARCH 0xf0000000
-#define E_V850_ARCH 0x00000000
-#define E_V850E_ARCH 0x10000000
-#define E_V850E1_ARCH 0x20000000
-#define E_V850E2_ARCH 0x30000000
-#define E_V850E2V3_ARCH 0x40000000
-
-#define ARCH_ELFSIZE 32
-
-
-#define R_V850_NONE 0
-#define R_V850_9_PCREL 1
-#define R_V850_22_PCREL 2
-#define R_V850_HI16_S 3
-#define R_V850_HI16 4
-#define R_V850_LO16 5
-#define R_V850_ABS32 6
-#define R_V850_16 7
-#define R_V850_8 8
-#define R_V850_SDA_16_16_OFFSET 9
-#define R_V850_SDA_15_16_OFFSET 10
-#define R_V850_ZDA_16_16_OFFSET 11
-#define R_V850_ZDA_15_16_OFFSET 12
-#define R_V850_TDA_6_8_OFFSET 13
-#define R_V850_TDA_7_8_OFFSET 14
-#define R_V850_TDA_7_7_OFFSET 15
-#define R_V850_TDA_16_16_OFFSET 16
-#define R_V850_TDA_4_5_OFFSET 17
-#define R_V850_TDA_4_4_OFFSET 18
-#define R_V850_SDA_16_16_SPLIT_OFFSET 19
-#define R_V850_ZDA_16_16_SPLIT_OFFSET 20
-#define R_V850_CALLT_6_7_OFFSET 21
-#define R_V850_CALLT_16_16_OFFSET 22
-#define R_V850_GNU_VTINHERIT 23
-#define R_V850_GNU_VTENTRY 24
-#define R_V850_LONGCALL 25
-#define R_V850_LONGJUMP 26
-#define R_V850_ALIGN 27
-#define R_V850_REL32 28
-#define R_V850_LO16_SPLIT_OFFSET 29
-#define R_V850_16_PCREL 30
-#define R_V850_17_PCREL 31
-#define R_V850_23 32
-#define R_V850_32_PCREL 33
-#define R_V850_32_ABS 34
-#define R_V850_16_SPLIT_OFFSET 35
-#define R_V850_16_S1 36
-#define R_V850_LO16_S1 37
-#define R_V850_CALLT_15_16_OFFSET 38
-#define R_V850_32_GOTPCREL 39
-#define R_V850_16_GOT 40
-#define R_V850_32_GOT 41
-#define R_V850_22_PLT 42
-#define R_V850_32_PLT 43
-#define R_V850_COPY 44
-#define R_V850_GLOB_DAT 45
-#define R_V850_JMP_SLOT 46
-#define R_V850_RELATIVE 47
-#define R_V850_16_GOTOFF 48
-#define R_V850_32_GOTOFF 49
-#define R_V850_CODE 50
-#define R_V850_DATA 51
-
-#define R_TYPE(name) __CONCAT(R_V850_,name)
diff --git a/cpukit/libdl/include/link.h b/cpukit/libdl/include/link.h
deleted file mode 100644
index c93efd9e78..0000000000
--- a/cpukit/libdl/include/link.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* $NetBSD: link.h,v 1.13 2008/04/28 20:22:54 martin Exp $ */
-
-/*-
- * Copyright (c) 1999 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
- * NASA Ames Research Center.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _LINK_H_
-#define _LINK_H_
-
-/*
- * Pull in the correct definitions for our toolchain target.
- */
-#ifdef __ELF__
-#include <link_elf.h>
-#else
-#include <link_aout.h>
-#endif
-
-#endif /* _LINK_H_ */
diff --git a/cpukit/libdl/include/link_elf.h b/cpukit/libdl/include/link_elf.h
deleted file mode 100644
index d2691b68b0..0000000000
--- a/cpukit/libdl/include/link_elf.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* $NetBSD: link_elf.h,v 1.8 2009/11/04 19:28:03 pooka Exp $ */
-
-/*
- * This only exists for GDB.
- */
-
-#ifndef _LINK_ELF_H_
-#define _LINK_ELF_H_
-
-#include <sys/types.h>
-
-#include <machine/elf_machdep.h>
-#include <stdint.h>
-#include <rtems/rtl/rtl-obj-fwd.h>
-
-enum sections
-{
- rap_text = 0,
- rap_const = 1,
- rap_ctor = 2,
- rap_dtor = 3,
- rap_data = 4,
- rap_bss = 5,
- rap_secs = 6
-};
-
-/**
- * Object details.
- */
-typedef struct
-{
- const char* name; /**< Section name. */
- uint32_t offset; /**< The offset in the elf file. */
- uint32_t size; /**< The size of the section. */
- uint32_t rap_id; /**< Which obj does this section belongs to. */
-}section_detail;
-
-/**
- * link map structure will be used for GDB support.
- */
-struct link_map {
- const char* name; /**< Name of the obj. */
- uint32_t sec_num; /**< The count of section. */
- section_detail* sec_detail; /**< The section details. */
- uint32_t* sec_addr[rap_secs]; /**< The RAP section addr. */
- uint32_t rpathlen; /**< The length of the path. */
- char* rpath; /**< The path of object files. */
- struct link_map* l_next; /**< Linked list of mapped libs. */
- struct link_map* l_prev;
-};
-
-/**
- * r_debug is used to manage the debug related structures.
- */
-struct r_debug {
- int r_version; /* not used */
- struct link_map *r_map; /* list of loaded images */
- enum {
- RT_CONSISTENT, /* things are stable */
- RT_ADD, /* adding a shared library */
- RT_DELETE /* removing a shared library */
- } r_state;
-};
-
-/*
- * stub function. It is empty.
- */
-void _rtld_debug_state (void);
-
-/*
- * add link map to the list.
- */
-int _rtld_linkmap_add (rtems_rtl_obj_t* obj);
-
-/*
- * Remove link map from the list.
- */
-void _rtld_linkmap_delete (rtems_rtl_obj_t* obj);
-#endif /* _LINK_ELF_H_ */
diff --git a/cpukit/libdl/include/sys/cdefs_elf.h b/cpukit/libdl/include/sys/cdefs_elf.h
deleted file mode 100644
index 91903d6017..0000000000
--- a/cpukit/libdl/include/sys/cdefs_elf.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/* $NetBSD: cdefs_elf.h,v 1.24 2005/07/16 17:53:36 christos Exp $ */
-
-/*
- * Copyright (c) 1995, 1996 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- *
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
- * School of Computer Science
- * Carnegie Mellon University
- * Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#ifndef _SYS_CDEFS_ELF_H_
-#define _SYS_CDEFS_ELF_H_
-
-#ifdef __LEADING_UNDERSCORE
-#define _C_LABEL(x) __CONCAT(_,x)
-#define _C_LABEL_STRING(x) "_"x
-#else
-#define _C_LABEL(x) x
-#define _C_LABEL_STRING(x) x
-#endif
-
-#if __STDC__
-#define ___RENAME(x) __asm__(___STRING(_C_LABEL(x)))
-#else
-#ifdef __LEADING_UNDERSCORE
-#define ___RENAME(x) ____RENAME(_/**/x)
-#define ____RENAME(x) __asm__(___STRING(x))
-#else
-#define ___RENAME(x) __asm__(___STRING(x))
-#endif
-#endif
-
-#define __indr_reference(sym,alias) /* nada, since we do weak refs */
-
-#if __STDC__
-#define __strong_alias(alias,sym) \
- __asm__(".global " _C_LABEL_STRING(#alias) "\n" \
- _C_LABEL_STRING(#alias) " = " _C_LABEL_STRING(#sym));
-
-#define __weak_alias(alias,sym) \
- __asm__(".weak " _C_LABEL_STRING(#alias) "\n" \
- _C_LABEL_STRING(#alias) " = " _C_LABEL_STRING(#sym));
-#define __weak_extern(sym) \
- __asm__(".weak " _C_LABEL_STRING(#sym));
-#define __warn_references(sym,msg) \
- __asm__(".section .gnu.warning." #sym "\n\t.ascii \"" msg "\"\n\t.text");
-
-#else /* !__STDC__ */
-
-#ifdef __LEADING_UNDERSCORE
-#define __weak_alias(alias,sym) ___weak_alias(_/**/alias,_/**/sym)
-#define ___weak_alias(alias,sym) \
- __asm__(".weak alias\nalias = sym");
-#else
-#define __weak_alias(alias,sym) \
- __asm__(".weak alias\nalias = sym");
-#endif
-#ifdef __LEADING_UNDERSCORE
-#define __weak_extern(sym) ___weak_extern(_/**/sym)
-#define ___weak_extern(sym) \
- __asm__(".weak sym");
-#else
-#define __weak_extern(sym) \
- __asm__(".weak sym");
-#endif
-#define __warn_references(sym,msg) \
- __asm__(".section .gnu.warning.sym\n\t.ascii msg ; .text");
-
-#endif /* !__STDC__ */
-
-#if __STDC__
-#define __SECTIONSTRING(_sec, _str) \
- __asm__(".section " #_sec "\n\t.asciz \"" _str "\"\n\t.previous")
-#else
-#define __SECTIONSTRING(_sec, _str) \
- __asm__(".section _sec\n\t.asciz _str\n\t.previous")
-#endif
-
-#define __IDSTRING(_n,_s) __SECTIONSTRING(.ident,_s)
-
-#define __RCSID(_s) __IDSTRING(rcsid,_s)
-#define __SCCSID(_s)
-#define __SCCSID2(_s)
-#if 0 /* XXX userland __COPYRIGHTs have \ns in them */
-#define __COPYRIGHT(_s) __SECTIONSTRING(.copyright,_s)
-#else
-#define __COPYRIGHT(_s) \
- static const char copyright[] \
- __attribute__((__unused__,__section__(".copyright"))) = _s
-#endif
-
-#define __KERNEL_RCSID(_n, _s) __RCSID(_s)
-#define __KERNEL_SCCSID(_n, _s)
-#if 0 /* XXX see above */
-#define __KERNEL_COPYRIGHT(_n, _s) __COPYRIGHT(_s)
-#else
-#define __KERNEL_COPYRIGHT(_n, _s) __SECTIONSTRING(.copyright, _s)
-#endif
-
-#ifndef __lint__
-#define __link_set_make_entry(set, sym) \
- static void const * const __link_set_##set##_sym_##sym \
- __section("link_set_" #set) __used = &sym
-#define __link_set_make_entry2(set, sym, n) \
- static void const * const __link_set_##set##_sym_##sym##_##n \
- __section("link_set_" #set) __used = &sym[n]
-#else
-#define __link_set_make_entry(set, sym) \
- extern void const * const __link_set_##set##_sym_##sym
-#define __link_set_make_entry2(set, sym, n) \
- extern void const * const __link_set_##set##_sym_##sym##_##n
-#endif /* __lint__ */
-
-#define __link_set_add_text(set, sym) __link_set_make_entry(set, sym)
-#define __link_set_add_rodata(set, sym) __link_set_make_entry(set, sym)
-#define __link_set_add_data(set, sym) __link_set_make_entry(set, sym)
-#define __link_set_add_bss(set, sym) __link_set_make_entry(set, sym)
-#define __link_set_add_text2(set, sym, n) __link_set_make_entry2(set, sym, n)
-#define __link_set_add_rodata2(set, sym, n) __link_set_make_entry2(set, sym, n)
-#define __link_set_add_data2(set, sym, n) __link_set_make_entry2(set, sym, n)
-#define __link_set_add_bss2(set, sym, n) __link_set_make_entry2(set, sym, n)
-
-#define __link_set_decl(set, ptype) \
- extern ptype * const __start_link_set_##set[]; \
- extern ptype * const __stop_link_set_##set[] \
-
-#define __link_set_start(set) (__start_link_set_##set)
-#define __link_set_end(set) (__stop_link_set_##set)
-
-#define __link_set_count(set) \
- (__link_set_end(set) - __link_set_start(set))
-
-#endif /* !_SYS_CDEFS_ELF_H_ */
diff --git a/cpukit/libdl/include/sys/exec_elf.h b/cpukit/libdl/include/sys/exec_elf.h
deleted file mode 100644
index 4242415f54..0000000000
--- a/cpukit/libdl/include/sys/exec_elf.h
+++ /dev/null
@@ -1,1101 +0,0 @@
-/* $NetBSD: exec_elf.h,v 1.102 2010/03/01 11:27:29 skrll Exp $ */
-
-/*-
- * Copyright (c) 1994 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Christos Zoulas.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _SYS_EXEC_ELF_H_
-#define _SYS_EXEC_ELF_H_
-
-/*
- * The current ELF ABI specification is available at:
- * http://www.sco.com/developers/gabi/
- *
- * Current header definitions are in:
- * http://www.sco.com/developers/gabi/latest/ch4.eheader.html
- */
-
-#if defined(_KERNEL) || defined(_STANDALONE)
-#include <sys/types.h>
-#else
-#include <inttypes.h>
-#endif /* _KERNEL || _STANDALONE */
-
-#if defined(ELFSIZE)
-#define CONCAT(x,y) __CONCAT(x,y)
-#define ELFNAME(x) CONCAT(elf,CONCAT(ELFSIZE,CONCAT(_,x)))
-#define ELFNAME2(x,y) CONCAT(x,CONCAT(_elf,CONCAT(ELFSIZE,CONCAT(_,y))))
-#define ELFNAMEEND(x) CONCAT(x,CONCAT(_elf,ELFSIZE))
-#define ELFDEFNNAME(x) CONCAT(ELF,CONCAT(ELFSIZE,CONCAT(_,x)))
-#endif
-
-#if HAVE_NBTOOL_CONFIG_H
-#include <nbinclude/machine/elf_machdep.h>
-#else
-#include <machine/elf_machdep.h>
-#endif
-
-typedef uint8_t Elf_Byte;
-
-typedef uint32_t Elf32_Addr;
-#define ELF32_FSZ_ADDR 4
-typedef uint32_t Elf32_Off;
-typedef int32_t Elf32_SOff;
-#define ELF32_FSZ_OFF 4
-typedef int32_t Elf32_Sword;
-#define ELF32_FSZ_SWORD 4
-typedef uint32_t Elf32_Word;
-#define ELF32_FSZ_WORD 4
-typedef uint16_t Elf32_Half;
-#define ELF32_FSZ_HALF 2
-typedef uint64_t Elf32_Lword;
-#define ELF32_FSZ_LWORD 8
-
-typedef uint64_t Elf64_Addr;
-#define ELF64_FSZ_ADDR 8
-typedef uint64_t Elf64_Off;
-typedef int64_t Elf64_SOff;
-#define ELF64_FSZ_OFF 8
-typedef int32_t Elf64_Shalf;
-#define ELF64_FSZ_SHALF 4
-
-#ifndef ELF64_FSZ_SWORD
-typedef int32_t Elf64_Sword;
-#define ELF64_FSZ_SWORD 4
-#endif /* ELF64_FSZ_SWORD */
-#ifndef ELF64_FSZ_WORD
-typedef uint32_t Elf64_Word;
-#define ELF64_FSZ_WORD 4
-#endif /* ELF64_FSZ_WORD */
-
-typedef int64_t Elf64_Sxword;
-#define ELF64_FSZ_SXWORD 8
-typedef uint64_t Elf64_Xword;
-#define ELF64_FSZ_XWORD 8
-typedef uint64_t Elf64_Lword;
-#define ELF64_FSZ_LWORD 8
-typedef uint32_t Elf64_Half;
-#define ELF64_FSZ_HALF 4
-typedef uint16_t Elf64_Quarter;
-#define ELF64_FSZ_QUARTER 2
-
-/*
- * ELF Header
- */
-#define ELF_NIDENT 16
-
-typedef struct {
- unsigned char e_ident[ELF_NIDENT]; /* Id bytes */
- Elf32_Half e_type; /* file type */
- Elf32_Half e_machine; /* machine type */
- Elf32_Word e_version; /* version number */
- Elf32_Addr e_entry; /* entry point */
- Elf32_Off e_phoff; /* Program hdr offset */
- Elf32_Off e_shoff; /* Section hdr offset */
- Elf32_Word e_flags; /* Processor flags */
- Elf32_Half e_ehsize; /* sizeof ehdr */
- Elf32_Half e_phentsize; /* Program header entry size */
- Elf32_Half e_phnum; /* Number of program headers */
- Elf32_Half e_shentsize; /* Section header entry size */
- Elf32_Half e_shnum; /* Number of section headers */
- Elf32_Half e_shstrndx; /* String table index */
-} Elf32_Ehdr;
-
-typedef struct {
- unsigned char e_ident[ELF_NIDENT]; /* Id bytes */
- Elf64_Quarter e_type; /* file type */
- Elf64_Quarter e_machine; /* machine type */
- Elf64_Half e_version; /* version number */
- Elf64_Addr e_entry; /* entry point */
- Elf64_Off e_phoff; /* Program hdr offset */
- Elf64_Off e_shoff; /* Section hdr offset */
- Elf64_Half e_flags; /* Processor flags */
- Elf64_Quarter e_ehsize; /* sizeof ehdr */
- Elf64_Quarter e_phentsize; /* Program header entry size */
- Elf64_Quarter e_phnum; /* Number of program headers */
- Elf64_Quarter e_shentsize; /* Section header entry size */
- Elf64_Quarter e_shnum; /* Number of section headers */
- Elf64_Quarter e_shstrndx; /* String table index */
-} Elf64_Ehdr;
-
-/* e_ident offsets */
-#define EI_MAG0 0 /* '\177' */
-#define EI_MAG1 1 /* 'E' */
-#define EI_MAG2 2 /* 'L' */
-#define EI_MAG3 3 /* 'F' */
-#define EI_CLASS 4 /* File class */
-#define EI_DATA 5 /* Data encoding */
-#define EI_VERSION 6 /* File version */
-#define EI_OSABI 7 /* Operating system/ABI identification */
-#define EI_ABIVERSION 8 /* ABI version */
-#define EI_PAD 9 /* Start of padding bytes up to EI_NIDENT*/
-#define EI_NIDENT 16 /* First non-ident header byte */
-
-/* e_ident[EI_MAG0,EI_MAG3] */
-#define ELFMAG0 0x7f
-#define ELFMAG1 'E'
-#define ELFMAG2 'L'
-#define ELFMAG3 'F'
-#define ELFMAG "\177ELF"
-#define SELFMAG 4
-
-/* e_ident[EI_CLASS] */
-#define ELFCLASSNONE 0 /* Invalid class */
-#define ELFCLASS32 1 /* 32-bit objects */
-#define ELFCLASS64 2 /* 64-bit objects */
-#define ELFCLASSNUM 3
-
-/* e_ident[EI_DATA] */
-#define ELFDATANONE 0 /* Invalid data encoding */
-#define ELFDATA2LSB 1 /* 2's complement values, LSB first */
-#define ELFDATA2MSB 2 /* 2's complement values, MSB first */
-
-/* e_ident[EI_VERSION] */
-#define EV_NONE 0 /* Invalid version */
-#define EV_CURRENT 1 /* Current version */
-#define EV_NUM 2
-
-/* e_ident[EI_OSABI] */
-#define ELFOSABI_SYSV 0 /* UNIX System V ABI */
-#define ELFOSABI_HPUX 1 /* HP-UX operating system */
-#define ELFOSABI_NETBSD 2 /* NetBSD */
-#define ELFOSABI_LINUX 3 /* GNU/Linux */
-#define ELFOSABI_HURD 4 /* GNU/Hurd */
-#define ELFOSABI_86OPEN 5 /* 86Open */
-#define ELFOSABI_SOLARIS 6 /* Solaris */
-#define ELFOSABI_MONTEREY 7 /* Monterey */
-#define ELFOSABI_IRIX 8 /* IRIX */
-#define ELFOSABI_FREEBSD 9 /* FreeBSD */
-#define ELFOSABI_TRU64 10 /* TRU64 UNIX */
-#define ELFOSABI_MODESTO 11 /* Novell Modesto */
-#define ELFOSABI_OPENBSD 12 /* OpenBSD */
-#define ELFOSABI_OPENVMS 13 /* OpenVMS */
-#define ELFOSABI_NSK 14 /* HP Non-Stop Kernel */
-#define ELFOSABI_AROS 15 /* Amiga Research OS */
-/* Unofficial OSABIs follow */
-#define ELFOSABI_ARM 97 /* ARM */
-#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
-
-#define ELFOSABI_NONE ELFOSABI_SYSV
-#define ELFOSABI_AIX ELFOSABI_MONTEREY
-
-/* e_type */
-#define ET_NONE 0 /* No file type */
-#define ET_REL 1 /* Relocatable file */
-#define ET_EXEC 2 /* Executable file */
-#define ET_DYN 3 /* Shared object file */
-#define ET_CORE 4 /* Core file */
-#define ET_NUM 5
-
-#define ET_LOOS 0xfe00 /* Operating system specific range */
-#define ET_HIOS 0xfeff
-#define ET_LOPROC 0xff00 /* Processor-specific range */
-#define ET_HIPROC 0xffff
-
-/* e_machine */
-#define EM_NONE 0 /* No machine */
-#define EM_M32 1 /* AT&T WE 32100 */
-#define EM_SPARC 2 /* SPARC */
-#define EM_386 3 /* Intel 80386 */
-#define EM_68K 4 /* Motorola 68000 */
-#define EM_88K 5 /* Motorola 88000 */
-#define EM_486 6 /* Intel 80486 */
-#define EM_860 7 /* Intel 80860 */
-#define EM_MIPS 8 /* MIPS I Architecture */
-#define EM_S370 9 /* Amdahl UTS on System/370 */
-#define EM_MIPS_RS3_LE 10 /* MIPS RS3000 Little-endian */
- /* 11-14 - Reserved */
-#define EM_RS6000 11 /* IBM RS/6000 XXX reserved */
-#define EM_PARISC 15 /* Hewlett-Packard PA-RISC */
-#define EM_NCUBE 16 /* NCube XXX reserved */
-#define EM_VPP500 17 /* Fujitsu VPP500 */
-#define EM_SPARC32PLUS 18 /* Enhanced instruction set SPARC */
-#define EM_960 19 /* Intel 80960 */
-#define EM_PPC 20 /* PowerPC */
-#define EM_PPC64 21 /* 64-bit PowerPC */
- /* 22-35 - Reserved */
-#define EM_S390 22 /* System/390 XXX reserved */
-#define EM_V800 36 /* NEC V800 */
-#define EM_FR20 37 /* Fujitsu FR20 */
-#define EM_RH32 38 /* TRW RH-32 */
-#define EM_RCE 39 /* Motorola RCE */
-#define EM_ARM 40 /* Advanced RISC Machines ARM */
-#define EM_ALPHA 41 /* DIGITAL Alpha */
-#define EM_SH 42 /* Hitachi Super-H */
-#define EM_SPARCV9 43 /* SPARC Version 9 */
-#define EM_TRICORE 44 /* Siemens Tricore */
-#define EM_ARC 45 /* Argonaut RISC Core */
-#define EM_H8_300 46 /* Hitachi H8/300 */
-#define EM_H8_300H 47 /* Hitachi H8/300H */
-#define EM_H8S 48 /* Hitachi H8S */
-#define EM_H8_500 49 /* Hitachi H8/500 */
-#define EM_IA_64 50 /* Intel Merced Processor */
-#define EM_MIPS_X 51 /* Stanford MIPS-X */
-#define EM_COLDFIRE 52 /* Motorola Coldfire */
-#define EM_68HC12 53 /* Motorola MC68HC12 */
-#define EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator */
-#define EM_PCP 55 /* Siemens PCP */
-#define EM_NCPU 56 /* Sony nCPU embedded RISC processor */
-#define EM_NDR1 57 /* Denso NDR1 microprocessor */
-#define EM_STARCORE 58 /* Motorola Star*Core processor */
-#define EM_ME16 59 /* Toyota ME16 processor */
-#define EM_ST100 60 /* STMicroelectronics ST100 processor */
-#define EM_TINYJ 61 /* Advanced Logic Corp. TinyJ embedded family processor */
-#define EM_X86_64 62 /* AMD x86-64 architecture */
-#define EM_PDSP 63 /* Sony DSP Processor */
-#define EM_PDP10 64 /* Digital Equipment Corp. PDP-10 */
-#define EM_PDP11 65 /* Digital Equipment Corp. PDP-11 */
-#define EM_FX66 66 /* Siemens FX66 microcontroller */
-#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 bit microcontroller */
-#define EM_ST7 68 /* STMicroelectronics ST7 8-bit microcontroller */
-#define EM_68HC16 69 /* Motorola MC68HC16 Microcontroller */
-#define EM_68HC11 70 /* Motorola MC68HC11 Microcontroller */
-#define EM_68HC08 71 /* Motorola MC68HC08 Microcontroller */
-#define EM_68HC05 72 /* Motorola MC68HC05 Microcontroller */
-#define EM_SVX 73 /* Silicon Graphics SVx */
-#define EM_ST19 74 /* STMicroelectronics ST19 8-bit CPU */
-#define EM_VAX 75 /* Digital VAX */
-#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */
-#define EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded CPU */
-#define EM_FIREPATH 78 /* Element 14 64-bit DSP processor */
-#define EM_ZSP 79 /* LSI Logic's 16-bit DSP processor */
-#define EM_MMIX 80 /* Donald Knuth's educational 64-bit processor */
-#define EM_HUANY 81 /* Harvard's machine-independent format */
-#define EM_PRISM 82 /* SiTera Prism */
-#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */
-#define EM_FR30 84 /* Fujitsu FR30 */
-#define EM_D10V 85 /* Mitsubishi D10V */
-#define EM_D30V 86 /* Mitsubishi D30V */
-#define EM_V850 87 /* NEC v850 */
-#define EM_M32R 88 /* Mitsubishi M32R */
-#define EM_MN10300 89 /* Matsushita MN10300 */
-#define EM_MN10200 90 /* Matsushita MN10200 */
-#define EM_PJ 91 /* picoJava */
-#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */
-#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */
-#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
-#define EM_VIDEOCORE 95 /* Alphamosaic VideoCore processor */
-#define EM_TMM_GPP 96 /* Thompson Multimedia General Purpose Processor */
-#define EM_NS32K 97 /* National Semiconductor 32000 series */
-#define EM_TPC 98 /* Tenor Network TPC processor */
-#define EM_SNP1K 99 /* Trebia SNP 1000 processor */
-#define EM_ST200 100 /* STMicroelectronics ST200 microcontroller */
-#define EM_IP2K 101 /* Ubicom IP2xxx microcontroller family */
-#define EM_MAX 102 /* MAX processor */
-#define EM_CR 103 /* National Semiconductor CompactRISC micorprocessor */
-#define EM_F2MC16 104 /* Fujitsu F2MC16 */
-#define EM_MSP430 105 /* Texas Instruments MSP430 */
-#define EM_BLACKFIN 106 /* Analog Devices Blackfin DSP */
-#define EM_SE_C33 107 /* Seiko Epson S1C33 family */
-#define EM_SEP 108 /* Sharp embedded microprocessor */
-#define EM_ARCA 109 /* Arca RISC microprocessor */
-#define EM_UNICORE 110 /* UNICORE from PKU-Unity Ltd. and MPRC Peking University */
-#define EM_EXCESS 111 /* eXcess: 16/32/64-bit configurable embedded CPU */
-#define EM_DXP 112 /* Icera Semiconductor Inc. Deep Execution Processor */
-#define EM_ALTERA_NIOS2 113 /* Altera Nios II soft-core processor */
-#define EM_CRX 114 /* National Semiconductor CRX */
-#define EM_XGATE 115 /* Motorola XGATE embedded processor */
-#define EM_C166 116 /* Infineon C16x/XC16x processor */
-#define EM_M16C 117 /* Renesas M16C series microprocessors */
-#define EM_DSPIC30F 118 /* Microchip Technology dsPIC30F Digital Signal Controller */
-#define EM_CE 119 /* Freescale Communication Engine RISC core */
-#define EM_M32C 120 /* Renesas M32C series microprocessors */
-
-#define EM_LATTICEMICO32 138 /* RICS processor for Lattice FPGA architecture */
-
-#define EM_MICROBLAZE 189 /* Xilinx MicroBlaze 32-bit RISC soft processor core */
-
-#define EM_MOXIE 0xFEED
-
-/* Unofficial machine types follow */
-#define EM_AVR32 6317 /* used by NetBSD/avr32 */
-#define EM_ALPHA_EXP 36902 /* used by NetBSD/alpha; obsolete */
-#define EM_NUM 36903
-
-/*
- * Program Header
- */
-typedef struct {
- Elf32_Word p_type; /* entry type */
- Elf32_Off p_offset; /* offset */
- Elf32_Addr p_vaddr; /* virtual address */
- Elf32_Addr p_paddr; /* physical address */
- Elf32_Word p_filesz; /* file size */
- Elf32_Word p_memsz; /* memory size */
- Elf32_Word p_flags; /* flags */
- Elf32_Word p_align; /* memory & file alignment */
-} Elf32_Phdr;
-
-typedef struct {
- Elf64_Half p_type; /* entry type */
- Elf64_Half p_flags; /* flags */
- Elf64_Off p_offset; /* offset */
- Elf64_Addr p_vaddr; /* virtual address */
- Elf64_Addr p_paddr; /* physical address */
- Elf64_Xword p_filesz; /* file size */
- Elf64_Xword p_memsz; /* memory size */
- Elf64_Xword p_align; /* memory & file alignment */
-} Elf64_Phdr;
-
-/* p_type */
-#define PT_NULL 0 /* Program header table entry unused */
-#define PT_LOAD 1 /* Loadable program segment */
-#define PT_DYNAMIC 2 /* Dynamic linking information */
-#define PT_INTERP 3 /* Program interpreter */
-#define PT_NOTE 4 /* Auxiliary information */
-#define PT_SHLIB 5 /* Reserved, unspecified semantics */
-#define PT_PHDR 6 /* Entry for header table itself */
-#define PT_NUM 7
-
-#define PT_LOOS 0x60000000 /* OS-specific range */
-#define PT_HIOS 0x6fffffff
-#define PT_LOPROC 0x70000000 /* Processor-specific range */
-#define PT_HIPROC 0x7fffffff
-
-#define PT_MIPS_REGINFO 0x70000000
-
-/* p_flags */
-#define PF_R 0x4 /* Segment is readable */
-#define PF_W 0x2 /* Segment is writable */
-#define PF_X 0x1 /* Segment is executable */
-
-#define PF_MASKOS 0x0ff00000 /* Operating system specific values */
-#define PF_MASKPROC 0xf0000000 /* Processor-specific values */
-
-/* Extended program header index. */
-#define PN_XNUM 0xffff
-
-/*
- * Section Headers
- */
-typedef struct {
- Elf32_Word sh_name; /* section name (.shstrtab index) */
- Elf32_Word sh_type; /* section type */
- Elf32_Word sh_flags; /* section flags */
- Elf32_Addr sh_addr; /* virtual address */
- Elf32_Off sh_offset; /* file offset */
- Elf32_Word sh_size; /* section size */
- Elf32_Word sh_link; /* link to another */
- Elf32_Word sh_info; /* misc info */
- Elf32_Word sh_addralign; /* memory alignment */
- Elf32_Word sh_entsize; /* table entry size */
-} Elf32_Shdr;
-
-typedef struct {
- Elf64_Half sh_name; /* section name (.shstrtab index) */
- Elf64_Half sh_type; /* section type */
- Elf64_Xword sh_flags; /* section flags */
- Elf64_Addr sh_addr; /* virtual address */
- Elf64_Off sh_offset; /* file offset */
- Elf64_Xword sh_size; /* section size */
- Elf64_Half sh_link; /* link to another */
- Elf64_Half sh_info; /* misc info */
- Elf64_Xword sh_addralign; /* memory alignment */
- Elf64_Xword sh_entsize; /* table entry size */
-} Elf64_Shdr;
-
-/* sh_type */
-#define SHT_NULL 0 /* Section header table entry unused */
-#define SHT_PROGBITS 1 /* Program information */
-#define SHT_SYMTAB 2 /* Symbol table */
-#define SHT_STRTAB 3 /* String table */
-#define SHT_RELA 4 /* Relocation information w/ addend */
-#define SHT_HASH 5 /* Symbol hash table */
-#define SHT_DYNAMIC 6 /* Dynamic linking information */
-#define SHT_NOTE 7 /* Auxiliary information */
-#define SHT_NOBITS 8 /* No space allocated in file image */
-#define SHT_REL 9 /* Relocation information w/o addend */
-#define SHT_SHLIB 10 /* Reserved, unspecified semantics */
-#define SHT_DYNSYM 11 /* Symbol table for dynamic linker */
-#define SHT_INIT_ARRAY 14 /* Initialization function pointers */
-#define SHT_FINI_ARRAY 15 /* Termination function pointers */
-#define SHT_PREINIT_ARRAY 16 /* Pre-initialization function ptrs */
-#define SHT_GROUP 17 /* Section group */
-#define SHT_SYMTAB_SHNDX 18 /* Section indexes (see SHN_XINDEX) */
-#define SHT_NUM 19
-
-#define SHT_LOOS 0x60000000 /* Operating system specific range */
-#define SHT_SUNW_move 0x6ffffffa
-#define SHT_SUNW_syminfo 0x6ffffffc
-#define SHT_SUNW_verdef 0x6ffffffd /* Versions defined by file */
-#define SHT_GNU_verdef SHT_SUNW_verdef
-#define SHT_SUNW_verneed 0x6ffffffe /* Versions needed by file */
-#define SHT_GNU_verneed SHT_SUNW_verneed
-#define SHT_SUNW_versym 0x6fffffff /* Symbol versions */
-#define SHT_GNU_versym SHT_SUNW_versym
-#define SHT_HIOS 0x6fffffff
-#define SHT_LOPROC 0x70000000 /* Processor-specific range */
-#define SHT_AMD64_UNWIND 0x70000001 /* unwind information */
-#define SHT_HIPROC 0x7fffffff
-#define SHT_LOUSER 0x80000000 /* Application-specific range */
-#define SHT_HIUSER 0xffffffff
-
-/* sh_flags */
-#define SHF_WRITE 0x1 /* Section contains writable data */
-#define SHF_ALLOC 0x2 /* Section occupies memory */
-#define SHF_EXECINSTR 0x4 /* Section contains executable insns */
-#define SHF_MERGE 0x10 /* Section contains data that can be merged */
-#define SHF_STRINGS 0x20 /* Section contains null-terminated strings */
-#define SHF_INFO_LINK 0x40 /* Section header's sh_info holds table index */
-#define SHF_LINK_ORDER 0x80 /* Section has special ordering requirements */
-
-#define SHF_MASKOS 0x0f000000 /* Operating system specific values */
-#define SHF_MASKPROC 0xf0000000 /* Processor-specific values */
-
-/*
- * Symbol Table
- */
-typedef struct {
- Elf32_Word st_name; /* Symbol name (.strtab index) */
- Elf32_Word st_value; /* value of symbol */
- Elf32_Word st_size; /* size of symbol */
- Elf_Byte st_info; /* type / binding attrs */
- Elf_Byte st_other; /* unused */
- Elf32_Half st_shndx; /* section index of symbol */
-} Elf32_Sym;
-
-typedef struct {
- Elf64_Half st_name; /* Symbol name (.strtab index) */
- Elf_Byte st_info; /* type / binding attrs */
- Elf_Byte st_other; /* unused */
- Elf64_Quarter st_shndx; /* section index of symbol */
- Elf64_Addr st_value; /* value of symbol */
- Elf64_Xword st_size; /* size of symbol */
-} Elf64_Sym;
-
-/* Symbol Table index of the undefined symbol */
-#define ELF_SYM_UNDEFINED 0
-
-#define STN_UNDEF 0 /* undefined index */
-
-/* st_info: Symbol Bindings */
-#define STB_LOCAL 0 /* local symbol */
-#define STB_GLOBAL 1 /* global symbol */
-#define STB_WEAK 2 /* weakly defined global symbol */
-#define STB_NUM 3
-
-#define STB_LOOS 10 /* Operating system specific range */
-#define STB_HIOS 12
-#define STB_LOPROC 13 /* Processor-specific range */
-#define STB_HIPROC 15
-
-/* st_info: Symbol Types */
-#define STT_NOTYPE 0 /* Type not specified */
-#define STT_OBJECT 1 /* Associated with a data object */
-#define STT_FUNC 2 /* Associated with a function */
-#define STT_SECTION 3 /* Associated with a section */
-#define STT_FILE 4 /* Associated with a file name */
-#define STT_COMMON 5 /* Uninitialised common block */
-#define STT_TLS 6 /* Thread local data object */
-#define STT_NUM 7
-
-#define STT_LOOS 10 /* Operating system specific range */
-#define STT_HIOS 12
-#define STT_LOPROC 13 /* Processor-specific range */
-#define STT_HIPROC 15
-
-/* st_other: Visibility Types */
-#define STV_DEFAULT 0 /* use binding type */
-#define STV_INTERNAL 1 /* not referenced from outside */
-#define STV_HIDDEN 2 /* not visible, may be used via ptr */
-#define STV_PROTECTED 3 /* visible, not preemptible */
-#define STV_EXPORTED 4
-#define STV_SINGLETON 5
-#define STV_ELIMINATE 6
-
-/* st_info/st_other utility macros */
-#define ELF_ST_BIND(info) ((uint32_t)(info) >> 4)
-#define ELF_ST_TYPE(info) ((uint32_t)(info) & 0xf)
-#define ELF_ST_INFO(bind,type) ((Elf_Byte)(((bind) << 4) | \
- ((type) & 0xf)))
-#define ELF_ST_VISIBILITY(other) ((uint32_t)(other) & 3)
-
-/*
- * Special section indexes
- */
-#define SHN_UNDEF 0 /* Undefined section */
-
-#define SHN_LORESERVE 0xff00 /* Reserved range */
-#define SHN_ABS 0xfff1 /* Absolute symbols */
-#define SHN_COMMON 0xfff2 /* Common symbols */
-#define SHN_XINDEX 0xffff /* Escape -- index stored elsewhere */
-#define SHN_HIRESERVE 0xffff
-
-#define SHN_LOPROC 0xff00 /* Processor-specific range */
-#define SHN_HIPROC 0xff1f
-#define SHN_LOOS 0xff20 /* Operating system specific range */
-#define SHN_HIOS 0xff3f
-
-#define SHN_MIPS_ACOMMON 0xff00
-#define SHN_MIPS_TEXT 0xff01
-#define SHN_MIPS_DATA 0xff02
-#define SHN_MIPS_SCOMMON 0xff03
-
-/*
- * Relocation Entries
- */
-typedef struct {
- Elf32_Word r_offset; /* where to do it */
- Elf32_Word r_info; /* index & type of relocation */
-} Elf32_Rel;
-
-typedef struct {
- Elf32_Word r_offset; /* where to do it */
- Elf32_Word r_info; /* index & type of relocation */
- Elf32_Sword r_addend; /* adjustment value */
-} Elf32_Rela;
-
-/* r_info utility macros */
-#define ELF32_R_SYM(info) ((info) >> 8)
-#define ELF32_R_TYPE(info) ((info) & 0xff)
-#define ELF32_R_INFO(sym, type) (((sym) << 8) + (unsigned char)(type))
-
-typedef struct {
- Elf64_Addr r_offset; /* where to do it */
- Elf64_Xword r_info; /* index & type of relocation */
-} Elf64_Rel;
-
-typedef struct {
- Elf64_Addr r_offset; /* where to do it */
- Elf64_Xword r_info; /* index & type of relocation */
- Elf64_Sxword r_addend; /* adjustment value */
-} Elf64_Rela;
-
-/* r_info utility macros */
-#define ELF64_R_SYM(info) ((info) >> 32)
-#define ELF64_R_TYPE(info) ((info) & 0xffffffff)
-#define ELF64_R_INFO(sym,type) (((sym) << 32) + (type))
-
-/*
- * Move entries
- */
-typedef struct {
- Elf32_Lword m_value; /* symbol value */
- Elf32_Word m_info; /* size + index */
- Elf32_Word m_poffset; /* symbol offset */
- Elf32_Half m_repeat; /* repeat count */
- Elf32_Half m_stride; /* stride info */
-} Elf32_Move;
-
-#define ELF32_M_SYM(info) ((info) >> 8)
-#define ELF32_M_SIZE(info) (info) & 0xff)
-#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char)(size))
-
-typedef struct {
- Elf64_Lword m_value; /* symbol value */
- Elf64_Xword m_info; /* size + index */
- Elf64_Xword m_poffset; /* symbol offset */
- Elf64_Half m_repeat; /* repeat count */
- Elf64_Half m_stride; /* stride info */
-} Elf64_Move;
-
-#define ELF64_M_SYM(info) ((info) >> 8)
-#define ELF64_M_SIZE(info) (info) & 0xff)
-#define ELF64_M_INFO(sym, size) (((sym) << 8) + (unsigned char)(size))
-
-/*
- * Hardware/software capabilities entry
- */
-typedef struct {
- Elf32_Word c_tag; /* entry tag value */
- union {
- Elf32_Addr c_ptr;
- Elf32_Word c_val;
- } c_un;
-} Elf32_Cap;
-
-typedef struct {
- Elf64_Xword c_tag; /* entry tag value */
- union {
- Elf64_Addr c_ptr;
- Elf64_Xword c_val;
- } c_un;
-} Elf64_Cap;
-
-/*
- * Dynamic Section structure array
- */
-typedef struct {
- Elf32_Word d_tag; /* entry tag value */
- union {
- Elf32_Addr d_ptr;
- Elf32_Word d_val;
- } d_un;
-} Elf32_Dyn;
-
-typedef struct {
- Elf64_Xword d_tag; /* entry tag value */
- union {
- Elf64_Addr d_ptr;
- Elf64_Xword d_val;
- } d_un;
-} Elf64_Dyn;
-
-/* d_tag */
-#define DT_NULL 0 /* Marks end of dynamic array */
-#define DT_NEEDED 1 /* Name of needed library (DT_STRTAB offset) */
-#define DT_PLTRELSZ 2 /* Size, in bytes, of relocations in PLT */
-#define DT_PLTGOT 3 /* Address of PLT and/or GOT */
-#define DT_HASH 4 /* Address of symbol hash table */
-#define DT_STRTAB 5 /* Address of string table */
-#define DT_SYMTAB 6 /* Address of symbol table */
-#define DT_RELA 7 /* Address of Rela relocation table */
-#define DT_RELASZ 8 /* Size, in bytes, of DT_RELA table */
-#define DT_RELAENT 9 /* Size, in bytes, of one DT_RELA entry */
-#define DT_STRSZ 10 /* Size, in bytes, of DT_STRTAB table */
-#define DT_SYMENT 11 /* Size, in bytes, of one DT_SYMTAB entry */
-#define DT_INIT 12 /* Address of initialization function */
-#define DT_FINI 13 /* Address of termination function */
-#define DT_SONAME 14 /* Shared object name (DT_STRTAB offset) */
-#define DT_RPATH 15 /* Library search path (DT_STRTAB offset) */
-#define DT_SYMBOLIC 16 /* Start symbol search within local object */
-#define DT_REL 17 /* Address of Rel relocation table */
-#define DT_RELSZ 18 /* Size, in bytes, of DT_REL table */
-#define DT_RELENT 19 /* Size, in bytes, of one DT_REL entry */
-#define DT_PLTREL 20 /* Type of PLT relocation entries */
-#define DT_DEBUG 21 /* Used for debugging; unspecified */
-#define DT_TEXTREL 22 /* Relocations might modify non-writable seg */
-#define DT_JMPREL 23 /* Address of relocations associated with PLT */
-#define DT_BIND_NOW 24 /* Process all relocations at load-time */
-#define DT_INIT_ARRAY 25 /* Address of initialization function array */
-#define DT_FINI_ARRAY 26 /* Size, in bytes, of DT_INIT_ARRAY array */
-#define DT_INIT_ARRAYSZ 27 /* Address of termination function array */
-#define DT_FINI_ARRAYSZ 28 /* Size, in bytes, of DT_FINI_ARRAY array*/
-#define DT_NUM 29
-
-#define DT_LOOS 0x60000000 /* Operating system specific range */
-#define DT_VERSYM 0x6ffffff0 /* Symbol versions */
-#define DT_FLAGS_1 0x6ffffffb /* ELF dynamic flags */
-#define DT_VERDEF 0x6ffffffc /* Versions defined by file */
-#define DT_VERDEFNUM 0x6ffffffd /* Number of versions defined by file */
-#define DT_VERNEED 0x6ffffffe /* Versions needed by file */
-#define DT_VERNEEDNUM 0x6fffffff /* Number of versions needed by file */
-#define DT_HIOS 0x6fffffff
-#define DT_LOPROC 0x70000000 /* Processor-specific range */
-#define DT_HIPROC 0x7fffffff
-
-/* Flag values for DT_FLAGS_1 (incomplete) */
-#define DF_1_INITFIRST 0x00000020 /* Object's init/fini take priority */
-
-/*
- * Auxiliary Vectors
- */
-typedef struct {
- Elf32_Word a_type; /* 32-bit id */
- Elf32_Word a_v; /* 32-bit id */
-} Aux32Info;
-
-typedef struct {
- Elf64_Half a_type; /* 32-bit id */
- Elf64_Xword a_v; /* 64-bit id */
-} Aux64Info;
-
-/* a_type */
-#define AT_NULL 0 /* Marks end of array */
-#define AT_IGNORE 1 /* No meaning, a_un is undefined */
-#define AT_EXECFD 2 /* Open file descriptor of object file */
-#define AT_PHDR 3 /* &phdr[0] */
-#define AT_PHENT 4 /* sizeof(phdr[0]) */
-#define AT_PHNUM 5 /* # phdr entries */
-#define AT_PAGESZ 6 /* PAGESIZE */
-#define AT_BASE 7 /* Interpreter base addr */
-#define AT_FLAGS 8 /* Processor flags */
-#define AT_ENTRY 9 /* Entry address of executable */
-#define AT_DCACHEBSIZE 10 /* Data cache block size */
-#define AT_ICACHEBSIZE 11 /* Instruction cache block size */
-#define AT_UCACHEBSIZE 12 /* Unified cache block size */
-
- /* Vendor specific */
-#define AT_MIPS_NOTELF 10 /* XXX a_val != 0 -> MIPS XCOFF executable */
-
-#define AT_EUID 2000 /* euid (solaris compatible numbers) */
-#define AT_RUID 2001 /* ruid (solaris compatible numbers) */
-#define AT_EGID 2002 /* egid (solaris compatible numbers) */
-#define AT_RGID 2003 /* rgid (solaris compatible numbers) */
-
- /* Solaris kernel specific */
-#define AT_SUN_LDELF 2004 /* dynamic linker's ELF header */
-#define AT_SUN_LDSHDR 2005 /* dynamic linker's section header */
-#define AT_SUN_LDNAME 2006 /* dynamic linker's name */
-#define AT_SUN_LPGSIZE 2007 /* large pagesize */
-
- /* Other information */
-#define AT_SUN_PLATFORM 2008 /* sysinfo(SI_PLATFORM) */
-#define AT_SUN_HWCAP 2009 /* process hardware capabilities */
-#define AT_SUN_IFLUSH 2010 /* do we need to flush the instruction cache? */
-#define AT_SUN_CPU 2011 /* CPU name */
- /* ibcs2 emulation band aid */
-#define AT_SUN_EMUL_ENTRY 2012 /* coff entry point */
-#define AT_SUN_EMUL_EXECFD 2013 /* coff file descriptor */
- /* Executable's fully resolved name */
-#define AT_SUN_EXECNAME 2014
-
-/*
- * Note Headers
- */
-typedef struct {
- Elf32_Word n_namesz;
- Elf32_Word n_descsz;
- Elf32_Word n_type;
-} Elf32_Nhdr;
-
-typedef struct {
- Elf64_Half n_namesz;
- Elf64_Half n_descsz;
- Elf64_Half n_type;
-} Elf64_Nhdr;
-
-#define ELF_NOTE_TYPE_ABI_TAG 1
-
-/* GNU-specific note name and description sizes */
-#define ELF_NOTE_ABI_NAMESZ 4
-#define ELF_NOTE_ABI_DESCSZ 16
-/* GNU-specific note name */
-#define ELF_NOTE_ABI_NAME "GNU\0"
-
-/* GNU-specific OS/version value stuff */
-#define ELF_NOTE_ABI_OS_LINUX 0
-#define ELF_NOTE_ABI_OS_HURD 1
-#define ELF_NOTE_ABI_OS_SOLARIS 2
-
-/* NetBSD-specific note type: Emulation name. desc is emul name string. */
-#define ELF_NOTE_TYPE_NETBSD_TAG 1
-/* NetBSD-specific note name and description sizes */
-#define ELF_NOTE_NETBSD_NAMESZ 7
-#define ELF_NOTE_NETBSD_DESCSZ 4
-/* NetBSD-specific note name */
-#define ELF_NOTE_NETBSD_NAME "NetBSD\0\0"
-
-/* NetBSD-specific note type: Checksum. There should be 1 NOTE per PT_LOAD
- section. desc is a tuple of <phnum>(16),<chk-type>(16),<chk-value>. */
-#define ELF_NOTE_TYPE_CHECKSUM_TAG 2
-#define ELF_NOTE_CHECKSUM_CRC32 1
-#define ELF_NOTE_CHECKSUM_MD5 2
-#define ELF_NOTE_CHECKSUM_SHA1 3
-#define ELF_NOTE_CHECKSUM_SHA256 4
-
-/* NetBSD-specific note type: PaX. There should be 1 NOTE per executable.
- section. desc is a 32 bit bitmask */
-#define ELF_NOTE_TYPE_PAX_TAG 3
-#define ELF_NOTE_PAX_MPROTECT 0x01 /* Force enable Mprotect */
-#define ELF_NOTE_PAX_NOMPROTECT 0x02 /* Force disable Mprotect */
-#define ELF_NOTE_PAX_GUARD 0x04 /* Force enable Segvguard */
-#define ELF_NOTE_PAX_NOGUARD 0x08 /* Force disable Servguard */
-#define ELF_NOTE_PAX_ASLR 0x10 /* Force enable ASLR */
-#define ELF_NOTE_PAX_NOASLR 0x20 /* Force disable ASLR */
-#define ELF_NOTE_PAX_NAMESZ 4
-#define ELF_NOTE_PAX_NAME "PaX\0"
-#define ELF_NOTE_PAX_DESCSZ 4
-
-/*
- * NetBSD-specific core file information.
- *
- * NetBSD ELF core files use notes to provide information about
- * the process's state. The note name is "NetBSD-CORE" for
- * information that is global to the process, and "NetBSD-CORE@nn",
- * where "nn" is the lwpid of the LWP that the information belongs
- * to (such as register state).
- *
- * We use the following note identifiers:
- *
- * ELF_NOTE_NETBSD_CORE_PROCINFO
- * Note is a "netbsd_elfcore_procinfo" structure.
- *
- * We also use ptrace(2) request numbers (the ones that exist in
- * machine-dependent space) to identify register info notes. The
- * info in such notes is in the same format that ptrace(2) would
- * export that information.
- *
- * Please try to keep the members of this structure nicely aligned,
- * and if you add elements, add them to the end and bump the version.
- */
-
-#define ELF_NOTE_NETBSD_CORE_NAME "NetBSD-CORE"
-
-#define ELF_NOTE_NETBSD_CORE_PROCINFO 1
-
-#define NETBSD_ELFCORE_PROCINFO_VERSION 1
-
-struct netbsd_elfcore_procinfo {
- /* Version 1 fields start here. */
- uint32_t cpi_version; /* netbsd_elfcore_procinfo version */
- uint32_t cpi_cpisize; /* sizeof(netbsd_elfcore_procinfo) */
- uint32_t cpi_signo; /* killing signal */
- uint32_t cpi_sigcode; /* signal code */
- uint32_t cpi_sigpend[4]; /* pending signals */
- uint32_t cpi_sigmask[4]; /* blocked signals */
- uint32_t cpi_sigignore[4];/* blocked signals */
- uint32_t cpi_sigcatch[4];/* blocked signals */
- int32_t cpi_pid; /* process ID */
- int32_t cpi_ppid; /* parent process ID */
- int32_t cpi_pgrp; /* process group ID */
- int32_t cpi_sid; /* session ID */
- uint32_t cpi_ruid; /* real user ID */
- uint32_t cpi_euid; /* effective user ID */
- uint32_t cpi_svuid; /* saved user ID */
- uint32_t cpi_rgid; /* real group ID */
- uint32_t cpi_egid; /* effective group ID */
- uint32_t cpi_svgid; /* saved group ID */
- uint32_t cpi_nlwps; /* number of LWPs */
- int8_t cpi_name[32]; /* copy of p->p_comm */
- /* Add version 2 fields below here. */
- int32_t cpi_siglwp; /* LWP target of killing signal */
-};
-
-#if defined(ELFSIZE) && (ELFSIZE == 32)
-#define Elf_Ehdr Elf32_Ehdr
-#define Elf_Phdr Elf32_Phdr
-#define Elf_Shdr Elf32_Shdr
-#define Elf_Sym Elf32_Sym
-#define Elf_Rel Elf32_Rel
-#define Elf_Rela Elf32_Rela
-#define Elf_Dyn Elf32_Dyn
-#define Elf_Word Elf32_Word
-#define Elf_Sword Elf32_Sword
-#define Elf_Addr Elf32_Addr
-#define Elf_Off Elf32_Off
-#define Elf_SOff Elf32_SOff
-#define Elf_Nhdr Elf32_Nhdr
-
-#define ELF_R_SYM ELF32_R_SYM
-#define ELF_R_TYPE ELF32_R_TYPE
-#define ELFCLASS ELFCLASS32
-
-#define AuxInfo Aux32Info
-#elif defined(ELFSIZE) && (ELFSIZE == 64)
-#define Elf_Ehdr Elf64_Ehdr
-#define Elf_Phdr Elf64_Phdr
-#define Elf_Shdr Elf64_Shdr
-#define Elf_Sym Elf64_Sym
-#define Elf_Rel Elf64_Rel
-#define Elf_Rela Elf64_Rela
-#define Elf_Dyn Elf64_Dyn
-#define Elf_Word Elf64_Word
-#define Elf_Sword Elf64_Sword
-#define Elf_Addr Elf64_Addr
-#define Elf_Off Elf64_Off
-#define Elf_SOff Elf64_SOff
-#define Elf_Nhdr Elf64_Nhdr
-
-#define ELF_R_SYM ELF64_R_SYM
-#define ELF_R_TYPE ELF64_R_TYPE
-#define ELFCLASS ELFCLASS64
-
-#define AuxInfo Aux64Info
-#endif
-
-#define ELF32_ST_BIND(info) ELF_ST_BIND(info)
-#define ELF32_ST_TYPE(info) ELF_ST_TYPE(info)
-#define ELF32_ST_INFO(bind,type) ELF_ST_INFO(bind,type)
-#define ELF32_ST_VISIBILITY(other) ELF_ST_VISIBILITY(other)
-
-#define ELF64_ST_BIND(info) ELF_ST_BIND(info)
-#define ELF64_ST_TYPE(info) ELF_ST_TYPE(info)
-#define ELF64_ST_INFO(bind,type) ELF_ST_INFO(bind,type)
-#define ELF64_ST_VISIBILITY(other) ELF_ST_VISIBILITY(other)
-
-typedef struct {
- Elf32_Half si_boundto; /* direct bindings - symbol bound to */
- Elf32_Half si_flags; /* per symbol flags */
-} Elf32_Syminfo;
-
-typedef struct {
- Elf64_Half si_boundto; /* direct bindings - symbol bound to */
- Elf64_Half si_flags; /* per symbol flags */
-} Elf64_Syminfo;
-
-#define SYMINFO_FLG_DIRECT 0x0001 /* symbol ref has direct association
- to object containing definition */
-#define SYMINFO_FLG_PASSTHRU 0x0002 /* ignored - see SYMINFO_FLG_FILTER */
-#define SYMINFO_FLG_COPY 0x0004 /* symbol is a copy-reloc */
-#define SYMINFO_FLG_LAZYLOAD 0x0008 /* object containing defn should be
- lazily-loaded */
-#define SYMINFO_FLG_DIRECTBIND 0x0010 /* ref should be bound directly to
- object containing definition */
-#define SYMINFO_FLG_NOEXTDIRECT 0x0020 /* don't let an external reference
- directly bind to this symbol */
-#define SYMINFO_FLG_FILTER 0x0002 /* symbol ref is associated to a */
-#define SYMINFO_FLG_AUXILIARY 0x0040 /* standard or auxiliary filter */
-
-#define SYMINFO_BT_SELF 0xffff /* symbol bound to self */
-#define SYMINFO_BT_PARENT 0xfffe /* symbol bound to parent */
-#define SYMINFO_BT_NONE 0xfffd /* no special symbol binding */
-#define SYMINFO_BT_EXTERN 0xfffc /* symbol defined as external */
-#define SYMINFO_BT_LOWRESERVE 0xff00 /* beginning of reserved entries */
-
-#define SYMINFO_NONE 0 /* Syminfo version */
-#define SYMINFO_CURRENT 1
-#define SYMINFO_NUM 2
-
-/*
- * These constants are used for Elf32_Verdef struct's version number.
- */
-#define VER_DEF_NONE 0
-#define VER_DEF_CURRENT 1
-
-/*
- * These constants are used for Elf32_Verdef struct's vd_flags.
- */
-#define VER_FLG_BASE 0x1
-#define VER_FLG_WEAK 0x2
-
-/*
- * These are used in an Elf32_Versym field.
- */
-#define VER_NDX_LOCAL 0
-#define VER_NDX_GLOBAL 1
-
-/*
- * These constants are used for Elf32_Verneed struct's version number.
- */
-#define VER_NEED_NONE 0
-#define VER_NEED_CURRENT 1
-
-/*
- * GNU Extension hidding symb
- */
-#define VERSYM_HIDDEN 0x8000
-#define VERSYM_VERSION 0x7fff
-
-#define ELF_VER_CHR '@'
-
-/*
- * These are current size independent.
- */
-
-typedef struct {
- Elf32_Half vd_version; /* version number of structure */
- Elf32_Half vd_flags; /* flags (VER_FLG_*) */
- Elf32_Half vd_ndx; /* version index */
- Elf32_Half vd_cnt; /* number of verdaux entries */
- Elf32_Word vd_hash; /* hash of name */
- Elf32_Word vd_aux; /* offset to verdaux entries */
- Elf32_Word vd_next; /* offset to next verdef */
-} Elf32_Verdef;
-typedef Elf32_Verdef Elf64_Verdef;
-
-typedef struct {
- Elf32_Word vda_name; /* string table offset of name */
- Elf32_Word vda_next; /* offset to verdaux */
-} Elf32_Verdaux;
-typedef Elf32_Verdaux Elf64_Verdaux;
-
-typedef struct {
- Elf32_Half vn_version; /* version number of structure */
- Elf32_Half vn_cnt; /* number of vernaux entries */
- Elf32_Word vn_file; /* string table offset of library name*/
- Elf32_Word vn_aux; /* offset to vernaux entries */
- Elf32_Word vn_next; /* offset to next verneed */
-} Elf32_Verneed;
-typedef Elf32_Verneed Elf64_Verneed;
-
-typedef struct {
- Elf32_Word vna_hash; /* Hash of dependency name */
- Elf32_Half vna_flags; /* flags (VER_FLG_*) */
- Elf32_Half vna_other; /* unused */
- Elf32_Word vna_name; /* string table offset to version name*/
- Elf32_Word vna_next; /* offset to next vernaux */
-} Elf32_Vernaux;
-typedef Elf32_Vernaux Elf64_Vernaux;
-
-typedef struct {
- Elf32_Half vs_vers;
-} Elf32_Versym;
-typedef Elf32_Versym Elf64_Versym;
-
-#ifdef _KERNEL
-
-#define ELF_AUX_ENTRIES 14 /* Max size of aux array passed to loader */
-#define ELF32_NO_ADDR (~(Elf32_Addr)0) /* Indicates addr. not yet filled in */
-#define ELF32_LINK_ADDR ((Elf32_Addr)-2) /* advises to use link address */
-#define ELF64_NO_ADDR (~(Elf64_Addr)0) /* Indicates addr. not yet filled in */
-#define ELF64_LINK_ADDR ((Elf64_Addr)-2) /* advises to use link address */
-
-#if defined(ELFSIZE) && (ELFSIZE == 64)
-#define ELF_NO_ADDR ELF64_NO_ADDR
-#define ELF_LINK_ADDR ELF64_LINK_ADDR
-#elif defined(ELFSIZE) && (ELFSIZE == 32)
-#define ELF_NO_ADDR ELF32_NO_ADDR
-#define ELF_LINK_ADDR ELF32_LINK_ADDR
-#endif
-
-#ifndef ELF32_EHDR_FLAGS_OK
-#define ELF32_EHDR_FLAGS_OK(eh) 1
-#endif
-
-#ifndef ELF64_EHDR_FLAGS_OK
-#define ELF64_EHDR_FLAGS_OK(eh) 1
-#endif
-
-#if defined(ELFSIZE) && (ELFSIZE == 64)
-#define ELF_EHDR_FLAGS_OK(eh) ELF64_EHDR_FLAGS_OK(eh)
-#else
-#define ELF_EHDR_FLAGS_OK(eh) ELF32_EHDR_FLAGS_OK(eh)
-#endif
-
-#if defined(ELFSIZE)
-struct elf_args {
- Elf_Addr arg_entry; /* program entry point */
- Elf_Addr arg_interp; /* Interpreter load address */
- Elf_Addr arg_phaddr; /* program header address */
- Elf_Addr arg_phentsize; /* Size of program header */
- Elf_Addr arg_phnum; /* Number of program headers */
-};
-#endif
-
-#ifdef _KERNEL_OPT
-#include "opt_execfmt.h"
-#endif
-
-#ifdef EXEC_ELF32
-int exec_elf32_makecmds(struct lwp *, struct exec_package *);
-int elf32_copyargs(struct lwp *, struct exec_package *,
- struct ps_strings *, char **, void *);
-
-int coredump_elf32(struct lwp *, void *);
-int coredump_writenote_elf32(struct proc *, void *, Elf32_Nhdr *,
- const char *, void *);
-
-int elf32_check_header(Elf32_Ehdr *, int);
-#endif
-
-#ifdef EXEC_ELF64
-int exec_elf64_makecmds(struct lwp *, struct exec_package *);
-int elf64_copyargs(struct lwp *, struct exec_package *,
- struct ps_strings *, char **, void *);
-
-int coredump_elf64(struct lwp *, void *);
-int coredump_writenote_elf64(struct proc *, void *, Elf64_Nhdr *,
- const char *, void *);
-
-int elf64_check_header(Elf64_Ehdr *, int);
-#endif
-
-#endif /* _KERNEL */
-
-#endif /* !_SYS_EXEC_ELF_H_ */
diff --git a/cpukit/libdl/preinstall.am b/cpukit/libdl/preinstall.am
deleted file mode 100644
index dba6cc4d81..0000000000
--- a/cpukit/libdl/preinstall.am
+++ /dev/null
@@ -1,7 +0,0 @@
-## Automatically generated by ampolish3 - Do not edit
-
-if AMPOLISH3
-$(srcdir)/preinstall.am: Makefile.am
- $(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
-endif
-
diff --git a/cpukit/libdl/rap-shell.h b/cpukit/libdl/rap-shell.h
deleted file mode 100644
index c2d9112c0f..0000000000
--- a/cpukit/libdl/rap-shell.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * COPYRIGHT (c) 2013 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#if !defined(_RAP_SHELL_H_)
-#define _RAP_SHELL_H_
-
-int shell_rap (int argc, char* argv[]);
-
-#endif
diff --git a/cpukit/libdl/rap.h b/cpukit/libdl/rap.h
deleted file mode 100644
index 0b86553e2b..0000000000
--- a/cpukit/libdl/rap.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * COPYRIGHT (c) 2013 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-/**
- * @file
- *
- * @ingroup rtems_rap
- *
- * @brief RTEMS Application Loader
- *
- * This is the RTEMS Application loader for files in the RAP format.
- */
-
-#if !defined (_RAP_H_)
-#define _RAP_H_
-
-#include <rtems.h>
-#include <rtems/chain.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @defgroup rtems_rap RTEMS Application Loader
- *
- * The module implements an application loader for files in the RAP format. The
- * RAP format is:
- *
- * <header>
- * <compressed container>
- *
- * The compressed container is a stream of ELF relocatable object files.
- *
- * TBD.
- */
-
-/**
- * The module iterator handle.
- */
-typedef bool (*rtems_rap_iterator_t) (void* handle);
-
-/**
- * Load an application.
- *
- * @param name The name of the application file.
- * @return bool True if the module loads else an error.
- */
-bool rtems_rap_load (const char* name, int mode, int argc, const char* argv[]);
-
-/**
- * Unload an application.
- *
- * @param obj The application descriptor.
- * @retval true The application file has been unloaded.
- * @retval false The application could not be unloaded.
- */
-bool rtems_rap_unload (const char* name);
-
-/**
- * Find the application handle given a file name.
- *
- * @param name The name of the application file. It can be absolute or
- * relative. Relative names can the basename with an extension.
- * @retval NULL No application file with that name found.
- * @return void* The application descriptor.
- */
-void* rtems_rap_find (const char* name);
-
-/**
- * Run an iterator over the modules calling the iterator function.
- *
- * @param iterator The iterator function.
- * @retval true The iterator function returned did not return false.
- * @retval false The iterator function returned false..
- */
-bool rtems_rap_iterate (rtems_rap_iterator_t iterator);
-
-/**
- * Return the name of the module given a handle.
- *
- * @param handle The module handle.
- * @return const char* The name of the module if the handle is valid else it
- * is NULL.
- */
-const char* rtems_rap_name (void* handle);
-
-/**
- * Return the DL handle used to load the module given the RAP handle.
- *
- * @param handle The module handle.
- * @return void* The DL handle returned by the dlopen call.
- */
-void* rtems_rap_dl_handle (void* handle);
-
-/**
- * Get the last error message clearing it. This call is not thread safe is
- * multiple threads are loading object files at the same time. This call
- * follows the model provided by the dlopen family of calls.
- *
- * @param message Pointer to a buffer to copy the message into.
- * @param max_message The maximum message that can be copied.
- * @return int The last error number.
- */
-int rtems_rap_get_error (char* message, size_t max_message);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/cpukit/libdl/rtl-allocator.h b/cpukit/libdl/rtl-allocator.h
deleted file mode 100644
index e8044ee1e8..0000000000
--- a/cpukit/libdl/rtl-allocator.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * COPYRIGHT (c) 2012 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-/**
- * @file
- *
- * @ingroup rtems_rtl
- *
- * @brief RTEMS Run-Time Linker Allocator
- */
-
-#if !defined (_RTEMS_RTL_ALLOCATOR_H_)
-#define _RTEMS_RTL_ALLOCATOR_H_
-
-#include <stdbool.h>
-
-#include "rtl-indirect-ptr.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * Define the types of allocation the loader requires.
- *
- * @note It is best to use the object tag for general memory allocation and to
- * leave the tags with specific access properties to the module data
- */
-enum rtems_rtl_alloc_tags_e {
- RTEMS_RTL_ALLOC_OBJECT, /**< A generic memory object. */
- RTEMS_RTL_ALLOC_SYMBOL, /**< Memory used for symbols. */
- RTEMS_RTL_ALLOC_EXTERNAL, /**< Memory used for external symbols. */
- RTEMS_RTL_ALLOC_READ, /**< The memory is read only. */
- RTEMS_RTL_ALLOC_READ_WRITE, /**< The memory is read and write. */
- RTEMS_RTL_ALLOC_READ_EXEC /**< The memory is read and executable. */
-};
-
-/**
- * The allocator tag type.
- */
-typedef enum rtems_rtl_alloc_tags_e rtems_rtl_alloc_tag_t;
-
-/**
- * The number of tags.
- */
-#define RTEMS_RTL_ALLOC_TAGS ((size_t) (RTEMS_RTL_ALLOC_READ_EXEC + 1))
-
-/**
- * Allocator handler handles all RTL allocations. It can be hooked and
- * overridded for customised allocation schemes or memory maps.
- *
- * @param allocation If true the request is to allocate memory else free.
- * @param tag The type of allocation request.
- * @param address Pointer to the memory address. If an allocation the value is
- * unspecific on entry and the allocated address or NULL on
- * exit. The NULL value means the allocation failed. If a delete
- * or free request the memory address is the block to free. A
- * free request of NULL is silently ignored.
- * @param size The size of the allocation if an allocation request and
- * not used if deleting or freeing a previous allocation.
- */
-typedef void (*rtems_rtl_allocator_t)(bool allocate,
- rtems_rtl_alloc_tag_t tag,
- void** address,
- size_t size);
-
-/**
- * The allocator data.
- */
-struct rtems_rtl_alloc_data_s {
- /**< The memory allocator handler. */
- rtems_rtl_allocator_t allocator;
- /**< The indirect pointer chains. */
- rtems_chain_control indirects[RTEMS_RTL_ALLOC_TAGS];
-};
-
-typedef struct rtems_rtl_alloc_data_s rtems_rtl_alloc_data_t;
-
-/**
- * Initialise the allocate data.
- *
- * @param data The data to initialise.
- */
-void rtems_rtl_alloc_initialise (rtems_rtl_alloc_data_t* data);
-
-/**
- * The Runtime Loader allocator new allocates new memory and optionally clear
- * the memory if requested.
- *
- * @param tag The type of allocation request.
- * @param size The size of the allocation.
- * @param zero If true the memory is cleared.
- * @return void* The memory address or NULL is not memory available.
- */
-void* rtems_rtl_alloc_new (rtems_rtl_alloc_tag_t tag, size_t size, bool zero);
-
-/**
- * The Runtime Loader allocator delete deletes allocated memory.
- *
- * @param tag The type of allocation request.
- * @param address The memory address to delete. A NULL is ignored.
- */
-void rtems_rtl_alloc_del (rtems_rtl_alloc_tag_t tag, void* address);
-
-/**
- * Hook the Runtime Loader allocatior. A handler can call the previous handler
- * in the chain to use it for specific tags. The default handler uses the
- * system heap. Do not unhook your handler if memory it allocates has not been
- * returned.
- *
- * @param handler The handler to use as the allocator.
- * @return rtems_rtl_alloc_handler_t The previous handler.
- */
-rtems_rtl_allocator_t rtems_rtl_alloc_hook (rtems_rtl_allocator_t handler);
-
-/**
- * Allocate memory to an indirect handle.
- *
- * @param tag The type of allocation request.
- * @param handle The handle to allocate the memory to.
- * @param size The size of the allocation.
- */
-void rtems_rtl_alloc_indirect_new (rtems_rtl_alloc_tag_t tag,
- rtems_rtl_ptr_t* handle,
- size_t size);
-
-/**
- * Free memory from an indirect handle.
- *
- * @param tag The type of allocation request.
- * @param handle The handle to free the memory from.
- */
-void rtems_rtl_alloc_indirect_del (rtems_rtl_alloc_tag_t tag,
- rtems_rtl_ptr_t* handle);
-
-/**
- * Allocate the memory for a module given the size of the text, const, data and
- * bss sections. If any part of the allocation fails the no memory is
- * allocated.
- *
- * @param text_base Pointer to the text base pointer.
- * @param text_size The size of the read/exec section.
- * @param const_base Pointer to the const base pointer.
- * @param const_size The size of the read only section.
- * @param eh_base Pointer to the eh base pointer.
- * @param eh_size The size of the eh section.
- * @param data_base Pointer to the data base pointer.
- * @param data_size The size of the read/write secton.
- * @param bss_base Pointer to the bss base pointer.
- * @param bss_size The size of the read/write.
- * @retval true The memory has been allocated.
- * @retval false The allocation of memory has failed.
- */
-bool rtems_rtl_alloc_module_new (void** text_base, size_t text_size,
- void** const_base, size_t const_size,
- void** eh_base, size_t eh_size,
- void** data_base, size_t data_size,
- void** bss_base, size_t bss_size);
-
-/**
- * Free the memory allocated to a module.
- *
- * @param text_base Pointer to the text base pointer.
- * @param const_base Pointer to the const base pointer.
- * @param eh_base Pointer to the eh base pointer.
- * @param data_base Pointer to the data base pointer.
- * @param bss_base Pointer to the bss base pointer.
- */
-void rtems_rtl_alloc_module_del (void** text_base, void** const_base,
- void** eh_base, void** data_base,
- void** bss_base);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/cpukit/libdl/rtl-fwd.h b/cpukit/libdl/rtl-fwd.h
deleted file mode 100644
index 4641ad5d5e..0000000000
--- a/cpukit/libdl/rtl-fwd.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * COPYRIGHT (c) 2012 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-/**
- * @file
- *
- * @ingroup rtems_rtl
- *
- * @brief RTEMS Run-Time Linker ELF Headers
- */
-
-#if !defined (_RTEMS_RTL_FWD_H_)
-#define _RTEMS_RTL_FWD_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * The forward declaration of the obj structure.
- */
-struct rtems_rtl_data_s;
-typedef struct rtems_rtl_data_s rtems_rtl_data_t;
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/cpukit/libdl/rtl-indirect-ptr.h b/cpukit/libdl/rtl-indirect-ptr.h
deleted file mode 100644
index 81503a3b45..0000000000
--- a/cpukit/libdl/rtl-indirect-ptr.h
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * COPYRIGHT (c) 2012 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-/**
- * @file
- *
- * @ingroup rtems_rtl
- *
- * @brief RTEMS Run-Time Linker Indirect Pointer Management allows memory
- * compaction in the allocator.
- */
-
-#if !defined (_RTEMS_RTL_INDIRECT_PTR_H_)
-#define _RTEMS_RTL_INDIRECT_PTR_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include <rtems/chain.h>
-
-/**
- * The RTL Indirect pointer.
- */
-struct rtems_rtl_ptr_s {
- rtems_chain_node node; /**< Indirect pointers are held on lists. */
- void* pointer; /**< The actual pointer. */
-};
-
-typedef struct rtems_rtl_ptr_s rtems_rtl_ptr_t;
-
-/**
- * The RTL Indirect size and pointer.
- */
-struct rtems_rtl_sptr_s {
- rtems_rtl_ptr_t ptr; /**< The indirect pointer. */
- size_t size; /**< The size of the memory block. */
-};
-
-typedef struct rtems_rtl_sptr_s rtems_rtl_sptr_t;
-
-/**
- * A chain of indirect pointers for users to chain in applications.
- *
- * @note The chain the pointer is on is internal to the allocator and cannot be
- * used by applications.
- */
-struct rtems_rtl_ptr_chain_s {
- rtems_chain_node node; /**< Chain of indirect pointers. */
- rtems_rtl_ptr_t ptr; /**< The indirect pointer. */
-};
-
-typedef struct rtems_rtl_ptr_chain_s rtems_rtl_ptr_chain_t;
-
-/**
- * A chain of indirect sized pointers for users to chain in applications.
- *
- * @note The chain the pointer is on is internal to the allocator and cannot be
- * used by applications.
- */
-struct rtems_rtl_sptr_chain_s {
- rtems_chain_node node; /**< Chain of indirect pointers. */
- rtems_rtl_sptr_t ptr; /**< The indirect pointer. */
-};
-
-typedef struct rtems_rtl_sptr_chain_s rtems_rtl_sptr_chain_t;
-
-/**
- * Get the pointer given an indirect handle.
- *
- * @param handle The handle the pointer is returned from.
- * @return void* The pointer held in the handle.
- */
-static inline void* rtems_rtl_ptr_get (rtems_rtl_ptr_t* handle)
-{
- return handle->pointer;
-}
-
-/**
- * Set the pointer given an indirect handle and the pointer.
- *
- * @param handle The handle the pointer is returned from.
- * @param pointer The pointer to set in the handle.
- */
-static inline void rtems_rtl_ptr_set (rtems_rtl_ptr_t* handle, void* pointer)
-{
- handle->pointer = pointer;
-}
-
-/**
- * Initialise the indirect handle.
- *
- * @param handle The handle to initialise.
- */
-static inline void rtems_rtl_ptr_init (rtems_rtl_ptr_t* handle)
-{
- rtems_chain_set_off_chain (&handle->node);
- handle->pointer = NULL;
-}
-
-/**
- * Is the indirect handle NULL ?
- *
- * @param handle The handle to test.
- * @return bool True if the pointer is NULL.
- */
-static inline bool rtems_rtl_ptr_null (rtems_rtl_ptr_t* handle)
-{
- return handle->pointer == NULL;
-}
-
-/**
- * Move the allocated pointer from one handle to another. The source handle is
- * cleared and removed from the list of handles.
- *
- * @param src The source handle to move the pointer from.
- * @param dst The destination handle to receive the pointer.
- */
-static inline void rtems_rtl_ptr_move (rtems_rtl_ptr_t* dst, rtems_rtl_ptr_t* src)
-{
- /*
- * We do not know which chain the src handle resides on so insert the dst
- * handle after the src handle then extract the src handle.
- */
- rtems_chain_insert_unprotected (&src->node, &dst->node);
- rtems_chain_extract_unprotected (&src->node);
- dst->pointer = src->pointer;
- rtems_rtl_ptr_init (src);
-}
-
-/**
- * Return the pointer as the type provided.
- *
- * @param _h The handle.
- * @param _t The type.
- */
-#define rtems_rtl_ptr_type_get(_h, _t) ((_t*) rtems_rtl_ptr_get (_h))
-
-/**
- * Get the pointer given an indirect handle.
- *
- * @param handle The handle the pointer is returned from.
- * @return void* The pointer held in the handle.
- */
-static inline void* rtems_rtl_sptr_get (rtems_rtl_sptr_t* handle)
-{
- return rtems_rtl_ptr_get (&handle->ptr);
-}
-
-/**
- * Set the pointer given an indirect handle and the pointer.
- *
- * @param handle The handle the pointer is returned from.
- * @param pointer The pointer to set in the handle.
- */
-static inline void rtems_rtl_sptr_set (rtems_rtl_sptr_t* handle, void* pointer)
-{
- rtems_rtl_ptr_set (&handle->ptr, pointer);
-}
-
-/**
- * Initialise the indirect handle.
- *
- * @param handle The handle to initialise.
- */
-static inline void rtems_rtl_sptr_init (rtems_rtl_sptr_t* handle)
-{
- rtems_rtl_ptr_init (&handle->ptr);
- handle->size = 0;
-}
-
-/**
- * Is the indirect handle NULL ?
- *
- * @param handle The handle to test.
- * @return bool True if the pointer is NULL.
- */
-static inline bool rtems_rtl_sptr_null (rtems_rtl_sptr_t* handle)
-{
- return rtems_rtl_ptr_null (&handle->ptr);
-}
-
-/**
- * Move the allocated pointer from one handle to another. The source handle is
- * cleared and removed from the list of handles.
- *
- * @param src The source handle to move the pointer from.
- * @param dst The destination handle to receive the pointer.
- */
-static inline void rtems_rtl_sptr_move (rtems_rtl_sptr_t* dst, rtems_rtl_sptr_t* src)
-{
- rtems_rtl_ptr_move (&dst->ptr, &src->ptr);
- dst->size = src->size;
- src->size = 0;
-}
-
-/**
- * Get the size.
- *
- * @param handle The handle to get the size from.
- * @return size_t The size_t.
- */
-static inline size_t rtems_rtl_sptr_get_size (rtems_rtl_sptr_t* handle)
-{
- return handle->size;
-}
-
-/**
- * Set the size.
- *
- * @param handle The handle to set the size.
- * @param size The size to set..
- */
-static inline void rtems_rtl_sptr_set_size (rtems_rtl_sptr_t* handle, size_t size)
-{
- handle->size = size;
-}
-
-/**
- * Return the pointer as the type provided.
- *
- * @param _h The handle.
- * @param _t The type.
- */
-#define rtems_rtl_sptr_type_get(_h, _t) ((_t*) rtems_rtl_sptr_get (_h))
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/cpukit/libdl/rtl-obj-cache.h b/cpukit/libdl/rtl-obj-cache.h
deleted file mode 100644
index 8eacdd316b..0000000000
--- a/cpukit/libdl/rtl-obj-cache.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * COPYRIGHT (c) 2012 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-/**
- * @file
- *
- * @ingroup rtems_rtl
- *
- * @brief RTEMS Run-Time Linker Object File cache buffers a section of the
- * object file in a buffer to localise read performance.
- *
- * This is a simple object file cache that holds a buffer of data from the
- * offset in the file the read is requested from. Writes are not supported.
- *
- * The cache holds the file descriptor, the offset into the file and the amount
- * of valid data in the cache. If the file is ever modified the user of the
- * cache to responsible for flushing the cache. For example the cache should be
- * flused if the file is closed.
- *
- * The cache can return by reference or by value. By reference allow access to
- * the cache buffer. Do not modify the cache's data. By value will copy the
- * requested data into the user supplied buffer.
- *
- * The read by reference call allows you to probe the file's data. For example
- * a string in an object file can be an unknown length. You can request a read
- * up to the cache's size by reference. The code will attempt to have this data
- * in the buffer. If there is not enough data in the file the length will be
- * modifed to reflect this.
- *
- * You can have more than one cache for a single file all looking at different
- * parts of the file.
- */
-
-#if !defined (_RTEMS_RTL_OBJ_CACHE_H_)
-#define _RTEMS_RTL_OBJ_CACHE_H_
-
-#include <fcntl.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdlib.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * The buffer cache.
- */
-typedef struct rtems_rtl_obj_cache_s
-{
- int fd; /**< The file descriptor of the data in the cache. */
- size_t file_size; /**< The size of the file. */
- off_t offset; /**< The base offset of the buffer. */
- size_t size; /**< The size of the cache. */
- size_t level; /**< The amount of data in the cache. A file can be
- * smaller than the cache file. */
- uint8_t* buffer; /**< The buffer */
-} rtems_rtl_obj_cache_t;
-
-/**
- * Open a cache allocating a single buffer of the size passed. The default
- * state of the cache is flushed. No already open checks are made.
- *
- * @param cache The cache to initialise.
- * @param size The size of the cache.
- * @retval true The cache is open.
- * @retval false The cache is not open. The RTL error is set.
- */
-bool rtems_rtl_obj_cache_open (rtems_rtl_obj_cache_t* cache, size_t size);
-
-/**
- * Close a cache.
- *
- * @param cache The cache to close.
- */
-void rtems_rtl_obj_cache_close (rtems_rtl_obj_cache_t* cache);
-
-/**
- * Flush the cache. Any further read will read the data from the file.
- *
- * @param cache The cache to flush.
- */
-void rtems_rtl_obj_cache_flush (rtems_rtl_obj_cache_t* cache);
-
-/**
- * Read data by reference. The length contains the amount of data that should
- * be available in the cache and referenced by the buffer handle. It must be
- * less than or equal to the size of the cache. This call will return the
- * amount of data that is available. It can be less than you ask if the offset
- * and size is past the end of the file.
- *
- * @param cache The cache to reference data from.
- * @param fd The file descriptor. Must be an open file.
- * @param offset The offset in the file to reference the data to.
- * @param buffer The location to reference the data from.
- * @param length The length of data to reference. Can be modified to a
- * lesser value and true is still returned so check it.
- * @retval true The data referenced is in the cache.
- * @retval false The read failed and the RTL error has been set.
- */
-bool rtems_rtl_obj_cache_read (rtems_rtl_obj_cache_t* cache,
- int fd,
- off_t offset,
- void** buffer,
- size_t* length);
-
-/**
- * Read data by value. The data is copied to the user supplied buffer.
- *
- * @param cache The cache to read the data from.
- * @param fd The file descriptor. Must be an open file.
- * @param offset The offset in the file to read the data from.
- * @param buffer The location the data is written into.
- * @param length The length of data to read.
- * @retval true The data has been read from the cache.
- * @retval false The read failed and the RTL error has been set.
- */
-bool rtems_rtl_obj_cache_read_byval (rtems_rtl_obj_cache_t* cache,
- int fd,
- off_t offset,
- void* buffer,
- size_t length);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/cpukit/libdl/rtl-obj-comp.h b/cpukit/libdl/rtl-obj-comp.h
deleted file mode 100644
index 34bfa6ffa1..0000000000
--- a/cpukit/libdl/rtl-obj-comp.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * COPYRIGHT (c) 2012 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-/**
- * @file
- *
- * @ingroup rtems_rtl
- *
- * @brief RTEMS Run-Time Linker Object File Compression manages a
- * compressed stream of data.
- *
- * This is a simple interface to the object file cache to stream data from
- * from a compressed object file. There is no ability to seek with the
- * data from a compressed file. The module exists to allocate the output
- * buffer when the loader starts and use the cache buffers will have been
- * allocated.
- */
-
-#if !defined (_RTEMS_RTL_OBJ_COMP_H_)
-#define _RTEMS_RTL_OBJ_COMP_H_
-
-#include <rtems/rtl/rtl-obj-cache.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * The amount of input data read at a time from the file.
- */
-#define RTEMS_RTL_DECOMP_INPUT_SIZE (256)
-
-/**
- * The types of supported compression.
- */
-#define RTEMS_RTL_COMP_NONE (0)
-#define RTEMS_RTL_COMP_LZ77 (1)
-
-/**
- * The compressed file.
- */
-typedef struct rtems_rtl_obj_cpmp_s
-{
- rtems_rtl_obj_cache_t* cache; /**< The cache provides the input
- * buffer. */
- int fd; /**< The file descriptor. */
- int compression; /**< The type of compression. */
- off_t offset; /**< The base offset of the buffer. */
- size_t size; /**< The size of the output buffer. */
- size_t level; /**< The amount of data in the buffer. */
- uint8_t* buffer; /**< The buffer */
- uint32_t read; /**< The amount of data read. */
-} rtems_rtl_obj_comp_t;
-
-/**
- * Return the input level.
- */
-static inline uint32_t rtems_rtl_obj_comp_input (rtems_rtl_obj_comp_t* comp)
-{
- return comp->read;
-}
-
-/**
- * Open a compressor allocating the output buffer.
- *
- * @param comp The compressor to initialise.
- * @param size The size of the compressor's output buffer.
- * @retval true The compressor is open.
- * @retval false The compressor is not open. The RTL error is set.
- */
-bool rtems_rtl_obj_comp_open (rtems_rtl_obj_comp_t* comp,
- size_t size);
-
-/**
- * Close a compressor.
- *
- * @param comp The compressor to close.
- */
-void rtems_rtl_obj_comp_close (rtems_rtl_obj_comp_t* comp);
-
-/**
- * Set the cache and offset in the file the compressed stream starts.
- *
- * @param comp The compressor to set the offset in.
- * @param cache The cache to read the file in by.
- * @param fd The file descriptor. Must be an open file.
- * @param compression The type of compression being streamed.
- * @param offset The offset in the file the compressed stream starts.
- */
-void rtems_rtl_obj_comp_set (rtems_rtl_obj_comp_t* comp,
- rtems_rtl_obj_cache_t* cache,
- int fd,
- int compression,
- off_t offset);
-
-/**
- * Read decompressed data. The length contains the amount of data that should
- * be available in the cache and referenced by the buffer handle. It must be
- * less than or equal to the size of the cache. This call will return the
- * amount of data that is available. It can be less than you ask if the offset
- * and size is past the end of the file.
- *
- * @param comp The compressor to read data from.
- * @param buffer The buffer the output is written too.
- * @param length The length of data to read. Can be modified to a
- * lesser value and true is still returned so check it.
- * @retval true The data referenced is in the cache.
- * @retval false The read failed and the RTL error has been set.
- */
-bool rtems_rtl_obj_comp_read (rtems_rtl_obj_comp_t* comp,
- void* buffer,
- size_t length);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/cpukit/libdl/rtl-obj-fwd.h b/cpukit/libdl/rtl-obj-fwd.h
deleted file mode 100644
index 2c53244316..0000000000
--- a/cpukit/libdl/rtl-obj-fwd.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * COPYRIGHT (c) 2012 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-/**
- * @file
- *
- * @ingroup rtems_rtl
- *
- * @brief RTEMS Run-Time Linker ELF Headers
- */
-
-#if !defined (_RTEMS_RTL_OBJ_FWD_H_)
-#define _RTEMS_RTL_OBJ_FWD_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * The forward declaration of the obj section structure.
- */
-struct rtems_rtl_obj_sect_s;
-typedef struct rtems_rtl_obj_sect_s rtems_rtl_obj_sect_t;
-
-/**
- * The forward declaration of the obj structure.
- */
-struct rtems_rtl_obj_s;
-typedef struct rtems_rtl_obj_s rtems_rtl_obj_t;
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/cpukit/libdl/rtl-obj.h b/cpukit/libdl/rtl-obj.h
deleted file mode 100644
index 6a35a72822..0000000000
--- a/cpukit/libdl/rtl-obj.h
+++ /dev/null
@@ -1,635 +0,0 @@
-/*
- * COPYRIGHT (c) 2012 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-/**
- * @file
- *
- * @ingroup rtems_rtl
- *
- * @brief RTEMS Run-Time Linker Object Support.
- */
-
-#if !defined (_RTEMS_RTL_OBJ_H_)
-#define _RTEMS_RTL_OBJ_H_
-
-#include <rtems.h>
-#include <rtems/chain.h>
-#include <rtems/rtl/rtl-sym.h>
-#include <rtems/rtl/rtl-unresolved.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * Loader format flags.
- */
-#define RTEMS_RTL_FMT_ELF (1 << 0)
-#define RTEMS_RTL_FMT_COMP (1 << 1)
-#define RTEMS_RTL_FMT_PRIVATE (1 << 16)
-
-/**
- * Loader format definition.
- */
-typedef struct rtems_rtl_loader_format_s
-{
- /**
- * The format label. This can be used to determine and manage
- * specific formats.
- */
- const char* label;
-
- /**
- * The format flags.
- */
- uint32_t flags;
-} rtems_rtl_loader_format_t;
-
-/**
- * The type of the format loader check handler. This handler checks the format
- * and if it is detected as suitable it returns true.
- */
-typedef bool (*rtems_rtl_loader_check) (rtems_rtl_obj_t* obj, int fd);
-
-/**
- * The type of the format loader load handler. This handler loads the specific
- * format.
- */
-typedef bool (*rtems_rtl_loader_load) (rtems_rtl_obj_t* obj, int fd);
-
-/**
- * The type of the format loader unload handler. This handler unloads the
- * specific format.
- */
-typedef bool (*rtems_rtl_loader_unload) (rtems_rtl_obj_t* obj);
-
-/**
- * The type of the format loader signature handler. This handler checks the
- * format signature.
- */
-typedef rtems_rtl_loader_format_t* (*rtems_rtl_loader_sig) (void);
-
-/**
- * Table for supported loadable formats.
- */
-typedef struct rtems_rtl_loader_table_s
-{
- rtems_rtl_loader_check check; /**< The check handler. */
- rtems_rtl_loader_load load; /**< The loader. */
- rtems_rtl_loader_unload unload; /**< The unloader. */
- rtems_rtl_loader_sig signature; /**< The loader's signature. */
-} rtems_rtl_loader_table_t;
-
-/**
- * Flags for the various section types.
- */
-#define RTEMS_RTL_OBJ_SECT_TEXT (1 << 0) /**< Section holds program text. */
-#define RTEMS_RTL_OBJ_SECT_CONST (1 << 1) /**< Section holds program text. */
-#define RTEMS_RTL_OBJ_SECT_DATA (1 << 2) /**< Section holds program data. */
-#define RTEMS_RTL_OBJ_SECT_BSS (1 << 3) /**< Section holds program bss. */
-#define RTEMS_RTL_OBJ_SECT_EH (1 << 4) /**< Section holds exception data. */
-#define RTEMS_RTL_OBJ_SECT_REL (1 << 5) /**< Section holds relocation records. */
-#define RTEMS_RTL_OBJ_SECT_RELA (1 << 6) /**< Section holds relocation addend
- * records. */
-#define RTEMS_RTL_OBJ_SECT_SYM (1 << 7) /**< Section holds symbols. */
-#define RTEMS_RTL_OBJ_SECT_STR (1 << 8) /**< Section holds strings. */
-#define RTEMS_RTL_OBJ_SECT_ALLOC (1 << 9) /**< Section allocates runtime memory. */
-#define RTEMS_RTL_OBJ_SECT_LOAD (1 << 10) /**< Section is loaded from object file. */
-#define RTEMS_RTL_OBJ_SECT_WRITE (1 << 11) /**< Section is writable, ie data. */
-#define RTEMS_RTL_OBJ_SECT_EXEC (1 << 12) /**< Section is executable. */
-#define RTEMS_RTL_OBJ_SECT_ZERO (1 << 13) /**< Section is preset to zero. */
-#define RTEMS_RTL_OBJ_SECT_LINK (1 << 14) /**< Section is link-ordered. */
-#define RTEMS_RTL_OBJ_SECT_CTOR (1 << 15) /**< Section contains constructors. */
-#define RTEMS_RTL_OBJ_SECT_DTOR (1 << 16) /**< Section contains destructors. */
-#define RTEMS_RTL_OBJ_SECT_LOCD (1 << 17) /**< Section has been located. */
-
-/**
- * Section types mask.
- */
-#define RTEMS_RTL_OBJ_SECT_TYPES (RTEMS_RTL_OBJ_SECT_TEXT | \
- RTEMS_RTL_OBJ_SECT_CONST | \
- RTEMS_RTL_OBJ_SECT_DATA | \
- RTEMS_RTL_OBJ_SECT_BSS | \
- RTEMS_RTL_OBJ_SECT_EH)
-
-/**
- * An object file is made up of sections and the can be more than
- * one of a specific type of sections. All sections and grouped
- * together in memory.
- */
-struct rtems_rtl_obj_sect_s
-{
- rtems_chain_node node; /**< The node's link in the chain. */
- int section; /**< The section number. */
- const char* name; /**< The section's name. */
- size_t size; /**< The size of the section in memory. */
- off_t offset; /**< Offset into the object file. Relative to
- * the start of the object file. */
- uint32_t alignment; /**< Alignment of this section. */
- int link; /**< Section link field. */
- int info; /**< Secfion info field. */
- uint32_t flags; /**< The section's flags. */
- void* base; /**< The base address of the section in
- * memory. */
- int load_order; /**< Order we load sections. */
-};
-
-/**
- * Object file descriptor flags.
- */
-#define RTEMS_RTL_OBJ_LOCKED (1 << 0) /**< Lock the object file so it cannot
- * be unloaded. */
-#define RTEMS_RTL_OBJ_UNRESOLVED (1 << 1) /**< The object file has unresolved
- * external symbols. */
-
-/**
- * RTL Object. There is one for each object module loaded plus one for the base
- * kernel image.
- */
-struct rtems_rtl_obj_s
-{
- rtems_chain_node link; /**< The node's link in the chain. */
- uint32_t flags; /**< The status of the object file. */
- uint32_t users; /**< References to the object file. */
- int format; /**< The format of the object file. */
- const char* fname; /**< The file name for the object. */
- const char* oname; /**< The object file name. Can be
- * relative. */
- const char* aname; /**< The archive name containing the
- * object. NULL means the object is not
- * in a lib */
- off_t ooffset; /**< The object offset in the archive. */
- size_t fsize; /**< Size of the object file. */
- rtems_chain_control sections; /**< The sections of interest in the
- * object file. */
- rtems_rtl_obj_sym_t* local_table; /**< Local symbol table. */
- size_t local_syms; /**< Local symbol count. */
- size_t local_size; /**< Local symbol memory usage. */
- rtems_rtl_obj_sym_t* global_table; /**< Global symbol table. */
- size_t global_syms; /**< Global symbol count. */
- size_t global_size; /**< Global symbol memory usage. */
- uint32_t unresolved; /**< The number of unresolved relocations. */
- void* text_base; /**< The base address of the text section
- * in memory. */
- size_t text_size; /**< The size of the text section. */
- void* const_base; /**< The base address of the const section
- * in memory. */
- void* eh_base; /**< The base address of the eh section
- * in memory. */
- size_t eh_size; /**< The size of the eh section. */
- void* data_base; /**< The base address of the data section
- * in memory. */
- void* bss_base; /**< The base address of the bss section
- * in memory. */
- size_t bss_size; /**< The size of the bss section. */
- size_t exec_size; /**< The amount of executable memory
- * allocated */
- void* entry; /**< The entry point of the module. */
- uint32_t checksum; /**< The checksum of the text sections. A
- * zero means do not checksum. */
- uint32_t* sec_num; /**< The sec nums of each obj. */
- uint32_t obj_num; /**< The count of elf files in an rtl obj. */
- struct link_map* linkmap; /**< For GDB. */
- void* loader; /**< The file details specific to a loader. */
-};
-
-/**
- * A section handler is called once for each section that needs to be
- * processed by this handler.
- *
- * @param obj The object file's descriptor the section belongs too.
- * @param fd The file descriptor of the object file beling loaded.
- * @param sect The section the handler is being invoked to handle.
- * @param data A user supplied data variable.
- * @retval true The operation was successful.
- * @retval false The operation failed and the RTL has been set.
- */
-typedef bool (*rtems_rtl_obj_sect_handler_t)(rtems_rtl_obj_t* obj,
- int fd,
- rtems_rtl_obj_sect_t* sect,
- void* data);
-
-/**
- * Get the file name.
- *
- * @param obj The object file.
- * @return const char* The string.
- */
-static inline const char* rtems_rtl_obj_fname (const rtems_rtl_obj_t* obj)
-{
- return obj->fname;
-}
-
-/**
- * Is the file name valid ?
- *
- * @param obj The object file.
- * @return bool There is a file name
- */
-static inline bool rtems_rtl_obj_fname_valid (const rtems_rtl_obj_t* obj)
-{
- return obj->fname;
-}
-
-/**
- * Get the object name.
- *
- * @param obj The object file.
- * @return const char* The string.
- */
-static inline const char* rtems_rtl_obj_oname (const rtems_rtl_obj_t* obj)
-{
- return obj->oname;
-}
-
-/**
- * Is the object name valid ?
- *
- * @param obj The object file.
- * @return bool There is an object name
- */
-static inline bool rtems_rtl_obj_oname_valid (const rtems_rtl_obj_t* obj)
-{
- return obj->oname;
-}
-
-/**
- * Get the archive name.
- *
- * @param obj The object file.
- * @return const char* The string.
- */
-static inline const char* rtems_rtl_obj_aname (const rtems_rtl_obj_t* obj)
-{
- return obj->aname;
-}
-
-/**
- * Is the archive name valid ?
- *
- * @param obj The object file.
- * @return bool There is an archive name
- */
-static inline bool rtems_rtl_obj_aname_valid (const rtems_rtl_obj_t* obj)
-{
- return obj->aname;
-}
-
-/**
- * Is the address inside the text section?
- *
- * @param obj The object file.
- * @return bool There is an archive name
- */
-static inline bool rtems_rtl_obj_text_inside (const rtems_rtl_obj_t* obj,
- const void* address)
-{
- return
- (address >= obj->text_base) &&
- (address < (obj->text_base + obj->text_size));
-}
-
-/**
- * Allocate an object structure on the heap.
- *
- * @retval NULL No memory for the object.
- */
-rtems_rtl_obj_t* rtems_rtl_obj_alloc (void);
-
-/**
- * Free the object structure and related resources.
- *
- * @param obj The object file's descriptor to free.
- * @retval false The object has dependences.
- * @retval true The object has been freed.
- */
-bool rtems_rtl_obj_free (rtems_rtl_obj_t* obj);
-
-/**
- * Does the object file have unresolved external references ? If it does the
- * results of executing code is unpredictable.
- *
- * @param obj The object file's descriptor.
- * @retval true The object file has unresolved externals.
- * @retval false The object file has all external references resolved.
- */
-bool rtems_rtl_obj_unresolved (rtems_rtl_obj_t* obj);
-
-/**
- * Parses a filename and returns newly allocated strings with the archive name,
- * object name, and the object's offset
- *
- * @param name The filename of the object
- * @param aname Address of a string pointer that holds the archive name
- * @param oname Address of a string pointer that holds the object name
- * @param ooffset Address of an int that holds the object offset
- * @retval true The parsing was successful
- * @retval false The parsing was unsuccessful
- */
-bool rtems_rtl_parse_name (const char* name,
- const char** aname,
- const char** oname,
- off_t* ooffset);
-
-/**
- * Check of the name matches the object file's object name.
- *
- * @param obj The object file's descriptor.
- * @param name The name to match.
- */
-bool rtems_rtl_match_name (rtems_rtl_obj_t* obj, const char* name);
-
-/**
- * Find an object file on disk that matches the name. The object descriptor is
- * fill in with the various parts of a name. A name can have archive, object
- * file and offset components. The search path in the RTL is searched.
- *
- * @param obj The object file's descriptor.
- * @param name The name to locate on disk.
- * @retval true The file has been found.
- * @retval false The file could not be located. The RTL error has been set.
- */
-bool rtems_rtl_obj_find_file (rtems_rtl_obj_t* obj, const char* name);
-
-/**
- * Add a section to the object descriptor.
- *
- * @param obj The object file's descriptor.
- * @param section The section's index number.
- * @param name The name of the section.
- * @param size The size of the section in memory.
- * @param offset The offset of the section in the object file.
- * @param alignment The alignment of the section in memory.
- * @param link The section's link field (from the ELF format).
- * @param info The section's info field (from the ELF format).
- * @param flags The section's flags.
- * @retval true The section has been added.
- * @retval false The section has not been added. See the RTL error.
- */
-bool rtems_rtl_obj_add_section (rtems_rtl_obj_t* obj,
- int section,
- const char* name,
- size_t size,
- off_t offset,
- uint32_t alignment,
- int link,
- int info,
- uint32_t flags);
-
-/**
- * Erase the object file descriptor's sections.
- *
- * @param obj The object file's descriptor.
- */
-void rtems_rtl_obj_erase_sections (rtems_rtl_obj_t* obj);
-
-/**
- * Find the section given a name.
- *
- * @param obj The object file's descriptor.
- * @param name The name of the section to find.
- * @retval NULL The section was not found.
- * @return rtems_rtl_obj_sect_t* The named section.
- */
-rtems_rtl_obj_sect_t* rtems_rtl_obj_find_section (const rtems_rtl_obj_t* obj,
- const char* name);
-
-/**
- * Find a section given a section's index number.
- *
- * @param obj The object file's descriptor.
- * @param index The section's index to find.
- * @retval NULL The section was not found.
- * @return rtems_rtl_obj_sect_t* The found section.
- */
-rtems_rtl_obj_sect_t* rtems_rtl_obj_find_section_by_index (const rtems_rtl_obj_t* obj,
- int index);
-
-/**
- * The text section size. Only use once all the sections has been added. It
- * includes alignments between sections that are part of the object's text
- * area. The consts sections are included in this section.
- *
- * @param obj The object file's descriptor.
- * @return size_t The size of the text area of the object file.
- */
-size_t rtems_rtl_obj_text_size (const rtems_rtl_obj_t* obj);
-
-/**
- * The text section alignment for the object file. Only use once all the
- * sections has been added. The section alignment is the alignment of the first
- * text type section loaded the text section.
- *
- * You can assume the alignment is a positive integral power of 2 if not 0 or
- * 1. If 0 or 1 then there is no alignment.
- *
- * @param obj The object file's descriptor.
- * @return uint32_t The alignment. Can be 0 or 1 for not aligned or the alignment.
- */
-uint32_t rtems_rtl_obj_text_alignment (const rtems_rtl_obj_t* obj);
-
-/**
- * The const section size. Only use once all the sections has been added. It
- * includes alignments between sections that are part of the object's const
- * area. The consts sections are included in this section.
- *
- * @param obj The object file's descriptor.
- * @return size_t The size of the const area of the object file.
- */
-size_t rtems_rtl_obj_const_size (const rtems_rtl_obj_t* obj);
-
-/**
- * The const section alignment for the object file. Only use once all the
- * sections has been added. The section alignment is the alignment of the first
- * const type section loaded the const section.
- *
- * You can assume the alignment is a positive integral power of 2 if not 0 or
- * 1. If 0 or 1 then there is no alignment.
- *
- * @param obj The object file's descriptor.
- * @return uint32_t The alignment. Can be 0 or 1 for not aligned or the alignment.
- */
-uint32_t rtems_rtl_obj_const_alignment (const rtems_rtl_obj_t* obj);
-
-/**
- * The eh section size. Only use once all the sections has been added. It
- * includes alignments between sections that are part of the object's bss area.
- *
- * @param obj The object file's descriptor.
- * @return size_t The size of the bss area of the object file.
- */
-size_t rtems_rtl_obj_eh_size (const rtems_rtl_obj_t* obj);
-
-/**
- * The eh section alignment for the object file. Only use once all the sections
- * has been added. The section alignment is the alignment of the first bss type
- * section loaded the bss section.
- *
- * You can assume the alignment is a positive integral power of 2 if not 0 or
- * 1. If 0 or 1 then there is no alignment.
- *
- * @param obj The object file's descriptor.
- * @return uint32_t The alignment. Can be 0 or 1 for not aligned or the alignment.
- */
-uint32_t rtems_rtl_obj_eh_alignment (const rtems_rtl_obj_t* obj);
-
-/**
- * The data section size. Only use once all the sections has been added. It
- * includes alignments between sections that are part of the object's data
- * area.
- *
- * @param obj The object file's descriptor.
- * @return size_t The size of the data area of the object file.
- */
-size_t rtems_rtl_obj_data_size (const rtems_rtl_obj_t* obj);
-
-/**
- * The data section alignment for the object file. Only use once all the
- * sections has been added. The section alignment is the alignment of the first
- * data type section loaded the data section.
- *
- * You can assume the alignment is a positive integral power of 2 if not 0 or
- * 1. If 0 or 1 then there is no alignment.
- *
- * @param obj The object file's descriptor.
- * @return uint32_t The alignment. Can be 0 or 1 for not aligned or the alignment.
- */
-uint32_t rtems_rtl_obj_data_alignment (const rtems_rtl_obj_t* obj);
-
-/**
- * The bss section size. Only use once all the sections has been added. It
- * includes alignments between sections that are part of the object's bss area.
- *
- * @param obj The object file's descriptor.
- * @return size_t The size of the bss area of the object file.
- */
-size_t rtems_rtl_obj_bss_size (const rtems_rtl_obj_t* obj);
-
-/**
- * The bss section alignment for the object file. Only use once all the
- * sections has been added. The section alignment is the alignment of the first
- * bss type section loaded the bss section.
- *
- * You can assume the alignment is a positive integral power of 2 if not 0 or
- * 1. If 0 or 1 then there is no alignment.
- *
- * @param obj The object file's descriptor.
- * @return uint32_t The alignment. Can be 0 or 1 for not aligned or the alignment.
- */
-uint32_t rtems_rtl_obj_bss_alignment (const rtems_rtl_obj_t* obj);
-
-/**
- * Relocate the object file. The object file's section are parsed for any
- * relocation type sections.
- *
- * @param obj The object file's descriptor.
- * @param fd The object file's file descriptor.
- * @param handler The object file's format specific relocation handler.
- * @param data User specific data handle.
- * @retval true The object file was relocated.
- * @retval false The relocation failed. The RTL error is set.
- */
-bool rtems_rtl_obj_relocate (rtems_rtl_obj_t* obj,
- int fd,
- rtems_rtl_obj_sect_handler_t handler,
- void* data);
-
-/**
- * Synchronize caches to make code visible to CPU(s)
- *
- * @param obj The object file's descriptor.
- */
-void rtems_rtl_obj_synchronize_cache (rtems_rtl_obj_t* obj);
-
-/**
- * Relocate an object file's unresolved reference.
- *
- * @param rec The unresolved relocation record.
- * @param sym The unresolved relocation's referenced symbol.
- * @retval true The object file record was relocated.
- * @retval false The relocation failed. The RTL error is set.
- */
-bool rtems_rtl_obj_relocate_unresolved (rtems_rtl_unresolv_reloc_t* reloc,
- rtems_rtl_obj_sym_t* sym);
-
-/**
- * Load the symbols from the object file. Only the exported or public symbols
- * are read into memory and held in the global symbol table.
- *
- * @param obj The object file's descriptor.
- * @param fd The object file's file descriptor.
- * @param handler The object file's format specific symbol handler.
- * @param data User specific data handle.
- * @retval true The object file's symbol where loaded.
- * @retval false The symbol loading failed. The RTL error is set.
- */
-bool rtems_rtl_obj_load_symbols (rtems_rtl_obj_t* obj,
- int fd,
- rtems_rtl_obj_sect_handler_t handler,
- void* data);
-
-/**
- * Load the sections that have been allocated memory in the target. The bss
- * type section does not load any data, it is set to 0. The text and data
- * sections read the detault data from the object file into the target memory.
- *
- * @param obj The object file's descriptor.
- * @param fd The object file's file descriptor.
- * @param handler The object file's format specific load handler.
- * @param data User specific data handle.
- * @retval true The object has been sucessfully loaded.
- * @retval false The load failed. The RTL error has been set.
- */
-bool rtems_rtl_obj_load_sections (rtems_rtl_obj_t* obj,
- int fd,
- rtems_rtl_obj_sect_handler_t handler,
- void* data);
-
-/**
- * Invoke the constructors the object has. Constructors are a table of pointers
- * to "void (*)(void);" where NULL pointers are skipped. The table's size is
- * taken from the section's size. The objet ELF specific code is responisble
- * for flagging which sections contain constructors.
- *
- * @param obj The object file's descriptor.
- */
-void rtems_rtl_obj_run_ctors (rtems_rtl_obj_t* obj);
-
-/**
- * Invoke the destructors the object has. Destructors are a table of pointers
- * to "void (*)(void);" where NULL pointers are skipped. The table's size is
- * taken from the section's size. The objet ELF specific code is responisble
- * for flagging which sections contain destructors.
- *
- * @param obj The object file's descriptor.
- */
-void rtems_rtl_obj_run_dtors (rtems_rtl_obj_t* obj);
-
-/**
- * Load the object file, reading all sections into memory, symbols and
- * performing any relocation fixups.
- *
- * @param obj The object file's descriptor.
- * @retval true The object file has been loaded.
- * @retval false The load failed. The RTL error has been set.
- */
-bool rtems_rtl_obj_load (rtems_rtl_obj_t* obj);
-
-/**
- * Unload the object file, erasing all symbols and releasing all memory.
- *
- * @param obj The object file's descriptor.
- * @retval true The object file has been unloaded.
- * @retval false The unload failed. The RTL error has been set.
- */
-bool rtems_rtl_obj_unload (rtems_rtl_obj_t* obj);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/cpukit/libdl/rtl-sym.h b/cpukit/libdl/rtl-sym.h
deleted file mode 100644
index fe00da89d7..0000000000
--- a/cpukit/libdl/rtl-sym.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * COPYRIGHT (c) 2012-2014 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-/**
- * @file
- *
- * @ingroup rtems_rtl
- *
- * @brief RTEMS Run-Time Linker Object File Symbol Table.
- */
-
-#if !defined (_RTEMS_RTL_SYM_H_)
-#define _RTEMS_RTL_SYM_H_
-
-#include <rtems.h>
-#include "rtl-obj-fwd.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * An object file symbol.
- */
-typedef struct rtems_rtl_obj_sym_s
-{
- rtems_chain_node node; /**< The node's link in the chain. */
- const char* name; /**< The symbol's name. */
- void* value; /**< The value of the symbol. */
- uint32_t data; /**< Format specific data. */
-} rtems_rtl_obj_sym_t;
-
-/**
- * Table of symbols stored in a hash table.
- */
-typedef struct rtems_rtl_symbols_s
-{
- rtems_chain_control* buckets;
- size_t nbuckets;
-} rtems_rtl_symbols_t;
-
-/**
- * Open a symbol table with the specified number of buckets.
- *
- * @param symbols The symbol table to open.
- * @param buckets The number of buckets in the hash table.
- * @retval true The symbol is open.
- * @retval false The symbol table could not created. The RTL
- * error has the error.
- */
-bool rtems_rtl_symbol_table_open (rtems_rtl_symbols_t* symbols,
- size_t buckets);
-
-/**
- * Close the table and erase the hash table.
- *
- * @param symbols Close the symbol table.
- */
-void rtems_rtl_symbol_table_close (rtems_rtl_symbols_t* symbols);
-
-/**
- * Add a table of exported symbols to the symbol table.
- *
- * The export table is a series of symbol records and each record has two
- * fields:
- *
- * 1. label
- * 2. address
- *
- * The 'label' is an ASCIIZ string of variable length. The address is of size
- * of an unsigned long for the target running the link editor. The byte order
- * is defined by the machine type because the table should be built by the
- * target compiler.
- *
- * The table is terminated with a nul string followed by the bytes 0xDE, 0xAD,
- * 0xBE, and 0xEF. This avoids alignments issues.
- *
- * @param obj The object table the symbols are for.
- * @param esyms The exported symbol table.
- * @param size The size of the table in bytes.
- */
-bool rtems_rtl_symbol_global_add (rtems_rtl_obj_t* obj,
- const unsigned char* esyms,
- unsigned int size);
-
-/**
- * Find a symbol given the symbol label in the global symbol table.
- *
- * @param name The name as an ASCIIZ string.
- * @retval NULL No symbol found.
- * @return rtems_rtl_obj_sym_t* Reference to the symbol.
- */
-rtems_rtl_obj_sym_t* rtems_rtl_symbol_global_find (const char* name);
-
-/**
- * Find a symbol given the symbol label in the local object file.
- *
- * @param obj The object file to search.
- * @param name The name as an ASCIIZ string.
- * @retval NULL No symbol found.
- * @return rtems_rtl_obj_sym_t* Reference to the symbol.
- */
-rtems_rtl_obj_sym_t* rtems_rtl_symbol_obj_find (rtems_rtl_obj_t* obj,
- const char* name);
-
-/**
- * Add the object file's symbols to the global table.
- *
- * @param obj The object file the symbols are to be added.
- */
-void rtems_rtl_symbol_obj_add (rtems_rtl_obj_t* obj);
-
-/**
- * Erase the object file's local symbols.
- *
- * @param obj The object file the local symbols are to be erased from.
- */
-void rtems_rtl_symbol_obj_erase_local (rtems_rtl_obj_t* obj);
-
-/**
- * Erase the object file's symbols.
- *
- * @param obj The object file the symbols are to be erased from.
- */
-void rtems_rtl_symbol_obj_erase (rtems_rtl_obj_t* obj);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/cpukit/libdl/rtl-trace.h b/cpukit/libdl/rtl-trace.h
deleted file mode 100644
index 4b93c8c91c..0000000000
--- a/cpukit/libdl/rtl-trace.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * COPYRIGHT (c) 2012-2014 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-/**
- * @file
- *
- * @ingroup rtems_rtl
- *
- * @brief RTEMS Run-Time Linker ELF Trace Support.
- */
-
-#if !defined (_RTEMS_RTL_TRACE_H_)
-#define _RTEMS_RTL_TRACE_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include <stdbool.h>
-#include <stdint.h>
-
-/**
- * Set to 1 to build trace support in to the RTL code.
- */
-#define RTEMS_RTL_TRACE 1
-
-/**
- * The type of the mask.
- */
-typedef uint32_t rtems_rtl_trace_mask;
-
-/**
- * List of tracing bits for the various parts of the link editor.
- */
-#define RTEMS_RTL_TRACE_DETAIL (1UL << 0)
-#define RTEMS_RTL_TRACE_WARNING (1UL << 1)
-#define RTEMS_RTL_TRACE_LOAD (1UL << 2)
-#define RTEMS_RTL_TRACE_UNLOAD (1UL << 3)
-#define RTEMS_RTL_TRACE_SECTION (1UL << 4)
-#define RTEMS_RTL_TRACE_SYMBOL (1UL << 5)
-#define RTEMS_RTL_TRACE_RELOC (1UL << 6)
-#define RTEMS_RTL_TRACE_GLOBAL_SYM (1UL << 7)
-#define RTEMS_RTL_TRACE_LOAD_SECT (1UL << 8)
-#define RTEMS_RTL_TRACE_ALLOCATOR (1UL << 9)
-#define RTEMS_RTL_TRACE_UNRESOLVED (1UL << 10)
-#define RTEMS_RTL_TRACE_CACHE (1UL << 11)
-#define RTEMS_RTL_TRACE_ALL (0xffffffffUL & ~(RTEMS_RTL_TRACE_CACHE))
-
-/**
- * Call to check if this part is bring traced. If RTEMS_RTL_TRACE is defined to
- * 0 the code is dead code elminiated when built with -Os, -O2, or higher.
- *
- * @param mask The part of the API to trace.
- * @retval true Tracing is active for the mask.
- * @retval false Do not trace.
- */
-#if RTEMS_RTL_TRACE
-bool rtems_rtl_trace (rtems_rtl_trace_mask mask);
-#else
-#define rtems_rtl_trace(_m) (0)
-#endif
-
-/**
- * Set the mask.
- *
- * @param mask The mask bits to set.
- * @return The previous mask.
- */
-#if RTEMS_RTL_TRACE
-rtems_rtl_trace_mask rtems_rtl_trace_set_mask (rtems_rtl_trace_mask mask);
-#else
-#define rtems_rtl_trace_set_mask(_m)
-#endif
-
-/**
- * Clear the mask.
- *
- * @param mask The mask bits to clear.
- * @return The previous mask.
- */
-#if RTEMS_RTL_TRACE
-rtems_rtl_trace_mask rtems_rtl_trace_clear_mask (rtems_rtl_trace_mask mask);
-#else
-#define rtems_rtl_trace_clear_mask(_m)
-#endif
-
-/**
- * Add shell trace shell command.
- */
-#if RTEMS_RTL_TRACE
-int rtems_rtl_trace_shell_command (int argc, char *argv[]);
-#endif
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/cpukit/libdl/rtl-unresolved.h b/cpukit/libdl/rtl-unresolved.h
deleted file mode 100644
index bd4ce2a215..0000000000
--- a/cpukit/libdl/rtl-unresolved.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * COPYRIGHT (c) 2012 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-/**
- * @file
- *
- * @ingroup rtems_rtl
- *
- * @brief RTEMS Run-Time Linker Object File Unresolved Relocations Table.
- *
- * The unresolved relocation table holds relocations in a loaded object file
- * which reference unresolved external symbols. The support is needed to allow
- * dependent object files to load. In the case of dependent object files one
- * will have unresolved externals until the dependent object file is also
- * loaded. There is no load order that resolves this.
- *
- * The unresolved relocation table is a single table used by all object files
- * with unresolved symbols. It made of blocks linked together where blocks are
- * allocated as requiered. The table is always maintained compacted. That is as
- * relocations are resolved and removed the table is compacted. The only
- * pointer in the table is the object file poniter. This is used to identify
- * which object the relocation belongs to. There are no linking or back
- * pointers in the unresolved relocations table. The table is scanned for each
- * object file's relocations. This is not fast but the table should be small
- * and if it happens to grow large you have other more pressing issues to
- * resolve in your application.
- *
- * The table holds two (2) types of records:
- *
- * # Symbol name strings.
- * # Relocations.
- *
- * The symbol name a relocation references is held in a specific symbol name
- * string record in the table the relocation record references. The record
- * counts the number of references and the string is removed from the table
- * when the reference count reaches 0. There can be many relocations
- * referencing the symbol. The strings are referenced by a single 16bit
- * unsigned integer which is the count of the string in the table.
- *
- * The section the relocation is for in the object is the section number. The
- * relocation data is series of machine word sized fields:
- *
- * # Offset in the section.
- * # Relocation info (format specific)
- * # Additional format specific data.
- */
-
-#if !defined (_RTEMS_RTL_UNRESOLVED_H_)
-#define _RTEMS_RTL_UNRESOLVED_H_
-
-#include <rtems.h>
-#include "rtl-obj-fwd.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * Hack to work around machine size. This needs to be cleaned up
- * to better support 64bit targets.
- */
-typedef uint32_t rtems_rtl_word_t;
-
-/**
- * The types of records in the blocks.
- */
-typedef enum rtems_rtl_unresolved_rtype_e
-{
- rtems_rtl_unresolved_empty = 0, /**< The records is empty. Must always be 0 */
- rtems_rtl_unresolved_name = 1, /**< The record is a name. */
- rtems_rtl_unresolved_reloc = 2 /**< The record is a relocation record. */
-} rtems_rtl_unresolved_rtype_t;
-
-/**
- * Unresolved externals symbol names. The names are reference counted and
- * separate from the relocation records because a number of records could
- * reference the same symbol name.
- */
-typedef struct rtems_rtl_unresolv_name_s
-{
- uint16_t refs; /**< The number of references to this name. */
- uint16_t length; /**< The length of this name. */
- const char name[12]; /**< The symbol name. */
-} rtems_rtl_unresolv_name_t;
-
-/**
- * Unresolved externals symbols require the relocation records to be held
- * and references.
- */
-typedef struct rtems_rtl_unresolv_reloc_s
-{
- rtems_rtl_obj_t* obj; /**< The relocation's object file. */
- uint16_t flags; /**< Format specific flags. */
- uint16_t name; /**< The symbol's name. */
- uint16_t sect; /**< The target section. */
- rtems_rtl_word_t rel[3]; /**< Relocation record. */
-} rtems_rtl_unresolv_reloc_t;
-
-/**
- * Unresolved externals records.
- */
-typedef struct rtems_rtl_unresolv_rec_s
-{
- rtems_rtl_unresolved_rtype_t type;
- union
- {
- rtems_rtl_unresolv_name_t name; /**< The name, or */
- rtems_rtl_unresolv_reloc_t reloc; /**< the relocation record. */
- } rec;
-} rtems_rtl_unresolv_rec_t;
-
-/**
- * Unresolved blocks.
- */
-typedef struct rtems_rtl_unresolv_block_s
-{
- rtems_chain_node link; /**< Blocks are chained. */
- uint32_t recs; /**< The number of records in the block. */
- rtems_rtl_unresolv_rec_t rec; /**< The records. More follow. */
-} rtems_rtl_unresolv_block_t;
-
-/**
- * Unresolved table holds the names and relocations.
- */
-typedef struct rtems_rtl_unresolved_s
-{
- uint32_t marker;
- size_t block_recs; /**< The records per blocks allocated. */
- rtems_chain_control blocks; /**< List of blocks. */
-} rtems_rtl_unresolved_t;
-
-/**
- * The iterator function used to iterate over the unresolved table.
- *
- * @param rec The current iterator.
- * @param data The user data.
- * @retval true The iterator has finished.
- * @retval false The iterator has not finished. Keep iterating.
- */
-typedef bool rtems_rtl_unresolved_iterator_t (rtems_rtl_unresolv_rec_t* rec,
- void* data);
-
-/**
- * Open an unresolved relocation table.
- *
- * @param unresolv The unresolved table to open.
- * @param block_records The number of records per block allocated.
- * @retval true The table is open.
- * @retval false The unresolved relocation table could not created. The RTL
- * error has the error.
- */
-bool rtems_rtl_unresolved_table_open (rtems_rtl_unresolved_t* unresolved,
- size_t block_records);
-
-/**
- * Close the table and erase the blocks.
- *
- * @param unreolved Close the unresolved table.
- */
-void rtems_rtl_unresolved_table_close (rtems_rtl_unresolved_t* unresolved);
-
-/**
- * Iterate over the table of unresolved entries.
- */
-bool rtems_rtl_unresolved_interate (rtems_rtl_unresolved_iterator_t iterator,
- void* data);
-
-/**
- * Add a relocation to the list of unresolved relocations.
- *
- * @param unresolved The unresolved symbol table.
- * @param obj The object table the symbols are for.
- * @param flags Format specific flags.
- * @param name The symbol name the relocation references.
- * @param sect The target section number the relocation references.
- * @param rel The format specific relocation data.
- * @retval true The relocation has been added.
- * @retval false The relocation could not be added.
- */
-bool rtems_rtl_unresolved_add (rtems_rtl_obj_t* obj,
- const uint16_t flags,
- const char* name,
- const uint16_t sect,
- const rtems_rtl_word_t* rel);
-
-/**
- * Resolve the unresolved symbols.
- */
-void rtems_rtl_unresolved_resolve (void);
-
-/**
- * Remove a relocation from the list of unresolved relocations.
- *
- * @param unresolved The unresolved symbol table.
- * @param obj The object table the symbols are for.
- * @param esyms The exported symbol table.
- * @param size The size of the table in bytes.
- */
-bool rtems_rtl_unresolved_remove (rtems_rtl_obj_t* obj,
- const char* name,
- const uint16_t sect,
- const rtems_rtl_word_t* rel);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/cpukit/libdl/rtl.h b/cpukit/libdl/rtl.h
deleted file mode 100644
index fe9a7df081..0000000000
--- a/cpukit/libdl/rtl.h
+++ /dev/null
@@ -1,321 +0,0 @@
-/*
- * COPYRIGHT (c) 2012 Chris Johns <chrisj@rtems.org>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-/**
- * @file
- *
- * @ingroup rtems_rtl
- *
- * @brief RTEMS Run-Time Linker
- *
- * This is the POSIX interface to run-time loading of code into RTEMS.
- */
-
-#if !defined (_RTEMS_RTL_H_)
-#define _RTEMS_RTL_H_
-
-#include <link.h>
-#include <rtems.h>
-#include <rtems/chain.h>
-
-#include <rtems/rtl/rtl-allocator.h>
-#include <rtems/rtl/rtl-fwd.h>
-#include <rtems/rtl/rtl-obj.h>
-#include <rtems/rtl/rtl-obj-cache.h>
-#include <rtems/rtl/rtl-obj-comp.h>
-#include <rtems/rtl/rtl-unresolved.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/**
- * @defgroup rtems_rtl RTEMS Runtime Link Editor
- *
- * The module implements a runtime link editor with the standard dlopen, and
- * dlclose family of functions.
- *
- * The runtime link editor is different to that found on Unix type systems. The
- * object modules are compiled for PIC or position indepentent code and
- * therefore require relocating when loaded.
- *
- * The object file format is currently ELF and object files can be separate
- * files or in an archive. Object files in an archive are referenced by
- * specifing 'archive:object' format. For example 'libfoo.a:bar.o'.
- */
-
-/**
- * Macros to glue two tokens.
- */
-#ifdef __STDC__
-#define RTL_XGLUE(a,b) a##b
-#else
-#define RTL_XGLUE(a,b) a/**/b
-#endif
-
-#define RTL_GLUE(a,b) RTL_XGLUE(a,b)
-
-/**
- * The number of buckets in the global symbol table.
- */
-#define RTEMS_RTL_SYMS_GLOBAL_BUCKETS (32)
-
-/**
- * The number of relocation record per block in the unresolved table.
- */
-#define RTEMS_RTL_UNRESOLVED_BLOCK_SIZE (64)
-
-/**
- * The global debugger interface variable.
- */
-extern struct r_debug _rtld_debug;
-
-/**
- * Debugger break function. Call when debugging to have it read the _rtld_debug
- * variable.
- */
-extern void _rtld_debug_state (void);
-
-/**
- * The type of constructor/destructor function.
- */
-typedef void (*rtems_rtl_cdtor_t)(void);
-
-/**
- * The global RTL data. This structure is allocated on the heap when the first
- * call to the RTL is made and never released.
- *
- * The global symbol table is a hash table held in this structure and the
- * actual symbols are part of the object's structure. If this is a problem we
- * could look at a hash table per object file.
- */
-struct rtems_rtl_data_s
-{
- rtems_id lock; /**< The RTL lock id */
- rtems_rtl_alloc_data_t allocator; /**< The allocator data. */
- rtems_chain_control objects; /**< List if loaded object files. */
- const char* paths; /**< Search paths for archives. */
- rtems_rtl_symbols_t globals; /**< Global symbol table. */
- rtems_rtl_unresolved_t unresolved; /**< Unresolved symbols. */
- rtems_rtl_obj_t* base; /**< Base object file. */
- rtems_rtl_obj_cache_t symbols; /**< Symbols object file cache. */
- rtems_rtl_obj_cache_t strings; /**< Strings object file cache. */
- rtems_rtl_obj_cache_t relocs; /**< Relocations object file cache. */
- rtems_rtl_obj_comp_t decomp; /**< The decompression compressor. */
- int last_errno; /**< Last error number. */
- char last_error[64]; /**< Last error string. */
-};
-
-/**
- * Get the RTL data with out locking. This call assumes the RTL is locked.
- *
- * @return rtems_rtl_data_t* The RTL data after being locked.
- * @retval NULL The RTL data is not initialised.
- */
-rtems_rtl_data_t* rtems_rtl_data (void);
-
-/**
- * Get the RTL global symbol table with out locking. This call assmes the RTL
- * is locked.
- *
- * @return rtems_rtl_symbols_t* The RTL global symbols after being locked.
- * @retval NULL The RTL data is not initialised.
- */
-rtems_rtl_symbols_t* rtems_rtl_global_symbols (void);
-
-/**
- * Get the RTL resolved table with out locking. This call assmes the RTL
- * is locked.
- *
- * @return rtems_rtl_unresolv_t* The RTL unresolved symbols and reloc records.
- * @retval NULL The RTL data is not initialised.
- */
-rtems_rtl_unresolved_t* rtems_rtl_unresolved (void);
-
-/**
- * Get the RTL symbols, strings, or relocations object file caches. This call
- * assmes the RTL is locked.
- *
- * @param symbols Pointer to the location to set the cache into. Returns NULL
- * is rtl is not initialised. If NULL is passed in no value set.
- * @param strings Pointer to the location to set the cache into. Returns NULL
- * is rtl is not initialised. If NULL is passed in no value set.
- * @param relocs Pointer to the location to set the cache into. Returns NULL
- * is rtl is not initialised. If NULL is passed in no value set.
- */
-void rtems_rtl_obj_caches (rtems_rtl_obj_cache_t** symbols,
- rtems_rtl_obj_cache_t** strings,
- rtems_rtl_obj_cache_t** relocs);
-
-/**
- * Flush all the object file caches.
- */
-void rtems_rtl_obj_caches_flush (void);
-
-/**
- * Get the RTL decompressor setting the cache and the offset in the file the
- * compressed stream starts. This call assmes the RTL is locked.
- *
- * @param decomp Pointer to the location to set the compressor into. Returns
- * NULL is rtl is not initialised.
- * @param cache The cache to read the file with. Saves needing an extrs buffer.
- * @param offset The offset in the file the compressed stream starts.
- */
-void rtems_rtl_obj_comp (rtems_rtl_obj_comp_t** decomp,
- rtems_rtl_obj_cache_t* cache,
- int fd,
- int compression,
- off_t offset);
-
-/**
- * Lock the Run-time Linker.
- *
- * @return rtems_rtl_data_t* The RTL data after being locked.
- * @retval NULL The RTL data could not be initialised or locked. Typically this
- * means the lock could not be created.
- */
-rtems_rtl_data_t* rtems_rtl_lock (void);
-
-/**
- * Unlock the Run-time Linker.
- *
- * @return True The RTL is unlocked.
- * @return False The RTL could not be unlocked. Not much you can do.
- */
-bool rtems_rtl_unlock (void);
-
-/**
- * Check a pointer is a valid object file descriptor returning the pointer as
- * that type.
- *
- * Assumes the RTL has been locked.
- *
- * @param handle Pointer to the object file to be validated.
- * @return rtl_obj* The object file descriptor. NULL is returned if invalid.
- */
-rtems_rtl_obj_t* rtems_rtl_check_handle (void* handle);
-
-/**
- * Find the object given a file name.
- *
- * @param name The name of the object file.
- * @retval NULL No object file with that name found.
- * @return rtems_rtl_obj_t* The object file descriptor.
- */
-rtems_rtl_obj_t* rtems_rtl_find_obj (const char* name);
-
-/**
- * Load an object file into memory relocating it. It will not be resolved
- * against other symbols in other object files or the base image.
- *
- * The name can be a file name for an object file or it can be encoded to
- * reference an archive of object modules (static library). This encoding is
- * specific to RTEMS and allows dependences to specify an archive without the
- * searching overhead normally incurred by linkers locating object files in an
- * archive. The file name format rules are:
- *
- * 1. Absolute file references a specific object file in the architecture
- * specific location on the file system.
- *
- * 2. Relative file references an object format file in the search path.
- *
- * 3. Absolute archive and file reference to a specific location in the file
- * system. The archive and file are encoded as 'archive:file [@@offset]'
- * where 'archive' is a valid file at the absolute path in the file system,
- * and 'file' is a contained in the archive, and optionally an offset to
- * the 'file' in the 'archive'. If no offset is provided the archive is
- * searched.
- *
- * 4. Relative archive and file in the search path. The encoding is the same
- * as described in item 3 of this list.
- *
- * Assumes the RTL has been locked.
- *
- * @param name The name of the object file.
- * @param mode The mode of the load as defined by the dlopen call.
- * @return rtl_obj* The object file descriptor. NULL is returned if the load fails.
- */
-rtems_rtl_obj_t* rtems_rtl_load_object (const char* name, int mode);
-
-/**
- * Unload an object file. This only happens when the user count is 0.
- *
- * Assumes the RTL has been locked.
- *
- * @param obj The object file descriptor.
- * @retval true The object file has been unloaded.
- * @retval false The object file could not be unloaded.
- */
-bool rtems_rtl_unload_object (rtems_rtl_obj_t* obj);
-
-/**
- * Run any constructor functions the object file may contain. This call
- * assumes the linker is unlocked.
- *
- * @param obj The object file.
- */
-void rtems_rtl_run_ctors (rtems_rtl_obj_t* obj);
-
-/**
- * Get the last error message clearing it. This operation locks the run time
- * linker and therefore keeps the RTL thread safe but this call is not thread
- * safe is multiple threads are loading object files at the same time. This
- * call is provided to map to the dlopen family of calls.
- *
- * @param message Pointer to a buffer to copy the message into.
- * @param max_message The maximum message that can be copied.
- * @return int The last error number.
- */
-int rtems_rtl_get_error (char* message, size_t max_message);
-
-/**
- * Append the path to the search path.
- *
- * @param path The path to append.
- * @retval false The path could not be appended.
- * @retval true The path was appended.
- */
-bool rtems_rtl_path_append (const char* path);
-
-/**
- * Prepend the path to the search path.
- *
- * @param path The path to prepend.
- * @retval false The path could not be prepended.
- * @retval true The path was prepended.
- */
-
-bool rtems_rtl_path_prepend (const char* path);
-
-/**
- * Add an exported symbol table to the global symbol table. This call is
- * normally used by an object file when loaded that contains a global symbol
- * table.
- *
- * @param esyms The exported symbol table.
- * @param count The size of the exported symbol table.
- */
-void rtems_rtl_base_sym_global_add (const unsigned char* esyms,
- unsigned int count);
-
-/**
- * Return the object file descriptor for the base image. The object file
- * descriptor returned is created when the run time linker is initialised.
- *
- * Assumes the RTL has been locked.
- *
- * @return rtl_obj* The object file descriptor for the base image. NULL is
- * returned if the load fails.
- */
-rtems_rtl_obj_t* rtems_rtl_baseimage (void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif