about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-10-04 16:02:33 +0000
committerJoseph Myers <joseph@codesourcery.com>2013-10-04 16:02:33 +0000
commit29d73d867e1df54d703542cf7d076c5620dc2fb7 (patch)
treef6f0dd2a285848ae56b9bedaac2d817818bc674f
parente246b347599a402119c5cb6726d7853cb6307f0f (diff)
downloadglibc-29d73d867e1df54d703542cf7d076c5620dc2fb7.tar.gz
glibc-29d73d867e1df54d703542cf7d076c5620dc2fb7.tar.xz
glibc-29d73d867e1df54d703542cf7d076c5620dc2fb7.zip
Move powerpc ports pieces to libc.
-rw-r--r--ChangeLog30
-rw-r--r--README3
-rw-r--r--ports/ChangeLog.powerpc31
-rw-r--r--ports/sysdeps/powerpc/powerpc32/Makefile8
-rw-r--r--sysdeps/powerpc/nofpu/Makefile (renamed from ports/sysdeps/powerpc/nofpu/Makefile)0
-rw-r--r--sysdeps/powerpc/nofpu/Subdirs (renamed from ports/sysdeps/powerpc/nofpu/Subdirs)0
-rw-r--r--sysdeps/powerpc/nofpu/Versions (renamed from ports/sysdeps/powerpc/nofpu/Versions)0
-rw-r--r--sysdeps/powerpc/nofpu/fclrexcpt.c (renamed from ports/sysdeps/powerpc/nofpu/fclrexcpt.c)0
-rw-r--r--sysdeps/powerpc/nofpu/fedisblxcpt.c (renamed from ports/sysdeps/powerpc/nofpu/fedisblxcpt.c)0
-rw-r--r--sysdeps/powerpc/nofpu/feenablxcpt.c (renamed from ports/sysdeps/powerpc/nofpu/feenablxcpt.c)0
-rw-r--r--sysdeps/powerpc/nofpu/fegetenv.c (renamed from ports/sysdeps/powerpc/nofpu/fegetenv.c)0
-rw-r--r--sysdeps/powerpc/nofpu/fegetexcept.c (renamed from ports/sysdeps/powerpc/nofpu/fegetexcept.c)0
-rw-r--r--sysdeps/powerpc/nofpu/fegetround.c (renamed from ports/sysdeps/powerpc/nofpu/fegetround.c)0
-rw-r--r--sysdeps/powerpc/nofpu/feholdexcpt.c (renamed from ports/sysdeps/powerpc/nofpu/feholdexcpt.c)0
-rw-r--r--sysdeps/powerpc/nofpu/fenv_const.c (renamed from ports/sysdeps/powerpc/nofpu/fenv_const.c)0
-rw-r--r--sysdeps/powerpc/nofpu/fenv_libc.h (renamed from ports/sysdeps/powerpc/nofpu/fenv_libc.h)0
-rw-r--r--sysdeps/powerpc/nofpu/fesetenv.c (renamed from ports/sysdeps/powerpc/nofpu/fesetenv.c)0
-rw-r--r--sysdeps/powerpc/nofpu/fesetround.c (renamed from ports/sysdeps/powerpc/nofpu/fesetround.c)0
-rw-r--r--sysdeps/powerpc/nofpu/feupdateenv.c (renamed from ports/sysdeps/powerpc/nofpu/feupdateenv.c)0
-rw-r--r--sysdeps/powerpc/nofpu/fgetexcptflg.c (renamed from ports/sysdeps/powerpc/nofpu/fgetexcptflg.c)0
-rw-r--r--sysdeps/powerpc/nofpu/fraiseexcpt.c (renamed from ports/sysdeps/powerpc/nofpu/fraiseexcpt.c)0
-rw-r--r--sysdeps/powerpc/nofpu/fsetexcptflg.c (renamed from ports/sysdeps/powerpc/nofpu/fsetexcptflg.c)0
-rw-r--r--sysdeps/powerpc/nofpu/ftestexcept.c (renamed from ports/sysdeps/powerpc/nofpu/ftestexcept.c)0
-rw-r--r--sysdeps/powerpc/nofpu/get-rounding-mode.h (renamed from ports/sysdeps/powerpc/nofpu/get-rounding-mode.h)0
-rw-r--r--sysdeps/powerpc/nofpu/libm-test-ulps (renamed from ports/sysdeps/powerpc/nofpu/libm-test-ulps)0
-rw-r--r--sysdeps/powerpc/nofpu/shlib-versions (renamed from ports/sysdeps/powerpc/nofpu/shlib-versions)0
-rw-r--r--sysdeps/powerpc/nofpu/sim-full.c (renamed from ports/sysdeps/powerpc/nofpu/sim-full.c)0
-rw-r--r--sysdeps/powerpc/nofpu/soft-supp.h (renamed from ports/sysdeps/powerpc/nofpu/soft-supp.h)0
-rw-r--r--sysdeps/powerpc/powerpc32/405/memcmp.S (renamed from ports/sysdeps/powerpc/powerpc32/405/memcmp.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/405/memcpy.S (renamed from ports/sysdeps/powerpc/powerpc32/405/memcpy.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/405/memset.S (renamed from ports/sysdeps/powerpc/powerpc32/405/memset.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/405/strcmp.S (renamed from ports/sysdeps/powerpc/powerpc32/405/strcmp.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/405/strcpy.S (renamed from ports/sysdeps/powerpc/powerpc32/405/strcpy.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/405/strlen.S (renamed from ports/sysdeps/powerpc/powerpc32/405/strlen.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/405/strncmp.S (renamed from ports/sysdeps/powerpc/powerpc32/405/strncmp.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/440/Implies (renamed from ports/sysdeps/powerpc/powerpc32/440/Implies)0
-rw-r--r--sysdeps/powerpc/powerpc32/464/Implies (renamed from ports/sysdeps/powerpc/powerpc32/464/Implies)0
-rw-r--r--sysdeps/powerpc/powerpc32/476/Implies (renamed from ports/sysdeps/powerpc/powerpc32/476/Implies)0
-rw-r--r--sysdeps/powerpc/powerpc32/476/memset.S (renamed from ports/sysdeps/powerpc/powerpc32/476/memset.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/Makefile9
-rw-r--r--sysdeps/powerpc/soft-fp/sfp-machine.h (renamed from ports/sysdeps/powerpc/soft-fp/sfp-machine.h)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/c++-types.data (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/c++-types.data)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/ld.abilist (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/ld.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libBrokenLocale.abilist (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libBrokenLocale.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libanl.abilist (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libanl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libdl.abilist (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libdl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libm.abilist (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libm.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libnsl.abilist (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libnsl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libpthread.abilist (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libpthread.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libresolv.abilist (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libresolv.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/librt.abilist (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/librt.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libthread_db.abilist (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libthread_db.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libutil.abilist (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libutil.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/localplt.data (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/localplt.data)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S (renamed from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S)0
65 files changed, 71 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 43be44dfce..6c0d322091 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,35 @@
 2013-10-04  Joseph Myers  <joseph@codesourcery.com>
 
+	* sysdeps/powerpc/powerpc32/Makefile [$(with-fp) = yes] (+cflags):
+	Move -mhard-float appending from
+	ports/sysdeps/powerpc/powerpc32/Makefile.
+	[$(with-fp) = yes] (ASFLAGS): Likewise.
+	[$(with-fp) = yes] (sysdep-LDFLAGS): Likewise.
+	* sysdeps/powerpc/nofpu: Move directory from
+	ports/sysdeps/powerpc/nofpu.
+	* sysdeps/powerpc/soft-fp: Move directory from
+	ports/sysdeps/powerpc/soft-fp.
+	* sysdeps/powerpc/powerpc32/405: Move directory from
+	ports/sysdeps/powerpc/powerpc32/405.
+	* sysdeps/powerpc/powerpc32/440: Move directory from
+	ports/sysdeps/powerpc/powerpc32/440.
+	* sysdeps/powerpc/powerpc32/464: Move directory from
+	ports/sysdeps/powerpc/powerpc32/464.
+	* sysdeps/powerpc/powerpc32/476: Move directory from
+	ports/sysdeps/powerpc/powerpc32/476.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu: Move directory
+	from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/405: Move directory
+	from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/405.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/440: Move directory
+	from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/440.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/464: Move directory
+	from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/464.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/476: Move directory
+	from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/476.
+	* README: Update for powerpc-*-linux-gnu software floating point
+	support in libc.
+
 	* sysdeps/unix/sysv/linux/configure.in (powerpc/powerpc32): Change
 	case to powerpc/powerpc32*.
 	* sysdeps/unix/sysv/linux/configure: Regenerated.
diff --git a/README b/README
index bb4ccb896b..e8df988912 100644
--- a/README
+++ b/README
@@ -26,7 +26,7 @@ The GNU C Library supports these configurations for using Linux kernels:
 
 	i[4567]86-*-linux-gnu
 	x86_64-*-linux-gnu	Can build either x86_64 or x32
-	powerpc-*-linux-gnu	Hardware floating point required
+	powerpc-*-linux-gnu	Hardware or software floating point
 	powerpc64-*-linux-gnu
 	s390-*-linux-gnu
 	s390x-*-linux-gnu
@@ -47,7 +47,6 @@ located in the `ports' subdirectory of the source tree.
 	m68k-*-linux-gnu
 	mips-*-linux-gnu
 	mips64-*-linux-gnu
-	powerpc-*-linux-gnu	Software floating point (--without-fp)
 	tilegx-*-linux-gnu
 	tilepro-*-linux-gnu
 
diff --git a/ports/ChangeLog.powerpc b/ports/ChangeLog.powerpc
index 773c2402e3..9f04afae19 100644
--- a/ports/ChangeLog.powerpc
+++ b/ports/ChangeLog.powerpc
@@ -1,5 +1,36 @@
+This file describes changes to the soft-float powerpc port while it
+was in the ports add-on directory.  This port is no longer part of an
+add-on and so future changes to it should be listed in the top-level
+ChangeLog file, not here.
+
+
+
 2013-10-04  Joseph Myers  <joseph@codesourcery.com>
 
+	* sysdeps/powerpc/powerpc32/Makefile: Remove file.
+	* sysdeps/powerpc/nofpu: Move directory to
+	../sysdeps/powerpc/nofpu.
+	* sysdeps/powerpc/soft-fp: Move directory to
+	../sysdeps/powerpc/soft-fp.
+	* sysdeps/powerpc/powerpc32/405: Move directory to
+	../sysdeps/powerpc/powerpc32/405.
+	* sysdeps/powerpc/powerpc32/440: Move directory to
+	../sysdeps/powerpc/powerpc32/440.
+	* sysdeps/powerpc/powerpc32/464: Move directory to
+	../sysdeps/powerpc/powerpc32/464.
+	* sysdeps/powerpc/powerpc32/476: Move directory to
+	../sysdeps/powerpc/powerpc32/476.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu: Move directory
+	to ../sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/405: Move directory to
+	../sysdeps/unix/sysv/linux/powerpc/powerpc32/405.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/440: Move directory to
+	../sysdeps/unix/sysv/linux/powerpc/powerpc32/440.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/464: Move directory to
+	../sysdeps/unix/sysv/linux/powerpc/powerpc32/464.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/476: Move directory to
+	../sysdeps/unix/sysv/linux/powerpc/powerpc32/476.
+
 	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h:
 	New file.
 	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S:
diff --git a/ports/sysdeps/powerpc/powerpc32/Makefile b/ports/sysdeps/powerpc/powerpc32/Makefile
deleted file mode 100644
index 3d235deeb9..0000000000
--- a/ports/sysdeps/powerpc/powerpc32/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# Some Powerpc32 variants assume soft-fp is the default even though there is
-# an fp variant so provide -mhard-float if --with-fp is explicitly passed.
-
-ifeq ($(with-fp),yes)
-+cflags += -mhard-float
-ASFLAGS += -mhard-float
-sysdep-LDFLAGS += -mhard-float
-endif
diff --git a/ports/sysdeps/powerpc/nofpu/Makefile b/sysdeps/powerpc/nofpu/Makefile
index 6bdff45465..6bdff45465 100644
--- a/ports/sysdeps/powerpc/nofpu/Makefile
+++ b/sysdeps/powerpc/nofpu/Makefile
diff --git a/ports/sysdeps/powerpc/nofpu/Subdirs b/sysdeps/powerpc/nofpu/Subdirs
index 87eadf3024..87eadf3024 100644
--- a/ports/sysdeps/powerpc/nofpu/Subdirs
+++ b/sysdeps/powerpc/nofpu/Subdirs
diff --git a/ports/sysdeps/powerpc/nofpu/Versions b/sysdeps/powerpc/nofpu/Versions
index 1a29319d5a..1a29319d5a 100644
--- a/ports/sysdeps/powerpc/nofpu/Versions
+++ b/sysdeps/powerpc/nofpu/Versions
diff --git a/ports/sysdeps/powerpc/nofpu/fclrexcpt.c b/sysdeps/powerpc/nofpu/fclrexcpt.c
index fabda0ab98..fabda0ab98 100644
--- a/ports/sysdeps/powerpc/nofpu/fclrexcpt.c
+++ b/sysdeps/powerpc/nofpu/fclrexcpt.c
diff --git a/ports/sysdeps/powerpc/nofpu/fedisblxcpt.c b/sysdeps/powerpc/nofpu/fedisblxcpt.c
index e06c8f7676..e06c8f7676 100644
--- a/ports/sysdeps/powerpc/nofpu/fedisblxcpt.c
+++ b/sysdeps/powerpc/nofpu/fedisblxcpt.c
diff --git a/ports/sysdeps/powerpc/nofpu/feenablxcpt.c b/sysdeps/powerpc/nofpu/feenablxcpt.c
index 93249abf6c..93249abf6c 100644
--- a/ports/sysdeps/powerpc/nofpu/feenablxcpt.c
+++ b/sysdeps/powerpc/nofpu/feenablxcpt.c
diff --git a/ports/sysdeps/powerpc/nofpu/fegetenv.c b/sysdeps/powerpc/nofpu/fegetenv.c
index 51bcef30a1..51bcef30a1 100644
--- a/ports/sysdeps/powerpc/nofpu/fegetenv.c
+++ b/sysdeps/powerpc/nofpu/fegetenv.c
diff --git a/ports/sysdeps/powerpc/nofpu/fegetexcept.c b/sysdeps/powerpc/nofpu/fegetexcept.c
index ea39a82b73..ea39a82b73 100644
--- a/ports/sysdeps/powerpc/nofpu/fegetexcept.c
+++ b/sysdeps/powerpc/nofpu/fegetexcept.c
diff --git a/ports/sysdeps/powerpc/nofpu/fegetround.c b/sysdeps/powerpc/nofpu/fegetround.c
index c232ae3794..c232ae3794 100644
--- a/ports/sysdeps/powerpc/nofpu/fegetround.c
+++ b/sysdeps/powerpc/nofpu/fegetround.c
diff --git a/ports/sysdeps/powerpc/nofpu/feholdexcpt.c b/sysdeps/powerpc/nofpu/feholdexcpt.c
index ba6a53accb..ba6a53accb 100644
--- a/ports/sysdeps/powerpc/nofpu/feholdexcpt.c
+++ b/sysdeps/powerpc/nofpu/feholdexcpt.c
diff --git a/ports/sysdeps/powerpc/nofpu/fenv_const.c b/sysdeps/powerpc/nofpu/fenv_const.c
index 291b1accc7..291b1accc7 100644
--- a/ports/sysdeps/powerpc/nofpu/fenv_const.c
+++ b/sysdeps/powerpc/nofpu/fenv_const.c
diff --git a/ports/sysdeps/powerpc/nofpu/fenv_libc.h b/sysdeps/powerpc/nofpu/fenv_libc.h
index 14a2d04a25..14a2d04a25 100644
--- a/ports/sysdeps/powerpc/nofpu/fenv_libc.h
+++ b/sysdeps/powerpc/nofpu/fenv_libc.h
diff --git a/ports/sysdeps/powerpc/nofpu/fesetenv.c b/sysdeps/powerpc/nofpu/fesetenv.c
index 3f35909b6d..3f35909b6d 100644
--- a/ports/sysdeps/powerpc/nofpu/fesetenv.c
+++ b/sysdeps/powerpc/nofpu/fesetenv.c
diff --git a/ports/sysdeps/powerpc/nofpu/fesetround.c b/sysdeps/powerpc/nofpu/fesetround.c
index 028c1300cc..028c1300cc 100644
--- a/ports/sysdeps/powerpc/nofpu/fesetround.c
+++ b/sysdeps/powerpc/nofpu/fesetround.c
diff --git a/ports/sysdeps/powerpc/nofpu/feupdateenv.c b/sysdeps/powerpc/nofpu/feupdateenv.c
index 163f673102..163f673102 100644
--- a/ports/sysdeps/powerpc/nofpu/feupdateenv.c
+++ b/sysdeps/powerpc/nofpu/feupdateenv.c
diff --git a/ports/sysdeps/powerpc/nofpu/fgetexcptflg.c b/sysdeps/powerpc/nofpu/fgetexcptflg.c
index 2373fa4002..2373fa4002 100644
--- a/ports/sysdeps/powerpc/nofpu/fgetexcptflg.c
+++ b/sysdeps/powerpc/nofpu/fgetexcptflg.c
diff --git a/ports/sysdeps/powerpc/nofpu/fraiseexcpt.c b/sysdeps/powerpc/nofpu/fraiseexcpt.c
index cd142b60be..cd142b60be 100644
--- a/ports/sysdeps/powerpc/nofpu/fraiseexcpt.c
+++ b/sysdeps/powerpc/nofpu/fraiseexcpt.c
diff --git a/ports/sysdeps/powerpc/nofpu/fsetexcptflg.c b/sysdeps/powerpc/nofpu/fsetexcptflg.c
index 3dc368fdda..3dc368fdda 100644
--- a/ports/sysdeps/powerpc/nofpu/fsetexcptflg.c
+++ b/sysdeps/powerpc/nofpu/fsetexcptflg.c
diff --git a/ports/sysdeps/powerpc/nofpu/ftestexcept.c b/sysdeps/powerpc/nofpu/ftestexcept.c
index f5d01e881c..f5d01e881c 100644
--- a/ports/sysdeps/powerpc/nofpu/ftestexcept.c
+++ b/sysdeps/powerpc/nofpu/ftestexcept.c
diff --git a/ports/sysdeps/powerpc/nofpu/get-rounding-mode.h b/sysdeps/powerpc/nofpu/get-rounding-mode.h
index 20eb81030f..20eb81030f 100644
--- a/ports/sysdeps/powerpc/nofpu/get-rounding-mode.h
+++ b/sysdeps/powerpc/nofpu/get-rounding-mode.h
diff --git a/ports/sysdeps/powerpc/nofpu/libm-test-ulps b/sysdeps/powerpc/nofpu/libm-test-ulps
index ad5a9cd42c..ad5a9cd42c 100644
--- a/ports/sysdeps/powerpc/nofpu/libm-test-ulps
+++ b/sysdeps/powerpc/nofpu/libm-test-ulps
diff --git a/ports/sysdeps/powerpc/nofpu/shlib-versions b/sysdeps/powerpc/nofpu/shlib-versions
index 72085ddf4c..72085ddf4c 100644
--- a/ports/sysdeps/powerpc/nofpu/shlib-versions
+++ b/sysdeps/powerpc/nofpu/shlib-versions
diff --git a/ports/sysdeps/powerpc/nofpu/sim-full.c b/sysdeps/powerpc/nofpu/sim-full.c
index e16703323d..e16703323d 100644
--- a/ports/sysdeps/powerpc/nofpu/sim-full.c
+++ b/sysdeps/powerpc/nofpu/sim-full.c
diff --git a/ports/sysdeps/powerpc/nofpu/soft-supp.h b/sysdeps/powerpc/nofpu/soft-supp.h
index 64a3d2a1d2..64a3d2a1d2 100644
--- a/ports/sysdeps/powerpc/nofpu/soft-supp.h
+++ b/sysdeps/powerpc/nofpu/soft-supp.h
diff --git a/ports/sysdeps/powerpc/powerpc32/405/memcmp.S b/sysdeps/powerpc/powerpc32/405/memcmp.S
index 2849461cd7..2849461cd7 100644
--- a/ports/sysdeps/powerpc/powerpc32/405/memcmp.S
+++ b/sysdeps/powerpc/powerpc32/405/memcmp.S
diff --git a/ports/sysdeps/powerpc/powerpc32/405/memcpy.S b/sysdeps/powerpc/powerpc32/405/memcpy.S
index b01d539209..b01d539209 100644
--- a/ports/sysdeps/powerpc/powerpc32/405/memcpy.S
+++ b/sysdeps/powerpc/powerpc32/405/memcpy.S
diff --git a/ports/sysdeps/powerpc/powerpc32/405/memset.S b/sysdeps/powerpc/powerpc32/405/memset.S
index b73dba8873..b73dba8873 100644
--- a/ports/sysdeps/powerpc/powerpc32/405/memset.S
+++ b/sysdeps/powerpc/powerpc32/405/memset.S
diff --git a/ports/sysdeps/powerpc/powerpc32/405/strcmp.S b/sysdeps/powerpc/powerpc32/405/strcmp.S
index c0b21907be..c0b21907be 100644
--- a/ports/sysdeps/powerpc/powerpc32/405/strcmp.S
+++ b/sysdeps/powerpc/powerpc32/405/strcmp.S
diff --git a/ports/sysdeps/powerpc/powerpc32/405/strcpy.S b/sysdeps/powerpc/powerpc32/405/strcpy.S
index d7c84569d9..d7c84569d9 100644
--- a/ports/sysdeps/powerpc/powerpc32/405/strcpy.S
+++ b/sysdeps/powerpc/powerpc32/405/strcpy.S
diff --git a/ports/sysdeps/powerpc/powerpc32/405/strlen.S b/sysdeps/powerpc/powerpc32/405/strlen.S
index 77d22ea673..77d22ea673 100644
--- a/ports/sysdeps/powerpc/powerpc32/405/strlen.S
+++ b/sysdeps/powerpc/powerpc32/405/strlen.S
diff --git a/ports/sysdeps/powerpc/powerpc32/405/strncmp.S b/sysdeps/powerpc/powerpc32/405/strncmp.S
index 3e2ba5f855..3e2ba5f855 100644
--- a/ports/sysdeps/powerpc/powerpc32/405/strncmp.S
+++ b/sysdeps/powerpc/powerpc32/405/strncmp.S
diff --git a/ports/sysdeps/powerpc/powerpc32/440/Implies b/sysdeps/powerpc/powerpc32/440/Implies
index 70c0d2eda3..70c0d2eda3 100644
--- a/ports/sysdeps/powerpc/powerpc32/440/Implies
+++ b/sysdeps/powerpc/powerpc32/440/Implies
diff --git a/ports/sysdeps/powerpc/powerpc32/464/Implies b/sysdeps/powerpc/powerpc32/464/Implies
index c3e52c5504..c3e52c5504 100644
--- a/ports/sysdeps/powerpc/powerpc32/464/Implies
+++ b/sysdeps/powerpc/powerpc32/464/Implies
diff --git a/ports/sysdeps/powerpc/powerpc32/476/Implies b/sysdeps/powerpc/powerpc32/476/Implies
index 2829f9ccaf..2829f9ccaf 100644
--- a/ports/sysdeps/powerpc/powerpc32/476/Implies
+++ b/sysdeps/powerpc/powerpc32/476/Implies
diff --git a/ports/sysdeps/powerpc/powerpc32/476/memset.S b/sysdeps/powerpc/powerpc32/476/memset.S
index 48c21d6209..48c21d6209 100644
--- a/ports/sysdeps/powerpc/powerpc32/476/memset.S
+++ b/sysdeps/powerpc/powerpc32/476/memset.S
diff --git a/sysdeps/powerpc/powerpc32/Makefile b/sysdeps/powerpc/powerpc32/Makefile
index 3fdb4b48be..cf620c8269 100644
--- a/sysdeps/powerpc/powerpc32/Makefile
+++ b/sysdeps/powerpc/powerpc32/Makefile
@@ -1,5 +1,14 @@
 # Powerpc32 specific build options.
 
+# Some Powerpc32 variants assume soft-fp is the default even though there is
+# an fp variant so provide -mhard-float if --with-fp is explicitly passed.
+
+ifeq ($(with-fp),yes)
++cflags += -mhard-float
+ASFLAGS += -mhard-float
+sysdep-LDFLAGS += -mhard-float
+endif
+
 ifeq ($(subdir),gmon)
 sysdep_routines += ppc-mcount compat-ppc-mcount
 static-only-routines += ppc-mcount
diff --git a/ports/sysdeps/powerpc/soft-fp/sfp-machine.h b/sysdeps/powerpc/soft-fp/sfp-machine.h
index 508d8698d4..508d8698d4 100644
--- a/ports/sysdeps/powerpc/soft-fp/sfp-machine.h
+++ b/sysdeps/powerpc/soft-fp/sfp-machine.h
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies
index 70c0d2eda3..70c0d2eda3 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies
index c3e52c5504..c3e52c5504 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies
index 2829f9ccaf..2829f9ccaf 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies
index 80f917079e..80f917079e 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies
index 40836b6fb4..40836b6fb4 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h
index 9eb1a95615..9eb1a95615 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
index 8bc3c7a43e..8bc3c7a43e 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/c++-types.data b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/c++-types.data
index fde53bf337..fde53bf337 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/c++-types.data
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/c++-types.data
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/ld.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/ld.abilist
index d71611f027..d71611f027 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/ld.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/ld.abilist
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libBrokenLocale.abilist
index f4ca37f44b..f4ca37f44b 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libBrokenLocale.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libBrokenLocale.abilist
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libanl.abilist
index c9755d8a33..c9755d8a33 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libanl.abilist
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist
index 9b6d663748..9b6d663748 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
index 1df145f260..1df145f260 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libdl.abilist
index 62e6b41edb..62e6b41edb 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libdl.abilist
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libm.abilist
index 9bd593c0e9..9bd593c0e9 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libm.abilist
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libnsl.abilist
index 4241e2d887..4241e2d887 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libnsl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libnsl.abilist
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libpthread.abilist
index c8a2a04711..c8a2a04711 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libpthread.abilist
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libresolv.abilist
index f68333d4a4..f68333d4a4 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libresolv.abilist
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/librt.abilist
index af7df27cb3..af7df27cb3 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/librt.abilist
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libthread_db.abilist
index f33138067c..f33138067c 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libthread_db.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libthread_db.abilist
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libutil.abilist
index 7422687e3c..7422687e3c 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libutil.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libutil.abilist
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/localplt.data b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/localplt.data
index 0743b08a39..0743b08a39 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/localplt.data
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/localplt.data
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
index 5f8653ffbb..5f8653ffbb 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
index de6d56f960..de6d56f960 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S