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