[GRASS-dev] build error against GCC 4.7

Angelos Tzotsos gcpp.kalxas at gmail.com
Thu Sep 6 08:32:04 PDT 2012


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