[osg-submissions] osg-2.3.5 does not compile with gcc-4.3 (patch)

Jürgen Löb gandalf at hni.uni-paderborn.de
Wed Mar 19 10:36:40 PDT 2008


Hi,

all the errors are due to stricter include handling in newer gcc 
includes. See: http://gcc.gnu.org/gcc-4.3/porting_to.html
Imho there is now other way to get the issues solved, but to add the 
includes. You're right, if there are systems on which these headers do 
not exist this causes the build to break on these systems. In that case 
we should do some preprocessing....

Jürgen


Detailed errors and headers to include follow:


[ 16%] Building CXX object src/osgDB/CMakeFiles/osgDB.dir/FileNameUtils.o
cc1plus: Anmerkung: -freorder-blocks-and-partition funktioniert nicht 
mit Ausnahmen
/var/tmp/portage/media-gfx/openscenegraph-2.3.5/work/OpenSceneGraph-2.3.5/src/osgDB/FileNameUtils.cpp:30: 
Fehler: »std::strlen« wurde nicht deklariert
make[2]: *** [src/osgDB/CMakeFiles/osgDB.dir/FileNameUtils.o] Fehler 1
make[1]: *** [src/osgDB/CMakeFiles/osgDB.dir/all] Fehler 2
make: *** [all] Fehler 2

solution:  #include <cstring>


[ 16%] Building CXX object src/osgDB/CMakeFiles/osgDB.dir/Registry.o
cc1plus: Anmerkung: -freorder-blocks-and-partition funktioniert nicht 
mit Ausnahmen
/var/tmp/portage/media-gfx/openscenegraph-2.3.5/work/OpenSceneGraph-2.3.5/src/osgDB/Registry.cpp:39: 
Fehler: »std::strlen« wurde nicht deklariert
make[2]: *** [src/osgDB/CMakeFiles/osgDB.dir/Registry.o] Fehler 1
make[1]: *** [src/osgDB/CMakeFiles/osgDB.dir/all] Fehler 2
make: *** [all] Fehler 2

solution: #include <cstring>


[ 36%] Building CXX object 
src/osgViewer/CMakeFiles/osgViewer.dir/ViewerEventHandlers.o
cc1plus: Anmerkung: -freorder-blocks-and-partition funktioniert nicht 
mit Ausnahmen
/var/tmp/portage/media-gfx/openscenegraph-2.3.5/work/OpenSceneGraph-2.3.5/src/osgViewer/ViewerEventHandlers.cpp: 
In member function »unsigned int 
osgViewer::WindowSizeHandler::getNearestResolution(int, int, int, int) 
const«:
/var/tmp/portage/media-gfx/openscenegraph-2.3.5/work/OpenSceneGraph-2.3.5/src/osgViewer/ViewerEventHandlers.cpp:250: 
Fehler: »INT_MAX« wurde in diesem Gültigkeitsbereich nicht definiert
make[2]: *** 
[src/osgViewer/CMakeFiles/osgViewer.dir/ViewerEventHandlers.o] Fehler 1
make[1]: *** [src/osgViewer/CMakeFiles/osgViewer.dir/all] Fehler 2
make: *** [all] Fehler 2

solution: #include <climits>


