From 57aa2887e894914bdc007d3b2c2cffc2874d25f4 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 11 Sep 1995 15:04:49 +0000 Subject: [PATCH] Revert Linux directory searching: it turns out that Linux no longer uses it. --- ld/ChangeLog | 13 ----- ld/Makefile.in | 6 +-- ld/configure.tgt | 12 ++--- ld/emulparams/.Sanitize | 1 - ld/emulparams/i386lelf.sh | 9 ---- ld/emultempl/elf32.em | 134 ---------------------------------------------- 6 files changed, 4 insertions(+), 171 deletions(-) delete mode 100644 ld/emulparams/i386lelf.sh diff --git a/ld/ChangeLog b/ld/ChangeLog index 8d85e4c..bc5fbee 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,18 +1,5 @@ Fri Sep 8 16:32:43 1995 Ian Lance Taylor - Add Linux style directory searching. - * configure.tgt: Add i386lelf to targ_extra_emuls for - i[345]86-*-linuxaout* and i[345]86-*-linuxoldld. For - i[345]86-*-linux*, set targ_emul to i386lelf, and add elf_i386 to - targ_extra_emuls. - * emulparams/i386lelf.sh: New file, a copy of elf_i386.sh. - * emultempl/elf32.em: If TARGET_IS_i386lelf, use autoconf - recommended mechanism to define DIR and struct dirent. - (libcmp): New static function use only when TARGET_IS_i386lelf. - (gld${EMULATION_NAME}_open_dynamic_archive): Likewise. - * Makefile.in (ALL_EMULATIONS): Add ei386lelf.o - (ei386lelf.c): New target. - * Makefile.in (config.status): Depend upon configure.tgt. * ldemul.h (ldemul_set_symbols): Declare. diff --git a/ld/Makefile.in b/ld/Makefile.in index 07842ce..3289af9 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -202,8 +202,7 @@ ALL_EMULATIONS = ea29k.o ealpha.o earmaoutl.o earmaoutb.o \ emipsidt.o emipsidtl.o emipslit.o enews.o ens32knbsd.o eppcnw.o \ eriscix.o esa29200.o eshl.o esh.o esparclynx.o esparcnbsd.o \ est2000.o esun3.o esun4.o evanilla.o evax.o evsta.o \ - ez8001.o ez8002.o ei386pe.o earmpe.o eelf32vr4300.o \ - eelf32vr4300el.o ei386lelf.o + ez8001.o ez8002.o ei386pe.o earmpe.o eelf32vr4300.o eelf32vr4300el.o CFILES = ldctor.c ldemul.c ldexp.c ldfile.c ldlang.c \ ldmain.c ldmisc.c ldver.c ldwrite.c lexsup.c \ @@ -442,9 +441,6 @@ em68kaout.c: $(srcdir)/emulparams/m68kaout.sh \ ei386linux.c: $(srcdir)/emulparams/i386linux.sh \ $(srcdir)/emultempl/linux.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} i386linux -ei386lelf.c: $(srcdir)/emulparams/i386lelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} i386lelf eelf32_sparc.c: $(srcdir)/emulparams/elf32_sparc.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_sparc diff --git a/ld/configure.tgt b/ld/configure.tgt index 13e6bff..6d82a08 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -46,15 +46,9 @@ i[345]86-*-bsd) targ_emul=i386bsd ;; i[345]86-*-bsd386) targ_emul=i386bsd ;; i[345]86-*-bsdi*) targ_emul=i386bsd ;; i[345]86-*-aout) targ_emul=i386aout ;; -i[345]86-*-linuxaout*) targ_emul=i386linux - targ_extra_emuls="i386lelf elf_i386" - ;; -i[345]86-*-linuxoldld) targ_emul=i386linux - targ_extra_emuls="i386lelf elf_i386" - ;; -i[345]86-*-linux*) targ_emul=i386lelf - targ_extra_emuls="elf_i386 i386linux" - ;; +i[345]86-*-linuxaout*) targ_emul=i386linux; targ_extra_emuls=elf_i386 ;; +i[345]86-*-linuxoldld) targ_emul=i386linux; targ_extra_emuls=elf_i386 ;; +i[345]86-*-linux*) targ_emul=elf_i386; targ_extra_emuls=i386linux ;; i[345]86-*-sysv4*) targ_emul=elf_i386 ;; i[345]86-*-unixware) targ_emul=elf_i386 ;; i[345]86-*-netbsd*) targ_emul=i386nbsd ;; diff --git a/ld/emulparams/.Sanitize b/ld/emulparams/.Sanitize index 5b129e2..dc0ec29 100644 --- a/ld/emulparams/.Sanitize +++ b/ld/emulparams/.Sanitize @@ -74,7 +74,6 @@ i386bsd.sh i386coff.sh i386go32.sh i386linux.sh -i386lelf.sh i386lynx.sh i386mach.sh i386moss.sh diff --git a/ld/emulparams/i386lelf.sh b/ld/emulparams/i386lelf.sh deleted file mode 100644 index b841d9c..0000000 --- a/ld/emulparams/i386lelf.sh +++ /dev/null @@ -1,9 +0,0 @@ -SCRIPT_NAME=elf -OUTPUT_FORMAT="elf32-i386" -TEXT_START_ADDR=0x08000000 -MAXPAGESIZE=0x1000 -NONPAGED_TEXT_START_ADDR=0x08000000 -ARCH=i386 -NOP=0x9090 -TEMPLATE_NAME=elf32 -GENERATE_SHLIB_SCRIPT=yes diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index 0be8009..6f11bbf 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -42,23 +42,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "ldlang.h" #include "ldgram.h" -#ifdef TARGET_IS_i386lelf -#ifdef HAVE_DIRENT_H -# include -#else -# define dirent direct -# ifdef HAVE_SYS_NDIR_H -# include -# endif -# ifdef HAVE_SYS_DIR_H -# include -# endif -# ifdef HAVE_NDIR_H -# include -# endif -#endif -#endif - static void gld${EMULATION_NAME}_before_parse PARAMS ((void)); static boolean gld${EMULATION_NAME}_open_dynamic_archive PARAMS ((const char *, search_dirs_type *, lang_input_statement_type *)); @@ -85,8 +68,6 @@ gld${EMULATION_NAME}_before_parse() config.dynamic_link = ${DYNAMIC_LINK-true}; } -#ifndef TARGET_IS_i386lelf - /* Try to open a dynamic archive. This is where we know that ELF dynamic libraries have an extension of .so. */ @@ -148,121 +129,6 @@ gld${EMULATION_NAME}_open_dynamic_archive (arch, search, entry) return true; } -#else /* TARGET_IS_i386lelf */ - -/* Linux deviates from the SVR4 standard in that its archives use - version numbers in the file name. I think this is bogus, but - H.J. Lu insists that it be done this way. */ - -static int libcmp PARAMS ((const char *, const char *)); - -/* Choose between two library names. This is like a string - comparison, except that numbers are compared by value. */ - -static int -libcmp (p1, p2) - const char *p1; - const char *p2; -{ - while (*p1 != '\0') - { - if (isdigit (*p1) && isdigit (*p2)) - { - unsigned long v1, v2; - - v1 = strtoul (p1, (char **) &p1, 10); - v2 = strtoul (p2, (char **) &p2, 10); - if (v1 < v2) - return -1; - else if (v1 > v2) - return 1; - } - else if (*p1 < *p2) - return -1; - else if (*p1 > *p2) - return 1; - else - { - ++p1; - ++p2; - } - } - - if (*p2 != '\0') - return -1; - - return 0; -} - -/* Search for the library to open. */ - -/*ARGSUSED*/ -static boolean -gld${EMULATION_NAME}_open_dynamic_archive (arch, search, entry) - const char *arch; - search_dirs_type *search; - lang_input_statement_type *entry; -{ - size_t len; - char *found; - DIR *dir; - struct dirent *ent; - char *string; - - len = strlen (entry->filename); - - found = NULL; - - dir = opendir (search->name); - if (dir == NULL) - return false; - - while ((ent = readdir (dir)) != NULL) - { - if (strncmp (ent->d_name, "lib", 3) != 0 - || strncmp (ent->d_name + 3, entry->filename, len) != 0 - || strncmp (ent->d_name + len + 3, ".so", 3) != 0) - continue; - - if (found != NULL) - { - if (libcmp (ent->d_name + len + 6, found + len + 6) < 0) - continue; - free (found); - } - - found = (char *) xmalloc (strlen (ent->d_name) + 1); - strcpy (found, ent->d_name); - } - - closedir (dir); - - if (found == NULL) - return false; - - string = (char *) xmalloc (strlen (search->name) + strlen (found) + 2); - sprintf (string, "%s/%s", search->name, found); - if (! ldfile_try_open_bfd (string, entry)) - { - free (found); - return false; - } - - entry->filename = string; - - if (bfd_check_format (entry->the_bfd, bfd_object) - && (entry->the_bfd->flags & DYNAMIC) != 0) - { - ASSERT (entry->is_archive && entry->search_dirs_flag); - bfd_elf_set_dt_needed_name (entry->the_bfd, found); - } - - return true; - -} - -#endif /* TARGET_IS_i386lelf */ - /* These variables are required to pass information back and forth between after_open and check_needed. */ -- 2.7.4