> Given that your original posting contains only these two messages, 
> repeated several times:
> 
> undefined reference to 
> `void boost::io::detail::(anonymous 
> namespace)::empty_buf<std::char_traits<char>,
> char>(std::basic_ostringstream<char, std::
> char_traits<char>, std::allocator<char> >&)::emptyStr'
> 
> `.gnu.linkonce.t._ZN5boost9re_detail15query_match_auxIN9__gnu_cxx17__
> normal_iteratorIPKcSsEESaIcEcNS_12regex_traitsIcEES7_EEbT_SA_RNS_13match
> _results
> ISA_T0_EERKNS_14reg_expressionIT1_T2_T3_EEjRNS0_16_priv_match_dataISA_SC
> _EEPSA_' referenced in section `.rodata' of chset.o: defined in discarded 
> section
> 
> Then perhaps you might make a small test case that demonstrates the 
> problem and post it to the boost-users mailing list?
> 

cmon, this is really pushing me to my limits
- you guys are supposed to be the gurus on
lyx development - I'm just a poor user ...

anyway I tried to cope with your suggestion as follows
I compiled lyx-1.3.5 with the offending
gcc compiler switch:

CXXFLAGS='-O3 -march=pentium4m' CFLAGS='-O3 -march=pentium4m'

Then, after failure of the compilation at
its final link step I went into the /src directory
an randomly picked one of the files which has the

undefined reference to `void boost::io::detail::(
anonymous namespace)::empty_buf<std::char_traits<char>, 
char>(std::basic_ostringstream<char, std::char_traits<char>, 
std::allocator<char> >&)::emptyStr'

error. This happened to be

importer.C

I copied importer.C in /src into tessi.cc and stripped
tessi.cc down to its very last statement which
upon linking with the rest of the lyx code was giving
me an additional error of the aforementioned type.

This remaining code is

........................................................
#include <config.h>
#ifdef __GNUG__
#pragma implementation
#endif
#include "converter.h"
#include "frontends/Alert.h"
#include "gettext.h"
#include "BoostFormat.h"

void test(string const & format){

        Alert::alert(_("blablabla"),
             boost::io::str(boost::format(_("blablabla %1$s"))
                   % formats.prettyName(format)));

        return;
}
............................................................

So, now the point is that if in addition to the rest of
lyx I compile this code snippet in /src with

gcc -I. -I../boost -O3 -march=pentium4m -c tessi.cc 
or
gcc -I. -I../boost -O3 -c tessi.cc

and link it together with the rest of lyx it produces *one
additional error* of the 'undefined reference to `void boost::io..." type

however, if I compile tessi.cc with

gcc -I. -I../boost -O2 -c tessi.cc
or
gcc -I. -I../boost -O -c tessi.cc
or
gcc -I. -I../boost -c tessi.cc

and link it together with the rest of lyx it produces *no*
additional error of 'undefined reference to `void boost::io..."

Is there any reason why this single function Alert::alert(...)
seems not to allow for optimization ??

Thanks
Wolfram




Reply via email to