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