Прошу исправить.
Хорошо.
В пакете используется libtool -export-symbols-regex, который никогда не работал для C++. Когда я починил libtool, libschroedinger-1.0.so.0 починился, но его тесты пытаются использовать символы, которые больше не экспортируются.
(В ответ на комментарий №2) > В пакете используется libtool -export-symbols-regex, который никогда не работал > для C++. Когда я починил libtool, libschroedinger-1.0.so.0 починился, но его > тесты пытаются использовать символы, которые больше не экспортируются. Спасибо. Я попробовал сделать вот так: - -export-symbols-regex '^schro_' + -export-symbols-regex '\(^schro_\|interleave2\)' Но теперь огребаю вот так: 2: syntax error in VERSION script collect2: error: ld returned 1 exit status
А, дошло. Просто там нормальный синтаксис регулярных выражений. Внезапно.
После вот такого: - -export-symbols-regex '^schro_' + -export-symbols-regex '(^schro_|interleave2)' Всё собирается. Но testsuite/wavelet_2d сегфолтится.
После - -export-symbols-regex '^schro_' + -export-symbols-regex '^(schro_|_orc_code_orc_)' всё полегчало совсем — собирается и тесты проходят. Однако, у меня вопрос: это нормально, что линковка проходит без ошибок на undefined symbols, gdb видит символ, но сама программа разыменовывает его как NULL? Потому что с предыдущей регуляркой было вот так: 612 printf ("1: c = %p, _orc_ = %p\n", c, _orc_code_orc_mas4_horiz_sub_s16_1991_ip); (gdb) p _orc_code_orc_mas4_horiz_sub_s16_1991_ip $5 = (OrcCode *) 0x807aeb0 (gdb) n 1: c = (nil), _orc_ = (nil) 613 c = _orc_code_orc_mas4_horiz_sub_s16_1991_ip; (gdb) n 614 printf ("2: c = %p, _orc_ = %p\n", c, _orc_code_orc_mas4_horiz_sub_s16_1991_ip); (gdb) n 2: c = (nil), _orc_ = (nil)
libschroedinger-1.0.11-alt2 -> sisyphus: Fri Feb 08 2019 Paul Wolneykien <manowar@altlinux> 1.0.11-alt2 - Added patch to export _orc_code_orc_* symbols along with schro_* (closes #36058).
Спасибо!