+2014-01-22  DJ Delorie  <dj@redhat.com>
+
+       * config/tc-msp430.c (msp430_refsym): New: ".refsym <symbol>"
+       * doc/c-msp430.texi (MSP430 Directives): Document it.
+
 2014-01-22  Michael Zolotukhin  <michael.v.zolotukhin@gmail.com>
 
        * config/tc-i386.c (check_VecOperands): Remove regzmm from AVX2
 
   obj_elf_section (arg);
 }
 
+static void
+msp430_refsym (int arg ATTRIBUTE_UNUSED)
+{
+  char sym_name[1024];
+  input_line_pointer = extract_word (input_line_pointer, sym_name, 1024);
+
+  (void) symbol_find_or_make (sym_name);
+}
+
 const pseudo_typeS md_pseudo_table[] =
 {
   {"arch", msp430_set_arch, OPTION_MMCU},
   {"sect", msp430_section, 0},
   {"sect.s", msp430_section, 0},
   {"pushsection", msp430_section, 1},
+  {"refsym", msp430_refsym, 0},
   {NULL, NULL, 0}
 };
 
 
 @item .profiler
 This directive instructs assembler to add new profile entry to the object file.
 
+@cindex @code{refsym} directive, MSP 430
+@item .refsym
+This directive instructs assembler to add an undefined reference to
+the symbol following the directive.  The maximum symbol name length is
+1023 characters.  No relocation is created for this symbol; it will
+exist purely for pulling in object files from archives.  Note that
+this reloc is not sufficient to prevent garbage collection; use a
+KEEP() directive in the linker file to preserve such objects.
+
 @end table
 
 @node MSP430 Opcodes