Patchwork uclibc: arc: fix fstat for big-endian

login
register
mail settings
Submitter Mischa Jonker
Date July 23, 2013, 4:28 p.m.
Message ID <1374596888-25427-1-git-send-email-mjonker@synopsys.com>
Download mbox | patch
Permalink /patch/261146/
State Accepted
Headers show

Comments

Mischa Jonker - July 23, 2013, 4:28 p.m.
Fixes "Value too large for defined data type" messages caused by fstat
syscall wrapper returning -EOVERFLOW.

Signed-off-by: Mischa Jonker <mjonker@synopsys.com>
---
 package/uclibc/0.9.33-arc/fix-fstat-for-be.patch |   32 ++++++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 package/uclibc/0.9.33-arc/fix-fstat-for-be.patch
Thomas Petazzoni - July 27, 2013, 1:47 p.m.
Dear Mischa Jonker,

On Tue, 23 Jul 2013 18:28:08 +0200, Mischa Jonker wrote:
> Fixes "Value too large for defined data type" messages caused by fstat
> syscall wrapper returning -EOVERFLOW.
> 
> Signed-off-by: Mischa Jonker <mjonker@synopsys.com>

Committed, thanks.

Thomas

Patch

diff --git a/package/uclibc/0.9.33-arc/fix-fstat-for-be.patch b/package/uclibc/0.9.33-arc/fix-fstat-for-be.patch
new file mode 100644
index 0000000..2cdb517
--- /dev/null
+++ b/package/uclibc/0.9.33-arc/fix-fstat-for-be.patch
@@ -0,0 +1,32 @@ 
+From f394d65c74631a0e715bac582b09c302ee84114f Mon Sep 17 00:00:00 2001
+From: Mischa Jonker <mjonker@synopsys.com>
+Date: Tue, 23 Jul 2013 17:59:04 +0200
+Subject: [PATCH] libc/sysdeps: Fix common-generic stat.h for BE part 2
+
+Previous patch only fixed the build. This patch fixes the behavior at
+run-time as well.
+
+It fixes "Value too large for defined data type" messages caused by
+fstat syscall wrapper returning -EOVERFLOW.
+
+Signed-off-by: Mischa Jonker <mjonker@synopsys.com>
+---
+ libc/sysdeps/linux/common-generic/bits/stat.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libc/sysdeps/linux/common-generic/bits/stat.h b/libc/sysdeps/linux/common-generic/bits/stat.h
+index 07716ab..945c408 100644
+--- a/libc/sysdeps/linux/common-generic/bits/stat.h
++++ b/libc/sysdeps/linux/common-generic/bits/stat.h
+@@ -63,8 +63,8 @@ struct stat
+     unsigned long long __pad4;
+     long __pad5;
+     long st_size;				/* Size of file, in bytes. */
+-    int __pad6;
+     int st_blksize;				/* Optimal block size for I/O. */
++    int __pad6;
+     long __pad7;
+     long st_blocks;				/* Number 512-byte blocks allocated */
+ # endif /* __LITTLE_ENDIAN */
+--
+1.7.9.5