Skip to content

Commit b590cdd

Browse files
committed
kdb: fix compile error without CONFIG_KALLSYMS
If CONFIG_KGDB_KDB is set and CONFIG_KALLSYMS is not set the kernel will fail to build with the error: kernel/built-in.o: In function `kallsyms_symbol_next': kernel/debug/kdb/kdb_support.c:237: undefined reference to `kdb_walk_kallsyms' kernel/built-in.o: In function `kallsyms_symbol_complete': kernel/debug/kdb/kdb_support.c:193: undefined reference to `kdb_walk_kallsyms' The kdb_walk_kallsyms needs a #ifdef proper header to match the C implementation. This patch also fixes the compiler warnings in kdb_support.c when compiling without CONFIG_KALLSYMS set. The compiler warnings are a result of the kallsyms_lookup() macro not initializing the two of the pass by reference variables. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Reported-by: Michal Simek <monstr@monstr.eu>
1 parent da5cabf commit b590cdd

2 files changed

Lines changed: 9 additions & 2 deletions

File tree

kernel/debug/kdb/kdb_private.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,14 @@ extern void kdb_ps1(const struct task_struct *p);
255255
extern void kdb_print_nameval(const char *name, unsigned long val);
256256
extern void kdb_send_sig_info(struct task_struct *p, struct siginfo *info);
257257
extern void kdb_meminfo_proc_show(void);
258+
#ifdef CONFIG_KALLSYMS
258259
extern const char *kdb_walk_kallsyms(loff_t *pos);
260+
#else /* ! CONFIG_KALLSYMS */
261+
static inline const char *kdb_walk_kallsyms(loff_t *pos)
262+
{
263+
return NULL;
264+
}
265+
#endif /* ! CONFIG_KALLSYMS */
259266
extern char *kdb_getstr(char *, size_t, char *);
260267

261268
/* Defines for kdb_symbol_print */

kernel/debug/kdb/kdb_support.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ static char *kdb_name_table[100]; /* arbitrary size */
8282
int kdbnearsym(unsigned long addr, kdb_symtab_t *symtab)
8383
{
8484
int ret = 0;
85-
unsigned long symbolsize;
86-
unsigned long offset;
85+
unsigned long symbolsize = 0;
86+
unsigned long offset = 0;
8787
#define knt1_size 128 /* must be >= kallsyms table size */
8888
char *knt1 = NULL;
8989

0 commit comments

Comments
 (0)