
Hi GHC users, I am trying to build a package (HaXml) for ghc that will also work in GHCi. I followed the instructions in the manual, to convert the .a file to a .o: ld -r --whole-archive -o HSHaXml.o libHSHaXml.a and installed, ran ghc-pkg, etc. However, now when I start up GHCi, it throws an error: $ ghci -package HaXml ___ ___ _ / _ \ /\ /\/ __(_) / /_\// /_/ / / | | GHC Interactive, version 5.02.2, for Haskell 98. / /_\\/ __ / /___| | http://www.haskell.org/ghc/ \____/\/ /_/\____/|_| Type :? for help. Loading package std ... linking ... done. Loading package lang ... linking ... done. Loading package concurrent ... linking ... done. Loading package posix ... linking ... done. Loading package util ... linking ... done. Loading package data ... linking ... done. Loading package HaXml ... GHCi runtime linker: fatal error: I found a duplicate definition for symbol r1p_closure whilst processing object file /grp/haskell/lib/ghc-5.02.2/HSHaXml.o This could be caused by: * Loading two different object files which export the same symbol * Specifying the same object file twice on the GHCi command line * An incorrect `package.conf' entry, causing some object to be loaded twice. GHCi cannot safely continue in this situation. Exiting now. Sorry. Indeed, running nm on the HSHaXml.o file shows that there are numerous symbols with multiple definitions. Here are just some of them: r13_closure, r13_entry, r13_info, r13_srt, r19_closure, r19_entry, r19_info, r19_srt, r1B_closure, r1D_closure, r1D_entry, r1D_info, r1D_srt, r1IZ_closure, r1J1_closure, r1J1_entry, r1J1_info, r1J1_srt, r1b_closure, r1b_entry, r1b_info, r1b_srt, r1l_closure, r1l_entry, r1l_info, r1p_closure, r1p_entry, r1p_info, s1JM_entry, s1JM_info, s1JZ_entry, s1JZ_info, s1Le_entry, s1Le_info, Any ideas what these are, and how I can avoid them? Regards, Malcolm