Symbol Table Program fails to compile

Article ID: 907
Last updated: 05 Feb, 2008
Article ID: 907
Last updated: 05 Feb, 2008
Revision: 1
Views: 7703
Posted: 07 May, 1998
by Dean J.
Updated: 05 Feb, 2008
by Dean J.
Problem


I have switched the shell that SPM is using to install the Rogue Wave products as recomended in the SPM readme file. I am now using the shell that is distributed as NT.sh.exe.

When building the Tools.h++ or Standard Library, the build fails very early in the process when creating the symbol table program. The errors are as follows:

Creating symbol table program...
****** Hmmm. The symbol table program did not compile.
*** Please contact Rogue Wave support.
***
*** The compilation messages were:
***
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 11.00.7022 for 80x86
Copyright (C) Microsoft Corp 1984-1997. All rights reserved.

junk211.cpp
junk211.cpp(100) : error C2137: empty character constant
junk211.cpp(100) : error C2015: too many characters in constant
junk211.cpp(100) : error C2143: syntax error : missing ')' before 'constant'
junk211.cpp(100) : error C2001: newline in constant
junk211.cpp(107) : error C2181: illegal else without matching if
junk211.cpp(108) : error C2065: 'pvalue' : undeclared identifier
junk211.cpp(110) : error C2561: 'readSymbols' : function must return a value
junk211.cpp(111) : error C2062: type 'void' unexpected
junk211.cpp(112) : error C2440: 'initializing' : cannot convert from 'int' to
.
.
.



Cause


The patched version of the MKS Korn Shell (required by some hardware platforms), NT.sh.exe, is not handling escape characters as expected. This occurs in the symbol table program which is produced from a here document within our scripts. A here document is initiated by the following Korn Shell syntax:

cat< $filename.$extension

When the symbol table program is generated by NT.sh.exe, all backslashes are removed, even when they shouldn't be. To illustrate, the line:
names_[entries_][N0] = '\0';
becomes:
names_[entries_][N0] = '0';
There are many other lines in the program that are affected. The improper code generates a long list of compiler errors particularly with Symbol Table program.

This problem only arises when using the NT.sh.exe MKS shell. If you are using the default MKS shell, there may be a different cause for your errors. See Knowledge base entry ' The Software Parts Manager(SPM) cannot find CL.EXE' about the use of vcvars32.bat to set up your MS Visual C++ environment.


Action


This problem is repaired in SPM 1.4 on CD release 7. Use the most recent versions of the products with SPM 1.4, as the products in the march release have not been verified with SPM 1.3.

If you are unable to upgrade for some reason we have patches available. Use one of the following two files:

  • NTshfix.zip

    is for use with an original installation of SPM v1.3.

  • NTshSP3.zip is for use with the spm0130_3-10-1998 patch for MSVC with Service Pack 3.

If you're not sure, check in the spm root directory for a file called

spm0130.3-10-1998. After installing all other patches, unzip

the file into the SPM root directory, typically C:\SPM.

Briefly, we repaired this problem by changing occurrances of \ to \\ (i.e. esacaped the backslash character).

 

This article was:   Helpful | Not helpful
Report an issue
Article ID: 907
Last updated: 05 Feb, 2008
Revision: 1
Views: 7703
Posted: 07 May, 1998 by Dean J.
Updated: 05 Feb, 2008 by Dean J.

Others in this category