PR25477, ld 2.34 tries to load ${prefix}/etc/ld.so.conf

PR 25477
	* ldelf.c (ldelf_check_ld_so_conf): Add prefix parameter and
	correct concat.
	(ldelf_after_open): Add prefix parameter.
	* ldelf.h (ldelf_after_open): Update prototype.
	* emultempl/elf.em (gld${EMULATION_NAME}_after_open): Pass $prefix
	to ldelf_after_open.
	* Makefile.am: Correct z80 dependencies.
	* Makefile.in: Regenerate.
This commit is contained in:
Alan Modra 2020-01-29 10:25:58 +10:30
parent e667c15c48
commit ef8f08ca13
6 changed files with 20 additions and 8 deletions

View File

@ -1,3 +1,15 @@
2020-01-29 Alan Modra <amodra@gmail.com>
PR 25477
* ldelf.c (ldelf_check_ld_so_conf): Add prefix parameter and
correct concat.
(ldelf_after_open): Add prefix parameter.
* ldelf.h (ldelf_after_open): Update prototype.
* emultempl/elf.em (gld${EMULATION_NAME}_after_open): Pass $prefix
to ldelf_after_open.
* Makefile.am: Correct z80 dependencies.
* Makefile.in: Regenerate.
2020-01-28 Alan Modra <amodra@gmail.com>
* ldexp.c (fold_name): Don't print bfd_link_hash_lookup failed

View File

@ -775,6 +775,7 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32xc16xs.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32xstormy16.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32xtensa.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32z80.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_be.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_fbsd.Pc@am__quote@
@ -873,7 +874,6 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ez80.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ez8001.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ez8002.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ez80elf32.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf32.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elfb.Pc@am__quote@

View File

@ -2379,6 +2379,7 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32xc16xs.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32xstormy16.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32xtensa.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32z80.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_be.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_fbsd.Pc@am__quote@
@ -2477,7 +2478,6 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ez80.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ez8001.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ez8002.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ez80elf32.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf32.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elfb.Pc@am__quote@

View File

@ -125,7 +125,7 @@ static void
gld${EMULATION_NAME}_after_open (void)
{
ldelf_after_open ($IS_LIBPATH, $IS_NATIVE,
$IS_LINUX_TARGET, $IS_FREEBSD_TARGET, $ELFSIZE);
$IS_LINUX_TARGET, $IS_FREEBSD_TARGET, $ELFSIZE, "$prefix");
}
EOF

View File

@ -894,7 +894,7 @@ ldelf_parse_ld_so_conf (struct ldelf_ld_so_conf *info, const char *filename)
static bfd_boolean
ldelf_check_ld_so_conf (const struct bfd_link_needed_list *l, int force,
int elfsize)
int elfsize, const char *prefix)
{
static bfd_boolean initialized;
static const char *ld_so_conf;
@ -907,7 +907,7 @@ ldelf_check_ld_so_conf (const struct bfd_link_needed_list *l, int force,
info.path = NULL;
info.len = info.alloc = 0;
tmppath = concat (ld_sysroot, "${prefix}/etc/ld.so.conf",
tmppath = concat (ld_sysroot, prefix, "/etc/ld.so.conf",
(const char *) NULL);
if (!ldelf_parse_ld_so_conf (&info, tmppath))
{
@ -986,7 +986,7 @@ ldelf_check_needed (lang_input_statement_type *s)
void
ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
int elfsize)
int elfsize, const char *prefix)
{
struct bfd_link_needed_list *needed, *l;
struct elf_link_hash_table *htab;
@ -1260,7 +1260,7 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
break;
if (is_linux
&& ldelf_check_ld_so_conf (l, force, elfsize))
&& ldelf_check_ld_so_conf (l, force, elfsize, prefix))
break;
}

View File

@ -22,7 +22,7 @@ extern const char *ldelf_emit_note_gnu_build_id;
extern void ldelf_after_parse (void);
extern bfd_boolean ldelf_load_symbols (lang_input_statement_type *);
extern void ldelf_after_open (int, int, int, int, int);
extern void ldelf_after_open (int, int, int, int, int, const char *);
extern bfd_boolean ldelf_setup_build_id (bfd *);
extern void ldelf_append_to_separated_string (char **, char *);
extern void ldelf_before_allocation (char *, char *, const char *);