Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b590cddf authored by Jason Wessel's avatar Jason Wessel
Browse files

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: default avatarJason Wessel <jason.wessel@windriver.com>
Reported-by: default avatarMichal Simek <monstr@monstr.eu>
parent da5cabf8
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -255,7 +255,14 @@ extern void kdb_ps1(const struct task_struct *p);
extern void kdb_print_nameval(const char *name, unsigned long val);
extern void kdb_print_nameval(const char *name, unsigned long val);
extern void kdb_send_sig_info(struct task_struct *p, struct siginfo *info);
extern void kdb_send_sig_info(struct task_struct *p, struct siginfo *info);
extern void kdb_meminfo_proc_show(void);
extern void kdb_meminfo_proc_show(void);
#ifdef CONFIG_KALLSYMS
extern const char *kdb_walk_kallsyms(loff_t *pos);
extern const char *kdb_walk_kallsyms(loff_t *pos);
#else /* ! CONFIG_KALLSYMS */
static inline const char *kdb_walk_kallsyms(loff_t *pos)
{
	return NULL;
}
#endif /* ! CONFIG_KALLSYMS */
extern char *kdb_getstr(char *, size_t, char *);
extern char *kdb_getstr(char *, size_t, char *);


/* Defines for kdb_symbol_print */
/* Defines for kdb_symbol_print */
+2 −2
Original line number Original line Diff line number Diff line
@@ -82,8 +82,8 @@ static char *kdb_name_table[100]; /* arbitrary size */
int kdbnearsym(unsigned long addr, kdb_symtab_t *symtab)
int kdbnearsym(unsigned long addr, kdb_symtab_t *symtab)
{
{
	int ret = 0;
	int ret = 0;
	unsigned long symbolsize;
	unsigned long symbolsize = 0;
	unsigned long offset;
	unsigned long offset = 0;
#define knt1_size 128		/* must be >= kallsyms table size */
#define knt1_size 128		/* must be >= kallsyms table size */
	char *knt1 = NULL;
	char *knt1 = NULL;