[PATCH] sdk-files/files/relocate-sdk.sh: find only ELF executable before apply patchelf

20 views
Skip to first unread message

srinuv...@siemens.com

unread,
Aug 30, 2024, 2:13:39 AM8/30/24
to isar-...@googlegroups.com, jan.k...@siemens.com, Srinuvasan A
From: Srinuvasan A <srinuv...@siemens.com>

With the present implementation find statemnt return the regular
executable files under bin,sbin and usr/lib/gcc* which contains the
script files as well.

Actually we are tuning interp and rpath only for ELF executable, hence
added additional condition in the find statement to return only ELF
executable.

With this change we are avoiding unncessarily checking the interpreter
for non ELF executable files.

Signed-off-by: Srinuvasan A <srinuv...@siemens.com>
---
meta/recipes-devtools/sdk-files/files/relocate-sdk.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-devtools/sdk-files/files/relocate-sdk.sh b/meta/recipes-devtools/sdk-files/files/relocate-sdk.sh
index 82f63b30..e02e71f4 100755
--- a/meta/recipes-devtools/sdk-files/files/relocate-sdk.sh
+++ b/meta/recipes-devtools/sdk-files/files/relocate-sdk.sh
@@ -27,7 +27,7 @@ fi

echo -n "Adjusting path of SDK to '${new_sdkroot}'... "

-for binary in $(find ${sdkroot}/usr/bin ${sdkroot}/usr/sbin ${sdkroot}/usr/lib/gcc* -executable -type f); do
+for binary in $(find ${sdkroot}/usr/bin ${sdkroot}/usr/sbin ${sdkroot}/usr/lib/gcc* -executable -type f -exec file {} \; | grep ELF | awk -F ':' '{ print $1 }'); do
interpreter=$(patchelf --print-interpreter ${binary} 2>/dev/null)
oldpath=${interpreter%/lib*/ld-linux*}
interpreter=${interpreter#${oldpath}}
--
2.34.1

Jan Kiszka

unread,
Aug 30, 2024, 2:29:52 AM8/30/24
to srinuv...@siemens.com, isar-...@googlegroups.com
On 30.08.24 08:13, srinuv...@siemens.com wrote:
> From: Srinuvasan A <srinuv...@siemens.com>
>
> With the present implementation find statemnt return the regular

"statement"

> executable files under bin,sbin and usr/lib/gcc* which contains the
> script files as well.
>
> Actually we are tuning interp and rpath only for ELF executable, hence
> added additional condition in the find statement to return only ELF
> executable.
>
> With this change we are avoiding unncessarily checking the interpreter
> for non ELF executable files.
>

"unnecessarily"

Just for clarity: Is this an optimization or a bug fix?

Thanks,
Jan

> Signed-off-by: Srinuvasan A <srinuv...@siemens.com>
> ---
> meta/recipes-devtools/sdk-files/files/relocate-sdk.sh | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta/recipes-devtools/sdk-files/files/relocate-sdk.sh b/meta/recipes-devtools/sdk-files/files/relocate-sdk.sh
> index 82f63b30..e02e71f4 100755
> --- a/meta/recipes-devtools/sdk-files/files/relocate-sdk.sh
> +++ b/meta/recipes-devtools/sdk-files/files/relocate-sdk.sh
> @@ -27,7 +27,7 @@ fi
>
> echo -n "Adjusting path of SDK to '${new_sdkroot}'... "
>
> -for binary in $(find ${sdkroot}/usr/bin ${sdkroot}/usr/sbin ${sdkroot}/usr/lib/gcc* -executable -type f); do
> +for binary in $(find ${sdkroot}/usr/bin ${sdkroot}/usr/sbin ${sdkroot}/usr/lib/gcc* -executable -type f -exec file {} \; | grep ELF | awk -F ':' '{ print $1 }'); do
> interpreter=$(patchelf --print-interpreter ${binary} 2>/dev/null)
> oldpath=${interpreter%/lib*/ld-linux*}
> interpreter=${interpreter#${oldpath}}

--
Siemens AG, Technology
Linux Expert Center

Srinuvasan Arjunan

unread,
Aug 30, 2024, 2:38:18 AM8/30/24
to Jan Kiszka, srinuv...@siemens.com, isar-...@googlegroups.com
On Fri, Aug 30, 2024 at 11:59 AM 'Jan Kiszka' via isar-users <isar-...@googlegroups.com> wrote:
On 30.08.24 08:13, srinuv...@siemens.com wrote:
> From: Srinuvasan A <srinuv...@siemens.com>
>
> With the present implementation find statemnt return the regular

"statement"

> executable files under bin,sbin and usr/lib/gcc* which contains the
> script files as well.
>
> Actually we are tuning interp and rpath only for ELF executable, hence
> added additional condition in the find statement to return only ELF
> executable.
>
> With this change we are avoiding unncessarily checking the interpreter
> for non ELF executable files.
>

"unnecessarily"

Just for clarity: Is this an optimization or a bug fix?

Thanks,
Jan

   This is the optimization i would say

   Thanks,
    Srinu 

> Signed-off-by: Srinuvasan A <srinuv...@siemens.com>
> ---
>  meta/recipes-devtools/sdk-files/files/relocate-sdk.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta/recipes-devtools/sdk-files/files/relocate-sdk.sh b/meta/recipes-devtools/sdk-files/files/relocate-sdk.sh
> index 82f63b30..e02e71f4 100755
> --- a/meta/recipes-devtools/sdk-files/files/relocate-sdk.sh
> +++ b/meta/recipes-devtools/sdk-files/files/relocate-sdk.sh
> @@ -27,7 +27,7 @@ fi

>  echo -n "Adjusting path of SDK to '${new_sdkroot}'... "

> -for binary in $(find ${sdkroot}/usr/bin ${sdkroot}/usr/sbin ${sdkroot}/usr/lib/gcc* -executable -type f); do
> +for binary in $(find ${sdkroot}/usr/bin ${sdkroot}/usr/sbin ${sdkroot}/usr/lib/gcc* -executable -type f -exec file {} \; | grep ELF | awk -F ':' '{ print $1 }'); do
>       interpreter=$(patchelf --print-interpreter ${binary} 2>/dev/null)
>       oldpath=${interpreter%/lib*/ld-linux*}
>       interpreter=${interpreter#${oldpath}}

--
Siemens AG, Technology
Linux Expert Center

--
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/isar-users/87190d5e-7741-43ce-9a91-9bf7f4278496%40siemens.com.

Srinuvasan Arjunan

unread,
Sep 3, 2024, 9:57:56 PM9/3/24
to isar-users
      Hello All,

          Can you please merge this changes if no objection.

Many thanks,
Srinu 

Uladzimir Bely

unread,
Sep 6, 2024, 1:58:22 AM9/6/24
to srinuv...@siemens.com, isar-...@googlegroups.com
Applied to next (mentioned typos in commit message corrected), thanks.

--
Best regards,
Uladzimir.
Reply all
Reply to author
Forward
0 new messages