Re: [GRASS-dev] compilation of grass on AIX 7.1
On Mon, Nov 25, 2013 at 10:25 AM, Markus Metz wrote: > if some libraries are in a non-standard location, you might need to add > > -Wl,-bsvr4,-R,/opt/freeware/lib > > or equivalent e.g. -Wl,-R,/opt/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/4.2.0/ppc64/ > to LDFLAGS [0]. > > Markus M > > [0] http://grasswiki.osgeo.org/wiki/Compile_and_Install#AIX > > On Sun, Nov 24, 2013 at 8:16 PM, Markus Neteler wrote: >> On Sun, Nov 24, 2013 at 5:07 PM, Glynn Clements >> wrote: >>> >>> Markus Neteler wrote: >>> Any hints how to "inject" libstdc++.so for those modules which depend on $(GPROJLIB)? Maybe a trivial issue but I just don't know what to change. >>> >>> AFAICT, libgrass_gproj only requires libstdc++ because of GDAL. >> >> Yes, I see. >> >>> So the definition of GDALLIBS in Platform.make should include -lstdc++ >>> (and anything else which is required for C++ support). >> >> Unfortunately adding it: >> >> svn diff include/ >> Index: include/Make/Platform.make.in >> === >> --- include/Make/Platform.make.in (revision 58291) >> +++ include/Make/Platform.make.in (working copy) >> @@ -157,7 +157,7 @@ >> LAPACKINC = @LAPACKINC@ >> >> #GDAL/OGR >> -GDALLIBS= @GDAL_LIBS@ >> +GDALLIBS= @GDAL_LIBS@ -lstdc++ >> GDALCFLAGS = @GDAL_CFLAGS@ >> USE_GDAL= @USE_GDAL@ >> USE_OGR = @USE_OGR@ >> >> ... does not help. I checked, it is present in >> include/Make/Platform.make >> >>> However, I don't understand why this would only affect libgrass_gproj >>> and not other libraries which require GDAL. >> >> Indeed it does, I looped over it now. Here the reduced list of failure >> (the others ldd checks report no error): >> >> libgrass_cluster.7.0.svn.so needs: >> >> /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_imagery.7.0.svn.so >> >> /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_raster.7.0.svn.so >> >> /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gis.7.0.svn.so >> /usr/lib/libc.a(shr_64.o) >> /usr/lib/libpthread.a(shr_xpg5_64.o) >> >> /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_vector.7.0.svn.so >> /opt/freeware/lib/libiconv.a(libiconv.so.2) >> >> /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_datetime.7.0.svn.so >> /usr/lib/libz.a(libz.so.1) >> /unix >> /usr/lib/libcrypt.a(shr_64.o) >> Cannot find libstdc++.a(libstdc++.so.6) >> >> /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_dbmiclient.7.0.svn.so >> >> /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_dbmibase.7.0.svn.so >> >> /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_dgl.7.0.svn.so >> >> /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_dig2.7.0.svn.so >> >> /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_linkm.7.0.svn.so >> >> /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_rtree.7.0.svn.so >> >> /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_btree2.7.0.svn.so >> >> /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gproj.7.0.svn.so >> Cannot find libgcc_s.a(shr.o) >> /usr/lib/libc.a(shr.o) >> Cannot find libstdc++.a(libstdc++.so.6) >> Cannot find libgcc_s.a(shr.o) >> /usr/lib/libcrypt.a(shr.o) >> >> >> libgrass_gproj.7.0.svn.so needs: >> Cannot find libstdc++.a(libstdc++.so.6) >> /usr/lib/libpthread.a(shr_xpg5_64.o) >> /opt/freeware/lib/libiconv.a(libiconv.so.2) >> >> /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gis.7.0.svn.so >> Cannot find libgcc_s.a(shr.o) >> /usr/lib/libc.a(shr_64.o) >> /unix >> /usr/lib/libc.a(shr.o) >> >> /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_datetime.7.0.svn.so >> /usr/lib/libz.a(libz.so.1) >> /usr/lib/libcrypt.a(shr_64.o) >> /usr/lib/libcrypt.a(shr.o) >> >> The complete list I have put here: >> >> http://pastebin.com/VXv9nGkG >> >> So two more libs need to somehow be added. Maybe a simple Makefile >> magic but I don't see what to do. >> >> 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
Re: [GRASS-dev] compilation of grass on AIX 7.1
if some libraries are in a non-standard location, you might need to add -Wl,-bsvr4,-R,/opt/freeware/lib or equivalent to LDFLAGS [0]. Markus M [0] http://grasswiki.osgeo.org/wiki/Compile_and_Install#AIX On Sun, Nov 24, 2013 at 8:16 PM, Markus Neteler wrote: > On Sun, Nov 24, 2013 at 5:07 PM, Glynn Clements > wrote: >> >> Markus Neteler wrote: >> >>> Any hints how to "inject" libstdc++.so for those modules which depend >>> on $(GPROJLIB)? >>> Maybe a trivial issue but I just don't know what to change. >> >> AFAICT, libgrass_gproj only requires libstdc++ because of GDAL. > > Yes, I see. > >> So the definition of GDALLIBS in Platform.make should include -lstdc++ >> (and anything else which is required for C++ support). > > Unfortunately adding it: > > svn diff include/ > Index: include/Make/Platform.make.in > === > --- include/Make/Platform.make.in (revision 58291) > +++ include/Make/Platform.make.in (working copy) > @@ -157,7 +157,7 @@ > LAPACKINC = @LAPACKINC@ > > #GDAL/OGR > -GDALLIBS= @GDAL_LIBS@ > +GDALLIBS= @GDAL_LIBS@ -lstdc++ > GDALCFLAGS = @GDAL_CFLAGS@ > USE_GDAL= @USE_GDAL@ > USE_OGR = @USE_OGR@ > > ... does not help. I checked, it is present in > include/Make/Platform.make > >> However, I don't understand why this would only affect libgrass_gproj >> and not other libraries which require GDAL. > > Indeed it does, I looped over it now. Here the reduced list of failure > (the others ldd checks report no error): > > libgrass_cluster.7.0.svn.so needs: > > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_imagery.7.0.svn.so > > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_raster.7.0.svn.so > > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gis.7.0.svn.so > /usr/lib/libc.a(shr_64.o) > /usr/lib/libpthread.a(shr_xpg5_64.o) > > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_vector.7.0.svn.so > /opt/freeware/lib/libiconv.a(libiconv.so.2) > > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_datetime.7.0.svn.so > /usr/lib/libz.a(libz.so.1) > /unix > /usr/lib/libcrypt.a(shr_64.o) > Cannot find libstdc++.a(libstdc++.so.6) > > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_dbmiclient.7.0.svn.so > > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_dbmibase.7.0.svn.so > > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_dgl.7.0.svn.so > > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_dig2.7.0.svn.so > > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_linkm.7.0.svn.so > > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_rtree.7.0.svn.so > > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_btree2.7.0.svn.so > > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gproj.7.0.svn.so > Cannot find libgcc_s.a(shr.o) > /usr/lib/libc.a(shr.o) > Cannot find libstdc++.a(libstdc++.so.6) > Cannot find libgcc_s.a(shr.o) > /usr/lib/libcrypt.a(shr.o) > > > libgrass_gproj.7.0.svn.so needs: > Cannot find libstdc++.a(libstdc++.so.6) > /usr/lib/libpthread.a(shr_xpg5_64.o) > /opt/freeware/lib/libiconv.a(libiconv.so.2) > > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gis.7.0.svn.so > Cannot find libgcc_s.a(shr.o) > /usr/lib/libc.a(shr_64.o) > /unix > /usr/lib/libc.a(shr.o) > > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_datetime.7.0.svn.so > /usr/lib/libz.a(libz.so.1) > /usr/lib/libcrypt.a(shr_64.o) > /usr/lib/libcrypt.a(shr.o) > > The complete list I have put here: > > http://pastebin.com/VXv9nGkG > > So two more libs need to somehow be added. Maybe a simple Makefile > magic but I don't see what to do. > > 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
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Sun, Nov 24, 2013 at 5:07 PM, Glynn Clements wrote: > > Markus Neteler wrote: > >> Any hints how to "inject" libstdc++.so for those modules which depend >> on $(GPROJLIB)? >> Maybe a trivial issue but I just don't know what to change. > > AFAICT, libgrass_gproj only requires libstdc++ because of GDAL. Yes, I see. > So the definition of GDALLIBS in Platform.make should include -lstdc++ > (and anything else which is required for C++ support). Unfortunately adding it: svn diff include/ Index: include/Make/Platform.make.in === --- include/Make/Platform.make.in (revision 58291) +++ include/Make/Platform.make.in (working copy) @@ -157,7 +157,7 @@ LAPACKINC = @LAPACKINC@ #GDAL/OGR -GDALLIBS= @GDAL_LIBS@ +GDALLIBS= @GDAL_LIBS@ -lstdc++ GDALCFLAGS = @GDAL_CFLAGS@ USE_GDAL= @USE_GDAL@ USE_OGR = @USE_OGR@ ... does not help. I checked, it is present in include/Make/Platform.make > However, I don't understand why this would only affect libgrass_gproj > and not other libraries which require GDAL. Indeed it does, I looped over it now. Here the reduced list of failure (the others ldd checks report no error): libgrass_cluster.7.0.svn.so needs: /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_imagery.7.0.svn.so /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_raster.7.0.svn.so /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gis.7.0.svn.so /usr/lib/libc.a(shr_64.o) /usr/lib/libpthread.a(shr_xpg5_64.o) /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_vector.7.0.svn.so /opt/freeware/lib/libiconv.a(libiconv.so.2) /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_datetime.7.0.svn.so /usr/lib/libz.a(libz.so.1) /unix /usr/lib/libcrypt.a(shr_64.o) Cannot find libstdc++.a(libstdc++.so.6) /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_dbmiclient.7.0.svn.so /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_dbmibase.7.0.svn.so /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_dgl.7.0.svn.so /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_dig2.7.0.svn.so /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_linkm.7.0.svn.so /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_rtree.7.0.svn.so /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_btree2.7.0.svn.so /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gproj.7.0.svn.so Cannot find libgcc_s.a(shr.o) /usr/lib/libc.a(shr.o) Cannot find libstdc++.a(libstdc++.so.6) Cannot find libgcc_s.a(shr.o) /usr/lib/libcrypt.a(shr.o) libgrass_gproj.7.0.svn.so needs: Cannot find libstdc++.a(libstdc++.so.6) /usr/lib/libpthread.a(shr_xpg5_64.o) /opt/freeware/lib/libiconv.a(libiconv.so.2) /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gis.7.0.svn.so Cannot find libgcc_s.a(shr.o) /usr/lib/libc.a(shr_64.o) /unix /usr/lib/libc.a(shr.o) /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_datetime.7.0.svn.so /usr/lib/libz.a(libz.so.1) /usr/lib/libcrypt.a(shr_64.o) /usr/lib/libcrypt.a(shr.o) The complete list I have put here: http://pastebin.com/VXv9nGkG So two more libs need to somehow be added. Maybe a simple Makefile magic but I don't see what to do. Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > Any hints how to "inject" libstdc++.so for those modules which depend > on $(GPROJLIB)? > Maybe a trivial issue but I just don't know what to change. AFAICT, libgrass_gproj only requires libstdc++ because of GDAL. So the definition of GDALLIBS in Platform.make should include -lstdc++ (and anything else which is required for C++ support). However, I don't understand why this would only affect libgrass_gproj and not other libraries which require GDAL. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Hi, after a while some progress with GRASS 7 on AIX... export CXX='g++' export LDFLAGS='-maix64 -Wl,-bbigtoc -lm -lstdc++ -lmass -lsqlite3 -lpthread /opt/freeware/lib/libiconv.a' export CFLAGS='-maix64 -D_POSIX_C_SOURCE=200809L -Dinline= -O3 -Wall -fno-common -I$PREFIX/include/' export CXXFLAGS=$CFLAGS export OBJECT_MODE=64 export AR='ar -X64' ./configure \ --prefix=$PREFIX \ --enable-largefile \ --enable-shared \ --with-includes=/opt/freeware/include --with-libs=$FREELIB \ --with-cxx \ --with-proj-includes=$PREFIX/include/ \ --with-proj-libs=$PREFIX/lib/ \ --with-proj-share=$PREFIX/share/proj/ \ --with-gdal=$PREFIX/bin/gdal-config \ --with-sqlite \ --with-sqlite-libs=$PREFIX/lib --with-sqlite-includes=$PREFIX/include \ --with-png=no \ --with-tiff=no \ --with-fftw=no \ --with-cairo=no \ --with-opengl=no \ --with-freetype=no \ --with-tcltk=no \ --with-opengl=no \ --with-fftw=no \ --with-regex=no Most of the code compiles but the HTML page generation fails for modules which use $(GPROJLIB): Example: gmake[3]: Entering directory `/gpfs/home/neteler/software/grass-7.0.svn/display/d.grid' : && gcc -L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib -L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib -maix64 -Wl,-bbigtoc -lm -lstdc++ -lmass -lsqlite3 -lpthread /opt/freeware/lib/libiconv.a -Wl,-bsvr4,-R,/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib -o /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin/d.grid OBJ.powerpc-ibm-aix7.1.0.0/plotborder.o OBJ.powerpc-ibm-aix7.1.0.0/main.o OBJ.powerpc-ibm-aix7.1.0.0/plot.o OBJ.powerpc-ibm-aix7.1.0.0/fiducial.o-lgrass_display.7.0.svn -lgrass_gproj.7.0.svn -lgrass_symb.7.0.svn -lgrass_gis.7.0.svn ld: 0711-224 WARNING: Duplicate symbol: __fe_def_env ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. if [ "/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin/d.grid" != "" ] ; then GISRC=/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/.grassrc70 GISBASE=/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0 PATH="/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin:/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin:/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/scripts:$PATH" PYTHONPATH="/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/etc/python:/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/etc/python:$PYTHONPATH" LIBPATH="/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin:/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib:/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib:-L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib -L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib" LC_ALL=C /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin/d.grid --html-description < /dev/null | grep -v '\|' > d.grid.tmp.html ; fi Could not load program /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin/d.grid: Could not load module /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gproj.7.0.svn.so. Dependent module libstdc++.a(libstdc++.so.6) could not be loaded. Could not load module libstdc++.a(libstdc++.so.6). System error: No such file or directory Could not load module d.grid. Dependent module /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gproj.7.0.svn.so could not be loaded. Could not load module . gmake[3]: *** [d.grid.tmp.html] Error 1 -bash-3.2$ ldd /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gproj.7.0.svn.so /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gproj.7.0.svn.so needs: Cannot find libstdc++.a(libstdc++.so.6) /usr/lib/libpthread.a(shr_xpg5_64.o) /opt/freeware/lib/libiconv.a(libiconv.so.2) /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gis.7.0.svn.so Cannot find libgcc_s.a(shr.o) /usr/lib/libc.a(shr_64.o) /unix /usr/lib/libc.a(shr.o) /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_datetime.7.0.svn.so /usr/lib/libz.a(libz.so.1) /usr/lib/libcrypt.a(shr_64.o) /usr/lib/libcrypt.a(shr.o) Any hints how to "inject" libstdc++.so for those modules which depend on $(GPROJLIB)? Maybe a trivial issue but I just don't know what to change. thanks Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Hi, On Fri, Aug 23, 2013 at 12:32 AM, Markus Neteler wrote: ... > -bash-3.2$ ls -la /opt/freeware/lib/libstdc++.a > lrwxrwxrwx1 root system 44 Jun 10 11:48 > /opt/freeware/lib/libstdc++.a -> > gcc/powerpc-ibm-aix7.1.0.0/4.6.1/libstdc++.a I guess that the problem is here the relative and not absolute path. ... > I don't understand how to convince the system in LoadLeveler mode that > libstdc++.a is available. > (the binaries run fine from interactive command line). Workaround in the launch script: (cd $GISBASE/lib/ ; cp -f /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/4.6.1/libgcc_s.a . ; cp -f /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/4.6.1/libstdc++.a . ) Now it works... (hmpf!) Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Hi, I am now trying to run GRASS 7 with IBM's LoadLeveler. While I got the job definition done, I struggle with a single library which isn't found. I tried both with GRASS compiled with shared libraries and as static binaries (see below): -bash-3.2$ llsubmit launch_IBM_LL_grassjob_rsun.sh llsubmit: The job "f01c12p01-hf0.vs.savba.sk.9714" has been submitted. -bash-3.2$ tail grassgis7_job.err Could not load module libstdc++.a(libstdc++.so.6). System error: No such file or directory Could not load program g.version: Dependent module libstdc++.a(libstdc++.so.6) could not be loaded. Could not load module libstdc++.a(libstdc++.so.6). System error: No such file or directory Could not load program g.mlist: Dependent module libstdc++.a(libstdc++.so.6) could not be loaded. Could not load module libstdc++.a(libstdc++.so.6). System error: No such file or directory Here some debug output: -bash-3.2$ cat grassgis7_job.out Starting job at Fri Aug 23 00:24:47 CEST 2013 on node f01c03p01-hf0 * Processing elevation (target mapset: solar) ... - PATH: /usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java5/jre/bin:/usr/java5/bin:/gpfs/home/neteler/bin/bin:/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin:/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/scripts - LIBS in LD_LIBRARY_PATH: /opt/freeware/lib:/gpfs/home/neteler/bin/lib/:/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib - -bash-3.2$ ls -la /opt/freeware/lib/libstdc++.a lrwxrwxrwx1 root system 44 Jun 10 11:48 /opt/freeware/lib/libstdc++.a -> gcc/powerpc-ibm-aix7.1.0.0/4.6.1/libstdc++.a -bash-3.2$ ls -la /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/4.6.1/libstdc++.a -rwxr-xr-x1 root system 11163967 Jul 21 2011 /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/4.6.1/libstdc++.a I don't understand how to convince the system in LoadLeveler mode that libstdc++.a is available. (the binaries run fine from interactive command line). ? Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Hamish wrote: > is it appropriate to backport r57238 to 6.x? Yes for 6.5, probably not for 6.4 as it isn't urgent; the change only suppresses warnings about "potential" issues, it doesn't fix actual bugs. > there are also quite a few like "G_fatal_error(buff);", can anything > be done in the lib fn for them or do they all have to be changed to > "G_fatal_error("%s", buff);" ? They need to be changed. But not necessarily like that. First, ask why the error message is a variable rather than a string literal. If it's because error handling has been "wrapped", then unwrap it. E.g. we might decide to add an option to replace G_fatal_error (and similar) with a macro which (optionally) adds __FILE__ and __LINE__, but that's useless if the calls have been wrapped. > [* many of those are hold-overs from pre- GRASS 5 and a > sprintf(buff,..) in the lines above can be moved into the > G_fatal_error()] In such cases, the sprintf() should be eliminated. > Lots of "G_warning(msg);" Again: ask "why isn't 'msg' a string literal" first. > and "G_debug(3, db_get_string(&sql));" to consider too. For most of these, inserting the "%s" is probably the right solution, although including a word or two of descriptive text might make the debug information more useful (e.g. providing something to grep for). -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Vaclav wrote: >> GCC warns me also about "format not a string literal and no format >> arguments". I remember this was once discussed on the ML but I'm not >> sure what the result was: the call is correct but the G_warning >> function needs some GCC attributes to specify what it is? Glynn: > G_warning() already has a "format" attribute, which is why gcc > complains about the format string not being a string literal. > > However, G_gettext() needs a "format_arg" attribute to to tell gcc > that one of arguments may be a format string, so that it stillcan > perform argument checking (and not generate "not a string literal" > warnings) when a format string is passed through that function (the > _(...) macro expands to a G_gettext() call when --with-nls is used). > > Done in r57238. > > With that change there are still 208 such warnings, but most of them > appear to indicate genuine bugs, i.e. passing arbitrary strings as > format strings, which will fail (e.g. crash) if the string contains > any % characters. Hi, is it appropriate to backport r57238 to 6.x? glocale.h: -extern char *G_gettext(const char *, const char *); +extern char *G_gettext(const char *, const char *) __attribute__((format_arg (2))); I'm seeing this pop up in Debian/unstable, where -Werror=format-security is now encouraged to be the default. there are also quite a few like "G_fatal_error(buff);", can anything be done in the lib fn for them or do they all have to be changed to "G_fatal_error("%s", buff);" ? [* many of those are hold-overs from pre- GRASS 5 and a sprintf(buff,..) in the lines above can be moved into the G_fatal_error()] Lots of "G_warning(msg);" and "G_debug(3, db_get_string(&sql));" to consider too. thanks, Hamish ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Tue, Jul 23, 2013 at 3:13 PM, Glynn Clements wrote: ... > This should be fixed by r57254. Thanks, yes, confirmed: -bash-3.2$ gmake lex -t sqlp.l > sqlp.yy.c 512/1200 nodes(%e), 1160/5000 positions(%p), 159/2500 (%n), 36582 transitions 506/1000 packed char classes(%k) 1769/5000 packed transitions(%a) 2336/9096 output slots(%o) Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > On Thu, Jul 18, 2013 at 8:48 PM, Glynn Clements > wrote: > ... > > Right; someone forgot the %{...%} around the comments: > > > > --- lib/db/sqlp/sqlp.l (revision 57205) > > +++ lib/db/sqlp/sqlp.l (working copy) > ... > > I have tried the updated SVN version (thanks!) but still get one: > > -bash-3.2$ gmake > lex -t sqlp.l > sqlp.yy.c > 5: (Warning) No translation given - null string assumed This should be fixed by r57254. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Thu, Jul 18, 2013 at 8:48 PM, Glynn Clements wrote: ... > Right; someone forgot the %{...%} around the comments: > > --- lib/db/sqlp/sqlp.l (revision 57205) > +++ lib/db/sqlp/sqlp.l (working copy) ... I have tried the updated SVN version (thanks!) but still get one: -bash-3.2$ gmake lex -t sqlp.l > sqlp.yy.c 5: (Warning) No translation given - null string assumed 512/1200 nodes(%e), 1160/5000 positions(%p), 159/2500 (%n), 36582 transitions 506/1000 packed char classes(%k) 1769/5000 packed transitions(%a) 2336/9096 output slots(%o) Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Vaclav Petras wrote: > GCC warns me also about "format not a string literal and no format > arguments". I remember this was once discussed on the ML but I'm not > sure what the result was: the call is correct but the G_warning > function needs some GCC attributes to specify what it is? G_warning() already has a "format" attribute, which is why gcc complains about the format string not being a string literal. However, G_gettext() needs a "format_arg" attribute to to tell gcc that one of arguments may be a format string, so that it stillcan perform argument checking (and not generate "not a string literal" warnings) when a format string is passed through that function (the _(...) macro expands to a G_gettext() call when --with-nls is used). Done in r57238. With that change there are still 208 such warnings, but most of them appear to indicate genuine bugs, i.e. passing arbitrary strings as format strings, which will fail (e.g. crash) if the string contains any % characters. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On 18 July 2013 20:48, Glynn Clements wrote: >> gmake[3]: Entering directory >> `/gpfs/home/neteler/software/grass-7.0.svn/lib/imagery' >> ... >> iclass_statistics.c: In function 'I_iclass_free_statistics': >> iclass_statistics.c:114:5: warning: passing argument 1 of 'G_free' >> discards 'const' qualifier from pointer target type [enabled by >> default] > > The IClass_statistics structure declares name and color as > "const char *". > > Either the fields should be changed to "char *", or > I_iclass_free_statistics() should explicitly cast them in the G_free() > calls. Because the `const char *` is generally the right type for string in C, I added the casts to the I_iclass_free_statistics() function. Done in r57232. The signature of G_free is `void G_free(void *)`, so it will trigger warnings with the more strict compiler settings anyway (this can happen e.g. for C++ code). However, I guess that we will not add these casts to grass code. GCC warns me also about "format not a string literal and no format arguments". I remember this was once discussed on the ML but I'm not sure what the result was: the call is correct but the G_warning function needs some GCC attributes to specify what it is? ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > I scanned the logs for (potential) errors and found a few: > > cd lib/gis/ > parser_interface.c: In function 'print_escaped_for_xml': > parser_interface.c:67:2: warning: passing argument 2 of 'libiconv' > from incompatible pointer type [enabled by default] > /usr/opt/freeware/bin/../lib/gcc/../../include/iconv.h:83:15: note: > expected 'const char **' but argument is of type 'char **' This is harmless. POSIX says both arguments should be "char **", and Linux agrees. There is no formulation which will please both AIX and Linux. http://pubs.opengroup.org/onlinepubs/9699919799/functions/iconv.html Rationale for the incompatibility: http://c-faq.com/ansi/constmismatch.html > gmake[4]: Entering directory > `/gpfs/home/neteler/software/grass-7.0.svn/lib/db/dbmi_driver' > ... > lex -t sqlp.l > sqlp.yy.c > 5: (Warning) No translation given - null string assumed > 209: (Warning) Executable statements should occur right after %% > 210: (Warning) Executable statements should occur right after %% > 211: (Warning) Executable statements should occur right after %% Right; someone forgot the %{...%} around the comments: --- lib/db/sqlp/sqlp.l (revision 57205) +++ lib/db/sqlp/sqlp.l (working copy) @@ -205,10 +205,11 @@ ***/ %} "--".*$; /* comment */ - +%{ /*** * DEFAULT RULE ***/ +%} . { yyerror("Syntax error"); } %% > gmake[4]: Entering directory > `/gpfs/home/neteler/software/grass-7.0.svn/lib/db/dbmi_base' > ... > dirent.c:20:0: warning: "R_OK" redefined [enabled by default] > /usr/include/sys/access.h:52:0: note: this is the location of the > previous definition Indeed. I don't know why local definitions were added (they are present in r11675, the oldest version in SVN), but they don't belong there. > gmake[3]: Entering directory > `/gpfs/home/neteler/software/grass-7.0.svn/lib/imagery' > ... > iclass_statistics.c: In function 'I_iclass_free_statistics': > iclass_statistics.c:114:5: warning: passing argument 1 of 'G_free' > discards 'const' qualifier from pointer target type [enabled by > default] The IClass_statistics structure declares name and color as "const char *". Either the fields should be changed to "char *", or I_iclass_free_statistics() should explicitly cast them in the G_free() calls. > gmake[4]: Entering directory > `/gpfs/home/neteler/software/grass-7.0.svn/raster/r.clump' > ... > clump.c: In function 'clump': > clump.c:68:5: warning: passing argument 1 of 'time' from incompatible > pointer type [enabled by default] > /usr/include/time.h:142:20: note: expected 'time_t *' but argument is > of type 'long int *' "cur_time" should be changed from long to time_t. > clump.c: In function 'print_time': > clump.c:258:5: warning: passing argument 1 of 'time' from incompatible > pointer type [enabled by default] > /usr/include/time.h:142:20: note: expected 'time_t *' but argument is > of type 'long int *' "done" should be changed from long to time_t. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Hi again on this topic, I scanned the logs for (potential) errors and found a few: cd lib/gis/ gmake gcc -I/opt/freeware/include -I/opt/freeware/include -g -O2 -fPIC -I/opt/freeware/include -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include -D_LARGE_FILES=1 -DGRASS_VERSION_DATE=\"'2013'\" -DPACKAGE=\""grasslibs"\" -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include -o OBJ.powerpc-ibm-aix7.1.0.0/parser_interface.o -c parser_interface.c parser_interface.c: In function 'print_escaped_for_xml': parser_interface.c:67:2: warning: passing argument 2 of 'libiconv' from incompatible pointer type [enabled by default] /usr/opt/freeware/bin/../lib/gcc/../../include/iconv.h:83:15: note: expected 'const char **' but argument is of type 'char **' bash-3.2$ rpm -qa | grep icon libiconv-1.14-2 gmake[4]: Entering directory `/gpfs/home/neteler/software/grass-7.0.svn/lib/db/dbmi_driver' ... lex -t sqlp.l > sqlp.yy.c 5: (Warning) No translation given - null string assumed 209: (Warning) Executable statements should occur right after %% 210: (Warning) Executable statements should occur right after %% 211: (Warning) Executable statements should occur right after %% 512/1200 nodes(%e), 1160/5000 positions(%p), 159/2500 (%n), 36582 transitions 506/1000 packed char classes(%k) 1769/5000 packed transitions(%a) 2336/9096 output slots(%o) gmake[4]: Entering directory `/gpfs/home/neteler/software/grass-7.0.svn/lib/db/dbmi_base' ... dirent.c:20:0: warning: "R_OK" redefined [enabled by default] /usr/include/sys/access.h:52:0: note: this is the location of the previous definition dirent.c:21:0: warning: "W_OK" redefined [enabled by default] /usr/include/sys/access.h:51:0: note: this is the location of the previous definition dirent.c:22:0: warning: "X_OK" redefined [enabled by default] /usr/include/sys/access.h:50:0: note: this is the location of the previous definition The related definition in /usr/include/sys/access.h is: #ifdef _POSIX_SOURCE /* * BSD defines */ #define F_OK00 /* E_ACC does file exist */ #define X_OK01 /* X_ACC is it executable by caller */ #define W_OK02 /* W_ACC writable by caller */ #define R_OK04 /* R_ACC readable by caller */ #endif /* _POSIX_SOURCE */ gmake[3]: Entering directory `/gpfs/home/neteler/software/grass-7.0.svn/lib/imagery' ... iclass_statistics.c: In function 'I_iclass_free_statistics': iclass_statistics.c:114:5: warning: passing argument 1 of 'G_free' discards 'const' qualifier from pointer target type [enabled by default] /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include/grass/defs/gis.h:77:6: note: expected 'void *' but argument is of type 'const char *' iclass_statistics.c:115:5: warning: passing argument 1 of 'G_free' discards 'const' qualifier from pointer target type [enabled by default] /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include/grass/defs/gis.h:77:6: note: expected 'void *' but argument is of type 'const char *' gmake[4]: Entering directory `/gpfs/home/neteler/software/grass-7.0.svn/raster/r.clump' ... clump.c: In function 'clump': clump.c:68:5: warning: passing argument 1 of 'time' from incompatible pointer type [enabled by default] /usr/include/time.h:142:20: note: expected 'time_t *' but argument is of type 'long int *' clump.c: In function 'print_time': clump.c:258:5: warning: passing argument 1 of 'time' from incompatible pointer type [enabled by default] /usr/include/time.h:142:20: note: expected 'time_t *' but argument is of type 'long int *' The related definition in /usr/include/time.h is: #ifndef _KERNEL extern time_t time(time_t *); #endif /* _KERNEL */ Suggestions/fixes welcome, Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Evviva!! GRASS 7.0.svn (nc_spm_08_grass7):~ > g.version -g version=7.0.svn date=2013 revision=56943M build_date=2013-05-28 GRASS 7.0.svn (nc_spm_08_grass7):~ > uname -a AIX login01-hf0 1 7 ... On Fri, Jun 28, 2013 at 9:37 PM, Markus Metz wrote: ... > Oops, LDFLAGS should probably be > LDFLAGS="-Wl,-bsvr4,-R,/opt/freeware/lib -L/opt/freeware/lib" Perfect guess :) ... > Alternatively, try to disable nls, i.e. do not --enable-nls during > configuration. (it was already disabled) So, at this time we may actually USE the latest GRASS GIS 7 on this TOP500 supercomputer! To me the frontend node looks already nice: vmstat System Configuration: lcpu=96 mem=193280MB So, time to study IBM's LoadLeveler now for parallel GRASS jobs. Thanks for all your support, I'll update the GRASS Wiki accordingly (although there isn't too much to add since most changes are already in SVN). Cheers markusN ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Fri, Jun 28, 2013 at 9:09 PM, Markus Neteler wrote: > On Fri, Jun 28, 2013 at 8:29 PM, Markus Metz > wrote: >> On Fri, Jun 28, 2013 at 7:13 AM, Markus Neteler wrote: > ... >>> How to tell GRASS 7 in configure to pick up the /opt/freeware/ include >>> file and >>> library? >> >> In general, you can use some influential environment variables: >> CFLAGS C compiler flags >> LDFLAGS linker flags, e.g. -L if you have libraries in a >> nonstandard directory >> LIBSlibraries to pass to the linker, e.g. -l >> CPPFLAGS(Objective) C/C++ preprocessor flags, e.g. -I if >> you have headers in a nonstandard directory >> >> If some components are in non-standard /opt/freeware/, you could try to set >> >> LDFLAGS="-bsvr4 -R/opt/freeware/lib" CPPFLAGS="-I/opt/freeware/include" > > Not on AIX it seems...: > > checking whether the C compiler (gcc -bsvr4 -R/opt/freeware/lib) works... no > configure: error: installation or configuration problem: C compiler > cannot create executables. > > cat config.log > ... > configure:754: checking host system type > configure:777: checking for gcc > configure:881: checking whether the C compiler (gcc -bsvr4 > -R/opt/freeware/lib) works > configure:897: gcc -o conftest -I/opt/freeware/include -bsvr4 > -R/opt/freeware/lib conftest.c 1>&5 > gcc: error: unrecognized option '-bsvr4' > gcc: error: unrecognized option '-R' > ... > Oops, LDFLAGS should probably be LDFLAGS="-Wl,-bsvr4,-R,/opt/freeware/lib -L/opt/freeware/lib" For comparison, on Solaris, these extra packages including gdal are in /opt/csw and I need to set LDFLAGS="-Wl,-R/opt/csw/lib -L/opt/csw/lib -Wl,-R/opt/csw/gxx/lib -L/opt/csw/gxx/lib" in order to 1) get GRASS compiled, 2) get GRASS running, because anything in /opt/csw should only be used by applications compiled against it. By default, the system does not know about applications, libraries or headers in /opt/csw, and I guess that this principle (hide extra packages from the system) is common for both UNIX systems, AIX and Solaris. > Sigh :-) Alternatively, try to disable nls, i.e. do not --enable-nls during configuration. Markus M ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Fri, Jun 28, 2013 at 8:29 PM, Markus Metz wrote: > On Fri, Jun 28, 2013 at 7:13 AM, Markus Neteler wrote: ... >> How to tell GRASS 7 in configure to pick up the /opt/freeware/ include file >> and >> library? > > In general, you can use some influential environment variables: > CFLAGS C compiler flags > LDFLAGS linker flags, e.g. -L if you have libraries in a > nonstandard directory > LIBSlibraries to pass to the linker, e.g. -l > CPPFLAGS(Objective) C/C++ preprocessor flags, e.g. -I if > you have headers in a nonstandard directory > > If some components are in non-standard /opt/freeware/, you could try to set > > LDFLAGS="-bsvr4 -R/opt/freeware/lib" CPPFLAGS="-I/opt/freeware/include" Not on AIX it seems...: checking whether the C compiler (gcc -bsvr4 -R/opt/freeware/lib) works... no configure: error: installation or configuration problem: C compiler cannot create executables. cat config.log ... configure:754: checking host system type configure:777: checking for gcc configure:881: checking whether the C compiler (gcc -bsvr4 -R/opt/freeware/lib) works configure:897: gcc -o conftest -I/opt/freeware/include -bsvr4 -R/opt/freeware/lib conftest.c 1>&5 gcc: error: unrecognized option '-bsvr4' gcc: error: unrecognized option '-R' ... Sigh :-) markusN ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Fri, Jun 28, 2013 at 8:32 PM, Glynn Clements wrote: > > Markus Neteler wrote: > >> How to tell GRASS 7 in configure to pick up the /opt/freeware/ include file >> and >> library? > > --with-includes=/opt/freeware/include --with-libs=/opt/freeware/lib > > This adds the corresponding -I/-L flags to all compilation and linking > commands. I tried, it fails as before (make distclean done). Perhaps the installation is broken? cat /opt/freeware/lib/libiconv.la # libiconv.la - a libtool library file # Generated by libtool (GNU libtool) 2.4 # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='libiconv.so.2' # Names of this library. library_names='libiconv.a libiconv.a' # The name of the static archive. old_library='' # Linker flags that can not go in dependency_libs. inherited_linker_flags='' # Libraries that this one depends upon. dependency_libs=' -L/opt/freeware/lib' but there is no libiconv.so.2. ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > How to tell GRASS 7 in configure to pick up the /opt/freeware/ include file > and > library? --with-includes=/opt/freeware/include --with-libs=/opt/freeware/lib This adds the corresponding -I/-L flags to all compilation and linking commands. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Fri, Jun 28, 2013 at 7:13 AM, Markus Neteler wrote: > On Wed, Jun 26, 2013 at 7:40 PM, Markus Neteler wrote: > ... >> Now trying to get shared libraries enabled (almost there). > > Also enabled in SVN (thanks to Markus Metz). > > Interestingly, when *starting* GRASS 7, I get on that AIX machine: > > Cleaning up temporary files... > Starting GRASS GIS... > Could not load program g.gisenv: > Could not load module > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gis.7.0.svn.so. > Dependent module /usr/lib/libiconv.a(libiconv.so.2) could not be > loaded. > Member libiconv.so.2 is not found in archive > Could not load module g.gisenv. > Dependent module > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gis.7.0.svn.so > could not be loaded. > Could not load module . > Could not load program g.gisenv: > Could not load module > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gis.7.0.svn.so. > Dependent module /usr/lib/libiconv.a(libiconv.so.2) could not be > loaded. > Member libiconv.so.2 is not found in archive > Could not load module g.gisenv. > Dependent module > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gis.7.0.svn.so > could not be loaded. > Could not load module . > > Indeed, the libconv stuff is in /opt/freeware/ but searched in the common > /usr/ directories. Existing: > > /usr/include/iconv.h > > /* @(#)09 1.20 src/bos/usr/include/iconv.h, libiconv, bos610 > 8/28/03 11:09:44 */ > /* IBM_PROLOG_END_TAG */ > ... > > but no corresponding libiconv. > > How to tell GRASS 7 in configure to pick up the /opt/freeware/ include file > and > library? In general, you can use some influential environment variables: CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBSlibraries to pass to the linker, e.g. -l CPPFLAGS(Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory If some components are in non-standard /opt/freeware/, you could try to set LDFLAGS="-bsvr4 -R/opt/freeware/lib" CPPFLAGS="-I/opt/freeware/include" Markus M ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Wed, Jun 26, 2013 at 7:40 PM, Markus Neteler wrote: ... > Now trying to get shared libraries enabled (almost there). Also enabled in SVN (thanks to Markus Metz). Interestingly, when *starting* GRASS 7, I get on that AIX machine: Cleaning up temporary files... Starting GRASS GIS... Could not load program g.gisenv: Could not load module /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gis.7.0.svn.so. Dependent module /usr/lib/libiconv.a(libiconv.so.2) could not be loaded. Member libiconv.so.2 is not found in archive Could not load module g.gisenv. Dependent module /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gis.7.0.svn.so could not be loaded. Could not load module . Could not load program g.gisenv: Could not load module /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gis.7.0.svn.so. Dependent module /usr/lib/libiconv.a(libiconv.so.2) could not be loaded. Member libiconv.so.2 is not found in archive Could not load module g.gisenv. Dependent module /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib/libgrass_gis.7.0.svn.so could not be loaded. Could not load module . Indeed, the libconv stuff is in /opt/freeware/ but searched in the common /usr/ directories. Existing: /usr/include/iconv.h /* @(#)09 1.20 src/bos/usr/include/iconv.h, libiconv, bos610 8/28/03 11:09:44 */ /* IBM_PROLOG_END_TAG */ ... but no corresponding libiconv. How to tell GRASS 7 in configure to pick up the /opt/freeware/ include file and library? Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > Markus Metz figured it out, fixed locally (see attachment). > Submit or not? This part: > +/* Alias the symbols using asm */ > +extern "C" { > +extern int open(const char *, int, ...) __asm__("open64"); > +} shouldn't be necessary. AFAICT, the only parts of r.terraflow which call open() are noclobberFile() and noclobberFileName() in stats.c. The former is no longer used, and the latter closes the file immediately after opening it, so there's no need for LFS there. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Wed, Jun 26, 2013 at 7:40 PM, Markus Neteler wrote: > On Wed, Jun 26, 2013 at 1:13 AM, Glynn Clements > 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>> std::char_traits >::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 >> #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
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Wed, Jun 26, 2013 at 1:13 AM, Glynn Clements 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> std::char_traits >::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 > #undef open Markus Metz figured it out, fixed locally (see attachment). Submit or not? 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 r.terraflow_AIX_gcc_fix.diff Description: Binary data ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
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 std::char_traits >::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 #undef open But you'd need to figure out which file(s) require it, maybe with: nm -A OBJ.*/*.o | c++filt | fgrep open64 [This would work on Linux, but I don't know about AIX.] -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Hi, most of GRASS 7 now compiles on AIX without special configure tricks. Remaining: -bash-3.2$ cd /gpfs/home/neteler/software/grass-7.0.svn/raster/r.terraflow -bash-3.2$ gmake : && g++ -L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib -L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib -L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib -o /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin/r.terraflow OBJ.powerpc-ibm-aix7.1.0.0/fill.o OBJ.powerpc-ibm-aix7.1.0.0/plateau.o OBJ.powerpc-ibm-aix7.1.0.0/main.o OBJ.powerpc-ibm-aix7.1.0.0/genericWindow.o OBJ.powerpc-ibm-aix7.1.0.0/filldepr.o OBJ.powerpc-ibm-aix7.1.0.0/grid.o OBJ.powerpc-ibm-aix7.1.0.0/common.o OBJ.powerpc-ibm-aix7.1.0.0/sweep.o OBJ.powerpc-ibm-aix7.1.0.0/flow.o OBJ.powerpc-ibm-aix7.1.0.0/water.o OBJ.powerpc-ibm-aix7.1.0.0/types.o OBJ.powerpc-ibm-aix7.1.0.0/ccforest.o OBJ.powerpc-ibm-aix7.1.0.0/nodata.o OBJ.powerpc-ibm-aix7.1.0.0/direction.o OBJ.powerpc-ibm-aix7.1.0.0/weightWindow.o OBJ.powerpc-ibm-aix7.1.0.0/stats.o-lgrass_raster.7.0.svn -lgrass_gis.7.0.svn -lgrass_datetime.7.0.svn -lz -liconv -lm -lm -lgrass_gis.7.0.svn -lgrass_datetime.7.0.svn -lz -liconv -lm -lgrass_iostream.7.0.svn -lm -lm ld: 0711-317 ERROR: Undefined symbol: .std::basic_filebuf >::open64(char const*, std::_Ios_Openmode) ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. collect2: ld returned 8 exit status gmake: *** [/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin/r.terraflow] Error 1 ... no idea here... Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
http://bugs.debian.org/672719: > > LD_LIBRARY_PATH=":/build/buildd-grass_6.4.1-2.1-s390x-GTALEw/grass-6.4.1/dist.s390x-ibm-linux-gnu/lib" > > > > ./test; diff ./test.tmp ../ test.ok Killed make[6]: *** [OBJ.s390x-ibm-linux-gnu/test] Error 2 Markus M: > That seems to me a problem on big endian systems, not related to LFS, > fixed after 6.4.1. I would recommend to upgrade GRASS to either the > latest 6.4.3 snapshot or to 7.0. that's copied from an old bug report; Debian builds of modern versions are ok for all of alpha, amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, powerpcspe, s390, sh4, and sparc. regards, Hamish ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Wed, Jun 19, 2013 at 6:10 AM, Hamish wrote: > Markus N wrote: > >> - diglib test updated in lib/vector/diglib/ >> --> still failing there, we try to understand That has been fixed in 56699, it was related to LFS. > > hmm, this is quite similar, I wonder if it is related: > > "grass: FTBFS on ppc64 and s390x" > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=672719#17 > >>> Errors in: >>> /build/buildd-grass_6.4.1-2.1-s390x-GTALEw/grass-6.4.1/lib/vector/diglib > ... >>> cd OBJ.s390x-ibm-linux-gnu; \ >>> LD_LIBRARY_PATH=":/build/buildd-grass_6.4.1-2.1-s390x-GTALEw/grass-6.4.1/dist.s390x-ibm-linux-gnu/lib" >>> ./test; diff ./test.tmp ../ >>> test.ok >>> Killed >>> make[6]: *** [OBJ.s390x-ibm-linux-gnu/test] Error 2 That seems to me a problem on big endian systems, not related to LFS, fixed after 6.4.1. I would recommend to upgrade GRASS to either the latest 6.4.3 snapshot or to 7.0. Markus M ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus N wrote: > - diglib test updated in lib/vector/diglib/ > --> still failing there, we try to understand hmm, this is quite similar, I wonder if it is related: "grass: FTBFS on ppc64 and s390x" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=672719#17 >> Errors in: >> /build/buildd-grass_6.4.1-2.1-s390x-GTALEw/grass-6.4.1/lib/vector/diglib ... >> cd OBJ.s390x-ibm-linux-gnu; \ >> LD_LIBRARY_PATH=":/build/buildd-grass_6.4.1-2.1-s390x-GTALEw/grass-6.4.1/dist.s390x-ibm-linux-gnu/lib" >> ./test; diff ./test.tmp ../ >> test.ok >> Killed >> make[6]: *** [OBJ.s390x-ibm-linux-gnu/test] Error 2 Hamish ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > * AIX namespace pollutions: > /gpfs/home/neteler/software/grass-7.0.svn/lib/rst/interp_float > /gpfs/home/neteler/software/grass-7.0.svn/raster/r.resamp.rst > /gpfs/home/neteler/software/grass-7.0.svn/vector/v.surf.rst > /gpfs/home/neteler/software/grass-7.0.svn/vector/v.vol.rst > > gmake[1]: Entering directory > `/gpfs/home/neteler/software/grass-7.0.svn/lib/rst/interp_float' > gcc -g -O2 > -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include > -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include > -D_FILE_OFFSET_BITS=64 -I/gpfs/home/neteler/bin/include > -DPACKAGE=\""grasslibs"\" > -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include > -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include > -o OBJ.powerpc-ibm-aix7.1.0.0/point2d.o -c point2d.c > point2d.c: In function 'IL_check_at_points_2d': > point2d.c:54:43: error: expected identifier or '(' before numeric constant Likely case: "#define hz ..." in one of the headers. Use -std=c89 then figure out which -D switches are needed to re-enable POSIX. > * "System error: Not enough space" > /gpfs/home/neteler/software/grass-7.0.svn/raster/simwe/r.sim.water > /gpfs/home/neteler/software/grass-7.0.svn/raster/simwe/r.sim.sediment I think that this may be due to simlib/hydro.c defining some unusually large static arrays: double vavg[MAXW][2], stack[MAXW][3], w[MAXW][3]; int iflag[MAXW]; waterglobs.h has: #define MAXW700 so that's 56 million doubles and 7 million ints = 476 MB. If AIX has a limit on the size of the BSS segment, this is a prime candidate for exceeding it. It should be simple to confirm whether this is the case: reduce the value of MAXW by a factor of 100 and see if the errors disappear. If so, consider replacing the arrays with: double (*vavg)[2], (*stack)[3], (*w)[3]; int *iflag; then allocating the arrays with G_calloc() at run time. > import grass.lib.vector as vector > ImportError: No module named lib.vector $GISBASE/etc/python/grass/__init__.py has this: __all__ = ["script", "temporal"] if os.path.exists(os.path.join(os.path.dirname(__file__), "lib", "__init__.py")): __all__.append("lib") Check that $GISBASE/etc/python/grass/lib/__init__.py exists. If it doesn't, that suggests a problem with building lib/python/ctypes. If it does, there's a problem with the logic in __init__.py. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Tue, Jun 11, 2013 at 11:18 AM, Glynn Clements wrote: > > Markus Neteler wrote: > >> > I suspect that GDALLIBS should include -lstdc++. That's arguably a bug >> > in the gdal-config script. In practice it will only matter if GDAL is >> > a static library; shared libraries record their dependencies. ... > Edit the gdal-config script and put it in there. Along with anything > else which is required to get the GDAL configure test to pass. Yes, that did the trick and was sufficient. A few remaining issues: * AIX namespace pollutions: /gpfs/home/neteler/software/grass-7.0.svn/lib/rst/interp_float /gpfs/home/neteler/software/grass-7.0.svn/raster/r.resamp.rst /gpfs/home/neteler/software/grass-7.0.svn/vector/v.surf.rst /gpfs/home/neteler/software/grass-7.0.svn/vector/v.vol.rst gmake[1]: Entering directory `/gpfs/home/neteler/software/grass-7.0.svn/lib/rst/interp_float' gcc -g -O2 -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include -D_FILE_OFFSET_BITS=64 -I/gpfs/home/neteler/bin/include -DPACKAGE=\""grasslibs"\" -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include -o OBJ.powerpc-ibm-aix7.1.0.0/point2d.o -c point2d.c point2d.c: In function 'IL_check_at_points_2d': point2d.c:54:43: error: expected identifier or '(' before numeric constant point2d.c:78:3: error: 'r' undeclared (first use in this function) point2d.c:78:3: note: each undeclared identifier is reported only once for each function it appears in point2d.c:87:5: error: lvalue required as left operand of assignment point2d.c:88:2: error: 'zz' undeclared (first use in this function) point2d.c:89:2: error: 'err' undeclared (first use in this function) point2d.c:90:2: error: 'xmm' undeclared (first use in this function) point2d.c:91:2: error: 'ymm' undeclared (first use in this function) point2d.c:145:5: error: lvalue required as left operand of assignment gmake[1]: *** [OBJ.powerpc-ibm-aix7.1.0.0/point2d.o] Error 1 gmake[1]: Leaving directory `/gpfs/home/neteler/software/grass-7.0.svn/lib/rst/interp_float' gmake: *** [default] Error 2 * "System error: Not enough space" /gpfs/home/neteler/software/grass-7.0.svn/raster/simwe/r.sim.water /gpfs/home/neteler/software/grass-7.0.svn/raster/simwe/r.sim.sediment Following http://unix.ittoolbox.com/groups/technical-functional/ibm-aix-l/could-not-load-program-not-enough-space-4221969 I used "truss": -bash-3.2$ GISRC=/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/.grassrc70 GISBASE=/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0 PATH="/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin:/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin:$PATH" PYTHONPATH="/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/etc/python:/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/etc/python:$PYTHONPATH" LIBPATH="/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin:/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib:/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib:-L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib -L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib" LC_ALL=C truss /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin/r.sim.water --html-description execve("/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin/r.sim.water", 0x2FF227B8, 0x20013478) argc: 3Could not load program kwrite(2, " C o u l d n o t l o".., 23) = 23 /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/bin/r.sim.water kwrite(2, " / g p f s / h o m e / n".., 85)= 85 : kwrite(2, " :\n", 2)= 2 sbrk(0x)= 0x3009A400 vmgetinfo(0x2FF22120, 7, 16)= 0 sbrk(0x)= 0x3009A400 __libc_sbrk(0x) = 0x3009A400 System errorkwrite(2, " S y s t e m e r r o r", 12) = 12 : kwrite(2, " : ", 2) = 2 Not enough spacekwrite(2, " N o t e n o u g h s".., 16) = 16 kwrite(2, "\n", 1) = 1 kfcntl(1, F_GETFL, 0x2FF22FFC) = 67110914 kfcntl(2, F_GETFL, 0x2FF22FFC) = 67110914 _exit(255) -bash-3.2$ ... no idea what's wrong here. I have, cough, 41TB of free space in HOME. It only affects these two commands. * All temporal Python modules show this issue: Traceback (most recent call last): File "/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/scripts/t.create", line 60, in import grass.temporal as tgis File "/gpfs/home/neteler/software/grass-7.0.s
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > > I suspect that GDALLIBS should include -lstdc++. That's arguably a bug > > in the gdal-config script. In practice it will only matter if GDAL is > > a static library; shared libraries record their dependencies. > > checking for gdal-config... /gpfs/home/neteler/bin//bin/gdal-config > configure: error: *** Unable to locate GDAL library. > ld: 0711-317 ERROR: Undefined symbol: vtable for > __cxxabiv1::__si_class_type_info > No idea how to get -lstdc++ in here/GRASS. Edit the gdal-config script and put it in there. Along with anything else which is required to get the GDAL configure test to pass. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Hi, some news: - install-sh update done in r56675, working - diglib test updated in lib/vector/diglib/ --> still failing there, we try to understand - ps/ps.map/ done by Hamish - SQLite I have recompiled like this, now accepted ok! ./configure \ --prefix=$PREFIX \ --disable-shared \ --disable-threadsafe \ --disable-tcl > /gpfs/home/neteler/software/grass-7.0.svn/lib/rst/interp_float > /gpfs/home/neteler/software/grass-7.0.svn/raster/r.resamp.rst > /gpfs/home/neteler/software/grass-7.0.svn/vector/v.surf.rst > /gpfs/home/neteler/software/grass-7.0.svn/vector/v.vol.rst --> AIX namespace pollution to be investigated > /gpfs/home/neteler/software/grass-7.0.svn/db/drivers/ogr ... --> the missing -lstdc++ to be understood... Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Mon, Jun 10, 2013 at 3:41 PM, Glynn Clements wrote: ... > I suspect that GDALLIBS should include -lstdc++. That's arguably a bug > in the gdal-config script. In practice it will only matter if GDAL is > a static library; shared libraries record their dependencies. checking for gdal-config... /gpfs/home/neteler/bin//bin/gdal-config configure: error: *** Unable to locate GDAL library. config.log: configure:6079: checking for gdal-config configure:6141: gcc -o conftest -g -O2 -I/gpfs/home/neteler/bin/includeconftest.c -lc -L/gpfs/home/neteler/bin/lib -lgdal 1>&5 configure: In function 'main': configure:6137:9: warning: ignoring return value of 'GDALOpen', declared with attribute warn_unused_result [-Wunused-result] ld: 0711-224 WARNING: Duplicate symbol: .strndup ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__si_class_type_info ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__class_type_info ld: 0711-317 ERROR: Undefined symbol: __gxx_personality_v0 ld: 0711-317 ERROR: Undefined symbol: __cxa_pure_virtual ld: 0711-317 ERROR: Undefined symbol: .operator delete(void*) ld: 0711-317 ERROR: Undefined symbol: std::basic_string, std::allocator >::_Rep::_S_empty_rep_storage ld: 0711-317 ERROR: Undefined symbol: .std::basic_string, std::allocator >::_Rep::_M_destroy(std::allocator const&) ld: 0711-317 ERROR: Undefined symbol: .std::basic_string, std::allocator >::~basic_string() ld: 0711-317 ERROR: Undefined symbol: .std::basic_string, std::allocator >::_M_leak_hard() ld: 0711-317 ERROR: Undefined symbol: .std::basic_string, std::allocator >::basic_string(char const*, std::allocator ... I configured GDAL like this: export LIBICONV=/opt/freeware export CC="gcc" export CXX="g++" PREFIX=$HOME/bin CFLAGS='-DHAVE_INTTYPES_H=0' ./configure \ --prefix=$PREFIX --with-libz=internal --with-threads=no --with-geotiff=internal --with-libtiff=internal ls ~/bin/lib/ gdalpluginslibgdal.a libgdal.la libproj.a libproj.la libsqlite3.a libsqlite3.la pkgconfig So it is all static on AIX. No idea how to get -lstdc++ in here/GRASS. Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > diff OBJ.powerpc-ibm-aix7.1.0.0/test.tmp test64.ok > diff: Missing newline at the end of file OBJ.powerpc-ibm-aix7.1.0.0/test.tmp. > diff: Missing newline at the end of file test64.ok. Using cmp (as per r56674) is the right thing to do here. > cd /gpfs/home/neteler/software/grass-7.0.svn/lib/rst/interp_float/ > point2d.c: In function 'IL_check_at_points_2d': > point2d.c:54:43: error: expected identifier or '(' before numeric constant Yet more AIX namespace pollution. The only long-term solution to this problem is to figure out what else is required to get GRASS to compile with e.g. -std=c89 or -std=c99. I thought that we'd solved this already (other than what to do about the TIOCGWINSZ issue in lib/gis/ls.c). Renaming variables to avoid conflicts will be a never-ending game of Whac-a-Mole. > cd /gpfs/home/neteler/software/grass-7.0.svn/db/drivers/sqlite > ld: 0711-317 ERROR: Undefined symbol: .pthread_mutex_unlock > ld: 0711-317 ERROR: Undefined symbol: .pthread_mutex_trylock ... Something (probably SQLite) needs -lpthread, but it isn't present in the link command. I don't know why the configure check succeeded. > -bash-3.2$ cd /gpfs/home/neteler/software/grass-7.0.svn/db/drivers/ogr > : && gcc > -L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib > ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__class_type_info > --> I see that -lstdc++ is missing?! > -bash-3.2$ grep stdc include/Make/Platform.make > CFLAGS = -lstdc++ WTF? -l switches don't belong in CFLAGS. > It also comes up here: > > -bash-3.2$ cd /gpfs/home/neteler/software/grass-7.0.svn/display/d.grid > ld: 0711-317 ERROR: Undefined symbol: typeinfo for std::exception > --> I see that -lstdc++ is missing. Probably due to GDAL, pulled in by GPROJDEPS. > The same applies to ... I suspect that GDALLIBS should include -lstdc++. That's arguably a bug in the gdal-config script. In practice it will only matter if GDAL is a static library; shared libraries record their dependencies. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus N wrote: > -bash-3.2$ cd > /gpfs/home/neteler/software/grass-7.0.svn/ps/ps.map > -bash-3.2$ gmake ... > vect.c:16:15: error: conflicting types for 'nearest' > /usr/opt/freeware/bin/../lib/gcc/powerpc-ibm-aix7.1.0.0/4.6.1/include-fixed/math.h:1397:21: > note: previous declaration of 'nearest' was here > gmake: *** [OBJ.powerpc-ibm-aix7.1.0.0/vect.o] Error 1 > > As workaround, renaming of "nearest" would likely do it as > in: > http://trac.osgeo.org/grass/changeset/55563/grass/trunk/lib/gis/plot.c done in trunk r56661. Hamish Hamish ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Hi, [side note: this system is a 3k-cores machine to which I kindly got access, that's why I am interested to get GRASS 7 running there] I am configuring on AIX 7.1 like this, using the "new" install-sh from https://svn.met.no/viewvc/fimex/branches/version0_28_x/install-sh?view=co gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/opt/freeware/bin/../libexec/gcc/powerpc-ibm-aix7.1.0.0/4.6.1/lto-wrapper Target: powerpc-ibm-aix7.1.0.0 Configured with: ../gcc-4.6.1/configure --with-as=/usr/bin/as --with-ld=/usr/bin/ld --enable-languages=c,c++,fortran --prefix=/opt/freeware --mandir=/opt/freeware/man --infodir=/opt/freeware/info --enable-threads --enable-version-specific-runtime-libs --disable-nls --enable-decimal-float=dpd --host=powerpc-ibm-aix7.1.0.0 Thread model: aix gcc version 4.6.1 (GCC) # AIX 7.1 - grass7.svn: PREFIX=$HOME/bin CFLAGS="-lstdc++" ./configure \ --prefix=$PREFIX \ --disable-shared \ --enable-largefile \ --with-cxx \ --with-proj-includes=$PREFIX/include/ \ --with-proj-libs=$PREFIX/lib/ \ --with-proj-share=$PREFIX/share/proj/ \ --with-gdal=$PREFIX//bin/gdal-config \ --with-sqlite \ --with-sqlite-libs=$PREFIX/lib --with-sqlite-includes=$PREFIX/include \ --with-tiff=no \ --with-png=no \ --with-fftw=no \ --with-cairo=no \ --with-opengl=no \ --with-freetype=no GRASS is now configured for: powerpc-ibm-aix7.1.0.0 Source directory: /gpfs/home/neteler/software/grass-7.0.svn Build directory:/gpfs/home/neteler/software/grass-7.0.svn Installation directory: ${prefix}/grass-7.0.svn Startup script in directory:${exec_prefix}/bin C compiler: gcc -lstdc++ C++ compiler: c++ -g -O2 Building shared libraries: no ... The compilation starts ok, then a few problems happen: Errors in: /gpfs/home/neteler/software/grass-7.0.svn/lib/vector/diglib /gpfs/home/neteler/software/grass-7.0.svn/lib/rst/interp_float /gpfs/home/neteler/software/grass-7.0.svn/db/drivers/sqlite /gpfs/home/neteler/software/grass-7.0.svn/db/drivers/ogr /gpfs/home/neteler/software/grass-7.0.svn/display/d.grid /gpfs/home/neteler/software/grass-7.0.svn/display/d.path ... /gpfs/home/neteler/software/grass-7.0.svn/general/g.copy /gpfs/home/neteler/software/grass-7.0.svn/general/g.findfile ... /gpfs/home/neteler/software/grass-7.0.svn/general/manage/lister /gpfs/home/neteler/software/grass-7.0.svn/raster/r.carve ... /gpfs/home/neteler/software/grass-7.0.svn/vector/v.build /gpfs/home/neteler/software/grass-7.0.svn/vector/v.buffer ... /gpfs/home/neteler/software/grass-7.0.svn/misc/m.transform /gpfs/home/neteler/software/grass-7.0.svn/imagery/i.cca /gpfs/home/neteler/software/grass-7.0.svn/imagery/i.cluster ... /gpfs/home/neteler/software/grass-7.0.svn/ps/ps.map .. (all Python dependent modules fail due to outdated Python there) This long list can be reduced to perhaps "only" four problems. I wonder if "--disable-shared" matters below. In detail: -bash-3.2$ cd /gpfs/home/neteler/software/grass-7.0.svn/lib/vector/diglib -bash-3.2$ gmake if [ "" != "" -a -f "".html ] ; then gmake html ; fi ==TEST= gmake test gmake[1]: Entering directory `/gpfs/home/neteler/software/grass-7.0.svn/lib/vector/diglib' : && gcc -L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib -L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib -L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib -o OBJ.powerpc-ibm-aix7.1.0.0/test ==TEST= gmake test gmake[5]: Entering directory `/gpfs/home/neteler/software/grass-7.0.svn/lib/vector/diglib' gcc -lstdc++ -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include -D_FILE_OFFSET_BITS=64 -I/gpfs/home/neteler/bin/include -DPACKAGE=\""grasslibs"\" -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/include -o OBJ.powerpc-ibm-aix7.1.0.0/test.o -c test.c : && gcc -L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib -L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib -L/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/lib -o OBJ.powerpc-ibm-aix7.1.0.0/test OBJ.powerpc-ibm-aix7.1.0.0/test.o -lgrass_dig2.7.0.svn -lgrass_gis.7.0.svn -lgrass_datetime.7.0.svn -lz -liconv -lm -lgrass_rtree.7.0.svn -lgrass_gis.7.0.svn -lgrass_datetime.7.0.svn -lz -liconv -lm -lm -lm -lgrass_gis.7.0.svn -lgrass_datetime.7.0.svn -lz -liconv -lm -lgrass_rtree.7.0.svn -lgrass_gis.7.0.svn -lgrass_datetime.7.0.svn -lz -liconv -lm -lm -lm -lm cd OBJ.powerpc-ibm-aix7.1.0.0 && GISRC=/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/.grassrc70 GISBASE=/gpfs/home/neteler/software/grass-7.0.svn/dist
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Sun, Jun 9, 2013 at 8:00 PM, Markus Neteler wrote: > Hi, > > I got meanwhile access to this AIX 7.1 machine. PROJ4 and GDAL I got > installed, but now having a problem with GRASS 7: > > ... > /gpfs/home/neteler/software/grass-7.0.svn/install-sh -c -m 644 > PERMANENT/WIND > /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT/WIND > /gpfs/home/neteler/software/grass-7.0.svn/install-sh[239]: : cannot execute > gmake[2]: *** > [/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT/WIND] > Error 126 It appears that GRASS is shipping an antique version of install-sh. I found a working newer version here: https://svn.met.no/viewvc/fimex/branches/version0_28_x/install-sh --> AIX fixes :) The project is at https://wiki.met.no/fimex/start "Fimex is a the File Interpolation, Manipulation and EXtraction library for gridded geospatial data" ASCII download: https://svn.met.no/viewvc/fimex/branches/version0_28_x/install-sh?view=co Any objections to replace our version with this version? thanks Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Hi, I got meanwhile access to this AIX 7.1 machine. PROJ4 and GDAL I got installed, but now having a problem with GRASS 7: ... /gpfs/home/neteler/software/grass-7.0.svn/install-sh -c -m 644 PERMANENT/WIND /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT/WIND /gpfs/home/neteler/software/grass-7.0.svn/install-sh[239]: : cannot execute gmake[2]: *** [/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT/WIND] Error 126 gmake[2]: Leaving directory `/gpfs/home/neteler/software/grass-7.0.svn/demolocation' ... There is this spurious " : " in install-sh. Adding -x delivers this: -bash-3.2$ gmake chmod 755 install-sh gmake subdirs gmake[1]: Entering directory `/gpfs/home/neteler/software/grass-7.0.svn' gmake[2]: Entering directory `/gpfs/home/neteler/software/grass-7.0.svn/demolocation' /gpfs/home/neteler/software/grass-7.0.svn/install-sh -c -m 644 PERMANENT/WIND /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT/WIND + doit= + mvprog=mv + cpprog=cp + chmodprog=chmod + chownprog=chown + chgrpprog=chgrp + stripprog=strip + rmprog=rm + mkdirprog=mkdir + transformbasename= + transform_arg= + instcmd=mv + chmodcmd=chmod 0755 + chowncmd= + chgrpcmd= + stripcmd= + rmcmd=rm -f + mvcmd=mv + src= + dst= + dir_arg= + [ x-c != x ] + instcmd=cp + shift + continue + [ x-m != x ] + chmodcmd=chmod 644 + shift + shift + continue + [ xPERMANENT/WIND != x ] + [ x = x ] + src=PERMANENT/WIND + shift + continue + [ x/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT/WIND != x ] + [ xPERMANENT/WIND = x ] + : + dst=/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT/WIND + shift + continue + [ x != x ] + [ xPERMANENT/WIND = x ] + true + [ x != x ] + [ -f PERMANENT/WIND -o -d PERMANENT/WIND ] + true + [ x/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT/WIND = x ] + true + [ -d /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT/WIND ] + true + + sed -e s,[^/]*$,,;s,/$,,;s,^$,., + echo /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT/WIND dstdir=/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT + [ ! -d /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT ] + [ x != x ] + [ x = x ] + + basename /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT/WIND dstfile=WIND + [ xWIND = x ] + true + dsttmp=/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT/#inst.3735728# + cp PERMANENT/WIND /gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT/#inst.3735728# /gpfs/home/neteler/software/grass-7.0.svn/install-sh[239]: : cannot execute gmake[2]: *** [/gpfs/home/neteler/software/grass-7.0.svn/dist.powerpc-ibm-aix7.1.0.0/demolocation/PERMANENT/WIND] Error 126 gmake[2]: Leaving directory `/gpfs/home/neteler/software/grass-7.0.svn/demolocation' ... Executing the cp command manually does not lead to this ":" error. Any ideas? thanks Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > > Is the struct winsize definition guarded by #if/#ifdef? > > Yes: > > #ifdef _ALL_SOURCE > /* Common ioctl's for all disciplines which are handled in ttiocom */ > enum tty_ioctl { > ... > union txname { /* used with TXGETCD */ > ... > /* > * window size structure used with TXSETWIN and TXGETWIN. This is > * exactly the same as the Berkeley structure and can be used with > * TIOCSWINSZ and TIOCGWINSZ -- in fact they are defined to be the > * same. > */ > struct winsize { > unsigned short ws_row; /* rows, in characters */ > unsigned short ws_col; /* columns, in characters */ > unsigned short ws_xpixel; /* horizontal size, pixels */ > unsigned short ws_ypixel; /* vertical size, pixels */ > }; > #endif /* _ALL_SOURCE */ > > So, I see only the #if/#ifdef which we want to avoid to use... Right. But TIOCGWINSZ isn't similarly guarded. Based upon the comment maybe there's another version of that structure which is guarded differently? Otherwise, the "#ifdef TIOCGWINSZ" in lib/gis/ls.c may need to be replaced with: #if defined(TIOCGWINSZ) && !defined(_AIX) Or maybe we should just get rid of that code and stick with a hard-coded width of 80 columns. It doesn't seem worth the risk of a compilation failure in lib/gis (and thus a link failure in everything else). ioctl(TIOCGWINSZ) isn't specified by POSIX. In fact, ioctl() itself is only specified in conjuction with the STREAMS API; all other uses are implementation-dependent. GRASS 7 doesn't use ioctl() other than for TIOCGWINSZ; GRASS 6.x may use TCGETA or TIOCGETC if tcgetattr() isn't available. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Mon, Apr 8, 2013 at 11:31 AM, Glynn Clements wrote: > > Markus Neteler wrote: > >> > A grep for "winsize" would be more useful. TIOCGWINSZ is being found, >> > otherwise the code which uses "struct winsize" wouldn't be compiled >> > and wouldn't generate an error. >> >> Ok, found this in /usr/include/sys/ioctl.h: >> >> struct winsize { > > But lib/gis/ls.c already includes , provided that > HAVE_SYS_IOCTL_H is defined. > > Is HAVE_SYS_IOCTL_H defined in config.h? Yes: /* define if sys/ioctl.h exists */ #define HAVE_SYS_IOCTL_H 1 > Is the struct winsize definition guarded by #if/#ifdef? Yes: #ifdef _ALL_SOURCE /* Common ioctl's for all disciplines which are handled in ttiocom */ enum tty_ioctl { ... union txname { /* used with TXGETCD */ ... /* * window size structure used with TXSETWIN and TXGETWIN. This is * exactly the same as the Berkeley structure and can be used with * TIOCSWINSZ and TIOCGWINSZ -- in fact they are defined to be the * same. */ struct winsize { unsigned short ws_row; /* rows, in characters */ unsigned short ws_col; /* columns, in characters */ unsigned short ws_xpixel; /* horizontal size, pixels */ unsigned short ws_ypixel; /* vertical size, pixels */ }; #endif /* _ALL_SOURCE */ So, I see only the #if/#ifdef which we want to avoid to use... Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > > A grep for "winsize" would be more useful. TIOCGWINSZ is being found, > > otherwise the code which uses "struct winsize" wouldn't be compiled > > and wouldn't generate an error. > > Ok, found this in /usr/include/sys/ioctl.h: > > struct winsize { But lib/gis/ls.c already includes , provided that HAVE_SYS_IOCTL_H is defined. Is HAVE_SYS_IOCTL_H defined in config.h? Is the struct winsize definition guarded by #if/#ifdef? -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Sun, Apr 7, 2013 at 10:33 AM, Glynn Clements wrote: > Markus Neteler wrote: ... > tools/timer isn't actually used by GRASS or the build system, so I > don't consider this one to be particularly critical. Perhaps we just remove it from trunk? >> > Okay; "struct winsize" isn't actually specified by POSIX, but it >> > should exist somewhere if TIOCGWINSZ is defined. Not necessarily in >> > the same header as the TIOCGWINSZ definition. Again, it may be guarded >> > by a #if/#ifdef. ... > A grep for "winsize" would be more useful. TIOCGWINSZ is being found, > otherwise the code which uses "struct winsize" wouldn't be compiled > and wouldn't generate an error. Ok, found this in /usr/include/sys/ioctl.h: struct winsize { unsigned short ws_row; /* rows, in characters */ unsigned short ws_col; /* columns, in characters */ unsigned short ws_xpixel; /* horizontal size, pixels */ unsigned short ws_ypixel; /* vertical size, pixels */ }; On Sun, Apr 7, 2013 at 10:34 AM, Glynn Clements wrote: > The whole point of this exercise is to avoid the default _ALL_SOURCE=1 > setting, which is what causes the name conflicts. Ops, I temporarily forgot. I am fine to go on with digging in the AIX definitions. Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > I inspected the file and added _ALL_SOURCE=1: The whole point of this exercise is to avoid the default _ALL_SOURCE=1 setting, which is what causes the name conflicts. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > >> main.c:22: error: storage size of 't' isn't known > >> make: *** [OBJ.powerpc-ibm-aix5.3.0.0/main.o] Error 1 > > > > In which directory? main.c could be anything? > > Ah sorry: tools/timer/main.c "struct timeval", used by gettimeofday(). tools/timer isn't actually used by GRASS or the build system, so I don't consider this one to be particularly critical. > > Okay; "struct winsize" isn't actually specified by POSIX, but it > > should exist somewhere if TIOCGWINSZ is defined. Not necessarily in > > the same header as the TIOCGWINSZ definition. Again, it may be guarded > > by a #if/#ifdef. > > > > On Linux, it's defined in both asm-generic/termios.h (kernel header) > > and bits/ioctl-types.h (glibc header). > > I found this: > > /usr/include> grep TIOCGWINSZ */* > sys/ioctl.h: * TIOCSWINSZ and TIOCGWINSZ -- in fact they are defined to be the > sys/ioctl.h:#define TIOCGSIZE TIOCGWINSZ > sys/ioctl.h:#define TIOCGWINSZ _IOR('t', 104, struct winsize) > /* get window size */ A grep for "winsize" would be more useful. TIOCGWINSZ is being found, otherwise the code which uses "struct winsize" wouldn't be compiled and wouldn't generate an error. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Sat, Apr 6, 2013 at 10:56 AM, Markus Neteler wrote: > Remains: > lib/gs/plot.c:34: error: conflicting types for 'nearest' ... also solved using a fresh SVN extract. The remaining errors are related to the outdated Python on that AIX 5.3 machine. Next step is to check with AIX 7.1 which Ivan may do. I have updated the Wiki page: http://grasswiki.osgeo.org/wiki/Compile_and_Install#AIX -> GRASS 7: Using the GNU gcc compiler: Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Sat, Apr 6, 2013 at 10:21 AM, Markus Neteler wrote: > On Sat, Apr 6, 2013 at 10:13 AM, Glynn Clements > wrote: >> Markus Neteler wrote: > ... >>> main.c:22: error: storage size of 't' isn't known >>> make: *** [OBJ.powerpc-ibm-aix5.3.0.0/main.o] Error 1 >> >> In which directory? main.c could be anything? > > Ah sorry: tools/timer/main.c > > ... >> Okay; "struct winsize" isn't actually specified by POSIX, but it >> should exist somewhere if TIOCGWINSZ is defined. Not necessarily in >> the same header as the TIOCGWINSZ definition. Again, it may be guarded >> by a #if/#ifdef. >> >> On Linux, it's defined in both asm-generic/termios.h (kernel header) >> and bits/ioctl-types.h (glibc header). > > I found this: > > /usr/include> grep TIOCGWINSZ */* > sys/ioctl.h: * TIOCSWINSZ and TIOCGWINSZ -- in fact they are defined to be the > sys/ioctl.h:#define TIOCGSIZE TIOCGWINSZ > sys/ioctl.h:#define TIOCGWINSZ _IOR('t', 104, struct winsize) > /* get window size */ I inspected the file and added _ALL_SOURCE=1: ... checking whether the C compiler (gcc -ansi -D_ALL_SOURCE=1 -D_POSIX_SOURCE=1 -D_POSIX_C_SOURCE=200809L -Dinline= ) works... yes Now tools/timer/main.c compiles as well as lib/gis/ls.c - hence the types get defined. Remains: lib/gs/plot.c:34: error: conflicting types for 'nearest' Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > >> cat /opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.0/include/sys/types.h > > > > Can you visually compare this file to the preprocessor output from > ... > > (file sent offlist for inspection) > > > However: adding -D_POSIX_SOURCE=1 may help (glibc's features.h defines > > _POSIX_SOURCE if _POSIX_C_SOURCE is set; AIX's might not). That appears to be the case. Without _POSIX_SOURCE, only the aforementioned types (ptrdiff_t, wchar_t, wctype_t, time_t, clock_t, and size64_t) are defined. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Sat, Apr 6, 2013 at 10:13 AM, Glynn Clements wrote: > Markus Neteler wrote: ... >> main.c:22: error: storage size of 't' isn't known >> make: *** [OBJ.powerpc-ibm-aix5.3.0.0/main.o] Error 1 > > In which directory? main.c could be anything? Ah sorry: tools/timer/main.c ... > Okay; "struct winsize" isn't actually specified by POSIX, but it > should exist somewhere if TIOCGWINSZ is defined. Not necessarily in > the same header as the TIOCGWINSZ definition. Again, it may be guarded > by a #if/#ifdef. > > On Linux, it's defined in both asm-generic/termios.h (kernel header) > and bits/ioctl-types.h (glibc header). I found this: /usr/include> grep TIOCGWINSZ */* sys/ioctl.h: * TIOCSWINSZ and TIOCGWINSZ -- in fact they are defined to be the sys/ioctl.h:#define TIOCGSIZE TIOCGWINSZ sys/ioctl.h:#define TIOCGWINSZ _IOR('t', 104, struct winsize) /* get window size */ Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > I tried: > > gcc -ansi -D_POSIX_SOURCE=1 -D_POSIX_C_SOURCE=200809L -Dinline= > -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include > -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include >-DPACKAGE=\""grassmods"\" > -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include > -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include > -o OBJ.powerpc-ibm-aix5.3.0.0/main.o -c main.c > main.c: In function 'main': > main.c:22: error: storage size of 't' isn't known > make: *** [OBJ.powerpc-ibm-aix5.3.0.0/main.o] Error 1 In which directory? main.c could be anything? > gcc -ansi -D_POSIX_SOURCE=1 -D_POSIX_C_SOURCE=200809L -Dinline= > -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include > -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include > -DGRASS_VERSION_DATE=\"'2013'\" -DPACKAGE=\""grasslibs"\" > -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include > -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include > -o OBJ.powerpc-ibm-aix5.3.0.0/ls.o -c ls.c > ls.c: In function 'G_ls_format': > ls.c:177: error: storage size of 'size' isn't known > ls.c:179: error: invalid application of 'sizeof' to incomplete type > 'struct winsize' > make[3]: *** [OBJ.powerpc-ibm-aix5.3.0.0/ls.o] Error 1 Okay; "struct winsize" isn't actually specified by POSIX, but it should exist somewhere if TIOCGWINSZ is defined. Not necessarily in the same header as the TIOCGWINSZ definition. Again, it may be guarded by a #if/#ifdef. On Linux, it's defined in both asm-generic/termios.h (kernel header) and bits/ioctl-types.h (glibc header). -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Thu, Apr 4, 2013 at 12:09 PM, Glynn Clements wrote: > Markus Neteler wrote: ... >> cat /opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.0/include/sys/types.h > > Can you visually compare this file to the preprocessor output from ... (file sent offlist for inspection) > However: adding -D_POSIX_SOURCE=1 may help (glibc's features.h defines > _POSIX_SOURCE if _POSIX_C_SOURCE is set; AIX's might not). I tried: gcc -ansi -D_POSIX_SOURCE=1 -D_POSIX_C_SOURCE=200809L -Dinline= -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include -DPACKAGE=\""grassmods"\" -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include -o OBJ.powerpc-ibm-aix5.3.0.0/main.o -c main.c main.c: In function 'main': main.c:22: error: storage size of 't' isn't known make: *** [OBJ.powerpc-ibm-aix5.3.0.0/main.o] Error 1 gcc -ansi -D_POSIX_SOURCE=1 -D_POSIX_C_SOURCE=200809L -Dinline= -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include -DGRASS_VERSION_DATE=\"'2013'\" -DPACKAGE=\""grasslibs"\" -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include -o OBJ.powerpc-ibm-aix5.3.0.0/ls.o -c ls.c ls.c: In function 'G_ls_format': ls.c:177: error: storage size of 'size' isn't known ls.c:179: error: invalid application of 'sizeof' to incomplete type 'struct winsize' make[3]: *** [OBJ.powerpc-ibm-aix5.3.0.0/ls.o] Error 1 Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > > In which case, you need to look at that version of sys/types.h to > > figure out why off_t isn't getting seen. > > I found the path with > /opt/freeware/bin/gcc -print-search-dirs > ... > > Hence ("randomly" citing): > cat /opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.0/include/sys/types.h Can you visually compare this file to the preprocessor output from your previous message, which indicates that very few types are actually getting defined by sys/types.h (specifically: ptrdiff_t, wchar_t, wctype_t, time_t, clock_t, and size64_t). That should provide clues as to which macros are defined and which aren't. Because of the elisions, it isn't clear which #ifdef directives are guarding the off_t definition. However: adding -D_POSIX_SOURCE=1 may help (glibc's features.h defines _POSIX_SOURCE if _POSIX_C_SOURCE is set; AIX's might not). -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Wed, Apr 3, 2013 at 7:57 PM, Glynn Clements wrote: > > Markus Neteler wrote: > >> > This doesn't fit with the off_t-related errors you were getting in >> > defs/gis.h. >> >> Now I got it... gcc picks stuff up from /opt/freeware/bla. Sorry for >> the confusion. > > In which case, you need to look at that version of sys/types.h to > figure out why off_t isn't getting seen. I found the path with /opt/freeware/bin/gcc -print-search-dirs ... Hence ("randomly" citing): cat /opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.0/include/sys/types.h ... #ifndef _H_STANDARDS #include #endif #include #ifndef _H_INTTYPES_TYPE_TS #include #endif /* * * The ANSI and POSIX standards require that certain values be in types.h. * It also requires that if _ANSI_C_SOURCE or _POSIX_SOURCE is defined * then ONLY those values are present. This header includes all the ANSI * and POSIX required entries. * * Other entries are included in _ALL_SOURCE. * */ #ifdef _ANSI_C_SOURCE ... #ifdef _LARGE_FILES typedef long long fpos_t; #else typedef longfpos_t; #endif /* _LARGE_FILES */ #ifdef _LARGE_FILE_API typedef long long fpos64_t; #endif /* _LARGE_FILE_API */ ... #endif /* _ANSI_C_SOURCE */ #ifdef _POSIX_SOURCE ... typedef int soff_t; /* Unambiguous 32 bit file offset */ #ifndef _OFF_T #define _OFF_T #ifdef _LARGE_FILES typedef long long off_t; /* 64 bit file offset */ #else typedef longoff_t; /* file offset (32/64) */ #endif /* _LARGE_FILES */ #endif /* _OFF_T */ #ifdef _LARGE_FILE_API typedef long long off64_t; #endif ... (I can send the file offlist if useful). FWIW: http://forums.fedoraforum.org/showthread.php?t=266114 -> the test program there delivered "success". Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > > This doesn't fit with the off_t-related errors you were getting in > > defs/gis.h. > > Now I got it... gcc picks stuff up from /opt/freeware/bla. Sorry for > the confusion. In which case, you need to look at that version of sys/types.h to figure out why off_t isn't getting seen. > > Try: > > > > gcc -E -ansi -D_POSIX_C_SOURCE=200809L -Dinline= \ > > -Idist.powerpc-ibm-aix5.3.0.0/include -D_POSIX_C_SOURCE=200809L \ > > include/gis.h > > > > This should output what the preprocessor sends to the compiler proper. > > It should include a typedef for off_t. > > Result attached. gcc's sys/types.h isn't defining off_t. It's possible that it's relying upon some other header to define it, but that other header isn't getting included. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Wed, Apr 3, 2013 at 5:51 PM, Glynn Clements wrote: ... > This doesn't fit with the off_t-related errors you were getting in > defs/gis.h. Now I got it... gcc picks stuff up from /opt/freeware/bla. Sorry for the confusion. > Try: > > gcc -E -ansi -D_POSIX_C_SOURCE=200809L -Dinline= \ > -Idist.powerpc-ibm-aix5.3.0.0/include -D_POSIX_C_SOURCE=200809L \ > include/gis.h > > This should output what the preprocessor sends to the compiler proper. > It should include a typedef for off_t. Result attached. Markus aix53_gcc_test.txt.gz Description: GNU Zip compressed data ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > > off_t would be a good start. > #ifndef _OFF_T > #define _OFF_T > #ifdef _LARGE_FILES > typedef long long off_t; /* 64 bit file offset */ > #else > typedef longoff_t; /* file offset (32/64) */ > #endif /* _LARGE_FILES */ > #endif /* _OFF_T */ This doesn't fit with the off_t-related errors you were getting in defs/gis.h. Try: gcc -E -ansi -D_POSIX_C_SOURCE=200809L -Dinline= \ -Idist.powerpc-ibm-aix5.3.0.0/include -D_POSIX_C_SOURCE=200809L \ include/gis.h This should output what the preprocessor sends to the compiler proper. It should include a typedef for off_t. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Wed, Apr 3, 2013 at 10:06 AM, Glynn Clements wrote: > off_t would be a good start. /usr/include/sys/types.h #ifndef _FPOS_T #define _FPOS_T #ifdef _LARGE_FILES typedef long long fpos_t; #else typedef longfpos_t; #endif /* _LARGE_FILES */ #ifdef _LARGE_FILE_API typedef long long fpos64_t; #endif /* _LARGE_FILE_API */ #endif /* _FPOS_T */ ... #ifndef _OFF_T #define _OFF_T #ifdef _LARGE_FILES typedef long long off_t; /* 64 bit file offset */ #else typedef longoff_t; /* file offset (32/64) */ #endif /* _LARGE_FILES */ #endif /* _OFF_T */ #ifdef _LARGE_FILE_API typedef long long off64_t; #endif Offlist (due to copyright constraints) I may also send the entire file. > One thing which can help is to create an empty .c file then use e.g.: > > gcc -ansi -E -dM empty.c | sort > macros.h > > This will generate a list of the macros which are predefined by gcc. Attached as aix53_macros.h. Markus aix53_macros.h.gz Description: GNU Zip compressed data ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > > It appears that AIX uses something other than _POSIX_C_SOURCE to > > enable the POSIX declarations (which -ansi will disable). > > Any concrete POSIX declaration which I should hunt down? off_t would be a good start. > > The question is: what does it use? > > > > If we don't have anyone who is able and willing to put in the > > (relatively minor) effort to figure that out, then AIX "support" (for > > any reasonable definition of that term) is impractical. Even if we can > > get it to compile, even quite trivial run-time problems will be > > insurmountable. > > I am willing to do this. Just I have to better understand *what* to look for. I suspect that _ALL_SOURCE is the one which will cause the most problems, as that appears to enable declarations which aren't part of any standard. The issue is how to disable that without also disabling Unix functionality. Using -ansi (or -std=c89 etc) normally results in standard headers (stdio.h etc) providing only those declarations which are mandated by the C standard, and not those which are added by POSIX or other Unix standards. I suspect that the header may be central to the setting of the macros which enable sets of features corresponding to various C and Unix standards. One thing which can help is to create an empty .c file then use e.g.: gcc -ansi -E -dM empty.c | sort > macros.h This will generate a list of the macros which are predefined by gcc. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
2013/4/2 Markus Neteler > On Tue, Apr 2, 2013 at 8:47 AM, Glynn Clements > wrote: > ... > > > If we don't have anyone who is able and willing to put in the > > (relatively minor) effort to figure that out, then AIX "support" (for > > any reasonable definition of that term) is impractical. Even if we can > > get it to compile, even quite trivial run-time problems will be > > insurmountable. > > I am willing to do this. Just I have to better understand *what* to look > for. > > I will surely continue with compilation on AIX, sorry for my late answers, not enough time for this. Moreover, this week the AIX machine is down for maintanance reasons. So far I tried all of the options for _POSIX_C_SOURCE (1, 2, 199309L, 199506L, 200112L, 200809L). The last one was the best, but still had errors in lib/rst/interp_float and in subsequent modules. I will continue next week. ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Tue, Apr 2, 2013 at 8:47 AM, Glynn Clements wrote: ... > It appears that AIX uses something other than _POSIX_C_SOURCE to > enable the POSIX declarations (which -ansi will disable). Any concrete POSIX declaration which I should hunt down? > The question is: what does it use? > > If we don't have anyone who is able and willing to put in the > (relatively minor) effort to figure that out, then AIX "support" (for > any reasonable definition of that term) is impractical. Even if we can > get it to compile, even quite trivial run-time problems will be > insurmountable. I am willing to do this. Just I have to better understand *what* to look for. Here a "wild" grep: /usr/include/sys> grep POSIX * | grep SOURCE access.h: * are required to be included by unistd.h when _POSIX_SOURCE is defined. access.h:#ifdef _POSIX_SOURCE access.h:#endif /* _POSIX_SOURCE */ ... limits.h: * They also require that if _ANSI_C_SOURCE or _POSIX_SOURCE is limits.h:#ifdef _POSIX_SOURCE limits.h: * included when _POSIX_SOURCE is defined. limits.h:#if (_POSIX_C_SOURCE >= 200112L) limits.h:#if _POSIX_C_SOURCE >= 200112L && !(defined _ALL_SOURCE) || defined(_PATHMAX_HAS_NULL) limits.h:#endif /* _POSIX_SOURCE */ ... times.h:#ifdef _POSIX_SOURCE times.h: * requires that when _POSIX_SOURCE is defined only those standard times.h:#endif /* _POSIX_SOURCE */ types.h: * It also requires that if _ANSI_C_SOURCE or _POSIX_SOURCE is defined types.h:#ifdef _POSIX_SOURCE types.h:#endif /* _POSIX_SOURCE */ types.h:/* The sigset structure must correspond to sigset_t in _POSIX_SOURCE above */ ... wait.h:#ifdef _POSIX_SOURCE wait.h:#endif /* _POSIX_SOURCE */ Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > Compilation issues: > > main.c: In function 'main': > main.c:22: error: storage size of 't' isn't known => struct timeval > /afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include/grass/defs/gis.h:579: > error: expected declaration specifiers or '...' before 'off_t' => off_t It appears that AIX uses something other than _POSIX_C_SOURCE to enable the POSIX declarations (which -ansi will disable). The question is: what does it use? If we don't have anyone who is able and willing to put in the (relatively minor) effort to figure that out, then AIX "support" (for any reasonable definition of that term) is impractical. Even if we can get it to compile, even quite trivial run-time problems will be insurmountable. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Fri, Mar 29, 2013 at 7:18 AM, Glynn Clements wrote: ... > For the first one, start by trying: > > make distclean > CFLAGS='-ansi -D_POSIX_C_SOURCE=200809L -Dinline=' ./configure ... sh conf_AIX.sh checking host system type... powerpc-ibm-aix5.3.0.0 checking for gcc... gcc checking whether the C compiler (gcc -ansi -D_POSIX_C_SOURCE=200809L -Dinline= ) works... yes checking whether the C compiler (gcc -ansi -D_POSIX_C_SOURCE=200809L -Dinline= ) is a cross-compiler... no checking whether we are using GNU C... yes ... Note that I use grass-7.0.svn_src_snapshot_2013_03_22 without the recent lib/gis/plot.c modification. Compilation issues: main.c: In function 'main': main.c:22: error: storage size of 't' isn't known make[3]: *** [OBJ.powerpc-ibm-aix5.3.0.0/main.o] Error 1 make[3]: Leaving directory `/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/tools/timer' And: gcc -ansi -D_POSIX_C_SOURCE=200809L -Dinline= -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include -DGRASS_VERSION_DATE=\"'2013'\" -DPACKAGE=\""grasslibs"\" -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include -o OBJ.powerpc-ibm-aix5.3.0.0/adj_cellhd.o -c adj_cellhd.c In file included from /afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include/grass/gis.h:576, from adj_cellhd.c:14: /afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include/grass/defs/gis.h:578: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'G_ftell' /afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/include/grass/defs/gis.h:579: error: expected declaration specifiers or '...' before 'off_t' make[3]: *** [OBJ.powerpc-ibm-aix5.3.0.0/adj_cellhd.o] Error 1 make[3]: Leaving directory `/afs/mycluster/user/private/software/grass-7.0.svn_src_snapshot_2013_03_22/lib/gis' ... Subsequently also the other libs are not compiled. Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Ivan Barka wrote: > Thanks. So with fresh download, ommiting the first test error in > lib/vector/diglib, I have next errors: > > in lib/rst/interp_float: > point2d.c:54:43: error: expected identifier or '(' before numeric constant Line 54 is: double rfsta2, errmax, h, xx, yy, r2, hz, zz, err, xmm, ymm, r; Column 43 is "hz", which AIX probably defines as a macro whose value is (or starts with) a numberic literal. As I said before: > A "fix" would be for someone to care about AIX enough to figure out > which compiler switches are required to disable the non-standard > declarations. AIX is notorious for namespace pollution, i.e. adding non-standard definitions to the standard C and Unix headers, often resulting in perfectly valid source code failing to compile due to name conflicts. There are two possible "solutions" to this: either figure out how to disable the non-standard definitions, or rewrite GRASS (and every other third-party package you wish to compile) to include workarounds for each such name as you encounter it. For the first one, start by trying: make distclean CFLAGS='-ansi -D_POSIX_C_SOURCE=200809L -Dinline=' ./configure ... -ansi causes gcc to define __STRICT_ANSI__, which should cause the headers defined by ANSI/ISO C to contain only the declarations specified in that standard. -D_POSIX_C_SOURCE=200809L enables declarations which are specified by POSIX-2008. -Dinline= removes the "inline" qualifier on certain functions ("inline" was added in C99; it isn't part of C89 which is selected by -ansi). -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
2013/3/28 Markus Metz > > Apparently you have local modifications that conflict with recent > changes in svn. The easiest is to delete plot.c and svn up again, > looking for any conflicts. > > Markus M Thanks. So with fresh download, ommiting the first test error in lib/vector/diglib, I have next errors: in lib/rst/interp_float: gmake lib gmake[1]: Entering directory `/gpfs/home/senko/dev/grass/grass7/lib/rst/interp_float' gcc -lstdc++ -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -D_FILE_OFFSET_BITS=64 -I/gpfs/home/senko/apps/include -DPACKAGE=\""grasslibs"\" -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -o OBJ.powerpc-ibm-aix7.1.0.0/point2d.o -c point2d.c point2d.c: In function 'IL_check_at_points_2d': point2d.c:54:43: error: expected identifier or '(' before numeric constant point2d.c:78:3: error: 'r' undeclared (first use in this function) point2d.c:78:3: note: each undeclared identifier is reported only once for each function it appears in point2d.c:87:5: error: lvalue required as left operand of assignment point2d.c:88:2: error: 'zz' undeclared (first use in this function) point2d.c:89:2: error: 'err' undeclared (first use in this function) point2d.c:90:2: error: 'xmm' undeclared (first use in this function) point2d.c:91:2: error: 'ymm' undeclared (first use in this function) point2d.c:145:5: error: lvalue required as left operand of assignment gmake[1]: *** [OBJ.powerpc-ibm-aix7.1.0.0/point2d.o] Error 1 gmake[1]: Leaving directory `/gpfs/home/senko/dev/grass/grass7/lib/rst/interp_float' gmake: *** [default] Error 2 in db/driver/ogr: -bash-3.2$ gmake : && gcc -L/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/lib -L/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/lib -L/gpfs/home/senko/apps/lib -L/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/lib -o /gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/driver/db/ogr OBJ.powerpc-ibm-aix7.1.0.0/describe.o OBJ.powerpc-ibm-aix7.1.0.0/select.o OBJ.powerpc-ibm-aix7.1.0.0/execute.o OBJ.powerpc-ibm-aix7.1.0.0/main.o OBJ.powerpc-ibm-aix7.1.0.0/driver.o OBJ.powerpc-ibm-aix7.1.0.0/cursor.o OBJ.powerpc-ibm-aix7.1.0.0/db.o OBJ.powerpc-ibm-aix7.1.0.0/fetch.o OBJ.powerpc-ibm-aix7.1.0.0/error.o OBJ.powerpc-ibm-aix7.1.0.0/listtab.o -lgrass_dbmidriver.7.0.svn -lgrass_dbmibase.7.0.svn -lgrass_gis.7.0.svn -lgrass_datetime.7.0.svn -lz -liconv -lm -lgrass_dbstubs.7.0.svn -lgrass_dbmibase.7.0.svn -lgrass_gis.7.0.svn -lgrass_datetime.7.0.svn -lz -liconv -lm -lgrass_gis.7.0.svn -lgrass_datetime.7.0.svn -lz -liconv -lm -lgrass_gis.7.0.svn -lgrass_datetime.7.0.svn -lz -liconv -lm -lgrass_dbmibase.7.0.svn -lgrass_gis.7.0.svn -lgrass_datetime.7.0.svn -lz -liconv -lm -lgrass_gis.7.0.svn -lgrass_datetime.7.0.svn -lz -liconv -lm -L/gpfs/home/senko/apps/lib -lgdal -L/gpfs/home/senko/apps/lib -lproj -lz -lpthread -lm -lrt -ldl -liconv -lm ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__si_class_type_info ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__vmi_class_type_info ld: 0711-317 ERROR: Undefined symbol: __gxx_personality_v0 ld: 0711-317 ERROR: Undefined symbol: __cxa_pure_virtual ld: 0711-317 ERROR: Undefined symbol: vtable for __cxxabiv1::__class_type_info ld: 0711-317 ERROR: Undefined symbol: .operator delete(void*) ld: 0711-317 ERROR: Undefined symbol: std::basic_string, std::allocator >::_Rep::_S_empty_rep_storage ld: 0711-317 ERROR: Undefined symbol: .std::basic_string, std::allocator >::_Rep::_M_destroy(std::allocator const&) ld: 0711-317 ERROR: Undefined symbol: .std::basic_string, std::allocator >::~basic_string() ld: 0711-317 ERROR: Undefined symbol: .std::basic_string, std::allocator >::_M_leak_hard() ld: 0711-317 ERROR: Undefined symbol: .std::basic_string, std::allocator >::basic_string(char const*, std::allocator const&) ld: 0711-317 ERROR: Undefined symbol: .std::_Rb_tree_increment(std::_Rb_tree_node_base const*) ld: 0711-317 ERROR: Undefined symbol: .std::basic_string, std::allocator >::basic_string(char const*, std::allocator const&) ld: 0711-317 ERROR: Undefined symbol: .operator new(unsigned long) ld: 0711-317 ERROR: Undefined symbol: .std::basic_string, std::allocator >::~basic_string() ld: 0711-317 ERROR: Undefined symbol: .std::basic_string, std::allocator >::basic_string(std::basic_string, std::allocator > const&) ld: 0711-317 ERROR: Undefined symbol: .std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&) ld: 0711-317 ERROR: Undefined symbol: .__cxa_begin_catch ld: 0711-317 ERROR: Undefined symbol: .__cxa_rethrow ld: 0711-317 ERROR: Undefined symbol: .__cxa_end_catch ld: 0711-317 ERROR: Undefined symbol: .std::_Rb_tree_decrement(std::_Rb_tree_node_base*) ld: 0711-31
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Thu, Mar 28, 2013 at 9:33 AM, Ivan Barka wrote: > >> Markus Metz wrote: >> >> > >>> After renaming the variable "nearest" to "nearesta" in >> > >>> lib/gis/plot.c it >> > >>> worked. >> > > >> > > I did the same on AIX 5.3 but we need a solution in SVN... >> > >> > Fixed in r55563. > > > With r55565 I nave another error in lib/gis: > gcc -lstdc++ > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include > -D_FILE_OFFSET_BITS=64 -DGRASS_VERSION_DATE=\"'2013'\" > -DPACKAGE=\""grasslibs"\" > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -o > OBJ.powerpc-ibm-aix7.1.0.0/plot.o -c plot.c > plot.c:34:1: error: expected identifier or '(' before '<<' token Apparently you have local modifications that conflict with recent changes in svn. The easiest is to delete plot.c and svn up again, looking for any conflicts. Markus M > plot.c:36:1: error: expected identifier or '(' before '==' token > plot.c:38:1: error: expected identifier or '(' before '>>' token > plot.c:351:1: error: expected identifier or '(' before '<<' token > plot.c: In function 'G_plot_polygon': > plot.c:419:1: error: expected expression before '<<' token > plot.c:421:1: error: expected expression before '==' token > plot.c:423:1: error: expected expression before '>>' token > plot.c: In function 'G_plot_area': > plot.c:554:1: error: expected expression before '<<' token > plot.c:556:1: error: expected expression before '==' token > plot.c:558:1: error: expected expression before '>>' token > plot.c: At top level: > plot.c:636:12: error: static declaration of 'edge' follows non-static > declaration > plot.c:415:15: note: previous implicit declaration of 'edge' was here > gmake: *** [OBJ.powerpc-ibm-aix7.1.0.0/plot.o] Error 1 > > > I tried also gcc -ansi, but then: > > in tools/timer: > gcc -ansi -lstdc++ > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include > -DPACKAGE=\""grassmods"\" > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -o > OBJ.powerpc-ibm-aix7.1.0.0/main.o -c main.c > main.c: In function 'main': > main.c:22:20: error: storage size of 't' isn't known > gmake: *** [OBJ.powerpc-ibm-aix7.1.0.0/main.o] Error 1 > > > in lib/gis: > gcc -ansi -lstdc++ > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include > -DGRASS_VERSION_DATE=\"'2013'\" -DPACKAGE=\""grasslibs"\" > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -o > OBJ.powerpc-ibm-aix7.1.0.0/parser_interface.o -c parser_interface.c > parser_interface.c: In function 'print_escaped_for_xml': > parser_interface.c:54:5: error: unknown type name 'iconv_t' > parser_interface.c:57:18: error: 'iconv_t' undeclared (first use in this > function) > parser_interface.c:57:18: note: each undeclared identifier is reported only > once for each function it appears in > parser_interface.c: In function 'G__usage_xml': > parser_interface.c:118:28: error: 'CODESET' undeclared (first use in this > function) > gmake: *** [OBJ.powerpc-ibm-aix7.1.0.0/parser_interface.o] Error 1 > > I am not C programmer, thanks for any ideas. > > Ivan ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
> Markus Metz wrote: > > > >>> After renaming the variable "nearest" to "nearesta" in > lib/gis/plot.c it > > >>> worked. > > > > > > I did the same on AIX 5.3 but we need a solution in SVN... > > > > Fixed in r55563. > With r55565 I nave another error in lib/gis: gcc -lstdc++ -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -D_FILE_OFFSET_BITS=64 -DGRASS_VERSION_DATE=\"'2013'\" -DPACKAGE=\""grasslibs"\" -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -o OBJ.powerpc-ibm-aix7.1.0.0/plot.o -c plot.c plot.c:34:1: error: expected identifier or '(' before '<<' token plot.c:36:1: error: expected identifier or '(' before '==' token plot.c:38:1: error: expected identifier or '(' before '>>' token plot.c:351:1: error: expected identifier or '(' before '<<' token plot.c: In function 'G_plot_polygon': plot.c:419:1: error: expected expression before '<<' token plot.c:421:1: error: expected expression before '==' token plot.c:423:1: error: expected expression before '>>' token plot.c: In function 'G_plot_area': plot.c:554:1: error: expected expression before '<<' token plot.c:556:1: error: expected expression before '==' token plot.c:558:1: error: expected expression before '>>' token plot.c: At top level: plot.c:636:12: error: static declaration of 'edge' follows non-static declaration plot.c:415:15: note: previous implicit declaration of 'edge' was here gmake: *** [OBJ.powerpc-ibm-aix7.1.0.0/plot.o] Error 1 I tried also gcc -ansi, but then: in tools/timer: gcc -ansi -lstdc++ -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -DPACKAGE=\""grassmods"\" -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -o OBJ.powerpc-ibm-aix7.1.0.0/main.o -c main.c main.c: In function 'main': main.c:22:20: error: storage size of 't' isn't known gmake: *** [OBJ.powerpc-ibm-aix7.1.0.0/main.o] Error 1 in lib/gis: gcc -ansi -lstdc++ -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -DGRASS_VERSION_DATE=\"'2013'\" -DPACKAGE=\""grasslibs"\" -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -o OBJ.powerpc-ibm-aix7.1.0.0/parser_interface.o -c parser_interface.c parser_interface.c: In function 'print_escaped_for_xml': parser_interface.c:54:5: error: unknown type name 'iconv_t' parser_interface.c:57:18: error: 'iconv_t' undeclared (first use in this function) parser_interface.c:57:18: note: each undeclared identifier is reported only once for each function it appears in parser_interface.c: In function 'G__usage_xml': parser_interface.c:118:28: error: 'CODESET' undeclared (first use in this function) gmake: *** [OBJ.powerpc-ibm-aix7.1.0.0/parser_interface.o] Error 1 I am not C programmer, thanks for any ideas. Ivan ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Metz wrote: > >>> After renaming the variable "nearest" to "nearesta" in lib/gis/plot.c it > >>> worked. > > > > I did the same on AIX 5.3 but we need a solution in SVN... > > Fixed in r55563. It wasn't broken in the first place. A "fix" would be for someone to care about AIX enough to figure out which compiler switches are required to disable the non-standard declarations. Or, conversely, assuming that "gcc -ansi" does that, to figure out which switches are required to re-enable the relevant Unix-specific declarations. E.g. for gcc on Linux: -std=c99 -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=500 Alternatively: -std=c89 -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=500 -Dinline= will work --without-ffmpeg (the FFMPEG headers use C99/C++ comments). -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Wed, Mar 27, 2013 at 10:00 PM, Markus Neteler wrote: > On Wed, Mar 27, 2013 at 8:18 PM, Markus Metz > wrote: >> On Wed, Mar 27, 2013 at 2:50 PM, Ivan Barka wrote: >>> Hi devs, >>> >>> I tried again recent grass7 on AIX 7.1 with gcc. >>> >>> I had error in lib/gis: >>> >>> gcc -lstdc++ >>> -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include >>> -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include >>> -D_FILE_OFFSET_BITS=64 -DGRASS_VERSION_DATE=\"'2013'\" >>> -DPACKAGE=\""grasslibs"\" >>> -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include >>> -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -o >>> OBJ.powerpc-ibm-aix7.1.0.0/plot.o -c plot.c >>> plot.c:34:15: error: conflicting types for 'nearest' >>> /usr/opt/freeware/bin/../lib/gcc/powerpc-ibm-aix7.1.0.0/4.6.1/include-fixed/math.h:1397:21: >>> note: previous declaration of 'nearest' was here >>> gmake: *** [OBJ.powerpc-ibm-aix7.1.0.0/plot.o] Error 1 >>> >>> After renaming the variable "nearest" to "nearesta" in lib/gis/plot.c it >>> worked. > > I did the same on AIX 5.3 but we need a solution in SVN... Fixed in r55563. Markus M ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Wed, Mar 27, 2013 at 8:18 PM, Markus Metz wrote: > On Wed, Mar 27, 2013 at 2:50 PM, Ivan Barka wrote: >> Hi devs, >> >> I tried again recent grass7 on AIX 7.1 with gcc. >> >> I had error in lib/gis: >> >> gcc -lstdc++ >> -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include >> -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include >> -D_FILE_OFFSET_BITS=64 -DGRASS_VERSION_DATE=\"'2013'\" >> -DPACKAGE=\""grasslibs"\" >> -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include >> -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -o >> OBJ.powerpc-ibm-aix7.1.0.0/plot.o -c plot.c >> plot.c:34:15: error: conflicting types for 'nearest' >> /usr/opt/freeware/bin/../lib/gcc/powerpc-ibm-aix7.1.0.0/4.6.1/include-fixed/math.h:1397:21: >> note: previous declaration of 'nearest' was here >> gmake: *** [OBJ.powerpc-ibm-aix7.1.0.0/plot.o] Error 1 >> >> After renaming the variable "nearest" to "nearesta" in lib/gis/plot.c it >> worked. I did the same on AIX 5.3 but we need a solution in SVN... markusN ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Wed, Mar 27, 2013 at 2:50 PM, Ivan Barka wrote: > Hi devs, > > I tried again recent grass7 on AIX 7.1 with gcc. > > I had error in lib/gis: > > gcc -lstdc++ > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include > -D_FILE_OFFSET_BITS=64 -DGRASS_VERSION_DATE=\"'2013'\" > -DPACKAGE=\""grasslibs"\" > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include > -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -o > OBJ.powerpc-ibm-aix7.1.0.0/plot.o -c plot.c > plot.c:34:15: error: conflicting types for 'nearest' > /usr/opt/freeware/bin/../lib/gcc/powerpc-ibm-aix7.1.0.0/4.6.1/include-fixed/math.h:1397:21: > note: previous declaration of 'nearest' was here > gmake: *** [OBJ.powerpc-ibm-aix7.1.0.0/plot.o] Error 1 > > After renaming the variable "nearest" to "nearesta" in lib/gis/plot.c it > worked. > > But next strange error was in lib/vector/diglib: > > if [ "" != "" -a -f "".html ] ; then gmake html ; fi > ==TEST= > gmake test > gmake[1]: Entering directory > `/gpfs/home/senko/dev/grass/grass7/lib/vector/diglib' > diff OBJ.powerpc-ibm-aix7.1.0.0/test.tmp test64.ok > diff: Missing newline at the end of file > OBJ.powerpc-ibm-aix7.1.0.0/test.tmp. > diff: Missing newline at the end of file test64.ok. I think this error can be ignored if gmake continues to compile the remaining code. We can make diff happy by adding a newline to the end of the respective files. Strangely, this error has not been reported on any of the other platforms. After running gmake, all folders with errors are listed after -- Errors in: Are there additional errors? Markus M > ... > gmake[1]: *** [test] Error 1 > gmake[1]: Leaving directory > `/gpfs/home/senko/dev/grass/grass7/lib/vector/diglib' > gmake: *** [default] Error 2 > > Full output is in file diglib_gmake.txt > > Thanks for any advice. > > Ivan > > > 2013/3/23 Markus Neteler >> >> >> However, I think that this exercise is done since we cannot gain more >> on AIX 5.3. I hope that the code is AIX 7 ready at this point. >> >> I have documented the compilation steps here: >> >> http://grasswiki.osgeo.org/wiki/Talk:Compile_and_Install >> -> AIX compilation hints >>(configuration scripts for wget, PROJ4, GDAL, GRASS 6, and GRASS 7) >> >> http://grasswiki.osgeo.org/wiki/Compile_and_Install#AIX >> -> GRASS 7: Using the IBM xlc compiler >> -> GRASS 7: Using the GNU gcc compiler >> >> Ivan, could you please update from GRASS 7 SVN and try again? >> >> 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
Re: [GRASS-dev] compilation of grass on AIX 7.1
Hi devs, I tried again recent grass7 on AIX 7.1 with gcc. I had error in lib/gis: gcc -lstdc++ -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -D_FILE_OFFSET_BITS=64 -DGRASS_VERSION_DATE=\"'2013'\" -DPACKAGE=\""grasslibs"\" -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -I/gpfs/home/senko/dev/grass/grass7/dist.powerpc-ibm-aix7.1.0.0/include -o OBJ.powerpc-ibm-aix7.1.0.0/plot.o -c plot.c plot.c:34:15: error: conflicting types for 'nearest' /usr/opt/freeware/bin/../lib/gcc/powerpc-ibm-aix7.1.0.0/4.6.1/include-fixed/math.h:1397:21: note: previous declaration of 'nearest' was here gmake: *** [OBJ.powerpc-ibm-aix7.1.0.0/plot.o] Error 1 After renaming the variable "nearest" to "nearesta" in lib/gis/plot.c it worked. But next strange error was in lib/vector/diglib: if [ "" != "" -a -f "".html ] ; then gmake html ; fi ==TEST= gmake test gmake[1]: Entering directory `/gpfs/home/senko/dev/grass/grass7/lib/vector/diglib' diff OBJ.powerpc-ibm-aix7.1.0.0/test.tmp test64.ok diff: Missing newline at the end of file OBJ.powerpc-ibm-aix7.1.0.0/test.tmp. diff: Missing newline at the end of file test64.ok. ... gmake[1]: *** [test] Error 1 gmake[1]: Leaving directory `/gpfs/home/senko/dev/grass/grass7/lib/vector/diglib' gmake: *** [default] Error 2 Full output is in file diglib_gmake.txt Thanks for any advice. Ivan 2013/3/23 Markus Neteler > > However, I think that this exercise is done since we cannot gain more > on AIX 5.3. I hope that the code is AIX 7 ready at this point. > > I have documented the compilation steps here: > > http://grasswiki.osgeo.org/wiki/Talk:Compile_and_Install > -> AIX compilation hints >(configuration scripts for wget, PROJ4, GDAL, GRASS 6, and GRASS 7) > > http://grasswiki.osgeo.org/wiki/Compile_and_Install#AIX > -> GRASS 7: Using the IBM xlc compiler > -> GRASS 7: Using the GNU gcc compiler > > Ivan, could you please update from GRASS 7 SVN and try again? > > Markus > if [ "" != "" -a -f "".html ] ; then gmake html ; fi ==TEST= gmake test gmake[1]: Entering directory `/gpfs/home/senko/dev/grass/grass7/lib/vector/diglib' diff OBJ.powerpc-ibm-aix7.1.0.0/test.tmp test64.ok diff: Missing newline at the end of file OBJ.powerpc-ibm-aix7.1.0.0/test.tmp. diff: Missing newline at the end of file test64.ok. 1c1 < double ÿÿïÿdouble Ú|a2Uõ¿double double double double Ú|a2Uõ?double ÿÿïfloat ÿÿÿfloat ©ª¿float float float float ©ª?float ÿÿoff_t off_të2¤øoff_toff_tÍ[off_t ÿÿÿlong longë2¤ølonglongÍ[long ÿÿÿint int ë2¤øint int Í[int ÿÿÿshort short ÇÏshort short 90short ÿchar char char char {char double ÿïÿÿdouble ¿õU2a|Údouble double double double ?õU2a|Údouble ïÿÿfloat ÿÿÿfloat ¿ª©float float float float ?ª©float ÿÿoff_t off_tø¤2ëoff_toff_t[Íoff_t ÿÿÿlong longø¤2ëlonglong[Ílong ÿÿÿint int ø¤2ëint int [Íint ÿÿÿshort short ÏÇshort short 09short ÿchar char char char {char --- > double ÿÿïÿdouble Ú|a2Uõ¿double double double > double Ú|a2Uõ?double ÿÿïfloat ÿÿÿfloat ©ª¿float > float float float ©ª?float > ÿÿoff_t off_të2¤øoff_toff_t > Í[off_tÿÿÿlong longë2¤ølong > longÍ[longÿÿÿint int ë2¤øint > int Í[int ÿÿÿshort short ÇÏshort > short 90short ÿchar char char > char {char double ÿïÿÿdouble > ¿õU2a|Údouble double double double > ?õU2a|Údouble ïÿÿfloat ÿÿÿfloat ¿ª©float float > float float ?ª©float ÿÿoff_t > off_tø¤2ëoff_toff_t[Íoff_t > ÿÿÿlong longø¤2ëlonglong > [Ílongÿÿÿint int ø¤2ëint int > [Íint ÿÿÿshort short ÏÇshort short > 09short ÿchar
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Sat, Mar 23, 2013 at 1:47 AM, Glynn Clements wrote: ... > Grass.make hard-codes: > > # lexical analyzer and default options > LFLAGS = -s ... > We should remove that flag. ... > r55504 removes the -s from LFLAGS and adds error rules to sqlp.l and > mapcalc.l. ... I fetched the latest SVN version , now compilation goes on properly (after having locally patched lib/gis/plot.c for the nearest() name collision). Result: "sqlp.yy.c" 2732 lines, 69277 characters # include # include # include # include # define U(x) ((x)&0377) # define NCH 4096 # define NLSTATE yyprevious=YYNEWLINE # define BEGIN yybgin = yysvec + 1 + # define INITIAL 0 # define YYLERR yysvec # define YYSTATE (yyestate-yysvec-1) # define YYOPTIM 1 # define YYLMAX 2000 ... This looks now fine, thanks for the flag cleanup. The rest of the compilation fails due to the outdated and hence incomplete Python installation on the AIX cluster I am testing on: /afs/cluster/myuser/private/software/grass-7.0.svn_src_snapshot_2013_03_22/lib/db/sqlp> make if [ "sql" != "" -a -f "sql".html ] ; then make html ; fi make[1]: Entering directory `/afs/cluster/myuser/private/software/grass-7.0.svn_src_snapshot_2013_03_22/lib/db/sqlp' VERSION_NUMBER=7.0.svn /afs/cluster/myuser/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/tools/g.html2man.py /afs/cluster/myuser/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/docs/html/sql.html /afs/cluster/myuser/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/docs/man/man1/sql.1 Traceback (most recent call last): File "/afs/cluster/myuser/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/tools/g.html2man.py", line 4, in ? from html import HTMLParser, HTMLParseError File "/afs/cluster/myuser/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/tools/html.py", line 13, in ? single = frozenset(single) NameError: name 'frozenset' is not defined make[1]: *** [/afs/cluster/myuser/private/software/grass-7.0.svn_src_snapshot_2013_03_22/dist.powerpc-ibm-aix5.3.0.0/docs/man/man1/sql.1] Error 1 make[1]: Leaving directory `/afs/cluster/myuser/private/software/grass-7.0.svn_src_snapshot_2013_03_22/lib/db/sqlp' make: *** [lib] Error 2 python Python 2.3.4 (#1, Aug 9 2005, 15:34:25) [C] on aix5 There is probably not much we can do about it since this Python version is far from the minimum requirements. However, I think that this exercise is done since we cannot gain more on AIX 5.3. I hope that the code is AIX 7 ready at this point. I have documented the compilation steps here: http://grasswiki.osgeo.org/wiki/Talk:Compile_and_Install -> AIX compilation hints (configuration scripts for wget, PROJ4, GDAL, GRASS 6, and GRASS 7) http://grasswiki.osgeo.org/wiki/Compile_and_Install#AIX -> GRASS 7: Using the IBM xlc compiler -> GRASS 7: Using the GNU gcc compiler Ivan, could you please update from GRASS 7 SVN and try again? Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > >> /afs/cluster/myuser/private/software/grass-7.0.svn/lib/db/sqlp> make > >> sqlp.yy.c:1: error: expected identifier or '(' before numeric constant > > > > You'll need to post your sqlp.yy.c file; it's generated by yacc/bison, Oops; *.yy.c is generated by lex/flex, not bison. > > so there's no guarantee that yours is the same as anyone else's. > > OK - file attached: gcc_sqlp.yy.c.gz Line 1: 0: (Warning) Unknown option s Grass.make hard-codes: # lexical analyzer and default options LFLAGS = -s GNU flex has a -s switch: -s, --nodefault suppress default rule to ECHO unmatched text but that's not specified by POSIX: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/lex.html We should remove that flag. But we should also fix the lex files: sqlp.l:209: warning, -s option given but default rule can be matched mapcalc.l:216: warning, -s option given but default rule can be matched This indicates that there are certain character sequences which don't match any token. Without -s, flex will add a rule to echo unmatched characters to stdout, which is undesirable. r55504 removes the -s from LFLAGS and adds error rules to sqlp.l and mapcalc.l. > > It's possible that AIX' yacc generates code which requires xlc. > > After distclean I have reconfigured and recompiled with xlc but this leads to: > "sqlp.yy.c", line 1.1: 1506-046 (S) Syntax error. Yep; the generated file won't work with any C compiler. This is partly the fault of AIX' lex for writing the error message to stdout (which is where the generated C source code is written when -t is used). > However, the resulting files are identical: > diff -u gcc_sqlp.yy.c aix_sqlp.yy.c > -> no difference lex doesn't know which C compiler you will be using. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Fri, Mar 22, 2013 at 7:01 PM, Glynn Clements wrote: > > Markus Neteler wrote: > >> /afs/cluster/myuser/private/software/grass-7.0.svn/lib/db/sqlp> make >> sqlp.yy.c:1: error: expected identifier or '(' before numeric constant > > You'll need to post your sqlp.yy.c file; it's generated by yacc/bison, > so there's no guarantee that yours is the same as anyone else's. OK - file attached: gcc_sqlp.yy.c.gz > Also: what is the value of YACC in Platform.make? Autoconf prefers > "bison -y" then "byacc" then "yacc". grep YACC Platform.make YACC= yacc Unfortunately no bison nor byacc on that machine... > It's possible that AIX' yacc generates code which requires xlc. After distclean I have reconfigured and recompiled with xlc but this leads to: /afs/cluster/myuser/private/software/grass-7.0.svn/lib/db/sqlp> make xlc_r -DANSI -I/afs/cluster/software/vni/CTT6.0/include -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -DPACKAGE=\""grasslibs"\" -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -o OBJ.powerpc-ibm-aix5.3.0.0/sqlp.tab.o -c sqlp.tab.c xlc_r -DANSI -I/afs/cluster/software/vni/CTT6.0/include -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -DPACKAGE=\""grasslibs"\" -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -o OBJ.powerpc-ibm-aix5.3.0.0/sqlp.yy.o -c sqlp.yy.c "sqlp.yy.c", line 1.1: 1506-046 (S) Syntax error. "sqlp.yy.c", line 1.5: 1506-166 (S) Definition of function Warning requires parentheses. "/usr/include/stdio.h", line 161.3: 1506-273 (E) Missing type in declaration of FILE. "/usr/include/stdio.h", line 167.8: 1506-166 (S) Definition of function FILE requires parentheses. "/usr/include/stdio.h", line 167.17: 1506-276 (S) Syntax error: possible missing '{'? "/usr/include/sys/inttypes.h", line 59.9: 1506-045 (S) Undeclared identifier intmax_t. "/usr/include/sys/inttypes.h", line 61.3: 1506-273 (E) Missing type in declaration of imaxdiv_t. "/usr/include/sys/inttypes.h", line 64.8: 1506-166 (S) Definition of function intmax_t requires parentheses. "/usr/include/sys/inttypes.h", line 64.17: 1506-276 (S) Syntax error: possible missing '{'? "/usr/include/sys/inttypes.h", line 68.30: 1506-045 (S) Undeclared identifier __nptr. "/usr/include/sys/inttypes.h", line 68.38: 1506-045 (S) Undeclared identifier __endptr. "/usr/include/sys/inttypes.h", line 68.48: 1506-045 (S) Undeclared identifier __base. "/usr/include/sys/inttypes.h", line 89.8: 1506-166 (S) Definition of function intmax_t requires parentheses. "/usr/include/sys/inttypes.h", line 89.17: 1506-276 (S) Syntax error: possible missing '{'? "/usr/include/sys/types.h", line 330.3: 1506-273 (E) Missing type in declaration of sigset_t. "/usr/include/sys/types.h", line 342.9: 1506-046 (S) Syntax error. "/usr/include/sys/types.h", line 377.9: 1506-046 (S) Syntax error. "/usr/include/sys/vm_types.h", line 36.9: 1506-166 (S) Definition of function ulong_t requires parentheses. "/usr/include/sys/vm_types.h", line 36.25: 1506-276 (S) Syntax error: possible missing '{'? "/usr/include/sys/vm_types.h", line 142.9: 1506-045 (S) Undeclared identifier vmhandle_t. "/usr/include/sys/vm_types.h", line 143.9: 1506-045 (S) Undeclared identifier caddr_t. "/usr/include/sys/vm_types.h", line 148.3: 1506-273 (E) Missing type in declaration of vmaddr_t. "/usr/include/sys/vm_types.h", line 158.9: 1506-046 (S) Syntax error. "/usr/include/sys/vm_types.h", line 250.9: 1506-166 (S) Definition of function vmhandle_t requires parentheses. "/usr/include/sys/vm_types.h", line 250.25: 1506-276 (S) Syntax error: possible missing '{'? "/usr/include/sys/m_types.h", line 52.27: 1506-275 (S) Unexpected text iar encountered. "/usr/include/sys/m_types.h", line 52.9: 1506-045 (S) Undeclared identifier ulong_t. "/usr/include/sys/m_types.h", line 53.27: 1506-275 (S) Unexpected text stack encountered. "/usr/include/sys/m_types.h", line 54.27: 1506-275 (S) Unexpected text toc encountered. "/usr/include/sys/m_types.h", line 55.27: 1506-275 (S) Unexpected text cr encountered. "/usr/include/sys/m_types.h", line 56.27: 1506-275 (S) Unexpected text intpri encountered. "/usr/include/sys/m_types.h", line 57.27: 1506-277 (S) Syntax error: possible missing ';' or ','? "/usr/include/sys/m_types.h", line 67.3: 1506-273 (E) Missing type in declaration of label_t. "/usr/include/sys/m_types.h", line 69.9: 1506-166 (S) Definition of function int32long64_t requires parentheses. make: *** [OBJ.powerpc-ibm-aix5.3.0.0/sqlp.yy.o] Error 1 However, the resulting files are identica
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > /afs/cluster/myuser/private/software/grass-7.0.svn/lib/db/sqlp> make > sqlp.yy.c:1: error: expected identifier or '(' before numeric constant You'll need to post your sqlp.yy.c file; it's generated by yacc/bison, so there's no guarantee that yours is the same as anyone else's. Also: what is the value of YACC in Platform.make? Autoconf prefers "bison -y" then "byacc" then "yacc". It's possible that AIX' yacc generates code which requires xlc. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Fri, Mar 22, 2013 at 9:30 AM, Markus Metz wrote: > On Fri, Mar 22, 2013 at 5:28 AM, Glynn Clements >> Markus Neteler wrote: >>> grass-7.0.svn/lib/datetime> make >>> o >>> /afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/lib/libgrass_datetime.7.0.svn.so >> >>> make: o: Command not found >> >> This suggests that SHLIB_LD is empty, so the command: ... >> And indeed, the *aix* section in SC_CONFIG_CFLAGS doesn't define >> SHLIB_LD, so you'll need to use --disable-shared. > > You could also try to set > > SHLIB_LD="${CC} -shared" > > in aclocal.m4 or patch it into configure in the aix section. I tried but no improvement... So I am using --disable-shared for now. Next issue: /afs/cluster/myuser/private/software/grass-7.0.svn/lib/db/sqlp> make gcc -DANSI -I/afs/cluster/software/vni/CTT6.0/include -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -DPACKAGE=\""grasslibs"\" -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -o OBJ.powerpc-ibm-aix5.3.0.0/sqlp.tab.o -c sqlp.tab.c gcc -DANSI -I/afs/cluster/software/vni/CTT6.0/include -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -DPACKAGE=\""grasslibs"\" -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -o OBJ.powerpc-ibm-aix5.3.0.0/sqlp.yy.o -c sqlp.yy.c sqlp.yy.c:1: error: expected identifier or '(' before numeric constant In file included from sqlp.yy.c:2: /opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.0/include/stdio.h:205: error: expected declaration specifiers or '...' before '__gnuc_va_list' /opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.0/include/stdio.h:206: error: expected declaration specifiers or '...' before '__gnuc_va_list' /opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.0/include/stdio.h:207: error: expected declaration specifiers or '...' before '__gnuc_va_list' In file included from sqlp.yy.c:2: /opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.0/include/stdio.h:295: error: expected declaration specifiers or '...' before '__gnuc_va_list' /opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.0/include/stdio.h:296: error: expected declaration specifiers or '...' before '__gnuc_va_list' /opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.0/include/stdio.h:297: error: expected declaration specifiers or '...' before '__gnuc_va_list' /opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.0/include/stdio.h:299: error: expected declaration specifiers or '...' before '__gnuc_va_list' make: *** [OBJ.powerpc-ibm-aix5.3.0.0/sqlp.yy.o] Error 1 Suggestions welcome again. markusN ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Fri, Mar 22, 2013 at 5:28 AM, Glynn Clements wrote: > > Markus Neteler wrote: >> >> grass-7.0.svn/lib/datetime> make >> o >> /afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/lib/libgrass_datetime.7.0.svn.so > >> make: o: Command not found > > This suggests that SHLIB_LD is empty, so the command: > > $(SHLIB_LD) -o $@ $(LDFLAGS) $^ $(LIBES) $(EXTRA_LIBS) $(MATHLIB) > > reduces to: > > -o $@ $(LDFLAGS) $^ $(LIBES) $(EXTRA_LIBS) $(MATHLIB) > > A leading dash is interpreted by make as a flag which causes errors to > be ignored. So it interprets the "o" as the name of the program. > > And indeed, the *aix* section in SC_CONFIG_CFLAGS doesn't define > SHLIB_LD, so you'll need to use --disable-shared. You could also try to set SHLIB_LD="${CC} -shared" in aclocal.m4 or patch it into configure in the aix section. Markus M ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > > I gained back access to an older AIX 5.3 system and try to compile > > GRASS 7.svn: > > "plot.c", line 34.15: 1506-343 (S) Redeclaration of nearest differs > > from previous declaration on line 941 of "/usr/include/math.h". > > Meanwhile I'll try the gcc compiler. The issue is with the standard C library, so changing the compiler probably won't help. > Happens as well with gcc. I locally renamed the variable (yet to be fixed > properly in SVN). First, check: > line 941 of "/usr/include/math.h" It may be that the declaration is protected by a #ifdef and can be "deactivated" with the appropriate switch. > Next problem: > > grass-7.0.svn/lib/datetime> make > o > /afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/lib/libgrass_datetime.7.0.svn.so > make: o: Command not found This suggests that SHLIB_LD is empty, so the command: $(SHLIB_LD) -o $@ $(LDFLAGS) $^ $(LIBES) $(EXTRA_LIBS) $(MATHLIB) reduces to: -o $@ $(LDFLAGS) $^ $(LIBES) $(EXTRA_LIBS) $(MATHLIB) A leading dash is interpreted by make as a flag which causes errors to be ignored. So it interprets the "o" as the name of the program. And indeed, the *aix* section in SC_CONFIG_CFLAGS doesn't define SHLIB_LD, so you'll need to use --disable-shared. Ideally, AC_MSG_ERROR should be called if shared libraries are requested for a platform which doesn't have support for them. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Fri, Mar 22, 2013 at 12:11 AM, Markus Neteler wrote: > Hi, > > I gained back access to an older AIX 5.3 system and try to compile > GRASS 7.svn: > > /afs/cluster/myuser/private/software/grass-7.0.svn/lib/gis> make > xlc_r -DANSI -I/afs/cluster/software/vni/CTT6.0/include > -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include > -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include > -DGRASS_VERSION_DATE=\"'2013'\" -DPACKAGE=\""grasslibs"\" > -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include > -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include > -o OBJ.powerpc-ibm-aix5.3.0.0/plot.o -c plot.c > "plot.c", line 34.15: 1506-343 (S) Redeclaration of nearest differs > from previous declaration on line 941 of "/usr/include/math.h". > "plot.c", line 34.15: 1506-376 (I) Redeclaration of nearest has a > different number of fixed parameters than the previous declaration. > make: *** [OBJ.powerpc-ibm-aix5.3.0.0/plot.o] Error 1 > > (Note the AIX xlc compiler) > > Meanwhile I'll try the gcc compiler. Happens as well with gcc. I locally renamed the variable (yet to be fixed properly in SVN). Next problem: grass-7.0.svn/lib/datetime> make o /afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/lib/libgrass_datetime.7.0.svn.so -L/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/lib -L/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/lib -L/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/lib OBJ.powerpc-ibm-aix5.3.0.0/between.o OBJ.powerpc-ibm-aix5.3.0.0/change.o OBJ.powerpc-ibm-aix5.3.0.0/copy.o OBJ.powerpc-ibm-aix5.3.0.0/diff.o OBJ.powerpc-ibm-aix5.3.0.0/error.o OBJ.powerpc-ibm-aix5.3.0.0/format.o OBJ.powerpc-ibm-aix5.3.0.0/incr1.o OBJ.powerpc-ibm-aix5.3.0.0/incr2.o OBJ.powerpc-ibm-aix5.3.0.0/incr3.o OBJ.powerpc-ibm-aix5.3.0.0/local.o OBJ.powerpc-ibm-aix5.3.0.0/misc.o OBJ.powerpc-ibm-aix5.3.0.0/same.o OBJ.powerpc-ibm-aix5.3.0.0/scan.o OBJ.powerpc-ibm-aix5.3.0.0/sign.o OBJ.powerpc-ibm-aix5.3.0.0/type.o OBJ.powerpc-ibm-aix5.3.0.0/tz1.o OBJ.powerpc-ibm-aix5.3.0.0/tz2.o OBJ.powerpc-ibm-aix5.3.0.0/values.o -lm make: o: Command not found We had this also with MingW, the fix was http://trac.osgeo.org/grass/changeset/54352 Actually I don't see how to fix the junk char (or whatever causes this "o"). markusN ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Hi, I gained back access to an older AIX 5.3 system and try to compile GRASS 7.svn: /afs/cluster/myuser/private/software/grass-7.0.svn/lib/gis> make xlc_r -DANSI -I/afs/cluster/software/vni/CTT6.0/include -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -DGRASS_VERSION_DATE=\"'2013'\" -DPACKAGE=\""grasslibs"\" -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -I/afs/cluster/myuser/private/software/grass-7.0.svn/dist.powerpc-ibm-aix5.3.0.0/include -o OBJ.powerpc-ibm-aix5.3.0.0/plot.o -c plot.c "plot.c", line 34.15: 1506-343 (S) Redeclaration of nearest differs from previous declaration on line 941 of "/usr/include/math.h". "plot.c", line 34.15: 1506-376 (I) Redeclaration of nearest has a different number of fixed parameters than the previous declaration. make: *** [OBJ.powerpc-ibm-aix5.3.0.0/plot.o] Error 1 (Note the AIX xlc compiler) Meanwhile I'll try the gcc compiler. markusN ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Thu, Mar 21, 2013 at 9:23 PM, Glynn Clements wrote: > > Regarding r55461: > > MATH_LIBS="$MATH_LIBS -lbsd" > > What's the point of this? That variable isn't substituted. Right. That code was copied straight from G6. The intention was to provide at least rudimentary support for AIX. With r55485 I have removed the reference to MATH_LIBS and at the same time added support for NetBSD, but that is work in progress. ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Regarding r55461: MATH_LIBS="$MATH_LIBS -lbsd" What's the point of this? That variable isn't substituted. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Wed, Mar 20, 2013 at 11:50 AM, Markus Metz wrote: ... > GNU make 3.81 and GNU install are available in the official IBM AIX > toolbox as well as third-party AIX software repositories. See also: http://grasswiki.osgeo.org/wiki/Compile_and_Install#AIX (...Markus M has added fresh notes) markusN ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Wed, Mar 20, 2013 at 11:08 AM, Markus Metz wrote: > On Wed, Mar 20, 2013 at 10:17 AM, Ivan Barka wrote: >> Hi devs, >> >> so now I can configure G7 (revision 55464) on AIX 7.1 by command: >> >> export PATH=$PATH:$HOME/apps/bin >> CFLAGS="-lstdc++" ./configure --prefix=$HOME/apps >> --with-proj-includes=$HOME/apps/include --with-proj-libs=$HOME/apps/lib >> --with-proj-share=$HOME/apps/share --with-gdal=$HOME/apps/bin/gdal-config >> --with-libs=$HOME/apps/lib --without-tiff --without-png --without-opengl >> --without-tcltk --without-fftw --without-jpeg --enable-largefile >> --without-postgres >> >> output is in the attached file g7_configure_output.txt >> >> Trying to compile g7 by "gmake" I get errors everywhere - see >> g7_gmake_output.txt >> The first one reports that install-sh can not be executed, I dont know >> why... > > To be precise, install-sh can not execute line 239: > "$doit" "$instcmd" "$src" "$dsttmp" && > > On Linux, /usr/bin/install is used instead of install-sh, on Solaris > /usr/bin/ginstall from GNU coreutils is used. It seems that you have > the GNU C compiler on your AIX system, maybe you can also install > ginstall? > >> >> gmake on this machine is GNU Make 3.80 > > According to the requirements, this is too old. Version 3.81 released > 2006 is the minimum required version. Can you update gmake? GNU make 3.81 and GNU install are available in the official IBM AIX toolbox as well as third-party AIX software repositories. HTH, Markus M > >> make is probably native AIX make, but I really do not know its version, make >> -v does not work, nothing about it in man page. Trying to run make I get >> only errors - see g7_make_output.txt > > On other UNIX-like systems (FreeBSD, Solaris) I found that make does > not work with GRASS 7, only gmake (GNU make) works with GRASS 7. > > Markus M > >> >> thanks for any help >> >> Ivan >> >> >> >> >> 2013/3/18 Markus Metz >>> >>> On Sun, Mar 17, 2013 at 11:08 PM, Glynn Clements >>> wrote: >>> > >>> > Markus Neteler wrote: >>> > >>> >> > r39731 re-wrote it to use $host. Rather than trying to figure out the >>> >> > correct $host value for each possible system (few of which were >>> >> > available for testing), the sections for "unused" systems were >>> >> > removed, with the intent that they would be added if and when someone >>> >> > with access to such a system was able to report the correct $host >>> >> > value and which compiler/linker switches actually worked on that >>> >> > system. >>> >> >>> >> ... your help would be needed to re-enable AIX support. >>> > >>> > The main thing that's needed is someone with: >>> > >>> > 1. Knowledge of the correct $host string for that platform (this can >>> > be obtained by running the config.guess script). >>> >>> Or simply running ./configure and report the error. Users trying to >>> compile GRASS are, according to the official documentation, advised to >>> run >>> ./configure >>> make >>> make install >>> >>> > >>> > 2. Knowledge of which compiler and linker switches are required to >>> > build shared libraries on that platform. >>> > >>> > 3. Access to the platform, for testing. >>> > >>> > Each new platform needs to define the following variables: >>> > >>> > LDFLAGS >>> > LD_SEARCH_FLAGS >>> > LD_LIBRARY_PATH_VAR >>> > >>> > SHLIB_CFLAGS >>> > SHLIB_LD >>> > SHLIB_LD_FLAGS >>> > SHLIB_SUFFIX >>> > >>> > STLIB_LD >>> > STLIB_SUFFIX >>> > >>> > STLIB_LD and STLIB_SUFFIX have sensible defaults (building static >>> > libraries tends to be the same on all systems). The others only really >>> > matter for building shared libraries (LDFLAGS is also used for >>> > building executables, but it can normally be empty). >>> > >>> >>> I would like to see support for at least FreeBSD (BSD is the >>> predecessor of nearly all current operating systems), IBM AIX (a >>> commercial unix-based OS), and HP-UX (another commercial unix-based >>> OS). If we can adjust the G7 configure script to compile G7 on IBM AIX >>> and HP-UX, we would be to my knowledge the only GIS package available >>> for these high-performance operating systems, and I assume that we >>> want G7 to be available on commercial high-performance operating >>> systems. >>> >>> Markus M >>> ___ >>> 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
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Wed, Mar 20, 2013 at 10:17 AM, Ivan Barka wrote: > Hi devs, > > so now I can configure G7 (revision 55464) on AIX 7.1 by command: > > export PATH=$PATH:$HOME/apps/bin > CFLAGS="-lstdc++" ./configure --prefix=$HOME/apps > --with-proj-includes=$HOME/apps/include --with-proj-libs=$HOME/apps/lib > --with-proj-share=$HOME/apps/share --with-gdal=$HOME/apps/bin/gdal-config > --with-libs=$HOME/apps/lib --without-tiff --without-png --without-opengl > --without-tcltk --without-fftw --without-jpeg --enable-largefile > --without-postgres > > output is in the attached file g7_configure_output.txt > > Trying to compile g7 by "gmake" I get errors everywhere - see > g7_gmake_output.txt > The first one reports that install-sh can not be executed, I dont know > why... To be precise, install-sh can not execute line 239: "$doit" "$instcmd" "$src" "$dsttmp" && On Linux, /usr/bin/install is used instead of install-sh, on Solaris /usr/bin/ginstall from GNU coreutils is used. It seems that you have the GNU C compiler on your AIX system, maybe you can also install ginstall? > > gmake on this machine is GNU Make 3.80 According to the requirements, this is too old. Version 3.81 released 2006 is the minimum required version. Can you update gmake? > make is probably native AIX make, but I really do not know its version, make > -v does not work, nothing about it in man page. Trying to run make I get > only errors - see g7_make_output.txt On other UNIX-like systems (FreeBSD, Solaris) I found that make does not work with GRASS 7, only gmake (GNU make) works with GRASS 7. Markus M > > thanks for any help > > Ivan > > > > > 2013/3/18 Markus Metz >> >> On Sun, Mar 17, 2013 at 11:08 PM, Glynn Clements >> wrote: >> > >> > Markus Neteler wrote: >> > >> >> > r39731 re-wrote it to use $host. Rather than trying to figure out the >> >> > correct $host value for each possible system (few of which were >> >> > available for testing), the sections for "unused" systems were >> >> > removed, with the intent that they would be added if and when someone >> >> > with access to such a system was able to report the correct $host >> >> > value and which compiler/linker switches actually worked on that >> >> > system. >> >> >> >> ... your help would be needed to re-enable AIX support. >> > >> > The main thing that's needed is someone with: >> > >> > 1. Knowledge of the correct $host string for that platform (this can >> > be obtained by running the config.guess script). >> >> Or simply running ./configure and report the error. Users trying to >> compile GRASS are, according to the official documentation, advised to >> run >> ./configure >> make >> make install >> >> > >> > 2. Knowledge of which compiler and linker switches are required to >> > build shared libraries on that platform. >> > >> > 3. Access to the platform, for testing. >> > >> > Each new platform needs to define the following variables: >> > >> > LDFLAGS >> > LD_SEARCH_FLAGS >> > LD_LIBRARY_PATH_VAR >> > >> > SHLIB_CFLAGS >> > SHLIB_LD >> > SHLIB_LD_FLAGS >> > SHLIB_SUFFIX >> > >> > STLIB_LD >> > STLIB_SUFFIX >> > >> > STLIB_LD and STLIB_SUFFIX have sensible defaults (building static >> > libraries tends to be the same on all systems). The others only really >> > matter for building shared libraries (LDFLAGS is also used for >> > building executables, but it can normally be empty). >> > >> >> I would like to see support for at least FreeBSD (BSD is the >> predecessor of nearly all current operating systems), IBM AIX (a >> commercial unix-based OS), and HP-UX (another commercial unix-based >> OS). If we can adjust the G7 configure script to compile G7 on IBM AIX >> and HP-UX, we would be to my knowledge the only GIS package available >> for these high-performance operating systems, and I assume that we >> want G7 to be available on commercial high-performance operating >> systems. >> >> Markus M >> ___ >> 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
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Sun, Mar 17, 2013 at 11:08 PM, Glynn Clements wrote: > > Markus Neteler wrote: > >> > r39731 re-wrote it to use $host. Rather than trying to figure out the >> > correct $host value for each possible system (few of which were >> > available for testing), the sections for "unused" systems were >> > removed, with the intent that they would be added if and when someone >> > with access to such a system was able to report the correct $host >> > value and which compiler/linker switches actually worked on that >> > system. >> >> ... your help would be needed to re-enable AIX support. > > The main thing that's needed is someone with: > > 1. Knowledge of the correct $host string for that platform (this can > be obtained by running the config.guess script). Or simply running ./configure and report the error. Users trying to compile GRASS are, according to the official documentation, advised to run ./configure make make install > > 2. Knowledge of which compiler and linker switches are required to > build shared libraries on that platform. > > 3. Access to the platform, for testing. > > Each new platform needs to define the following variables: > > LDFLAGS > LD_SEARCH_FLAGS > LD_LIBRARY_PATH_VAR > > SHLIB_CFLAGS > SHLIB_LD > SHLIB_LD_FLAGS > SHLIB_SUFFIX > > STLIB_LD > STLIB_SUFFIX > > STLIB_LD and STLIB_SUFFIX have sensible defaults (building static > libraries tends to be the same on all systems). The others only really > matter for building shared libraries (LDFLAGS is also used for > building executables, but it can normally be empty). > I would like to see support for at least FreeBSD (BSD is the predecessor of nearly all current operating systems), IBM AIX (a commercial unix-based OS), and HP-UX (another commercial unix-based OS). If we can adjust the G7 configure script to compile G7 on IBM AIX and HP-UX, we would be to my knowledge the only GIS package available for these high-performance operating systems, and I assume that we want G7 to be available on commercial high-performance operating systems. Markus M ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > > r39731 re-wrote it to use $host. Rather than trying to figure out the > > correct $host value for each possible system (few of which were > > available for testing), the sections for "unused" systems were > > removed, with the intent that they would be added if and when someone > > with access to such a system was able to report the correct $host > > value and which compiler/linker switches actually worked on that > > system. > > ... your help would be needed to re-enable AIX support. The main thing that's needed is someone with: 1. Knowledge of the correct $host string for that platform (this can be obtained by running the config.guess script). 2. Knowledge of which compiler and linker switches are required to build shared libraries on that platform. 3. Access to the platform, for testing. Each new platform needs to define the following variables: LDFLAGS LD_SEARCH_FLAGS LD_LIBRARY_PATH_VAR SHLIB_CFLAGS SHLIB_LD SHLIB_LD_FLAGS SHLIB_SUFFIX STLIB_LD STLIB_SUFFIX STLIB_LD and STLIB_SUFFIX have sensible defaults (building static libraries tends to be the same on all systems). The others only really matter for building shared libraries (LDFLAGS is also used for building executables, but it can normally be empty). -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Ivan, it might help to get GNU make: https://svn.osgeo.org/grass/grass/trunk/REQUIREMENTS.html -> GNU make is recommended (at least version 3.81) http://www.gnu.org/software/make/make.html That will likely behave better. Furthermore: On Fri, Mar 15, 2013 at 6:02 PM, Glynn Clements wrote: ... > r39731 re-wrote it to use $host. Rather than trying to figure out the > correct $host value for each possible system (few of which were > available for testing), the sections for "unused" systems were > removed, with the intent that they would be added if and when someone > with access to such a system was able to report the correct $host > value and which compiler/linker switches actually worked on that > system. ... your help would be needed to re-enable AIX support. Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > wrote: > ... > > The OS detection scripts are actually quite different. > > I looked into config.guess and config.sub which I thought would do this > job. The detection scripts (config.guess and config.sub) are provided by autoconf. The SC_CONFIG_CFLAGS macro which sets the variables related to compilation and linking is part of GRASS. The 6.x version of SC_CONFIG_CFLAGS doesn't actually use the results of the detection scripts, but the output from "uname". > > Support for AIX > > and various other platforms has been removed in GRASS 7. > > Any particular reason for that? The SC_CONFIG_FLAGS macro was originally copied in its entirety from Tcl/Tk. It was designed for Tcl/Tk's build system, not GRASS', was quite old, used "uname" instead of $host (so cross-compiling was impossible), and few of the "supported" platforms had actually been tested. r39731 re-wrote it to use $host. Rather than trying to figure out the correct $host value for each possible system (few of which were available for testing), the sections for "unused" systems were removed, with the intent that they would be added if and when someone with access to such a system was able to report the correct $host value and which compiler/linker switches actually worked on that system. -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Markus Neteler wrote: > "./include/Make/Grass.make", line 90: make: Dependency line needs > colon or double colon operator. > "./include/Make/Grass.make", line 92: make: Dependency line needs > colon or double colon operator. > "./include/Make/Grass.make", line 400: make: Dependency line needs > colon or double colon operator. > "./include/Make/Grass.make", line 403: make: Dependency line needs > colon or double colon operator. These all correspond to ifeq/ifneq/else/endif directives. Presumably the problem is caused by not using GNU make (or possibly using an ancient version). -- Glynn Clements ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
grass 6.4 dev branch: > what's inside of this directory? > /gpfs/home/senko/dev/grass/grass64/dist.powerpc-ibm-aix7.1.0.0/include of course it is. There are just two files and two empty subdirectiores PolimiFunct.h waterglobs.h vect/ iostream/ grass 7 trunk (configure: error: ***Unknown platform: powerpc-ibm-aix7.1.0.0***): > Is this a recent GRASS 7 source code version? I would not know > why is works for you with GRASS 6 but not 7 since the OS detection > scripts are basically the same. > @devs: any idea? It's actual revision 55393. Ivan 2013/3/15 Markus Neteler > (please keep this on the list) > > On Fri, Mar 15, 2013 at 7:55 AM, Ivan Barka wrote: > > 2013/3/14 Markus Neteler > >> what's inside of this directory? > >> /gpfs/home/senko/dev/grass/grass64/dist.powerpc-ibm-aix7.1.0.0/include > > > > there are just two files: > > Make > > grass > > the latter should actually be a directory... > > > If I try to configure grass7, I get: > > configure: error: ***Unknown platform: powerpc-ibm-aix7.1.0.0*** > > Is this a recent GRASS 7 source code version? I would not know > why is works for you with GRASS 6 but not 7 since the OS detection > scripts are basically the same. > > @devs: any idea? > > Markus > ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Fri, Mar 15, 2013 at 1:28 PM, Markus Metz wrote: ... > The OS detection scripts are actually quite different. I looked into config.guess and config.sub which I thought would do this job. > Support for AIX > and various other platforms has been removed in GRASS 7. Any particular reason for that? markusN ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
On Fri, Mar 15, 2013 at 12:01 PM, Markus Neteler wrote: > (please keep this on the list) > > On Fri, Mar 15, 2013 at 7:55 AM, Ivan Barka wrote: >> 2013/3/14 Markus Neteler >>> what's inside of this directory? >>> /gpfs/home/senko/dev/grass/grass64/dist.powerpc-ibm-aix7.1.0.0/include >> >> there are just two files: >> Make >> grass > > the latter should actually be a directory... > >> If I try to configure grass7, I get: >> configure: error: ***Unknown platform: powerpc-ibm-aix7.1.0.0*** > > Is this a recent GRASS 7 source code version? I would not know > why is works for you with GRASS 6 but not 7 since the OS detection > scripts are basically the same. The OS detection scripts are actually quite different. Support for AIX and various other platforms has been removed in GRASS 7. Also, GRASS 6 checks $system, GRASS 7 checks $host. Markus M ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
(please keep this on the list) On Fri, Mar 15, 2013 at 7:55 AM, Ivan Barka wrote: > 2013/3/14 Markus Neteler >> what's inside of this directory? >> /gpfs/home/senko/dev/grass/grass64/dist.powerpc-ibm-aix7.1.0.0/include > > there are just two files: > Make > grass the latter should actually be a directory... > If I try to configure grass7, I get: > configure: error: ***Unknown platform: powerpc-ibm-aix7.1.0.0*** Is this a recent GRASS 7 source code version? I would not know why is works for you with GRASS 6 but not 7 since the OS detection scripts are basically the same. @devs: any idea? Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
(back to list) Ivan, what's inside of this directory? /gpfs/home/senko/dev/grass/grass64/dist.powerpc-ibm-aix7.1.0.0/include There should be a grass/ directory with the include files inside. The "make" output being: "./include/Make/Grass.make", line 90: make: Dependency line needs colon or double colon operator. "./include/Make/Grass.make", line 92: make: Dependency line needs colon or double colon operator. "./include/Make/Grass.make", line 400: make: Dependency line needs colon or double colon operator. "./include/Make/Grass.make", line 403: make: Dependency line needs colon or double colon operator. "Makefile", line 53: make: Dependency line needs colon or double colon operator. "Makefile", line 55: make: Dependency line needs colon or double colon operator. "Makefile", line 57: make: Dependency line needs colon or double colon operator. "Makefile", line 59: make: Dependency line needs colon or double colon operator. "Makefile", line 61: make: Dependency line needs colon or double colon operator. "Makefile", line 121: make: Dependency line needs colon or double colon operator. "Makefile", line 127: make: Dependency line needs colon or double colon operator. "Makefile", line 284: make: Dependency line needs colon or double colon operator. "Makefile", line 286: make: Dependency line needs colon or double colon operator. "Makefile", line 308: make: Dependency line needs colon or double colon operator. "Makefile", line 312: make: Dependency line needs colon or double colon operator. make: Fatal errors encountered -- cannot continue. is unclear to me. Which make version do you use? Hint: I would ditch GRASS 6 in favour of GRASS 7 on AIX since it comes with a modernized Makefile system and many other advantages. Best Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
Re: [GRASS-dev] compilation of grass on AIX 7.1
Hi Ivan, On Wed, Mar 13, 2013 at 7:52 AM, Ivan Barka wrote: ... > compilation started with gmake Why do you use "gmake" (the alias described in INSTALL?) and not just "make"? > but nothing was successfully compiled, stdout > full of errors like "fatal error: grass/config.h no such file or directory" > or "fatal error: grass/gis.h no such file or directory" etc. Could you post an excerpt of the lines including and before such an error? Likely just a path issue... Markus ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
[GRASS-dev] compilation of grass on AIX 7.1
Hi all, did somebody manage to compile grass on AIX 7.1? I tried to compile GRASS 6.4 devel branch, ./configure was successful with CFLAGS="-lstdc++" ./configure --prefix=$HOME/apps --with-proj-includes=$HOME/apps/include --with-proj-libs=$HOME/apps/lib --with-proj-share=$HOME/apps/share --with-gdal=$HOME/apps/bin/gdal-config --with-libs=$HOME/apps/lib --without-tiff --without-png --without-opengl --without-tcltk --without-fftw compilation started with gmake but nothing was successfully compiled, stdout full of errors like "fatal error: grass/config.h no such file or directory" or "fatal error: grass/gis.h no such file or directory" etc. Proj and GDAL were compiled and istalled into $HOME/apps. Is there any special receipt for AIX? Thanks in advance for any suggestions. Ivan ___ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev