On Mon, 21 Jun 2004 09:29:46 -0700, 
"Randy.Dunlap" <[EMAIL PROTECTED]> wrote:
>On Mon, 21 Jun 2004 18:19:56 +0200 Xavier Bru wrote:
>| There is a problem with the all kallsyms support in 2.6.7 
>| scripts/kallsyms.c.
>| One solution is to exclude from the symbol table the symbols used for 
>| building it (As was provided in KDB patch :-)
>
>Is this the same problem that Keith Owens made a patch for
>against 2.6.7-rc3 on 2004-june-15?
>Subject: [patch 2.6.7-rc3] When two kallsyms passes are not enough
>
>http://marc.theaimsgroup.com/?l=linux-kernel&m=108728234402407&w=2

Yes.  That patch has been refined and sent to Andrew Morton, it should
be in 2.6.8-*.  The critical fix is -

Index: 2.6.7-kallsyms/scripts/kallsyms.c
===================================================================
--- 2.6.7-kallsyms.orig/scripts/kallsyms.c      2004-06-20 20:12:08.000000000 +1000
+++ 2.6.7-kallsyms/scripts/kallsyms.c   2004-06-20 23:38:46.000000000 +1000
@@ -72,7 +72,15 @@ symbol_valid(struct sym_entry *s)
                        return 0;
        }
 
-       if (strstr(s->sym, "_compiled."))
+       /* Exclude symbols which vary between passes.  Passes 1 and 2 must have
+        * identical symbol lists.  The kallsyms_* symbols below are only added
+        * after pass 1, they would be included in pass 2 when --all-symbols is
+        * specified so exclude them to get a stable symbol list.
+        */
+       if (strstr(s->sym, "_compiled.") ||
+           strcmp(s->sym, "kallsyms_addresses") == 0 || 
+           strcmp(s->sym, "kallsyms_num_syms") == 0 || 
+           strcmp(s->sym, "kallsyms_names") == 0)
                return 0;
 
        return 1;

---------------------------
Use http://oss.sgi.com/ecartis to modify your settings or to unsubscribe.

Reply via email to