about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog24
-rw-r--r--soft-fp/Makefile6
-rw-r--r--soft-fp/sqrttf2.c49
-rw-r--r--sysdeps/nios2/Makefile3
-rw-r--r--sysdeps/powerpc/nofpu/Makefile1
-rw-r--r--sysdeps/powerpc/nofpu/sqrtdf2.c (renamed from soft-fp/sqrtdf2.c)4
-rw-r--r--sysdeps/powerpc/nofpu/sqrtsf2.c (renamed from soft-fp/sqrtsf2.c)4
7 files changed, 37 insertions, 54 deletions
diff --git a/ChangeLog b/ChangeLog
index dd0a11ff10..fdd92d0ffb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,27 @@
+2018-06-01  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #18473]
+	* soft-fp/sqrttf2.c: Remove file.
+	* soft-fp/sqrtdf2.c: Move to ....
+	* sysdeps/powerpc/nofpu/sqrtdf2.c: ... here.  Include
+	<shlib-compat.h>.
+	(__sqrtdf2): Make conditional on
+	[SHLIB_COMPAT (libc, GLIBC_2_3_2, GLIBC_2_28)].  Define as compat
+	symbol.
+	* soft-fp/sqrtsf2.c: Move to ....
+	* sysdeps/powerpc/nofpu/sqrtsf2.c: ... here.  Include
+	<shlib-compat.h>.
+	(__sqrtsf2): Make conditional on
+	[SHLIB_COMPAT (libc, GLIBC_2_3_2, GLIBC_2_28)].  Define as compat
+	symbol.
+	* soft-fp/Makefile (gcc-single-routines): Remove sqrtsf2.
+	(gcc-double-routines): Remove sqrtdf2.
+	(gcc-quad-routines): Remove sqrttf2.
+	* sysdeps/nios2/Makefile [$(subdir) = soft-fp] (sysdep_routines):
+	Do not filter out sqrtsf2 and sqrtdf2.
+	* sysdeps/powerpc/nofpu/Makefile [$(subdir) = soft-fp]
+	(sysdep_routines): Add sqrtsf2 and sqrtdf2.
+
 2018-06-01  Florian Weimer  <fweimer@redhat.com>
 
 	* sysdeps/generic/libcidn.abilist: Remove file.
diff --git a/soft-fp/Makefile b/soft-fp/Makefile
index b768de1e95..8b1d3eadb5 100644
--- a/soft-fp/Makefile
+++ b/soft-fp/Makefile
@@ -25,16 +25,16 @@ include ../Makeconfig
 
 gcc-single-routines := negsf2 addsf3 subsf3 mulsf3 divsf3 eqsf2 \
 	lesf2 gesf2 unordsf2 fixsfsi fixunssfsi floatsisf fixsfdi        \
-	fixunssfdi floatdisf sqrtsf2 floatunsisf floatundisf
+	fixunssfdi floatdisf floatunsisf floatundisf
 
 gcc-double-routines := negdf2 adddf3 subdf3 muldf3 divdf3 eqdf2 \
 	ledf2 gedf2 unorddf2 fixdfsi fixunsdfsi floatsidf fixdfdi        \
-	fixunsdfdi floatdidf extendsfdf2 truncdfsf2 sqrtdf2 floatunsidf \
+	fixunsdfdi floatdidf extendsfdf2 truncdfsf2 floatunsidf \
 	floatundidf
 
 gcc-quad-routines := negtf2 addtf3 subtf3 multf3 divtf3 eqtf2 \
 	letf2 getf2 unordtf2 fixtfsi fixunstfsi floatsitf fixtfdi      \
 	fixunstfdi floatditf extendsftf2 trunctfsf2 extenddftf2 \
-	trunctfdf2 sqrttf2 floatunsitf floatunditf
+	trunctfdf2 floatunsitf floatunditf
 
 include ../Rules
