On Wed, Jun 26, 2013 at 7:40 PM, Markus Neteler <nete...@osgeo.org> wrote:
> On Wed, Jun 26, 2013 at 1:13 AM, Glynn Clements
> <gl...@gclements.plus.com> wrote:
>>
>> Markus Neteler wrote:
>>
>>> -bash-3.2$ cd /gpfs/home/neteler/software/grass-7.0.svn/raster/r.terraflow
>>
>>> ld: 0711-317 ERROR: Undefined symbol: .std::basic_filebuf<char,
>>> std::char_traits<char> >::open64(char const*, std::_Ios_Openmode)
>>
>> This appears to be a problem with g++ on AIX, caused by AIX having
>> "#define open open64" in one of its headers:
>>
>>         http://gcc.gnu.org/ml/gcc-patches/2012-09/msg01957.html
>>
>> It might be possible to work around this with e.g.:
>>
>>         #include <fcntl.h>
>>         #undef open
>
> Markus Metz figured it out, fixed locally (see attachment).
> Submit or not?

The fix is based on the hack proposed in

http://gcc.gnu.org/ml/gcc-patches/2012-09/msg01957.html

which is IMHO a hack, not a fix. Anyway, the hack has been applied to
later versions of gcc. Therefore I would suggest to not submit the
local hack for r.terraflow, but suggest to add the patch to

http://grasswiki.osgeo.org/wiki/Compile_and_Install#AIX

Anybody who wants to compile C++ modules using open() on AIX with LFS
and a buggy gcc can then apply the patch. The patch seems to be too
specialized to warrant submission to trunk even though no fixed gcc
seems to be available for AIX, yet.

Markus M

PS: AIX is apparently deviating from UNIX standards so far that it can
hardly be called a UNIX system any more...

>
> GRASS' LFS support on AIX7 also fixed also in
> http://trac.osgeo.org/grass/changeset/56936
>
> Now trying to get shared libraries enabled (almost there).
>
> Markus
>
> _______________________________________________
> grass-dev mailing list
> grass-dev@lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-dev
_______________________________________________
grass-dev mailing list
grass-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to