ZHCADC4A September 2011 – March 2014
用于构建初始加载模块的对象可使用该访问模型。使用该访问模型的模块不能是 dlopened 模块。
由于模块始终是初始加载的,并且动态加载器能够在可执行文件的 TLS 块之后连续分配来自初始模块的 TLS 块,因此,在动态链接时,线程指针的偏移量是已知的。可使用 *(TP + offset)
来访问线程局部变量,其中,从 GOT 加载偏移量,以确保 PIC 和符号占先。使用该类寻址构建的模块不能是 dlopened 模块。此类模块标有动态标志 DF_STATIC_TLS,动态加载器会拒绝 dlopen 标有 DF_STATIC_TLS 的模块。