Наконец-то я выяснил, что на самом деле вызвало эту ошибку.
В cmake использовался золотой компоновщик gnu, а архив libLLVMSupport.a состоял из IR-кода LLVM, поэтому неудивительно, что что-то пошло не так.
После того, как я перешел на использование ld.lld -5.0, все ошибки исчезли.
Проблема в том, что вы отформатировали каждую строку пробелами вместо табуляции. изменив строку:
prinft "Item \#%s | %-9s | %-9s |" $i $item_a $item_b`
-
prinft "Item \#%s | %-9s\t| %-9s\t|" $i $item_a $item_b`
столбцы должны быть выровнены. Если переменные имеют большую разницу в длине, а использование табуляции по-прежнему не приводит к выравниванию столбцов, рассмотрите возможность использования команды столбец .