[cairo] cairo 1.8.6 error: Macro name PACKAGE_VERSION cannot be redefined

Behdad Esfahbod behdad at behdad.org
Fri Mar 6 11:30:18 PST 2009


Shailendra Jain wrote:
> Hi,

Hi,

So, there are two things in play here:

>    While running configure script for Cairo 1.8.6 on AIX, I got the
> below error.
> 
> configure:12762: checking how to run the C preprocessor
> configure:12878: result: /usr/vac/bin/xlc_r -E
> configure:12907: /usr/vac/bin/xlc_r -E  conftest.c
> "conftest.c", line 19.9: 1506-213 (S) Macro name PACKAGE_VERSION cannot
> be redefined.
> "conftest.c", line 19.9: 1506-358 (I) "PACKAGE_VERSION" is defined on
> line 4 of conftest.c.
> "conftest.c", line 20.9: 1506-213 (S) Macro name PACKAGE_STRING cannot
> be redefined.
> "conftest.c", line 20.9: 1506-358 (I) "PACKAGE_STRING" is defined on
> line 5 of conftest.c.
> "conftest.c", line 21.9: 1506-213 (S) Macro name PACKAGE_NAME cannot be
> redefined.
> "conftest.c", line 21.9: 1506-358 (I) "PACKAGE_NAME" is defined on line
> 2 of conftest.c.
> "conftest.c", line 22.9: 1506-213 (S) Macro name PACKAGE_TARNAME cannot
> be redefined.
> "conftest.c", line 22.9: 1506-358 (I) "PACKAGE_TARNAME" is defined on
> line 3 of conftest.c.
> configure:12913: $? = 1

First, your C preprocessor is not tolerant of redefining macros.


> configure: failed program was:
> | /* confdefs.h.  */
> | #define PACKAGE_NAME "cairo"
> | #define PACKAGE_TARNAME "cairo"
> | #define PACKAGE_VERSION "1.8.6"
> | #define PACKAGE_STRING "cairo 1.8.6"

The other bug is that configure is not ripping the old definitions off as it
should.  It's not a bug, strictly speaking.  But autoconf could be smarter
about it.

behdad

> | #define PACKAGE_BUGREPORT
> "http://bugs.freedesktop.org/enter_bug.cgi?product=cairo"
> | #define STDC_HEADERS 1
> | #define HAVE_SYS_TYPES_H 1
> | #define HAVE_SYS_STAT_H 1
> | #define HAVE_STDLIB_H 1
> | #define HAVE_STRING_H 1
> | #define HAVE_MEMORY_H 1
> | #define HAVE_STRINGS_H 1
> | #define HAVE_INTTYPES_H 1
> | #define HAVE_STDINT_H 1
> | #define HAVE_UNISTD_H 1
> | #define HAVE_DLFCN_H 1
> | #define LT_OBJDIR ".libs/"
> | #define PACKAGE_VERSION USE_cairo_version_OR_cairo_version_string_INSTEAD
> | #define PACKAGE_STRING USE_cairo_version_OR_cairo_version_string_INSTEAD
> | #define PACKAGE_NAME USE_cairo_INSTEAD
> | #define PACKAGE_TARNAME USE_cairo_INSTEAD
> | /* end confdefs.h.  */
> | #ifdef __STDC__
> | # include <limits.h>
> | #else
> | # include <assert.h>
> | #endif
> |                    Syntax error
> 
> 
> To eliminate the above error I had made changes in the 2 files. Can
> someone advise if these changes are appropriate ?
> 
> 1. ./configure
> 
>      Removed the below lines from the configure script.
> 
> 
> cat >>confdefs.h <<\_ACEOF
> #define PACKAGE_VERSION USE_cairo_version_OR_cairo_version_string_INSTEAD
> _ACEOF
> 
> cat >>confdefs.h <<\_ACEOF
> #define PACKAGE_STRING USE_cairo_version_OR_cairo_version_string_INSTEAD
> _ACEOF
> 
> cat >>confdefs.h <<\_ACEOF
> #define PACKAGE_NAME USE_cairo_INSTEAD
> _ACEOF
> 
> cat >>confdefs.h <<\_ACEOF
> #define PACKAGE_TARNAME USE_cairo_INSTEAD
> _ACEOF
> 
> 2. ./build/configure.ac.version
> 
>     Removed the below lines.
> 
> dnl Disable autoconf's version macros.  We try hard to not rebuild the
> entire
> dnl library just because version changed.  The PACKAGE_VERSION* stuff in
> dnl config.h is negating all the effort.
> AC_DEFINE(PACKAGE_VERSION,     
> [USE_cairo_version_OR_cairo_version_string_INSTEAD])
> AC_DEFINE(PACKAGE_STRING,      
> [USE_cairo_version_OR_cairo_version_string_INSTEAD])
> AC_DEFINE(PACKAGE_NAME,         [USE_cairo_INSTEAD])
> AC_DEFINE(PACKAGE_TARNAME,      [USE_cairo_INSTEAD])
> 
> Regards,
> Shailendra
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo


More information about the cairo mailing list