magick/morphology.c in 6.5.9-8
Posted: 2010-02-20T14:14:43-07:00
Compile error on Solaris using Sun Studio 11.
The problem is that the prototype for ScaleKernelInfo on line 112 is:
ScaleKernelInfo(KernelInfo *, const double, const MagickStatusType);
But the on 1998 the function definition is:
ScaleKernelInfo(KernelInfo *, const double, const GeometryFlags);
Compile output
libtool: compile: /opt/studio/SOS11/SUNWspro/bin/cc -DHAVE_CONFIG_H -I. -I./config -I./ltdl -I./ltdl -I/opt/csw/include/freetype2 -I/opt/csw/include -I/opt/csw/X11/include -I/opt/csw/include -I/opt/csw/X11/include -I/opt/csw/include/libxml2 -xO3 -xarch=v8 -D_REENTRANT -c magick/morphology.c -KPIC -DPIC -o magick/.libs/magick_libMagickCore_la-morphology.o
"magick/morphology.c", line 1998: identifier redeclared: ScaleKernelInfo
current : static function(pointer to struct {enum {UserDefinedKernel(15), EuclideanKernel(14), ManhattenKernel(13), ChebyshevKernel(12), PlusKernel(11), DiskKernel(10), DiamondKernel(9), SquareKernel(8), RectangleKernel(7), DOGKernel(6), LOGKernel(5), LaplacianKernel(4), CometKernel(3), BlurKernel(2), GaussianKernel(1), UndefinedKernel(0)} type, unsigned long width, unsigned long height, long x, long y, pointer to double values, double minimum, double maximum, double negative_range, double positive_range, unsigned long signature}, const double, const enum {AllValues(2147483647), DecimalValue(262144), AreaValue(131072), CorrelateNormalizeValue(65536), MinimumValue(65536), GreaterValue(32768), LessValue(16384), NormalizeValue(8192), AspectValue(8192), PercentValue(4096), ChiNegative(128), YNegative(64), PsiNegative(64), XNegative(32), XiNegative(32), ChiValue(16), SigmaValue(8), HeightValue(8), RhoValue(4), WidthValue(4), PsiValue(2), YValue(2), XiValue(1), XValue(1), NoValue(0)}) returning void
previous: function(pointer to struct {enum {UserDefinedKernel(15), EuclideanKernel(14), ManhattenKernel(13), ChebyshevKernel(12), PlusKernel(11), DiskKernel(10), DiamondKernel(9), SquareKernel(8), RectangleKernel(7), DOGKernel(6), LOGKernel(5), LaplacianKernel(4), CometKernel(3), BlurKernel(2), GaussianKernel(1), UndefinedKernel(0)} type, unsigned long width, unsigned long height, long x, long y, pointer to double values, double minimum, double maximum, double negative_range, double positive_range, unsigned long signature}, const double, const unsigned int) returning void : "magick/morphology.c", line 112
The problem is that the prototype for ScaleKernelInfo on line 112 is:
ScaleKernelInfo(KernelInfo *, const double, const MagickStatusType);
But the on 1998 the function definition is:
ScaleKernelInfo(KernelInfo *, const double, const GeometryFlags);
Compile output
libtool: compile: /opt/studio/SOS11/SUNWspro/bin/cc -DHAVE_CONFIG_H -I. -I./config -I./ltdl -I./ltdl -I/opt/csw/include/freetype2 -I/opt/csw/include -I/opt/csw/X11/include -I/opt/csw/include -I/opt/csw/X11/include -I/opt/csw/include/libxml2 -xO3 -xarch=v8 -D_REENTRANT -c magick/morphology.c -KPIC -DPIC -o magick/.libs/magick_libMagickCore_la-morphology.o
"magick/morphology.c", line 1998: identifier redeclared: ScaleKernelInfo
current : static function(pointer to struct {enum {UserDefinedKernel(15), EuclideanKernel(14), ManhattenKernel(13), ChebyshevKernel(12), PlusKernel(11), DiskKernel(10), DiamondKernel(9), SquareKernel(8), RectangleKernel(7), DOGKernel(6), LOGKernel(5), LaplacianKernel(4), CometKernel(3), BlurKernel(2), GaussianKernel(1), UndefinedKernel(0)} type, unsigned long width, unsigned long height, long x, long y, pointer to double values, double minimum, double maximum, double negative_range, double positive_range, unsigned long signature}, const double, const enum {AllValues(2147483647), DecimalValue(262144), AreaValue(131072), CorrelateNormalizeValue(65536), MinimumValue(65536), GreaterValue(32768), LessValue(16384), NormalizeValue(8192), AspectValue(8192), PercentValue(4096), ChiNegative(128), YNegative(64), PsiNegative(64), XNegative(32), XiNegative(32), ChiValue(16), SigmaValue(8), HeightValue(8), RhoValue(4), WidthValue(4), PsiValue(2), YValue(2), XiValue(1), XValue(1), NoValue(0)}) returning void
previous: function(pointer to struct {enum {UserDefinedKernel(15), EuclideanKernel(14), ManhattenKernel(13), ChebyshevKernel(12), PlusKernel(11), DiskKernel(10), DiamondKernel(9), SquareKernel(8), RectangleKernel(7), DOGKernel(6), LOGKernel(5), LaplacianKernel(4), CometKernel(3), BlurKernel(2), GaussianKernel(1), UndefinedKernel(0)} type, unsigned long width, unsigned long height, long x, long y, pointer to double values, double minimum, double maximum, double negative_range, double positive_range, unsigned long signature}, const double, const unsigned int) returning void : "magick/morphology.c", line 112