[3/4] Consolidate pread/pread64 implementations

Message ID 570FF1B7.7060604@linaro.org
State Superseded
Headers

Commit Message

Adhemerval Zanella Netto April 14, 2016, 7:38 p.m. UTC
  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

Florian Weimer April 14, 2016, 8:54 p.m. UTC | #1
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
  

Patch

diff --git a/sysdeps/unix/sysv/linux/sysdep.h b/sysdeps/unix/sysv/linux/sysdep.h
index 4ac4c00..f2d7e05 100644
--- a/sysdeps/unix/sysv/linux/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sysdep.h
@@ -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.