Do global constructors later

上级 8f631222
......@@ -132,11 +132,6 @@ cmain(u64 mbmagic, u64 mbaddr)
{
extern u64 cpuhz;
// Call global constructors
extern const uptr sctors[], ectors[];
for (const uptr *ctorva = ectors; ctorva > sctors; )
((void(*)()) *--ctorva)();
initpg();
inithz(); // CPU Hz, microdelay
initpic(); // interrupt controller
......@@ -145,6 +140,14 @@ cmain(u64 mbmagic, u64 mbaddr)
initcga();
initmp();
inittls(); // thread local storage
// Call global constructors require mycpu()->id, which
// we setup in inittls
extern const uptr sctors[], ectors[];
for (const uptr *ctorva = ectors; ctorva > sctors; ) {
((void(*)()) *--ctorva)();
}
initacpi();
initseg();
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论