This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] m68k: Reorganize log1p and significand implementations
- From: Tulio Magno Quites Machado Filho <tuliom at linux dot ibm dot com>
- To: libc-alpha at sourceware dot org
- Cc: Joseph Myers <joseph at codesourcery dot com>
- Date: Fri, 22 Jun 2018 18:33:26 -0300
- Subject: [PATCH] m68k: Reorganize log1p and significand implementations
- References: <alpine.DEB.2.20.1806211657310.8299@digraph.polyomino.org.uk>
Commit 5e79e0292bfb03f40e43379fd92581ad8eae9cb8 broke m68k after
s_significand.c became available in the build directory. All m68k
implementations of log1p and significand were including s_significand.c
and stopped working after the inclusion of the the auto-generated file.
This patch reorganizes the implementation of log1p and significand for
m680x0 in order to avoid hitting this problem.
2018-06-22 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
* sysdeps/m68k/m680x0/fpu/s_log1p.c: Set as the generic file for
all log1p and significand functions on m680x0.
* sysdeps/m68k/m680x0/fpu/s_log1pf.c: Include s_log1p.c instead
of s_significand.c..
* sysdeps/m68k/m680x0/fpu/s_log1pl.c: Likewise.
* sysdeps/m68k/m680x0/fpu/s_significandf.c: Likewise.
* sysdeps/m68k/m680x0/fpu/s_significandl.c: Likewise.
* sysdeps/m68k/m680x0/fpu/s_significand.c: Move all the code to
s_log1p.c and include it..
Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
---
sysdeps/m68k/m680x0/fpu/s_log1p.c | 38 ++++++++++++++++++++++++++++----
sysdeps/m68k/m680x0/fpu/s_log1pf.c | 5 ++---
sysdeps/m68k/m680x0/fpu/s_log1pl.c | 5 ++---
sysdeps/m68k/m680x0/fpu/s_significand.c | 18 ++-------------
sysdeps/m68k/m680x0/fpu/s_significandf.c | 5 ++---
sysdeps/m68k/m680x0/fpu/s_significandl.c | 5 ++---
6 files changed, 44 insertions(+), 32 deletions(-)
diff --git a/sysdeps/m68k/m680x0/fpu/s_log1p.c b/sysdeps/m68k/m680x0/fpu/s_log1p.c
index 7eb2529547..5da96c5834 100644
--- a/sysdeps/m68k/m680x0/fpu/s_log1p.c
+++ b/sysdeps/m68k/m680x0/fpu/s_log1p.c
@@ -1,4 +1,34 @@
-#define FUNC log1p
-#undef weak_alias
-#define weak_alias(a,b)
-#include <s_significand.c>
+/* Implement logp1 for m68k.
+ Copyright (C) 2018 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ 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/>. */
+
+#include <math.h>
+
+#ifndef FUNC
+#define FUNC log1p
+#endif
+#ifndef float_type
+#define float_type double
+#endif
+
+#define __CONCATX(a,b) __CONCAT(a,b)
+
+float_type
+__CONCATX(__,FUNC) (float_type x)
+{
+ return __m81_u(__CONCATX(__,FUNC))(x);
+}
diff --git a/sysdeps/m68k/m680x0/fpu/s_log1pf.c b/sysdeps/m68k/m680x0/fpu/s_log1pf.c
index 40f332ff36..1e408ffffe 100644
--- a/sysdeps/m68k/m680x0/fpu/s_log1pf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_log1pf.c
@@ -1,4 +1,3 @@
#define FUNC log1pf
-#undef weak_alias
-#define weak_alias(a,b)
-#include <s_significandf.c>
+#define float_type float
+#include <s_log1p.c>
diff --git a/sysdeps/m68k/m680x0/fpu/s_log1pl.c b/sysdeps/m68k/m680x0/fpu/s_log1pl.c
index e580bafbc5..ffe1d8893f 100644
--- a/sysdeps/m68k/m680x0/fpu/s_log1pl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_log1pl.c
@@ -1,4 +1,3 @@
#define FUNC log1pl
-#undef weak_alias
-#define weak_alias(a,b)
-#include <s_significandl.c>
+#define float_type long double
+#include <s_log1p.c>
diff --git a/sysdeps/m68k/m680x0/fpu/s_significand.c b/sysdeps/m68k/m680x0/fpu/s_significand.c
index bcc9a8a475..3259d4ee6a 100644
--- a/sysdeps/m68k/m680x0/fpu/s_significand.c
+++ b/sysdeps/m68k/m680x0/fpu/s_significand.c
@@ -16,20 +16,6 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
-#include <math.h>
-
-#ifndef FUNC
#define FUNC significand
-#endif
-#ifndef float_type
-#define float_type double
-#endif
-
-#define __CONCATX(a,b) __CONCAT(a,b)
-
-float_type
-__CONCATX(__,FUNC) (float_type x)
-{
- return __m81_u(__CONCATX(__,FUNC))(x);
-}
-weak_alias (__CONCATX(__,FUNC), FUNC)
+#include <s_log1p.c>
+weak_alias (__significand, significand)
diff --git a/sysdeps/m68k/m680x0/fpu/s_significandf.c b/sysdeps/m68k/m680x0/fpu/s_significandf.c
index bbaa64bb13..95da7cf969 100644
--- a/sysdeps/m68k/m680x0/fpu/s_significandf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_significandf.c
@@ -1,5 +1,4 @@
-#ifndef FUNC
#define FUNC significandf
-#endif
#define float_type float
-#include <s_significand.c>
+#include <s_log1p.c>
+weak_alias (__significandf, significandf)
diff --git a/sysdeps/m68k/m680x0/fpu/s_significandl.c b/sysdeps/m68k/m680x0/fpu/s_significandl.c
index f3496ee862..356b48d138 100644
--- a/sysdeps/m68k/m680x0/fpu/s_significandl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_significandl.c
@@ -1,5 +1,4 @@
-#ifndef FUNC
#define FUNC significandl
-#endif
#define float_type long double
-#include <s_significand.c>
+#include <s_log1p.c>
+weak_alias (__significandl, significandl)
--
2.14.4