http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46803

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |*-openbsd*
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|2010-12-04 21:08:59         |2010.12.05 11:43:03
          Component|libstdc++                   |other
            Summary|libstdc++ build errors on   |libstdc++ build errors on
                   |unknown attributes          |invalid OpenBSD system
                   |                            |header attributes
     Ever Confirmed|0                           |1

--- Comment #6 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-12-05 
11:43:03 UTC ---
Seems to be from for example

size_t strftime(char *, size_t, const char *, const struct tm *)
        __attribute__ ((__bounded__(__string__,1,2)));

the attribute is __bounded__ which is ignored, but arguments are regularly
parsed, so __string__ has to be available.  I think this is a bug in
openbsd which doesn't conform to the function declaration attribute syntax.
A more proper way would have been to implement it as
__bounded__("__string__",1,2).

This can be fixed by fixincluding, I see that a fixincluded variant is
already used:

/home/jsg/src/obj/./gcc/include-fixed/time.h

but the above issue is not fixed.  See fixinclude/inclhack.def.

Thus, it's not really a GCC/libstdc++ bug but a OpenBSD one.  One that
can be worked around by means of fixincludes.

The OpenBSD port doesn't have a GCC maintainer listed though, so do not
hold your breath (but instead a patch for inclhack.def is welcome, please
send it to gcc-patc...@gcc.gnu.org).  Also please report this bug
upstream to OpenBSD - they shouldn't invent incompatible GCC extensions.

Reply via email to