1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-07 06:43:00 +03:00
2000-08-15  Ulrich Drepper  <drepper@redhat.com>

	* include/link.h: Undo last patches.  Hurd now had stat64.
	* elf/Makefile: Likewise.
	* elf/dl-load.c: Likewise.
	* elf/dl-misc.c: Likewise.
	* elf/dl-profile.c: Likewise.
	* sysdeps/generic/sysd-link.h: Removed.
	* sysdeps/unix/sysv/linux/sysd-link.h: Removed.

	* rt/aio_notify.c (notify_func_wrapper): Wrapper function to call
	thread event callback function.
	(__aio_notify_only): Use function above.
	Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
This commit is contained in:
Ulrich Drepper
2000-08-16 01:28:07 +00:00
parent ed2d7a57e5
commit 5763742fc7
8 changed files with 27 additions and 26 deletions

View File

@@ -1,3 +1,18 @@
2000-08-15 Ulrich Drepper <drepper@redhat.com>
* include/link.h: Undo last patches. Hurd now had stat64.
* elf/Makefile: Likewise.
* elf/dl-load.c: Likewise.
* elf/dl-misc.c: Likewise.
* elf/dl-profile.c: Likewise.
* sysdeps/generic/sysd-link.h: Removed.
* sysdeps/unix/sysv/linux/sysd-link.h: Removed.
* rt/aio_notify.c (notify_func_wrapper): Wrapper function to call
thread event callback function.
(__aio_notify_only): Use function above.
Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2000-08-16 Mark Kettenis <kettenis@gnu.org> 2000-08-16 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/lseek64.c: New file. * sysdeps/mach/hurd/lseek64.c: New file.

View File

@@ -47,8 +47,7 @@ distribute := $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \
vismain.c vismod1.c vismod2.c vismod3.c \ vismain.c vismod1.c vismod2.c vismod3.c \
constload2.c constload3.c filtmod1.c filtmod2.c \ constload2.c constload3.c filtmod1.c filtmod2.c \
nodlopenmod.c nodelete.c nodelmod1.c nodelmod2.c \ nodlopenmod.c nodelete.c nodelmod1.c nodelmod2.c \
nodelmod3.c nodelmod4.c nodlopen.c \ nodelmod3.c nodelmod4.c nodlopen.c
sysd-link.h
include ../Makeconfig include ../Makeconfig

View File

