diff options
author | Atsushi Nemoto <anemo@mba.ocn.ne.jp> | 2010-01-30 00:24:37 +0900 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2010-02-05 15:45:56 -0800 |
commit | 7160571c5e3ed99949f3f592246a59d01f07fea3 (patch) | |
tree | c733949673acccb5ac83ab17c47694997e7087ff | |
parent | df1580676a48dc3a9faf7e508ad3ec822a8e5a05 (diff) |
getdents: Fix mips64 build
On Wed, 27 Jan 2010 07:14:08 +0100, Carmelo AMOROSO <carmelo.amoroso@st.com> wrote:
> I would re-write your patch in a simpler way.
>
> We already have the following
>
> 136 #if defined __UCLIBC_HAS_LFS__ && ! defined __NR_getdents64
> 137 attribute_hidden strong_alias(__getdents,__getdents64)
> 138 #endif
>
> I think that it's simpler to move in the proper place this statement.
Thanks, indeed. If we came into "#elif WORDSIZE == 32" block, above
condition never be true. So we can just move this statement out of
"#if...#elif...#elif...#endif" block. Here is a revised patch.
------------------------------------------------------
From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Subject: [PATCH] getdents: Fix mips64 build
Some archs (such as mips64) do not have getdents64 syscall but have
getdents syscall. Define alias for it.
This fixes regression from 0.9.30.1.
Backgrounds:
This is once done by commit e8b1c674. But after the commit 33bcf733
("Use getdents syscall if kernel provide supports for this instead of
relying upon getdents64."), if __ASSUME_GETDENTS32_D_TYPE was defined
the alias for getdents64 is not defined. The macro
__ASSUME_GETDENTS32_D_TYPE had been effectively ignored until 0.9.30.1
but the commit 0f0f20ab ("Move kernel-features.h header from the
linuxthread directory to a common one...") really enables it.
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r-- | libc/sysdeps/linux/common/getdents.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libc/sysdeps/linux/common/getdents.c b/libc/sysdeps/linux/common/getdents.c index 6a38772e8..5dda190a8 100644 --- a/libc/sysdeps/linux/common/getdents.c +++ b/libc/sysdeps/linux/common/getdents.c @@ -133,10 +133,6 @@ ssize_t __getdents (int fd, char *buf, size_t nbytes) return (char *) dp - buf; } -#if defined __UCLIBC_HAS_LFS__ && ! defined __NR_getdents64 -attribute_hidden strong_alias(__getdents,__getdents64) -#endif - #elif __WORDSIZE == 32 extern __typeof(__getdents) __getdents64 attribute_hidden; @@ -167,4 +163,8 @@ ssize_t __getdents (int fd, char *buf, size_t nbytes) #endif +#if defined __UCLIBC_HAS_LFS__ && ! defined __NR_getdents64 +attribute_hidden strong_alias(__getdents,__getdents64) +#endif + #endif |