[lldb-dev] [3.7 Release] RC1 has been tagged, Testing Phase I begins

Hans Wennborg hans at chromium.org
Mon Jul 20 15:20:05 PDT 2015


On Mon, Jul 20, 2015 at 3:15 PM, Dimitry Andric <dimitry at andric.com> wrote:
> On 20 Jul 2015, at 23:34, Hans Wennborg <hans at chromium.org> wrote:
>>
>> On Sun, Jul 19, 2015 at 8:32 AM, Dimitry Andric <dimitry at andric.com> wrote:
> ...
>>> The line can be replaced with this instead:
>>>
>>>      rpath=`objdump -x $Candidate | sed -ne'/RPATH/{s/^ *RPATH *//;p;}'`
>>
>> How about just guarding it with an if statement? I'm worried about
>> adding non-obvious commands to the script, both for making it harder
>> to understand and for portability.
>
> It should be portable enough, as this works with with BSD and GNU sed,
> but it may indeed be harder to understand.  So how about this:
>
> Index: test-release.sh
> ===================================================================
> --- test-release.sh     (revision 242721)
> +++ test-release.sh     (working copy)
> @@ -359,10 +359,12 @@ function clean_RPATH() {
>    local InstallPath="$1"
>    for Candidate in `find $InstallPath/{bin,lib} -type f`; do
>      if file $Candidate | grep ELF | egrep 'executable|shared object' > /dev/null 2>&1 ; then
> -      rpath=`objdump -x $Candidate | grep 'RPATH' | sed -e's/^ *RPATH *//'`
> -      if [ -n "$rpath" ]; then
> -        newrpath=`echo $rpath | sed -e's/.*\(\$ORIGIN[^:]*\).*/\1/'`
> -        chrpath -r $newrpath $Candidate 2>&1 > /dev/null 2>&1
> +      if rpath=`objdump -x $Candidate | grep 'RPATH'` ; then
> +        rpath=`echo $rpath | sed -e's/^ *RPATH *//'`
> +        if [ -n "$rpath" ]; then
> +          newrpath=`echo $rpath | sed -e's/.*\(\$ORIGIN[^:]*\).*/\1/'`
> +          chrpath -r $newrpath $Candidate 2>&1 > /dev/null 2>&1
> +        fi
>        fi
>      fi
>    done

Looks great, please commit.

Thanks,
Hans



More information about the lldb-dev mailing list