2002-07-17 14:26:34

by Russell King

[permalink] [raw]
Subject: Link errors with CONFIG_VT=n, CONFIG_SYSRQ=y

lkml, James,

When building 2.5.26 with CONFIG_VT=n and CONFIG_SYSRQ=y, the resulting
kernel can't be linked:

drivers/built-in.o: In function `sysrq_handle_unraw':
drivers/built-in.o(.text+0x14694): undefined reference to `fg_console'
drivers/built-in.o(.text+0x14698): undefined reference to `kbd_table'

The following is a work-around for this problem. There is probably
a cleaner solution to this.

--- orig/drivers/char/sysrq.c Wed Jul 17 15:10:39 2002
+++ linux/drivers/char/sysrq.c Wed Jul 17 15:27:18 2002
@@ -81,10 +81,12 @@
static void sysrq_handle_unraw(int key, struct pt_regs *pt_regs,
struct tty_struct *tty)
{
+#ifdef CONFIG_VT
struct kbd_struct *kbd = &kbd_table[fg_console];

if (kbd)
kbd->kbdmode = VC_XLATE;
+#endif
}
static struct sysrq_key_op sysrq_unraw_op = {
handler: sysrq_handle_unraw,

--
Russell King ([email protected]) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html


2002-07-18 23:05:00

by James Simmons

[permalink] [raw]
Subject: Re: Link errors with CONFIG_VT=n, CONFIG_SYSRQ=y


Fixed :-)

. ---
|o_o |
|:_/ | Give Micro$oft the Bird!!!!
// \ \ Use Linux!!!!
(| | )
/'\_ _/`\
\___)=(___/

On Wed, 17 Jul 2002, Russell King wrote:

> lkml, James,
>
> When building 2.5.26 with CONFIG_VT=n and CONFIG_SYSRQ=y, the resulting
> kernel can't be linked:
>
> drivers/built-in.o: In function `sysrq_handle_unraw':
> drivers/built-in.o(.text+0x14694): undefined reference to `fg_console'
> drivers/built-in.o(.text+0x14698): undefined reference to `kbd_table'
>
> The following is a work-around for this problem. There is probably
> a cleaner solution to this.
>
> --- orig/drivers/char/sysrq.c Wed Jul 17 15:10:39 2002
> +++ linux/drivers/char/sysrq.c Wed Jul 17 15:27:18 2002
> @@ -81,10 +81,12 @@
> static void sysrq_handle_unraw(int key, struct pt_regs *pt_regs,
> struct tty_struct *tty)
> {
> +#ifdef CONFIG_VT
> struct kbd_struct *kbd = &kbd_table[fg_console];
>
> if (kbd)
> kbd->kbdmode = VC_XLATE;
> +#endif
> }
> static struct sysrq_key_op sysrq_unraw_op = {
> handler: sysrq_handle_unraw,
>
> --
> Russell King ([email protected]) The developer of ARM Linux
> http://www.arm.linux.org.uk/personal/aboutme.html
>