| #!/bin/bash |
| # Copyright 2013 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Changes all RPATHs in a given directory from XORIGIN to $ORIGIN |
| # See the comment about XORIGIN in instrumented_libraries.gyp |
| |
| # Fixes rpath from XORIGIN to $ORIGIN in a single file $1. |
| function fix_rpath { |
| if [ -w "$1" ] |
| then |
| # Only attempt to fix RPATH if the entry actually exists. |
| # FIXME(eugenis): find out why zlib1g on Precise doesn't get RPATH set. |
| if chrpath -l $1 |
| then |
| echo "fix_rpaths.sh: fixing $1" |
| chrpath -r $(chrpath $1 | cut -d " " -f 2 | sed s/XORIGIN/\$ORIGIN/g \ |
| | sed s/RPATH=//g) $1 |
| fi |
| else |
| # FIXME(eugenis): libcups2 DSOs are created non-writable, causing this |
| # script to fail. As a temporary measure, ignore non-writable files. |
| echo "fix_rpaths.sh: skipping non-writable file $1" |
| fi |
| } |
| |
| for i in $(find $1 | grep -P "\.so(.\d+)*$"); do |
| fix_rpath $i |
| done |