mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Update.
1998-07-02 21:51 Ulrich Drepper <drepper@cygnus.com> * Makeconfig: Define list of subdirs as all-subdirs and make subdirs a copy. * Makefile: Add rules to generate map files. (distribute): Remove libc.map, add Versions.def and versions.awk. * Makerules: Change rules to find map files on common-objpfx. * elf/Makefile: Likewise. * md5-crypt/Makefile: Likewise. * nis/Makefile (libnsl-map): Remove. * Versions.def: New file. * versions.awk: New file. * argp/Versions: New file. * assert/Versions: New file. * catgets/Versions: New file. * csu/Versions: New file. * ctype/Versions: New file. * db/Versions: New file. * debug/Versions: New file. * dirent/Versions: New file. * elf/Versions: New file. * gmon/Versions: New file. * grp/Versions: New file. * hesiod/Versions: New file. * hurd/Versions: New file. * iconv/Versions: New file. * inet/Versions: New file. * intl/Versions: New file. * io/Versions: New file. * libio/Versions: New file. * linuxthreads/Versions: New file. * locale/Versions: New file. * login/Versions: New file. * malloc/Versions: New file. * math/Versions: New file. * md5-crypt/Versions: New file. * misc/Versions: New file. * nis/Versions: New file. * nss/Versions: New file. * posix/Versions: New file. * pwd/Versions: New file. * resolv/Versions: New file. * resource/Versions: New file. * rt/Versions: New file. * setjmp/Versions: New file. * shadow/Versions: New file. * signal/Versions: New file. * socket/Versions: New file. * stdio/Versions: New file. * stdio-common/Versions: New file. * stdlib/Versions: New file. * streams/Versions: New file. * string/Versions: New file. * sunrpc/Versions: New file. * sysdeps/alpha/Versions: New file. * sysdeps/alpha/fpu/Versions: New file. * sysdeps/i386/Versions: New file. * sysdeps/sparc/Versions: New file. * sysdeps/unix/sysv/Versions: New file. * sysdeps/unix/sysv/linux/Versions: New file. * sysdeps/unix/sysv/linux/alpha/Versions: New file. * sysdeps/unix/sysv/linux/i386/Versions: New file. * sysdeps/unix/sysv/linux/mips/Versions: New file. * sysvipc/Versions: New file. * termios/Versions: New file. * time/Versions: New file. * wcsmbs/Versions: New file. * wctype/Versions: New file. * libc.map: Removed. * db/libdb.map: Removed. * elf/libdl.map: Removed. * hesiod/libnss_hesiod.map: Removed. * hurd/libhurduser.map: Removed. * hurd/libmachuser.map: Removed. * linuxthreads/libpthread.map: Removed. * locale/libBrokenLocale.map: Removed. * login/libutil.map: Removed. * math/libm.map: Removed. * md5-crypt/libcrypt.map: Removed. * nis/libnsl.map: Removed. * nis/libnsl_compat.map: Removed. * nis/libnss_nis.map: Removed. * nis/libnss_nisplus.map: Removed. * nss/libnss_db.map: Removed. * nss/libnss_files.map: Removed. * resolv/libnss_dns.map: Removed. * resolv/libresolv.map: Removed. * rt/librt.map: Removed. * elf/dl-load.c (fillin_rpath): Fix test for trusted directory. Fix typos. * elf/rtld.c (process_dl_debug): Recognize 'all'. (process_envvars): LD_BIND_NOW must be followed by y, Y, or 1. * sysdeps/generic/elf/backtracesyms.c: Allocate string memory of correct size. * sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path): Fix typo in comment.
This commit is contained in:
@ -204,13 +204,14 @@ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
|
||||
{
|
||||
const char **trun = trusted;
|
||||
|
||||
/* All trusted directory must be complete name. */
|
||||
/* All trusted directories must be complete names. */
|
||||
if (cp[0] != '/')
|
||||
continue;
|
||||
|
||||
while (*trun != NULL
|
||||
&& (memcmp (*trun, cp, len) != 0
|
||||
|| ((*trun)[len] != '/' && (*trun)[len + 1] != '\0')))
|
||||
|| (*trun)[len] != '/'
|
||||
|| (*trun)[len + 1] != '\0'))
|
||||
++trun;
|
||||
|
||||
if (*trun == NULL)
|
||||
@ -392,7 +393,7 @@ _dl_init_paths (const char *llp)
|
||||
if (rtld_search_dirs[0] == NULL)
|
||||
_dl_signal_error (ENOMEM, NULL, "cannot create cache for search path");
|
||||
|
||||
pelem = all_dirs= rtld_search_dirs[0];
|
||||
pelem = all_dirs = rtld_search_dirs[0];
|
||||
for (strp = system_dirs; *strp != NULL; ++strp, pelem += round_size)
|
||||
{
|
||||
size_t cnt;
|
||||
@ -904,12 +905,13 @@ open_path (const char *name, size_t namelen, int preloaded,
|
||||
return -1;
|
||||
}
|
||||
|
||||
buf = __alloca (max_dirnamelen + max_capstrlen + namelen + 1);
|
||||
buf = __alloca (max_dirnamelen + max_capstrlen + namelen);
|
||||
do
|
||||
{
|
||||
struct r_search_path_elem *this_dir = *dirs;
|
||||
size_t buflen = 0;
|
||||
size_t cnt;
|
||||
char *edp;
|
||||
|
||||
/* If we are debugging the search for libraries print the path
|
||||
now if it hasn't happened now. */
|
||||
@ -919,6 +921,7 @@ open_path (const char *name, size_t namelen, int preloaded,
|
||||
print_search_path (dirs, current_what, this_dir->where);
|
||||
}
|
||||
|
||||
edp = (char *) __mempcpy (buf, this_dir->dirname, this_dir->dirnamelen);
|
||||
for (cnt = 0; fd == -1 && cnt < ncapstr; ++cnt)
|
||||
{
|
||||
/* Skip this directory if we know it does not exist. */
|
||||
@ -926,8 +929,7 @@ open_path (const char *name, size_t namelen, int preloaded,
|
||||
continue;
|
||||
|
||||
buflen =
|
||||
((char *) __mempcpy (__mempcpy (__mempcpy (buf, this_dir->dirname,
|
||||
this_dir->dirnamelen),
|
||||
((char *) __mempcpy (__mempcpy (edp,
|
||||
capstr[cnt].str, capstr[cnt].len),
|
||||
name, namelen)
|
||||
- buf);
|
||||
@ -946,12 +948,11 @@ open_path (const char *name, size_t namelen, int preloaded,
|
||||
test whether there is any directory at all. */
|
||||
struct stat st;
|
||||
|
||||
buf[this_dir->dirnamelen
|
||||
+ MAX (capstr[cnt].len - 1, 0)] = '\0';
|
||||
buf[buflen - namelen - 1] = '\0';
|
||||
|
||||
if (__xstat (_STAT_VER, buf, &st) != 0
|
||||
|| ! S_ISDIR (st.st_mode))
|
||||
/* The directory does not exist ot it is no directory. */
|
||||
/* The directory does not exist or it is no directory. */
|
||||
this_dir->status[cnt] = nonexisting;
|
||||
else
|
||||
this_dir->status[cnt] = existing;
|
||||
|
Reference in New Issue
Block a user