@@ -730,10 +730,10 @@ _dl_map_object_from_fd (const char *name, int fd, char *realname,
int type; int type;
char *readbuf; char *readbuf;
ssize_t readlength; ssize_t readlength;
struct elf_stat st; struct stat64 st;
/* Get file information. */ /* Get file information. */
if (elf_fxstat (_STAT_VER, fd, &st) < 0) if (__fxstat64 (_STAT_VER, fd, &st) < 0)
LOSE (errno, N_("cannot stat shared object")); LOSE (errno, N_("cannot stat shared object"));
/* Look again to see if the real name matched another already loaded. */ /* Look again to see if the real name matched another already loaded. */
@@ -1260,11 +1260,11 @@ open_path (const char *name, size_t namelen, int preloaded,
{ {
/* We failed to open machine dependent library. Let's /* We failed to open machine dependent library. Let's
test whether there is any directory at all. */ test whether there is any directory at all. */
struct elf_stat st; struct stat64 st;
buf[buflen - namelen - 1] = '\0'; buf[buflen - namelen - 1] = '\0';
if (elf_xstat (_STAT_VER, buf, &st) != 0 if (__xstat64 (_STAT_VER, buf, &st) != 0
|| ! S_ISDIR (st.st_mode)) || ! S_ISDIR (st.st_mode))
/* The directory does not exist or it is no directory. */ /* The directory does not exist or it is no directory. */
this_dir->status[cnt] = nonexisting; this_dir->status[cnt] = nonexisting;
@@ -1281,9 +1281,9 @@ open_path (const char *name, size_t namelen, int preloaded,
/* This is an extra security effort to make sure nobody can /* This is an extra security effort to make sure nobody can
preload broken shared objects which are in the trusted preload broken shared objects which are in the trusted
directories and so exploit the bugs. */ directories and so exploit the bugs. */
struct elf_stat st; struct stat64 st;
if (elf_fxstat (_STAT_VER, fd, &st) != 0 if (__fxstat64 (_STAT_VER, fd, &st) != 0
|| (st.st_mode & S_ISUID) == 0) || (st.st_mode & S_ISUID) == 0)
{ {
/* The shared object cannot be tested for being SUID /* The shared object cannot be tested for being SUID

View File

@@ -45,11 +45,11 @@ void *
_dl_sysdep_read_whole_file (const char *file, size_t *sizep, int prot) _dl_sysdep_read_whole_file (const char *file, size_t *sizep, int prot)
{ {
void *result; void *result;
struct elf_stat st; struct stat64 st;
int fd = __open (file, O_RDONLY); int fd = __open (file, O_RDONLY);
if (fd < 0) if (fd < 0)
return NULL; return NULL;
if (elf_fxstat (_STAT_VER, fd, &st) < 0 if (__fxstat64 (_STAT_VER, fd, &st) < 0
/* No need to map the file if it is empty. */ /* No need to map the file if it is empty. */
|| st.st_size == 0) || st.st_size == 0)
result = NULL; result = NULL;

View File

@@ -175,7 +175,7 @@ _dl_start_profile (struct link_map *map, const char *output_dir)
{ {
char *filename; char *filename;
int fd; int fd;
struct elf_stat st; struct stat64 st;
const ElfW(Phdr) *ph; const ElfW(Phdr) *ph;
ElfW(Addr) mapstart = ~((ElfW(Addr)) 0); ElfW(Addr) mapstart = ~((ElfW(Addr)) 0);
ElfW(Addr) mapend = 0; ElfW(Addr) mapend = 0;
@@ -267,7 +267,7 @@ _dl_start_profile (struct link_map *map, const char *output_dir)
return; return;
} }
if (elf_fxstat (_STAT_VER, fd, &st) < 0 || !S_ISREG (st.st_mode)) if (__fxstat64 (_STAT_VER, fd, &st) < 0 || !S_ISREG (st.st_mode))
{ {
/* Not stat'able or not a regular file => don't use it. */ /* Not stat'able or not a regular file => don't use it. */
char buf[400]; char buf[400];

View File

@@ -34,9 +34,6 @@
#include <bits/elfclass.h> /* Defines __ELF_NATIVE_CLASS. */ #include <bits/elfclass.h> /* Defines __ELF_NATIVE_CLASS. */
/* Get some system specific definitions. */
#include <sysd-link.h>
/* Rendezvous structure used by the run-time dynamic linker to communicate /* Rendezvous structure used by the run-time dynamic linker to communicate
details of shared object loading to the debugger. If the executable's details of shared object loading to the debugger. If the executable's
dynamic section has a DT_DEBUG element, the run-time linker sets that dynamic section has a DT_DEBUG element, the run-time linker sets that
@@ -205,7 +202,7 @@ struct link_map
/* This information is kept to check for sure whether a shared /* This information is kept to check for sure whether a shared
object is the same as one already loaded. */ object is the same as one already loaded. */
dev_t l_dev; dev_t l_dev;
elf_ino_t l_ino; ino64_t l_ino;
/* Collected information about own RUNPATH directories. */ /* Collected information about own RUNPATH directories. */
struct r_search_path_elem **l_runpath_dirs; struct r_search_path_elem **l_runpath_dirs;

View File

@@ -1,5 +0,0 @@
/* In general we don't have stat64 available. */
#define elf_stat stat
#define elf_fxstat __fxstat
#define elf_xstat __xstat
#define elf_ino_t ino_t

View File

@@ -1,5 +0,0 @@
/* On Linux we have stat64 available. */
#define elf_stat stat64
#define elf_fxstat __fxstat64
#define elf_xstat __xstat64
#define elf_ino_t ino64_t