Summary: | libcryptopp-5.6.0-alt3 broken on x86_64 (SHA256 infinite loop) | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Sergey Vlasov <vsu> |
Component: | libcryptopp | Assignee: | Vitaly Lipatov <lav> |
Status: | CLOSED WORKSFORME | QA Contact: | qa-sisyphus |
Severity: | critical | ||
Priority: | P3 | CC: | lav |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | 22582 | ||
Bug Blocks: |
Description
Sergey Vlasov
2009-12-20 21:00:46 MSK
Хм, с CRYPTOPP_DISABLE_X86ASM тест libcryptopp проходит, но amule при запуске падает с SIGSEGV в CryptoPP::SHA256::Transform (). Оказывается, отключить ассемблерные реализации через CRYPTOPP_DISABLE_X86ASM в этой прекрасной библиотеке просто так нельзя, поскольку от этого у неё ломается ABI (config.h там мало того что торчит наружу, так ещё и параметры его используются в куче прочих заголовков). Так что отключение неработающего ассемблерного кода возможно только вместе с пересборкой всех клиентов (и с простановкой каких-то жёстких зависимостей на этот вариант конфигурации), либо придётся ждать исправления binutils. (В ответ на комментарий №0) ... > Ошибка обнаруживается при запуске "./cryptest v" после сборки библиотеки (тест > SHA256 тоже зависает либо завершается с segmentation fault); этот тест > следовало бы выполнять при сборке пакета, чтобы не пропускать в Сизиф заведомо > сломанные сборки. Я пытался его выполнять, но он настолько затянулся по времени, что я не решился его включить. Возможно, у меня он тоже зависал... Хотя я на 32-битах проверял. > Проблема в том, что не обнаруживается аварийное завершение теста (например, > segmentation fault), если тест не успел выдать FAILED. Нужно, например, так: > > ( ./cryptest v 2>&1 || printf "\nFAILED: exit %%s\n" "$?" ) | tee cryptest.log > grep -qs '^FAILED' cryptest.log && exit 1 || : Спасибо, исправлю. Ping! https://bugzilla.altlinux.org/show_bug.cgi?id=22582 в binutils давно исправлено. Поправка к коду проверки результатов теста: ( ./cryptest v 2>&1 || printf '\nFAILED: exit %%s\n' "$?" ) | tee cryptest.log grep -qs '^FAILED' cryptest.log && exit 1 || : В Сизифе 8.5.0, о проблемах неизвестно. Тест во время сборки проходит. |