From: Ivan Zakharyaschev <imz@altlinux.org> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Subject: [devel] [PATCH] verify-elf: honor RUNPATH, too ; was: Re: Проблема при сборке newmon 27.0 Date: Sun, 27 Nov 2016 14:12:40 +0300 (MSK) Message-ID: <alpine.LFD.2.20.1611271406170.13365@imap.altlinux.org> (raw) In-Reply-To: <alpine.LFD.2.20.1611271246190.13365@imap.altlinux.org> [-- Attachment #1: Type: text/plain, Size: 5608 bytes --] On Sun, 27 Nov 2016, Ivan Zakharyaschev wrote: >> On Tue, 15 Nov 2016, Hihin Ruslan wrote: >> >> > Здравствуйте Alexey Tourbin >> > В сообщении от 13 ноября 2016 Alexey Tourbin написал(a): >> > > 2016-11-13 11:23 GMT+03:00 Hihin Ruslan <ruslandh@gmail.com>: >> > > > Ruslan Hihin, [13.11.16 11:18] >> > > > Я что-то не пойму как правильно сделать. В новой версии >> > > > palemoon почему-то вдруг взорвалось : >> > > > >> > > > ... >> > > > Verifying ELF objects in /usr/src/tmp/palemoon-buildroot >> > > > (arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=norma >> > > > l,stack=normal,textrel=normal,unresolved=normal) verify-elf: >> > > > ERROR: ./usr/lib64/newmoon/plugin-container: not found: >> > > > libmozalloc.so >> > > > verify-elf: ERROR: ./usr/lib64/newmoon/plugin-container: not >> > > > found: libxul.so >> > > >> > > У него в прежней версии прописан RPATH, а в новой, вероятно, >> > > не прописан (или прописан неверно). >> > > >> > > $ rpmpeek newmoon-26.5.0-alt1.x86_64.rpm \ >> > > objdump -p ./usr/lib64/newmoon/plugin-container |grep PATH >> > > RPATH /usr/lib64/newmoon >> > > >> > > plugin-container как программу и запустить не получится, если >> > > только какой-нибудь скрипт перед запуском не выставит ему в >> > > окружение LD_LIBRARY_PATH=/usr/lib64/newmoon. >> > > >> > > Короче, посмотрите, что говорит >> > > $ objdump -p >> > > newmoon-buildroot/usr/lib64/newmoon/plugin-container |grep >> > > PATH >> > >> > Получается что-то странное: >> > objdump -p plugin-container | grep PATH >> > RUNPATH /usr/lib64/newmoon >> > >> > Что за RUNPATH ? >> >> Из того, что я узнал и понял из этого обсуждения, RUNPATH должен был бы >> работать не хуже, чем RPATH, который был в прошлых версиях. >> >> Но хочется понять до конца: проблема всё же в изменении этого ключевого >> слова (как Вы стали предполагать) или в каких-то других изменениях. > > Вот действительно, проблема в том, что verify-elf не учитывает RUNPATH (как > Вы и предположили). В отличие от lib.req, например. Предлагаю патч для rpm. (Руслан, можете попробовать собрать, добавив в началао заданиясборку того же тега rpm, что в задании 173509.) Subject: [PATCH] verify-elf: honor RUNPATH, too (like in lib.req.in:95 and debuginfo.req.in:76) in addition to RPATH --- scripts/verify-elf.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/verify-elf.in b/scripts/verify-elf.in index 316117f..6c30448 100755 --- a/scripts/verify-elf.in +++ b/scripts/verify-elf.in @@ -362,7 +362,7 @@ VerifyELF() error_normal LINT "$f" 'eu-elflint failed' fi - verify_rpath "$f" "$(printf %s "$objdump_info" |awk '{if ($1=="RPATH") print $2}')" + verify_rpath "$f" "$(printf %s "$objdump_info" |awk '{if ($1=="RPATH"||$1=="RUNPATH") print $2}')" if [ -z "${t##*ELF* executable*}" -o -z "${t##*ELF* shared object*}" ]; then verify_stack "$f" @@ -376,7 +376,7 @@ VerifyELF() if [ -z "${t##*ELF* executable*dynamically linked*}" -o -z "${t##*ELF* shared object*}" ]; then verify_unresolved "$f" "$preload" "$fname" \ - "$(printf %s "$objdump_info" |awk '{if ($1=="RPATH") print $2}' |tr -s : ' ' |sed -e "s|\$ORIGIN|${fname%/*}|g")" + "$(printf %s "$objdump_info" |awk '{if ($1=="RPATH"||$1=="RUNPATH") print $2}' |tr -s : ' ' |sed -e "s|\$ORIGIN|${fname%/*}|g")" if [ -z "${t##*ELF 32-bit*}" ]; then verify_lfs "$f" fi -- > http: //git.altlinux.org/gears/r/rpm.git?p=rpm.git;a=blob;f=scripts/verify-elf.in;h=316117f05428961b85fa4428f86f4e6f9f0a7968;hb=HEAD#l378 > > verify_unresolved "$f" "$preload" "$fname" \ > "$(printf %s "$objdump_info" |awk '{if ($1=="RPATH") > print $2}' |tr -s : ' ' |sed -e > "s|\$ORIGIN|${fname%/*}|g")" > > lib.req.in:95: awk '($1=="RPATH"||$1=="RUNPATH"){print $2}' | > > Спасибо за предоставленный более полный материал (хотя бы в виде бинарника) к > этому, получается, багрепорту. > >> У Вас есть под рукой бинарник plugin-container, который должен был бы >> работать, но verify-elf не проходит? (verify-elf и т.п. можно запускать >> отдельной командой, не во время сборки.) Без всяких дополнительных >> редактирований. Просто нам остальным не так просто его получить -- процесс >> сборки тяжёлый -- чтобы потом поизучать. Напишите побольше подробностей >> про один конкретный бинарник (verify-elf, objdump для начала), чтобы >> ситуация была яснее. >> >> -- >> Best regards, >> Ivan >> >
next prev parent reply other threads:[~2016-11-27 11:12 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-11-13 8:23 [devel] " Hihin Ruslan 2016-11-13 12:11 ` Alexey Tourbin 2016-11-13 12:29 ` Hihin Ruslan 2016-11-14 22:22 ` Hihin Ruslan 2016-11-15 13:34 ` Ruslan Hihin 2016-11-25 18:02 ` Ivan Zakharyaschev 2016-11-26 9:05 ` Hihin Ruslan 2016-11-27 10:32 ` Ivan Zakharyaschev 2016-11-27 11:11 ` Hihin Ruslan 2016-11-27 11:54 ` Ivan Zakharyaschev 2016-12-02 12:20 ` Ivan Zakharyaschev 2016-12-02 12:34 ` Ivan Zakharyaschev 2016-12-02 13:09 ` Ivan Zakharyaschev 2016-12-03 14:56 ` Hihin Ruslan 2016-12-03 21:19 ` Ivan Zakharyaschev 2016-12-03 23:53 ` Ivan Zakharyaschev 2016-12-04 9:40 ` Hihin Ruslan 2016-12-04 10:11 ` Ivan Zakharyaschev 2016-11-27 11:12 ` Ivan Zakharyaschev [this message] 2016-11-29 12:00 ` [devel] [PATCH] verify-elf: honor RUNPATH, too ; was: " Ivan Zakharyaschev 2016-11-19 4:11 ` [devel] Что такое runpath ? Hihin Ruslan 2016-11-19 4:20 ` Hihin Ruslan 2016-11-19 4:39 ` Hihin Ruslan 2016-11-25 18:07 ` Ivan Zakharyaschev
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=alpine.LFD.2.20.1611271406170.13365@imap.altlinux.org \ --to=imz@altlinux.org \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git