bfd/ChangeLog
authorDave Korn <dave.korn@artimi.com>
Wed, 18 Feb 2009 18:23:08 +0000 (18:23 +0000)
committerDave Korn <dave.korn@artimi.com>
Wed, 18 Feb 2009 18:23:08 +0000 (18:23 +0000)
commit881838692219f34d1d34f0b916a5d982aab58040
treef5ff0729cadc2f38cff6bf646c1f995d0b414efe
parent137f2437e04f733cae1120d032c7a1b24aef54af
bfd/ChangeLog

* coff-alpha.c (alpha_ecoff_backend_data):  Initialise fields which
control long section name handling with ECOFF_NO_LONG_SECTION_NAMES.
* coff-mips.c (mips_ecoff_backend_data):  Likewise.
* coff-rs6000.c (bfd_xcoff_backend_data):  Initialise fields which
control long section name handling with XCOFF_NO_LONG_SECTION_NAMES.
(bfd_pmac_xcoff_backend_data):  Likewise.
* coff64-rs6000.c (bfd_xcoff_backend_data):  Likewise.
(bfd_xcoff_aix5_backend_data):  Likewise.
(xcoff64_write_object_contents):  Delete unused long_section_names
local variable.
* coff-sh.c (bfd_coff_small_swap_table):  Initialise long section
name members using COFF_DEFAULT_LONG_SECTION_NAMES and make entire
struct non-const.
* coffcode.h (documentation):  Update to describe long section names.
(COFFLONGSECTIONCATHELPER):  New helper macro.
(BLANKOR1TOODD):  Likewise.
(COFF_ENABLE_LONG_SECTION_NAMES):  Likewise.
(COFF_LONG_SECTION_NAMES_SETTER):  Likewise.
(COFF_DEFAULT_LONG_SECTION_NAMES):  Likewise.
(bfd_coff_set_long_section_names_allowed):  New function.
(bfd_coff_set_long_section_names_disallowed):  Likewise.
(struct bfd_coff_backend_data):  Add new backend hook function
pointer _bfd_coff_set_long_section_names.
(bfd_coff_set_long_section_names):  New backend hook.
(coff_write_object_contents):  Only generate long section names if
bfd_coff_long_section_names() indicates they are currently enabled.
(bfd_coff_std_swap_table):  Make non-const, and initialise long
section name fields using COFF_DEFAULT_LONG_SECTION_NAMES.
(ticoff0_swap_table):  Likewise to both.
(ticoff1_swap_table):  Again, likewise to both.
* coffgen.c (make_a_section_from_file):  Allow long section names
as inputs even if not currently allowed for outputs.
* ecoff.c (_bfd_ecoff_no_long_sections):  New function.
* efi-app-ia32.c (COFF_LONG_SECTION_NAMES):  Define to 0, not blank.
* efi-app-ia64.c (COFF_LONG_SECTION_NAMES):  Likewise.
* efi-app-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
* efi-bsdrv-ia32.c (COFF_LONG_SECTION_NAMES):  Likewise.
* efi-bsdrv-ia64.c (COFF_LONG_SECTION_NAMES):  Likewise.
* efi-bsdrv-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
* efi-rtdrv-ia32.c (COFF_LONG_SECTION_NAMES):  Likewise.
* efi-rtdrv-ia64.c (COFF_LONG_SECTION_NAMES):  Likewise.
* efi-rtdrv-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
* pei-arm.c (COFF_LONG_SECTION_NAMES):  Likewise.
* pei-i386.c (COFF_LONG_SECTION_NAMES):  Likewise.
* pei-mcore.c (COFF_LONG_SECTION_NAMES):  Likewise.
* pei-mips.c (COFF_LONG_SECTION_NAMES):  Likewise.
* pei-ppc.c (COFF_LONG_SECTION_NAMES):  Likewise.
* pei-sh.c (COFF_LONG_SECTION_NAMES):  Likewise.
* pei-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
* libcoff-in.h:  Update copyright year to cause updated copyright
year in generated libcoff.h, and fix typo.
* libcoff.h:  Regenerated.
* libecoff.h (ECOFF_NO_LONG_SECTION_NAMES):  New macro.
(_bfd_ecoff_no_long_sections):  Add prototype.
* libxcoff.h (XCOFF_NO_LONG_SECTION_NAMES):  New macro.
* pe-mips.c (COFF_LONG_SECTION_NAMES):  Define empty if not already
defined by an including .c file.
* ticoff.h (ticoff0_swap_table):  Make non-const, and initialise
long section name fields using COFF_DEFAULT_LONG_SECTION_NAMES.
(ticoff1_swap_table):  Likewise to both.

