[PATCH] libphobos: Fix builds for powerpc64 with multilib

Iain Buclaw ibuclaw@gdcproject.org
Tue Apr 28 18:43:55 GMT 2020


On 28/04/2020 20:25, Segher Boessenkool wrote:
> Hi!
> 
> On Tue, Apr 28, 2020 at 07:58:37PM +0200, Iain Buclaw wrote:
>> This patch should fix builds on PPC with multilib enabled.
>>
>> Multilibs should not have been split up as two logically different CPU,
>> so at configure time, powerpc64 was being detected, but none of the
>> 32-bit support files were being compiled in.
>>
>> Segher, is this OK?
> 
> If it fixes the bootstrap breakage, that is good :-)
> 
>> 	* configure: Regenerated.
> 
> "Regenerate."  (Not passive).
> 
>> diff --git a/libphobos/libdruntime/config/powerpc/switchcontext.S b/libphobos/libdruntime/config/powerpc/switchcontext.S
>> index 5470f9c4ca3..82ee542064b 100644
>> --- a/libphobos/libdruntime/config/powerpc/switchcontext.S
>> +++ b/libphobos/libdruntime/config/powerpc/switchcontext.S
>> @@ -24,6 +24,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
>>  
>>  #include "../common/threadasm.S"
>>  
>> +#if defined( __ppc__ ) || defined( __PPC__ ) || defined( __powerpc__ )
> 
> What is this for?  Everything in libphobos/libdruntime/config/powerpc/
> is for PowerPC anyway?  Or is this meant to select "not 64 bit"?  That
> is not what these macros mean.
> 

I had pulled it from the previous file when everything used to be
squashed into one mega source file.  On a closer look, the order matters
here:

#if defined(__PPC64__)

#elif defined( __ppc__ ) || defined( __PPC__ ) || defined( __powerpc__ )

#endif

I couldn't say where __ppc__ came from I'm afraid, but I'll remove it.

Having now looked at how S390/S390x handled multilib, I'll do this in a
slightly different way then.

Iain.


More information about the Gcc-patches mailing list