Linker Scripts on Arch & GHC
ÐÐ»ÐµÐºÑÐ°Ð½Ð´ÑÑ Ð. ÐÐ¸Ð¼Ð¸ÑÑÐ¾Ð²
aleks.dimitrov at googlemail.com
Sat Oct 12 07:34:16 UTC 2013
Hello fellow Arch-Haskellers
Sorry for disturbing this peaceful list, but I only recently ran into what
ultimately turned out to be a problem with Arch Linux' layout of system
libraries and GHC's lacking support for linker scripts. My original bug report
to the yi-devel mailing list is rather longish, so I'll just link you to it and
then summarize the problem:
The problem: terminfo links against /usr/lib/libncurses.so, which on most
distros is a symlink to something that makes more sense (like /lib/libncurses.so.5)
On Arch, this is a linker script instead, which GHC cannot interpret.
It thus fails with a linker error:
Prelude> :m +System.Console.Terminfo
Prelude System.Console.Terminfo> term <- setupTerm "xterm"
Loading package syb ... linking ... done.
Loading package base-184.108.40.206 ... linking ... done.
Loading package terminfo-0.2.2.1 ... <command line>: can't load .so/.DLL for: ncurses (/usr/lib/libncurses.so: file too short)
Gwern then kindly forwarded the Mail to Don (his response is in the above
thread.) The problem with the proposed solution (for now) is that it involves
manually erasing /usr/lib/libncurses.so and replacing it with a symlink. This
solution has obvious flaws, of course. Most importantly, it doesn't really
resolve the issue. There is at least one other package on AUR which is affected:
Since I have no clue about linker scripts, and no clue about GHC's linking system
either, I decided to forward the issue here. It's probably unlikely that Arch
will move away from linker scripts (or is it?), so the solution would be
implementing (some level of basic) support in GHC?
PS: and thanks for your current efforts, the Haskell support was the reason for
me to switch from Debian to Arch :-)
More information about the arch-haskell