[PATCH] tools/power/x86/intel-speed-select: Use pkg-config for libnl-3.0 detection

Khem Raj posted 1 patch 1 month, 1 week ago
tools/power/x86/intel-speed-select/Makefile | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
[PATCH] tools/power/x86/intel-speed-select: Use pkg-config for libnl-3.0 detection
Posted by Khem Raj 1 month, 1 week ago
Replace hardcoded libnl3 include path with pkg-config detection to
improve portability across different distributions and build environments.

The previous implementation used a fixed path constructed from the
compiler's sysroot, which could fail on systems with non-standard
library installations. Now the build system:
- Attempts to detect libnl-3.0 include paths using pkg-config
- Falls back to /usr/include/libnl3 if pkg-config is unavailable
- Maintains backward compatibility with existing build configurations

This ensures the tool builds correctly on a wider range of systems
while preserving existing behavior when pkg-config is not present.

Closes:https://bugzilla.kernel.org/show_bug.cgi?id=220819
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 tools/power/x86/intel-speed-select/Makefile | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/tools/power/x86/intel-speed-select/Makefile b/tools/power/x86/intel-speed-select/Makefile
index 8d3a02a20f3d..6b299aae2ded 100644
--- a/tools/power/x86/intel-speed-select/Makefile
+++ b/tools/power/x86/intel-speed-select/Makefile
@@ -13,7 +13,13 @@ endif
 # Do not use make's built-in rules
 # (this improves performance and avoids hard-to-debug behaviour);
 MAKEFLAGS += -r
-override CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include -I$(shell $(CC) -print-sysroot)/usr/include/libnl3
+
+NL3_CFLAGS = $(shell pkg-config --cflags libnl-3.0 2>/dev/null)
+ifeq ($(NL3_CFLAGS),)
+NL3_CFLAGS = -I/usr/include/libnl3
+endif
+
+override CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include $(NL3_CFLAGS)
 override LDFLAGS += -lnl-genl-3 -lnl-3
 
 ALL_TARGETS := intel-speed-select
Re: [PATCH] tools/power/x86/intel-speed-select: Use pkg-config for libnl-3.0 detection
Posted by srinivas pandruvada 1 month, 1 week ago
On Mon, 2025-12-29 at 12:45 -0800, Khem Raj wrote:
> Replace hardcoded libnl3 include path with pkg-config detection to
> improve portability across different distributions and build
> environments.
> 
> The previous implementation used a fixed path constructed from the
> compiler's sysroot, which could fail on systems with non-standard
> library installations. Now the build system:
> - Attempts to detect libnl-3.0 include paths using pkg-config
> - Falls back to /usr/include/libnl3 if pkg-config is unavailable
> - Maintains backward compatibility with existing build configurations
> 
> This ensures the tool builds correctly on a wider range of systems
> while preserving existing behavior when pkg-config is not present.
> 

Thanks for the patch. Will include as part of next PULL request.

-Srinivas

> Closes:https://bugzilla.kernel.org/show_bug.cgi?id=220819
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  tools/power/x86/intel-speed-select/Makefile | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/power/x86/intel-speed-select/Makefile
> b/tools/power/x86/intel-speed-select/Makefile
> index 8d3a02a20f3d..6b299aae2ded 100644
> --- a/tools/power/x86/intel-speed-select/Makefile
> +++ b/tools/power/x86/intel-speed-select/Makefile
> @@ -13,7 +13,13 @@ endif
>  # Do not use make's built-in rules
>  # (this improves performance and avoids hard-to-debug behaviour);
>  MAKEFLAGS += -r
> -override CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include -
> I$(shell $(CC) -print-sysroot)/usr/include/libnl3
> +
> +NL3_CFLAGS = $(shell pkg-config --cflags libnl-3.0 2>/dev/null)
> +ifeq ($(NL3_CFLAGS),)
> +NL3_CFLAGS = -I/usr/include/libnl3
> +endif
> +
> +override CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include
> $(NL3_CFLAGS)
>  override LDFLAGS += -lnl-genl-3 -lnl-3
>  
>  ALL_TARGETS := intel-speed-select