Сборка и запуск llvm-py на Mac OS X

Я пытался собрать llvm-py на Mac OS X.

Вот что я пытался сделать, мне нужно было скачать 11vm-2.7, а в файле README есть такой комментарий: Убедитесь, что '--enable-pic' передается в 'configure' LLVM

  1. Скачайте llvm 2.7.
  2. Соберите llvm 2.7: ./configure --prefix=LLVM_DIRECTORY --enable-pic
  3. Скачать llvm-py 0.6.
  4. Сборка llvm-py 0.6: Запуск python setup.py build --llvm-config=LLVM_DIRECTORY/bin/llvm-config

Все компилируется без ошибок, но когда я попытался запустить тестовый файл, я получил сообщение об ошибке.

ImportError: 'dlopen(/Library/Python/2.7/site-packages/llvm/_core.so, 2): Symbol not found: __ZTVN4llvm16ExtractValueInstE\n Ссылка из: /Library/Python/2.7/site-packages/llvm/_core.so\n Expected in: flat namespace\n in /Library/Python/2.7/site-packages/llvm/_core.so'

Ошибка в сообщении, похоже, говорит, что отсутствует функция "llvmExtractValueInst" с проблемой плоского пространства имен. Что не так?

В llvm 2.7 в Makefile.rules есть такая строка

SharedLinkOptions=-Wl,-flat_namespace -Wl,-undefined -Wl,suppress \ -dynamiclib

Я попытался удалить flat_namespace, но получил ошибку компиляции.

ДОБАВЛЕНО

Следуя ответу locojay, я смог собрать brew и llvmpy.

export REQUIRES_RTTI=1
brew install llvm --rtti
sudo pip install git+https://github.com/llvmpy/llvmpy

Однако, когда я попытался выполнить примеры в тестовом каталоге, я все равно получил ошибку другого рода -

test> python example.py 
Traceback (most recent call last):
  File "example.py", line 4, in 
    from llvm import *
  File "/Library/Python/2.7/site-packages/llvm/__init__.py", line 11, in 
    from llvm import _core
ImportError: dlopen(/Library/Python/2.7/site-packages/llvm/_core.so, 2): Symbol not found: __ZN4llvm10DataLayout2IDE
  Referenced from: /Library/Python/2.7/site-packages/llvm/_core.so
  Expected in: flat namespace
 in /Library/Python/2.7/site-packages/llvm/_core.so 

Вот результат, когда я запустил otool -L /Library/Python/2.7/site-packages/llvm/_core.so

/Library/Python/2.7/site-packages/llvm/_core.so:
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0)

5
задан prosseek 15 January 2014 в 19:26
поделиться