ld/ChangeLog

* ld.texinfo:  Update to mention long section name options.
* NEWS:  Mention new behaviour and command-line options.
* pe-dll.c (pe_use_coff_long_section_names):  New global variable.
(pe_output_file_set_long_section_names):  New function.
(pe_dll_build_sections):  Call it on output BFDs.
(pe_exe_build_sections):  Likewise.
(pe_dll_fill_sections):  Likewise.
(pe_exe_fill_sections):  Likewise.
* pe-dll.h (pe_use_coff_long_section_names):  Declare extern.
(pe_output_file_set_long_section_names):  Add prototype.
* pep-dll.c (pe_use_coff_long_section_names):  Define pep_ alias.
(pe_output_file_set_long_section_names):  Likewise.
* pep-dll.h (pep_use_coff_long_section_names):  Declare extern.
(pep_output_file_set_long_section_names):  Add prototype.
* pe.em (OPTION_ENABLE_LONG_SECTION_NAMES):  New getopt value macro.
(OPTION_DISABLE_LONG_SECTION_NAMES):  Likewise.
(gld${EMULATION_NAME}_add_options):  Add new options to xtra_long[].
(gld_${EMULATION_NAME}_list_options):  Describe them.
(gld${EMULATION_NAME}_handle_option):  Set or clear global
pe_use_coff_long_section_names flag when options recognised.
(gld_${EMULATION_NAME}_after_open):  En/disable long section names
for main output bfd by calling pe_output_file_set_long_section_names.
* pep.em (enum options):  Extend enum with new getopt option values.
(gld${EMULATION_NAME}_add_options):  Add new options to xtra_long[].
(gld_${EMULATION_NAME}_list_options):  Describe them.
(gld${EMULATION_NAME}_handle_option):  Set or clear global
pe_use_coff_long_section_names flag when options recognised.
(gld_${EMULATION_NAME}_after_open):  En/disable long section names
for main output bfd by calling pep_output_file_set_long_section_names.

ld/testsuite/ChangeLog

* ld-pe/longsecn-1.d:  New test file.
* ld-pe/longsecn-2.d:  Likewise.
* ld-pe/longsecn-3.d:  Likewise.
* ld-pe/longsecn-4.d:  Likewise.
* ld-pe/longsecn-5.d:  Likewise.
* ld-pe/longsecn.d:  Likewise.
* ld-pe/longsecn.exp:  New test control script.
* ld-pe/longsecn.s:  New test source file.
49 files changed:
bfd/ChangeLog
bfd/coff-alpha.c
bfd/coff-mips.c
bfd/coff-rs6000.c
bfd/coff-sh.c
bfd/coff64-rs6000.c
bfd/coffcode.h
bfd/coffgen.c
bfd/ecoff.c
bfd/efi-app-ia32.c
bfd/efi-app-ia64.c
bfd/efi-app-x86_64.c
bfd/efi-bsdrv-ia32.c
bfd/efi-bsdrv-ia64.c
bfd/efi-bsdrv-x86_64.c
bfd/efi-rtdrv-ia32.c
bfd/efi-rtdrv-ia64.c
bfd/efi-rtdrv-x86_64.c
bfd/libcoff-in.h
bfd/libcoff.h
bfd/libecoff.h
bfd/libxcoff.h
bfd/pe-mips.c
bfd/pei-arm.c
bfd/pei-i386.c
bfd/pei-mcore.c
bfd/pei-mips.c
bfd/pei-ppc.c
bfd/pei-sh.c
bfd/pei-x86_64.c
bfd/ticoff.h
ld/ChangeLog
ld/NEWS
ld/emultempl/pe.em
ld/emultempl/pep.em
ld/ld.texinfo
ld/pe-dll.c
ld/pe-dll.h
ld/pep-dll.c
ld/pep-dll.h
ld/testsuite/ChangeLog
ld/testsuite/ld-pe/longsecn-1.d [new file with mode: 0755]
ld/testsuite/ld-pe/longsecn-2.d [new file with mode: 0755]
ld/testsuite/ld-pe/longsecn-3.d [new file with mode: 0755]
ld/testsuite/ld-pe/longsecn-4.d [new file with mode: 0755]
ld/testsuite/ld-pe/longsecn-5.d [new file with mode: 0755]
ld/testsuite/ld-pe/longsecn.d [new file with mode: 0755]
ld/testsuite/ld-pe/longsecn.exp [new file with mode: 0755]
ld/testsuite/ld-pe/longsecn.s [new file with mode: 0755]