diff mbox series

libphobos: Fix builds for powerpc64 with multilib

Message ID 20200428175837.31486-1-ibuclaw@gdcproject.org
State New
Headers show
Series libphobos: Fix builds for powerpc64 with multilib | expand

Commit Message

Iain Buclaw April 28, 2020, 5:58 p.m. UTC
Hi,

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?

Immediately to hand, I only have a powerpc64 cross compiler to test that
both switchcontext.S and callwithstack.S compiler with -m32 and -m64.

Regards
Iain.

---
libphobos/ChangeLog:

	* configure: Regenerated.
	* libdruntime/Makefile.am (DRUNTIME_SOURCES_CONFIGURED): Add both
	switchcontext.S and callwithstack.S if DRUNTIME_CPU_POWERPC.
	(DRUNTIME_CPU_POWERPC): Add config/powerpc64/callwithstack.S.
	* libdruntime/Makefile.in: Regenerated.
	* libdruntime/config/powerpc/switchcontext.S: Add __PPC__ guards.
	* libdruntime/config/powerpc64/callwithstack.S: Add __PPC64__ guards.
	* m4/druntime/cpu.m4 (DRUNTIME_CPU_SOURCES): Define DRUNTIME_CPU_POWER
	for all powerpc biarchs.  Remove DRUNTIME_CPU_POWER64 conditional.
---
 libphobos/configure                           | 23 +-----
 libphobos/libdruntime/Makefile.am             |  6 +-
 libphobos/libdruntime/Makefile.in             | 77 +++++++++----------
 .../config/powerpc/switchcontext.S            |  4 +
 .../config/powerpc64/callwithstack.S          |  4 +
 libphobos/m4/druntime/cpu.m4                  |  7 +-
 6 files changed, 52 insertions(+), 69 deletions(-)

Comments

Segher Boessenkool April 28, 2020, 6:25 p.m. UTC | #1
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.

(What target defines "__ppc__" btw?  It's not standard).

Looks good, okay for trunk with those nits fixed somehow.  Thanks!


Segher
Iain Buclaw April 28, 2020, 6:43 p.m. UTC | #2
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.
Iain Buclaw April 28, 2020, 7:05 p.m. UTC | #3
On 28/04/2020 20:43, Iain Buclaw wrote:
> On 28/04/2020 20:25, Segher Boessenkool wrote:
>> Hi!
>>
>> On Tue, Apr 28, 2020 at 07:58:37PM +0200, Iain Buclaw wrote:
>>>  
>>> +#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.
> 

Actually, no, what I'm doing is fine.  I've removed the config/powerpc64
directory, putting both 32 and 64 bit support in the same location.

Updated the guards to be defined(__PPC64__) and !defined(__PPC64__)
respectively.  And nits addressed.

Iain

---
libphobos/ChangeLog:

	PR d/94825
	* configure: Regenerate.
	* libdruntime/Makefile.am (DRUNTIME_SOURCES_CONFIGURED): Add both
	switchcontext.S and callwithstack.S if DRUNTIME_CPU_POWERPC.
	* libdruntime/Makefile.in: Regenerate.
	* libdruntime/config/powerpc/switchcontext.S: Add !__PPC64__ guards.
	* libdruntime/config/powerpc64/callwithstack.S: Add __PPC64__ guards.
	* m4/druntime/cpu.m4 (DRUNTIME_CPU_SOURCES): Define DRUNTIME_CPU_POWER
	for all powerpc biarchs.  Remove DRUNTIME_CPU_POWER64 conditional.
---
 libphobos/configure                           |  23 +---
 libphobos/libdruntime/Makefile.am             |   6 +-
 libphobos/libdruntime/Makefile.in             | 104 ++++++++----------
 .../{powerpc64 => powerpc}/callwithstack.S    |   4 +
 .../config/powerpc/switchcontext.S            |   4 +
 libphobos/m4/druntime/cpu.m4                  |   7 +-
 6 files changed, 62 insertions(+), 86 deletions(-)
 rename libphobos/libdruntime/config/{powerpc64 => powerpc}/callwithstack.S (98%)

diff --git a/libphobos/configure b/libphobos/configure
index 98d8dc255c1..e461c7442b2 100755
--- a/libphobos/configure
+++ b/libphobos/configure
@@ -692,8 +692,6 @@ DRUNTIME_CPU_SYSTEMZ_FALSE
 DRUNTIME_CPU_SYSTEMZ_TRUE
 DRUNTIME_CPU_X86_FALSE
 DRUNTIME_CPU_X86_TRUE
-DRUNTIME_CPU_POWERPC64_FALSE
-DRUNTIME_CPU_POWERPC64_TRUE
 DRUNTIME_CPU_POWERPC_FALSE
 DRUNTIME_CPU_POWERPC_TRUE
 DRUNTIME_CPU_MIPS_FALSE
@@ -11649,7 +11647,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11652 "configure"
+#line 11650 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11755,7 +11753,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11758 "configure"
+#line 11756 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13991,12 +13989,9 @@ fi
                ;;
       mips*)   druntime_target_cpu_parsed="mips"
                ;;
-      powerpc|powerpcle)
+      powerpc*)
                druntime_target_cpu_parsed="powerpc"
                ;;
-      powerpc64|powerpc64le)
-               druntime_target_cpu_parsed="powerpc64"
-               ;;
       i[34567]86|x86_64)
                druntime_target_cpu_parsed="x86"
                ;;
@@ -14039,14 +14034,6 @@ else
   DRUNTIME_CPU_POWERPC_FALSE=
 fi
 
