GODI-батареи: проблемы с установкой (еще раз) - PullRequest
2 голосов
/ 26 января 2011

Я задавал этот вопрос до , но оказалось, что решение, которое я считал, не является.

Проблема

Я только что начал новуюУстановка GODI, и я пытаюсь установить библиотеку батарей .У меня все зависимости отсортированы, например, Ромашка.Я получаю следующую ошибку:

> ocamlfind ocamlopt -a -package camomile,num,str src/batCamomile.cmx src/batConcurrent.cmx src/batInnerWeaktbl.cmx src/batInnerIO.cmx src/batInterfaces.cmx src/batMonad.cmx src/batRef.cmx src/batValue_printer.cmx src/batEnum.cmx src/batPrintf.cmx src/batList.cmx src/batRefList.cmx src/batArg.cmx src/batBitSet.cmx src/batChar.cmx src/batReturn.cmx src/batString.cmx src/batUChar.cmx src/batUTF8.cmx src/batRope.cmx src/batUnix.cmx src/batIO.cmx src/batArray.cmx src/batBigarray.cmx src/batNumber.cmx src/batBig_int.cmx src/batStd.cmx src/batBool.cmx src/batBuffer.cmx src/batInt.cmx src/batMap.cmx src/batOption.cmx src/batPMap.cmx src/batLazyList.cmx src/batParserCo.cmx src/batVect.cmx src/batCharParser.cmx src/batFloat.cmx src/batStream.cmx src/batGenlex.cmx src/batComplex.cmx src/batDigest.cmx src/batFormat.cmx src/batGc.cmx src/batHashtbl.cmx src/batInt32.cmx src/batInt64.cmx src/batLexing.cmx src/batMarshal.cmx src/batNativeint.cmx src/batNum.cmx src/batOo.cmx src/batFile.cmx src/batPrint.cmx src/batPrintexc.cmx src/batPervasives.cmx src/batQueue.cmx src/batRandom.cmx src/batScanf.cmx src/batSet.cmx src/batStack.cmx src/batStr.cmx src/batSys.cmx src/batUnit.cmx src/batBase64.cmx src/batCharEncodings.cmx src/batDllist.cmx src/batDynArray.cmx src/batGlobal.cmx src/batSubstring.cmx src/batLogger.cmx src/batPSet.cmx src/batMultiPMap.cmx src/batOptParse.cmx src/batPair.cmx src/batUCharParser.cmx src/batPathGen.cmx src/batResult.cmx src/batSeq.cmx src/batAvlTree.cmx src/batISet.cmx src/batIMap.cmx src/batteries_config.cmx src/batteries_print.cmx src/batteries_uni.cmx src/batMutex.cmx src/batRMutex.cmx src/batteries.cmx -o src/batteries.cmxa
> ocamlfind ocamlopt -shared -linkall -package camomile,num,str -o src/batteries_uni.cmxs src/batteries_uni.cmxa
> + ocamlfind ocamlopt -shared -linkall -package camomile,num,str -o src/batteries_uni.cmxs src/batteries_uni.cmxa
> ld: warning: -read_only_relocs cannot be used with x86_64
> ld: codegen problem, can't use rel32 to external symbol _caml_negf_mask in .L101 from src/batteries_uni.a(batFloat.o)
> collect2: ld returned 1 exit status
> File "caml_startup", line 1, characters 0-1:
> Error: Error during linking
> Command exited with code 2.
> make[7]: *** [all] Error 10
> Error: Exec error: File /Users/surikator/godi/build/godi/godi-batteries/./../../mk/bsd.pkg.mk, line 1039: Command returned with non-zero exit code
> Error: Exec error: File /Users/surikator/godi/build/godi/godi-batteries/./../../mk/bsd.pkg.mk, line 1378: Command returned with non-zero exit code

### Error: Command fails with code 1: godi_console

Решение, которое не работает

В моем предыдущем вопросе, основанном на этом посте , я переключил настройку GODI

GODI_BATTERIES_SHLIB = no

и он закончил установку батарей.Но я только что начал новую установку GODI, и даже с этой настройкой я все еще получаю ошибку выше (которая является той же самой, что и я изначально).

Мои настройки

Я использую Mac OSВерсия X 10.6.4 на MacBookPro (64-разрядная версия) с самой последней версией GODI (rocketboost-20091222).

Идеи?

От

> ld: warning: -read_only_relocs cannot be used with x86_64

это действительноКажется, что батареи / Годи пытается сделать что-то для 32 бит, когда он должен сделать что-то для 64. Есть ли какие-то настройки в батареях или Годи, где это можно изменить?

С

> ld: codegen problem, can't use rel32 to external symbol _caml_negf_mask in .L101 from src/batteries_uni.a(batFloat.o)

видно, что источником проблемы является библиотека batteries_uni.a.Я не знаю, есть ли там что-то внушительное 32 бита?Я заметил, что batteries_uni.ml включает в себя модули Int32 и Int64 для целых чисел, но это не должно быть проблемой, не так ли?

Есть идеи?

Любая помощь в этом была бы великолепна!

Большое спасибо, Surikator.

1 Ответ

2 голосов
/ 27 января 2011

Я провел некоторое исследование, и оказалось, что в скрипте упаковки GODI была ошибка, так что опция GODI_BATTERIES_SHILB была неактивной.Я исправил эту ошибку и выпустил обновленные сценарии сборки, поэтому установка его на no и сборка аккумуляторов после обновления установки GODI (godi_update или «Проверка наличия новых исходных пакетов» в godi_console) должны успешно предотвратить .cmxs файлы от сборки и установки.Я думаю, что теперь это позволит вам собираться на Mac.

Я хотел бы найти фактическую ошибку сборки и получить .cmxs файлы, работающие на Mac, но ни у одного из разработчиков Batteries нет Mac (насколько я знаю).) так что это довольно сложно.

...