/* SOM object file format.
- Copyright (C) 1993, 1998 Free Software Foundation, Inc.
+ Copyright 1993, 1994, 1998, 2000 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
#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},
+ {NULL, NULL, 0}
};
static int version_seen = 0;
static int compiler_seen = 0;
/* Unused by SOM. */
-void obj_read_begin_hook () {}
+
+void
+obj_read_begin_hook ()
+{
+}
/* Handle a .compiler directive. This is intended to create the
compilation unit auxiliary header for MPE such that the linkeditor
can handle SOM extraction from archives. The format of the quoted
- string is "sourcefile language version" and is delimited by blanks.*/
+ string is "sourcefile language version" and is delimited by blanks. */
void
obj_som_compiler (unused)
}
*p = '\000';
- language_name = ++p;
- while (*p != ' ' && *p != '\000') p++;
+ language_name = ++p;
+ while (*p != ' ' && *p != '\000')
+ p++;
if (*p == '\000')
{
as_bad (".compiler directive missing version");
}
*p = '\000';
- version_id = ++p;
- while (*p != '\000') p++;
+ version_id = ++p;
+ while (*p != '\000')
+ p++;
/* Remove the trailing quote. */
*(--p) = '\000';
if (bfd_som_attach_aux_hdr (stdoutput, VERSION_AUX_ID, version) == false)
{
bfd_perror (stdoutput->filename);
- as_perror (_("FATAL: Attaching version header %s"), stdoutput->filename);
+ as_perror (_("FATAL: Attaching version header %s"),
+ stdoutput->filename);
exit (EXIT_FAILURE);
}
*input_line_pointer = c;
if (bfd_som_attach_aux_hdr (stdoutput, COPYRIGHT_AUX_ID, copyright) == false)
{
bfd_perror (stdoutput->filename);
- as_perror (_("FATAL: Attaching copyright header %s"), stdoutput->filename);
+ as_perror (_("FATAL: Attaching copyright header %s"),
+ stdoutput->filename);
exit (EXIT_FAILURE);
}
*input_line_pointer = c;
space = bfd_make_section_old_way (stdoutput, "$GDB_DEBUG$");
/* Set SOM specific attributes for the space. In particular we set
- the space "defined", "private", "sort_key", and "spnum" values.
+ the space "defined", "private", "sort_key", and "spnum" values.
Due to a bug in pxdb (called by hpux linker), the sort keys
of the various stabs spaces/subspaces need to be "small". We
/* Make some space for the first special stab entry and zero the memory.
It contains information about the length of this file's
- stab string and the like. Using it avoids the need to
+ stab string and the like. Using it avoids the need to
relocate the stab strings.
The $GDB_STRINGS$ space will be created as a side effect of
{
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 ();
+}