This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi! glibc would still not build with the last patch I've sent, so in addition to that one something like this is needed. The problem is that when linux/syscalls.list declares EXTRA sendfile and sendfile64 and linux/alpha/syscalls.list declares EXTRA sendfile with sendfile64 alias, glibc configury decides to build io/sendfile.o*, io/sendfile64.o* and misc/sendfile.o*, where io/sendfile64.o is sysdeps/generic/sendfile64.c, one of the sendfile.o* is the alpha syscall with sendfile64 alias and the other is the linux syscall without sendfile64 alias. The following patch adds sendfile and sendfile64 to the Makefile, so even glibcs build with kernel headers not having sendfile will still export stub sendfile and makes sure only one of each is built into glibc (whether it is stub or not). 2002-06-06 Jakub Jelinek <jakub@redhat.com> * sysdeps/generic/sendfile.c: New. * sysdeps/unix/sysv/linux/alpha/sendfile64.c: New. * sysdeps/unix/sysv/linux/ia64/sendfile64.c: New. * sysdeps/unix/sysv/linux/sparc/sparc64/sendfile64.c: New. * sysdeps/unix/sysv/linux/x86_64/sendfile64.c: New. * sysdeps/unix/sysv/linux/syscalls.list (sendfile): Remove EXTRA. (sendfile64): Likewise. * sysdeps/unix/sysv/linux/alpha/syscalls.list (sendfile): Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list (sendfile): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (sendfile): Likewise. * sysdeps/unix/sysv/linux/x86_64/syscalls.list (sendfile): Likewise. * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add sendfile and sendfile64 in io subdir. --- libc/sysdeps/generic/sendfile.c.jj Thu Jun 6 23:25:26 2002 +++ libc/sysdeps/generic/sendfile.c Thu Jun 6 23:26:30 2002 @@ -0,0 +1,33 @@ +/* sendfile -- copy data directly from one file descriptor to another + Copyright (C) 2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <sys/sendfile.h> +#include <errno.h> + +/* Send COUNT bytes from file associated with IN_FD starting at OFFSET to + descriptor OUT_FD. */ +ssize_t +sendfile (int out_fd, int in_fd, off_t *offset, size_t count) +{ + __set_errno (ENOSYS); + return -1; +} +stub_warning (sendfile) + +#include <stub-tag.h> --- libc/sysdeps/unix/sysv/linux/alpha/sendfile64.c.jj Thu Jun 6 23:34:31 2002 +++ libc/sysdeps/unix/sysv/linux/alpha/sendfile64.c Thu Jun 6 23:34:23 2002 @@ -0,0 +1 @@ +/* sendfile64 is alias of sendfile syscall. */ --- libc/sysdeps/unix/sysv/linux/alpha/syscalls.list.jj Wed Jun 5 10:35:28 2002 +++ libc/sysdeps/unix/sysv/linux/alpha/syscalls.list Thu Jun 6 23:28:39 2002 @@ -29,7 +29,7 @@ setrlimit - setrlimit 2 __setrlimit setr ftruncate - ftruncate 2 __ftruncate ftruncate __ftruncate64 ftruncate64 truncate - truncate 2 truncate truncate64 readahead EXTRA readahead 3 __readahead readahead -sendfile EXTRA sendfile i:iipi sendfile sendfile64 +sendfile - sendfile i:iipi sendfile sendfile64 # these are actually common with the x86: sys_ustat ustat ustat 2 __syscall_ustat --- libc/sysdeps/unix/sysv/linux/ia64/syscalls.list.jj Wed Jun 5 10:35:29 2002 +++ libc/sysdeps/unix/sysv/linux/ia64/syscalls.list Thu Jun 6 23:32:09 2002 @@ -16,7 +16,7 @@ truncate - truncate 2 truncate truncate6 getrlimit - getrlimit 2 __getrlimit getrlimit getrlimit64 setrlimit - setrlimit 2 __setrlimit setrlimit setrlimit64 readahead EXTRA readahead 3 __readahead readahead -sendfile EXTRA sendfile i:iipi sendfile sendfile64 +sendfile - sendfile i:iipi sendfile sendfile64 # semaphore and shm system calls msgctl - msgctl i:iip __msgctl msgctl --- libc/sysdeps/unix/sysv/linux/ia64/sendfile64.c.jj Thu Jun 6 23:34:31 2002 +++ libc/sysdeps/unix/sysv/linux/ia64/sendfile64.c Thu Jun 6 23:34:23 2002 @@ -0,0 +1 @@ +/* sendfile64 is alias of sendfile syscall. */ --- libc/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list.jj Wed Jun 5 10:27:57 2002 +++ libc/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list Thu Jun 6 23:32:51 2002 @@ -12,7 +12,7 @@ ftruncate - ftruncate 2 __ftruncate ftru truncate - truncate 2 truncate truncate64 mmap - mmap 6 __mmap mmap __mmap64 mmap64 readahead EXTRA readahead 3 __readahead readahead -sendfile EXTRA sendfile i:iipi sendfile sendfile64 +sendfile - sendfile i:iipi sendfile sendfile64 # Override select.S in parent directory: select - select 5 __select select --- libc/sysdeps/unix/sysv/linux/sparc/sparc64/sendfile64.c.jj Thu Jun 6 23:34:31 2002 +++ libc/sysdeps/unix/sysv/linux/sparc/sparc64/sendfile64.c Thu Jun 6 23:34:23 2002 @@ -0,0 +1 @@ +/* sendfile64 is alias of sendfile syscall. */ --- libc/sysdeps/unix/sysv/linux/x86_64/syscalls.list.jj Wed Jun 5 10:35:35 2002 +++ libc/sysdeps/unix/sysv/linux/x86_64/syscalls.list Thu Jun 6 23:33:11 2002 @@ -15,7 +15,7 @@ setrlimit - setrlimit i:ip __setrlimit s ftruncate - ftruncate i:ii __ftruncate ftruncate ftruncate64 __ftruncate64 truncate - truncate i:si truncate truncate64 readahead EXTRA readahead i:iipi __readahead readahead -sendfile EXTRA sendfile i:iip sendfile sendfile64 +sendfile - sendfile i:iip sendfile sendfile64 # semaphore and shm system calls msgctl - msgctl i:iip __msgctl msgctl --- libc/sysdeps/unix/sysv/linux/x86_64/sendfile64.c.jj Thu Jun 6 23:34:31 2002 +++ libc/sysdeps/unix/sysv/linux/x86_64/sendfile64.c Thu Jun 6 23:34:23 2002 @@ -0,0 +1 @@ +/* sendfile64 is alias of sendfile syscall. */ --- libc/sysdeps/unix/sysv/linux/Makefile.jj Wed Jun 5 10:27:53 2002 +++ libc/sysdeps/unix/sysv/linux/Makefile Thu Jun 6 23:27:51 2002 @@ -104,6 +104,10 @@ ifeq ($(subdir),dirent) sysdep_routines += getdirentries getdirentries64 endif +ifeq ($(subdir),io) +sysdep_routines += sendfile sendfile64 +endif + ifeq ($(subdir),nis) CFLAGS-ypclnt.c = -DUSE_BINDINGDIR=1 endif Jakub
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |