summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2012-01-06 14:51:40 +0000
committerSimon Marlow <marlowsd@gmail.com>2012-01-09 12:57:46 +0000
commit81c69f305c79c181a2e15cf88615baa441dae755 (patch)
treed3b4f6fb757ffc908287c45a6a10df6fa569ef19 /includes
parent9e452874df05f5f98243576ffaefc2f356358038 (diff)
downloadhaskell-81c69f305c79c181a2e15cf88615baa441dae755.tar.gz
Make the RTS linker API use wide-char pathnames on Windows (#5697)
I haven't been able to test whether this works or not due to #5754, but at least it doesn't appear to break anything.
Diffstat (limited to 'includes')
-rw-r--r--includes/rts/Linker.h18
1 files changed, 12 insertions, 6 deletions
diff --git a/includes/rts/Linker.h b/includes/rts/Linker.h
index f7c8ce9c4b..e900e858c1 100644
--- a/includes/rts/Linker.h
+++ b/includes/rts/Linker.h
@@ -14,31 +14,37 @@
#ifndef RTS_LINKER_H
#define RTS_LINKER_H
+#if defined(mingw32_HOST_OS)
+typedef wchar_t pathchar;
+#else
+typedef char pathchar;
+#endif
+
/* initialize the object linker */
void initLinker( void );
/* insert a stable symbol in the hash table */
-void insertStableSymbol(char* obj_name, char* key, StgPtr data);
+void insertStableSymbol(pathchar* obj_name, char* key, StgPtr data);
/* insert a symbol in the hash table */
-void insertSymbol(char* obj_name, char* key, void* data);
+void insertSymbol(pathchar* obj_name, char* key, void* data);
/* lookup a symbol in the hash table */
void *lookupSymbol( char *lbl );
/* delete an object from the pool */
-HsInt unloadObj( char *path );
+HsInt unloadObj( pathchar *path );
/* add an obj (populate the global symbol table, but don't resolve yet) */
-HsInt loadObj( char *path );
+HsInt loadObj( pathchar *path );
/* add an arch (populate the global symbol table, but don't resolve yet) */
-HsInt loadArchive( char *path );
+HsInt loadArchive( pathchar *path );
/* resolve all the currently unlinked objects in memory */
HsInt resolveObjs( void );
/* load a dynamic library */
-const char *addDLL( char* dll_name );
+const char *addDLL( pathchar* dll_name );
#endif /* RTS_LINKER_H */