[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to And
From: |
Kevin Cernekee |
Subject: |
Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android |
Date: |
Mon, 23 Feb 2015 09:44:42 -0800 |
On Sun, Feb 22, 2015 at 7:11 PM, Paul Eggert <address@hidden> wrote:
> Kevin Cernekee wrote:
>>
>> Based on comments in tests/test-sys_resource.c it looks like somebody
>> may have started a <sys/resource.h> replacement, but there is more
>> work to be done.
>
>
> Yes. It's not clear how to implement all that stuff in the sys_resource
> module, so instead, how about the more-modest patch attached? I've pushed
> it.
Now test-getdtablesize and test-fcntl pass. But we have a new problem
with test-dup2, as this assertion is failing:
/* Assigning to self must be a no-op. */
ASSERT (dup2 (fd, fd) == fd);
Under the hood, Bionic implements dup2() using dup3():
int dup2(int old_fd, int new_fd) {
return dup3(old_fd, new_fd, 0);
}
openat(AT_FDCWD, "test-dup2.tmp", O_RDWR|O_CREAT|O_TRUNC|O_LARGEFILE, 0600) = 3
fcntl64(3, F_GETFL) = 0x20002 (flags O_RDWR|O_LARGEFILE)
close(4) = -1 EBADF (Bad file descriptor)
close(5) = -1 EBADF (Bad file descriptor)
fcntl64(4, F_GETFL) = -1 EBADF (Bad file descriptor)
fcntl64(5, F_GETFL) = -1 EBADF (Bad file descriptor)
dup3(3, 3, 0) = -1 EINVAL (Invalid argument)
write(2, "test-dup2.c:123: assertion 'dup2"..., 56test-dup2.c:123:
assertion 'dup2 (fd, fd) == fd' failed
) = 56
and according to the man page, dup3() fails with EINVAL if oldfd ==
newfd. Unlike dup2(), which should return newfd.
gnulib commit f9fa7159134175 ("dup2, fcntl: cross-compiler better for
Android") changed the logic to guess "yes" instead of "no" on the
question of whether dup2() is sane on Linux. I suspect this was the
source of the regression? Perhaps we need another a special case in
there for Android (attached).
0001-Replace-dup2-on-Android.patch
Description: Text Data
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, (continued)
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Paul Eggert, 2015/02/17
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Kevin Cernekee, 2015/02/17
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, enh, 2015/02/17
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Paul Eggert, 2015/02/17
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Kevin Cernekee, 2015/02/18
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Paul Eggert, 2015/02/19
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Kevin Cernekee, 2015/02/19
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Paul Eggert, 2015/02/20
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Kevin Cernekee, 2015/02/22
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Paul Eggert, 2015/02/22
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android,
Kevin Cernekee <=
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, Paul Eggert, 2015/02/23
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, enh, 2015/02/24
- Re: [PATCH 2/3] getdtablesize: Extend RLIMIT_NOFILE fallback case to Android, enh, 2015/02/23
[PATCH 3/3] localename: Implement gl_locale_name_thread_unsafe() for Android, Kevin Cernekee, 2015/02/15