fix haddock submodule pointer
[ghc-hetmet.git] / rts / LinkerInternals.h
index f081e62..d545c12 100644 (file)
@@ -50,7 +50,7 @@ typedef struct {
         long mtctr_r12;
         long bctr;
     } jumpIsland;
-#elif x86_64_TARGET_ARCH
+#elif x86_64_HOST_ARCH
     uint64_t    addr;
     uint8_t     jumpIsland[6];
 #endif
@@ -65,6 +65,11 @@ typedef struct _ObjectCode {
     int        fileSize;
     char*      formatName;            /* eg "ELF32", "DLL", "COFF", etc. */
 
+    /* If this object is a member of an archive, archiveMemberName is
+     * like "libarchive.a(object.o)". Otherwise it's NULL.
+     */
+    char*      archiveMemberName;
+
     /* An array containing ptrs to all the symbol names copied from
        this object into the global symbol hash table.  This is so that
        we know which parts of the latter mapping to nuke when this
@@ -85,9 +90,6 @@ typedef struct _ObjectCode {
        list. */
     Section* sections;
 
-    /* A private hash table for local symbols. */
-    HashTable* lochash;
-    
     /* Allow a chain of these things */
     struct _ObjectCode * next;
 
@@ -110,6 +112,14 @@ typedef struct _ObjectCode {
 
 } ObjectCode;
 
+#define OC_INFORMATIVE_FILENAME(OC)             \
+    ( (OC)->archiveMemberName ?                 \
+      (OC)->archiveMemberName :                 \
+      (OC)->fileName                            \
+    )
+
 extern ObjectCode *objects;
 
+void exitLinker( void );
+
 #endif /* LINKERINTERNALS_H */