aboutsummaryrefslogtreecommitdiff
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