[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