From: Darrel J. C. <gm...@th...> - 2007-10-08 20:00:49
|
Hi, folks. Liam Healy sent out a useful listing showing some warnings and errors that show up when compiling GMAT on Linux built for AMD 64 bit processors. I'm sending a pared down version of this message to the mailing list because SourceForge had trouble with the size of the original message (it looks like there is a 40k message size limit). (Liam: please reply if I missed anything in my butchering of your message!) There are 2 issues that this dump points out. I knew about the first one, which generates the errors that stop the build, is related to unicode versions of the wx libraries. I'm currently in the process of correcting that issue. The second appears on the 64 bit build because of our usage of the string::npos parameter in comparisons; these comparisons are generating warning messages in the form "warning: comparison is always true due to limited range of data type" when building GMAT on 64 bit Linux. At least, that's my current working theory. I'll finish fixing the unicode issues first, since they affect anyone using prebuilt wx libraries on both Debian and Red Hat, and then look for a clean way to address the npos issues. - Darrel Here's my butchered version of the original message: ------------------------------------------------------------------------ Subject: GMAT fails to compile on Debian GNU/Linux amd64 From: "Liam Healy" <lnp@hea...> Date: Sun, 7 Oct 2007 23:13:02 -0400 See my blog http://lhealy.livejournal.com/7623.html?thread=14535 Compiling for Debian GNU/Linux etch amd64. I am compiling with wxwindows 2.6 since 2.8 is not yet in Debian. Set WX_28_SYNTAX = 0 Also link ln -sf topLevelBuildFiles/linux/MakeGmat.eclipse topLevelBuildFiles/linux/BuildEnv.mk . Need to redefine to remove local from path: WXCPPFLAGS = `/usr/bin/wx-config --cppflags` WXLINKFLAGS = `/usr/bin/wx-config --libs --gl-libs --static=no` then it fails to build: ~/satellite/gmat/src> make -f MakeGmat.eclipse rm -rf bin/gmat base/lib/libGmatGui.a gui/gmat cd base; make -f MakeBase.eclipse all make[1]: Entering directory `/home/liam/satellite/gmat/src/base' g++ -O3 -fno-strict-aliasing -ffriend-injection -Wall `/usr/bin/wx-config --cppflags` -I/usr/local/include/IL -Iinclude -Ifoundation -Iexecutive -Iattitude -Ispacecraft -Iforcemodel -Ipropagator -Isubscriber -Icommand -Isolarsys -Ifactory -Istopcond -Iinterpreter -Iutil -Iinterpolator -Iinterface -Iparameter -Iconfigs -Iburn -Isolver -Ifunction -Icoordsystem -Imath -I../gui/include -I../gui/include/bitmaps -I../gui/app -I../gui/view -I../gui/output -I../gui/foundation -I../gui/plot -I../gui/mission -c -o attitude/Attitude.o attitude/Attitude.cpp ... g++ -O3 -fno-strict-aliasing -ffriend-injection -Wall `/usr/bin/wx-config --cppflags` -I/usr/local/include/IL -Iinclude -Ifoundation -Iexecutive -Iattitude -Ispacecraft -Iforcemodel -Ipropagator -Isubscriber -Icommand -Isolarsys -Ifactory -Istopcond -Iinterpreter -Iutil -Iinterpolator -Iinterface -Iparameter -Iconfigs -Iburn -Isolver -Ifunction -Icoordsystem -Imath -I../gui/include -I../gui/include/bitmaps -I../gui/app -I../gui/view -I../gui/output -I../gui/foundation -I../gui/plot -I../gui/mission -c -o command/GmatCommand.o command/GmatCommand.cpp command/GmatCommand.cpp: In member function GmatBase* GmatCommand::FindObject(const std::string&): command/GmatCommand.cpp:1938: warning: comparison is always true due to limited range of data type ... g++ -O3 -fno-strict-aliasing -ffriend-injection -Wall `/usr/bin/wx-config --cppflags` -I/usr/local/include/IL -Iinclude -Ifoundation -Iexecutive -Iattitude -Ispacecraft -Iforcemodel -Ipropagator -Isubscriber -Icommand -Isolarsys -Ifactory -Istopcond -Iinterpreter -Iutil -Iinterpolator -Iinterface -Iparameter -Iconfigs -Iburn -Isolver -Ifunction -Icoordsystem -Imath -I../gui/include -I../gui/include/bitmaps -I../gui/app -I../gui/view -I../gui/output -I../gui/foundation -I../gui/plot -I../gui/mission -c -o command/Propagate.o command/Propagate.cpp command/Propagate.cpp: In member function void Propagate::FindSetupsAndStops(Integer&, std::string&, StringArray&, StringArray&): command/Propagate.cpp:1599: warning: comparison is always false due to limited range of data type command/Propagate.cpp: In member function void Propagate::ConfigurePropSetup(std::string&): command/Propagate.cpp:1667: warning: comparison is always false due to limited range of data type command/Propagate.cpp:1688: warning: comparison is always true due to limited range of data type command/Propagate.cpp: In member function void Propagate::ConfigureStoppingCondition(std::string&): command/Propagate.cpp:1728: warning: comparison is always false due to limited range of data type ... g++ -O3 -fno-strict-aliasing -ffriend-injection -Wall `/usr/bin/wx-config --cppflags` -I/usr/local/include/IL -Iinclude -Ifoundation -Iexecutive -Iattitude -Ispacecraft -Iforcemodel -Ipropagator -Isubscriber -Icommand -Isolarsys -Ifactory -Istopcond -Iinterpreter -Iutil -Iinterpolator -Iinterface -Iparameter -Iconfigs -Iburn -Isolver -Ifunction -Icoordsystem -Imath -I../gui/include -I../gui/include/bitmaps -I../gui/app -I../gui/view -I../gui/output -I../gui/foundation -I../gui/plot -I../gui/mission -c -o executive/Moderator.o executive/Moderator.cpp executive/Moderator.cpp: In member function GmatBase* Moderator::GetConfiguredObject(const std::string&): executive/Moderator.cpp:466: warning: comparison is always true due to limited range of data type ... g++ -O3 -fno-strict-aliasing -ffriend-injection -Wall `/usr/bin/wx-config --cppflags` -I/usr/local/include/IL -Iinclude -Ifoundation -Iexecutive -Iattitude -Ispacecraft -Iforcemodel -Ipropagator -Isubscriber -Icommand -Isolarsys -Ifactory -Istopcond -Iinterpreter -Iutil -Iinterpolator -Iinterface -Iparameter -Iconfigs -Iburn -Isolver -Ifunction -Icoordsystem -Imath -I../gui/include -I../gui/include/bitmaps -I../gui/app -I../gui/view -I../gui/output -I../gui/foundation -I../gui/plot -I../gui/mission -c -o forcemodel/ForceModel.o forcemodel/ForceModel.cpp forcemodel/ForceModel.cpp: In member function virtual Integer ForceModel::SetupSpacecraftData(GmatBase*, PhysicalModel*, Integer): forcemodel/ForceModel.cpp:1192: warning: format %x expects type unsigned int, but argument 3 has type long unsigned int ... g++ -O3 -fno-strict-aliasing -ffriend-injection -Wall `/usr/bin/wx-config --cppflags` -I/usr/local/include/IL -Iinclude -Ifoundation -Iexecutive -Iattitude -Ispacecraft -Iforcemodel -Ipropagator -Isubscriber -Icommand -Isolarsys -Ifactory -Istopcond -Iinterpreter -Iutil -Iinterpolator -Iinterface -Iparameter -Iconfigs -Iburn -Isolver -Ifunction -Icoordsystem -Imath -I../gui/include -I../gui/include/bitmaps -I../gui/app -I../gui/view -I../gui/output -I../gui/foundation -I../gui/plot -I../gui/mission -c -o forcemodel/HarmonicField.o forcemodel/HarmonicField.cpp forcemodel/HarmonicField.cpp: In member function virtual std::string HarmonicField::GetStringParameter(Integer) const:forcemodel/HarmonicField.cpp:742: warning: comparison is always false due to limited range of data type ... g++ -O3 -fno-strict-aliasing -ffriend-injection -Wall `/usr/bin/wx-config --cppflags` -I/usr/local/include/IL -Iinclude -Ifoundation -Iexecutive -Iattitude -Ispacecraft -Iforcemodel -Ipropagator -Isubscriber -Icommand -Isolarsys -Ifactory -Istopcond -Iinterpreter -Iutil -Iinterpolator -Iinterface -Iparameter -Iconfigs -Iburn -Isolver -Ifunction -Icoordsystem -Imath -I../gui/include -I../gui/include/bitmaps -I../gui/app -I../gui/view -I../gui/output -I../gui/foundation -I../gui/plot -I../gui/mission -c -o interpreter/Interpreter.o interpreter/Interpreter.cpp interpreter/Interpreter.cpp: In member function bool Interpreter::AssembleCallFunctionCommand(GmatCommand*, const std::string&): interpreter/Interpreter.cpp:1163: warning: comparison is always true due to limited range of data type interpreter/Interpreter.cpp:1172: warning: comparison is always false due to limited range of data type interpreter/Interpreter.cpp: In member function bool Interpreter::AssembleConditionalCommand(GmatCommand*, const std::string&): interpreter/Interpreter.cpp:1264: warning: comparison is always false due to limited range of data type interpreter/Interpreter.cpp:1286: warning: comparison is always true due to limited range of data type interpreter/Interpreter.cpp: In member function bool Interpreter::AssembleForCommand(GmatCommand*, const std::string&): interpreter/Interpreter.cpp:1370: warning: comparison is always false due to limited range of data type interpreter/Interpreter.cpp: In member function GmatBase* Interpreter::MakeAssignment(const std::string&, const std::string&): interpreter/Interpreter.cpp:1909: warning: comparison is always false due to limited range of data type interpreter/Interpreter.cpp:1967: warning: comparison is always false due to limited range of data type ... (Many more messages like these) ... gfortran -c solarsys/msise90_sub.for -o solarsys/msise90_sub.o -O3 -fno-strict-aliasing -ffriend-injection -Wall `/usr/bin/wx-config --cppflags` -I/usr/local/include/IL f951: warning: command line option "-ffriend-injection" is valid for C++ but not for Fortran In file solarsys/msise90_sub.for:192 216 CONTINUE 1 Warning: Label 216 at (1) defined but not used g++ -O3 -fno-strict-aliasing -ffriend-injection -Wall `/usr/bin/wx-config --cppflags` -I/usr/local/include/IL -Iinclude -Ifoundation -Iexecutive -Iattitude -Ispacecraft -Iforcemodel -Ipropagator -Isubscriber -Icommand -Isolarsys -Ifactory -Istopcond -Iinterpreter -Iutil -Iinterpolator -Iinterface -Iparameter -Iconfigs -Iburn -Isolver -Ifunction -Icoordsystem -Imath -I../gui/include -I../gui/include/bitmaps -I../gui/app -I../gui/view -I../gui/output -I../gui/foundation -I../gui/plot -I../gui/mission -c -o executive/MessageInterface.o executive/MessageInterface.cpp ../gui/view/ViewTextFrame.hpp:30: error: default argument for parameter of type const wxString& has type const char [10] ../gui/view/ViewTextFrame.hpp:30: error: default argument for parameter of type const wxString& has type const char [7] ../gui/foundation/GuiItemManager.hpp:240: error: default argument for parameter of type const wxString& has type const char [1] ../gui/foundation/GuiItemManager.hpp:247: error: default argument for parameter of type const wxString& has type const char [1] ../gui/foundation/GuiItemManager.hpp:251: error: default argument for parameter of type const wxString& has type const char [1] ../gui/foundation/GuiItemManager.hpp:255: error: default argument for parameter of type const wxString& has type const char [1] ../gui/foundation/GuiItemManager.hpp:282: error: default argument for parameter of type const wxString& has type const char [11] ... (Many more of the same; these are generated by the unicode issue mentioned above) ... executive/MessageInterface.cpp:258: error: LwxString was not declared in this scope make[1]: *** [executive/MessageInterface.o] Error 1 make[1]: Leaving directory `/home/liam/satellite/gmat/src/base' make: *** [base/lib/libGmatGui.a] Error 2 |