mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-25 19:07:45 +00:00
6d678c927c
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@808 a592a061-630c-0410-9148-cb99ea01b6c8
146 lines
3.7 KiB
Plaintext
146 lines
3.7 KiB
Plaintext
|
|
The following things are required for Libsigc++.
|
|
|
|
A good compiler with the following features
|
|
- capable of handling numerous templates (>200)
|
|
- proper template specialization
|
|
- proper partial specialization
|
|
|
|
It works better with (but does not require)
|
|
- template friend specialization
|
|
- namespaces
|
|
- void returns
|
|
|
|
M4 to parse the header files if you wish to rebuild the headers from
|
|
macro source.
|
|
|
|
==================================================
|
|
|
|
Platform Issues:
|
|
|
|
A number of platforms do not support global C++ objects
|
|
in shared libraries. Although not required by this
|
|
library, it may result in problems when building C++
|
|
libraries on those platforms. The work arround is
|
|
to use statics in functions or pointers which must
|
|
be initialized.
|
|
|
|
Platforms known to have this bug include
|
|
NetBSD, HP-UX 9, HP-UX 10, Solaris without patch.
|
|
|
|
==================================================
|
|
|
|
Compiler Issues:
|
|
|
|
Cfront-based compilers: Fails
|
|
-----
|
|
Forget it, get a modern c++ compiler.
|
|
|
|
|
|
GNU G++ 2.7.2: Fails
|
|
-----
|
|
Upgrade, new versions of GNU G++ are easily and freely available:
|
|
GNU G++ 2.8.X or EGCS 1.1.2. A port to this compiler is possible
|
|
with effort.
|
|
|
|
|
|
GNU G++ 2.8: Works (Marginal)
|
|
namespaces: no
|
|
partial specialization: yes
|
|
void returns: yes
|
|
-----
|
|
Is known to work correctly, but some performance may be subpar.
|
|
Recommend upgrading to egcs 1.1.
|
|
|
|
|
|
GNU egcs 1.0: Works (Marginal)
|
|
namespaces: no
|
|
partial specialization: yes
|
|
void returns: yes
|
|
-----
|
|
Is known to work correctly, but some performance may be subpar.
|
|
Recommend upgrading to egcs 1.1.
|
|
|
|
|
|
GNU egcs 1.1: Works
|
|
namespaces: yes
|
|
partial specialization: yes
|
|
void returns: yes
|
|
-----
|
|
This is the development platform, so all functionality correct.
|
|
|
|
HP C++: Fails
|
|
-----
|
|
This is a cfront compiler. No where close.
|
|
Get a modern c++ compiler.
|
|
|
|
|
|
HP aC++ A.01.22: Works
|
|
namespaces: yes
|
|
partial specialization: yes
|
|
void returns: yes (only most recent version)
|
|
-----
|
|
HP improved template support thus allowing compilation.
|
|
Earlier compilers lacked support for void returns and proper
|
|
templates.
|
|
|
|
Missing <iostream> - use one below
|
|
|
|
|
|
MipsPro 7.3 Compler on Irix: Works (Marginal)
|
|
namespaces: yes
|
|
partial specialization: yes
|
|
void returns: no
|
|
-----
|
|
This compiler is barely within the range of usable compilers.
|
|
Requires compiling a specialization for all types in library
|
|
due to non-standard return behavior. Should be usable.
|
|
|
|
Requires a switch to get templates right.
|
|
Use
|
|
CC=cc CXX=CC CPPFLAGS="-ptused" ./configure
|
|
|
|
Missing <iostream> - use one below
|
|
|
|
|
|
SunPro C++ 4.1: Unknown
|
|
namespaces: no
|
|
partial specialization: no
|
|
-----
|
|
Unlikely considering lack of partial specialization.
|
|
Need more info.
|
|
|
|
|
|
SunPro C++ 5.0: Unknown
|
|
namespaces: yes
|
|
partial specialization: yes
|
|
-----
|
|
Need more info.
|
|
|
|
|
|
Visual C++ 5.0: Works (needs special distribution)
|
|
namespaces: yes
|
|
partial specialization: no
|
|
void returns: no
|
|
-----
|
|
Although not quite up to par, a port was completed and should
|
|
be the basis for porting back to other earlier compilers.
|
|
VC++ lacks the ablity to use optional class arguments so
|
|
marshallers must be explicitly declared. (see doc/win32)
|
|
|
|
==================================================
|
|
|
|
Some compilers have not yet fully adopted the standard header
|
|
files. (Usually because they lack some compiler feature
|
|
required for the standard header.) For those compilers a
|
|
kludge is necessary to make the same code compile on both
|
|
standard and non-standard headers. Add the following file
|
|
to the standard include path.
|
|
|
|
#ifndef IOSTREAM_KLUDGE
|
|
#define IOSTREAM_KLUDGE
|
|
#include <iostream.h>
|
|
namespace std { void iostream_kludge(); };
|
|
#endif
|
|
|