Helge Hafting wrote:

> My configure command:
> 
> ./configure --prefix=/usr/local --with-frontend=qt4 --with-gnu-ld
> --enable-optimization=-Os --disable-stdlib-debug
> --with-version-suffix=-unicode

Does it work without --enable-optimization=-Os? --with-gnu-ld should not be
needed, but it should not harm either.

> And the make fails when trying to link lyx-qt4 like this:
> insets/.libs/libinsets.a(insetwrap.o): In function `(anonymous
> namespace)::floatname(std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > const&, BufferParams const&)':
> /usr/src/lyx-devel/src/insets/insetwrap.C:49: multiple definition of
> `(anonymous namespace)::floatname(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&, BufferParams
> const&)'
>
insets/.libs/libinsets.a(insetfloat.o):/usr/src/lyx-devel/src/insets/insetfloat.C:119:
> first defined here /usr/bin/ld: Warning: size of symbol `(anonymous
> namespace)::floatname(std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > const&, BufferParams const&)' changed from 149 in
> insets/.libs/libinsets.a(insetfloat.o) to 165 in
> insets/.libs/libinsets.a(insetwrap.o) collect2: ld returned 1 exit status
> make[3]: *** [lyx-qt4] Error 1
> 
> 
> Looks like a disagreement between insetfloat and insetwrap?

No. There is a function floatname in an anonymous namespace both in
insetfloat and insetwrap. Because both are in anonymous namespaces they
should not clash with each other, they should get different mangled names
in the final executables. It looks like a compiler bug to me (but I don't
see it with the same compiler on a 32bit system and without -Os).


Georg

Reply via email to