Надежное получение TargetData для текущего процессаPython

Программы на Python
Anonymous
Надежное получение TargetData для текущего процесса

Сообщение Anonymous »

В llvmlite экземпляр TargetData необходим для получения размера ABI объекта. Это имеет смысл, учитывая, что размер объекта зависит от размера слова и выравнивания. Если я хочу немедленно скомпилировать и использовать код в текущем процессе, мне не нужно ничего, кроме целевых данных текущего процесса. Документы, похоже, предполагают, что это позволит надежно получить целевые данные для текущего процесса.

Код: Выделить всё

import llvmlite.binding as llvm

# Initialize the LLVM
# https://llvmlite.readthedocs.io/en/latest/user-guide/binding/examples.html
llvm.initialize()
llvm.initialize_native_target()
llvm.initialize_native_asmprinter()

target_string = llvm.get_process_triple()
target_data = llvm.create_target_data(target_string)
Однако последняя строка прерывает процесс Python с ошибкой:

Код: Выделить всё

LLVM ERROR: Unknown specifier in datalayout string

Aborted (core dumped)
Предположительно, это связано с тем, что моя тройка процессов — x86_64-unknown-linux-gnu. У меня Ubuntu 20.04 на Lenovo P53, так что это не должно быть так уж странно.
Как мне получить рабочие TargetData по умолчанию для текущего процесса?

Подробнее здесь: https://stackoverflow.com/questions/788 ... nt-process

Вернуться в «Python»