* config/obj-som.c (obj_pseudo_table): Add "weak".
authorCatherine Moore <clm@redhat.com>
Thu, 24 Feb 2000 13:37:02 +0000 (13:37 +0000)
committerCatherine Moore <clm@redhat.com>
Thu, 24 Feb 2000 13:37:02 +0000 (13:37 +0000)
        (obj_som_weak): New routine.

gas/ChangeLog
gas/config/obj-som.c

index f21ef4733274a014d3cc2ee51b62a27332acd624..2b02039fd9d23add27b589c463d94a50770758ab 100644 (file)
@@ -1,3 +1,8 @@
+2000-02-24  Catherine Moore  <clm@cygnus.com>
+
+       * config/obj-som.c (obj_pseudo_table): Add "weak".
+       (obj_som_weak): New routine.
+
 2000-02-24  Alan Modra  <alan@spri.levels.unisa.edu.au>
 
        * config/tc-i386.c (union i386_op): New.
index 80af18fd37b3ec4651bc9e3c13923d5eba1c14e1..65d4adad58cc70f213ab24f65f33ced066cfa159 100644 (file)
 #include "aout/stab_gnu.h"
 #include "obstack.h"
 
-/* SOM does not need any pseudo-ops.  */
+static void obj_som_weak PARAMS ((int));
 
 const pseudo_typeS obj_pseudo_table[] =
 {
-  {NULL}
+  {"weak", obj_som_weak, 0}
 };
 
 static int version_seen = 0;
@@ -305,3 +305,35 @@ som_frob_file ()
 {
   bfd_map_over_sections (stdoutput, adjust_stab_sections, (PTR) 0);
 }
+
+static void
+obj_som_weak (ignore)
+     int ignore ATTRIBUTE_UNUSED;
+{
+  char *name;
+  int c;
+  symbolS *symbolP;
+  do
+    {
+      name = input_line_pointer;
+      c = get_symbol_end ();
+      symbolP = symbol_find_or_make (name);
+      *input_line_pointer = c;
+      SKIP_WHITESPACE ();
+      S_SET_WEAK (symbolP);
+#if 0
+      symbol_get_obj (symbolP)->local = 1;
+#endif
+      if (c == ',')
+        {
+          input_line_pointer++;
+          SKIP_WHITESPACE ();
+          if (*input_line_pointer == '\n')
+            c = '\n';
+        }
+    }
+  while (c == ',');
+  demand_empty_rest_of_line ();
+}
+