#234 expat.h compile error: enum XML_Status

closed-fixed
None
9
2003-10-21
2003-01-29
Anonymous
No

c++ -DHAVE_CONFIG_H -I. -I. -I../../autocfg -g -O2 -c
context.cpp -fPIC -DPIC -o .libs/context.lo
In file included from parser.h:45,
from guard.h:143,
from context.cpp:45:
/usr/include/expat.h:657: use of enum `XML_Status'
without previous declaration
/usr/include/expat.h:736: multiple definition of `enum
XML_Status'

when building sablotron.

Hand editing the file to place the def of enum
XML_Status before any references to it fixes the problem.

Discussion

1 2 > >> (Page 1 of 2)
  • Karl Waclawek
    Karl Waclawek
    2003-01-29

    Logged In: YES
    user_id=290026

    So far only gcc3.2 has complained.
    Not sure if this is a bug, since most compilers accept it,
    but it has been fixed in CVS already anyway.

    Set resolution status to fixed, but leave open.
    There may be other users who would report this as a bug
    and I want them to see the open report instead of
    having duplicates created.

    Assigned to Fred - since he may know more about
    whether this truly is a bug.

     
  • Karl Waclawek
    Karl Waclawek
    2003-01-29

    • assigned_to: gstein --> fdrake
    • status: open --> open-fixed
     
    • summary: expat.h compile error --> expat.h compile error: enum XML_Status
    • priority: 5 --> 3
     
  • Logged In: YES
    user_id=3066

    I've not checked the C89 standard yet, but Expat 1.95.6 is
    certainly dodgy in this case. ;-( The first draft of the C spec I
    found online certainly seemed to imply that any use of an
    incomplete enum is not allowed; I'm not likely to go out and
    buy a copy of the final spec to check further. ;-)

    As noted, this has been fixed in CVS. Fixed the summary to
    better indicate what this report is about, and lowered the
    priority to get it out of the way for maintainers.

     
  • Logged In: NO

    I just got the same error, already fixed it. But don't
    understand why it isn't fixed in CVS ?

     
  • Karl Waclawek
    Karl Waclawek
    2003-01-31

    Logged In: YES
    user_id=290026

    It *is* fixed in CVS. Are you sure you checked out the
    right version, which is expat.h 1.51?

     
  • Melvyn Sopacua
    Melvyn Sopacua
    2003-02-06

    Logged In: YES
    user_id=212431

    > So far only gcc3.2 has complained.

    Nope:
    /usr/local/include/expat.h:657: use of enum `XML_Status'
    without previous declaration
    /usr/local/include/expat.h:736: multiple definition of `enum
    XML_Status'
    gmake[2]: *** [context.lo] Error 1
    gmake[2]: Leaving directory
    `/home/mdev/cvs/sablot/src/engine'
    gmake[1]: *** [all-recursive] Error 1
    gmake[1]: Leaving directory `/home/mdev/cvs/sablot/src'
    gmake: *** [all-recursive] Error 1

    $ gcc --version
    2.95.3

     
  • Karl Waclawek
    Karl Waclawek
    2003-02-06

    Logged In: YES
    user_id=290026

    But current CVS works for you, right?

     
  • Melvyn Sopacua
    Melvyn Sopacua
    2003-02-14

    Logged In: YES
    user_id=212431

    Yes, that works.

     
  • Jacob Levy
    Jacob Levy
    2003-03-01

    Logged In: YES
    user_id=63723

    This makes Expat 1.95.6 unusable for people who create
    libraries that depend on Expat but don't include their own
    copy of Expat. Sure, I can edit expat.h and fix it, but my
    users should not be expected to do that.

    For that reason I'm staying with Expat 1.95.5 until this
    problem is fixed. It'd be really nice if you could make
    Expat 1.95.7 soon..

    In my case GCC 2.95.2 and VC++ 6.0 are complaining.

     
  • Karl Waclawek
    Karl Waclawek
    2003-03-01

    Logged In: YES
    user_id=290026

    Strange - I had no problems with MS VC++ 6.0.
    Which service pack level have you applied?

     
  • Logged In: NO

    same problem, same fix when building 1.95.6 on vms
    (just downloaded .tar.gz & processed - got the rpm, but
    don't know what to do with it - not an archive type I know
    how to handle on vms, or windows either)
    - chris.sharman@ccagroup.co.uk

     
  • Logged In: NO

    Same problem and the same fix under Linux and gcc 2.95.2.

     
  • Karl Waclawek
    Karl Waclawek
    2003-04-16

    • priority: 3 --> 9
     
  • Karl Waclawek
    Karl Waclawek
    2003-04-16

    Logged In: YES
    user_id=290026

    Changed priority to highest to make it more visible,
    so that double reporting incidents occur less frequently.

     
  • Donche, Pieter
    Donche, Pieter
    2003-05-08

    Logged In: YES
    user_id=774177

    SUN Sparc Enterprise 2170 Solaris 2.8
    gcc 3.2
    Downloaded expat-1.95.6.tar.gz
    ./configure, make, make install OK
    Downloaded Sablot-0.98.tar.gz (Sablotron package,
    from www.gingerall.com)
    ./configure says:
    ...
    checking expat.h presence... yes
    expat.h: present but cannot be compiled
    expat.h: check for missing prerequisite headers?
    expat.h: proceeding with the preprocessor's result
    ##-------------------------------------------------##
    ## Report this to bug-autoconf@gnu.org ##
    ##-------------------------------------------------##
    checking for expat.h... yes
    checking wether expat.h is broken... yes
    error: You probably have expat version 1.95.6. Please refer to
    http://sourceforge.net/tracker/index.php?
    func=detail&aid=676844&group_id=10127&atid=110127
    for a description of the problem

    -- Looked at that web-page. Don't see a solution there.
    Wath is the solution ?
    Pieter.Donche@ua.ac.be

     
  • Donche, Pieter
    Donche, Pieter
    2003-05-08

    Logged In: YES
    user_id=774177

    SUN Sparc Enterprise 2170 Solaris 2.8
    gcc 3.2
    Downloaded expat-1.95.6.tar.gz
    ./configure, make, make install OK
    Downloaded Sablot-0.98.tar.gz (Sablotron package,
    from www.gingerall.com)
    ./configure says:
    ...
    checking expat.h presence... yes
    expat.h: present but cannot be compiled
    expat.h: check for missing prerequisite headers?
    expat.h: proceeding with the preprocessor's result
    ##-------------------------------------------------##
    ## Report this to bug-autoconf@gnu.org ##
    ##-------------------------------------------------##
    checking for expat.h... yes
    checking wether expat.h is broken... yes
    error: You probably have expat version 1.95.6. Please refer to
    http://sourceforge.net/tracker/index.php?
    func=detail&aid=676844&group_id=10127&atid=110127
    for a description of the problem

    -- Looked at that web-page. Don't see a solution there.
    Wath is the solution ?
    Pieter.Donche@ua.ac.be

     
  • Karl Waclawek
    Karl Waclawek
    2003-05-08

    Logged In: YES
    user_id=290026

    See above - original submission:

    Hand editing the file to place the def of enum
    XML_Status before any references to it fixes the
    problem.

     
  • Logged In: NO

    I have the same problem has other senders, but the fix is
    unclear as you did not indicate which file needs fixing (I
    assume expat.h) or line number to place the def of enum
    XML_Status. Please assume people are stupid..

    checking expat.h usability... no
    checking expat.h presence... yes
    configure: WARNING: expat.h: present but cannot be compiled
    configure: WARNING: expat.h: check for missing prerequisite
    headers?
    configure: WARNING: expat.h: proceeding with the
    preprocessor's result
    configure: WARNING: ##
    ------------------------------------ ##
    configure: WARNING: ## Report this to
    bug-autoconf@gnu.org. ##
    configure: WARNING: ##
    ------------------------------------ ##
    checking for expat.h... yes
    checking whether expat.h is broken... yes
    configure: error: You probably have expat version 1.95.6.
    Please refer to:

    http://sourceforge.net/tracker/index.php?func=detail&aid=676844&group_id=10127&atid=110127
    for a description of the problem.

     
  • Karl Waclawek
    Karl Waclawek
    2003-05-30

    Logged In: YES
    user_id=290026

    Yes, the file to fix is expat.h.

    Two things you can do:

    1) get the latest expat.h from CVS, or

    2) use your editor to search expat.h for the first
    location where XML_STATUS is used and then
    move the definition of XML_STATUS to some
    location before that point.

     
  • Logged In: NO

    in configure..::

    checking XML::Parser perl module... no: documentation
    requires XML::Parser module and will not be built.
    checking whether to build under GPL... no
    checking whether to build the debugger... no
    checking where to find xml parser... expat (new)
    checking expat.h usability... no
    checking expat.h presence... yes
    configure: WARNING: expat.h: present but cannot be compiled
    configure: WARNING: expat.h: check for missing prerequisite
    headers?
    configure: WARNING: expat.h: proceeding with the
    preprocessor's result
    configure: WARNING: ##
    ------------------------------------ ##
    configure: WARNING: ## Report this to
    bug-autoconf@gnu.org. ##
    configure: WARNING: ##
    ------------------------------------ ##
    checking for expat.h... yes
    checking whether expat.h is broken... yes
    configure: error: You probably have expat version 1.95.6.
    Please refer to:

    http://sourceforge.net/tracker/index.php?func=detail&aid=676844&group_id=10127&atid=110127
    for a description of the problem.

     
  • Logged In: NO

    After I read all this comments, i saw that u were right. : )
    I placed the following definitions
    enum XML_Status {
    XML_STATUS_ERROR = 0,
    #define XML_STATUS_ERROR XML_STATUS_ERROR
    XML_STATUS_OK = 1
    #define XML_STATUS_OK XML_STATUS_OK
    };

    at the beginning of the expat.h file, before any call to it,
    and it compiled succesfully.
    After this I compiled sablot with no problems.
    thank u guys ... : )

     
  • Logged In: NO

    this is simply a matter of the expat.h file being
    wrongly organised so that "enum XML_Status"
    is used several times before it is declared.
    30 seconds copying and pasting will fix it.
    currently nothing using expat.h compiles under
    gcc 3.2.3

     
  • Karl Waclawek
    Karl Waclawek
    2003-09-13

    Logged In: YES
    user_id=290026

    Has been fixed in CVS for a long time.
    Btw, CVS is generally stable, as we are quite careful
    to commit changes only when they have been tested.
    No guarantees, of course.

     
  • Jacob Levy
    Jacob Levy
    2003-09-13

    Logged In: YES
    user_id=63723

    Are you planning -- please? -- to make another file release
    containing these fixes? Asking my users to build expat from
    the current release is not working, because of this bug. As a
    result, I'm recommending to my users to get/use an older
    version of expat without the new nifty features.

    --JYL

     
1 2 > >> (Page 1 of 2)