Re: linux object file containing all kernel symbols and suitable for userspace linking?

From: Daniel Rosenthal
Date: Sun Sep 28 2008 - 03:23:52 EST


On Sat, Sep 27, 2008 at 11:13 PM, Grant Coady wrote:
> There's a vmlinux.o in top-level directory after a kernel compile, is
> that what you're after?

It's looks close, but it seems to be missing some symbols. Below is
an excerpt of some of the some of the error messages that come up when
trying to link vmlinux.o to another object file. It looks like all
the binary layout related symbols are missing, and jiffies also.
How/when are these symbols normally linked into the final kernel
image?

Daniel


...
/usr/src/linux/vmlinux.o: In function `sched_clock':
/usr/src/linux/kernel/sched.c:80: undefined reference to `jiffies'
/usr/src/linux/vmlinux.o: In function `__might_sleep':
/usr/src/linux/kernel/sched.c:7478: undefined reference to `jiffies'
/usr/src/linux/kernel/sched.c:7480: undefined reference to `jiffies'
/usr/src/linux/vmlinux.o: In function `in_sched_functions':
/usr/src/linux/kernel/sched.c:7289: undefined reference to `__sched_text_start'
/usr/src/linux/kernel/sched.c:7289: undefined reference to `__sched_text_end'
/usr/src/linux/vmlinux.o: In function `print_cpu':
/usr/src/linux/kernel/sched_debug.c:174: undefined reference to `jiffies'
/usr/src/linux/kernel/sched_debug.c:174: undefined reference to `jiffies'
/usr/src/linux/vmlinux.o: In function `printk_timed_ratelimit':
/usr/src/linux/kernel/printk.c:1343: undefined reference to `jiffies'
/usr/src/linux/kernel/printk.c:1344: undefined reference to `jiffies'
/usr/src/linux/vmlinux.o: In function `zap_locks':
/usr/src/linux/kernel/printk.c:550: undefined reference to `jiffies'
/usr/src/linux/vmlinux.o:/usr/src/linux/kernel/printk.c:550: more
undefined references to `jiffies' follow
...
/usr/src/linux/vmlinux.o: In function `mem_init':
/usr/src/linux/arch/x86/mm/init_32.c:603: undefined reference to `_text'
/usr/src/linux/arch/x86/mm/init_32.c:605: undefined reference to `__init_end'
/usr/src/linux/arch/x86/mm/init_32.c:605: undefined reference to `__init_begin'
/usr/src/linux/arch/x86/mm/init_32.c:623: undefined reference to `_text'
/usr/src/linux/arch/x86/mm/init_32.c:623: undefined reference to `__init_end'
/usr/src/linux/arch/x86/mm/init_32.c:623: undefined reference to `__init_begin'
/usr/src/linux/vmlinux.o: In function `is_kernel_text':
/usr/src/linux/arch/x86/mm/init_32.c:147: undefined reference to `__init_end'
/usr/src/linux/arch/x86/mm/init_32.c:147: undefined reference to `__init_end'
/usr/src/linux/vmlinux.o: In function `kernel_physical_mapping_init':
/usr/src/linux/arch/x86/mm/init_32.c:207: undefined reference to `__init_end'
/usr/src/linux/vmlinux.o: In function `page_writeback_init':
/usr/src/linux/mm/page-writeback.c:773: undefined reference to `jiffies'
...
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/