Summary: | binutils >= 2.35-alt1 при неопределённых условиях генерирует код, работающий неожиданным образом | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Aleksei Nikiforov <darktemplaralt> |
Component: | binutils | Assignee: | Gleb F-Malinovskiy <glebfm> |
Status: | CLOSED WORKSFORME | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P5 | CC: | glebfm, zerg |
Version: | unstable | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
URL: | https://lists.altlinux.org/pipermail/sisyphus-cybertalk/2020-December/112228.html |
Description
Aleksei Nikiforov
2021-02-26 11:33:31 MSK
(In reply to Aleksei Nikiforov from comment #0) > 1. Взять qt4-4.8.7-alt21. В более новых версиях возможно наличие обхода > данной проблемы. А что за обход, известно? Или просто не воспроизводится? Был сделан вот такой хак для обхода этой проблемы до того, как было обнаружено что даунгрейд binutils помогает: http://git.altlinux.org/people/darktemplar/packages/?p=qt4.git;a=commitdiff;h=dcd0c909db9f751dd40c499a429870b5d0065509 Проблема в том, что мест, где может вылезать подобная проблема, может быть больше, чем то одно обнаруженное на текущий момент место. Таких мест в Qt4 ещё несколько штук, и как минимум одно - в Qt5. Однако, только наличия подобной конструкции в коде не было достаточно для воспроизведения проблемы: похоже есть какие-то дополнительные пока что не обнаруженные условия. > http://git.altlinux.org/people/darktemplar/packages/?p=qt4.git;a=commitdiff; > h=dcd0c909db9f751dd40c499a429870b5d0065509 Правда, самому qt4 это не слишком помогло, т.к. сломало ABI. :-( http://git.altlinux.org/tasks/266972/logs/events.3.1.log , поэтому уповаю на исправление тут. (In reply to Sergey V Turchin from comment #4) > https://bugzilla.redhat.com/show_bug.cgi?id=1900527 Там пришут "due to miscompilation with LTO", полагаете, это как-то связано с тем, что происходит здесь? Уже выяснили, что можно исправить ситуацию с Qt4, если убрать опцию -reduce-relocations: http://git.altlinux.org/gears/q/qt4.git?p=qt4.git;a=commitdiff;h=32478a23b6f435e350e9516106c3cfa78a9032b5 Поэтому я думаю, что по ссылке выше тот же баг, что и здесь. Тем более, что наличие двух копий переменной подтверждается. Поскольку в апстриме binutils - WONTFIX, а в Qt есть workaround-ы, предлагаю закрыть. |