[ 70%] Building CXX object 
src/osgPlugins/gdal/CMakeFiles/osgdb_gdal.dir/ReaderWriterGDAL.o
cc1plus: Anmerkung: -freorder-blocks-and-partition funktioniert nicht 
mit Ausnahmen
/var/tmp/portage/media-gfx/openscenegraph-2.3.5/work/OpenSceneGraph-2.3.5/src/osgPlugins/gdal/ReaderWriterGDAL.cpp: 
In member function »virtual osgDB::ReaderWriter::ReadResult 
ReaderWriterGDAL::local_readImage(const std::string&, const 
osgDB::ReaderWriter::Options*)«:
/var/tmp/portage/media-gfx/openscenegraph-2.3.5/work/OpenSceneGraph-2.3.5/src/osgPlugins/gdal/ReaderWriterGDAL.cpp:114: 
Fehler: »auto_ptr« ist kein Element von »std«
/var/tmp/portage/media-gfx/openscenegraph-2.3.5/work/OpenSceneGraph-2.3.5/src/osgPlugins/gdal/ReaderWriterGDAL.cpp:114: 
Fehler: expected primary-expression before »>« token
/var/tmp/portage/media-gfx/openscenegraph-2.3.5/work/OpenSceneGraph-2.3.5/src/osgPlugins/gdal/ReaderWriterGDAL.cpp:114: 
Fehler: »dataset« wurde in diesem Gültigkeitsbereich nicht definiert
/var/tmp/portage/media-gfx/openscenegraph-2.3.5/work/OpenSceneGraph-2.3.5/src/osgPlugins/gdal/ReaderWriterGDAL.cpp: 
In member function »osgDB::ReaderWriter::ReadResult 
ReaderWriterGDAL::local_readHeightField(const std::string&, const 
osgDB::ReaderWriter::Options*)«:
/var/tmp/portage/media-gfx/openscenegraph-2.3.5/work/OpenSceneGraph-2.3.5/src/osgPlugins/gdal/ReaderWriterGDAL.cpp:568: 
Fehler: »auto_ptr« ist kein Element von »std«
/var/tmp/portage/media-gfx/openscenegraph-2.3.5/work/OpenSceneGraph-2.3.5/src/osgPlugins/gdal/ReaderWriterGDAL.cpp:568: 
Fehler: expected primary-expression before »>« token
/var/tmp/portage/media-gfx/openscenegraph-2.3.5/work/OpenSceneGraph-2.3.5/src/osgPlugins/gdal/ReaderWriterGDAL.cpp:568: 
Fehler: »dataset« wurde in diesem Gültigkeitsbereich nicht definiert
make[2]: *** 
[src/osgPlugins/gdal/CMakeFiles/osgdb_gdal.dir/ReaderWriterGDAL.o] Fehler 1
make[1]: *** [src/osgPlugins/gdal/CMakeFiles/osgdb_gdal.dir/all] Fehler 2
make: *** [all] Fehler 2

solution: #include <memory>


[ 88%] Building CXX object 
examples/osgdepthpartition/CMakeFiles/example_osgdepthpartition.dir/DistanceAccumulator.o
cc1plus: Anmerkung: -freorder-blocks-and-partition funktioniert nicht 
mit Ausnahmen
/var/tmp/portage/media-gfx/openscenegraph-2.3.5/work/OpenSceneGraph-2.3.5/examples/osgdepthpartition/DistanceAccumulator.cpp: 
In constructor »DistanceAccumulator::DistanceAccumulator()«:
/var/tmp/portage/media-gfx/openscenegraph-2.3.5/work/OpenSceneGraph-2.3.5/examples/osgdepthpartition/DistanceAccumulator.cpp:46: 
Fehler: »UINT_MAX« wurde in diesem Gültigkeitsbereich nicht definiert
make[2]: *** 
[examples/osgdepthpartition/CMakeFiles/example_osgdepthpartition.dir/DistanceAccumulator.o] 
Fehler 1
make[1]: *** 
[examples/osgdepthpartition/CMakeFiles/example_osgdepthpartition.dir/all] 
Fehler 2
make: *** [all] Fehler 2

solution: #include <limits.h>


Robert Osfield schrieb:
> Hi Jürgen,
>
> I'm reviewing your changes but am concerned that they might break the
> build on older systems like IRIX where the full Standard C++'s c
> headers aren't properly supported.
>
> Could you post the errors you are getting.
>
> Robert.
>   
-- 
Hiermit widerspreche ich/wir der Nutzung oder Uebermittlung 
meiner/unserer Daten fuer Werbezwecke oder fuer die Markt- oder 
Meinungsforschung gem. Par. 28 Abs. 3 Bundesdatenschutzgesetz.



More information about the osg-submissions mailing list