Avatar
dlopen したときに動的リンカが動作してGOTを更新してくれて、 dlsym は GOTのエントリを返り値として返すのかなと想像した
2:05 PM
例えば puts を 自力で dlopen するようなコードを書いていた場合、 自力のdlopenと、コンパイラが生成したPLT経由のputsの呼び出しの2つの初期化経路が存在していて
2:06 PM
動的リンカの仕事としてはGOTにアドレスを書き込むところまででインターフェースが切れてれば、 どっちの経路から先に動的リンクしても、 後続の経路での動的リンクのフェーズでは処理がスキップできてうまく動いて良いのかなと思った (edited)