[elbe-devel] [PATCH] Make SDK install script buster compatible

Bastian Germann bage at linutronix.de
Wed Oct 23 12:28:22 CEST 2019


Am 23.10.19 um 11:54 schrieb Torben Hohn:
> On Wed, Oct 23, 2019 at 10:08:27AM +0200, John Ogness wrote:
>> On 2019-10-22, bage at linutronix.de wrote:
>>> From: Bastian Germann <bage at linutronix.de>
>>>
>>> The SDK install script searches for ld-linux.so* in $native_sysroot/lib which
>>
>> No, it searches for ld-linux*
>>
>>> is not available on buster (tested for armhf target).
>>>
>>> Search the whole $native_sysroot directory to find files in usr/lib as well.
>>>
>>> Signed-off-by: Bastian Germann <bage at linutronix.de>
>>> ---
>>>  elbepack/makofiles/toolchain-shar-extract.sh.mako | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/elbepack/makofiles/toolchain-shar-extract.sh.mako b/elbepack/makofiles/toolchain-shar-extract.sh.mako
>>> index a56d1ae8c..7e432d125 100644
>>> --- a/elbepack/makofiles/toolchain-shar-extract.sh.mako
>>> +++ b/elbepack/makofiles/toolchain-shar-extract.sh.mako
>>> @@ -282,7 +282,7 @@ fi
>>>  
>>>  # fix dynamic loader paths in all ELF SDK binaries
>>>  native_sysroot=$target_sdk_dir/sysroots/host
>>> -dl_path=$($SUDO_EXEC find $native_sysroot/lib -name "ld-linux*")
>>> +dl_path=$($SUDO_EXEC find $native_sysroot -name "ld-linux.so*")
>>
>> This is a problem for several reasons:
>>
>> 1. ld-linux.so* does not match the dynamic loader for other
>>    architectures
> 
> hmm... please name them.
> this is a mako template, we know the target architecture, and the target
> suite.
> 
> we can change from searching to a "hardcoded" matrix[suite][arch]
> we have something similar already in elbepack/xmldefaults.py
> this is not suite dependent though.
> 
> this will at least make the generated script simpler.
> I prefer having somthing implemented in python, which yields
> less moving parts in the generated shell scripts.
> 
> 
> 
>>
>> 2. searching that openly could match unintentional files
>>
>> IMO it should look more like this:
>>
>> dl_path=''
>> for p in $native_sysroot/lib $native_sysroot/usr/lib; do
>>     test -d $p && ! test -L $p || continue
>>     dl_path=$($SUDO_EXEC find $p -name 'ld-linux*')
>>     break
>> done
>>
>> Actually, there are quite a few things that the script does that I find
>> horribly hacky. But the above suggestion should at least let things work
>> as good as before, but for stretch and buster.
> 
> can you list them ?
> i am not happy at all with this script.
> 
> This script is based on a script from yocto.
> but we should start to move more logic into mako/python.
> 
> hmm... that said, i actually dont think, that the dynamic linker
> actually changes, maybe its just the /lib link, that is broken in the
> sysroot ?

There is no /lib in the sysroot. So adding it as a symbolic link
pointing to /usr/lib would also fix the problem indeed.

> 
> i mean... the linker should always be /lib/ld-linux*, shouldnt it ?
> where that link points to, is another question, though.
> 
>>
>> John Ogness
> 



More information about the elbe-devel mailing list