Compiler V5.7 to V6.0 problem

From: Peter Cheyne <CheyneP_at_lch.co.uk>
Date: Tue, 19 May 1998 18:03:41 +0000

Hello friends,

I have just moved our development users onto an AlphaServer 1200 which
turns out to have C++ 6.0 installed and come up against a compiler
version compatibility problem as describe below.

Any advice would be very welcome.

Thanks in advance

=========================================================

Hi

we are trying to migrate to the new C++ V6.0 compiler on a DEC 1200 from
the C++ V5.7 on a DEC 255. At the moment we have to use the -oldcxx
option on the cxx to get our old stuff to compile. A true migration will
take too much time at the moment and so is not a immediate option.

Unfortunately the old code, which compiled and linked fine with the C++
V5.7 included the <string> - headers and libraries. When moving to the
V6.0 with the -oldcxx option on we can compile our code but cannot link
it. The linker will search for two undefined symbols:

- nullref
- nullref_defined

These symbols do exist in the libcxxstd but not in libcxxstd_oldcxx, but
unfortunately within the namespace __rwstd. Compiling the source code
with -oldcxx will disable namespaces, so that the linker cannot find
these symbols.
What we did to circumvent this problem was to define the missing symbols
seperately:

unsigned long nullref[65];
int nullref_defined;

Questions:

- does this bugfix cause any problems?
- are there better ways to do this?
- is this a bug or a feature ( after all, <string> is located in the
cxx_oldcxx - header file directory ) ?

Thank you for your help

Sven E. Knop

London Clearing House
========================================================================
=========
Received on Tue May 19 1998 - 19:05:31 NZST

This archive was generated by hypermail 2.4.0 : Wed Nov 08 2023 - 11:53:37 NZDT