summaryrefslogtreecommitdiff
path: root/rts/LinkerInternals.h
diff options
context:
space:
mode:
Diffstat (limited to 'rts/LinkerInternals.h')
-rw-r--r--rts/LinkerInternals.h118
1 files changed, 3 insertions, 115 deletions
diff --git a/rts/LinkerInternals.h b/rts/LinkerInternals.h
index 1d5288b310..3b6790b3e8 100644
--- a/rts/LinkerInternals.h
+++ b/rts/LinkerInternals.h
@@ -209,6 +209,7 @@ typedef struct _RtsSymbolInfo {
void exitLinker( void );
void freeObjectCode (ObjectCode *oc);
+SymbolAddr* loadSymbol(SymbolName *lbl, RtsSymbolInfo *pinfo);
void *mmapForLinker (size_t bytes, uint32_t flags, int fd, int offset);
@@ -220,122 +221,9 @@ void addSection (Section *s, SectionKind kind, SectionAlloc alloc,
void* start, StgWord size, StgWord mapped_offset,
void* mapped_start, StgWord mapped_size);
-#if defined(mingw32_HOST_OS)
+HsBool ghciLookupSymbolInfo(HashTable *table,
+ const SymbolName* key, RtsSymbolInfo **result);
-typedef unsigned char UChar;
-typedef unsigned short UInt16;
-typedef short Int16;
-typedef unsigned int UInt32;
-typedef int Int32;
-typedef unsigned long long int UInt64;
-
-
-typedef
-struct {
- UInt16 Machine;
- UInt16 NumberOfSections;
- UInt32 TimeDateStamp;
- UInt32 PointerToSymbolTable;
- UInt32 NumberOfSymbols;
- UInt16 SizeOfOptionalHeader;
- UInt16 Characteristics;
-}
-COFF_header;
-
-#define sizeof_COFF_header 20
-
-/* Section 7.1 PE Specification */
-typedef
-struct {
- UInt16 Sig1;
- UInt16 Sig2;
- UInt16 Version;
- UInt16 Machine;
- UInt32 TimeDateStamp;
- UInt32 SizeOfData;
- UInt16 Ordinal;
- UInt16 Type_NameType_Reserved;
-}
-COFF_import_header;
-
-#define sizeof_COFF_import_Header 20
-
-typedef
-struct {
- UChar Name[8];
- UInt32 VirtualSize;
- UInt32 VirtualAddress;
- UInt32 SizeOfRawData;
- UInt32 PointerToRawData;
- UInt32 PointerToRelocations;
- UInt32 PointerToLinenumbers;
- UInt16 NumberOfRelocations;
- UInt16 NumberOfLineNumbers;
- UInt32 Characteristics;
-}
-COFF_section;
-
-#define sizeof_COFF_section 40
-
-
-typedef
-struct {
- UChar Name[8];
- UInt32 Value;
- Int16 SectionNumber;
- UInt16 Type;
- UChar StorageClass;
- UChar NumberOfAuxSymbols;
-}
-COFF_symbol;
-
-#define sizeof_COFF_symbol 18
-
-
-typedef
-struct {
- UInt32 VirtualAddress;
- UInt32 SymbolTableIndex;
- UInt16 Type;
-}
-COFF_reloc;
-
-#define sizeof_COFF_reloc 10
-
-/* From PE spec doc, section 3.3.2 */
-/* Note use of MYIMAGE_* since IMAGE_* are already defined in
-windows.h -- for the same purpose, but I want to know what I'm
-getting, here. */
-#define MYIMAGE_FILE_RELOCS_STRIPPED 0x0001
-#define MYIMAGE_FILE_EXECUTABLE_IMAGE 0x0002
-#define MYIMAGE_FILE_DLL 0x2000
-#define MYIMAGE_FILE_SYSTEM 0x1000
-#define MYIMAGE_FILE_BYTES_REVERSED_HI 0x8000
-#define MYIMAGE_FILE_BYTES_REVERSED_LO 0x0080
-#define MYIMAGE_FILE_32BIT_MACHINE 0x0100
-
-/* From PE spec doc, section 5.4.2 and 5.4.4 */
-#define MYIMAGE_SYM_CLASS_EXTERNAL 2
-#define MYIMAGE_SYM_CLASS_STATIC 3
-#define MYIMAGE_SYM_UNDEFINED 0
-#define MYIMAGE_SYM_CLASS_SECTION 104
-#define MYIMAGE_SYM_CLASS_WEAK_EXTERNAL 105
-
-/* From PE spec doc, section 3.1 */
-#define MYIMAGE_SCN_CNT_CODE 0x00000020
-#define MYIMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040
-#define MYIMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080
-#define MYIMAGE_SCN_LNK_COMDAT 0x00001000
-#define MYIMAGE_SCN_LNK_NRELOC_OVFL 0x01000000
-#define MYIMAGE_SCN_LNK_REMOVE 0x00000800
-#define MYIMAGE_SCN_MEM_DISCARDABLE 0x02000000
-
-/* From PE spec doc, section 5.2.1 */
-#define MYIMAGE_REL_I386_DIR32 0x0006
-#define MYIMAGE_REL_I386_DIR32NB 0x0007
-#define MYIMAGE_REL_I386_REL32 0x0014
-
-#endif /* OBJFORMAT_PEi386 */
/*************************************************