This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/32683] New: Compiling HPCToolkit causes many errors and warnings using GCC 4.3 (but not prior versions)
- From: "rob1weld at aol dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 Jul 2007 02:46:13 -0000
- Subject: [Bug c++/32683] New: Compiling HPCToolkit causes many errors and warnings using GCC 4.3 (but not prior versions)
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
I'm not an expert in C++. This bug report's subject is "HPCToolkit compiles
with GCC 4.2 (and earlier) but won't compile with GCC 4.3" . I don't know if it
is because GCC was less fussy previously or there is a fault in GCC 4.3.
There are so many warnings and errors, and the program _might_ be of interest
to persons working with GCC source, so I will provide a little info about it:
HPCToolkit is an open-source suite of multi-platform tools for profile-based
performance analysis of applications. http://www.hipersoft.rice.edu/hpctoolkit/
It produces a navigable HTML document that combines the performance metrics
with the source code.
The toolkit components include:
hpcrun: a tool for profiling executions of unmodified application binaries
using statistical sampling of hardware performance counters.
hpcprof & xprof: tools for interpeting sample-based execution profiles and
relating them back to program source lines.
bloop: a tool for analyzing application binaries to recover program structure;
namely, to identify where loops are present and what program source lines they
contain.
hpcview: a tool for correlating program structure information, multiple
sample-based performance profiles, and program source code to produce a
performance database.
hpcviewer: a java-based GUI for exploring databases consisting of performance
information correlated with program source.
HPCToolkit-OneStopShopping-TRUNK-4.9.0=810.tar.gz
http://www.hipersoft.rice.edu/hpctoolkit/downloads/HPCToolkit-OneStopShopping-TRUNK-4.9.0=810.tar.gz
The authors complain of "slight differences in the operation of binutils
between various platforms" and have attempted to resolve those problems - that
might be interesting reading for some.
I configured and installed GCC 4.3, here is the "-v":
# /usr/test/bin/gcc -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: /root/downloads/gcc-4_3-trunk/configure --verbose
--enable-languages=c,ada,c++,fortran,java,objc,obj-c++ --prefix=/usr/test
--enable-objc-gc --disable-multilib
--with-gxx-include-dir=/usr/test/include/c++/4.3 --enable-libstdcxx-debug
--enable-static --enable-shared --enable-initfini-array --enable-__cxa_atexit
--enable-threads=posix --enable-version-specific-runtime-libs --enable-libssp
--enable-libmudflap --enable-libgomp --disable-werror --enable-nls
--with-included-gettext --enable-decimal-float --enable-debug
--enable-java-gc=boehm --with-x --x-includes=/usr/X11R6/include
--x-libraries=/usr/X11R6/lib --enable-java-awt=gtk,xlib --enable-gtk-cairo
--enable-qt-peer --enable-xmlj --enable-gconf-peer --enable-tool-wrappers
--enable-portable-native-sync --enable-examples --with-dwarf2 --with-stabs
--enable-hash-synchronization --enable-gc-debug --enable-interpreter
--with-system-zlib --enable-libada --with-tls --with-tune=athlon-xp
--with-cpu=athlon-xp --with-arch=athlon-xp
--enable-stage1-checking=assert,df,fold,gc,misc,rtl,rtlflag,runtime,tree
Thread model: posix
gcc version 4.3.0 20070630 (experimental)
I am not using a more recent version because there is a problem (it won't
build) http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32589 .
I set my environment like this (since 4.3 is not in my path):
export CC=/usr/test/bin/gcc
export CXX=/usr/test/bin/g++
export F77=/usr/test/bin/gfortran
export JAVAC='javac -1.5'
If you wish to build the viewer you'll need to use "javac -1.5" to avoid
complaints about using annotations.
I configured HPCToolkit like this:
./configure --prefix=/usr --enable-hpcviewer --enable-develop --enable-devtools
--enable-hpc-binutils --with-monitor --with-objcopy
It turns out that my OS's bash doesn't like "=" in file names they use the name
"HPCToolkit-OneStopShopping-TRUNK-4.9.0-810" . You might want to rename it
before you configure and make this project.
When building HPCToolkit some files produced _many_ warnings and errors. I am
not an expert on C++ but I did try adding "-ansi", "-std=c++98", and
"-std=gnu++98" to the 4.3 command line - still the same errors.
I tried to compile a _few_ of these files with gcc 3.4 and 4.2 - it worked fine
on the _small_ number of files I tested. All the failing files were compiled
using GCC 4.1 and compiled without warning or error. My checking of 3.4 and 4.2
is limited.
The files attached all failed to compile with GCC 4.3 (20070630) and compiled
_perfectly_ (no warning or errors) with "gcc version 4.1.2 20061115
(prerelease) (Debian 4.1.1-21)".
Here is a couple of reduced testcases, The people who wrote this C++ and some
other people at GCC's bugzilla know more about C++ than I do, so I'll leave the
rest ...
Here is a reduced testcase for bloop_LocationMgr.cpp (no claim the testcase is
a useful program!):
#include <string>
using std::string;
static const string RELOCATED = "[reloc-from]";
inline bool
RELOCATEDcmp(const char* x)
{
return (strncmp(x, RELOCATED.c_str(), RELOCATED.length()) == 0);
}
# gcc-3.4 -c -o test_1.o test_1.cpp
(Prints nothing)
# gcc-4.1 -c -o test_1.o test_1.cpp
(Prints nothing)
# gcc-4.2 -c -o test_1.o test_1.cpp
(Prints nothing)
# gcc-4.3 -c -o test_1.o test_1.cpp
test_1.cpp: In function 'bool RELOCATEDcmp(const char*)':
test_1.cpp:9: error: 'strncmp' was not declared in this scope
Here is a reduced testcase for PerfMetric.cpp:
#include <string>
using std::string;
#define DIAG_Assert(expr) \
if (!(expr)) void();
void
Ctor(const char* displayNm)
{
DIAG_Assert(strlen(displayNm));
}
# gcc-3.4 -c -o test_2.o test_2.cpp
(Prints nothing)
# gcc-4.1 -c -o test_2.o test_2.cpp
(Prints nothing)
# gcc-4.2 -c -o test_2.o test_2.cpp
(Prints nothing)
# gcc-4.3 -c -o test_2.o test_2.cpp
test_2.cpp: In function 'void Ctor(const char*)':
test_2.cpp:10: error: 'strlen' was not declared in this scope
Here is the _abbreviated_ list of warnings and errors for the problem files:
cd /opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0\=810/HPCToolkit/src/lib/banal
bloop_LocationMgr.cpp: In function 'bool RELOCATEDcmp(const char*)':
bloop_LocationMgr.cpp:91: error: 'strncmp' was not declared in this scope
OAInterface.cpp
In file included from OAInterface.hpp:69,
from OAInterface.cpp:67:
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0=810/HPCToolkit/src/lib/isa/ISA.hpp:80:
error: 'ushort' does not name a type
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0=810/HPCToolkit/src/lib/isa/ISA.hpp:
In constructor 'DecodingCache::DecodingCache()':
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0=810/HPCToolkit/src/lib/isa/IA64ISA.hpp:112:
error: 'ushort' was not declared in this scope
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0=810/HPCToolkit/src/lib/isa/IA64ISA.hpp:112:
error: expected `;' before 'offset'
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0=810/HPCToolkit/src/lib/isa/IA64ISA.hpp:113:
error: 'offset' was not declared in this scope
LM.cpp: At global scope:
LM.cpp:321: error: prototype for 'MachInsn* binutils::LM::findMachInsn(VMA,
ushort&) const' does not match any in class 'binutils::LM'
LM.hpp:205: error: candidate is: MachInsn* binutils::LM::findMachInsn(VMA,
int&) const
LM.cpp: In member function 'MachInsn* binutils::LM::findMachInsn(VMA, ushort&)
const':
LM.cpp:327: error: 'class binutils::Insn' has no member named 'GetSize'
LM.cpp: At global scope:
LM.cpp:335: error: prototype for 'binutils::Insn* binutils::LM::findInsn(VMA,
ushort) const' does not match any in class 'binutils::LM'
Seg.cpp
Seg.cpp: In constructor 'binutils::TextSeg::TextSeg(binutils::LM*,
std::string&, VMA, VMA, uint64_t, asymbol**, int, bfd*)':
Seg.cpp:191: error: 'memset' was not declared in this scope
Seg.cpp: In member function 'std::string binutils::TextSeg::FindProcName(bfd*,
asymbol*) const':
Seg.cpp:442: error: 'strlen' was not declared in this scope
make: *** [libHPCbinutils_la-Seg.lo] Error 1
Proc.cpp
In file included from Proc.hpp:63,
from Proc.cpp:64:
LM.hpp:205: error: 'ushort' has not been declared
LM.hpp:206: error: 'ushort' has not been declared
LM.hpp:207: error: 'ushort' has not been declared
Insn.hpp:301: error: 'ushort' does not name a type
Insn.hpp: In constructor 'binutils::VLIWInsn::VLIWInsn(MachInsn*, VMA, int)':
Insn.hpp:273: error: class 'binutils::VLIWInsn' does not have any field named
'opIndex'
Proc.cpp: In member function 'binutils::Insn* binutils::Proc::GetLastInsn()
const':
Proc.cpp:101: error: 'class binutils::Insn' has no member named 'GetNumOps'
Proc.cpp: In member function 'virtual void binutils::Proc::dump(std::ostream&,
int, const char*) const':
Proc.cpp:130: error: 'class binutils::Insn' has no member named 'GetOpIndex'
Proc.cpp:174: error: 'class binutils::Insn' has no member named 'GetOpIndex'
Insn.cpp
In file included from Insn.hpp:62,
from Insn.cpp:64:
LM.hpp:205: error: 'ushort' has not been declared
LM.hpp:206: error: 'ushort' has not been declared
Insn.hpp: In member function 'ISA::InsnDesc binutils::Insn::GetDesc() const':
Insn.hpp:91: error: 'GetOpIndex' was not declared in this scope
Insn.hpp:91: error: 'GetSize' was not declared in this scope
Insn.hpp: In member function 'VMA binutils::Insn::GetEndVMA() const':
Insn.hpp:301: error: 'ushort' does not name a type
Insn.hpp: In constructor 'binutils::VLIWInsn::VLIWInsn(MachInsn*, VMA, int)':
Insn.hpp:273: error: class 'binutils::VLIWInsn' does not have any field named
'opIndex'
Insn.cpp: In member function 'virtual void binutils::Insn::dump(std::ostream&,
int, const char*) const':
Insn.cpp:82: error: 'GetOpIndex' was not declared in this scope
Insn.cpp: In member function 'virtual void
binutils::CISCInsn::dumpme(std::ostream&, const char*) const':
Insn.cpp:131: error: 'GetSize' was not declared in this scope
Insn.cpp: In member function 'virtual void
binutils::VLIWInsn::dumpme(std::ostream&, const char*) const':
Insn.cpp:167: error: 'GetOpIndex' was not declared in this scope
make: *** [libHPCbinutils_la-Insn.lo] Error 1
VMAInterval.cpp
VMAInterval.cpp: In member function 'void VMAIntervalSet::fromString(const
char*)':
VMAInterval.cpp:426: error: 'strchr' was not declared in this scope
make: *** [libHPCbinutils_la-VMAInterval.lo] Error 1
cd /opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0\=810/HPCToolkit/src/lib/binutils
LM.cpp
In file included from LM.cpp:70:
LM.hpp:205: error: 'ushort' has not been declared
LM.hpp:206: error: 'ushort' has not been declared
cd /opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0\=810/HPCToolkit/src/lib/isa
AlphaISA.cpp
In file included from AlphaISA.hpp:61,
from AlphaISA.cpp:58:
ISA.hpp:80: error: 'ushort' does not name a type
ISA.hpp: In constructor 'DecodingCache::DecodingCache()':
ISA.hpp:70: error: 'insnSize' was not declared in this scope
ISA.hpp: At global scope:
ISA.hpp:320: error: 'ushort' does not name a type
ISA.hpp:326: error: 'ushort' does not name a type
AlphaISA.cpp:760: error: 'ushort' has not been declared
AlphaISA.cpp: In member function 'virtual VMA
AlphaISA::GetInsnTargetVMA(MachInsn*, VMA, int, int)':
AlphaISA.cpp:790: error: 'MINSN_SIZE' was not declared in this scope
IA64ISA.cpp
In file included from IA64ISA.hpp:62,
from IA64ISA.cpp:64:
ISA.hpp:80: error: 'ushort' does not name a type
ISA.hpp: In constructor 'DecodingCache::DecodingCache()':
ISA.hpp:70: error: 'insnSize' was not declared in this scope
ISA.hpp: At global scope:
ISA.hpp:320: error: 'ushort' does not name a type
IA64ISA.hpp:109: error: 'ushort' has not been declared
IA64ISA.hpp: In member function 'virtual VMA IA64ISA::ConvertOpVMAToVMA(VMA,
int&) const':
IA64ISA.hpp:112: error: 'ushort' was not declared in this scope
IA64ISA.hpp:112: error: expected `;' before 'offset'
IA64ISA.hpp:113: error: 'offset' was not declared in this scope
IA64ISA.cpp: At global scope:
IA64ISA.cpp:123: error: prototype for 'ISA::InsnDesc
IA64ISA::GetInsnDesc(MachInsn*, ushort, ushort)' does not match any in class
'IA64ISA'
IA64ISA.hpp:86: error: candidate is: virtual ISA::InsnDesc
IA64ISA::GetInsnDesc(MachInsn*, int, int)
IA64ISA.cpp:178: error: prototype for 'VMA IA64ISA::GetInsnTargetVMA(MachInsn*,
VMA, ushort, ushort)' does not match any in class 'IA64ISA'
IA64ISA.hpp:89: error: candidate is: virtual VMA
IA64ISA::GetInsnTargetVMA(MachInsn*, VMA, int, int)
IA64ISA.cpp:198: error: no 'ushort IA64ISA::GetInsnNumOps(MachInsn*)' member
function declared in class 'IA64ISA'
make: *** [libHPCisa_la-IA64ISA.lo] Error 1
ISA.cpp
In file included from ISA.cpp:55:
ISA.hpp:80: error: 'ushort' does not name a type
ISA.hpp: In constructor 'DecodingCache::DecodingCache()':
ISA.hpp:70: error: 'insnSize' was not declared in this scope
ISA.hpp: At global scope:
ISA.hpp:320: error: 'ushort' does not name a type
ISA.hpp:391: error: 'ushort' has not been declared
ISA.hpp: In member function 'void ISA::CacheSet(MachInsn*, int)':
ISA.hpp:392: error: 'class DecodingCache' has no member named 'insnSize'
make: *** [libHPCisa_la-ISA.lo] Error 1
MipsISA.cpp
In file included from MipsISA.hpp:60,
from MipsISA.cpp:57:
ISA.hpp:80: error: 'ushort' does not name a type
ISA.hpp: In constructor 'DecodingCache::DecodingCache()':
ISA.hpp:70: error: 'insnSize' was not declared in this scope
ISA.hpp: At global scope:
ISA.hpp:320: error: 'ushort' does not name a type
MipsISA.cpp:225: error: 'ushort' has not been declared
MipsISA.cpp: In member function 'virtual VMA
MipsISA::GetInsnTargetVMA(MachInsn*, VMA, int, int)':
MipsISA.cpp:256: error: 'MINSN_SIZE' was not declared in this scope
MipsISA.cpp: At global scope:
MipsISA.cpp:288: error: 'ushort' does not name a type
make: *** [libHPCisa_la-MipsISA.lo] Error 1
SparcISA.cpp
In file included from SparcISA.hpp:61,
from SparcISA.cpp:65:
ISA.hpp:80: error: 'ushort' does not name a type
ISA.hpp: In constructor 'DecodingCache::DecodingCache()':
ISA.hpp:70: error: 'insnSize' was not declared in this scope
ISA.hpp: At global scope:
ISA.hpp:320: error: 'ushort' does not name a type
ISA.hpp:330: error: 'ushort' has not been declared
SparcISA.cpp:118: error: 'ushort' has not been declared
SparcISA.cpp: In member function 'virtual ISA::InsnDesc
SparcISA::GetInsnDesc(MachInsn*, int, int)':
SparcISA.cpp:123: error: 'ushort' was not declared in this scope
SparcISA.cpp:123: error: expected `;' before 'size'
SparcISA.cpp:124: error: 'size' was not declared in this scope
x86ISA.cpp
In file included from x86ISA.hpp:60,
from x86ISA.cpp:64:
ISA.hpp:80: error: 'ushort' does not name a type
ISA.hpp: In constructor 'DecodingCache::DecodingCache()':
ISA.hpp:70: error: 'insnSize' was not declared in this scope
ISA.hpp: At global scope:
ISA.hpp:320: error: 'ushort' does not name a type
x86ISA.cpp:191: error: 'ushort' has not been declared
x86ISA.cpp: In member function 'virtual VMA x86ISA::GetInsnTargetVMA(MachInsn*,
VMA, int, int)':
x86ISA.cpp:196: error: 'ushort' was not declared in this scope
x86ISA.cpp:196: error: expected `;' before 'size'
x86ISA.cpp:197: error: 'size' was not declared in this scope
make: *** [libHPCisa_la-x86ISA.lo] Error 1
cd
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0\=810/HPCToolkit/src/lib/prof-juicy
PerfMetric.cpp
PerfMetric.cpp: In member function 'void PerfMetric::Ctor(const char*, const
char*)':
PerfMetric.cpp:91: error: 'strlen' was not declared in this scope
cd
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0\=810/HPCToolkit/src/lib/prof-juicy
PgmScopeTreeInterface.cpp
PgmScopeTreeInterface.cpp: In member function 'FileScope*
NodeRetriever::MoveToFile(const char*)':
PgmScopeTreeInterface.cpp:154: error: 'strcmp' was not declared in this scope
make: *** [libHPCprof_juicy_la-PgmScopeTreeInterface.lo] Error 1
FlatProfileReader.cpp
FlatProfileReader.cpp: In member function 'int ProfFile::read(const
std::string&)':
FlatProfileReader.cpp:99: error: 'strncmp' was not declared in this scope
FlatProfileReader.cpp:102: error: 'strncmp' was not declared in this scope
cd /opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0\=810/HPCToolkit/src/lib/support
StrUtil.cpp
StrUtil.cpp: In function 'long int StrUtil::toLong(const char*, unsigned
int*)':
StrUtil.cpp: In function 'uint64_t StrUtil::toUInt64(const char*, unsigned
int*)':
StrUtil.cpp: In function 'double StrUtil::toDbl(const char*, unsigned int*)':
StrUtil.cpp:128: error: 'strlen' was not declared in this scope
StrUtil.cpp:133: error: 'strerror' was not declared in this scope
Files.cpp
Files.cpp: In function 'const char* CopyFile(const char*, ...)':
Files.cpp:99: error: 'strerror' was not declared in this scope
Files.cpp:108: error: 'strerror' was not declared in this scope
Files.cpp: In function 'const char* TmpFileName()':
Files.cpp:176: error: 'strcpy' was not declared in this scope
Files.cpp: In function 'std::string BaseFileName(const char*)':
Files.cpp: In function 'std::string PathComponent(const char*)':
Files.cpp:228: error: 'strrchr' was not declared in this scope
SrcFile.cpp
SrcFile.cpp: In constructor 'SrcFile::SrcFile::SrcFile(const char*)':
SrcFile.cpp:72: error: 'strlen' was not declared in this scope
SrcFile.cpp: In member function 'bool SrcFile::SrcFile::GetLine(unsigned int,
char*, unsigned int) const':
SrcFile.cpp:91: error: 'strncpy' was not declared in this scope
cd /opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0\=810/HPCToolkit/src/lib/xml
xml.cpp
xml.cpp: In function 'std::string xml::Substitute(const char*, const
std::string*, const std::string*)':
xml.cpp:151: error: 'strlen' was not declared in this scope
xml.cpp:159: error: 'strncmp' was not declared in this scope
cd
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0\=810/HPCToolkit/src/hpctoolkit/hpcprof
hpcprof.cpp
hpcprof.cpp: In function 'int dump_PROFILE(Summary&)':
hpcprof.cpp:280: warning: deprecated conversion from string constant to 'char*'
hpcprof.cpp: In function 'int dump_html_or_text(Summary&)':
hpcprof.cpp:429: error: 'strerror' was not declared in this scope
loadmodule.cpp
loadmodule.cpp: In member function 'void BFDLoadModule::read_file(const
std::string&, bool)':
loadmodule.cpp:224: error: 'qsort' was not declared in this scope
loadmodule.cpp: In member function 'virtual std::string
BFDLoadModule::demangle(const std::string&) const':
loadmodule.cpp:382: error: 'free' was not declared in this scope
cd
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0\=810/HPCToolkit/src/hpctoolkit/hpcview
Args.cpp
Args.cpp: In member function 'void Args::setHPCHome()':
Args.cpp:399: error: 'strlen' was not declared in this scope
cd
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0\=810/HPCToolkit/src/hpctoolkit/xcsprof
CSProfTreeIterator.cpp
CSProfTreeIterator.cpp:320: error: 'strcmp' was not declared in this scope
cd
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0\=810/HPCToolkit/src/hpctoolkit/xprof
main.cpp
main.cpp:389: error: 'strcmp' was not declared in this scope
main.cpp: In function 'StringList* ConvertColonListToStringList(const char*)':
main.cpp:427: error: 'strtok' was not declared in this scope
DCPIMetricDesc.cpp
DCPIMetricDesc.cpp:198: error: 'strcmp' was not declared in this scope
DCPIMetricDesc.cpp: In function 'DCPIMetricDesc String2DCPIMetricDesc(const
char*)':
DCPIMetricDesc.cpp:237: error: 'strlen' was not declared in this scope
DCPIMetricDesc.cpp:244: error: 'strchr' was not declared in this scope
DCPIMetricDesc.cpp:269: error: 'strtok' was not declared in this scope
DCPIMetricDesc.cpp: In function 'int SetDCPIMetricDescBit(const char*,
DCPIMetricDesc&)':
DCPIMetricDesc.cpp:289: error: 'strlen' was not declared in this scope
DCPIProfile.cpp
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0=810/HPCToolkit/src/lib/isa/ISA.hpp:80:
error: 'ushort' does not name a type
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0=810/HPCToolkit/src/lib/isa/ISA.hpp:
In constructor 'DecodingCache::DecodingCache()':
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0=810/HPCToolkit/src/lib/isa/ISA.hpp:70:
error: 'insnSize' was not declared in this scope
PCProfileMetric.hpp:78: error: 'ulong' does not name a type
PCProfileMetric.hpp:103: error: 'PCProfileDatum' was not declared in this scope
PCProfileMetric.hpp:103: error: template argument 2 is invalid
PCProfileMetric.hpp:103: error: template argument 4 is invalid
PCProfileMetric.hpp:104: error: typedef name may not be a nested-name-specifier
PCProfileMetric.hpp:104: error: expected ';' before 'PCToPCProfileDatumMapVal'
PCProfile.hpp:247: error: 'ushort' has not been declared
PCProfile.hpp:326: error: ISO C++ forbids declaration of 'PCProfileDatum' with
no type
DCPIProfileFilter.cpp - similar errors to DCPIProfile.cpp
DCPIProfileMetric.cpp - similar errors to DCPIProfile.cpp
DerivedProfile.cpp - similar errors to DCPIProfile.cpp
PCProfile.cpp - similar errors to DCPIProfile.cpp
PCProfileFilter.cpp - similar errors to DCPIProfile.cpp
PCProfileMetric.cpp - similar errors to DCPIProfile.cpp
ProfileReader.cpp
ProfileReader.cpp:92: error: 'strcmp' was not declared in this scope
ProfileReader.cpp: In function 'DCPIProfile::PMMode DeterminePMMode(const
char*)':
ProfileReader.cpp:413: error: 'strncmp' was not declared in this scope
ProfileWriter.cpp - similar errors to DCPIProfile.cpp
Along with the string functions not being in scope most of the errors are
these:
error: 'ushort' does not name a type
error: 'ushort' was not declared in this scope
error: 'offset' was not declared in this scope
error: 'memset' was not declared in this scope
error: 'ushort' has not been declared
prototype for 'ISA::InsnDesc IA64ISA::GetInsnDesc(MachInsn*, ushort, ushort)'
does not match any in class 'IA64ISA'
Remember, each of those lists of warnings and errors was edited down. If
unedited, each failing file produced many pages of info in some cases. Where
the file produced only a couple of lines I showed all the messages.
That was all the files I found that caused errors and needed to be compiled
with GCC 4.1 instead of GCC 4.3 . After I was finished I tarred and bzip2'd
the ".ii" files, here is how big it would be (too big):
-rw-r--r-- 1 root root 2555291 Jul 8 13:44 HPCToolkit-4_3-errors.tar.bz2
So I am not including _all_ the .ii files - you'll need to get the source.
Here is the included list. This list seems to cover all the duplicated errors:
-rw-r--r-- 1 root root 852739 Jul 8 18:20 bloop_LocationMgr.ii
-rw-r--r-- 1 root root 817349 Jul 8 18:20 OAInterface.ii
-rw-r--r-- 1 root root 852603 Jul 8 18:21 Seg.ii
-rw-r--r-- 1 root root 589250 Jul 8 18:21 IA64ISA.ii
-rw-r--r-- 1 root root 588396 Jul 8 18:22 loadmodule.ii
Those few files, tarred and bzip2'd are only 400k.
-rw-r--r-- 1 root root 399690 Jul 8 18:24 HPCToolkit-4_3-errors.tar.bz2
I ended up compiling over 10% of the files with GCC 4.1 and the rest with 4.3.
Everything linked up fine and it seems to run except for the Java "hpcviewer" .
Short version: Works on GCC < 4.3 , fails on GCC == 4.3 .
---------------------------------------
There is at least one Java error:
1. ERROR in
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0=810/hpcviewer/src/edu/rice/cs/hpcviewer/app/ApplicationActions.java
(at line 40)
@SuppressWarnings("serial")
^^^^^^^^^^^^^^^^
SuppressWarnings cannot be resolved to a type
Commenting out this annotation causes a number of warnings to be printed and
then another file with this annotation causes the same problem.
Commenting out that line causes more warnings and leads to yet another file.
Eventually I get to a file that compiled fine without errors previously, but
now has errors:
8. ERROR in
/opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0=810/hpcviewer/src/edu/rice/cs/hpcviewer/experiment/xml/ExperimentBuilder.java
(at line 576)
this.experiment.setMetrics(this.metricList);
^^^^^^^^^^
The method setMetrics(List) is undefined for the type Experiment
Since I am not knowledgable enough to fix this I downloaded the .jar file that
the site provides on page:
http://www.hipersoft.rice.edu/hpctoolkit/examples.html
http://www.hipersoft.rice.edu/hpctoolkit/examples/HPCViewer.jar.gz
If I start Iceweasel and click on the jar file I get this message:
Exception in thread "main" java.lang.NoClassDefFoundError:
/opt/HPCToolkit-OneStopShopping-TRUNK-4/9/0=810/hpcviewer/build-unix/HPCViewer/jar
The .jar file works fine with WinXP Internet Explorer and sun Java but doesn't
work with GCC's gij.
With GCC 4.2 gij I get this message:
# gij -jar HPCViewer.jar
(.:5821): Gtk-WARNING **: Unable to locate theme engine in module_path:
"qtengine",
java.lang.InternalError: Gtk: Unable to locate theme engine in module_path:
"qtengine",
at java.lang.reflect.Constructor.newInstance(natConstructor.cc:71)
(.:5821): Gtk-WARNING **: Unable to locate theme engine in module_path:
"qtengine",
java.lang.InternalError: Gtk: Unable to locate theme engine in module_path:
"qtengine",
at java.lang.reflect.Constructor.newInstance(natConstructor.cc:71)
/root/downloads/gcc-4_2-branch/libjava/classpath/native/jni/gtk-peer/gthread-jni.c:1223:
AWT JNI failure (BROKEN): cannot enter monitor
Description follows to System.err:
java.lang.NullPointerException
at java.lang.Object.getClass(natObject.cc:55)
/root/downloads/gcc-4_2-branch/libjava/classpath/native/jni/gtk-peer/gthread-jni.c:1223:
Aborting execution; BROKEN: cannot enter monitor
Aborting execution
Aborted
With GCC 4.3 gij I get this message:
Exception in thread "main" java.lang.NoClassDefFoundError:
/opt/HPCToolkit-OneStopShopping-TRUNK-4/9/0=810/hpcviewer/build-unix/HPCViewer/jar
cd /opt/HPCToolkit-OneStopShopping-TRUNK-4.9.0=810/hpcviewer/src
/usr/test/bin/gij -jar HPCViewer.jar
Starts (creates the 'open file' dialog window), but gives error message:
(.:5841): Gtk-WARNING **: Unable to locate theme engine in module_path:
"qtengine",
java.lang.InternalError: Gtk: Unable to locate theme engine in module_path:
"qtengine",
at java.lang.reflect.Constructor.newInstance(natConstructor.cc:92)
(.:5841): Gtk-WARNING **: Unable to locate theme engine in module_path:
"qtengine",
java.lang.InternalError: Gtk: Unable to locate theme engine in module_path:
"qtengine",
at java.lang.reflect.Constructor.newInstance(natConstructor.cc:92)
failure while exiting GTK monitor
Exception during event dispatch:
java.lang.IllegalMonitorStateException: current thread not owner
<<No stacktrace available>>
I do configure GCC to build Java with "--with-x --x-includes=/usr/X11R6/include
--x-libraries=/usr/X11R6/lib --enable-java-awt=gtk,xlib --enable-gtk-cairo
--enable-qt-peer --enable-xmlj --enable-gconf-peer" and it passes many mauve
tests (and ALL the GCC testsuite). There is something about the way GCC builds
gij that does not let it run .jar files that work perfectly on the WinXP
platform with Internet Explorer.
In Internet Explorer, if I click [Tools][Sun Java Console], it says I have this
version:
Java Plug-in 1.6.0_01
Using JRE version 1.6.0_01 Java HotSpot(TM) Client VM
----------
Since it is usually the practice to include ".i" files I am including the ".ii"
files. These files reproduce the warnings and errors _IF_ they are compiled in
the directory in which they were "-save-temps"'d in. They do not build in a
seperate directory - perhaps it is only ".i" files that are "all-inclusive".
Building in the directory where they were created gives this sort of ouput:
# /usr/test/bin/gcc -c -o test.o bloop_LocationMgr-4.3.ii
bloop_LocationMgr.cpp: In function 'bool RELOCATEDcmp(const char*)':
bloop_LocationMgr.cpp:91: error: 'strncmp' was not declared in this scope
Building in a different directory gives this sort of output:
# gcc -c -o test.o bloop_LocationMgr.ii
In file included from /usr/test/include/c++/4.3/bits/char_traits.h:47,
from /usr/test/include/c++/4.3/string:48,
from bloop_LocationMgr.cpp:56:
/usr/test/include/c++/4.3/bits/stl_algobase.h: In function '_OI
std::__copy_aux(_II, _II, _OI)':
/usr/test/include/c++/4.3/bits/stl_algobase.h:363: error: expected
primary-expression before ')' token
/usr/test/include/c++/4.3/bits/stl_algobase.h:363: error: there are no
arguments to '__is_pod' that depend on a template parameter, so a declaration
of '__is_pod' must be available
/usr/test/include/c++/4.3/bits/stl_algobase.h:363: error: (if you use
'-fpermissive', G++ will accept your code, but allowing the use of an
undeclared name is deprecated)
/usr/test/include/c++/4.3/bits/stl_algobase.h:368: error: '__simple' cannot
appear in a constant-expression
/usr/test/include/c++/4.3/bits/stl_algobase.h:368: error: template argument 1
is invalid
... many pages of errors ...
If I build in a different directory using GCC 4.1 I get no errors related to
the file itself but instead only to GCC's gthr-default.h :
# gcc-4.1 -o test.o bloop_LocationMgr.ii
/usr/test/include/c++/4.3/i686-pc-linux-gnu/bits/c++config.h:159: error:
expected `=' before '__attribute__'
/usr/test/include/c++/4.3/i686-pc-linux-gnu/bits/c++config.h:159: error:
expected identifier before '__attribute__'
/usr/test/include/c++/4.3/i686-pc-linux-gnu/bits/c++config.h:159: error:
expected `;' before '__attribute__'
/usr/test/include/c++/4.3/i686-pc-linux-gnu/bits/c++config.h:159: error:
expected unqualified-id before '{' token
If I build in a different directory using GCC 4.2 I get no errors related to
the file itself but instead GCC 4.2 want to use GCC 4.3 's include files when
it compiles an ".ii" file:
# gcc-4.2 -o test.o bloop_LocationMgr.ii
In file included from /usr/test/include/c++/4.3/bits/char_traits.h:47,
from /usr/test/include/c++/4.3/string:48,
from bloop_LocationMgr.cpp:56:
/usr/test/include/c++/4.3/bits/stl_algobase.h: In function '_OI
std::__copy_aux(_II, _II, _OI)':
/usr/test/include/c++/4.3/bits/stl_algobase.h:363: error: expected
primary-expression before ')' token
/usr/test/include/c++/4.3/bits/stl_algobase.h:363: error: there are no
arguments to '__is_pod' that depend on a template parameter, so a declaration
of '__is_pod' must be available
/usr/test/include/c++/4.3/bits/stl_algobase.h:363: error: (if you use
'-fpermissive', G++ will accept your code, but allowing the use of an
undeclared name is deprecated)
/usr/test/include/c++/4.3/bits/stl_algobase.h:368: error: '__simple' cannot
appear in a constant-expression
/usr/test/include/c++/4.3/bits/stl_algobase.h:368: error: template argument 1
is invalid
So I don't know how I am to include ".ii" files that are of any help.
There are so many errors exposed and so many files that are in error it
may be best to simply get the origonal source and build it. If you need me to
.tar.gz a whole directory and send that please ask. I'm trying to keep this
small. :( .
--
Summary: Compiling HPCToolkit causes many errors and warnings
using GCC 4.3 (but not prior versions)
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rob1weld at aol dot com
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32683