[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gdb: FTBFS on hurd-i386 (for review)

From: Thomas Schwinge
Subject: Re: gdb: FTBFS on hurd-i386 (for review)
Date: Thu, 27 Sep 2012 09:15:23 +0200
User-agent: Notmuch/0.9-101-g81dad07 (http://notmuchmail.org) Emacs/23.3.1 (i486-pc-linux-gnu)


On Wed, 26 Sep 2012 16:02:29 +0200, Svante Signell <address@hidden> wrote:
> gdb does not build from source any longer since gdb-multiarch packages
> was enabled in 7.4.1-1. The build problems are due to two reasons:

I also once had a look and came to the same conclusion.

> First the reserved keyword MACH is defined in include/objcode/h8300.h
> causing problems since gcc defines it for GNU/Hurd. 

Correct.  And I wonder if that isn't a name-space violation?  This is
what I meant to look up when working on this two months ago, but then it
seems I again got distracted by other issues.  Roland, do you have any
comments regarding that?

    #define GNU_USER_TARGET_OS_CPP_BUILTINS()               \
        do {                                        \
            builtin_define ("__gnu_hurd__");        \
            builtin_define ("__GNU__");             \
            builtin_define_std ("unix");            \
            builtin_define_std ("MACH");            \
            builtin_assert ("system=gnu");          \
            builtin_assert ("system=mach");         \
            builtin_assert ("system=unix");         \
            builtin_assert ("system=posix");        \
        } while (0)

    $ gcc -dM -E -x c - < /dev/null | grep -i mach
    #define __MACH 1
    #define __MACH__ 1
    #define MACH 1

Could we/should we remove the latter one?  Though, I have no idea how
much user code is relying on MACH being #defined.  I had a colleague
check, and Apple/Darwin systems do *only* #define __MACH__ (as well as

> Secondly, there is a PATH_MAX issue in gdb/nto-tdep.c. [...]

Didn't review that patch yet.

> avoid_MACH_defined_by_gcc.patch:
> --- a/include/opcode/h8300.h    2010-04-15 12:26:09.000000000 +0200
> +++ b/include/opcode/h8300.h    2012-09-26 13:13:57.000000000 +0200
> @@ -25,6 +25,11 @@
>     If the nibble has value 15 or less than the representation is
> complete.
>     Otherwise, we record what it contains with several flags.  */
> +/* Avoid problems under GNU/Hurd */
> +#ifdef MACH
> +#undef MACH
> +#endif
> +
>  typedef int op_type;
>  enum h8_flags

Depending on which conslusion we reach re the above, that might be a
suitable work-around.   The comment should probably be more specific, and
the #undef properly indented: »# undef«.


Attachment: pgpzkl6jA6fk3.pgp
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]