m68k: Reorganize log1p and significand implementations
Commit Message
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(-)
Comments
On 06/22/2018 03:33 PM, Tulio Magno Quites Machado Filho wrote:
> 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..
Thanks. My testers have been complaining about this for a couple days,
but I haven't had a chance to investigate.
jeff
On Fri, 22 Jun 2018, Tulio Magno Quites Machado Filho wrote:
> 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..
OK, please commit.
@@ -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);
+}
@@ -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>
@@ -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>
@@ -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)
@@ -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)
@@ -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)