>>>>> "Thomas" == Thomas Anders <[EMAIL PROTECTED]> writes:

Thomas> Going further:

Thomas> - --- snip --- /usr/bin/cxx -std strict_ansi -DHAVE_CONFIG_H
Thomas> -I. -I. -I../../src -I./../ -I../.. -I../../boost
Thomas> -I/net/usr/include -ptr /tmp/lyx_cxx_repository
Thomas> -I/net/usr/include -c -MD insetbib.C cxx: Error:
Thomas> ../../src/paragraph.h, line 366: type "Paragraph::InsetList"
Thomas> is inaccessible inset_iterator(InsetList::iterator const &
Thomas> iter); -------------------------------^ cxx: Error:
Thomas> ../../src/paragraph.h, line 389: type "Paragraph::InsetList"
Thomas> is inaccessible InsetList::iterator it; ----------------^ cxx:
Thomas> Info: 2 errors detected in the compilation of "insetbib.C".
Thomas> gmake[3]: *** [insetbib.lo] Error 1 gmake[3]: Leaving
Thomas> directory `/path/to/lyx-1.2.0/src/insets' - --- snap ---

Thomas> IIRC Angus' suggestion was to move "typedef
Thomas> std::vector<InsetTable> InsetList;" and "InsetList insetlist;"
Thomas> from private to public in src/paragraph.h.

And would defining inset_iterator as
  friend class inset_iterator { ...
work? And remove the firend declaration below, I guess.

Thomas> If I do this, it compiles until:

Thomas> - --- snip --- /usr/bin/cxx -std strict_ansi -DHAVE_CONFIG_H
Thomas> -I. -I. -I../../src -I./../ -I../.. -I../../boost
Thomas> -I/net/usr/include -ptr /tmp/lyx_cxx_repository
Thomas> -I/net/usr/include -c -MD insetexternal.C cxx: Error:
Thomas> insetexternal.C, line 295: the global scope has no "difftime"
Thomas> ::difftime(fi2.getModificationTime(), ----------------------^
Thomas> cxx: Info: 1 error detected in the compilation of
Thomas> "insetexternal.C". gmake[3]: *** [insetexternal.lo] Error 1
Thomas> gmake[3]: Leaving directory `/path/to/lyx-1.2.0/src/insets' -
Thomas> --- snap ---

Do we really need to use difftime? Isn't there another way to tell
that a file is newer than another one??

Thomas> IIRC Angus suggested "#include <ctime>" in
Thomas> src/insets/insetexternal.C which unfortunately doesn't fix it.

Thomas> When I manually add "-I$(top_srcdir)/src/cheaders" to CPPFLAGS
Thomas> in src/insets/Makefile (configure decided to put
Thomas> "lyx_cv_cxx_cheaders=yes" in config.cache), I get conflicts:

This is only needed for cxx <6.3, indeed. Actually, these new cheaders
are probably the main reason why you have problems with cxx 6.5.

Thomas> Well, with an ugly "#include <time.h>" it compiles.

What is the reason why <ctime> does not provide it? It looks like a
reasonable standard thing... Did you try a simple 'using std::difftime;'?

Thomas> Now I'm stuck at:

Thomas> - --- snip --- /usr/bin/cxx -std strict_ansi -DHAVE_CONFIG_H
Thomas> -I. -I. -I../../src -I./../ -I../.. -I../../boost
Thomas> -I/net/usr/include -ptr /tmp/lyx_cxx_repository
Thomas> -I/net/usr/include -c -MD insetgraphics.C cxx: Error:
Thomas> /usr/lib/cmplrs/cxx/V6.5-021/include/cxx/utility, line 197:
Thomas> extern inline function "std::make_pair(const T1 &, const T2 &)
Thomas> [with T1=std::string, T2=std::string]" was referenced but not
Thomas> defined inline pair<T1, T2> make_pair(const T1& x, const T2&
Thomas> y) ----------------------^ cxx: Info: 1 error detected in the
Thomas> compilation of "insetgraphics.C". gmake[3]: ***
Thomas> [insetgraphics.lo] Error 1 gmake[3]: Leaving directory
Thomas> `/path/to/lyx-1.2.0/src/insets' - --- snap ---

Thomas> A cxx bug? (upgrade is not an option, this already is the
Thomas> latest version)


This one is strange, especially since it does not mention any useful
line number in insetraphics.C. And I see no use of pairs in this file.

JMarc

Reply via email to