Messages in this thread Patch in this message | | | Subject | 2.1.114 won't compile on i586 UP | Date | Mon, 03 Aug 1998 21:37:12 -0500 | From | Horst von Brand <> |
| |
It bombs in arch/i386/kernel/init_task.c. The trouble is the empty definition for INIT_LOCKS in include/linux/sched.h, which goes away and leaves two consecutive commas... but the whole point of INIT_LOCKS was to be able to move the offending empty structure initialization to the end, and there just omit it: gcc-2.7.2.3 doesn't like empty structure initializations, period. So either the spinlock has to be moved to the end again, or gcc-2.7.2.3 dropped ;-). BTW, egcs-19980727 doesn't mind about empty structure initializations.
--- linux/include/linux/sched.h-dist-2.1.114 Mon Aug 3 20:07:56 1998 +++ linux/include/linux/sched.h Mon Aug 3 21:34:29 1998 @@ -289,12 +289,16 @@ /* memory management info */ struct mm_struct *mm; /* signal handlers */ - spinlock_t sigmask_lock; /* Protects signal and blocked */ struct signal_struct *sig; sigset_t signal, blocked; struct signal_queue *sigqueue, **sigqueue_tail; unsigned long sas_ss_sp; size_t sas_ss_size; +/* + * This MUST be last in order for the ugly kludge around the gcc-2.7.2.3 + * empty structure initialization bug (triggered on UP) to work - HvB + */ + spinlock_t sigmask_lock; /* Protects signal and blocked */ }; /* @@ -367,7 +371,8 @@ /* fs */ &init_fs, \ /* files */ &init_files, \ /* mm */ &init_mm, \ -/* signals */ INIT_LOCKS, &init_signals, {{0}}, {{0}}, NULL, &init_task.sigqueue, 0, 0, \ +/* signals */ &init_signals, {{0}}, {{0}}, NULL, &init_task.sigqueue, 0, 0, \ + INIT_LOCKS \ } union task_union { -- Horst von Brand vonbrand@sleipnir.valparaiso.cl Casilla 9G, Viña del Mar, Chile +56 32 672616
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html
| |