[3/4] Consolidate pread/pread64 implementations
Commit Message
On 14-04-2016 15:54, Florian Weimer wrote:
> On 02/25/2016 09:19 PM, Adhemerval Zanella wrote:
>> From: Adhemerval Zanella<adhemerval.zanella@linaro.com>
>>
>> This patch consolidates all the pread/pread64 implementation for Linux
>> in only one (sysdeps/unix/sysv/linux/pread.c). It also removes the
>> syscall from the auto-generation using assembly macros.
>
> This may have broken pread and pread64 on 32-bit arm. I'm trying to get more details.
>
> FAIL: debug/tst-chk1
> FAIL: debug/tst-chk2
> FAIL: debug/tst-chk3
> FAIL: debug/tst-chk4
> FAIL: debug/tst-chk5
> FAIL: debug/tst-chk6
> FAIL: debug/tst-lfschk1
> FAIL: debug/tst-lfschk2
> FAIL: debug/tst-lfschk3
> FAIL: debug/tst-lfschk4
> FAIL: debug/tst-lfschk5
> FAIL: debug/tst-lfschk6
> FAIL: posix/tst-preadwrite
> FAIL: posix/tst-preadwrite64
>
> The debug/* failures have:
>
> Failure on line 1006
> Failure on line 1009
> Failure on line 1013
> Failure on line 1032
> Failure on line 1035
> Failure on line 1039
>
> Also corresponding to pread, pread64.
>
> Florian
It is because sysdeps/unix/sysv/linux/sysdep.h now requires if
__ASSUME_ALIGNED_REGISTER_PAIRS is defined or not to correctly
set __ALIGNMENT_ARG and __ALIGNMENT_COUNT.
Previously arm pread64 set a 0 after the count argument, which
is not set by __ALIGNMENT_ARG. The following patch fixes it:
---
---
This was an overlook from my part: the __ALIGNMENT_{ARG,COUNT} definition
was moved from another header to this one in a patch iteration and I did
not care to actually remake the tests on arm to check if everthing was ok.
I will push it soon.
Comments
On 04/14/2016 09:38 PM, Adhemerval Zanella wrote:
> This was an overlook from my part: the __ALIGNMENT_{ARG,COUNT} definition
> was moved from another header to this one in a patch iteration and I did
> not care to actually remake the tests on arm to check if everthing was ok.
>
> I will push it soon.
I've verified that the master branch no longer has the test suite
failures. Thanks for fixing this so quickly.
Florian
@@ -16,6 +16,7 @@
<http://www.gnu.org/licenses/>. */
#include <bits/wordsize.h>
+#include <kernel-features.h>
/* Set error number and return -1. A target may choose to return the
internal function, __syscall_error, which sets errno and returns -1.