From 50afb01e1a80ee200521e4e3990a80df7ed3526c Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Tue, 25 Oct 2005 14:07:44 +0000
Subject: [PATCH] 2005-10-25  H.J. Lu  <hongjiu.lu@intel.com>

	* write.c (adjust_reloc_syms): Undo the change made on
	2005-04-26 to allow local symbol set to undefined symbol.
---
 gas/ChangeLog |  5 +++++
 gas/write.c   | 11 +----------
 2 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index 961a722425d..2ff1e5043f3 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2005-10-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* write.c (adjust_reloc_syms): Undo the change made on
+	2005-04-26 to allow local symbol set to undefined symbol.
+
 2005-10-24  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* Makefile.am (bfin-parse.tab.h): Removed.
diff --git a/gas/write.c b/gas/write.c
index 5546b6849ec..06133679b54 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -681,17 +681,8 @@ adjust_reloc_syms (bfd *abfd ATTRIBUTE_UNUSED,
 	if (symbol_equated_reloc_p (sym)
 	    || S_IS_WEAKREFR (sym))
 	  {
-	    symbolS *new_sym
-	      = symbol_get_value_expression (sym)->X_add_symbol;
-	    const char *name = S_GET_NAME (sym);
-	    if (!S_IS_COMMON (new_sym)
-		&& !TC_FAKE_LABEL (name)
-		&& !S_IS_WEAKREFR (sym)
-		&& (!S_IS_EXTERNAL (sym) || S_IS_LOCAL (sym)))
-	      as_bad (_("Local symbol `%s' can't be equated to undefined symbol `%s'"),
-		      name, S_GET_NAME (new_sym));
 	    fixp->fx_offset += symbol_get_value_expression (sym)->X_add_number;
-	    sym = new_sym;
+	    sym = symbol_get_value_expression (sym)->X_add_symbol;
 	    fixp->fx_addsy = sym;
 	  }
 
-- 
GitLab