PATCH: Add --dynamic-list-data/--dynamic-list-cpp-new

Nick Clifton nickc@redhat.com
Tue Jan 16 09:28:00 GMT 2007


Hi H. J.

> bfd/
> 2007-01-09 H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	PR ld/3831
> 	* elf-bfd.h (bfd_elf_link_mark_dynamic_symbol): Add an
> 	argument, Elf_Internal_Sym *.
> 
> 	* elflink.c (bfd_elf_link_mark_dynamic_symbol): Mark a data
> 	symbol dynamic if info->dynamic_data is TRUE.
> 	(bfd_elf_record_link_assignment): Updated call to
> 	bfd_elf_record_link_assignment.
> 	(_bfd_elf_merge_symbol): Likewise.  Always call
> 	bfd_elf_link_mark_dynamic_symbol.
> 
> include/
> 2007-01-09 H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	PR ld/3831
> 	* bfdlink.h (bfd_link_info): Rename dynamic to dynamic_list.
> 	Add dynamic and dynamic_data. 
> 
> ld/
> 2007-01-05 H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	PR ld/3831
> 	* NEWS: Mention -Bsymbolic-functions, --dynamic-list-data and
> 	--dynamic-list-cpp-new.
> 
> 	* ld.texinfo: Document -Bsymbolic-functions, --dynamic-list-data
> 	and --dynamic-list-cpp-new.
> 
> 	* ldlang.c (lang_append_dynamic_list_cpp_new): New.
> 	(lang_process): Change link_info.dynamic to
> 	link_info.dynamic_list.
> 	(lang_append_dynamic_list): Likewise.
> 	* ldmain.c (main): Likewise.  Initialize link_info.dynamic and
> 	link_info.dynamic_data to FALSE.
> 
> 	* ldlang.h (lang_append_dynamic_list_cpp_new): New.
> 
> 	* lexsup.c (option_values): Add OPTION_DYNAMIC_LIST_DATA and
> 	OPTION_DYNAMIC_LIST_CPP_NEW.
> 	(ld_options): Add entries for -Bsymbolic-functions,
> 	--dynamic-list-data and --dynamic-list-cpp-new.  Make
> 	-Bsymbolic-functions an alias of --dynamic-list-data.
> 	(parse_args): Change link_info.dynamic to link_info.dynamic_list.
> 	Set link_info.dynamic to TRUE for --dynamic-list and
> 	--dynamic-list-cpp-typeinfo.  Handle --dynamic-list-data and
> 	--dynamic-list-cpp-new.
> 
> ld/testsuite/
> 2007-01-09 H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	PR ld/3831
> 	* ld-elf/del.cc: New.
> 	* ld-elf/dl5.cc: Likewise.
> 	* ld-elf/dl5.out: Likewise.
> 	* ld-elf/new.cc: Likewise.
> 
> 	* ld-elf/shared.exp: Add tests for --dynamic-list-data and
> 	 --dynamic-list-cpp-new.

Approved - please apply.

Minor niggles:

> +  /* It may be called more than once on the same H.  */
> +  if(h->dynamic || info->relocatable)

Formatting: missing space after the "if" statement.

> +* ELF: Add -Bsymbolic-functions, --dynamic-list-cpp-new, which puts C++
> +  operator new and delete on the dynamic list, and --dynamic-list-data,
> +  builtin list for --dynamic-list, which puts global data symbols on the
> +  dynamic list.

Grammar: Add the new options: --dynamic-list-cpp-new which puts the C++
          new and delete operators on the dynamic list, and
          --dynamic-list-data (or its alias -Bsymbolic-functions) which
          puts global data symbols on the dynamic list.

Cheers
   Nick



More information about the Binutils mailing list