Sept. 10, 2015
8:27 a.m.
Rock Lee <rocklee_104@outlook.com> writes:
Hi, all: Here is a snippet of linux-v3.4 which drives me crazy. Because init_task hasn't been declared yet when init_thread_union is initializing. Why is there no compiling error? Any hint would be helpful.
union thread_union init_thread_union __init_task_data =
{ INIT_THREAD_INFO(init_task) };
/*
* Initial task structure.
*
* All other task structs will be allocated on slabs in fork.c
*/
struct task_struct init_task = INIT_TASK(init_task);
Because init_task is declared "extern" in linux/sched.h
Bjørn
I do something like that: extern int b; int a = b + 10; int b = 20; int main(void) { return 0; } No doubt, compiling error. -- Rock Lee