When using the "help -k" command in the 5.12 kernel, it was found that the
gcc_version character string was displayed as 0.0.0.
Check the value of the proc_version string to know,
crash> help -k
...
proc_version: Linux version 5.12.0-rc2kexec+ (root@bogon) (gcc (GCC) 7.3.1
20180303 (Red Hat 7.3.1-6), GNU ld version 2.28-13.fc21.loongson.6) #30
SMP PREEMPT Thu Apr 22 09:04:57 HKT 2021
...
Therefore, the "gcc (GCC)" character should be searched to obtain the correct
character string "gcc_version" value.
Signed-off-by: Youling Tang <tangyouling(a)loongson.cn>
---
kernel.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/kernel.c b/kernel.c
index 528f6ee..a1872c2 100644
--- a/kernel.c
+++ b/kernel.c
@@ -1103,9 +1103,13 @@ verify_version(void)
/*
* Keeping the gcc version with #define's is getting out of hand.
*/
- if ((p1 = strstr(kt->proc_version, "gcc version "))) {
+ if ((p1 = strstr(kt->proc_version, "gcc version ")) ||
+ (p1 = strstr(kt->proc_version, "gcc (GCC) "))) {
BZERO(buf, BUFSIZE);
- p1 += strlen("gcc version ");
+ if (strstr(kt->proc_version, "gcc version "))
+ p1 += strlen("gcc version ");
+ else
+ p1 += strlen("gcc (GCC) ");
p2 = buf;
while (((*p1 >= '0') && (*p1 <= '9')) || (*p1 ==
'.')) {
if (*p1 == '.')
@@ -3661,7 +3665,7 @@ module_init(void)
modules_found = TRUE;
break;
}
- }
+ }
if (!modules_found) {
error(WARNING,
--
2.1.0