* ldemul.c (ldemul_list_emulations): New function.
authorIan Lance Taylor <ian@airs.com>
Mon, 6 Mar 1995 19:21:33 +0000 (19:21 +0000)
committerIan Lance Taylor <ian@airs.com>
Mon, 6 Mar 1995 19:21:33 +0000 (19:21 +0000)
* ldemul.h (ldemul_list_emulations): Declare.
* ldver.c (help): List supported targets and emulations.
PR 6345.

ld/ChangeLog
ld/ldemul.c

index cb737c5..cd0bc2f 100644 (file)
@@ -1,3 +1,15 @@
+Mon Mar  6 14:03:50 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * ldemul.c (ldemul_list_emulations): New function.
+       * ldemul.h (ldemul_list_emulations): Declare.
+       * ldver.c (help): List supported targets and emulations.
+
+Fri Mar  3 15:40:36 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+       * scripttempl/elf.sc (.debug): Relocate to address 0.
+       (.debug_srcinfo, .debug_aranges, .debug_pubnames,
+       .debug_sfnames, .line): Likewise.
+
 Fri Mar  3 17:07:14 1995  Ian Lance Taylor  <ian@cygnus.com>
 
        * emultempl/elf32.em (hold_rel): New static variable.
index 0e950d8..6348afc 100644 (file)
@@ -24,6 +24,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "ld.h"
 #include "ldemul.h"
 #include "ldmisc.h"
+#include "ldexp.h"
+#include "ldlang.h"
 #include "ldfile.h"
 #include "ldmain.h"
 #include "ldemul-list.h"
@@ -56,6 +58,12 @@ ldemul_before_parse()
   ld_emulation->before_parse();
 }
 
+void
+ldemul_after_open ()
+{
+  ld_emulation->after_open ();
+}
+
 void 
 ldemul_after_allocation()
 {
@@ -97,6 +105,26 @@ ldemul_get_script(isfile)
   return ld_emulation->get_script(isfile);
 }
 
+boolean
+ldemul_open_dynamic_archive (arch, entry)
+     const char *arch;
+     lang_input_statement_type *entry;
+{
+  if (ld_emulation->open_dynamic_archive)
+    return (*ld_emulation->open_dynamic_archive) (arch, entry);
+  return false;
+}
+
+boolean
+ldemul_place_orphan (file, s)
+     lang_input_statement_type *file;
+     asection *s;
+{
+  if (ld_emulation->place_orphan)
+    return (*ld_emulation->place_orphan) (file, s);
+  return false;
+}
+
 char *
 ldemul_choose_target()
 {
@@ -121,6 +149,11 @@ after_parse_default()
 }
 
 void
+after_open_default ()
+{
+}
+
+void
 after_allocation_default()
 {
 
@@ -140,6 +173,7 @@ set_output_arch_default()
                    ldfile_output_architecture, ldfile_output_machine);
 }
 
+/*ARGSUSED*/
 void
 syslib_default(ignore)
      char  *ignore;
@@ -147,6 +181,7 @@ syslib_default(ignore)
   info_msg ("%S SYSLIB ignored\n");
 }
 
+/*ARGSUSED*/
 void
 hll_default(ignore)
      char  *ignore;
@@ -174,3 +209,20 @@ ldemul_choose_mode(target)
       }
     einfo("%P%F: unrecognised emulation mode: %s\n",target);
 }
+
+void
+ldemul_list_emulations (f)
+     FILE *f;
+{
+  ld_emulation_xfer_type **eptr = ld_emulations;
+  boolean first = true;
+
+  for (; *eptr; eptr++)
+    {
+      if (first)
+       first = false;
+      else
+       fprintf (f, " ");
+      fprintf (f, "%s", (*eptr)->emulation_name);
+    }
+}