深入讲解程序的链接、装载、运行
最后的miniCRT代码好像有两个小bug,但基本不影响程序运行
P419 第14行(不算空行)后好像应该return的
P419 第20行(不算空行)后好像应该检查并设置next->next->priv
关于crtbegin和crtend的链接顺序,在gcc 4.3.2(ubuntu8.10)环境下,ld会自动调整crtbegin.o和crtend.o的顺序。
但是如果将crtbegin.o和crtend.o的名称改成其它的,如hjzbegin.o hjzend.o,则必须按照hjzbegin.o最前 hjzend.o最后的顺序书写Makefile
P93 的代码在gcc4.1下可以,在gcc4.3.2下编译失败
__attribute__((weakref)) void f();
int main(){
f();
}