Bug 41996
| Summary: | section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Vitaly Chikunov <vt> |
| Component: | rust | Assignee: | Sergey Zhidkih <rx1513> |
| Status: | REOPENED --- | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | ancieg, iv, ldv, legion, rauty, rx1513, sem |
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
Потрудитесь описать проблему нормально. Цитата лога сборки таковым описанием не является. Я не буду тратить время и выяснять, что вы имели в виду этой цитатой.
> ldv had some suggestions, but I forgot what he said.
Вот это вообще прекрасно.
Переоткройте багу, когда вспомните и переформулируете.
Every binary produced by rust has this problem diagnosed by eu-elfint: section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS $ cd beehive/logs/Sisyphus/x86_64/latest/success/ && grep -F 'ALLOC|MERGE|STRINGS' * alacritty-0.10.0-alt1:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS b3sum-1.2.0-alt1:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS cbindgen-0.20.0-alt1:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS fractal-4.4.1b1-alt1:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS git-delta-0.12.0-alt1:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS hyperfine-1.12.0-alt1:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS maturin-0.11.3-alt1:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS rav1e-0.5.0-alt1:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS ripgrep-13.0.0-alt2:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS solanum-3.0.1-alt1:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS vector-0.18.1-alt1:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS vml-0.1.5-alt1:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS watchexec-1.17.1-alt1:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS waylock-0.3.3-alt1:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS xsv-0.13.0-alt1:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS zincati-0.0.22-alt6:section [18] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS При сборке утилит вместе с rust я ничего такого не наблюдаю. Так что это не "every binary". Продолжаю настаивать на нормальном формулировании багрепорта. Наш rpm-build пишет много чего. (In reply to Alexey Gladkov from comment #4) > При сборке утилит вместе с rust я ничего такого не наблюдаю. Так что это не > "every binary". Every non-stripped binary? (Ответ для Dmitry V. Levin на комментарий #6) > (In reply to Alexey Gladkov from comment #4) > > При сборке утилит вместе с rust я ничего такого не наблюдаю. Так что это не > > "every binary". > > Every non-stripped binary? Вот это и стоит отразить в новом тексте багрепорта. А также стоит упомянуть почему этот "wrong flags" плох и чем грозит. У меня нет никакой информации об этом, а также серьёзность проблемы. Более простой reproducer также был бы полезен. Прошло достаточно времени, чтобы сформулировать что же не работает. Переоткройте, когда появится конкретная информация. Это регрессия в компиляторе https://github.com/rust-lang/rust/issues/81028. Похоже работа над исправлением в апстриме затянулась. Как будет время - попробую исправить. Если изначальный автор пытался собирать с %set_verify_elf_method strict и столкнулся с проблемой, которая описана в первом комментарии, то хочу предостеречь от радости: на других архитектурах вылезает "букетик" ошибок побольше и исправлением только этой проблемы не обойтись, если хочется воткнуть эти строгие проверки повсеместно. (Ответ для Anton Zhukharev на комментарий #10) > Если изначальный автор пытался собирать с %set_verify_elf_method strict и > столкнулся с проблемой, которая описана в первом комментарии, то хочу > предостеречь от радости: на других архитектурах вылезает "букетик" ошибок > побольше и исправлением только этой проблемы не обойтись, если хочется > воткнуть эти строгие проверки повсеместно. Например? (In reply to Sergey Zhidkih from comment #11) > (Ответ для Anton Zhukharev на комментарий #10) > > Если изначальный автор пытался собирать с %set_verify_elf_method strict и > > столкнулся с проблемой, которая описана в первом комментарии, то хочу > > предостеречь от радости: на других архитектурах вылезает "букетик" ошибок > > побольше и исправлением только этой проблемы не обойтись, если хочется > > воткнуть эти строгие проверки повсеместно. > Например? Я собрал специально cargo-about с %set_verify_elf_method strict для этого: https://packages.altlinux.org/en/tasks/423521/ Вот такие проблемы на i586: [00:01:17] Verifying ELF objects in /usr/src/tmp/cargo-about-buildroot (arch=strict,fhs=strict,lfs=strict,lint=strict,rpath=strict,stack=strict,textrel=strict,unresolved=strict) [00:01:17] section [16] '.debug_gdb_scripts' has wrong flags: expected none, is ALLOC|MERGE|STRINGS [00:01:17] verify-elf: ERROR: ./usr/bin/cargo-about: eu-elflint failed [00:01:17] verify-elf: ERROR: ./usr/bin/cargo-about: uses non-LFS functions: fcntl mmap open в теории, решается так: %add_optflags -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 А вот на aarch64 проблемы, видимо, уже решены со стороны апстрима - я давно пытался собирать со строгими проверками ELF. Либо они воспроизводятся в определенных условия, о которых я в точности не знаю. Что же, это радует, осталось дождаться решения https://github.com/rust-lang/rust/issues/81028 и, теоретически, все будет готово к строгим проверкам. (In reply to Anton Zhukharev from comment #12) > (In reply to Sergey Zhidkih from comment #11) > > (Ответ для Anton Zhukharev на комментарий #10) > > > Если изначальный автор пытался собирать с %set_verify_elf_method strict и > > > столкнулся с проблемой, которая описана в первом комментарии, то хочу > > > предостеречь от радости: на других архитектурах вылезает "букетик" ошибок > > > побольше и исправлением только этой проблемы не обойтись, если хочется > > > воткнуть эти строгие проверки повсеместно. > > Например? > Я собрал специально cargo-about с %set_verify_elf_method strict для этого: > https://packages.altlinux.org/en/tasks/423521/ > > Вот такие проблемы на i586: > > [00:01:17] Verifying ELF objects in /usr/src/tmp/cargo-about-buildroot > (arch=strict,fhs=strict,lfs=strict,lint=strict,rpath=strict,stack=strict, > textrel=strict,unresolved=strict) > [00:01:17] section [16] '.debug_gdb_scripts' has wrong flags: expected none, > is ALLOC|MERGE|STRINGS > [00:01:17] verify-elf: ERROR: ./usr/bin/cargo-about: eu-elflint failed > [00:01:17] verify-elf: ERROR: ./usr/bin/cargo-about: uses non-LFS functions: > fcntl mmap open > > в теории, решается так: > > %add_optflags -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 Нет, так легко не обойтись, видимо внутренний вызов компилятором rust компоновщика из gcc не подхватывает эти флаги. Нужно решать на стороне компилятора rust. (In reply to Anton Zhukharev from comment #13) > (In reply to Anton Zhukharev from comment #12) > > (In reply to Sergey Zhidkih from comment #11) > > > (Ответ для Anton Zhukharev на комментарий #10) > > > > Если изначальный автор пытался собирать с %set_verify_elf_method strict и > > > > столкнулся с проблемой, которая описана в первом комментарии, то хочу > > > > предостеречь от радости: на других архитектурах вылезает "букетик" ошибок > > > > побольше и исправлением только этой проблемы не обойтись, если хочется > > > > воткнуть эти строгие проверки повсеместно. > > > Например? > > Я собрал специально cargo-about с %set_verify_elf_method strict для этого: > > https://packages.altlinux.org/en/tasks/423521/ > > > > Вот такие проблемы на i586: > > > > [00:01:17] Verifying ELF objects in /usr/src/tmp/cargo-about-buildroot > > (arch=strict,fhs=strict,lfs=strict,lint=strict,rpath=strict,stack=strict, > > textrel=strict,unresolved=strict) > > [00:01:17] section [16] '.debug_gdb_scripts' has wrong flags: expected none, > > is ALLOC|MERGE|STRINGS > > [00:01:17] verify-elf: ERROR: ./usr/bin/cargo-about: eu-elflint failed > > [00:01:17] verify-elf: ERROR: ./usr/bin/cargo-about: uses non-LFS functions: > > fcntl mmap open > > > > в теории, решается так: > > > > %add_optflags -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 > Нет, так легко не обойтись, видимо внутренний вызов компилятором rust > компоновщика из gcc не подхватывает эти флаги. Нужно решать на стороне > компилятора rust. Не знаю, на что я надеялся, выставляя %optflags если они потом нигде не экспортируются в окружении при сборке cargo-about... Но вот я сделал перед вызовом cargo build отдельный экспорт: export CFLAGS='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' и это помогло избавиться лишь от 'fcntl', остальные остались. Да и вообще, тут именно эта проблема исходит из крейта libc - нужно с ним разбираться. А это уже скорее к #60530 относится. |

Description
Vitaly Chikunov 2022-02-19 08:45:02 MSK