2
0
mirror of git://sourceware.org/git/glibc.git synced 2025-04-12 14:21:18 +08:00

hurd: Fix build after __pread64 usage in the dynamic loader

Commit 95c1056962a3f2297c94ce47f0eaf0c5b6563231 ("elf: Use nocancel
pread64() instead of lseek()+read()") added calls to __pread64 to
the dynamic loader.  On Hurd, this needs an implementation in the
dynamic loader because the rtld-pread64 rebuild pulls in too many
symbols.

Fixes: 95c1056962a3f2297c94ce47f0eaf0c5b6563231
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
This commit is contained in:
Florian Weimer 2019-10-24 15:51:29 +02:00
parent c82005921e
commit 3007ad2140

@ -357,9 +357,9 @@ __close (int fd)
return 0;
}
check_no_hidden(__read);
check_no_hidden(__pread64);
__ssize_t weak_function
__read (int fd, void *buf, size_t nbytes)
__pread64 (int fd, void *buf, size_t nbytes, off64_t offset)
{
error_t err;
char *data;
@ -367,7 +367,7 @@ __read (int fd, void *buf, size_t nbytes)
data = buf;
nread = nbytes;
err = __io_read ((mach_port_t) fd, &data, &nread, -1, nbytes);
err = __io_read ((mach_port_t) fd, &data, &nread, offset, nbytes);
if (err)
return __hurd_fail (err);
@ -379,6 +379,14 @@ __read (int fd, void *buf, size_t nbytes)
return nread;
}
libc_hidden_weak (__pread64)
check_no_hidden(__read);
__ssize_t weak_function
__read (int fd, void *buf, size_t nbytes)
{
return __pread64 (fd, buf, nbytes, -1);
}
libc_hidden_weak (__read)
check_no_hidden(__write);