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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
No need for that, just look carefully at the output:
...
# 132 "../system.h" 2

#define _(Text) dgettext (PACKAGE, Text)
...
# 46 "/usr/include/libelf.h" 3 4
#undef _

typedef void Elf_Void;
#define _(a) a
...
Elf_Data *elf64_xlatetom (Elf_Data *, const Elf_Data *, unsigned);


#undef _
# 35 "/usr/include/gelf.h" 2 3 4
...
    if (tfd == ((void *)0) || Ferror(tfd)) {
 rpmlog(RPMLOG_ERR, _("error creating temporary file %s: %m\n"), tempfn);
 goto exit;
    }

So, clearly your libelf.h is undefining _, then defining it and undefining it
again at the end.  So, I'd say your libelf.h is badly written, it shouldn't be
really changing _, and perhaps if you want to compile rpm you need to reshuffle
the headers so that <libelf.h> is included before headers that actually define
_ macro.

In any case, not a GCC bug.

Reply via email to