bfd/
* elf32-arm.c (INTERWORK_FLAG): Check BFD_LINKER_CREATED.
(elf32_arm_write_section): Declare early.
(elf32_arm_size_stubs): Skip non-stub sections in the stub BFD.
(arm_allocate_glue_section_space): Exclude empty sections.
(ARM_GLUE_SECTION_FLAGS): Add SEC_LINKER_CREATED.
(bfd_elf32_arm_add_glue_sections_to_bfd): Do not skip the stub
BFD.
(elf32_arm_output_glue_section, elf32_arm_final_link): New.
(elf32_arm_merge_eabi_attributes): Skip the stub BFD.
(elf32_arm_size_dynamic_sections): Allocate interworking
sections here.
(bfd_elf32_bfd_final_link): Define.
ld/
* emultempl/armelf.em (bfd_for_interwork, arm_elf_after_open)
(arm_elf_set_bfd_for_interworking): Delete.
(arm_elf_before_allocation): Do not set the interworking BFD.
Move allocation inside not-dynamic block.
(arm_elf_create_output_section_statements): Create glue sections
and set the interworking BFD here.
(LDEMUL_AFTER_OPEN): Delete.
ld/testsuite/
* ld-arm/farcall-mix.d, ld-arm/farcall-mix2.d,
ld-arm/farcall-group-size2.d, ld-arm/farcall-group.d,
ld-arm/farcall-mixed-lib.d: Update for linker changes.