This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Rs6000 infrastructure cleanup (switches)
- From: Michael Meissner <meissner at linux dot vnet dot ibm dot com>
- To: Iain Sandoe <iain at codesourcery dot com>
- Cc: Michael Meissner <meissner at linux dot vnet dot ibm dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, David Edelsohn <dje dot gcc at gmail dot com>, bergner at vnet dot ibm dot com, segher at kernel dot crashing dot org, Dominique Dhumieres <dominiq at lps dot ens dot fr>
- Date: Mon, 17 Sep 2012 13:10:49 -0400
- Subject: Re: [PATCH] Rs6000 infrastructure cleanup (switches)
- References: <20120912224303.GA19348@ibm-tiger.the-meissners.org> <C74D0FEA-F232-4F2E-8E57-D9547D628848@codesourcery.com>
On Mon, Sep 17, 2012 at 09:21:09AM +0100, Iain Sandoe wrote:
> Hello Michael,
>
> On 12 Sep 2012, at 23:43, Michael Meissner wrote:
>
> > It would be nice to know if this doesn't break the other ppc
> > environments (AIX, Darwin) before I commit it. Are there any problems with
> > this patch?
>
> For powerpc-darwin9, there are a couple of issues which I've hacked around to get bootstrap to complete.
>
> 1. In rs6000.h
>
> Where there are TARGET_XXX macros set to zero and guarded by config-time HAVE_AS_YYY (e.g. TARGET_POPCNTD, HAVE_AS_POPCNTD)
> This causes an error when the #define TARGET_POPCNTD OPTION_POPCNTD is parsed.
I think changing the #ifdef TARGET_XXX to #ifdef OPTION_XXX's is the right
thing. I wish the opt*.awk scripts did not change TARGET_<xxx> to OPTION_<xxx>
and MASK_<xxx> to OPTION_MASK_<xxx>. I had already made a similar change in
the update to the patches I was going to send out today, but I will check them
once again.
> For the sake of making progress, I just worked around these by moving the guarded defines to where the OPTION_XXXs are equated -- I.E:
>
> #ifndef HAVE_AS_XXX
> #define TARGET_XXX 0
> #else
> #define TARGET_XXX OPTION_XXX
> #endif
>
> likely, that's not the Right Solution, but it allowed me to get to the next step -
>
> 2. rs6000_misc_flags{,explicit} and rs6000_debug_flags{,explicit} are declared as HOST_WIDE_INT which is 'long long' for this target. This causes fails on lines 1841, 1842, 1844 and 1846 in rs6000.c because of mismatched format specifier and argument. I just worked around this with a temporary definition of a suitable format descriptor.
Ok. Thanks.
> With these two hacks, bootstrap completes for all langs including Java, Ada and ObjC++.
> I haven't done any formal reg-tests yet, but a selection of checks across the board look reasonable so far.
>
> If there is any other specific input that would be useful let me know - these older platforms are somewhat slow for the full build/test cycle.
Not at the moment, let me try get a revised patch out there.
Thanks for doing the tests.
--
Michael Meissner, IBM
5 Technology Place Drive, M/S 2757, Westford, MA 01886-3141, USA
meissner@linux.vnet.ibm.com fax +1 (978) 399-6899