Компиляция ECL 11.1.1 на Mac OS X 10.7 (Lion) - PullRequest
1 голос
/ 15 августа 2011

Я пытался собрать ECL под OS X 10.7, и я был сталкиваюсь с неприятностями. Когда я пытаюсь построить его, я получаю segfault на этапе ecl_min.

Я настраиваю со следующей строкой:

./configure --build=x86_64 --target=x86_64 --prefix=`pwd`/install_ecl
CC=/Developer/usr/bin/gcc-4.2

И компиляция завершается с:

if [ -f CROSS-COMPILER ]; then \
    ./CROSS-COMPILER compile; \
else \
    ECLDIR=`pwd`/ ./ecl_min compile; \
fi
/bin/sh: line 1: 17433 Segmentation fault: 11  ECLDIR=`pwd`/ ./ecl_min compile

Я пытался собрать gmp и boehm-gc внешне и не использовать включенные, но, к сожалению, это привело к тем же результатам. я также без особой удачи попробовал по умолчанию llvm-gcc.

Кто-нибудь смог скомпилировать ECL под Lion, и если да, то какие настройки / патчи вам нужно было применить.

Обновление: Я смог собрать благодаря принятому ответу ниже. Вот сценарии, которые я использовал (Примечание: это из свежего git-клона ECL):

#!/bin/sh

ECL_INSTALLDIR="`pwd`/install_ecl"
mkdir -p $ECL_INSTALLDIR

./configure\
     --prefix=$ECL_INSTALLDIR\
     --enable-boehm\
     --enable-unicode=no\
     CC=/Developer/usr/bin/gcc\
     CXX=/Developer/usr/bin/g++\
     CFLAGS="$CFLAGS"
     LDFLAGS="$LDFLAGS"

make && make install

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

Эта проблема была исправлена ​​в git / CVS. Как объяснено выше, причиной неправильной компиляции была версия нашего сборщика мусора: мы поставили последнюю доступную версию: 7.1, но это не работает с OS X Lion. ECL теперь поставляется с двумя версиями (7.1 и 7.2-cvs), используя новейшую версию в OS X Lion. Другими словами, ECL из git / CVS (http://ecls.sourceforge.net/download.html) должен компилироваться и запускаться из коробки.

1 голос
/ 22 августа 2011

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

  1. Загрузите новую сборку библиотеки сборщика мусора Boehm-Weiser, примените исправление (вы также можете получить ссылку для загрузки библиотеки и исправления с этой страницы) и установите его где-нибудь
  2. Настройте ECL с этими дополнительными опциями:
    --enable-boehm=system
    CPPFLAGS=-I/location/for/library/include
    LDFLAGS=-L/location/for/library/lib
  

Где /location/for/library - это префикс, который вы использовали для установки сборщика мусора.

И тогда он должен построить правильно.

Я также нашел этот билет MacPorts , который, кажется, отслеживает эту проблему; проверьте наличие обновлений в будущем, чтобы увидеть, будет ли оно исправлено.

...