public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
To: libc-alpha@sourceware.org
Subject: Re: [PATCH 06/28] elf: Record whether paths come from LD_LIBRARY_PATH or --library-path
Date: Wed, 7 Oct 2020 13:39:41 -0300	[thread overview]
Message-ID: <31804d39-0208-adb1-cbcd-963fbba64c9f@linaro.org> (raw)
In-Reply-To: <ab35cf9efe79980a59e58ed59fdadcd8084941be.1601569371.git.fweimer@redhat.com>



On 01/10/2020 13:32, Florian Weimer via Libc-alpha wrote:
> This allows more precise diagnostics.

I haven't check the rest of the patchset to see how this information
would be used, but one option might to define the source with an 
enumeration instead of an string (to fully use a type and avoid wrong
usage).

In either case, patch looks good thanks.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

> ---
>  elf/dl-load.c              | 4 ++--
>  elf/dl-main.h              | 5 ++++-
>  elf/dl-support.c           | 2 +-
>  elf/rtld.c                 | 3 +++
>  sysdeps/generic/ldsodefs.h | 6 ++++--
>  5 files changed, 14 insertions(+), 6 deletions(-)
> 
> diff --git a/elf/dl-load.c b/elf/dl-load.c
> index 5ba117d597..5fbb8c9ad4 100644
> --- a/elf/dl-load.c
> +++ b/elf/dl-load.c
> @@ -682,7 +682,7 @@ cache_rpath (struct link_map *l,
>  
>  
>  void
> -_dl_init_paths (const char *llp)
> +_dl_init_paths (const char *llp, const char *source)
>  {
>    size_t idx;
>    const char *strp;
> @@ -820,7 +820,7 @@ _dl_init_paths (const char *llp)
>  	}
>  
>        (void) fillin_rpath (llp_tmp, env_path_list.dirs, ":;",
> -			   "LD_LIBRARY_PATH", NULL, l);
> +			   source, NULL, l);
>  
>        if (env_path_list.dirs[0] == NULL)
>  	{

Ok.

> diff --git a/elf/dl-main.h b/elf/dl-main.h
> index 681f366871..68dd27d0d7 100644
> --- a/elf/dl-main.h
> +++ b/elf/dl-main.h
> @@ -71,6 +71,9 @@ struct dl_main_state
>    /* The library search path.  */
>    const char *library_path;
>  
> +  /* Where library_path comes from.  LD_LIBRARY_PATH or --library.  */
> +  const char *library_path_source;
> +
>    /* The list preloaded objects from LD_PRELOAD.  */
>    const char *preloadlist;
>  

Ok.

> @@ -91,7 +94,7 @@ struct dl_main_state
>  static inline void
>  call_init_paths (const struct dl_main_state *state)
>  {
> -  _dl_init_paths (state->library_path);
> +  _dl_init_paths (state->library_path, state->library_path_source);
>  }
>  
>  /* Print ld.so usage information and exit.  */

Ok.

> diff --git a/elf/dl-support.c b/elf/dl-support.c
> index 7704c101c5..afbc94df54 100644
> --- a/elf/dl-support.c
> +++ b/elf/dl-support.c
> @@ -323,7 +323,7 @@ _dl_non_dynamic_init (void)
>  
>    /* Initialize the data structures for the search paths for shared
>       objects.  */
> -  _dl_init_paths (getenv ("LD_LIBRARY_PATH"));
> +  _dl_init_paths (getenv ("LD_LIBRARY_PATH"), "LD_LIBRARY_PATH");
>  
>    /* Remember the last search directory added at startup.  */
>    _dl_init_all_dirs = GL(dl_all_dirs);

Ok.

> diff --git a/elf/rtld.c b/elf/rtld.c
> index f3e1791e2f..d11fe22b83 100644
> --- a/elf/rtld.c
> +++ b/elf/rtld.c
> @@ -286,6 +286,7 @@ dl_main_state_init (struct dl_main_state *state)
>  {
>    audit_list_init (&state->audit_list);
>    state->library_path = NULL;
> +  state->library_path_source = NULL;
>    state->preloadlist = NULL;
>    state->preloadarg = NULL;
>    state->mode = normal;
> @@ -1203,6 +1204,7 @@ dl_main (const ElfW(Phdr) *phdr,
>  		 && _dl_argc > 2)
>  	  {
>  	    state.library_path = _dl_argv[2];
> +	    state.library_path_source = "--library_path";
>  
>  	    _dl_skip_args += 2;
>  	    _dl_argc -= 2;
> @@ -2655,6 +2657,7 @@ process_envvars (struct dl_main_state *state)
>  	      && memcmp (envline, "LIBRARY_PATH", 12) == 0)
>  	    {
>  	      state->library_path = &envline[13];
> +	      state->library_path_source = "LD_LIBRARY_PATH";
>  	      break;
>  	    }
>  

Ok.

> diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
> index 7cb1fccc80..510a2f6841 100644
> --- a/sysdeps/generic/ldsodefs.h
> +++ b/sysdeps/generic/ldsodefs.h
> @@ -1046,8 +1046,10 @@ rtld_hidden_proto (_dl_debug_state)
>  extern struct r_debug *_dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns)
>       attribute_hidden;
>  
> -/* Initialize the basic data structure for the search paths.  */
> -extern void _dl_init_paths (const char *library_path) attribute_hidden;
> +/* Initialize the basic data structure for the search paths.  SOURCE
> +   is either "LD_LIBRARY_PATH" or "--library-path".  */
> +extern void _dl_init_paths (const char *library_path, const char *source)
> +  attribute_hidden;
>  
>  /* Gather the information needed to install the profiling tables and start
>     the timers.  */
> 

Ok.

  reply	other threads:[~2020-10-07 16:39 UTC|newest]

Thread overview: 103+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-01 16:31 [PATCH 00/28] glibc-hwcaps support Florian Weimer
2020-10-01 16:31 ` [PATCH 01/28] elf: Do not search HWCAP subdirectories in statically linked binaries Florian Weimer
2020-10-01 18:22   ` Adhemerval Zanella
2020-10-01 18:24     ` Carlos O'Donell
2020-10-01 18:29       ` Adhemerval Zanella
2020-10-01 20:24         ` Carlos O'Donell
2020-10-01 16:31 ` [PATCH 02/28] elf: Implement __rtld_malloc_is_full Florian Weimer
2020-10-01 18:23   ` Adhemerval Zanella
2020-10-08  9:44     ` Florian Weimer
2020-10-01 16:31 ` [PATCH 03/28] elf: Implement _dl_write Florian Weimer
2020-10-05 19:46   ` Adhemerval Zanella
2020-10-01 16:31 ` [PATCH 04/28] elf: Extract command-line/environment variables state from rtld.c Florian Weimer
2020-10-06 20:45   ` Adhemerval Zanella
2020-10-08 11:32     ` Florian Weimer
2020-10-01 16:32 ` [PATCH 05/28] elf: Move ld.so error/help output to _dl_usage Florian Weimer
2020-10-06 21:06   ` Adhemerval Zanella
2020-10-08 12:19     ` Florian Weimer
2020-10-01 16:32 ` [PATCH 06/28] elf: Record whether paths come from LD_LIBRARY_PATH or --library-path Florian Weimer
2020-10-07 16:39   ` Adhemerval Zanella [this message]
2020-10-07 16:49     ` Florian Weimer
2020-10-01 16:32 ` [PATCH 07/28] elf: Implement ld.so --help Florian Weimer
2020-10-07 17:16   ` Adhemerval Zanella
2020-10-08 13:13     ` Florian Weimer
2020-10-01 16:32 ` [PATCH 08/28] elf: Implement ld.so --version Florian Weimer
2020-10-07 18:36   ` Adhemerval Zanella
2020-10-07 18:38     ` Adhemerval Zanella
2020-10-08 13:37     ` Florian Weimer
2020-10-01 16:32 ` [PATCH 09/28] scripts/update-copyrights: Update csu/version.c, elf/dl-usage.c Florian Weimer
2020-10-07 18:41   ` Adhemerval Zanella
2020-10-01 16:32 ` [PATCH 10/28] elf: Use the term "program interpreter" in the ld.so help message Florian Weimer
2020-10-07 21:08   ` Adhemerval Zanella
2020-10-08 14:08     ` Florian Weimer
2020-10-01 16:32 ` [PATCH 11/28] elf: Print the full name of the dynamic loader " Florian Weimer
2020-10-08 12:38   ` Adhemerval Zanella
2020-10-01 16:32 ` [PATCH 12/28] elf: Make __rtld_env_path_list and __rtld_search_dirs global variables Florian Weimer
2020-10-08 13:27   ` Adhemerval Zanella
2020-10-01 16:32 ` [PATCH 13/28] elf: Add library search path information to ld.so --help Florian Weimer
2020-10-08 16:22   ` Adhemerval Zanella
2020-10-01 16:33 ` [PATCH 14/28] elf: Enhance ld.so --help to print HWCAP subdirectories Florian Weimer
2020-10-08 16:27   ` Adhemerval Zanella
2020-10-09  8:18     ` Florian Weimer
2020-10-09 13:49   ` Matheus Castanho
2020-10-09 17:08     ` Florian Weimer
2020-10-09 17:12       ` Florian Weimer
2020-10-09 18:54         ` Matheus Castanho
2020-10-12  9:47           ` Florian Weimer
2020-10-01 16:33 ` [PATCH 15/28] elf: Do not pass GLRO(dl_platform), GLRO(dl_platformlen) to _dl_important_hwcaps Florian Weimer
2020-10-08 18:04   ` Adhemerval Zanella
2020-10-01 16:33 ` [PATCH 16/28] elf: Add glibc-hwcaps support for LD_LIBRARY_PATH Florian Weimer
2020-10-08 10:13   ` Szabolcs Nagy
2020-10-09  9:08     ` Florian Weimer
2020-10-09 10:50       ` Szabolcs Nagy
2020-10-09 10:55         ` Florian Weimer
2020-10-09 11:03           ` Szabolcs Nagy
2020-10-08 23:16   ` Paul A. Clarke
2020-10-09  8:56     ` Florian Weimer
2020-10-09 13:19   ` Adhemerval Zanella
2020-10-12 11:54     ` Florian Weimer
2020-10-01 16:33 ` [PATCH 17/28] x86_64: Add glibc-hwcaps support Florian Weimer
2020-10-01 16:33 ` [PATCH 18/28] powerpc64le: " Florian Weimer
2020-10-01 18:56   ` Paul A. Clarke
2020-10-05  9:47     ` Florian Weimer
2020-10-05 19:15       ` Paul A. Clarke
2020-10-06 12:20         ` Florian Weimer
2020-10-06 17:45           ` Paul A. Clarke
2020-10-09  9:06             ` Florian Weimer
2020-10-01 16:33 ` [PATCH 19/28] s390x: Add " Florian Weimer
2020-10-01 16:33 ` [PATCH 20/28] aarch64: " Florian Weimer
2020-10-14 13:46   ` Adhemerval Zanella
2020-10-14 14:08     ` Florian Weimer
2020-10-14 14:15       ` Adhemerval Zanella
2020-10-14 14:37         ` Szabolcs Nagy
2020-10-14 14:43           ` Adhemerval Zanella
2020-10-14 15:13             ` Florian Weimer
2020-10-14 14:44           ` Florian Weimer
2020-10-14 15:09             ` Szabolcs Nagy
2020-10-01 16:33 ` [PATCH 21/28] elf: Add endianness markup to ld.so.cache Florian Weimer
2020-10-14 14:07   ` Adhemerval Zanella
2020-10-01 16:33 ` [PATCH 22/28] elf: Add extension mechanism " Florian Weimer
2020-10-15 17:52   ` Adhemerval Zanella
2020-10-30 12:22     ` Florian Weimer
2020-11-03 12:45       ` Adhemerval Zanella
2020-11-03 15:30         ` Florian Weimer
2020-10-01 16:34 ` [PATCH 23/28] elf: Unify old and new format cache handling code in ld.so Florian Weimer
2020-10-16 14:37   ` Adhemerval Zanella
2020-10-30 13:22     ` Florian Weimer
2020-11-03 13:02       ` Adhemerval Zanella
2020-10-01 16:34 ` [PATCH 24/28] elf: Implement a string table for ldconfig, with tail merging Florian Weimer
2020-10-20 14:25   ` Adhemerval Zanella
2020-10-30 17:08     ` Florian Weimer
2020-11-03 13:05       ` Adhemerval Zanella
2020-11-03 15:29         ` Florian Weimer
2020-10-01 16:34 ` [PATCH 25/28] elf: Implement tail merging of strings in ldconfig Florian Weimer
2020-10-22 21:08   ` Adhemerval Zanella
2020-10-30 17:36     ` Florian Weimer
2020-10-01 16:34 ` [PATCH 26/28] elf: In ldconfig, extract the new_sub_entry function from search_dir Florian Weimer
2020-10-27 13:15   ` Adhemerval Zanella
2020-10-01 16:34 ` [PATCH 27/28] elf: Process glibc-hwcaps subdirectories in ldconfig Florian Weimer
2020-10-27 17:28   ` Adhemerval Zanella
2020-11-04 11:57     ` Florian Weimer
2020-10-01 16:34 ` [PATCH 28/28] elf: Add glibc-hwcaps subdirectory support to ld.so cache processing Florian Weimer
2020-10-01 16:50 ` [PATCH 00/28] glibc-hwcaps support H.J. Lu
2020-10-01 16:54   ` Florian Weimer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=31804d39-0208-adb1-cbcd-963fbba64c9f@linaro.org \
    --to=adhemerval.zanella@linaro.org \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).