mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-06 12:09:26 +08:00
abf874aafe
2020-01-06 Christophe Lyon <christophe.lyon@linaro.org> bfd/ * bfd-in2.h: Regenerate. * section.c (asection): Add already_assigned field. (BFD_FAKE_SECTION): Add default initializer for it. * ecoff.c (bfd_debug_section): Initialize already_assigned field. * elf32-arm.c (arm_build_one_stub): Add support for non_contiguous_regions. * elf32-csky.c (csky_build_one_stub): Likewise. * elf32-hppa.c (hppa_build_one_stub): Likewise. * elf32-m68hc11.c (m68hc11_elf_build_one_stub): Likewise. * elf32-m68hc12.c (m68hc12_elf_build_one_stub): Likewise. * elf32-metag.c (metag_build_one_stub): Likewise. * elf32-nios2.c (nios2_build_one_stub): Likewise. * elf64-ppc.c (ppc_build_one_stub): Likewise. (ppc_size_one_stub): Likewise. * elfnn-aarch64.c (aarch64_build_one_stub): Likewise. * elflink.c (elf_link_input_bfd): Likewise. include/ * bfdlink.h (bfd_link_info): Add non_contiguous_regions and non_contiguous_regions_warnings fields. ld/ * ldlang.c (lang_add_section): Add support for non_contiguous_regions. (size_input_section): Likewise. (lang_size_sections_1): Likewise. (process_insert_statements): Likewise. * ldlex.h (option_values): Add OPTION_NON_CONTIGUOUS_REGIONS and OPTION_NON_CONTIGUOUS_REGIONS_WARNINGS. * lexsup.c (ld_options): Add entries for --enable-non-contiguous-regions and --enable-non-contiguous-regions-warnings. (parse_args): Handle it. * NEWS: Add --enable-non-contiguous-regions and --enable-non-contiguous-regions-warnings. * ld.texi: Add --enable-non-contiguous-regions and --enable-non-contiguous-regions-warnings documentation. * emultempl/armelf.em (elf32_arm_add_stub_section): Add SEC_LINKER_CREATED flag. * emultempl/xtensaelf.em (ld_build_required_section_dependence): Emit an error when --enable-non-contiguous-regions is used. * testsuite/ld-elf/non-contiguous.d: New. * testsuite/ld-elf/non-contiguous.ld: New. * testsuite/ld-elf/non-contiguous.s: New. * testsuite/ld-arm/arm-elf.exp: Run the new tests. * testsuite/ld-arm/arm-elf/non-contiguous-arm.s: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm.d: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm.ld: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm2.d: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm3.ld: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm3.d: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm3.ld: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm4.d: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm4.ld: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm5.d: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm5.ld: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm6.d: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm6.ld: New. * testsuite/ld-powerpc/powerpc.exp: Run new tests. * testsuite/ld-powerpc/non-contiguous-powerpc.d: New. * testsuite/ld-powerpc/non-contiguous-powerpc.ld: New. * testsuite/ld-powerpc/non-contiguous-powerpc.sd: New. * testsuite/ld-powerpc/non-contiguous-powerpc64.d: New.
78 lines
2.6 KiB
Makefile
78 lines
2.6 KiB
Makefile
#name: non-contiguous-arm5
|
|
#source: non-contiguous-arm.s
|
|
#ld: --enable-non-contiguous-regions -T non-contiguous-arm5.ld
|
|
#objdump: -rdth
|
|
#xfail: [is_generic]
|
|
|
|
.*: file format elf32-(little|big)arm.*
|
|
|
|
Sections:
|
|
Idx Name Size VMA LMA File off Algn
|
|
0 \.raml 0000000c 1fff0000 1fff0000 00010000 2\*\*2
|
|
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
|
1 \.ramu 00000014 20000000 1fff000c 00020000 2\*\*2
|
|
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
|
2 \.ramz 00000050 20040000 20000014 00030000 2\*\*2
|
|
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
|
3 .ARM.attributes 00000012 00000000 00000000 .* 2\*\*0
|
|
CONTENTS, READONLY
|
|
SYMBOL TABLE:
|
|
1fff0000 l d .raml 00000000 .raml
|
|
20000000 l d .ramu 00000000 .ramu
|
|
20040000 l d .ramz 00000000 .ramz
|
|
00000000 l d .ARM.attributes 00000000 .ARM.attributes
|
|
00000000 l df \*ABS\* 00000000 .*/non-contiguous-arm.o
|
|
1fff000c g .raml 00000000 _raml_end
|
|
20000000 g .ramu 00000000 _ramu_start
|
|
20000000 g F .ramu 00000000 code2
|
|
20040000 g .ramz 00000000 _ramz_start
|
|
1fff0000 g .raml 00000000 _raml_start
|
|
2000000c g F .ramu 00000000 code3
|
|
1fff0000 g F .raml 00000000 code1
|
|
20040050 g .ramz 00000000 _ramz_end
|
|
20040000 g F .ramz 00000000 code4
|
|
20000014 g .ramu 00000000 _ramu_end
|
|
|
|
|
|
Disassembly of section .raml:
|
|
|
|
1fff0000 \<code1\>:
|
|
1fff0000: e1a00000 nop ; \(mov r0, r0\)
|
|
1fff0004: e1a00000 nop ; \(mov r0, r0\)
|
|
1fff0008: eb003ffc bl 20000000 \<code2\>
|
|
|
|
Disassembly of section .ramu:
|
|
|
|
20000000 \<code2\>:
|
|
20000000: e1a00000 nop ; \(mov r0, r0\)
|
|
20000004: e1a00000 nop ; \(mov r0, r0\)
|
|
20000008: ebffffff bl 2000000c \<code3\>
|
|
|
|
2000000c \<code3\>:
|
|
2000000c: e1a00000 nop ; \(mov r0, r0\)
|
|
20000010: eb00fffa bl 20040000 \<code4\>
|
|
|
|
Disassembly of section .ramz:
|
|
|
|
20040000 \<code4\>:
|
|
20040000: e1a00000 .word 0xe1a00000
|
|
20040004: e1a00000 .word 0xe1a00000
|
|
20040008: e1a00000 .word 0xe1a00000
|
|
2004000c: e1a00000 .word 0xe1a00000
|
|
20040010: e1a00000 .word 0xe1a00000
|
|
20040014: e1a00000 .word 0xe1a00000
|
|
20040018: e1a00000 .word 0xe1a00000
|
|
2004001c: e1a00000 .word 0xe1a00000
|
|
20040020: e1a00000 .word 0xe1a00000
|
|
20040024: e1a00000 .word 0xe1a00000
|
|
20040028: e1a00000 .word 0xe1a00000
|
|
2004002c: e1a00000 .word 0xe1a00000
|
|
20040030: e1a00000 .word 0xe1a00000
|
|
20040034: e1a00000 .word 0xe1a00000
|
|
20040038: e1a00000 .word 0xe1a00000
|
|
2004003c: e1a00000 .word 0xe1a00000
|
|
20040040: e1a00000 .word 0xe1a00000
|
|
20040044: e1a00000 .word 0xe1a00000
|
|
20040048: e1a00000 .word 0xe1a00000
|
|
2004004c: e1a00000 .word 0xe1a00000
|