diff --git a/soft-fp/sqrttf2.c b/soft-fp/sqrttf2.c
deleted file mode 100644
index cc01c62233..0000000000
--- a/soft-fp/sqrttf2.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Software floating-point emulation.
-   Return sqrt(a)
-   Copyright (C) 1997-2018 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson (rth@cygnus.com) and
-		  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.
-
-   In addition to the permissions in the GNU Lesser General Public
-   License, the Free Software Foundation gives you unlimited
-   permission to link the compiled version of this file into
-   combinations with other programs, and to distribute those
-   combinations without any restriction coming from the use of this
-   file.  (The Lesser General Public License restrictions do apply in
-   other respects; for example, they cover modification of the file,
-   and distribution when not linked into a combine executable.)
-
-   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/>.  */
-
-#include "soft-fp.h"
-#include "quad.h"
-
-TFtype
-__sqrttf2 (TFtype a)
-{
-  FP_DECL_EX;
-  FP_DECL_Q (A);
-  FP_DECL_Q (R);
-  TFtype r;
-
-  FP_INIT_ROUNDMODE;
-  FP_UNPACK_Q (A, a);
-  FP_SQRT_Q (R, A);
-  FP_PACK_Q (r, R);
-  FP_HANDLE_EXCEPTIONS;
-
-  return r;
-}
diff --git a/sysdeps/nios2/Makefile b/sysdeps/nios2/Makefile
index 16aec3e95c..25fc2abfee 100644
--- a/sysdeps/nios2/Makefile
+++ b/sysdeps/nios2/Makefile
@@ -22,8 +22,7 @@ pic-ccflag = -fpic
 long-double-fcts = no
 
 ifeq ($(subdir),soft-fp)
-sysdep_routines += $(filter-out sqrtsf2,$(gcc-single-routines)) \
-  $(filter-out sqrtdf2,$(gcc-double-routines))
+sysdep_routines += $(gcc-single-routines) $(gcc-double-routines)
 endif
 
 ifeq ($(subdir),csu)
diff --git a/sysdeps/powerpc/nofpu/Makefile b/sysdeps/powerpc/nofpu/Makefile
index 463338d5b3..80c762ebdf 100644
--- a/sysdeps/powerpc/nofpu/Makefile
+++ b/sysdeps/powerpc/nofpu/Makefile
@@ -2,6 +2,7 @@
 
 ifeq ($(subdir),soft-fp)
 sysdep_routines += $(gcc-single-routines) $(gcc-double-routines) \
+		   sqrtsf2 sqrtdf2 \
 		   sim-full atomic-feholdexcept atomic-feclearexcept \
 		   atomic-feupdateenv flt-rounds
 endif
diff --git a/soft-fp/sqrtdf2.c b/sysdeps/powerpc/nofpu/sqrtdf2.c
index fc09eef132..50d1d26ceb 100644
--- a/soft-fp/sqrtdf2.c
+++ b/sysdeps/powerpc/nofpu/sqrtdf2.c
@@ -30,7 +30,9 @@
 
 #include "soft-fp.h"
 #include "double.h"
+#include <shlib-compat.h>
 
+#if SHLIB_COMPAT (libc, GLIBC_2_3_2, GLIBC_2_28)
 DFtype
 __sqrtdf2 (DFtype a)
 {
@@ -47,3 +49,5 @@ __sqrtdf2 (DFtype a)
 
   return r;
 }
+compat_symbol (libc, __sqrtdf2, __sqrtdf2, GLIBC_2_3_2);
+#endif
diff --git a/soft-fp/sqrtsf2.c b/sysdeps/powerpc/nofpu/sqrtsf2.c
index 5993589a23..8684f9631b 100644
--- a/soft-fp/sqrtsf2.c
+++ b/sysdeps/powerpc/nofpu/sqrtsf2.c
@@ -30,7 +30,9 @@
 
 #include "soft-fp.h"
 #include "single.h"
+#include <shlib-compat.h>
 
+#if SHLIB_COMPAT (libc, GLIBC_2_3_2, GLIBC_2_28)
 SFtype
 __sqrtsf2 (SFtype a)
 {
@@ -47,3 +49,5 @@ __sqrtsf2 (SFtype a)
 
   return r;
 }
+compat_symbol (libc, __sqrtsf2, __sqrtsf2, GLIBC_2_3_2);
+#endif