This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v1.1] Remove duplicate code in elf/dl-deps.c
- From: OndÅej BÃlka <neleai at seznam dot cz>
- To: Andreas Schwab <schwab at suse dot de>
- Cc: libc-alpha at sourceware dot org
- Date: Fri, 23 May 2014 11:42:01 +0200
- Subject: Re: [PATCH v1.1] Remove duplicate code in elf/dl-deps.c
- Authentication-results: sourceware.org; auth=none
- References: <20140519094412 dot GA18336 at domone dot podge> <mvm8upyrqod dot fsf at hawking dot suse dot de>
On Mon, May 19, 2014 at 12:47:14PM +0200, Andreas Schwab wrote:
> OndÅej BÃlka <neleai@seznam.cz> writes:
>
> > - /* For filter objects the dependency must be available. */
>
> Please keep the comment.
>
Fixed, ok now?
* elf/dl-deps.c (_dl_map_object_deps): Remove duplicate code.
diff --git a/elf/dl-deps.c b/elf/dl-deps.c
index 9c83c81..83cf497 100644
--- a/elf/dl-deps.c
+++ b/elf/dl-deps.c
@@ -302,22 +302,24 @@ _dl_map_object_deps (struct link_map *map,
/* Store the tag in the argument structure. */
args.name = name;
- if (d->d_tag == DT_AUXILIARY)
+ /* Say that we are about to load an auxiliary library. */
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_LIBS,
+ 0))
+ _dl_debug_printf ("load auxiliary object=%s"
+ " requested by file=%s\n",
+ name,
+ DSO_FILENAME (l->l_name));
+
+ /* We must be prepared that the addressed shared object
+ is not available. For filter objects the dependency
+ must be available. */
+ bool malloced;
+ (void) _dl_catch_error (&objname, &errstring, &malloced,
+ openaux, &args);
+
+ if (__glibc_unlikely (errstring != NULL))
{
- /* Say that we are about to load an auxiliary library. */
- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_LIBS,
- 0))
- _dl_debug_printf ("load auxiliary object=%s"
- " requested by file=%s\n",
- name,
- DSO_FILENAME (l->l_name));
-
- /* We must be prepared that the addressed shared
- object is not available. */
- bool malloced;
- (void) _dl_catch_error (&objname, &errstring, &malloced,
- openaux, &args);
- if (__glibc_unlikely (errstring != NULL))
+ if (d->d_tag == DT_AUXILIARY)
{
/* We are not interested in the error message. */
assert (errstring != NULL);
@@ -327,23 +329,9 @@ _dl_map_object_deps (struct link_map *map,
/* Simply ignore this error and continue the work. */
continue;
}
- }
- else
- {
- /* Say that we are about to load an auxiliary library. */
- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_LIBS,
- 0))
- _dl_debug_printf ("load filtered object=%s"
- " requested by file=%s\n",
- name,
- DSO_FILENAME (l->l_name));
-
- /* For filter objects the dependency must be available. */
- bool malloced;
- int err = _dl_catch_error (&objname, &errstring, &malloced,
- openaux, &args);
- if (__glibc_unlikely (errstring != NULL))
+ else
{
+
char *new_errstring = strdupa (errstring);
objname = strdupa (objname);
if (malloced)