1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-12-24 17:51:17 +03:00

Testsuite for owrdexp.

This commit is contained in:
Ulrich Drepper
1998-03-05 16:42:56 +00:00
parent ea27835442
commit b5efde2fd3
9 changed files with 248 additions and 10 deletions

View File

@@ -73,6 +73,7 @@ struct r_search_path *_dl_search_paths;
const char *_dl_profile;
const char *_dl_profile_output;
struct link_map *_dl_profile_map;
int _dl_debug_libs;
/* Set nonzero during loading and initialization of executable and
libraries, cleared before the executable's entry point runs. This
@@ -906,6 +907,45 @@ print_missing_version (int errcode __attribute__ ((unused)),
objname, ": ", errstring, "\n", NULL);
}
/* Process the string given as the parameter which explains which debugging
options are enabled. */
static void
process_dl_debug (char *dl_debug)
{
do
{
#define issep(Ch) ((Ch) == ' ' || (Ch) == ',')
/* Skip separating white spaces and commas. */
while (issep (*dl_debug))
++dl_debug;
if (*dl_debug != '\0')
{
if (strncmp (dl_debug, "libs", 4) == 0
&& (issep (dl_debug[4]) || dl_debug[4] == '\0'))
{
_dl_debug_libs = 1;
dl_debug += 4;
}
else if (strncmp (dl_debug, "help", 4) == 0
&& (issep (dl_debug[4]) || dl_debug[4] == '\0'))
{
_dl_sysdep_message ("\
Valid options for the DL_DEBUG environment variable are:\n\
\n\
help display this help message and exit
libs display library search paths\n", NULL);
_exit (0);
}
else
/* Skip everything until next separator. */
do
++dl_debug;
while (*dl_debug != '\0' && !issep (*dl_debug));
}
}
while (*dl_debug != '\0');
}
/* Process all environments variables the dynamic linker must recognize.
Since all of them start with `LD_' we are a bit smarter while finding
all the entries. */
@@ -934,6 +974,16 @@ process_envvars (enum mode *modep, int *lazyp)
if (result < 0)
continue;
/* Debugging of the dynamic linker? */
result = strncmp (&envline[3], "DEBUG=", 6);
if (result == 0)
{
process_dl_debug (&envline[9]);
continue;
}
if (result < 0)
continue;
/* Which shared object shall be profiled. */
result = strncmp (&envline[3], "PROFILE=", 8);
if (result == 0)