PR25477, ld 2.34 tries to load ${prefix}/etc/ld.so.conf
authorAlan Modra <amodra@gmail.com>
Tue, 28 Jan 2020 23:55:58 +0000 (10:25 +1030)
committerAlan Modra <amodra@gmail.com>
Wed, 29 Jan 2020 00:09:20 +0000 (10:39 +1030)
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.

ld/ChangeLog
ld/Makefile.am
ld/Makefile.in
ld/emultempl/elf.em
ld/ldelf.c
ld/ldelf.h

index 7a1dc98bca17054575c80672d3db878846d4e296..850f1db8036c808d96db4e866af23b638018f7c0 100644 (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
index 2ed13eba87c27958fd4f15371d6ed5ca30f4ada0..4a9b8404b7b1c1366fb867669d4900a2a3a7ae4d 100644 (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@
index f635845643531d9e566a5b5ba7854fdc76dfd170..46d9b14077924f4fc8f1f4ff5078479e41bdd670 100644 (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@
index 9c32397c8d3993ae2eeb0590f450f72cc0e7f537..42c552b36eda23cde2d6eb16c313ad40f54b7f3a 100644 (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
index 6c20fbeff51e65b829f9848fd337291a2088b361..2e27cf48a816dc78bd76d2f0185a601d2edfb392 100644 (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;
            }
 
index baf5183e012cec8d31bf23520f775b94e0c63a8f..492649b29349a5b8cb284722b6336c8ec4690930 100644 (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 *);