Messages in this thread Patch in this message |  | | From | junio@siamese ... | Subject | Re: [PATCH] link failur in Linux 2.4.9-ac16 around apm.o and sysrq.o | Date | 27 Sep 2001 22:47:21 -0700 |
| |
>>>>> "JNH" == junio <junio@siamese.dhis.twinsun.com> writes:
JNH> 2.4.9-ac16 fails to link with CONFIG_APM=y and JNH> CONFIG_MAGIC_SYSRQ=n. This is because apm.c unconditionally JNH> makes calls to functions (__sysrq_lock_table and friends) JNH> defined in sysrq.c.
JNH> I can think of a couple of different approaches to work this JNH> around, but is there an established proper way to resolve this JNH> kind of dependency in the kernel code?
The approaches I listed as (1) and (3) in my previous message are non solutions, since it will result in a kernel where apm.o makes calls into sysrq functions, whose proper operations would depend on sysrq.o to have been properly initialized by other parts of the kernel, which still think CONFIG_MAGIC_SYSRQ is not defined.
The below should be a better fix.
--- 2.4.9-ac16.sffix/arch/i386/kernel/apm.c Thu Sep 27 12:46:43 2001 +++ 2.4.9-ac16.sffix/arch/i386/kernel/apm.c Thu Sep 27 22:41:53 2001 @@ -201,7 +201,9 @@ #include <asm/uaccess.h> #include <asm/desc.h> +#ifdef CONFIG_MAGIC_SYSRQ #include <linux/sysrq.h> +#endif extern unsigned long get_cmos_time(void); extern void machine_real_restart(unsigned char *, int); @@ -697,12 +699,16 @@ struct kbd_struct *kbd, struct tty_struct *tty) { apm_power_off(); } +#ifdef CONFIG_MAGIC_SYSRQ struct sysrq_key_op sysrq_poweroff_op = { handler: handle_poweroff, help_msg: "Off", action_msg: "Power Off\n" }; - +#else +# define register_sysrq_key(ig,no) /*re*/ +# define unregister_sysrq_key(ig,no) /*re*/ +#endif #ifdef CONFIG_APM_DO_ENABLE static int apm_enable_power_management(int enable)
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |