--- /dev/null
+--- a/libm/powerpc/e500/Makefile.arch
++++ b/libm/powerpc/e500/Makefile.arch
+@@ -6,5 +6,7 @@
+ #
+
+ libm_ARCH_fpu_DIR := $(libm_SUBARCH_DIR)/fpu
++libm_ARCH_fpu_OUT := $(libm_SUBARCH_OUT)/fpu
++CFLAGS-libm/$(TARGET_ARCH)/$(TARGET_SUBARCH)/fpu/ = $(CFLAGS-libm)
+ -include $(libm_ARCH_fpu_DIR)/Makefile.arch
+
+--- a/libm/powerpc/e500/fpu/fe_nomask.c
++++ b/libm/powerpc/e500/fpu/fe_nomask.c
+@@ -26,7 +26,7 @@
+ const fenv_t *
+ __fe_nomask_env(void)
+ {
+- __set_errno (ENOSYS);
++ errno = ENOSYS;
+ return FE_ENABLED_ENV;
+ }
+
+--- a/libm/powerpc/e500/fpu/feholdexcpt.c
++++ b/libm/powerpc/e500/fpu/feholdexcpt.c
+@@ -42,4 +42,3 @@ feholdexcept (fenv_t *envp)
+
+ return 0;
+ }
+-libm_hidden_def (feholdexcept)
+--- a/libm/powerpc/e500/fpu/fesetround.c
++++ b/libm/powerpc/e500/fpu/fesetround.c
+@@ -34,4 +34,3 @@ fesetround (int round)
+
+ return 0;
+ }
+-libm_hidden_def (fesetround)
+--- a/libm/powerpc/e500/fpu/fraiseexcpt.c
++++ b/libm/powerpc/e500/fpu/fraiseexcpt.c
+@@ -26,4 +26,3 @@
+
+ #include "../spe-raise.c"
+
+-libm_hidden_def (feraiseexcept)