"Yihe Chen" <yihect@xxxxxxxxxxxxxx> writes: >>> It seems that the __i686.get_pc_thunk.bx is definded in section >>> .gnu.linkonce.t.__i686.get_pc_thunk.bx. Is this true?? >> >> When gcc is generating the symbol directly, as is normal, the section in >> which it is defined depends on whether the linker supports section >> groups or not. If it does not, gcc will use a .gnu.linkonce section as >> in the above. If it does, gcc will use a .text. section marked as a >> COMDAT section grotup. > > En, my system is redhat enterprise version 4. And the gcc core version > is 3.4.4. > According your describation, the linker should not support section > groups feature. > But if we want to seek the simble, how to do it? Must I install > another new gcc , and > another kernel??? What is your purpose in trying to find this symbol? > The symbols in my .so file is listed, show as follows. It seems > nothing abnormal from > there, I think. I agree that there is no get_pc_thunk symbol here. The symbol is only created when it is needed. E.g., if you compile code like this with -fPIC and then put it into a shared library you should see the symbol. int i; int f() { return i; } And of course the symbol is only created in 32-bit mode, so if you have a 64-bit system you need to use -m32. Ian