29 06:21:31 MSK 2016
Using the directories specified in the DT_RPATH dynamic section
attribute of the binary if present and DT_RUNPATH attribute does not
exist. Use of DT_RPATH is deprecated.
---
scripts/verify-elf.in | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/scripts/verify-elf.in b/scripts/verify-elf.in
index 51ed9ce..412a30d 100755
--- a/scripts/verify-elf.in
+++ b/scripts/verify-elf.in
@@ -327,7 +327,7 @@ run_eu()
VerifyELF()
{
- local f preload t objdump_info fname lint_info textrel
+ local f preload t objdump_info fname lint_info textrel rpath
f="$1"; shift
preload="$1"; shift
elf_segments=
@@ -376,8 +376,11 @@ VerifyELF()
fi
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"||$1=="RUNPATH") print $2}' |tr -s : ' ' |sed -e "s|\$ORIGIN|${fname%/*}|g")"
+ rpath="$(printf %s "$objdump_info" |awk '{if ($1=="RUNPATH") print $2}' |tr -s : ' ' |sed -e "s|\$ORIGIN|${fname%/*}|g")"
+ if [ -z "$rpath" ]; then
+ rpath="$(printf %s "$objdump_info" |awk '{if ($1=="RPATH") print $2}' |tr -s : ' ' |sed -e "s|\$ORIGIN|${fname%/*}|g")"
+ fi
+ verify_unresolved "$f" "$preload" "$fname" "$rpath"
if [ -z "${t##*ELF 32-bit*}" ]; then
verify_lfs "$f"
fi
--
2.7.4
> началао заданиясборку того же тега 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
>> >
>>
>
--1807885841-691647854-1480420815=:13365--
Devel