Skip to content

Commit 17cc2ea

Browse files
fbsdanobi
authored andcommitted
build: Cleanup cmake search paths
PATHS are just additional paths to search after it's done searching the default paths([1]) so these additional paths are useless. Comparing the paths between old and new by changing the libname from `bcc` to `pancake` and using: ``` /usr/local/bin/cmake .. -DCMAKE_FIND_DEBUG_MODE=true 2>&1 1>/dev/null | \ grep LIBBCC_LIBRARIES -A 40 ``` Shows that the only diff is ``` ➜ /tmp diff -u old new --- old 2021-05-13 21:55:12.000000000 +0200 +++ new 2021-05-13 21:55:07.000000000 +0200 @@ -25,5 +25,3 @@ /opt/lib/(lib)pancake(\.so|\.a) /opt/(lib)pancake(\.so|\.a) /usr/lib/X11/(lib)pancake(\.so|\.a) -/opt/local/lib/(lib)pancake(\.so|\.a) -/sw/lib/(lib)pancake(\.so|\.a) ``` The full list considered is: ``` /usr/local/sbin/(lib)pancake(\.so|\.a) /usr/local/bin/(lib)pancake(\.so|\.a) /usr/sbin/(lib)pancake(\.so|\.a) /usr/bin/(lib)pancake(\.so|\.a) /sbin/(lib)pancake(\.so|\.a) /bin/(lib)pancake(\.so|\.a) /usr/games/(lib)pancake(\.so|\.a) /usr/local/games/(lib)pancake(\.so|\.a) /snap/bin/(lib)pancake(\.so|\.a) /usr/local/lib/x86_64-linux-gnu/(lib)pancake(\.so|\.a) /usr/local/lib/(lib)pancake(\.so|\.a) /usr/local/(lib)pancake(\.so|\.a) /usr/lib/x86_64-linux-gnu/(lib)pancake(\.so|\.a) /usr/lib/(lib)pancake(\.so|\.a) /usr/(lib)pancake(\.so|\.a) /lib/x86_64-linux-gnu/(lib)pancake(\.so|\.a) /lib/(lib)pancake(\.so|\.a) /usr/X11R6/lib/x86_64-linux-gnu/(lib)pancake(\.so|\.a) /usr/X11R6/lib/(lib)pancake(\.so|\.a) /usr/X11R6/(lib)pancake(\.so|\.a) /usr/pkg/lib/x86_64-linux-gnu/(lib)pancake(\.so|\.a) /usr/pkg/lib/(lib)pancake(\.so|\.a) /usr/pkg/(lib)pancake(\.so|\.a) /opt/lib/x86_64-linux-gnu/(lib)pancake(\.so|\.a) /opt/lib/(lib)pancake(\.so|\.a) /opt/(lib)pancake(\.so|\.a) /usr/lib/X11/(lib)pancake(\.so|\.a) ``` When we want to also search a subdir we should set `PATH_SUFFIXES` instead, for libelf this changes the searchpath from ``` /usr/local/sbin/(lib)elf(\.so|\.a) /usr/local/bin/(lib)elf(\.so|\.a) /usr/sbin/(lib)elf(\.so|\.a) /usr/bin/(lib)elf(\.so|\.a) /sbin/(lib)elf(\.so|\.a) /bin/(lib)elf(\.so|\.a) /usr/games/(lib)elf(\.so|\.a) /usr/local/games/(lib)elf(\.so|\.a) /snap/bin/(lib)elf(\.so|\.a) /usr/local/lib/x86_64-linux-gnu/(lib)elf(\.so|\.a) /usr/local/lib/(lib)elf(\.so|\.a) /usr/local/(lib)elf(\.so|\.a) ``` ``` /usr/local/sbin/libelf/(lib)elf(\.so|\.a) /usr/local/sbin/(lib)elf(\.so|\.a) /usr/local/bin/libelf/(lib)elf(\.so|\.a) /usr/local/bin/(lib)elf(\.so|\.a) /usr/sbin/libelf/(lib)elf(\.so|\.a) /usr/sbin/(lib)elf(\.so|\.a) /usr/bin/libelf/(lib)elf(\.so|\.a) /usr/bin/(lib)elf(\.so|\.a) /sbin/libelf/(lib)elf(\.so|\.a) /sbin/(lib)elf(\.so|\.a) /bin/libelf/(lib)elf(\.so|\.a) /bin/(lib)elf(\.so|\.a) /usr/games/libelf/(lib)elf(\.so|\.a) /usr/games/(lib)elf(\.so|\.a) /usr/local/games/libelf/(lib)elf(\.so|\.a) /usr/local/games/(lib)elf(\.so|\.a) /snap/bin/libelf/(lib)elf(\.so|\.a) /snap/bin/(lib)elf(\.so|\.a) /usr/local/lib/x86_64-linux-gnu/libelf/(lib)elf(\.so|\.a) /usr/local/lib/x86_64-linux-gnu/(lib)elf(\.so|\.a) /usr/local/lib/libelf/(lib)elf(\.so|\.a) /usr/local/lib/(lib)elf(\.so|\.a) /usr/local/libelf/(lib)elf(\.so|\.a) /usr/local/(lib)elf(\.so|\.a) /usr/lib/x86_64-linux-gnu/libelf/(lib)elf(\.so|\.a) ``` Users that do want their software in /opt or /sw for whatever reason should instead modify the cmake search path, e.g. using `-DCMAKE_LIBRARY_PATH=/sw/junk` the search turns into ``` find_library considered the following locations: /sw/junk/(lib)bcc(\.so|\.a) /usr/local/sbin/(lib)bcc(\.so|\.a) /usr/local/bin/(lib)bcc(\.so|\.a) ```
1 parent 253ce6f commit 17cc2ea

