hppa: Define __NO_LONG_DOUBLE_MATH so headers are consistent with libm build

Message ID C9DB069B-C099-4454-BF3C-A17A0B9ABCBE@bell.net
State Rejected
Headers

Commit Message

John David Anglin Dec. 13, 2015, 2:40 a.m. UTC
  On 2015-11-22, at 5:15 PM, John David Anglin wrote:

> The attached patch fixes BZ #19270 and the Debian gmt package know builds successfully.  Aside from the
> comment, the define of __NO_LONG_DOUBLE_MATH is similar to that in the generic version of glibc.
> 
> Build tested on hppa-unknown-linux-gnu with no observed regressions.


It was found in further testing that the abi lists need updating.  This is currently installed in Debian glibc-2.21.

Please review and install if okay.

Dave
--
John David Anglin	dave.anglin@bell.net
2015-12-11  John David Anglin  <danglin@gcc.gnu.org>

	[BZ #19270]
	* sysdeps/hppa/fpu/bits/mathdef.h (__NO_LONG_DOUBLE_MATH): Define.

2015-12-11  Aurelien Jarno  <aurelien@aurel32.net>

	* sysdeps/unix/sysv/linux/hppa/libc.abilist: Add __finitel, __isinfl,
	and __isnanl.
        * sysdeps/unix/sysv/linux/hppa/libm.abilist: Add _finitel.
  

Comments

Andreas Schwab Dec. 13, 2015, 9:13 a.m. UTC | #1
John David Anglin <dave.anglin@bell.net> writes:

> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 1d30644..72435f8 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -263,6 +263,7 @@ GLIBC_2.2 __fcntl F
>  GLIBC_2.2 __ffs F
>  GLIBC_2.2 __finite F
>  GLIBC_2.2 __finitef F
> +GLIBC_2.2 __finitel F
>  GLIBC_2.2 __flbf F
>  GLIBC_2.2 __fork F
>  GLIBC_2.2 __fpending F
> @@ -294,9 +295,11 @@ GLIBC_2.2 __isdigit_l F

You can't do that.  Please read the thread starting at
<http://sourceware.org/ml/libc-alpha/2015-11/msg00564.html>.

Andreas.
  
Chris Metcalf Dec. 13, 2015, 9:42 p.m. UTC | #2
On 12/13/2015 4:13 AM, Andreas Schwab wrote:
> John David Anglin <dave.anglin@bell.net> writes:
>
>> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
>> index 1d30644..72435f8 100644
>> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
>> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
>> @@ -263,6 +263,7 @@ GLIBC_2.2 __fcntl F
>>   GLIBC_2.2 __ffs F
>>   GLIBC_2.2 __finite F
>>   GLIBC_2.2 __finitef F
>> +GLIBC_2.2 __finitel F
>>   GLIBC_2.2 __flbf F
>>   GLIBC_2.2 __fork F
>>   GLIBC_2.2 __fpending F
>> @@ -294,9 +295,11 @@ GLIBC_2.2 __isdigit_l F
> You can't do that.  Please read the thread starting at
> <http://sourceware.org/ml/libc-alpha/2015-11/msg00564.html>.

I committed my fix, so I expect if you simply merge up to the tip of master,
the hppa abilist problem will go away too.
  
John David Anglin Dec. 13, 2015, 10:02 p.m. UTC | #3
On 2015-12-13, at 4:42 PM, Chris Metcalf wrote:

> On 12/13/2015 4:13 AM, Andreas Schwab wrote:
>> John David Anglin <dave.anglin@bell.net> writes:
>> 
>>> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
>>> index 1d30644..72435f8 100644
>>> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
>>> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
>>> @@ -263,6 +263,7 @@ GLIBC_2.2 __fcntl F
>>>  GLIBC_2.2 __ffs F
>>>  GLIBC_2.2 __finite F
>>>  GLIBC_2.2 __finitef F
>>> +GLIBC_2.2 __finitel F
>>>  GLIBC_2.2 __flbf F
>>>  GLIBC_2.2 __fork F
>>>  GLIBC_2.2 __fpending F
>>> @@ -294,9 +295,11 @@ GLIBC_2.2 __isdigit_l F
>> You can't do that.  Please read the thread starting at
>> <http://sourceware.org/ml/libc-alpha/2015-11/msg00564.html>.
> 
> I committed my fix, so I expect if you simply merge up to the tip of master,
> the hppa abilist problem will go away too.


I'm testing a new version of the change with the versions changed to 2.23 and an update
to the hppa/Versions file.

I'm not a glibc maintainer, so I shouldn't do the merge.

Dave
--
John David Anglin	dave.anglin@bell.net
  
Chris Metcalf Dec. 13, 2015, 10:12 p.m. UTC | #4
On 12/13/2015 5:02 PM, John David Anglin wrote:
> On 2015-12-13, at 4:42 PM, Chris Metcalf wrote:
>
>> On 12/13/2015 4:13 AM, Andreas Schwab wrote:
>>> John David Anglin <dave.anglin@bell.net> writes:
>>>
>>>> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
>>>> index 1d30644..72435f8 100644
>>>> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
>>>> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
>>>> @@ -263,6 +263,7 @@ GLIBC_2.2 __fcntl F
>>>>   GLIBC_2.2 __ffs F
>>>>   GLIBC_2.2 __finite F
>>>>   GLIBC_2.2 __finitef F
>>>> +GLIBC_2.2 __finitel F
>>>>   GLIBC_2.2 __flbf F
>>>>   GLIBC_2.2 __fork F
>>>>   GLIBC_2.2 __fpending F
>>>> @@ -294,9 +295,11 @@ GLIBC_2.2 __isdigit_l F
>>> You can't do that.  Please read the thread starting at
>>> <http://sourceware.org/ml/libc-alpha/2015-11/msg00564.html>.
>> I committed my fix, so I expect if you simply merge up to the tip of master,
>> the hppa abilist problem will go away too.
>
> I'm testing a new version of the change with the versions changed to 2.23 and an update
> to the hppa/Versions file.
>
> I'm not a glibc maintainer, so I shouldn't do the merge.

OK, but, if you are working on the glibc tip, you should not see these extra exports
for __finitel and friends at all any more, so you should not have to change your abilist files.
  
John David Anglin Dec. 14, 2015, 1:29 p.m. UTC | #5
On 2015-12-13, at 6:11 PM, John David Anglin wrote:

> On 2015-12-13, at 5:12 PM, Chris Metcalf wrote:
> 
>> On 12/13/2015 5:02 PM, John David Anglin wrote:
>>> On 2015-12-13, at 4:42 PM, Chris Metcalf wrote:
>>> 
>>>> On 12/13/2015 4:13 AM, Andreas Schwab wrote:
>>>>> John David Anglin <dave.anglin@bell.net> writes:
>>>>> 
>>>>>> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
>>>>>> index 1d30644..72435f8 100644
>>>>>> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
>>>>>> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
>>>>>> @@ -263,6 +263,7 @@ GLIBC_2.2 __fcntl F
>>>>>> GLIBC_2.2 __ffs F
>>>>>> GLIBC_2.2 __finite F
>>>>>> GLIBC_2.2 __finitef F
>>>>>> +GLIBC_2.2 __finitel F
>>>>>> GLIBC_2.2 __flbf F
>>>>>> GLIBC_2.2 __fork F
>>>>>> GLIBC_2.2 __fpending F
>>>>>> @@ -294,9 +295,11 @@ GLIBC_2.2 __isdigit_l F
>>>>> You can't do that.  Please read the thread starting at
>>>>> <http://sourceware.org/ml/libc-alpha/2015-11/msg00564.html>.
>>>> I committed my fix, so I expect if you simply merge up to the tip of master,
>>>> the hppa abilist problem will go away too.
>>> 
>>> I'm testing a new version of the change with the versions changed to 2.23 and an update
>>> to the hppa/Versions file.
>>> 
>>> I'm not a glibc maintainer, so I shouldn't do the merge.
>> 
>> OK, but, if you are working on the glibc tip, you should not see these extra exports
>> for __finitel and friends at all any more, so you should not have to change your abilist files.
> 
> 
> Thanks, I'll retest with no changes to the hppa abi files.


There were no abi failures, so all that is needed is the original patch.  The v2 patch is withdrawn,

Dave
--
John David Anglin	dave.anglin@bell.net
  

Patch

diff --git a/sysdeps/hppa/fpu/bits/mathdef.h b/sysdeps/hppa/fpu/bits/mathdef.h
index d189f4a..443655f 100644
--- a/sysdeps/hppa/fpu/bits/mathdef.h
+++ b/sysdeps/hppa/fpu/bits/mathdef.h
@@ -34,5 +34,10 @@  typedef double double_t;	/* `double' expressions are evaluated as
 
 #endif	/* ISO C99 */
 
-/* On hppa `long double' is 64-bits. */
-#undef __NO_LONG_DOUBLE_MATH
+#ifndef __NO_LONG_DOUBLE_MATH
+/* On hppa `long double' and `double' are  64-bits.  So, libm is built
+   with NO_LONG_DOUBLE defined.  The following define ensures the library
+   and headers are consistent.  This disables the declaration of all the
+   `long double' function variants.  */
+# define __NO_LONG_DOUBLE_MATH	1
+#endif
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 1d30644..72435f8 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -263,6 +263,7 @@  GLIBC_2.2 __fcntl F
 GLIBC_2.2 __ffs F
 GLIBC_2.2 __finite F
 GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
 GLIBC_2.2 __flbf F
 GLIBC_2.2 __fork F
 GLIBC_2.2 __fpending F
@@ -294,9 +295,11 @@  GLIBC_2.2 __isdigit_l F
 GLIBC_2.2 __isgraph_l F
 GLIBC_2.2 __isinf F
 GLIBC_2.2 __isinff F
+GLIBC_2.2 __isinfl F
 GLIBC_2.2 __islower_l F
 GLIBC_2.2 __isnan F
 GLIBC_2.2 __isnanf F
+GLIBC_2.2 __isnanl F
 GLIBC_2.2 __isprint_l F
 GLIBC_2.2 __ispunct_l F
 GLIBC_2.2 __isspace_l F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 9b7f40a..9e0e884 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -63,6 +63,7 @@  GLIBC_2.2 __clog10f F
 GLIBC_2.2 __clog10l F
 GLIBC_2.2 __finite F
 GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
 GLIBC_2.2 __fpclassify F
 GLIBC_2.2 __fpclassifyf F
 GLIBC_2.2 __signbit F