summaryrefslogtreecommitdiffstats
path: root/cpukit/libdl
diff options
context:
space:
mode:
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