6 files changed

+4
-74
lines changed

cmake/FindLibBcc.cmake

-21
Original file line numberDiff line numberDiff line change
@@ -21,47 +21,26 @@ find_path (LIBBCC_INCLUDE_DIRS
2121
NAMES
2222
bcc/libbpf.h
2323
PATHS
24-
/usr/include
25-
/usr/include/bcc
26-
/usr/local/include
27-
/usr/local/include/libbcc
28-
/usr/local/include/bcc
29-
/opt/local/include
30-
/opt/local/include/libbcc
31-
/sw/include
32-
/sw/include/libbcc
3324
ENV CPATH)
3425

3526
find_library (LIBBCC_LIBRARIES
3627
NAMES
3728
bcc
3829
PATHS
39-
/usr/lib
40-
/usr/local/lib
41-
/opt/local/lib
42-
/sw/lib
4330
ENV LIBRARY_PATH
4431
ENV LD_LIBRARY_PATH)
4532

4633
find_library (LIBBCC_BPF_LIBRARY_STATIC
4734
NAMES
4835
bcc_bpf
4936
PATHS
50-
/usr/lib
51-
/usr/local/lib
52-
/opt/local/lib
53-
/sw/lib
5437
ENV LIBRARY_PATH
5538
ENV LD_LIBRARY_PATH)
5639

5740
find_library (LIBBCC_LOADER_LIBRARY_STATIC
5841
NAMES
5942
bcc-loader-static
6043
PATHS
61-
/usr/lib
62-
/usr/local/lib
63-
/opt/local/lib
64-
/sw/lib
6544
ENV LIBRARY_PATH
6645
ENV LD_LIBRARY_PATH)
6746

cmake/FindLibBfd.cmake

-16
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,12 @@ find_path (LIBBFD_INCLUDE_DIRS
1616
NAMES
1717
bfd.h
1818
PATHS
19-
/usr/include
20-
/usr/local/include
21-
/opt/local/include
22-
/sw/include
2319
ENV CPATH)
2420

