diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 24 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips-abiflags-0.d | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips-abiflags-0.ld | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips-abiflags-0r.d | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips-abiflags-1.d | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips-abiflags-1.ld | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips-abiflags-1r.d | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips-abiflags-2.d | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips-abiflags-2r.d | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips-elf.exp | 17 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/reginfo-0.d | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/reginfo-0.ld | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/reginfo-0r.d | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/reginfo-1.d | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/reginfo-1.ld | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/reginfo-1.s | 10 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/reginfo-1r.d | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/reginfo-2.d | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/reginfo-2.s | 10 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/reginfo-2r.d | 9 |
20 files changed, 174 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 4f5cd5f..f2cc005 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,29 @@ 2018-02-19 Maciej W. Rozycki <macro@mips.com> + * testsuite/ld-mips-elf/reginfo-0.d: New test. + * testsuite/ld-mips-elf/reginfo-0r.d: New test. + * testsuite/ld-mips-elf/reginfo-1.d: New test. + * testsuite/ld-mips-elf/reginfo-1r.d: New test. + * testsuite/ld-mips-elf/reginfo-2.d: New test. + * testsuite/ld-mips-elf/reginfo-2r.d: New test. + * testsuite/ld-mips-elf/mips-abiflags-0.d: New test. + * testsuite/ld-mips-elf/mips-abiflags-0r.d: New test. + * testsuite/ld-mips-elf/mips-abiflags-1.d: New test. + * testsuite/ld-mips-elf/mips-abiflags-1r.d: New test. + * testsuite/ld-mips-elf/mips-abiflags-2.d: New test. + * testsuite/ld-mips-elf/mips-abiflags-2r.d: New test. + * testsuite/ld-mips-elf/reginfo-0.ld: New test linker script. + * testsuite/ld-mips-elf/reginfo-1.ld: New test linker script. + * testsuite/ld-mips-elf/mips-abiflags-0.ld: New test linker + script. + * testsuite/ld-mips-elf/mips-abiflags-1.ld: New test linker + script. + * testsuite/ld-mips-elf/reginfo-1.s: New test source. + * testsuite/ld-mips-elf/reginfo-2.s: New test source. + * testsuite/ld-mips-elf/mips-elf.exp: Run the new tests. + +2018-02-19 Maciej W. Rozycki <macro@mips.com> + * ldlang.c (insert_pad): Do not change output section's size if SEC_FIXED_SIZE is set in the flags. (size_input_section): Likewise. diff --git a/ld/testsuite/ld-mips-elf/mips-abiflags-0.d b/ld/testsuite/ld-mips-elf/mips-abiflags-0.d new file mode 100644 index 0000000..8d243f4 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/mips-abiflags-0.d @@ -0,0 +1,9 @@ +#readelf: -x .MIPS.abiflags +#name: MIPS .MIPS.abiflags section size 0 +#source: empty.s RUN_OBJCOPY +#objcopy_objects: -R .MIPS.abiflags +#ld: -T mips-abiflags-0.ld + +Hex dump of section '\.MIPS\.abiflags': + 0x00000000 ........ ........ ........ ........ .* + 0x00000010 ........ ........ .* diff --git a/ld/testsuite/ld-mips-elf/mips-abiflags-0.ld b/ld/testsuite/ld-mips-elf/mips-abiflags-0.ld new file mode 100644 index 0000000..419756e --- /dev/null +++ b/ld/testsuite/ld-mips-elf/mips-abiflags-0.ld @@ -0,0 +1,5 @@ +SECTIONS +{ + .MIPS.abiflags : { foo = .; } + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-mips-elf/mips-abiflags-0r.d b/ld/testsuite/ld-mips-elf/mips-abiflags-0r.d new file mode 100644 index 0000000..0118e07 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/mips-abiflags-0r.d @@ -0,0 +1,6 @@ +#readelf: -x .MIPS.abiflags +#name: MIPS .MIPS.abiflags section size 0 (relocatable) +#source: empty.s RUN_OBJCOPY +#objcopy_objects: -R .MIPS.abiflags +#ld: -r -T mips-abiflags-0.ld +#dump: mips-abiflags-0.d diff --git a/ld/testsuite/ld-mips-elf/mips-abiflags-1.d b/ld/testsuite/ld-mips-elf/mips-abiflags-1.d new file mode 100644 index 0000000..d28b3da --- /dev/null +++ b/ld/testsuite/ld-mips-elf/mips-abiflags-1.d @@ -0,0 +1,6 @@ +#readelf: -x .MIPS.abiflags +#name: MIPS .MIPS.abiflags section size 1 +#source: reginfo-1.s RUN_OBJCOPY +#objcopy_objects: -R .MIPS.abiflags +#ld: -T mips-abiflags-1.ld +#dump: mips-abiflags-0.d diff --git a/ld/testsuite/ld-mips-elf/mips-abiflags-1.ld b/ld/testsuite/ld-mips-elf/mips-abiflags-1.ld new file mode 100644 index 0000000..7287a1e --- /dev/null +++ b/ld/testsuite/ld-mips-elf/mips-abiflags-1.ld @@ -0,0 +1,5 @@ +SECTIONS +{ + .MIPS.abiflags : { *(.foo) } + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-mips-elf/mips-abiflags-1r.d b/ld/testsuite/ld-mips-elf/mips-abiflags-1r.d new file mode 100644 index 0000000..821a5b2 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/mips-abiflags-1r.d @@ -0,0 +1,6 @@ +#readelf: -x .MIPS.abiflags +#name: MIPS .MIPS.abiflags section size 1 (relocatable) +#source: reginfo-1.s RUN_OBJCOPY +#objcopy_objects: -R .MIPS.abiflags +#ld: -r -T mips-abiflags-1.ld +#dump: mips-abiflags-0.d diff --git a/ld/testsuite/ld-mips-elf/mips-abiflags-2.d b/ld/testsuite/ld-mips-elf/mips-abiflags-2.d new file mode 100644 index 0000000..796a8c2 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/mips-abiflags-2.d @@ -0,0 +1,6 @@ +#readelf: -x .MIPS.abiflags +#name: MIPS .MIPS.abiflags section size 2 +#source: reginfo-2.s RUN_OBJCOPY +#objcopy_objects: -R .MIPS.abiflags +#ld: -T mips-abiflags-1.ld +#dump: mips-abiflags-0.d diff --git a/ld/testsuite/ld-mips-elf/mips-abiflags-2r.d b/ld/testsuite/ld-mips-elf/mips-abiflags-2r.d new file mode 100644 index 0000000..596e0eb --- /dev/null +++ b/ld/testsuite/ld-mips-elf/mips-abiflags-2r.d @@ -0,0 +1,6 @@ +#readelf: -x .MIPS.abiflags +#name: MIPS .MIPS.abiflags section size 2 (relocatable) +#source: reginfo-2.s RUN_OBJCOPY +#objcopy_objects: -R .MIPS.abiflags +#ld: -r -T mips-abiflags-1.ld +#dump: mips-abiflags-0.d diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp index 13dbbc6..144b007 100644 --- a/ld/testsuite/ld-mips-elf/mips-elf.exp +++ b/ld/testsuite/ld-mips-elf/mips-elf.exp @@ -57,6 +57,7 @@ set has_newabi [expr [istarget *-*-irix6*] \ || [istarget mips*-sde-elf*] \ || [istarget mips*-mti-elf*] \ || [istarget mips*-img-elf*]] +set has_elf32 [expr ![istarget *-*-openbsd*]] set linux_gnu [expr [istarget mips*-*-linux*]] set embedded_elf [expr [istarget mips*-*-elf]] @@ -1237,3 +1238,19 @@ rename mips_old_prune_warnings prune_warnings # Verify that we can link ELF input into the `binary' output format. run_dump_test "binary" + +# Verify special section processing. +if $has_elf32 { + run_dump_test "reginfo-0" + run_dump_test "reginfo-0r" + run_dump_test "reginfo-1" + run_dump_test "reginfo-1r" + run_dump_test "reginfo-2" + run_dump_test "reginfo-2r" +} +run_dump_test "mips-abiflags-0" +run_dump_test "mips-abiflags-0r" +run_dump_test "mips-abiflags-1" +run_dump_test "mips-abiflags-1r" +run_dump_test "mips-abiflags-2" +run_dump_test "mips-abiflags-2r" diff --git a/ld/testsuite/ld-mips-elf/reginfo-0.d b/ld/testsuite/ld-mips-elf/reginfo-0.d new file mode 100644 index 0000000..ee731eb --- /dev/null +++ b/ld/testsuite/ld-mips-elf/reginfo-0.d @@ -0,0 +1,9 @@ +#readelf: -x .reginfo +#name: MIPS .reginfo section size 0 +#source: empty.s RUN_OBJCOPY +#objcopy_objects: -R .reginfo +#ld: -T reginfo-0.ld + +Hex dump of section '\.reginfo': + 0x00000000 00000000 00000000 00000000 00000000 .* + 0x00000010 00000000 00000000 .* diff --git a/ld/testsuite/ld-mips-elf/reginfo-0.ld b/ld/testsuite/ld-mips-elf/reginfo-0.ld new file mode 100644 index 0000000..d37eb0a --- /dev/null +++ b/ld/testsuite/ld-mips-elf/reginfo-0.ld @@ -0,0 +1,5 @@ +SECTIONS +{ + .reginfo : { foo = .; } + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-mips-elf/reginfo-0r.d b/ld/testsuite/ld-mips-elf/reginfo-0r.d new file mode 100644 index 0000000..f37ff80 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/reginfo-0r.d @@ -0,0 +1,9 @@ +#readelf: -x .reginfo +#name: MIPS .reginfo section size 0 (relocatable) +#source: empty.s RUN_OBJCOPY +#objcopy_objects: -R .reginfo +#ld: -r -T reginfo-0.ld + +Hex dump of section '\.reginfo': + 0x00000000 00000000 00000000 00000000 00000000 .* + 0x00000010 00000000 ........ .* diff --git a/ld/testsuite/ld-mips-elf/reginfo-1.d b/ld/testsuite/ld-mips-elf/reginfo-1.d new file mode 100644 index 0000000..dc98549 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/reginfo-1.d @@ -0,0 +1,9 @@ +#readelf: -x .reginfo +#name: MIPS .reginfo section size 1 +#source: reginfo-1.s RUN_OBJCOPY +#objcopy_objects: -R .reginfo +#ld: -T reginfo-1.ld + +Hex dump of section '\.reginfo': + 0x00000000 01020304 05060708 090a0b0c 0d0e0f10 .* + 0x00000010 00000000 00000000 .* diff --git a/ld/testsuite/ld-mips-elf/reginfo-1.ld b/ld/testsuite/ld-mips-elf/reginfo-1.ld new file mode 100644 index 0000000..151d19a --- /dev/null +++ b/ld/testsuite/ld-mips-elf/reginfo-1.ld @@ -0,0 +1,5 @@ +SECTIONS +{ + .reginfo : { *(.foo) } + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-mips-elf/reginfo-1.s b/ld/testsuite/ld-mips-elf/reginfo-1.s new file mode 100644 index 0000000..2aad272 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/reginfo-1.s @@ -0,0 +1,10 @@ + .section .foo, "aw", @progbits + .globl foo + .type foo, @object +foo: + .set .Li, 0 + .rept 16 + .set .Li, .Li + 1 + .byte .Li + .endr + .size foo, . - foo diff --git a/ld/testsuite/ld-mips-elf/reginfo-1r.d b/ld/testsuite/ld-mips-elf/reginfo-1r.d new file mode 100644 index 0000000..ca262fd --- /dev/null +++ b/ld/testsuite/ld-mips-elf/reginfo-1r.d @@ -0,0 +1,9 @@ +#readelf: -x .reginfo +#name: MIPS .reginfo section size 1 (relocatable) +#source: reginfo-1.s RUN_OBJCOPY +#objcopy_objects: -R .reginfo +#ld: -r -T reginfo-1.ld + +Hex dump of section '\.reginfo': + 0x00000000 01020304 05060708 090a0b0c 0d0e0f10 .* + 0x00000010 00000000 ........ .* diff --git a/ld/testsuite/ld-mips-elf/reginfo-2.d b/ld/testsuite/ld-mips-elf/reginfo-2.d new file mode 100644 index 0000000..11b7360 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/reginfo-2.d @@ -0,0 +1,9 @@ +#readelf: -x .reginfo +#name: MIPS .reginfo section size 2 +#source: reginfo-2.s RUN_OBJCOPY +#objcopy_objects: -R .reginfo +#ld: -T reginfo-1.ld + +Hex dump of section '\.reginfo': + 0x00000000 01020304 05060708 090a0b0c 0d0e0f10 .* + 0x00000010 11121314 00000000 .* diff --git a/ld/testsuite/ld-mips-elf/reginfo-2.s b/ld/testsuite/ld-mips-elf/reginfo-2.s new file mode 100644 index 0000000..fdc6e6a --- /dev/null +++ b/ld/testsuite/ld-mips-elf/reginfo-2.s @@ -0,0 +1,10 @@ + .section .foo, "aw", @progbits + .globl foo + .type foo, @object +foo: + .set .Li, 0 + .rept 32 + .set .Li, .Li + 1 + .byte .Li + .endr + .size foo, . - foo diff --git a/ld/testsuite/ld-mips-elf/reginfo-2r.d b/ld/testsuite/ld-mips-elf/reginfo-2r.d new file mode 100644 index 0000000..f133337 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/reginfo-2r.d @@ -0,0 +1,9 @@ +#readelf: -x .reginfo +#name: MIPS .reginfo section size 2 (relocatable) +#source: reginfo-2.s RUN_OBJCOPY +#objcopy_objects: -R .reginfo +#ld: -r -T reginfo-1.ld + +Hex dump of section '\.reginfo': + 0x00000000 01020304 05060708 090a0b0c 0d0e0f10 .* + 0x00000010 11121314 ........ .* |