diff options
-rw-r--r-- | elf/dl-load.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c index 345b97f099..b5e2ba9990 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -567,6 +567,12 @@ _dl_init_paths (const char *llp) } +/* Think twice before changing anything in this function. It is placed + here and prepared using the `alloca' magic to prevent it from being + inlined. The function is only called in case of an error. But then + performance does not count. The function used to be "inlinable" and + the compiled did so all the time. This increased the code size for + absolutely no good reason. */ #define LOSE(code, s) lose (code, fd, name, realname, l, s) static void volatile __attribute__ ((noreturn)) @@ -1242,7 +1248,7 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded, /* First try the DT_RPATH of the dependent object that caused NAME to be loaded. Then that object's dependent, and on up. */ for (l = loader; fd == -1 && l; l = l->l_loader) - if (l && l->l_info[DT_RPATH]) + if (l->l_info[DT_RPATH]) { /* Make sure the cache information is available. */ if (l->l_rpath_dirs == NULL) |