Я собирал GHC, чтобы получить больше библиотек, чем при установке по умолчанию, которую дают репозитории Arch, но мне удалось сделать что-то с системой, что приводит к сбою первоначальной настройки на чистой копии источника:

:~/tmp$ tar -xvf ghc-7.10.2-src.tar.xz
...
:~/tmp$ cd ghc-7.10.2
:~/tmp/ghc-7.10.2$ ./configure --prefix=`pwd`/inst
checking for gfind... no
checking for find... /usr/bin/find
checking for sort... /usr/bin/sort
checking for GHC Git commit id... given 0da488c4438d88c9252e0b860426b8e74b5fc9e8
checking for ghc... /usr/local/bin/ghc
checking version of ghc... 7.10.2
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
Build platform inferred as: x86_64-unknown-linux
Host platform inferred as: x86_64-unknown-linux
Target platform inferred as: x86_64-unknown-linux
GHC build  : x86_64-unknown-linux
GHC host   : x86_64-unknown-linux
GHC target : x86_64-unknown-linux
configure: Building in-tree ghc-pwd
/usr/bin/ld: utils/ghc-pwd/dist-boot/Main.o: relocation R_X86_64_32S against `.text' can not be used when making a shared object; recompile with -fPIC
utils/ghc-pwd/dist-boot/Main.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
configure: error: Building ghc-pwd failed

Что я мог сделать с системой? Я могу только помнить, что выполнял sudo make install (прежде чем решить, что я хочу установить пользовательский пользователь, как в командной строке выше), после того, как он был собран один раз, но ошибка - это ошибка ld не ошибка ghc ...

1 ответ1

0

Я искал только в /usr/local/lib и /usr/local/bin что ghc удаляет, но кажется, что make install самом деле установил здесь:

/usr/local/haskell/ghc-7.10.2-x86_64

После удаления этого каталога и переустановки версии ghc ошибка настройки исчезнет. Полезная команда для поиска этого каталога:

sudo updatedb && (locate ghc | cut -f1-4 -d'/' | sort | uniq)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .