Skip to content
  • H.J. Lu's avatar
    gold: Ignore def/ref from a dynamic object for special symbols · dc8d2d90
    H.J. Lu authored
    Since special symbol must be defined in a regular object, definition
    from a dynamic object should be ignored.  If special symbol has the
    hidden or internal visibility, reference from a dynamic object should
    also be ignored.  Also __start and __stop symbols in a dynamic object
    shouldn't be preempted.
    
    	PR gold/22291
    	* layout.cc (Layout::define_section_symbols): Use STV_PROTECTED
    	for __start and __stop symbols.
    	* symtab.cc (Symbol_table::define_special_symbol): Add an
    	argument, visibility.  Ignore definition and reference from
    	a dynamic object, depending on visibility.
    	(Symbol_table::do_define_in_output_data): Pass visibility to
    	define_special_symbol.
    	(Symbol_table::do_define_in_output_segment): Likewise.
    	(Symbol_table::do_define_as_constant): Likewise.
    	(Symbol_table::add_undefined_symbol_from_command_line): Pass
    	STV_DEFAULT to define_special_symbol.
    	* symtab.h (Symbol_table::define_special_symbol): Add an
    	argument, visibility.
    dc8d2d90