-   if test "$druntime_target_cpu_parsed" = "powerpc64"; then
-  DRUNTIME_CPU_POWERPC64_TRUE=
-  DRUNTIME_CPU_POWERPC64_FALSE='#'
-else
-  DRUNTIME_CPU_POWERPC64_TRUE='#'
-  DRUNTIME_CPU_POWERPC64_FALSE=
-fi
-
    if test "$druntime_target_cpu_parsed" = "x86"; then
   DRUNTIME_CPU_X86_TRUE=
   DRUNTIME_CPU_X86_FALSE='#'
@@ -15605,10 +15592,6 @@ if test -z "${DRUNTIME_CPU_POWERPC_TRUE}" && test -z "${DRUNTIME_CPU_POWERPC_FAL
   as_fn_error $? "conditional \"DRUNTIME_CPU_POWERPC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${DRUNTIME_CPU_POWERPC64_TRUE}" && test -z "${DRUNTIME_CPU_POWERPC64_FALSE}"; then
-  as_fn_error $? "conditional \"DRUNTIME_CPU_POWERPC64\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${DRUNTIME_CPU_X86_TRUE}" && test -z "${DRUNTIME_CPU_X86_FALSE}"; then
   as_fn_error $? "conditional \"DRUNTIME_CPU_X86\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
diff --git a/libphobos/libdruntime/Makefile.am b/libphobos/libdruntime/Makefile.am
index e1f47d36f90..e1dc24c660b 100644
--- a/libphobos/libdruntime/Makefile.am
+++ b/libphobos/libdruntime/Makefile.am
@@ -81,10 +81,8 @@ if DRUNTIME_CPU_MIPS
     DRUNTIME_SOURCES_CONFIGURED += config/mips/switchcontext.S
 endif
 if DRUNTIME_CPU_POWERPC
-    DRUNTIME_SOURCES_CONFIGURED += config/powerpc/switchcontext.S
-endif
-if DRUNTIME_CPU_POWERPC64
-    DRUNTIME_SOURCES_CONFIGURED += config/powerpc64/callwithstack.S
+    DRUNTIME_SOURCES_CONFIGURED += config/powerpc/callwithstack.S \
+				   config/powerpc/switchcontext.S
 endif
 if DRUNTIME_CPU_X86
 if DRUNTIME_OS_MINGW
diff --git a/libphobos/libdruntime/Makefile.in b/libphobos/libdruntime/Makefile.in
index 53402842cb4..694de3e0b43 100644
--- a/libphobos/libdruntime/Makefile.in
+++ b/libphobos/libdruntime/Makefile.in
@@ -123,12 +123,13 @@ target_triplet = @target@
 @DRUNTIME_CPU_AARCH64_TRUE@am__append_11 = config/aarch64/switchcontext.S
 @DRUNTIME_CPU_ARM_TRUE@am__append_12 = config/arm/switchcontext.S
 @DRUNTIME_CPU_MIPS_TRUE@am__append_13 = config/mips/switchcontext.S
-@DRUNTIME_CPU_POWERPC_TRUE@am__append_14 = config/powerpc/switchcontext.S
-@DRUNTIME_CPU_POWERPC64_TRUE@am__append_15 = config/powerpc64/callwithstack.S
-@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_TRUE@am__append_16 = config/mingw/switchcontext.S
-@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_FALSE@am__append_17 = config/x86/switchcontext.S
-@DRUNTIME_CPU_SYSTEMZ_TRUE@am__append_18 = config/systemz/get_tls_offset.S
-@DRUNTIME_CPU_S390_TRUE@am__append_19 = config/s390/get_tls_offset.S
+@DRUNTIME_CPU_POWERPC_TRUE@am__append_14 = config/powerpc/callwithstack.S \
+@DRUNTIME_CPU_POWERPC_TRUE@				   config/powerpc/switchcontext.S
+
+@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_TRUE@am__append_15 = config/mingw/switchcontext.S
+@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_FALSE@am__append_16 = config/x86/switchcontext.S
+@DRUNTIME_CPU_SYSTEMZ_TRUE@am__append_17 = config/systemz/get_tls_offset.S
+@DRUNTIME_CPU_S390_TRUE@am__append_18 = config/s390/get_tls_offset.S
 subdir = libdruntime
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
@@ -440,46 +441,44 @@ am__objects_21 = core/sys/solaris/dlfcn.lo core/sys/solaris/elf.lo \
 @DRUNTIME_CPU_AARCH64_TRUE@am__objects_23 = config/aarch64/libgdruntime_la-switchcontext.lo
 @DRUNTIME_CPU_ARM_TRUE@am__objects_24 = config/arm/libgdruntime_la-switchcontext.lo
 @DRUNTIME_CPU_MIPS_TRUE@am__objects_25 = config/mips/libgdruntime_la-switchcontext.lo
-@DRUNTIME_CPU_POWERPC_TRUE@am__objects_26 = config/powerpc/libgdruntime_la-switchcontext.lo
-@DRUNTIME_CPU_POWERPC64_TRUE@am__objects_27 = config/powerpc64/libgdruntime_la-callwithstack.lo
-@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_TRUE@am__objects_28 = config/mingw/libgdruntime_la-switchcontext.lo
-@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_FALSE@am__objects_29 = config/x86/libgdruntime_la-switchcontext.lo
-@DRUNTIME_CPU_SYSTEMZ_TRUE@am__objects_30 = config/systemz/libgdruntime_la-get_tls_offset.lo
-@DRUNTIME_CPU_S390_TRUE@am__objects_31 = config/s390/libgdruntime_la-get_tls_offset.lo
-am__objects_32 = $(am__objects_4) $(am__objects_6) $(am__objects_8) \
+@DRUNTIME_CPU_POWERPC_TRUE@am__objects_26 = config/powerpc/libgdruntime_la-callwithstack.lo \
+@DRUNTIME_CPU_POWERPC_TRUE@	config/powerpc/libgdruntime_la-switchcontext.lo
+@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_TRUE@am__objects_27 = config/mingw/libgdruntime_la-switchcontext.lo
+@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_FALSE@am__objects_28 = config/x86/libgdruntime_la-switchcontext.lo
+@DRUNTIME_CPU_SYSTEMZ_TRUE@am__objects_29 = config/systemz/libgdruntime_la-get_tls_offset.lo
+@DRUNTIME_CPU_S390_TRUE@am__objects_30 = config/s390/libgdruntime_la-get_tls_offset.lo
+am__objects_31 = $(am__objects_4) $(am__objects_6) $(am__objects_8) \
 	$(am__objects_10) $(am__objects_12) $(am__objects_14) \
 	$(am__objects_16) $(am__objects_18) $(am__objects_20) \
 	$(am__objects_22) $(am__objects_23) $(am__objects_24) \
 	$(am__objects_25) $(am__objects_26) $(am__objects_27) \
-	$(am__objects_28) $(am__objects_29) $(am__objects_30) \
-	$(am__objects_31)
-am__objects_33 = gcc/config.lo gcc/libbacktrace.lo
-am__objects_34 = $(am__objects_1) $(am__objects_2) $(am__objects_32) \
-	$(am__objects_33)
-am_libgdruntime_la_OBJECTS = $(am__objects_34)
+	$(am__objects_28) $(am__objects_29) $(am__objects_30)
+am__objects_32 = gcc/config.lo gcc/libbacktrace.lo
+am__objects_33 = $(am__objects_1) $(am__objects_2) $(am__objects_31) \
+	$(am__objects_32)
+am_libgdruntime_la_OBJECTS = $(am__objects_33)
 libgdruntime_la_OBJECTS = $(am_libgdruntime_la_OBJECTS)
 am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-am__objects_35 = core/stdc/libgdruntime_convenience_la-errno_.lo
-@DRUNTIME_CPU_AARCH64_TRUE@am__objects_36 = config/aarch64/libgdruntime_convenience_la-switchcontext.lo
-@DRUNTIME_CPU_ARM_TRUE@am__objects_37 = config/arm/libgdruntime_convenience_la-switchcontext.lo
-@DRUNTIME_CPU_MIPS_TRUE@am__objects_38 = config/mips/libgdruntime_convenience_la-switchcontext.lo
-@DRUNTIME_CPU_POWERPC_TRUE@am__objects_39 = config/powerpc/libgdruntime_convenience_la-switchcontext.lo
-@DRUNTIME_CPU_POWERPC64_TRUE@am__objects_40 = config/powerpc64/libgdruntime_convenience_la-callwithstack.lo
-@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_TRUE@am__objects_41 = config/mingw/libgdruntime_convenience_la-switchcontext.lo
-@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_FALSE@am__objects_42 = config/x86/libgdruntime_convenience_la-switchcontext.lo
-@DRUNTIME_CPU_SYSTEMZ_TRUE@am__objects_43 = config/systemz/libgdruntime_convenience_la-get_tls_offset.lo
-@DRUNTIME_CPU_S390_TRUE@am__objects_44 = config/s390/libgdruntime_convenience_la-get_tls_offset.lo
-am__objects_45 = $(am__objects_4) $(am__objects_6) $(am__objects_8) \
+am__objects_34 = core/stdc/libgdruntime_convenience_la-errno_.lo
+@DRUNTIME_CPU_AARCH64_TRUE@am__objects_35 = config/aarch64/libgdruntime_convenience_la-switchcontext.lo
+@DRUNTIME_CPU_ARM_TRUE@am__objects_36 = config/arm/libgdruntime_convenience_la-switchcontext.lo
+@DRUNTIME_CPU_MIPS_TRUE@am__objects_37 = config/mips/libgdruntime_convenience_la-switchcontext.lo
+@DRUNTIME_CPU_POWERPC_TRUE@am__objects_38 = config/powerpc/libgdruntime_convenience_la-callwithstack.lo \
+@DRUNTIME_CPU_POWERPC_TRUE@	config/powerpc/libgdruntime_convenience_la-switchcontext.lo
+@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_TRUE@am__objects_39 = config/mingw/libgdruntime_convenience_la-switchcontext.lo
+@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_FALSE@am__objects_40 = config/x86/libgdruntime_convenience_la-switchcontext.lo
+@DRUNTIME_CPU_SYSTEMZ_TRUE@am__objects_41 = config/systemz/libgdruntime_convenience_la-get_tls_offset.lo
+@DRUNTIME_CPU_S390_TRUE@am__objects_42 = config/s390/libgdruntime_convenience_la-get_tls_offset.lo
+am__objects_43 = $(am__objects_4) $(am__objects_6) $(am__objects_8) \
 	$(am__objects_10) $(am__objects_12) $(am__objects_14) \
 	$(am__objects_16) $(am__objects_18) $(am__objects_20) \
-	$(am__objects_22) $(am__objects_36) $(am__objects_37) \
-	$(am__objects_38) $(am__objects_39) $(am__objects_40) \
-	$(am__objects_41) $(am__objects_42) $(am__objects_43) \
-	$(am__objects_44)
-am__objects_46 = $(am__objects_1) $(am__objects_35) $(am__objects_45) \
-	$(am__objects_33)
-am__objects_47 = $(am__objects_46)
-am_libgdruntime_convenience_la_OBJECTS = $(am__objects_47)
+	$(am__objects_22) $(am__objects_35) $(am__objects_36) \
+	$(am__objects_37) $(am__objects_38) $(am__objects_39) \
+	$(am__objects_40) $(am__objects_41) $(am__objects_42)
+am__objects_44 = $(am__objects_1) $(am__objects_34) $(am__objects_43) \
+	$(am__objects_32)
+am__objects_45 = $(am__objects_44)
+am_libgdruntime_convenience_la_OBJECTS = $(am__objects_45)
 libgdruntime_convenience_la_OBJECTS =  \
 	$(am_libgdruntime_convenience_la_OBJECTS)
 AM_V_P = $(am__v_P_@AM_V@)
@@ -741,7 +740,7 @@ DRUNTIME_SOURCES_CONFIGURED = $(am__append_1) $(am__append_2) \
 	$(am__append_9) $(am__append_10) $(am__append_11) \
 	$(am__append_12) $(am__append_13) $(am__append_14) \
 	$(am__append_15) $(am__append_16) $(am__append_17) \
-	$(am__append_18) $(am__append_19)
+	$(am__append_18)
 
 # Provide __start_minfo, __stop_minfo if linker doesn't.
 @DRUNTIME_OS_MINFO_BRACKETING_FALSE@DRTSTUFF = gcc/drtbegin.o gcc/drtend.o
@@ -1749,13 +1748,10 @@ config/mips/libgdruntime_la-switchcontext.lo:  \
 config/powerpc/$(am__dirstamp):
 	@$(MKDIR_P) config/powerpc
 	@: > config/powerpc/$(am__dirstamp)
+config/powerpc/libgdruntime_la-callwithstack.lo:  \
+	config/powerpc/$(am__dirstamp)
 config/powerpc/libgdruntime_la-switchcontext.lo:  \
 	config/powerpc/$(am__dirstamp)
-config/powerpc64/$(am__dirstamp):
-	@$(MKDIR_P) config/powerpc64
-	@: > config/powerpc64/$(am__dirstamp)
-config/powerpc64/libgdruntime_la-callwithstack.lo:  \
-	config/powerpc64/$(am__dirstamp)
 config/mingw/$(am__dirstamp):
 	@$(MKDIR_P) config/mingw
 	@: > config/mingw/$(am__dirstamp)
@@ -1789,10 +1785,10 @@ config/arm/libgdruntime_convenience_la-switchcontext.lo:  \
 	config/arm/$(am__dirstamp)
 config/mips/libgdruntime_convenience_la-switchcontext.lo:  \
 	config/mips/$(am__dirstamp)
+config/powerpc/libgdruntime_convenience_la-callwithstack.lo:  \
+	config/powerpc/$(am__dirstamp)
 config/powerpc/libgdruntime_convenience_la-switchcontext.lo:  \
 	config/powerpc/$(am__dirstamp)
-config/powerpc64/libgdruntime_convenience_la-callwithstack.lo:  \
-	config/powerpc64/$(am__dirstamp)
 config/mingw/libgdruntime_convenience_la-switchcontext.lo:  \
 	config/mingw/$(am__dirstamp)
 config/x86/libgdruntime_convenience_la-switchcontext.lo:  \
@@ -1817,8 +1813,6 @@ mostlyclean-compile:
 	-rm -f config/mips/*.lo
 	-rm -f config/powerpc/*.$(OBJEXT)
 	-rm -f config/powerpc/*.lo
-	-rm -f config/powerpc64/*.$(OBJEXT)
-	-rm -f config/powerpc64/*.lo
 	-rm -f config/s390/*.$(OBJEXT)
 	-rm -f config/s390/*.lo
 	-rm -f config/systemz/*.$(OBJEXT)
@@ -1927,12 +1921,12 @@ config/arm/libgdruntime_la-switchcontext.lo: config/arm/switchcontext.S
 config/mips/libgdruntime_la-switchcontext.lo: config/mips/switchcontext.S
 	$(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) $(libgdruntime_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o config/mips/libgdruntime_la-switchcontext.lo `test -f 'config/mips/switchcontext.S' || echo '$(srcdir)/'`config/mips/switchcontext.S
 
+config/powerpc/libgdruntime_la-callwithstack.lo: config/powerpc/callwithstack.S
+	$(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) $(libgdruntime_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o config/powerpc/libgdruntime_la-callwithstack.lo `test -f 'config/powerpc/callwithstack.S' || echo '$(srcdir)/'`config/powerpc/callwithstack.S
+
 config/powerpc/libgdruntime_la-switchcontext.lo: config/powerpc/switchcontext.S
 	$(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) $(libgdruntime_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o config/powerpc/libgdruntime_la-switchcontext.lo `test -f 'config/powerpc/switchcontext.S' || echo '$(srcdir)/'`config/powerpc/switchcontext.S
 
-config/powerpc64/libgdruntime_la-callwithstack.lo: config/powerpc64/callwithstack.S
-	$(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) $(libgdruntime_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o config/powerpc64/libgdruntime_la-callwithstack.lo `test -f 'config/powerpc64/callwithstack.S' || echo '$(srcdir)/'`config/powerpc64/callwithstack.S
-
 config/mingw/libgdruntime_la-switchcontext.lo: config/mingw/switchcontext.S
 	$(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) $(libgdruntime_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o config/mingw/libgdruntime_la-switchcontext.lo `test -f 'config/mingw/switchcontext.S' || echo '$(srcdir)/'`config/mingw/switchcontext.S
 
@@ -1954,12 +1948,12 @@ config/arm/libgdruntime_convenience_la-switchcontext.lo: config/arm/switchcontex
 config/mips/libgdruntime_convenience_la-switchcontext.lo: config/mips/switchcontext.S
 	$(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) $(libgdruntime_convenience_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o config/mips/libgdruntime_convenience_la-switchcontext.lo `test -f 'config/mips/switchcontext.S' || echo '$(srcdir)/'`config/mips/switchcontext.S
 
+config/powerpc/libgdruntime_convenience_la-callwithstack.lo: config/powerpc/callwithstack.S
+	$(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) $(libgdruntime_convenience_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o config/powerpc/libgdruntime_convenience_la-callwithstack.lo `test -f 'config/powerpc/callwithstack.S' || echo '$(srcdir)/'`config/powerpc/callwithstack.S
+
 config/powerpc/libgdruntime_convenience_la-switchcontext.lo: config/powerpc/switchcontext.S
 	$(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) $(libgdruntime_convenience_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o config/powerpc/libgdruntime_convenience_la-switchcontext.lo `test -f 'config/powerpc/switchcontext.S' || echo '$(srcdir)/'`config/powerpc/switchcontext.S
 
-config/powerpc64/libgdruntime_convenience_la-callwithstack.lo: config/powerpc64/callwithstack.S
-	$(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) $(libgdruntime_convenience_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o config/powerpc64/libgdruntime_convenience_la-callwithstack.lo `test -f 'config/powerpc64/callwithstack.S' || echo '$(srcdir)/'`config/powerpc64/callwithstack.S
-
 config/mingw/libgdruntime_convenience_la-switchcontext.lo: config/mingw/switchcontext.S
 	$(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) $(libgdruntime_convenience_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o config/mingw/libgdruntime_convenience_la-switchcontext.lo `test -f 'config/mingw/switchcontext.S' || echo '$(srcdir)/'`config/mingw/switchcontext.S
 
@@ -1997,7 +1991,6 @@ clean-libtool:
 	-rm -rf config/mingw/.libs config/mingw/_libs
 	-rm -rf config/mips/.libs config/mips/_libs
 	-rm -rf config/powerpc/.libs config/powerpc/_libs
-	-rm -rf config/powerpc64/.libs config/powerpc64/_libs
 	-rm -rf config/s390/.libs config/s390/_libs
 	-rm -rf config/systemz/.libs config/systemz/_libs
 	-rm -rf config/x86/.libs config/x86/_libs
@@ -2152,7 +2145,6 @@ distclean-generic:
 	-rm -f config/mingw/$(am__dirstamp)
 	-rm -f config/mips/$(am__dirstamp)
 	-rm -f config/powerpc/$(am__dirstamp)
-	-rm -f config/powerpc64/$(am__dirstamp)
 	-rm -f config/s390/$(am__dirstamp)
 	-rm -f config/systemz/$(am__dirstamp)
 	-rm -f config/x86/$(am__dirstamp)
diff --git a/libphobos/libdruntime/config/powerpc64/callwithstack.S b/libphobos/libdruntime/config/powerpc/callwithstack.S
similarity index 98%
rename from libphobos/libdruntime/config/powerpc64/callwithstack.S
rename to libphobos/libdruntime/config/powerpc/callwithstack.S
index 4c5a31945a4..0752c5d0322 100644
--- a/libphobos/libdruntime/config/powerpc64/callwithstack.S
+++ b/libphobos/libdruntime/config/powerpc/callwithstack.S
@@ -24,6 +24,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 #include "../common/threadasm.S"
 
+#if defined(__PPC64__)
+
 #if defined(_CALL_ELF) && _CALL_ELF == 2
 #define USE_ABI_2
 #define LINKAGE_SZ   32
@@ -166,3 +168,5 @@ _D4core6thread18callWithStackShellFNbMDFNbPvZvZv:
 .Lend:
     .size _D4core6thread18callWithStackShellFNbMDFNbPvZvZv, .Lend-.L._D4core6thread18callWithStackShellFNbMDFNbPvZvZv
     .cfi_endproc
+
+#endif /* defined(__PPC64__) */
diff --git a/libphobos/libdruntime/config/powerpc/switchcontext.S b/libphobos/libdruntime/config/powerpc/switchcontext.S
index 5470f9c4ca3..0a6cc243942 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(__PPC64__)
+
 /**
  * Performs a context switch.
  *
@@ -148,3 +150,5 @@ CSYM(_fiber_switchContext):
     blr
     .cfi_endproc
     .size CSYM(_fiber_switchContext),.-CSYM(_fiber_switchContext)
+
+#endif /* !defined(__PPC64__) */
diff --git a/libphobos/m4/druntime/cpu.m4 b/libphobos/m4/druntime/cpu.m4
index 6e88896ca66..db3a92c15fa 100644
--- a/libphobos/m4/druntime/cpu.m4
+++ b/libphobos/m4/druntime/cpu.m4
@@ -17,12 +17,9 @@ AC_DEFUN([DRUNTIME_CPU_SOURCES],
                ;;
       mips*)   druntime_target_cpu_parsed="mips"
                ;;
-      powerpc|powerpcle)
+      powerpc*)
                druntime_target_cpu_parsed="powerpc"
                ;;
-      powerpc64|powerpc64le)
-               druntime_target_cpu_parsed="powerpc64"
-               ;;
       i[[34567]]86|x86_64)
                druntime_target_cpu_parsed="x86"
                ;;
@@ -41,8 +38,6 @@ AC_DEFUN([DRUNTIME_CPU_SOURCES],
                  [test "$druntime_target_cpu_parsed" = "mips"])
   AM_CONDITIONAL([DRUNTIME_CPU_POWERPC],
                  [test "$druntime_target_cpu_parsed" = "powerpc"])
-  AM_CONDITIONAL([DRUNTIME_CPU_POWERPC64],
-                 [test "$druntime_target_cpu_parsed" = "powerpc64"])
   AM_CONDITIONAL([DRUNTIME_CPU_X86],
                  [test "$druntime_target_cpu_parsed" = "x86"])
   AM_CONDITIONAL([DRUNTIME_CPU_SYSTEMZ],
diff mbox series

Patch

diff --git a/libphobos/configure b/libphobos/configure
index 98d8dc255c1..e461c7442b2 100755
--- a/libphobos/configure
+++ b/libphobos/configure
@@ -692,8 +692,6 @@  DRUNTIME_CPU_SYSTEMZ_FALSE
 DRUNTIME_CPU_SYSTEMZ_TRUE
 DRUNTIME_CPU_X86_FALSE
 DRUNTIME_CPU_X86_TRUE
-DRUNTIME_CPU_POWERPC64_FALSE
-DRUNTIME_CPU_POWERPC64_TRUE
 DRUNTIME_CPU_POWERPC_FALSE
 DRUNTIME_CPU_POWERPC_TRUE
 DRUNTIME_CPU_MIPS_FALSE
@@ -11649,7 +11647,7 @@  else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11652 "configure"
+#line 11650 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11755,7 +11753,7 @@  else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11758 "configure"
+#line 11756 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13991,12 +13989,9 @@  fi
                ;;
       mips*)   druntime_target_cpu_parsed="mips"
                ;;
-      powerpc|powerpcle)
+      powerpc*)
                druntime_target_cpu_parsed="powerpc"
                ;;
-      powerpc64|powerpc64le)
-               druntime_target_cpu_parsed="powerpc64"
-               ;;
       i[34567]86|x86_64)
                druntime_target_cpu_parsed="x86"
                ;;
@@ -14039,14 +14034,6 @@  else
   DRUNTIME_CPU_POWERPC_FALSE=
 fi
 
-   if test "$druntime_target_cpu_parsed" = "powerpc64"; then
-  DRUNTIME_CPU_POWERPC64_TRUE=
-  DRUNTIME_CPU_POWERPC64_FALSE='#'
-else
-  DRUNTIME_CPU_POWERPC64_TRUE='#'
-  DRUNTIME_CPU_POWERPC64_FALSE=
-fi
-
    if test "$druntime_target_cpu_parsed" = "x86"; then
   DRUNTIME_CPU_X86_TRUE=
   DRUNTIME_CPU_X86_FALSE='#'
@@ -15605,10 +15592,6 @@  if test -z "${DRUNTIME_CPU_POWERPC_TRUE}" && test -z "${DRUNTIME_CPU_POWERPC_FAL
   as_fn_error $? "conditional \"DRUNTIME_CPU_POWERPC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${DRUNTIME_CPU_POWERPC64_TRUE}" && test -z "${DRUNTIME_CPU_POWERPC64_FALSE}"; then
-  as_fn_error $? "conditional \"DRUNTIME_CPU_POWERPC64\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${DRUNTIME_CPU_X86_TRUE}" && test -z "${DRUNTIME_CPU_X86_FALSE}"; then
   as_fn_error $? "conditional \"DRUNTIME_CPU_X86\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
diff --git a/libphobos/libdruntime/Makefile.am b/libphobos/libdruntime/Makefile.am
index e1f47d36f90..1b1c5689e7e 100644
--- a/libphobos/libdruntime/Makefile.am
+++ b/libphobos/libdruntime/Makefile.am
@@ -81,10 +81,8 @@  if DRUNTIME_CPU_MIPS
     DRUNTIME_SOURCES_CONFIGURED += config/mips/switchcontext.S
 endif
 if DRUNTIME_CPU_POWERPC
-    DRUNTIME_SOURCES_CONFIGURED += config/powerpc/switchcontext.S
-endif
-if DRUNTIME_CPU_POWERPC64
-    DRUNTIME_SOURCES_CONFIGURED += config/powerpc64/callwithstack.S
+    DRUNTIME_SOURCES_CONFIGURED += config/powerpc/switchcontext.S \
+				   config/powerpc64/callwithstack.S
 endif
 if DRUNTIME_CPU_X86
 if DRUNTIME_OS_MINGW
diff --git a/libphobos/libdruntime/Makefile.in b/libphobos/libdruntime/Makefile.in
index 53402842cb4..04e58bb9034 100644
--- a/libphobos/libdruntime/Makefile.in
+++ b/libphobos/libdruntime/Makefile.in
@@ -123,12 +123,13 @@  target_triplet = @target@
 @DRUNTIME_CPU_AARCH64_TRUE@am__append_11 = config/aarch64/switchcontext.S
 @DRUNTIME_CPU_ARM_TRUE@am__append_12 = config/arm/switchcontext.S
 @DRUNTIME_CPU_MIPS_TRUE@am__append_13 = config/mips/switchcontext.S
-@DRUNTIME_CPU_POWERPC_TRUE@am__append_14 = config/powerpc/switchcontext.S
-@DRUNTIME_CPU_POWERPC64_TRUE@am__append_15 = config/powerpc64/callwithstack.S
-@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_TRUE@am__append_16 = config/mingw/switchcontext.S
-@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_FALSE@am__append_17 = config/x86/switchcontext.S
-@DRUNTIME_CPU_SYSTEMZ_TRUE@am__append_18 = config/systemz/get_tls_offset.S
-@DRUNTIME_CPU_S390_TRUE@am__append_19 = config/s390/get_tls_offset.S
+@DRUNTIME_CPU_POWERPC_TRUE@am__append_14 = config/powerpc/switchcontext.S \
+@DRUNTIME_CPU_POWERPC_TRUE@				   config/powerpc64/callwithstack.S
+
+@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_TRUE@am__append_15 = config/mingw/switchcontext.S
+@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_FALSE@am__append_16 = config/x86/switchcontext.S
+@DRUNTIME_CPU_SYSTEMZ_TRUE@am__append_17 = config/systemz/get_tls_offset.S
+@DRUNTIME_CPU_S390_TRUE@am__append_18 = config/s390/get_tls_offset.S
 subdir = libdruntime
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
@@ -440,46 +441,44 @@  am__objects_21 = core/sys/solaris/dlfcn.lo core/sys/solaris/elf.lo \
 @DRUNTIME_CPU_AARCH64_TRUE@am__objects_23 = config/aarch64/libgdruntime_la-switchcontext.lo
 @DRUNTIME_CPU_ARM_TRUE@am__objects_24 = config/arm/libgdruntime_la-switchcontext.lo
 @DRUNTIME_CPU_MIPS_TRUE@am__objects_25 = config/mips/libgdruntime_la-switchcontext.lo
-@DRUNTIME_CPU_POWERPC_TRUE@am__objects_26 = config/powerpc/libgdruntime_la-switchcontext.lo
-@DRUNTIME_CPU_POWERPC64_TRUE@am__objects_27 = config/powerpc64/libgdruntime_la-callwithstack.lo
-@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_TRUE@am__objects_28 = config/mingw/libgdruntime_la-switchcontext.lo
-@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_FALSE@am__objects_29 = config/x86/libgdruntime_la-switchcontext.lo
-@DRUNTIME_CPU_SYSTEMZ_TRUE@am__objects_30 = config/systemz/libgdruntime_la-get_tls_offset.lo
-@DRUNTIME_CPU_S390_TRUE@am__objects_31 = config/s390/libgdruntime_la-get_tls_offset.lo
-am__objects_32 = $(am__objects_4) $(am__objects_6) $(am__objects_8) \
+@DRUNTIME_CPU_POWERPC_TRUE@am__objects_26 = config/powerpc/libgdruntime_la-switchcontext.lo \
+@DRUNTIME_CPU_POWERPC_TRUE@	config/powerpc64/libgdruntime_la-callwithstack.lo
+@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_TRUE@am__objects_27 = config/mingw/libgdruntime_la-switchcontext.lo
+@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_FALSE@am__objects_28 = config/x86/libgdruntime_la-switchcontext.lo
+@DRUNTIME_CPU_SYSTEMZ_TRUE@am__objects_29 = config/systemz/libgdruntime_la-get_tls_offset.lo
+@DRUNTIME_CPU_S390_TRUE@am__objects_30 = config/s390/libgdruntime_la-get_tls_offset.lo
+am__objects_31 = $(am__objects_4) $(am__objects_6) $(am__objects_8) \
 	$(am__objects_10) $(am__objects_12) $(am__objects_14) \
 	$(am__objects_16) $(am__objects_18) $(am__objects_20) \
 	$(am__objects_22) $(am__objects_23) $(am__objects_24) \
 	$(am__objects_25) $(am__objects_26) $(am__objects_27) \
-	$(am__objects_28) $(am__objects_29) $(am__objects_30) \
-	$(am__objects_31)
-am__objects_33 = gcc/config.lo gcc/libbacktrace.lo
-am__objects_34 = $(am__objects_1) $(am__objects_2) $(am__objects_32) \
-	$(am__objects_33)
-am_libgdruntime_la_OBJECTS = $(am__objects_34)
+	$(am__objects_28) $(am__objects_29) $(am__objects_30)
+am__objects_32 = gcc/config.lo gcc/libbacktrace.lo
+am__objects_33 = $(am__objects_1) $(am__objects_2) $(am__objects_31) \
+	$(am__objects_32)
+am_libgdruntime_la_OBJECTS = $(am__objects_33)
 libgdruntime_la_OBJECTS = $(am_libgdruntime_la_OBJECTS)
 am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-am__objects_35 = core/stdc/libgdruntime_convenience_la-errno_.lo
-@DRUNTIME_CPU_AARCH64_TRUE@am__objects_36 = config/aarch64/libgdruntime_convenience_la-switchcontext.lo
-@DRUNTIME_CPU_ARM_TRUE@am__objects_37 = config/arm/libgdruntime_convenience_la-switchcontext.lo
-@DRUNTIME_CPU_MIPS_TRUE@am__objects_38 = config/mips/libgdruntime_convenience_la-switchcontext.lo
-@DRUNTIME_CPU_POWERPC_TRUE@am__objects_39 = config/powerpc/libgdruntime_convenience_la-switchcontext.lo
-@DRUNTIME_CPU_POWERPC64_TRUE@am__objects_40 = config/powerpc64/libgdruntime_convenience_la-callwithstack.lo
-@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_TRUE@am__objects_41 = config/mingw/libgdruntime_convenience_la-switchcontext.lo
-@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_FALSE@am__objects_42 = config/x86/libgdruntime_convenience_la-switchcontext.lo
-@DRUNTIME_CPU_SYSTEMZ_TRUE@am__objects_43 = config/systemz/libgdruntime_convenience_la-get_tls_offset.lo
-@DRUNTIME_CPU_S390_TRUE@am__objects_44 = config/s390/libgdruntime_convenience_la-get_tls_offset.lo
-am__objects_45 = $(am__objects_4) $(am__objects_6) $(am__objects_8) \
+am__objects_34 = core/stdc/libgdruntime_convenience_la-errno_.lo
+@DRUNTIME_CPU_AARCH64_TRUE@am__objects_35 = config/aarch64/libgdruntime_convenience_la-switchcontext.lo
+@DRUNTIME_CPU_ARM_TRUE@am__objects_36 = config/arm/libgdruntime_convenience_la-switchcontext.lo
+@DRUNTIME_CPU_MIPS_TRUE@am__objects_37 = config/mips/libgdruntime_convenience_la-switchcontext.lo
+@DRUNTIME_CPU_POWERPC_TRUE@am__objects_38 = config/powerpc/libgdruntime_convenience_la-switchcontext.lo \
+@DRUNTIME_CPU_POWERPC_TRUE@	config/powerpc64/libgdruntime_convenience_la-callwithstack.lo
+@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_TRUE@am__objects_39 = config/mingw/libgdruntime_convenience_la-switchcontext.lo
+@DRUNTIME_CPU_X86_TRUE@@DRUNTIME_OS_MINGW_FALSE@am__objects_40 = config/x86/libgdruntime_convenience_la-switchcontext.lo
+@DRUNTIME_CPU_SYSTEMZ_TRUE@am__objects_41 = config/systemz/libgdruntime_convenience_la-get_tls_offset.lo
+@DRUNTIME_CPU_S390_TRUE@am__objects_42 = config/s390/libgdruntime_convenience_la-get_tls_offset.lo
+am__objects_43 = $(am__objects_4) $(am__objects_6) $(am__objects_8) \
 	$(am__objects_10) $(am__objects_12) $(am__objects_14) \
 	$(am__objects_16) $(am__objects_18) $(am__objects_20) \
-	$(am__objects_22) $(am__objects_36) $(am__objects_37) \
-	$(am__objects_38) $(am__objects_39) $(am__objects_40) \
-	$(am__objects_41) $(am__objects_42) $(am__objects_43) \
-	$(am__objects_44)
-am__objects_46 = $(am__objects_1) $(am__objects_35) $(am__objects_45) \
-	$(am__objects_33)
-am__objects_47 = $(am__objects_46)
-am_libgdruntime_convenience_la_OBJECTS = $(am__objects_47)
+	$(am__objects_22) $(am__objects_35) $(am__objects_36) \
+	$(am__objects_37) $(am__objects_38) $(am__objects_39) \
+	$(am__objects_40) $(am__objects_41) $(am__objects_42)
+am__objects_44 = $(am__objects_1) $(am__objects_34) $(am__objects_43) \
+	$(am__objects_32)
+am__objects_45 = $(am__objects_44)
+am_libgdruntime_convenience_la_OBJECTS = $(am__objects_45)
 libgdruntime_convenience_la_OBJECTS =  \
 	$(am_libgdruntime_convenience_la_OBJECTS)
 AM_V_P = $(am__v_P_@AM_V@)
@@ -741,7 +740,7 @@  DRUNTIME_SOURCES_CONFIGURED = $(am__append_1) $(am__append_2) \
 	$(am__append_9) $(am__append_10) $(am__append_11) \
 	$(am__append_12) $(am__append_13) $(am__append_14) \
 	$(am__append_15) $(am__append_16) $(am__append_17) \
-	$(am__append_18) $(am__append_19)
+	$(am__append_18)
 
 # Provide __start_minfo, __stop_minfo if linker doesn't.
 @DRUNTIME_OS_MINFO_BRACKETING_FALSE@DRTSTUFF = gcc/drtbegin.o gcc/drtend.o
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__ )
+
 /**
  * Performs a context switch.
  *
@@ -148,3 +150,5 @@  CSYM(_fiber_switchContext):
     blr
     .cfi_endproc
     .size CSYM(_fiber_switchContext),.-CSYM(_fiber_switchContext)
+
+#endif /* defined( __ppc__ ) || defined( __PPC__ ) || defined( __powerpc__ ) */
diff --git a/libphobos/libdruntime/config/powerpc64/callwithstack.S b/libphobos/libdruntime/config/powerpc64/callwithstack.S
index 4c5a31945a4..a85d9c4549d 100644
--- a/libphobos/libdruntime/config/powerpc64/callwithstack.S
+++ b/libphobos/libdruntime/config/powerpc64/callwithstack.S
@@ -24,6 +24,8 @@  see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 #include "../common/threadasm.S"
 
+#if defined( __PPC64__ )
+
 #if defined(_CALL_ELF) && _CALL_ELF == 2
 #define USE_ABI_2
 #define LINKAGE_SZ   32
@@ -166,3 +168,5 @@  _D4core6thread18callWithStackShellFNbMDFNbPvZvZv:
 .Lend:
     .size _D4core6thread18callWithStackShellFNbMDFNbPvZvZv, .Lend-.L._D4core6thread18callWithStackShellFNbMDFNbPvZvZv
     .cfi_endproc
+
+#endif /* defined( __PPC64__ ) */
diff --git a/libphobos/m4/druntime/cpu.m4 b/libphobos/m4/druntime/cpu.m4
index 6e88896ca66..db3a92c15fa 100644
--- a/libphobos/m4/druntime/cpu.m4
+++ b/libphobos/m4/druntime/cpu.m4
@@ -17,12 +17,9 @@  AC_DEFUN([DRUNTIME_CPU_SOURCES],
                ;;
       mips*)   druntime_target_cpu_parsed="mips"
                ;;
-      powerpc|powerpcle)
+      powerpc*)
                druntime_target_cpu_parsed="powerpc"
                ;;
-      powerpc64|powerpc64le)
-               druntime_target_cpu_parsed="powerpc64"
-               ;;
       i[[34567]]86|x86_64)
                druntime_target_cpu_parsed="x86"
                ;;
@@ -41,8 +38,6 @@  AC_DEFUN([DRUNTIME_CPU_SOURCES],
                  [test "$druntime_target_cpu_parsed" = "mips"])
   AM_CONDITIONAL([DRUNTIME_CPU_POWERPC],
                  [test "$druntime_target_cpu_parsed" = "powerpc"])
-  AM_CONDITIONAL([DRUNTIME_CPU_POWERPC64],
-                 [test "$druntime_target_cpu_parsed" = "powerpc64"])
   AM_CONDITIONAL([DRUNTIME_CPU_X86],
                  [test "$druntime_target_cpu_parsed" = "x86"])
   AM_CONDITIONAL([DRUNTIME_CPU_SYSTEMZ],