Fix sparc build due missing __WORDSIZE_TIME64_COMPAT32 definition (committed)

Message ID 1478290761-7603-1-git-send-email-adhemerval.zanella@linaro.org
State Committed
Headers

Commit Message

Adhemerval Zanella Netto Nov. 4, 2016, 8:19 p.m. UTC
  This patch adds the missing Linux sparc definitions from d060cd0.
Both value are copied from default sparc value [1] and with this
fix now both sparc 32 and 64 bits builds on Linux.

Also, there are lot of duplicated definition and some are not really
required.  I see two possible future cleanups:

  1. Remove 32 bits definition form 64 bits headers and vice versa.
     For instance, powerpc32 and sparc32 linux wordsize contains
     checks for 64 bits definition and ideally 32 bit build should
     not include such header.

  2. Linux definition could include-next default definition instead
     of replicate its value.

	* sysdeps/unix/sysv/linux/sparc/bits/wordsize.h
	(__WORDSIZE_TIME64_COMPAT32): Define for both 32 and  64 bits.

[1] sysdeps/sparc/sparc{32,64}/bits/wordsize.h
---
 ChangeLog                                     | 5 +++++
 sysdeps/unix/sysv/linux/sparc/bits/wordsize.h | 2 ++
 2 files changed, 7 insertions(+)
  

Comments

Joseph Myers Nov. 4, 2016, 9:25 p.m. UTC | #1
On Fri, 4 Nov 2016, Adhemerval Zanella wrote:

>   1. Remove 32 bits definition form 64 bits headers and vice versa.
>      For instance, powerpc32 and sparc32 linux wordsize contains
>      checks for 64 bits definition and ideally 32 bit build should
>      not include such header.
> 
>   2. Linux definition could include-next default definition instead
>      of replicate its value.

Installed headers have to be suitable for all multilibs in multiarch cases 
and cannot #include_next other variants of that header.  The files 
sysdeps/sparc/sparc32/bits/wordsize.h and 
sysdeps/sparc/sparc64/bits/wordsize.h and 
sysdeps/powerpc/powerpc32/bits/wordsize.h and 
sysdeps/powerpc/powerpc64/bits/wordsize.h are unused.
  
Adhemerval Zanella Netto Nov. 4, 2016, 9:33 p.m. UTC | #2
On 04/11/2016 19:25, Joseph Myers wrote:
> On Fri, 4 Nov 2016, Adhemerval Zanella wrote:
> 
>>   1. Remove 32 bits definition form 64 bits headers and vice versa.
>>      For instance, powerpc32 and sparc32 linux wordsize contains
>>      checks for 64 bits definition and ideally 32 bit build should
>>      not include such header.
>>
>>   2. Linux definition could include-next default definition instead
>>      of replicate its value.
> 
> Installed headers have to be suitable for all multilibs in multiarch cases 
> and cannot #include_next other variants of that header.  The files 
> sysdeps/sparc/sparc32/bits/wordsize.h and 
> sysdeps/sparc/sparc64/bits/wordsize.h and 
> sysdeps/powerpc/powerpc32/bits/wordsize.h and 
> sysdeps/powerpc/powerpc64/bits/wordsize.h are unused.

Right, I forgot about these are installed headers.
  

Patch

diff --git a/ChangeLog b/ChangeLog
index 3cf5347..27ebce7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@ 
+2016-11-04  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+	* sysdeps/unix/sysv/linux/sparc/bits/wordsize.h
+	(__WORDSIZE_TIME64_COMPAT32): Define for both 32 and  64 bits.
+
 2016-11-04  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #20768]
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h b/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h
index 76d6579..121b4fe 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h
@@ -2,10 +2,12 @@ 
 
 #if defined __arch64__ || defined __sparcv9
 # define __WORDSIZE	64
+# define __WORDSIZE_TIME64_COMPAT32	1
 #else
 # define __WORDSIZE	32
 # define __WORDSIZE32_SIZE_ULONG	0
 # define __WORDSIZE32_PTRDIFF_LONG	0
+# define __WORDSIZE_TIME64_COMPAT32	0
 #endif
 
 #if !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL