PR gold/12279

* resolve.cc (Symbol_table::should_override): Add fromtype
	parameter.  Change all callers.  Give error when linking together
	TLS and non-TLS symbol.
	(Symbol_table::should_override_with_special): Add fromtype
	parameter.  Change all callers.
	* i386.cc (Target_i386::Relocate::relocate_tls): Don't crash if
	there is no TLS segment if we have reported some errors.
	* x86_64.cc (Target_x86_64::relocate_tls): Likewise.
This commit is contained in:
Ian Lance Taylor 2011-07-08 23:49:11 +00:00
parent 67181c72fb
commit 6285534768
6 changed files with 124 additions and 30 deletions

View file

@ -1883,7 +1883,7 @@ Symbol_table::do_define_in_output_data(
return sym;
}
if (Symbol_table::should_override_with_special(oldsym, defined))
if (Symbol_table::should_override_with_special(oldsym, type, defined))
this->override_with_special(oldsym, sym);
if (resolve_oldsym)
@ -1997,7 +1997,7 @@ Symbol_table::do_define_in_output_segment(
return sym;
}
if (Symbol_table::should_override_with_special(oldsym, defined))
if (Symbol_table::should_override_with_special(oldsym, type, defined))
this->override_with_special(oldsym, sym);
if (resolve_oldsym)
@ -2116,7 +2116,7 @@ Symbol_table::do_define_as_constant(
}
if (force_override
|| Symbol_table::should_override_with_special(oldsym, defined))
|| Symbol_table::should_override_with_special(oldsym, type, defined))
this->override_with_special(oldsym, sym);
if (resolve_oldsym)