--- libm/s_floor.c
+++ libm/s_floor.c
@@ -81,3 +81,18 @@ libm_hidden_proto(floor)
 	return x;
 }
 libm_hidden_def(floor)
+
+
+libm_hidden_proto(trunc)
+double
+trunc(double x)
+{
+	if (!finite (x))
+		return x;
+
+	if (x < 0.0)
+		return - floor (-x);
+	else
+		return floor (x);
+}
+libm_hidden_def(trunc)
--- libm/float_wrappers.c.orig	2007-04-12 03:41:16.000000000 +0000
+++ libm/float_wrappers.c	2010-01-03 21:15:09.000000000 +0000
@@ -26,7 +26,6 @@
 #undef L_remquof       /*float       remquof(float, float, int *);*/
 #undef L_scalblnf      /*float       scalblnf(float, long);*/
 #undef L_tgammaf       /*float       tgammaf(float);*/
-#undef L_truncf        /*float       truncf(float);*/
 
 /* Implement the following, as defined by SuSv3 */
 #if 0
