Bug 160413

Summary: graphics/osg: CLANG wont compile this port
Product: Ports & Packages Reporter: Hartmann <Hartmann>
Component: Individual Port(s)Assignee: Dmitry Marakasov <amdmi3>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description Hartmann freebsd_committer freebsd_triage 2011-09-03 00:20:10 UTC
Trying to compile port graphics/osg with CLANG on a complete built platform via CLANG (as described on the Wiki page) fails with the following message:

[...]
[ 12%] Building CXX object src/osg/CMakeFiles/osg.dir/StateSet.o
/usr/ports/graphics/osg/work/OpenSceneGraph-2.8.2/src/osg/State.cpp:46:26: warning: initialization of pointer of type 'bool *' to NULL from a constant boolean expression [-Wbool-conversions]
    _abortRenderingPtr = false;    
                         ^~~~~
/usr/ports/graphics/osg/work/OpenSceneGraph-2.8.2/src/osg/State.cpp:577:55: warning: initialization of pointer of type 'const osg::StateAttribute *' to NULL from a constant boolean expression [-Wbool-conversions]
    if (unit>=_textureAttributeMapList.size()) return false;
                                                      ^~~~~
2 warnings generated.
[ 12%] Building CXX object src/osg/CMakeFiles/osg.dir/Stats.o
[ 12%] Building CXX object src/osg/CMakeFiles/osg.dir/Stencil.o
[ 12%] Building CXX object src/osg/CMakeFiles/osg.dir/StencilTwoSided.o
[ 12%] Building CXX object src/osg/CMakeFiles/osg.dir/Switch.o
[ 12%] Building CXX object src/osg/CMakeFiles/osg.dir/TexEnvCombine.o
[ 13%] Building CXX object src/osg/CMakeFiles/osg.dir/TexEnv.o
[ 13%] Building CXX object src/osg/CMakeFiles/osg.dir/TexEnvFilter.o
[ 13%] Building CXX object src/osg/CMakeFiles/osg.dir/TexGen.o
[ 13%] Building CXX object src/osg/CMakeFiles/osg.dir/TexGenNode.o
[ 13%] Building CXX object src/osg/CMakeFiles/osg.dir/TexMat.o
[ 13%] Building CXX object src/osg/CMakeFiles/osg.dir/Texture1D.o
[ 13%] Building CXX object src/osg/CMakeFiles/osg.dir/Texture2DArray.o
[ 13%] Building CXX object src/osg/CMakeFiles/osg.dir/Texture2D.o
[ 13%] Building CXX object src/osg/CMakeFiles/osg.dir/Texture3D.o
[ 14%] Building CXX object src/osg/CMakeFiles/osg.dir/Texture.o
[ 14%] Building CXX object src/osg/CMakeFiles/osg.dir/TextureCubeMap.o
[ 14%] Building CXX object src/osg/CMakeFiles/osg.dir/TextureRectangle.o
[ 14%] Building CXX object src/osg/CMakeFiles/osg.dir/Timer.o
[ 14%] Building CXX object src/osg/CMakeFiles/osg.dir/TransferFunction.o
[ 14%] Building CXX object src/osg/CMakeFiles/osg.dir/Transform.o
[ 14%] Building CXX object src/osg/CMakeFiles/osg.dir/Uniform.o
[ 14%] Building CXX object src/osg/CMakeFiles/osg.dir/Version.o
[ 15%] Building CXX object src/osg/CMakeFiles/osg.dir/VertexProgram.o
In file included from /usr/ports/graphics/osg/work/OpenSceneGraph-2.8.2/src/osg/Uniform.cpp:20:
In file included from /usr/ports/graphics/osg/work/OpenSceneGraph-2.8.2/include/osg/Uniform:22:
/usr/ports/graphics/osg/work/OpenSceneGraph-2.8.2/include/osg/Array:200:13: error: use of undeclared identifier 'assign'
            assign(array.begin(),array.end());
            ^
            this->
/usr/ports/graphics/osg/work/OpenSceneGraph-2.8.2/src/osg/Uniform.cpp:259:71: note: in instantiation of member function 'osg::TemplateArray<float, 8, 1, 5126>::operator=' requested here
    if( _floatArray.valid() && rhs._floatArray.valid() ) *_floatArray = *rhs._floatArray;
                                                                      ^
/usr/ports/graphics/osg/work/OpenSceneGraph-2.8.2/include/osg/MixinVector:113:10: note: must qualify identifier to find this declaration in dependent base class
    void assign(size_type count, const value_type& value) { _impl.assign(count, value); }
         ^
/usr/ports/graphics/osg/work/OpenSceneGraph-2.8.2/include/osg/MixinVector:115:10: note: must qualify identifier to find this declaration in dependent base class
    void assign(Iter first, Iter last) { _impl.assign(first, last); }
         ^
In file included from /usr/ports/graphics/osg/work/OpenSceneGraph-2.8.2/src/osg/Uniform.cpp:20:
In file included from /usr/ports/graphics/osg/work/OpenSceneGraph-2.8.2/include/osg/Uniform:22:
/usr/ports/graphics/osg/work/OpenSceneGraph-2.8.2/include/osg/Array:286:13: error: use of undeclared identifier 'assign'
            assign(array.begin(),array.end());
            ^
            this->
/usr/ports/graphics/osg/work/OpenSceneGraph-2.8.2/src/osg/Uniform.cpp:260:69: note: in instantiation of member function 'osg::TemplateIndexArray<int, 3, 1, 5124>::operator=' requested here
    if( _intArray.valid() && rhs._intArray.valid() )     *_intArray = *rhs._intArray;
                                                                    ^
/usr/ports/graphics/osg/work/OpenSceneGraph-2.8.2/include/osg/MixinVector:113:10: note: must qualify identifier to find this declaration in dependent base class
    void assign(size_type count, const value_type& value) { _impl.assign(count, value); }
         ^
/usr/ports/graphics/osg/work/OpenSceneGraph-2.8.2/include/osg/MixinVector:115:10: note: must qualify identifier to find this declaration in dependent base class
    void assign(Iter first, Iter last) { _impl.assign(first, last); }
         ^
2 errors generated.
*** Error code 1
1 error
*** Error code 2
1 error
*** Error code 2
1 error
*** Error code 1

Stop in /usr/ports/graphics/osg.
*** Error code 1

Stop in /usr/ports/graphics/osg.

===>>> make failed for graphics/osg
===>>> Aborting update

Fix: 

Switch back to legacy gcc4.2. This PR is due to bring up the ports collection to be "clang" clean.
How-To-Repeat: Try to compile port graphics/osg with CLANG.
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2011-09-03 00:20:21 UTC
Responsible Changed
From-To: freebsd-ports-bugs->amdmi3

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Dmitry Marakasov freebsd_committer freebsd_triage 2011-09-03 00:58:23 UTC
State Changed
From-To: open->closed

Not interested in clang support, so "switching back" to gcc is fine with 
me. If you want clang support, please send patches.
Comment 3 O. Hartmann 2011-09-03 08:27:32 UTC
This problem can be solved by adding

USE_GCC=    4.5+

in port's Makefile.

Oliver
Comment 4 dfilter service freebsd_committer freebsd_triage 2011-09-03 13:38:14 UTC
amdmi3      2011-09-03 12:38:04 UTC

  FreeBSD ports repository

  Modified files:
    graphics/osg         Makefile 
  Log:
  - Add USE_GCC as it doesn't compile with clang
  
  PR:             160413
  Submitted by:   Hartmann@FreeBSD.org, "O." <ohartman@zedat.fu-berlin.de>
  
  Revision  Changes    Path
  1.55      +1 -0      ports/graphics/osg/Makefile
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"