# http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html

version=2.5
# LLVMSystem LLVMSupport LLVMCore LLVMTarget LLVMAnalysis LLVMipa
for src in /usr/lib/llvm/*.a; do
  lib=`basename $src .a` ;
  ar -x $src ;
  gcc -shared -Wl,-soname,$lib.so.$version -o $lib.so.$version *.o ;
  ln -s $lib.so.$version $lib.so ;
  rm *.o ;
done

# After this conversion I get in GHCi:
# *Main> main
# ...
# Loading package llvm-0.6.7.0 ... can't load .so/.DLL for: pthread (/usr/lib/libpthread.so: invalid ELF header)

# It does not help to convert /usr/lib/libpthread.a to a shared object
# because then I get:
# Loading package llvm-0.6.7.0 ... can't load .so/.DLL for: pthread (libpthread.so: undefined symbol: _dl_sysinfo)

# This problem is described in:
# http://hackage.haskell.org/trac/ghc/ticket/2615
