gcc 3.4.2 cpu32 patch

Aaron J. Grier aaron at frye.com
Thu Nov 18 00:25:47 UTC 2004


On Thu, Nov 18, 2004 at 10:58:21AM +1100, Chris Johns wrote:
> Aaron J. Grier wrote:
> >attached is a patch to gcc 3.4.2 to fix added preprocessor #defines
> >for cpu32 targets.  I've included comments for clarity.
> >
> >I've successfully built an rtems-m68k cross-compiler for my 68331
> >target with this patch.  (I was using peter barada's gcc 3.4.2 CVS
> >repository, but this patch should apply to the trunk version as
> >well.)
> >
> 
> Is the patch fixing a code gen problem in GCC for the cpu32 ? Just
> wishing clarify the purpose of the patch.

not code generation; just macro definition, as you've discovered.

> If so it maybe a good idea to raise a GCC bug and to attach the patch.

I was hoping it could be put into an "omnibus" patch from either ralf
(on the RTEMS end) or peter (on the m68k/coldfire end).

> I have a patch for RTEMS which fixes __mc68020__ being defined on all 
> m68k -m<cpu> options. This breaks RTEMS. I am not sure why this change 
> has occured.

it seems to be a result of the newly-introduced TARGET_CPU_CPP_BUILTINS
macro in gcc/config/m68k/m68k.h , which adds a preprocessor definition
for __mc68020__ if TARGET_68020.  -mcpu32 defines MASK_68020, which
prior to my patch would cause TARGET_68020 to evaluate to true.

my patch changes TARGET_68020 to be true only if MASK_68020 and
MASK_BITFIELD are set, hence __mc68020__ doesn't get defined, hence
RTEMS can compile.

-- 
  Aaron J. Grier  |   Frye Electronics, Tigard, OR   |  aaron at frye.com
  "Note that many bands' backline amps produce levels exceeding OSHA
   standards for industrial facilities.  Yet this is considered normal
   working conditions for musicians.  That's showbiz." -- Scott Dorsey



More information about the users mailing list