Commit 4a41cd9a authored by panne's avatar panne
Browse files

[project @ 2004-05-22 12:27:38 by panne]

Reverse the order in which DLLs are loaded. This makes more sense in general and
should fix the trouble with the broken OpenGL libs on Gentoo. This fix has been
tested on x86 Linux, but reports from other platforms (WinDoze, MacOS X, ...)
are highly welcome, dynamic linking is quite platform-specific and surprising
things can happen from time to time...

Merge to STABLE when tested on other platforms
parent 94b639b8
......@@ -771,7 +771,14 @@ linkPackage dflags pkg
-- See comments with partOfGHCi
when (Packages.name pkg `notElem` partOfGHCi) $ do
loadFrameworks pkg
mapM_ (load_dyn dirs) dlls
-- When a library A needs symbols from a library B, the order in
-- extra_libraries/extra_ld_opts is "-lA -lB", because that's the
-- way ld expects it for static linking. Dynamic linking is a
-- different story: When A has no dependency information for B,
-- dlopen-ing A with RTLD_NOW (see addDLL in Linker.c) will fail
-- when B has not been loaded before. In a nutshell: Reverse the
-- order of DLLs for dynamic linking.
mapM_ (load_dyn dirs) (reverse dlls)
-- After loading all the DLLs, we can load the static objects.
mapM_ loadObj objs
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment