This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: aix EXIT_SUCCESS/EXIT_FAILURE stuff
- To: Branko Cibej <branko dot cibej at hermes dot si>
- Subject: Re: aix EXIT_SUCCESS/EXIT_FAILURE stuff
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Thu, 15 Jul 1999 00:48:36 -0600
- cc: egcs at egcs dot cygnus dot com, dje at watson dot ibm dot com
- Reply-To: law at cygnus dot com
In message <378B84C6.5B87AD7F@hermes.si>you write:
> Found it! Unless i'm completely off my rocker ...
>
> The culprit is definitely fix-header. The problem shows up when the
> native compiler is used for the bootstrap. Here's what happens:
>
> fix-header.c defines
>
> /* Special name to indicate a continuation line in std_include_table. */
> const char CONTINUED[] = "";
>
> `CONTINUED' is used in `std_include_table' to indicate entry
> continuation. However, inside `main', in the loop which searches
> `std_include_table':
>
[ ... ]
> (gdb) p CONTINUED
> $14 = 0x2000d094
> (gdb) p std_include_table
> $15 = {{name = 0x2000a314, flags = 1, names = 0x2000c1a4},
> {name = 0x2000a31c, flags = 0, names = 0x2000c210},
> {name = 0x2000a328, flags = 513, names = 0x2000a330},
> {name = 0x2000a338, flags = 1, names = 0x2000c234},
> {name = 0x2000a344, flags = 0, names = 0x2000a34c},
> {name = 0x2000a360, flags = 0, names = 0x2000a368},
> {name = 0x2000a37c, flags = 1, names = 0x2000a388},
> {name = 0x2000a3a0, flags = 1, names = 0x2000c33c},
> here-> {name = 0x2000a310, flags = 513, names = 0x2000a3a8},
> {name = 0x2000a3b4, flags = 0, names = 0x2000a3bc},
> {name = 0x2000a3d0, flags = 1, names = 0x2000a3dc},
> {name = 0x2000a3ec, flags = 1, names = 0x2000a3f8},
> {name = 0x2000a404, flags = 1, names = 0x2000c3ac},
> here-> {name = 0x2000a310, flags = 0, names = 0x2000a40c},
> here-> {name = 0x2000a310, flags = 0, names = 0x2000a41c},
[ ... ]
> Notice that the values in the table are exactly different than
> `CONTINUED' ... there seems to be an "optimisation" going on here,
> possibly because `CONTINUED' is a const array. I have no idea
> Whether this optimisation is valid or not. The only definite thing
> I found is that the string is duplicated at different addresses. Yuck.
Interesting. I do not see this behavior on my aix4.2 box. I've got a build
running on a 4.1.3 box, but it will not finish for a while.
What options are you passing to the aix compiler?
David -- I know you've seen this behavior (this is the
EXIT_SUCCESS/EXIT_FAILURE
stuff). Can you see if the contents of std_include_table are busted in a
manner similar to what Branko has shown above?
jeff