2521
find_library (LIBBFD_LIBRARIES
2622
NAMES
2723
bfd
2824
PATHS
29-
/lib
30-
/usr/lib
31-
/usr/local/lib
32-
/opt/local/lib
33-
/usr/lib/x86_64-linux-gnu/
34-
/sw/lib
3525
ENV LIBRARY_PATH
3626
ENV LD_LIBRARY_PATH)
3727

@@ -42,12 +32,6 @@ find_library (LIBIBERTY_LIBRARIES
4232
NAMES
4333
libiberty.a
4434
PATHS
45-
/lib
46-
/usr/lib
47-
/usr/local/lib
48-
/opt/local/lib
49-
/usr/lib/x86_64-linux-gnu/
50-
/sw/lib
5135
ENV LIBRARY_PATH
5236
ENV LD_LIBRARY_PATH)
5337

cmake/FindLibBpf.cmake

-8
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,12 @@ find_path (LIBBPF_INCLUDE_DIRS
1616
bpf/btf.h
1717
bpf/libbpf.h
1818
PATHS
19-
/usr/include
20-
/usr/local/include
21-
/opt/local/include
22-
/sw/include
2319
ENV CPATH)
2420

2521
find_library (LIBBPF_LIBRARIES
2622
NAMES
2723
bpf
2824
PATHS
29-
/usr/lib
30-
/usr/local/lib
31-
/opt/local/lib
32-
/sw/lib
3325
ENV LIBRARY_PATH
3426
ENV LD_LIBRARY_PATH)
3527

cmake/FindLibElf.cmake

+4-13
Original file line numberDiff line numberDiff line change
@@ -21,26 +21,17 @@ endif (LIBELF_LIBRARIES AND LIBELF_INCLUDE_DIRS)
2121
find_path (LIBELF_INCLUDE_DIRS
2222
NAMES
2323
libelf.h
24+
PATH_SUFFIXES
25+
libelf
2426
PATHS
25-
/usr/include
26-
/usr/include/libelf
27-
/usr/local/include
28-
/usr/local/include/libelf
29-
/opt/local/include
30-
/opt/local/include/libelf
31-
/sw/include
32-
/sw/include/libelf
3327
ENV CPATH)
3428

3529
find_library (LIBELF_LIBRARIES
3630
NAMES
3731
elf
32+
PATH_SUFFIXES
33+
libelf
3834
PATHS
39-
/usr/lib
40-
/usr/local/lib
41-
/opt/local/lib
42-
/usr/lib/x86_64-linux-gnu/
43-
/sw/lib
4435
ENV LIBRARY_PATH
4536
ENV LD_LIBRARY_PATH)
4637

cmake/FindLibOpcodes.cmake

-10
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,12 @@ find_path (LIBOPCODES_INCLUDE_DIRS
1414
NAMES
1515
dis-asm.h
1616
PATHS
17-
/usr/include
18-
/usr/local/include
19-
/opt/local/include
20-
/sw/include
2117
ENV CPATH)
2218

2319
find_library (LIBOPCODES_LIBRARIES
2420
NAMES
2521
opcodes
2622
PATHS
27-
/lib
28-
/usr/lib
29-
/usr/local/lib
30-
/opt/local/lib
31-
/usr/lib/x86_64-linux-gnu/
32-
/sw/lib
3323
ENV LIBRARY_PATH
3424
ENV LD_LIBRARY_PATH)
3525

cmake/FindLibZ.cmake

-6
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,6 @@ find_library(LIBZ_LIBRARIES
88
NAMES
99
libz.a
1010
PATHS
11-
/lib
12-
/usr/lib
13-
/usr/local/lib
14-
/opt/local/lib
15-
/usr/lib/x86_64-linux-gnu/
16-
/sw/lib
1711
ENV LIBRARY_PATH
1812
ENV LD_LIBRARY_PATH)
1913

0 commit comments

Comments
 (0)