Ticket #2224 (closed defect: wontfix)

Opened 5 years ago

Last modified 3 years ago

Compile error on 5.0beta3 with AGG

Reported by: pdeffendol Owned by: tbonfort
Priority: normal Milestone:
Component: Build Problems Version: 5.0
Severity: normal Keywords:
Cc: sdlime, woodbri

Description

I'm trying to compile Mapserver 5.0 beta3 with AGG support under RHEL5/CentOS5 and am getting the following errors:

g++ -O2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
 --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fPIC 
-Wall   -DIGNORE_MISSING_DATA  -DHAVE_VSNPRINTF -DNEED_STRLCAT  -DUSE_EPPL -DUSE_PROJ 
-DUSE_WMS_SVR -DUSE_WMS_LYR -DUSE_WFS_SVR -DUSE_WFS_LYR -DUSE_WCS_SVR  -DUSE_MING_FLASH    
-DUSE_GD_GIF -DUSE_GD_PNG -DUSE_GD_JPEG -DUSE_GD_WBMP -DUSE_GD_FT -DGD_HAS_FTEX_XSHOW 
-DGD_HAS_GDIMAGEGIFPTR -DGD_HAS_GETBITMAPFONTS -DUSE_AGG    -DUSE_OGR -DUSE_GDAL -DUSE_GEOS 
-DUSE_ICONV   -DUSE_POSTGIS   -DUSE_ZLIB  -I/usr/include -I/usr/include/agg2 
-I/usr/include/freetype2       -I/usr/include -I/usr/include     -I/usr/include       -c -o 
mapagg.o mapagg.cpp

mapagg.h:39: error: ISO C++ forbids declaration of ‘const_row_info’ with no type
mapagg.h:39: error: typedef name may not be a nested-name-specifier
mapagg.h:39: error: expected ‘;’ before ‘<’ token
mapagg.h:98: error: ‘row_data’ does not name a type

Change History

  Changed 5 years ago by tbonfort

  • owner changed from tbonfort to mapserverbugs
  • component changed from AGG to Build Problems

please try with more standard cflags and report here if you're still having problems

  Changed 4 years ago by dmorissette

  • cc sdlime added
  • owner changed from mapserverbugs to tbonfort

Thomas, I am not a C++ template expert, but is there no way to solve this error by fixing the typedef in the source?

I have reassigned the ticket to you. If you can't think of a clean fix and get no news from the reporter then please close as wontfix.

  Changed 4 years ago by pdeffendol

Just a few notes on what I've tried. I'm no C++ expert (haven't used it for over 10 years) but maybe this will help someone.

My initial build of Mapserver used the stock Red Hat agg 2.4 package and the default compiler flags generated by the configure script when I ran it. I built my own package of AGG 2.5 and was able to recompile Mapserver 5.0b3 successfully. I made no other changes to my build process.

  Changed 4 years ago by tbonfort

  • status changed from new to closed
  • resolution set to wontfix

I don't think I'll fix this as this seems to be a compiler bug. Compiling the file here with the exact same cflags produces no errors, and googling for your error message returns only 3 pages, out of which only one page has actual replies. In that case, the error message mysteriously disappeared after a few weeks.

please reopen if you find additional info on this error, (info pointing to something other than a compiler bug that is)

follow-up: ↓ 6   Changed 4 years ago by pdeffendol

Alright, I've discovered the probable cause of my problem. Apparently the AGG developers released multiple source packages labeled as version 2.4 instead of using a new version number each time. The binary provided by Red Hat is built from the "original" 2.4 release, and apparently Mapserver doesn't work with that one, as evidenced by my testing. I rebuilt the Red Hat package using the 2.4 sources downloaded from antigrain.com, and everything compiles nicely.

in reply to: ↑ 5   Changed 4 years ago by hopfgartner

In order to confirm this hypothesis:

On Centos 5 we recompiled the agg source rpm (agg-2.4-2.2.src.rpm) from Fedora 6 Updates and Mapserver 5.0.0 with AGG support compiles fine now.

  Changed 3 years ago by woodbri

  • cc woodbri added
Note: See TracTickets for help on using tickets.