Skip to content
This repository was archived by the owner on Nov 8, 2023. It is now read-only.

Commit 3a5bb50

Browse files
Romeusshuahkh
authored andcommitted
cpupower: fix lib default installation path
Invocation the tool built with the default settings fails: $ cpupower cpupower: error while loading shared libraries: libcpupower.so.1: cannot open shared object file: No such file or directory The issue is that Makefile puts the library to "/usr/lib64" dir for a 64 bit machine. This is wrong. According to the "File hierarchy standard specification: https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.pdf "/usr/lib<qual>" dirs are intended for alternative-format libraries (e.g., "/usr/lib32" for 32-bit libraries on a 64-bit machine (optional)). The utility is built for the current machine and doesn't handle 'CROSS_COMPILE' and 'ARCH' env variables. It also doesn't change bit depth. So the result is always the same - binary for x86_64 architecture. Therefore the library should be put in the '/usr/lib' dir regardless of the build options. This is the case for all the distros that comply with the 'File Hierarchy Standard 3.0" by Linux Foundation. Most of the distros comply with it. For example, one can check this by examining the "/usr/lb64" dir on debian-based distros and find that it contains only "/usr/lib64/ld-linux-x86-64.so.2". And examine that "/usr/lib" contains both 32 and 64 bit code: find /usr/lib -name "*.so*" -type f | xargs file | grep 32-bit find /usr/lib -name "*.so*" -type f | xargs file | grep 64-bit Fix the issue by changing library destination dir to "/usr/lib". Signed-off-by: Roman Storozhenko <romeusmeister@gmail.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
1 parent cdaed24 commit 3a5bb50

File tree

1 file changed

+1
-9
lines changed

1 file changed

+1
-9
lines changed

tools/power/cpupower/Makefile

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ LANGUAGES = de fr it cs pt ka
6767
bindir ?= /usr/bin
6868
sbindir ?= /usr/sbin
6969
mandir ?= /usr/man
70+
libdir ?= /usr/lib
7071
includedir ?= /usr/include
7172
localedir ?= /usr/share/locale
7273
docdir ?= /usr/share/doc/packages/cpupower
@@ -94,15 +95,6 @@ RANLIB = $(CROSS)ranlib
9495
HOSTCC = gcc
9596
MKDIR = mkdir
9697

97-
# 64bit library detection
98-
include ../../scripts/Makefile.arch
99-
100-
ifeq ($(IS_64_BIT), 1)
101-
libdir ?= /usr/lib64
102-
else
103-
libdir ?= /usr/lib
104-
endif
105-
10698
# Now we set up the build system
10799
#
108100

0 commit comments

Comments
 (0)