Just reporting on my attempts to compile your stuff, Allan, now that I have a
new and improved system that's (almost) working.
Compiling on a DEC Alpha under Tru64 Unix 4.0e
Compiling with DIGITAL C++ V6.1-029
=============================
Perversely, the sigc++config.h warning is activated:
#warning "Unknown architecture (send me gcc --dumpspecs)"
Perverse, because this is a warning specific to win32 machines. Somehow, _WIN32
is defined.
Code compiles as far as FormPrint (ie, FormCopyright does compile, and your
macros do the job. Without the macros, compilation dies here in FormCopyright.)
Compilation fails in FormPrint with the warnings below.
Now I have a working compiler, I will attack the
#include <endian.h>
#include <byteswap.h>
bswap_32, bswap_64
problems. I have access to a LinuxAlpha machine here, so this should be fairly
straightforward. I mentioned in a previous letter that XDR has problems on
Alpha machines anyway. I'll also attempt to sort that out.
Note that (temporarily) hacking the code to use raw_format rather than
XDR_format doesn't lead to any further success because cxx still dies with the
composite() error below.
Compiling with gcc 2.95.2
===================
Can compile FormCopyright. Compilation fails in FormPrint:
../../../xtl/xdr.h:32: endian.h: No such file or directory
../../../xtl/xdr.h:33: byteswap.h: No such file or directory
Hacking lxtl.h so that the format is raw_format, compilation of FormPrint
succeeds.
Compilation of the rest of the code is fine too. I can't link it, but that
appears to be a bug in libgcc.
Angus
CXX Warning messages compiling FormPrint.C
===================================
cxx: Warning: ../../../xtl/objio.h, line 148: the type "long long" is
nonstandard
def_simple_input(long long);
cxx: Warning: ../../../xtl/objio.h, line 391: "typeid" is reserved for future
use as a keyword
decl_oobj_method(2)
cxx: Error: ../../../xtl/xdr.h, line 32: could not open source file "endian.h"
#include <endian.h>
cxx: Error: ../../../xtl/xdr.h, line 33: could not open source file
"byteswap.h"
#include <byteswap.h>
cxx: Error: ../../../xtl/xdr.h, line 38: identifier "bswap_32" is undefined
*(long*)out=bswap_32(*(long*)in);
cxx: Warning: ../../../xtl/xdr.h, line 46: the type "long long" is nonstandard
*(long long*)out=bswap_64(*(long long*)in);
cxx: Error: ../../../xtl/objio.h, line 406: class "lyxstring" has no
member "composite"
detected during:
instantiation of "void composite(Stream &, T &) [with
Stream=obj_output<XDR_format<mem_buffer>, no_refs>,
T=string]" at line 353
instantiation of "obj_output<Format, References>
&obj_output<Format, References>::simple(const T &) [with
Format=XDR_format<mem_buffer>, References=no_refs,
T=string]" at line 122 of "../../../src/PrinterParams.h"
instantiation of "void PrinterParams::composite(Stream &) [with
Stream=obj_output<XDR_format<mem_buffer>, no_refs>]" at
line 406
instantiation of "void composite(Stream &, T &) [with
Stream=obj_output<XDR_format<mem_buffer>, no_refs>,
T=PrinterParams]" at line 353
instantiation of "obj_output<Format, References>
&obj_output<Format, References>::simple(const T &) [with
Format=XDR_format<mem_buffer>, References=no_refs,
T=PrinterParams]" at line 134 of
"../../../src/PrinterParams.h"
data.composite(stream);