diff --git a/sysdeps/sparc/sparc32/Implies b/sysdeps/sparc/sparc32/Implies
index 436436a..f57542e 100644
--- a/sysdeps/sparc/sparc32/Implies
+++ b/sysdeps/sparc/sparc32/Implies
@@ -3,4 +3,3 @@ wordsize-32
 ieee754/ldbl-128
 ieee754/dbl-64
 ieee754/flt-32
-sparc/sparc32/soft-fp
diff --git a/sysdeps/sparc/sparc32/Makefile b/sysdeps/sparc/sparc32/Makefile
index 185f072..6a1b371 100644
--- a/sysdeps/sparc/sparc32/Makefile
+++ b/sysdeps/sparc/sparc32/Makefile
@@ -53,3 +53,12 @@ sysdep-realclean := $(sysdep-realclean) $(divrem:%=sysdeps/sparc/sparc32/%.S)
 # the exported libc one to __wrap_.udiv and use linker option --wrap to make any
 # call to .udiv to call the wrapper symbol.
 libc.so-gnulib += -Wl,--wrap=.udiv
+
+ifeq ($(subdir),soft-fp)
+sparc32-quad-routines := q_add q_cmp q_cmpe q_div q_dtoq q_feq q_fge	\
+	q_fgt q_fle q_flt q_fne q_itoq q_mul q_neg q_qtod q_qtoi	\
+	q_qtos q_qtou q_qtoull q_qtoll q_sqrt q_stoq q_sub q_utoq	\
+	q_ulltoq q_lltoq q_util
+sysdep_routines += $(sparc32-quad-routines)
+
+endif
diff --git a/sysdeps/sparc/sparc32/Versions b/sysdeps/sparc/sparc32/Versions
index 6d3bfe8..9d00162 100644
--- a/sysdeps/sparc/sparc32/Versions
+++ b/sysdeps/sparc/sparc32/Versions
@@ -2,6 +2,12 @@ libc {
   GLIBC_2.0 {
     .div; .mul; .rem; .udiv; .umul; .urem;
   }
+  GLIBC_2.4 {
+    _Q_add; _Q_cmp; _Q_cmpe; _Q_div; _Q_dtoq; _Q_feq; _Q_fge; _Q_fgt;
+    _Q_fle; _Q_flt; _Q_fne; _Q_itoq; _Q_mul; _Q_neg; _Q_qtod; _Q_qtoi;
+    _Q_qtos; _Q_qtou; _Q_qtoull; _Q_qtoll; _Q_sqrt; _Q_stoq; _Q_sub;
+    _Q_utoq; _Q_ulltoq; _Q_lltoq;
+  }
 }
 libm {
   GLIBC_2.23 {
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_add.c b/sysdeps/sparc/sparc32/q_add.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_add.c
rename to sysdeps/sparc/sparc32/q_add.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_cmp.c b/sysdeps/sparc/sparc32/q_cmp.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_cmp.c
rename to sysdeps/sparc/sparc32/q_cmp.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_cmpe.c b/sysdeps/sparc/sparc32/q_cmpe.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_cmpe.c
rename to sysdeps/sparc/sparc32/q_cmpe.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_div.c b/sysdeps/sparc/sparc32/q_div.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_div.c
rename to sysdeps/sparc/sparc32/q_div.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_dtoq.c b/sysdeps/sparc/sparc32/q_dtoq.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_dtoq.c
rename to sysdeps/sparc/sparc32/q_dtoq.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_feq.c b/sysdeps/sparc/sparc32/q_feq.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_feq.c
rename to sysdeps/sparc/sparc32/q_feq.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_fge.c b/sysdeps/sparc/sparc32/q_fge.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_fge.c
rename to sysdeps/sparc/sparc32/q_fge.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_fgt.c b/sysdeps/sparc/sparc32/q_fgt.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_fgt.c
rename to sysdeps/sparc/sparc32/q_fgt.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_fle.c b/sysdeps/sparc/sparc32/q_fle.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_fle.c
rename to sysdeps/sparc/sparc32/q_fle.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_flt.c b/sysdeps/sparc/sparc32/q_flt.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_flt.c
rename to sysdeps/sparc/sparc32/q_flt.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_fne.c b/sysdeps/sparc/sparc32/q_fne.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_fne.c
rename to sysdeps/sparc/sparc32/q_fne.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_itoq.c b/sysdeps/sparc/sparc32/q_itoq.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_itoq.c
rename to sysdeps/sparc/sparc32/q_itoq.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_lltoq.c b/sysdeps/sparc/sparc32/q_lltoq.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_lltoq.c
rename to sysdeps/sparc/sparc32/q_lltoq.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_mul.c b/sysdeps/sparc/sparc32/q_mul.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_mul.c
rename to sysdeps/sparc/sparc32/q_mul.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_neg.c b/sysdeps/sparc/sparc32/q_neg.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_neg.c
rename to sysdeps/sparc/sparc32/q_neg.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_qtod.c b/sysdeps/sparc/sparc32/q_qtod.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_qtod.c
rename to sysdeps/sparc/sparc32/q_qtod.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_qtoi.c b/sysdeps/sparc/sparc32/q_qtoi.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_qtoi.c
rename to sysdeps/sparc/sparc32/q_qtoi.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_qtoll.c b/sysdeps/sparc/sparc32/q_qtoll.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_qtoll.c
rename to sysdeps/sparc/sparc32/q_qtoll.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_qtos.c b/sysdeps/sparc/sparc32/q_qtos.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_qtos.c
rename to sysdeps/sparc/sparc32/q_qtos.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_qtou.c b/sysdeps/sparc/sparc32/q_qtou.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_qtou.c
rename to sysdeps/sparc/sparc32/q_qtou.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_qtoull.c b/sysdeps/sparc/sparc32/q_qtoull.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_qtoull.c
rename to sysdeps/sparc/sparc32/q_qtoull.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_sqrt.c b/sysdeps/sparc/sparc32/q_sqrt.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_sqrt.c
rename to sysdeps/sparc/sparc32/q_sqrt.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_stoq.c b/sysdeps/sparc/sparc32/q_stoq.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_stoq.c
rename to sysdeps/sparc/sparc32/q_stoq.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_sub.c b/sysdeps/sparc/sparc32/q_sub.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_sub.c
rename to sysdeps/sparc/sparc32/q_sub.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_ulltoq.c b/sysdeps/sparc/sparc32/q_ulltoq.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_ulltoq.c
rename to sysdeps/sparc/sparc32/q_ulltoq.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_util.c b/sysdeps/sparc/sparc32/q_util.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_util.c
rename to sysdeps/sparc/sparc32/q_util.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_utoq.c b/sysdeps/sparc/sparc32/q_utoq.c
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/q_utoq.c
rename to sysdeps/sparc/sparc32/q_utoq.c
diff --git a/sysdeps/sparc/sparc32/soft-fp/sfp-machine.h b/sysdeps/sparc/sparc32/sfp-machine.h
similarity index 100%
rename from sysdeps/sparc/sparc32/soft-fp/sfp-machine.h
rename to sysdeps/sparc/sparc32/sfp-machine.h
diff --git a/sysdeps/sparc/sparc32/soft-fp/Makefile b/sysdeps/sparc/sparc32/soft-fp/Makefile
deleted file mode 100644
index 6e00d80..0000000
--- a/sysdeps/sparc/sparc32/soft-fp/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-#  Software floating-point emulation.
-#  Makefile for SPARC v8 long double utility functions (_Q_*).
-#  Copyright (C) 1999-2018 Free Software Foundation, Inc.
-#  This file is part of the GNU C Library.
-#  Contributed by Jakub Jelinek (jj@ultra.linux.cz).
-#
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
-
-ifeq ($(subdir),soft-fp)
-sparc32-quad-routines := q_add q_cmp q_cmpe q_div q_dtoq q_feq q_fge	\
-	q_fgt q_fle q_flt q_fne q_itoq q_mul q_neg q_qtod q_qtoi	\
-	q_qtos q_qtou q_qtoull q_qtoll q_sqrt q_stoq q_sub q_utoq	\
-	q_ulltoq q_lltoq q_util
-sysdep_routines += $(sparc32-quad-routines)
-
-endif
diff --git a/sysdeps/sparc/sparc32/soft-fp/Versions b/sysdeps/sparc/sparc32/soft-fp/Versions
deleted file mode 100644
index 6a09249..0000000
--- a/sysdeps/sparc/sparc32/soft-fp/Versions
+++ /dev/null
@@ -1,8 +0,0 @@
-libc {
-  GLIBC_2.4 {
-    _Q_add; _Q_cmp; _Q_cmpe; _Q_div; _Q_dtoq; _Q_feq; _Q_fge; _Q_fgt;
-    _Q_fle; _Q_flt; _Q_fne; _Q_itoq; _Q_mul; _Q_neg; _Q_qtod; _Q_qtoi;
-    _Q_qtos; _Q_qtou; _Q_qtoull; _Q_qtoll; _Q_sqrt; _Q_stoq; _Q_sub;
-    _Q_utoq; _Q_ulltoq; _Q_lltoq;
-  }
-}
