From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Martin v. Loewis" To: Al_Niessner@bigfoot.com Cc: gcc-help@gcc.gnu.org Subject: Re: gcc symbol names Date: Sun, 27 Feb 2000 12:58:00 -0000 Message-id: <200002272050.VAA17639@loewis.home.cs.tu-berlin.de> References: <38B8A8F8.C2403E51@bigfoot.com> <200002271918.UAA01018@loewis.home.cs.tu-berlin.de> <38B98706.F7E6C0B@bigfoot.com> X-SW-Source: 2000-02/msg00098.html > Target is the powerpc-wrs-vxworks. Ok. > It really does reduce to a '.' for '$' substitution. The name of constructor symbols is determined in gcc/cp/tree.h, depending on the value of NO_DOLLAR_IN_LABEL: #ifndef NO_DOLLAR_IN_LABEL #define DESTRUCTOR_DECL_PREFIX "_$_" ... This is defined on a per-target basis, in your case in gcc/config/powerpc/rs6000.h. AFAICT, it was that way all the way back to gcc 2.7.2., so it is really surprising that your original WRS compiler did not have this define. Since you have the sources to the original compiler, you may want to check why NO_DOLLAR_IN_LABEL was not defined in your 2.7.2 sparc port of gcc, and apply this patch appropriately to 2.95 (or whatever you want to use). Please note that you'll have to recompile gcc to have this change active. Please note that the C++ ABI has changed *significantly* since gcc 2.7.2, so there is little chance that you could possibly link C++ libraries compiled with 2.7.2 link with libraries compiled by egcs 1.1 or gcc 2.95. Hope this helps, Martin From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Martin v. Loewis" To: Al_Niessner@bigfoot.com Cc: gcc-help@gcc.gnu.org Subject: Re: gcc symbol names Date: Sat, 01 Apr 2000 00:00:00 -0000 Message-ID: <200002272050.VAA17639@loewis.home.cs.tu-berlin.de> References: <38B8A8F8.C2403E51@bigfoot.com> <200002271918.UAA01018@loewis.home.cs.tu-berlin.de> <38B98706.F7E6C0B@bigfoot.com> X-SW-Source: 2000-q1/msg00292.html Message-ID: <20000401000000.oxIB3xZwpQa9MNra0O5hgUfpGzE8yUTd7dY2qPSOutY@z> > Target is the powerpc-wrs-vxworks. Ok. > It really does reduce to a '.' for '$' substitution. The name of constructor symbols is determined in gcc/cp/tree.h, depending on the value of NO_DOLLAR_IN_LABEL: #ifndef NO_DOLLAR_IN_LABEL #define DESTRUCTOR_DECL_PREFIX "_$_" ... This is defined on a per-target basis, in your case in gcc/config/powerpc/rs6000.h. AFAICT, it was that way all the way back to gcc 2.7.2., so it is really surprising that your original WRS compiler did not have this define. Since you have the sources to the original compiler, you may want to check why NO_DOLLAR_IN_LABEL was not defined in your 2.7.2 sparc port of gcc, and apply this patch appropriately to 2.95 (or whatever you want to use). Please note that you'll have to recompile gcc to have this change active. Please note that the C++ ABI has changed *significantly* since gcc 2.7.2, so there is little chance that you could possibly link C++ libraries compiled with 2.7.2 link with libraries compiled by egcs 1.1 or gcc 2.95. Hope this helps, Martin