On 6月21日, 下午11时48分, "Jim Huang" <
jserv...@gmail.com> wrote:
> 2008/6/21 Funda Wang <
fundaw...@gmail.com>:
>
> > 我正在編譯 svn trunk 的pcmanx,發現plugin/src會link到libutil.so,但沒有在Makefile中指出。這個
> > 問題在使用LDFLAG="-Wl,--as-needed -Wl,--no-undefined"的時候會遇到undefined
> > reference。
>
> hi Funda,
>
> Thanks for your messages from Mandriva!
>
> 依據印象,plugin/src/pcmanx-plugin.so 不應該有 reference to libutil
> 這個 regression 只在 x86-64 發生嗎?
在i586上一樣也有:
$ rpm -qp --requires pcmanx-gtk2-0.3.7-4.416.1mdv2009.0.i586.rpm |grep
util
libutil.so.1
libutil.so.1(GLIBC_2.0)
$ rpm -qp --requires mozilla-firefox-ext-
pcmanx-0.3.7-4.416.1mdv2009.0.i586.rpm |grep util
libutil.so.1
libutil.so.1(GLIBC_2.0)
>
> 另外,as-needed 的 LDFLAGS 反映系統 shared libraries 排列 symbol
> 上的問題,正在觀察中,記得從某個版本的 Gtk+ 就是如此。
這個在gentoo的wiki有詳細說明:
http://www.gentoo.org/proj/en/qa/asneeded.xml
直觀上說,就是把程式自己的object放到要link的.so之前。
>
> Regards,
> -jserv