glib の内部依存関係の調査
今回は備忘録です。
現在のglib2の内部依存関係の調査。
$ rpm -q glib2 glib2-2.26.1-2m.mo7.i686 $ rpm -ql glib2-devel | grep pkgconfig /usr/lib/pkgconfig/gio-2.0.pc /usr/lib/pkgconfig/gio-unix-2.0.pc /usr/lib/pkgconfig/glib-2.0.pc /usr/lib/pkgconfig/gmodule-2.0.pc /usr/lib/pkgconfig/gmodule-export-2.0.pc /usr/lib/pkgconfig/gmodule-no-export-2.0.pc /usr/lib/pkgconfig/gobject-2.0.pc /usr/lib/pkgconfig/gthread-2.0.pc
pkg-configを使った調査
glib本体
glib-2.0.pc $ pkg-config --libs glib-2.0 -lglib-2.0
自分だけ。
gmodule
gmodule-2.0.pc $ pkg-config --libs gmodule-2.0 -Wl,--export-dynamic -pthread -lgmodule-2.0 -lrt -lglib-2.0
glib-2.0 に依存。
gthread
gthread-2.0.pc $ pkg-config --libs gthread-2.0 -pthread -lgthread-2.0 -lrt -lglib-2.0
glib-2.0 に依存。
gobject
gobject-2.0.pc $ pkg-config --libs gobject-2.0 -pthread -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0
gthread-2.0 glib-2.0 に依存。
gio
gio-2.0.pc $ pkg-config --libs gio-2.0 -pthread -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
gobject-2.0 gmodule-2.0 gthread-2.0 glib-2.0に依存。
ということで、
最初は glib-2.0 だけでできることを調査。
次に、 gmodule-2.0 と gthread-2.0 の調査。
さらに gobject-2.0 の調査。
最後に gio-2.0 の調査。
しかし、glib-2.0 だけでも symbol がいっぱいある。
$ readelf -s libglib-2.0.so.0.2600.1 | head -2 Symbol table '.dynsym' contains 1566 entries:
$ readelf -s /usr/lib/libglib-2.0.so.0.2600.1 | tr -s " " | cut -f 9 -d " " | grep "g_" | sort -u g_access g_allocator_free g_allocator_new … g_vsnprintf g_vsprintf g_warn_message
先は長くなりそうだな。基本的に
readelf -s /usr/lib/libname.so.? | | tr -s " " | grep -v "UND" | cut -f 9 -d " " | sort -u
これぐらいでいいのかな?
以下蛇足。
その他の情報
gio-unix-2.0.pc $ pkg-config --libs gio-unix-2.0 -pthread -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 gmodule-export-2.0.pc $ pkg-config --libs gmodule-export-2.0 -Wl,--export-dynamic -pthread -lgmodule-2.0 -lrt -lglib-2.0 gmodule-no-export-2.0.pc $ pkg-config --libs gmodule-no-export-2.0 -pthread -lgmodule-2.0 -lrt -lglib-2.0
基本的には使わないだろうな〜。