Fix sparc build due missing __WORDSIZE_TIME64_COMPAT32 definition (committed)
Commit Message
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
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.
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.
@@ -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]
@@ -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