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

CPU32 problems resolved.



I am forwarding this to the key egcs maintainers so the prerelease won't
become a release with this problem.

--joel

On Thu, 12 Mar 1998, Robin Kirkham wrote:

> 
> Jake/Chris:
> 
> Now that I have the egcs source, I can see that the problem is not directly
> related to MULTILIB_OPTIONS or any of that jazz.
> 
> The problem is that the options table in gcc/config/m68k/m68k.h is different
> in egcs-1.0.2-prerelease compared to my egcs-1.0.1+patch, which worked.
> I don't know how this happened: it could be an unintended side-effect of
> some other patch, as I can't find anything specific in the Changelog.
> 
> Anyway, as a result -mcpu32, -m68332, or -m68302 (without -msoft-float) will
> emit floating-point code. The entries for these two should include a
> MASK_68881 in the target bits that are TURNED OFF. In other words, they
> should say
> 
>     { "68302", - (MASK_5200|MASK_68060|MASK_68040|MASK_68040_ONLY       \
>                   |MASK_68020|MASK_BITFIELD|MASK_68881)},               \
>     { "68332", - (MASK_5200|MASK_68060|MASK_68040|MASK_68040_ONLY       \
>                   |MASK_BITFIELD|MASK_68881)},                          \
>     { "68332", MASK_68020},                                             \
>     { "cpu32", - (MASK_5200|MASK_68060|MASK_68040|MASK_68040_ONLY       \
>                   |MASK_BITFIELD|MASK_68881)},                          \
>     { "cpu32", MASK_68020},                                             \
> 
> The multilib arrangement assumes this. The library paths and the specs
> strings are worked out on the basis of the difference between the -m options
> and the default. If the default is not doing what is assumed, just about
> nothing works!
> 
> This is why trying to specify -msoft-float didn't help: it would try to 
> use a library path lib/mcpu32/msoft-float, but since there isn't one (because
> if there were, it should have been the same as just lib/mcpu32), it defaulted
> to just lib/, and thus picked up m68020 libraries.
> 
> Altering MULTILIB_EXCEPTIONS to allow it to build a lib/mcpu32/msoft-float
> appears to fix the problem, but for the wrong reason.
> 
> I'll change it tomorrow, test it out, and produce a patch for the egcs people
> if I'm successful.
> 
> Robin Kirkham			CSIRO Manufacturing Science and Technology
> Project Engineer		Locked Bag 9, Preston 3072, Australia
> robin.kirkham at mlb.dmt.csiro.au	Phone: +61 3 9662-7756  Fax: +61 3 9662-7851
>