https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106680

--- Comment #13 from Sebastian Huber <sebastian.hu...@embedded-brains.de> ---
(In reply to Kewen Lin from comment #12)
> (In reply to Sebastian Huber from comment #10)
> > (In reply to Kewen Lin from comment #9)
> > > Note that now we only disable implicit powerpc64 for -m32 when the
> > > OS_MISSING_POWERPC64 is set.
> > > 
> > >   /* Don't expect powerpc64 enabled on those OSes with 
> > > OS_MISSING_POWERPC64,
> > >      since they do not save and restore the high half of the GPRs 
> > > correctly
> > >      in all cases.  If the user explicitly specifies it, we won't 
> > > interfere
> > >      with the user's specification.  */
> > > #ifdef OS_MISSING_POWERPC64
> > >   if (OS_MISSING_POWERPC64
> > >       && TARGET_32BIT
> > >       && TARGET_POWERPC64
> > >       && !(rs6000_isa_flags_explicit & OPTION_MASK_POWERPC64))
> > >     rs6000_isa_flags &= ~OPTION_MASK_POWERPC64;
> > > #endif
> > > 
> > > But rtems.h doesn't define OS_MISSING_POWERPC64
> > 
> > RTEMS supports the 64-bit PowerPC for the 64-bit multilibs.
> > 
> 
> 64-bit kernel should support 64-bit PowerPC, but does 32-bit kernel support
> saving and restoring 64-bit regs?

For the 32-bit multilibs, we don't save/restore the full 64-bit registers.

> 
> The current rtems.h is saying yes, if it's no, we should fix the rtems.h and
> you won't need the explicit -mno-powerpc64 then.
> 
> 
> btw, take the comments in freebsd64.h for example.
> 
> /* FreeBSD doesn't support saving and restoring 64-bit regs with a 32-bit
>    kernel. This is supported when running on a 64-bit kernel with
>    COMPAT_FREEBSD32, but tell GCC it isn't so that our 32-bit binaries
>    are compatible. */
> #define OS_MISSING_POWERPC64 !TARGET_64BIT

Thanks for the hint, I will try out this setting.

Reply via email to