File procinfo-gcc.dif of Package procinfo
--- routines.c
+++ routines.c 2008-04-25 19:18:18.282206402 +0200
@@ -269,6 +269,11 @@ make_version (FILE * versionfp)
fseek (versionfp, 0L, SEEK_SET);
fgets (line, sizeof (line), versionfp);
+ there = line;
+ while ((here = strchr(there, '[')))
+ if ((there = strchr(here, ']')))
+ memset(here, ' ', there-here+1);
+
ret = sscanf (line, "Linux version %s (%[^)]) (gcc %[^)]) #%s %[^\n]",
ver, host, gcc, compno, date);
@@ -277,6 +282,8 @@ make_version (FILE * versionfp)
ver, host, gcc, compno, date);
if (ret != 5) /* Maybe even one layer more */
ret = sscanf (line, "Linux version %s (%[^)]) (gcc %[^(] (%*[^)]) (%*[^)])) #%s %[^\n]", ver, host, gcc, compno, date);
+ if (ret != 5) /* Oogh */
+ ret = sscanf (line, "Linux version %s (%[^)]) (gcc %[^(] (%*[^)]) (%*[^)])%*[ ]) #%s %[^\n]", ver, host, gcc, compno, date);
if (ret == 3) { /* At least we've got ver & host right... */
strcpy (gcc, "[can't parse]");