Boost logo

Boost :

From: Markus Schöpflin (markus.schoepflin_at_[hidden])
Date: 2004-08-11 05:43:37


Ralf W. Grosse-Kunstleve wrote:

> I looked around a bit and I see that the toolset was modified in May: -std
> strict_ansi was removed. IMO this is not the best idea. All of Boost.Python
> compiles and works with -std strict_ansi. And this works as well:
>
> % cat test.cpp
> #include <cctype>
>
> int main()
> {
> std::toupper('c');
> return 0;
> }
>
> cxx -std strict_ansi -tlocal test.cpp
>
> I am afraid I don't have time to fix the toolset. What I can offer is ssh
> access to our machine and the compiler/linker commands that work for
> Boost.Python (I am using SCons).

The toolset was modified on my behalf. Below is an excert of the mail I
sent to justify the changes.

> You might want to try the appended tools file for true64cxx65. I recently started to use boost on this platform and this is what I have come up with so far.
>
> These were the major issues with the toolset description:
>
> - The "flags tru64cxx65 CFLAGS <inlining>full : -inline all ;" hangs the compiler when compiling with full inlining. Leaving this at the default value solves the problem.
>
> - The command line for the archive action exceeds its maximum length when used with certain libs. On recommendation from Ralf Grosse-Kunstleve I removed the whole cxx repository stuff and added "-tlocal" to the C++ compiler options. This avoids the need for repositories completely.
>
> - The Cc-action was refering to a non existant cxx-Cc-action.
>
> - The use of "-std strict_ansi -nopure_cname" was causing all kinds of troubles for me. I replaced that with "-D__USE_STD_IOSTREAM -nousing_std" which seems to work far better.
>
> Maybe the maintainers should consider to replace the current toolset with the one attached.
>
> There are other issues to be aware of:
>
> - When compiling boost you will see several warnings (and one error!) about the use of assert on pointer types. These are caused by a bug in the system header files which force the argument for assert() to int. This can be fixed by editing the header file "/usr/include/assert.h".
>
> - When the macro _XOPEN_SOURCE is defined to something greater or equal to 500, you will encounter errors when compiling code which involes iostreams because of a bug in the iotraits header file. This happended to me when compiling boost.python because python forces the _XOPEN_SOURCE to 600. You need to fix the iotraits header file for this.
>
> - There are several statements in the form of
>
> # if (defined(__DECCXX_VER) && __DECCXX_VER <= 60590031)
>
> sprincled through boost to work around compiler deficencies. As we are using 60590040 I patched these to the new revision number. I didn't check if the bugs were fixed in the compiler but you might want to do the same.
>
> Thats all I can remember off the top of my head. I did some tweaking to the boost.python source but that might not be necessary for you.

With the current toolset I am able to compile the whole boost libraries
(v 1.31.0) on my platform (OSF1, V5.1, alpha) and compiler (Compaq C++
V6.5-033 for Compaq Tru64 UNIX V5.1B (Rev. 2650)).

I just started downloading the current CVS snapshot to have a look at
this problem.

Markus


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk