[GRASS-dev] build error against GCC 4.7

Angelos Tzotsos gcpp.kalxas at gmail.com
Thu Sep 6 14:20:38 PDT 2012


Hi,

This patch was not the only one needed to build correctly under GCC4.7

I have created a new build based on the stable 6.4 svn tree which works 
fine:
https://build.opensuse.org/package/show?package=grass&project=home%3Atzotsos%3AApplication%3AGeo

Any objections to use this pre 6.4.3 build? When approximately is the 
6.4.3 release planned?

Thanks,
Angelos

On 09/06/2012 06:32 PM, Angelos Tzotsos wrote:
> On 09/06/2012 01:08 AM, Markus Neteler wrote:
>> On Wed, Sep 5, 2012 at 11:32 PM, Angelos Tzotsos 
>> <gcpp.kalxas at gmail.com> wrote:
>>> Hi all,
>>>
>>> openSUSE 12.2 is out today and I am updating the GRASS package for it.
>> [it is the GRASS 6.4.2 version according to the log file]
>>
>>> There is an error during build with GCC 4.7 and I wanted to check here
>>> before I make a custom patch.
>>>
>>> https://build.opensuse.org/package/rawlog?arch=i586&package=grass&project=Application%3AGeo&repository=openSUSE_12.2 
>>>
>>>
>>> The error:
>>>
>>> [  664s] ami_stream.cc:46:1: warning: deprecated conversion from string
>>> constant to 'char*' [-Wwrite-strings]mm.cc: In function 'void* 
>>> operator new
>>> [](size_t)':
>>> [  664s] mm.cc:259:32: error: declaration of 'void* operator new 
>>> [](size_t)'
>>> has a different exception specifier
>> This has been fixed for the upcoming 6.4.3:
>> http://trac.osgeo.org/grass/changeset/51638/grass/branches/releasebranch_6_4/lib/iostream/mm.cc 
>>
>>
>>> Would someone like to provide a patch for this error?
>> See the fix in r51638.
>>
>> Markus
>>
> Hi,
>
> After applying the patch, I now get this failure:
>
> make[3]: Entering directory 
> `/home/abuild/rpmbuild/BUILD/grass-6.4.2/raster/r.digit'
> ../../include/Make/Module.make:25: warning: overriding recipe for 
> target `install'
> ../../include/Make/Rules.make:90: warning: ignoring old recipe for 
> target `install'
> make 
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/man/man1/r.digit.1 
> MANSRC=/home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/docs/html/r.digit.html 
>
> make[4]: Entering directory 
> `/home/abuild/rpmbuild/BUILD/grass-6.4.2/raster/r.digit'
> ../../include/Make/Module.make:25: warning: overriding recipe for 
> target `install'
> ../../include/Make/Rules.make:90: warning: ignoring old recipe for 
> target `install'
> mkdir -p 
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/man/man1
> GRASS_PERL=/usr/bin/perl VERSION_NUMBER=6.4.2 sh 
> ../../tools/g.html2man/g.html2man 
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/docs/html/r.digit.html 
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/man/man1/r.digit.1 
> 1
> Converting: 
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/docs/html/r.digit.html 
> to 
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/man/man1/r.digit.1
> make[4]: Leaving directory 
> `/home/abuild/rpmbuild/BUILD/grass-6.4.2/raster/r.digit'
> make[3]: Leaving directory 
> `/home/abuild/rpmbuild/BUILD/grass-6.4.2/raster/r.digit'
> make[2]: Leaving directory 
> `/home/abuild/rpmbuild/BUILD/grass-6.4.2/raster/r.digit'
> c++ -c 
> -I/home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include 
> -g -O2   -DUSER=\"abuild\" -DNODATA_FIX -D_FILE_OFFSET_BITS=64 
> -DPACKAGE=\""grassmods"\" -DELEV_FLOAT types.cc -o 
> OBJ.x86_64-unknown-linux-gnu/FLOAT/types.o
> c++ -c 
> -I/home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include 
> -g -O2   -DUSER=\"abuild\" -DNODATA_FIX -D_FILE_OFFSET_BITS=64 
> -DPACKAGE=\""grassmods"\" -DELEV_FLOAT ccforest.cc -o 
> OBJ.x86_64-unknown-linux-gnu/FLOAT/ccforest.o
> In file included from 
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/empq_adaptive_impl.h:30:0,
>                  from 
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/ami.h:41,
>                  from ccforest.h:27,
>                  from ccforest.cc:19:
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/empq_adaptive.h: 
> In constructor 'EMPQueueAdaptive<T, Key>::EMPQueueAdaptive(long int)':
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/empq_adaptive.h:53:47: 
> warning: delegating constructors only available with -std=c++11 or 
> -std=gnu++11 [enabled by default]
> In file included from 
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/empq.h:35:0,
>                  from 
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/empq_impl.h:26,
>                  from 
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/ami.h:39,
>                  from ccforest.h:27,
>                  from ccforest.cc:19:
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/minmaxheap.h: 
> In instantiation of 'HeapIndex MinMaxHeap<T>::fill(T*, HeapIndex) 
> [with T = keyvalue<int>; HeapIndex = unsigned int]':
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/empq_impl.h:674:67: 
> required from 'bool em_pqueue<T, Key>::min(T&) [with T = 
> keyvalue<int>; Key = int]'
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/empq_adaptive_impl.h:237:2: 
> required from 'bool EMPQueueAdaptive<T, Key>::min(T&) [with T = 
> keyvalue<int>; Key = int]'
> ccforest.cc:164:4:   required from 'void 
> ccforest<T>::findAllRoots(int) [with T = int]'
> ccforest.cc:340:16:   required from here
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/minmaxheap.h:747:5: 
> error: 'insert' was not declared in this scope, and no declarations 
> were found by argument-dependent lookup at the point of instantiation 
> [-fpermissive]
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/minmaxheap.h:747:5: 
> note: declarations in dependent base 'BasicMinMaxHeap<keyvalue<int> >' 
> are not found by unqualified lookup
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/minmaxheap.h:747:5: 
> note: use 'this->insert' instead
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/minmaxheap.h: 
> In instantiation of 'void UnboundedMinMaxHeap<T>::grow() [with T = 
> keyvalue<int>]':
> ccforest.cc:340:38:   required from here
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/minmaxheap.h:780:2: 
> error: 'allocateHeap' was not declared in this scope, and no 
> declarations were found by argument-dependent lookup at the point of 
> instantiation [-fpermissive]
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/minmaxheap.h:780:2: 
> note: declarations in dependent base 'BasicMinMaxHeap<keyvalue<int> >' 
> are not found by unqualified lookup
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/minmaxheap.h:780:2: 
> note: use 'this->allocateHeap' instead
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/minmaxheap.h:786:2: 
> error: 'freeHeap' was not declared in this scope, and no declarations 
> were found by argument-dependent lookup at the point of instantiation 
> [-fpermissive]
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/minmaxheap.h:786:2: 
> note: declarations in dependent base 'BasicMinMaxHeap<keyvalue<int> >' 
> are not found by unqualified lookup
> /home/abuild/rpmbuild/BUILD/grass-6.4.2/dist.x86_64-unknown-linux-gnu/include/grass/iostream/minmaxheap.h:786:2: 
> note: use 'this->freeHeap' instead
> make[2]: *** [OBJ.x86_64-unknown-linux-gnu/FLOAT/ccforest.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> make[2]: Leaving directory 
> `/home/abuild/rpmbuild/BUILD/grass-6.4.2/raster/r.terraflow'
>
> Perhaps this was fixed in another step?
>
> Is 6.4.3 close to a release? Perhaps I should wait for that?
>
> Cheers,
> Angelos
>


-- 
Angelos Tzotsos
Remote Sensing Laboratory
National Technical University of Athens
http://users.ntua.gr/tzotsos



More information about the grass-dev mailing list