diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8b144916c25..c7e28b8cc7f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2018-06-07  Alan Modra  <amodra@gmail.com>
+
+	* elf32-tic6x.c (elf32_tic6x_check_relocs): Reference
+	__c6xabi_DSBT_BASE explicitly for R_C6000_SBR_* relocs.
+
 2018-06-05  Alan Modra  <amodra@gmail.com>
 
 	* bfd.c (struct bfd): Update comment on "where" usage.
diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
index 96965b39927..768bfb8ca93 100644
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
@@ -2972,6 +2972,19 @@ elf32_tic6x_check_relocs (bfd *abfd, struct bfd_link_info *info,
 	case R_C6000_SBR_H16_B:
 	case R_C6000_SBR_H16_H:
 	case R_C6000_SBR_H16_W:
+	  {
+	    /* These relocations implicitly reference __c6xabi_DSBT_BASE.
+	       Add an explicit reference so that the symbol will be
+	       provided by a linker script.  */
+	    struct bfd_link_hash_entry *bh = NULL;
+	    if (!_bfd_generic_link_add_one_symbol (info, abfd,
+						   "__c6xabi_DSBT_BASE",
+						   BSF_GLOBAL,
+						   bfd_und_section_ptr, 0,
+						   NULL, FALSE, FALSE, &bh))
+	      return FALSE;
+	    ((struct elf_link_hash_entry *) bh)->non_elf = 0;
+	  }
 	  if (h != NULL && bfd_link_executable (info))
 	    {
 	      /* For B14-relative addresses, we might need a copy
diff --git a/ld/ChangeLog b/ld/ChangeLog
index e750941af10..f12b6bd27e8 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2018-06-07  Alan Modra  <amodra@gmail.com>
+
+	* emulparams/elf32_tic6x_le.sh (EXECUTABLE_SYMBOLS): Don't define.
+
 2018-06-06  Alan Modra  <amodra@gmail.com>
 
 	* Makefile.am (earmelf_fbsd.c): Correct dependencies.
diff --git a/ld/emulparams/elf32_tic6x_le.sh b/ld/emulparams/elf32_tic6x_le.sh
index efd7b246026..d9ebe584a34 100644
--- a/ld/emulparams/elf32_tic6x_le.sh
+++ b/ld/emulparams/elf32_tic6x_le.sh
@@ -22,7 +22,6 @@ case ${target} in
 esac
 MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
 ARCH=tic6x
-EXECUTABLE_SYMBOLS="EXTERN (__c6xabi_DSBT_BASE);"
 OTHER_GOT_SYMBOLS="PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);"
 # ".bss" is near (small) BSS, ".far" is far (normal) BSS, ".const" is
 # far read-only data, ".rodata" is near read-only data.  ".neardata"