Re: will different compiler generate different symbols?
On Fri, Jul 16, 2010 at 11:32:36AM +0800, Liang Guo wrote:
> Hi, ALL,
> My package(sunpinyin) is compiled with g++ 4.4, and it's symbols file
> is generated by dpkg-gensymbols, when I switch g++ to 4.3, and compile
> package, I get the following error:
> dh_makeshlibs: dpkg-gensymbols -plibsunpinyin3
> -Idebian/libsunpinyin3.symbols -Pdebian/libsunpinyin3 returned exit
> code 1
> make: *** [binary-arch] 错误 1
> dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
> Does it mean when using different compiler, the SAME library source
> code will generate different symbols? If it does, which compiler
> should I use to compile my packages and to generate symbols? How
> should I handle this problem ?
The question you have to ask yourself is, are these symbols part of the
public API? and probably more importantly, where are they defined?
I have seen, in the past, many situations where optimization
level would influence what symbols are exported or not. And different
versions of g++ may optimize things differently. This can, for example,
occur with code in header files (which can happen in C++ classes