Opened 17 years ago

Closed 17 years ago

Last modified 15 years ago

#2224 closed defect (wontfix)

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 (7)

comment:1 by tbonfort, 17 years ago

Component: AGGBuild Problems
Owner: changed from tbonfort to mapserverbugs

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

comment:2 by dmorissette, 17 years ago

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.

comment:3 by pdeffendol, 17 years ago

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.

comment:4 by tbonfort, 17 years ago

Resolution: wontfix
Status: newclosed

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)

comment:5 by pdeffendol, 17 years ago

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 comment:6 by hopfgartner, 17 years ago

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.

comment:7 by woodbri, 15 years ago

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