From: Arne Fitzenreiter Date: Wed, 14 Jul 2021 17:57:58 +0000 (+0200) Subject: cpufrequtils: add some patches from the debian patchset X-Git-Tag: v2.27-core159~37 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f50b0cbf980b89f5673d0a85a49d1d387e94a6ac;p=ipfire-2.x.git cpufrequtils: add some patches from the debian patchset Signed-off-by: Arne Fitzenreiter --- diff --git a/lfs/cpufrequtils b/lfs/cpufrequtils index 2b9d6e0680..ddc03a18b5 100644 --- a/lfs/cpufrequtils +++ b/lfs/cpufrequtils @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2018 IPFire Team # +# Copyright (C) 2007-2021 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -33,7 +33,7 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) SUP_ARCH = x86_64 i586 PROG = cpufrequtils -PAK_VER = 9 +PAK_VER = 10 DEPS = @@ -78,6 +78,12 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cpufrequtils/0001-Only-x86-has-cpuid-instruction.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cpufrequtils/0003-cpufrequtils-aperf-Fix-MSR-read-on-32-bit.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cpufrequtils/0005-cpufrequtils-sysfs-increase-MAX_LINE_LEN.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cpufrequtils/0006-aperf-fix-compilation-on-x86-32-with-fPIC.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cpufrequtils/0007-po-add-missing-word-in-DE.patch + cd $(DIR_APP) && make cd $(DIR_APP) && make install diff --git a/src/patches/cpufrequtils/0001-Only-x86-has-cpuid-instruction.patch b/src/patches/cpufrequtils/0001-Only-x86-has-cpuid-instruction.patch new file mode 100644 index 0000000000..d3bc14d51b --- /dev/null +++ b/src/patches/cpufrequtils/0001-Only-x86-has-cpuid-instruction.patch @@ -0,0 +1,34 @@ +From f1b6bccf08f53295b2f7f448f28bbd37533c14a2 Mon Sep 17 00:00:00 2001 +From: Zhang Le +Date: Sun, 18 Jul 2010 02:05:28 +0800 +Subject: [PATCH 1/8] Only x86 has cpuid instruction + +Signed-off-by: Zhang Le +Signed-off-by: Dominik Brodowski +--- + utils/aperf.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/utils/aperf.c b/utils/aperf.c +index 627fb17..1c64501 100644 +--- a/utils/aperf.c ++++ b/utils/aperf.c +@@ -68,11 +68,15 @@ struct avg_perf_cpu_info + + static int cpu_has_effective_freq() + { ++#if defined(__i386__) || defined(__x86_64__) + /* largest base level */ + if (cpuid_eax(0) < 6) + return 0; + + return cpuid_ecx(6) & 0x1; ++#else ++ return 0; ++#endif + } + + /* +-- +1.7.10 + diff --git a/src/patches/cpufrequtils/0003-cpufrequtils-aperf-Fix-MSR-read-on-32-bit.patch b/src/patches/cpufrequtils/0003-cpufrequtils-aperf-Fix-MSR-read-on-32-bit.patch new file mode 100644 index 0000000000..308e73a5b6 --- /dev/null +++ b/src/patches/cpufrequtils/0003-cpufrequtils-aperf-Fix-MSR-read-on-32-bit.patch @@ -0,0 +1,35 @@ +From d4490efed068a552e8b67d52a0726458a224c9a0 Mon Sep 17 00:00:00 2001 +From: Frank Arnold +Date: Wed, 8 Dec 2010 17:39:14 +0100 +Subject: [PATCH 3/8] cpufrequtils aperf: Fix MSR read on 32-bit + +The cpufreq-aperf command does not work on 32-bit systems. The reason +for that is a wrong count argument passed to the read() call. Instead +of the buffer size, the size of the pointer to the buffer is used. On +64-bit systems this just happened to work, because we need to read an +8 byte value and a pointer has a size of 8 bytes on 64-bit. On 32-bit +systems only 4 bytes are read, which then triggers the error path. + +Signed-off-by: Frank Arnold +Reviewed-by: Thomas Renninger +Signed-off-by: Dominik Brodowski +--- + utils/aperf.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/utils/aperf.c b/utils/aperf.c +index 1c64501..6302f5a 100644 +--- a/utils/aperf.c ++++ b/utils/aperf.c +@@ -100,7 +100,7 @@ static int read_msr(int cpu, unsigned int idx, unsigned long long *val) + return -1; + if (lseek(fd, idx, SEEK_CUR) == -1) + goto err; +- if (read(fd, val, sizeof val) != sizeof *val) ++ if (read(fd, val, sizeof *val) != sizeof *val) + goto err; + close(fd); + return 0; +-- +1.7.10 + diff --git a/src/patches/cpufrequtils/0005-cpufrequtils-sysfs-increase-MAX_LINE_LEN.patch b/src/patches/cpufrequtils/0005-cpufrequtils-sysfs-increase-MAX_LINE_LEN.patch new file mode 100644 index 0000000000..94088300f9 --- /dev/null +++ b/src/patches/cpufrequtils/0005-cpufrequtils-sysfs-increase-MAX_LINE_LEN.patch @@ -0,0 +1,29 @@ +From 9f2efa7bc6969c10562ac2c720d50ff77083e5c2 Mon Sep 17 00:00:00 2001 +From: Roman Vasiyarov +Date: Mon, 25 Apr 2011 21:34:23 +0400 +Subject: [PATCH 5/8] cpufrequtils sysfs: increase MAX_LINE_LEN + +larger sysfs data (>255 bytes) was truncated and thus used improperly + +Signed-off-by: Roman Vasiyarov +Signed-off-by: Dominik Brodowski +--- + lib/sysfs.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/sysfs.c b/lib/sysfs.c +index 4e0edab..24dd563 100644 +--- a/lib/sysfs.c ++++ b/lib/sysfs.c +@@ -18,7 +18,7 @@ + #include "cpufreq.h" + + #define PATH_TO_CPU "/sys/devices/system/cpu/" +-#define MAX_LINE_LEN 255 ++#define MAX_LINE_LEN 4096 + #define SYSFS_PATH_MAX 255 + + /* helper function to read file from /sys into given buffer */ +-- +1.7.10 + diff --git a/src/patches/cpufrequtils/0006-aperf-fix-compilation-on-x86-32-with-fPIC.patch b/src/patches/cpufrequtils/0006-aperf-fix-compilation-on-x86-32-with-fPIC.patch new file mode 100644 index 0000000000..ee3adff75a --- /dev/null +++ b/src/patches/cpufrequtils/0006-aperf-fix-compilation-on-x86-32-with-fPIC.patch @@ -0,0 +1,46 @@ +From 9085ce6f615d9d2e0182d3ce029b882835bd0a6b Mon Sep 17 00:00:00 2001 +From: Matt Turner +Date: Tue, 26 Jul 2011 19:28:31 -0400 +Subject: [PATCH 6/8] aperf: fix compilation on x86-32 with -fPIC + +ebx is used to store the GOT pointer when compiled with -fPIC, so it's +not usable by inline assembly. + +https://bugs.gentoo.org/375967 + +Signed-off-by: Matt Turner +Signed-off-by: Dominik Brodowski +--- + utils/cpuid.h | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/utils/cpuid.h b/utils/cpuid.h +index 2bac69a..53da789 100644 +--- a/utils/cpuid.h ++++ b/utils/cpuid.h +@@ -5,9 +5,21 @@ static inline void __cpuid(unsigned int *eax, unsigned int *ebx, + unsigned int *ecx, unsigned int *edx) + { + /* ecx is often an input as well as an output. */ +- asm volatile("cpuid" ++ asm volatile( ++#if defined(__i386__) && defined(__PIC__) ++ "push %%ebx\n" ++ "cpuid\n" ++ "movl %%ebx, %1\n" ++ "pop %%ebx\n" ++#else ++ "cpuid\n" ++#endif + : "=a" (*eax), ++#if defined(__i386__) && defined(__PIC__) ++ "=r" (*ebx), ++#else + "=b" (*ebx), ++#endif + "=c" (*ecx), + "=d" (*edx) + : "0" (*eax), "2" (*ecx)); +-- +1.7.10 + diff --git a/src/patches/cpufrequtils/0007-po-add-missing-word-in-DE.patch b/src/patches/cpufrequtils/0007-po-add-missing-word-in-DE.patch new file mode 100644 index 0000000000..d116791b14 --- /dev/null +++ b/src/patches/cpufrequtils/0007-po-add-missing-word-in-DE.patch @@ -0,0 +1,28 @@ +From 26ce99ab92ae9f1f367a58b7858a96f4e1e6814c Mon Sep 17 00:00:00 2001 +From: Dominik Brodowski +Date: Fri, 29 Jul 2011 19:40:46 +0200 +Subject: [PATCH 7/8] po: add missing word in DE + +Reported-by: Michael Basse +Reported-by: +Signed-off-by: Dominik Brodowski +--- + po/de.po | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/po/de.po b/po/de.po +index 1da1f2b..ee793f5 100644 +--- a/po/de.po ++++ b/po/de.po +@@ -304,7 +304,7 @@ msgid "" + "modified\n" + msgstr "" + " -c CPU, --cpu CPU Nummer der CPU, deren Taktfrequenz-Einstellung\n" +-" werden soll\n" ++" verändert werden soll\n" + + #: utils/set.c:39 + #, c-format +-- +1.7.10 +