aboutsummaryrefslogtreecommitdiffstats
path: root/build-root/scripts/set-rpath
blob: f20ff3f6f404b0b5a215acb37fc803457cea2c81 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/bash

# Copyright (c) 2015 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

if [ -z $1 ]; then
	echo "Please specify path"
	exit 1
fi

which chrpath &> /dev/null

if [ $? -ne 0 ] ; then
	echo "Please install chrpath tool"
	exit 1
fi

cd $1

libs=$(find * -type f -name \*.so\*)
execs=$(find * -type f -path bin/\* )

echo "Setting RPATH to $2 ..."

for i in $libs $execs; do
	# in case non-ELF file is found
	chrpath $i 2> /dev/null > /dev/null
	if [ $? -eq 0 ] ; then
		echo $i
		chrpath -r $2
	fi
done
dev->is_physfn) return 0; return iov->nr_virtfn; } #endif /* < 2.6.34 */ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 39) && \ (!(defined(RHEL_RELEASE_CODE) && \ RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6, 4))) #define kstrtoul strict_strtoul #endif /* < 2.6.39 */ #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0) && \ (!(defined(RHEL_RELEASE_CODE) && \ RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6, 3))) /* Check if INTX works to control irq's. * Set's INTX_DISABLE flag and reads it back */ static bool pci_intx_mask_supported(struct pci_dev *pdev) { bool mask_supported = false; uint16_t orig, new; pci_block_user_cfg_access(pdev); pci_read_config_word(pdev, PCI_COMMAND, &orig); pci_write_config_word(pdev, PCI_COMMAND, orig ^ PCI_COMMAND_INTX_DISABLE); pci_read_config_word(pdev, PCI_COMMAND, &new); if ((new ^ orig) & ~PCI_COMMAND_INTX_DISABLE) { dev_err(&pdev->dev, "Command register changed from " "0x%x to 0x%x: driver or hardware bug?\n", orig, new); } else if ((new ^ orig) & PCI_COMMAND_INTX_DISABLE) { mask_supported = true; pci_write_config_word(pdev, PCI_COMMAND, orig); } pci_unblock_user_cfg_access(pdev); return mask_supported; } static bool pci_check_and_mask_intx(struct pci_dev *pdev) { bool pending; uint32_t status; pci_block_user_cfg_access(pdev); pci_read_config_dword(pdev, PCI_COMMAND, &status); /* interrupt is not ours, goes to out */ pending = (((status >> 16) & PCI_STATUS_INTERRUPT) != 0); if (pending) { uint16_t old, new; old = status; if (status != 0) new = old & (~PCI_COMMAND_INTX_DISABLE); else new = old | PCI_COMMAND_INTX_DISABLE; if (old != new) pci_write_config_word(pdev, PCI_COMMAND, new); } pci_unblock_user_cfg_access(pdev); return pending; } #endif /* < 3.3.0 */