Bug 36058 - Сломалась сборка пакета libschroedinger
Summary: Сломалась сборка пакета libschroedinger
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: libschroedinger (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: manowar@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-02-07 19:51 MSK by AEN
Modified: 2019-02-09 13:05 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description AEN 2019-02-07 19:51:45 MSK
Прошу исправить.
Comment 1 manowar@altlinux.org 2019-02-07 21:10:45 MSK
Хорошо.
Comment 2 Dmitry V. Levin 2019-02-08 13:10:49 MSK
В пакете используется libtool -export-symbols-regex, который никогда не работал для C++.  Когда я починил libtool, libschroedinger-1.0.so.0 починился, но его тесты пытаются использовать символы, которые больше не экспортируются.
Comment 3 manowar@altlinux.org 2019-02-08 13:48:13 MSK
(В ответ на комментарий №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
Comment 4 manowar@altlinux.org 2019-02-08 13:50:13 MSK
А, дошло. Просто там нормальный синтаксис регулярных выражений. Внезапно.
Comment 5 manowar@altlinux.org 2019-02-08 13:55:51 MSK
После вот такого:

-	-export-symbols-regex '^schro_'
+	-export-symbols-regex '(^schro_|interleave2)'

Всё собирается. Но testsuite/wavelet_2d сегфолтится.
Comment 6 manowar@altlinux.org 2019-02-08 14:38:21 MSK
После

-	-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)
Comment 7 Repository Robot 2019-02-09 10:46:01 MSK
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).
Comment 8 AEN 2019-02-09 13:05:55 MSK
Спасибо!