aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog4
-rw-r--r--ld/NEWS27
-rw-r--r--ld/config.in3
-rwxr-xr-xld/configure701
-rw-r--r--ld/configure.ac7
-rw-r--r--ld/emulparams/elf32lriscv.sh2
-rw-r--r--ld/emulparams/elf32lriscv_ilp32.sh2
-rw-r--r--ld/emulparams/elf32lriscv_ilp32f.sh2
-rw-r--r--ld/emulparams/elf64lriscv.sh2
-rw-r--r--ld/emulparams/elf64lriscv_lp64.sh2
-rw-r--r--ld/emulparams/elf64lriscv_lp64f.sh2
-rw-r--r--ld/emultempl/aarch64elf.em48
-rw-r--r--ld/emultempl/emulation.em3
-rw-r--r--ld/emultempl/kvxelf.em14
-rw-r--r--ld/emultempl/loongarchelf.em2
-rw-r--r--ld/emultempl/pe.em63
-rw-r--r--ld/emultempl/pep.em19
-rw-r--r--ld/ld.texi34
-rw-r--r--ld/ldemul.c8
-rw-r--r--ld/ldemul.h8
-rw-r--r--ld/ldlang.c48
-rw-r--r--ld/ldmain.c6
-rw-r--r--ld/ldmisc.c10
-rw-r--r--ld/ldwrite.c2
-rw-r--r--ld/pe-dll.c9
-rw-r--r--ld/po/ld.pot2512
-rw-r--r--ld/scripttempl/avr.sc20
-rw-r--r--ld/scripttempl/pe.sc29
-rw-r--r--ld/scripttempl/pep.sc31
-rw-r--r--ld/testsuite/config/default.exp13
-rw-r--r--ld/testsuite/ld-aarch64/aarch64-elf.exp4
-rw-r--r--ld/testsuite/ld-aarch64/aarch64.ld20
-rw-r--r--ld/testsuite/ld-aarch64/dt-memtag-mode.d7
-rw-r--r--ld/testsuite/ld-aarch64/dt-memtag-stack.d7
-rw-r--r--ld/testsuite/ld-aarch64/dt-memtag.s7
-rw-r--r--ld/testsuite/ld-aarch64/gc-got-relocs.d15
-rw-r--r--ld/testsuite/ld-aarch64/gc-plt-relocs.d60
-rw-r--r--ld/testsuite/ld-aarch64/gc-relocs-257-dyn.d4
-rw-r--r--ld/testsuite/ld-aarch64/gc-relocs-257.d4
-rw-r--r--ld/testsuite/ld-aarch64/gc-tls-relocs.d14
-rw-r--r--ld/testsuite/ld-aarch64/mte-tagged-frame-bar.s17
-rw-r--r--ld/testsuite/ld-aarch64/mte-tagged-frame-foo.s16
-rw-r--r--ld/testsuite/ld-aarch64/mte-tagged-frame.d35
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-a.d45
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-b.d14
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-far-1.d4
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-far-opt.d4
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-far.ld26
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-a.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-b.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-a.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-b.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-a.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-b.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-plt-1-a.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-plt-1-b.d8
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-plt-1-c.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-plt-3.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-plt.ld25
-rw-r--r--ld/testsuite/ld-aarch64/protections/pac-plt-1-a.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/pac-plt-1-b.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/pac-plt-2.d4
-rw-r--r--ld/testsuite/ld-aarch64/relocs-ilp32.ld2
-rw-r--r--ld/testsuite/ld-aarch64/relocs.ld2
-rw-r--r--ld/testsuite/ld-aarch64/sframe-simple-1.d3
-rw-r--r--ld/testsuite/ld-aarch64/variant_pcs-now.d98
-rw-r--r--ld/testsuite/ld-aarch64/variant_pcs-r.d10
-rw-r--r--ld/testsuite/ld-aarch64/variant_pcs-shared.d98
-rw-r--r--ld/testsuite/ld-aarch64/variant_pcs.ld32
-rw-r--r--ld/testsuite/ld-arm/arm.ld2
-rw-r--r--ld/testsuite/ld-arm/arm_purecode.ld2
-rw-r--r--ld/testsuite/ld-arm/discard-unwind.ld2
-rw-r--r--ld/testsuite/ld-arm/script-type.ld4
-rw-r--r--ld/testsuite/ld-arm/unwind-1.d9
-rw-r--r--ld/testsuite/ld-arm/unwind-2.d9
-rw-r--r--ld/testsuite/ld-arm/unwind-3.d11
-rw-r--r--ld/testsuite/ld-arm/unwind-4.d14
-rw-r--r--ld/testsuite/ld-cris/asneed1.d2
-rw-r--r--ld/testsuite/ld-cris/badgotr1.d2
-rw-r--r--ld/testsuite/ld-cris/def2.d2
-rw-r--r--ld/testsuite/ld-cris/def3.d2
-rw-r--r--ld/testsuite/ld-cris/dso-pltdis1.d2
-rw-r--r--ld/testsuite/ld-cris/dso-pltdis2.d2
-rw-r--r--ld/testsuite/ld-cris/dso12-pltdis.d2
-rw-r--r--ld/testsuite/ld-cris/expdyn1.d2
-rw-r--r--ld/testsuite/ld-cris/expdyn2.d2
-rw-r--r--ld/testsuite/ld-cris/expdyn3.d2
-rw-r--r--ld/testsuite/ld-cris/expdyn4.d2
-rw-r--r--ld/testsuite/ld-cris/expdyn5.d2
-rw-r--r--ld/testsuite/ld-cris/expdyn6.d2
-rw-r--r--ld/testsuite/ld-cris/expdyn7.d2
-rw-r--r--ld/testsuite/ld-cris/gotplt1.d2
-rw-r--r--ld/testsuite/ld-cris/gotplt2.d2
-rw-r--r--ld/testsuite/ld-cris/gotplt3.d2
-rw-r--r--ld/testsuite/ld-cris/hiddef1.d2
-rw-r--r--ld/testsuite/ld-cris/ldsym1.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-1.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-10.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-11.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-12.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-12b.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-12c.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-13.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-13b.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-14.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-15.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-15b.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-15c.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-1b.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-1c.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-1d.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-2.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-3.d2
-rw-r--r--ld/testsuite/ld-cris/libdso-4.d2
-rw-r--r--ld/testsuite/ld-cris/locref1.d2
-rw-r--r--ld/testsuite/ld-cris/locref2.d2
-rw-r--r--ld/testsuite/ld-cris/nodyn4.d2
-rw-r--r--ld/testsuite/ld-cris/nodyn5.d2
-rw-r--r--ld/testsuite/ld-cris/pcrelcp-1.d2
-rw-r--r--ld/testsuite/ld-cris/pic-gc-72.d2
-rw-r--r--ld/testsuite/ld-cris/pic-gc-73.d2
-rw-r--r--ld/testsuite/ld-cris/pr16044.d2
-rw-r--r--ld/testsuite/ld-cris/pr26589.d2
-rw-r--r--ld/testsuite/ld-cris/pv32-1.d2
-rw-r--r--ld/testsuite/ld-cris/tls-dso-dtpoffd2.d2
-rw-r--r--ld/testsuite/ld-cris/tls-dso-dtpoffd4.d2
-rw-r--r--ld/testsuite/ld-cris/tls-dso-tpoffgotcomm1.d2
-rw-r--r--ld/testsuite/ld-cris/tls-dso-x1x2-1.d2
-rw-r--r--ld/testsuite/ld-cris/tls-dso-xz-1.d2
-rw-r--r--ld/testsuite/ld-cris/tls-e-20.d2
-rw-r--r--ld/testsuite/ld-cris/tls-e-20a.d2
-rw-r--r--ld/testsuite/ld-cris/tls-e-21.d2
-rw-r--r--ld/testsuite/ld-cris/tls-e-22.d2
-rw-r--r--ld/testsuite/ld-cris/tls-e-23.d2
-rw-r--r--ld/testsuite/ld-cris/tls-e-66.d2
-rw-r--r--ld/testsuite/ld-cris/tls-e-80.d2
-rw-r--r--ld/testsuite/ld-cris/tls-e-dtpoffd1.d2
-rw-r--r--ld/testsuite/ld-cris/tls-e-dtpoffd3.d2
-rw-r--r--ld/testsuite/ld-cris/tls-e-tpiecomm1.d2
-rw-r--r--ld/testsuite/ld-cris/tls-e-tpoffcomm1.d2
-rw-r--r--ld/testsuite/ld-cris/tls-e-tpoffgotcomm1.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-20x.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-24.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-25.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-26.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-27.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-28.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-29.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-31.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-33.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-35.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-37.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-39.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-40.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-41.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-43.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-44.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-45.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-47.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-48.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-49.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-51.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-52.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-53.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-55.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-56.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-62.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-65.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-67.d2
-rw-r--r--ld/testsuite/ld-cris/tls-err-77.d2
-rw-r--r--ld/testsuite/ld-cris/tls-gc-68.d2
-rw-r--r--ld/testsuite/ld-cris/tls-gc-69.d2
-rw-r--r--ld/testsuite/ld-cris/tls-gc-70.d2
-rw-r--r--ld/testsuite/ld-cris/tls-gc-71.d2
-rw-r--r--ld/testsuite/ld-cris/tls-gc-75.d2
-rw-r--r--ld/testsuite/ld-cris/tls-gc-76.d2
-rw-r--r--ld/testsuite/ld-cris/tls-gc-79.d2
-rw-r--r--ld/testsuite/ld-cris/tls-gd-1.d2
-rw-r--r--ld/testsuite/ld-cris/tls-gd-1h.d2
-rw-r--r--ld/testsuite/ld-cris/tls-gd-2.d2
-rw-r--r--ld/testsuite/ld-cris/tls-gd-2h.d2
-rw-r--r--ld/testsuite/ld-cris/tls-gd-3.d2
-rw-r--r--ld/testsuite/ld-cris/tls-gd-3h.d2
-rw-r--r--ld/testsuite/ld-cris/tls-global-74.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ie-10.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ie-11.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ie-78.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ie-8.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ie-8e1.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ie-9.d2
-rw-r--r--ld/testsuite/ld-cris/tls-js1.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ld-4.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ld-5.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ld-6.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ld-7.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ldgd-14.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ldgd-15.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ldgde-14.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ldgde-15.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ldgdex-14.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ldgdex-15.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ldgdx-14.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ldgdx-15.d2
-rw-r--r--ld/testsuite/ld-cris/tls-le-12.d2
-rw-r--r--ld/testsuite/ld-cris/tls-le-12s.d2
-rw-r--r--ld/testsuite/ld-cris/tls-le-13.d2
-rw-r--r--ld/testsuite/ld-cris/tls-le-13s.d2
-rw-r--r--ld/testsuite/ld-cris/tls-legd-16.d2
-rw-r--r--ld/testsuite/ld-cris/tls-legd-17.d2
-rw-r--r--ld/testsuite/ld-cris/tls-legdx-16.d2
-rw-r--r--ld/testsuite/ld-cris/tls-legdx-17.d2
-rw-r--r--ld/testsuite/ld-cris/tls-leie-18.d2
-rw-r--r--ld/testsuite/ld-cris/tls-leie-19.d2
-rw-r--r--ld/testsuite/ld-cris/tls-local-54.d2
-rw-r--r--ld/testsuite/ld-cris/tls-local-57.d2
-rw-r--r--ld/testsuite/ld-cris/tls-local-58.d2
-rw-r--r--ld/testsuite/ld-cris/tls-local-59.d2
-rw-r--r--ld/testsuite/ld-cris/tls-local-60.d2
-rw-r--r--ld/testsuite/ld-cris/tls-local-61.d2
-rw-r--r--ld/testsuite/ld-cris/tls-local-63.d2
-rw-r--r--ld/testsuite/ld-cris/tls-local-64.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ok-30.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ok-32.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ok-34.d2
-rw-r--r--ld/testsuite/ld-cris/tls-ok-36.d2
-rw-r--r--ld/testsuite/ld-cris/tls-und-38.d2
-rw-r--r--ld/testsuite/ld-cris/tls-und-42.d2
-rw-r--r--ld/testsuite/ld-cris/tls-und-46.d2
-rw-r--r--ld/testsuite/ld-cris/tls-und-50.d2
-rw-r--r--ld/testsuite/ld-cris/undef1.d2
-rw-r--r--ld/testsuite/ld-cris/undef2.d2
-rw-r--r--ld/testsuite/ld-cris/undef3.d2
-rw-r--r--ld/testsuite/ld-cris/v10-v32.d2
-rw-r--r--ld/testsuite/ld-cris/v10-va.d2
-rw-r--r--ld/testsuite/ld-cris/v32-ba-1.d2
-rw-r--r--ld/testsuite/ld-cris/v32-bin-1.d2
-rw-r--r--ld/testsuite/ld-cris/v32-v10.d2
-rw-r--r--ld/testsuite/ld-cris/v32-va.d2
-rw-r--r--ld/testsuite/ld-cris/va-v10.d2
-rw-r--r--ld/testsuite/ld-cris/va-v32.d2
-rw-r--r--ld/testsuite/ld-cris/warn1.d2
-rw-r--r--ld/testsuite/ld-cris/warn2.d2
-rw-r--r--ld/testsuite/ld-cris/warn3.d2
-rw-r--r--ld/testsuite/ld-cris/warn4.d2
-rw-r--r--ld/testsuite/ld-cris/weakhiddso.d2
-rw-r--r--ld/testsuite/ld-cris/weakref1.d2
-rw-r--r--ld/testsuite/ld-cris/weakref2.d2
-rw-r--r--ld/testsuite/ld-cris/weakref3.d2
-rw-r--r--ld/testsuite/ld-cris/weakref4.d2
-rw-r--r--ld/testsuite/ld-elf/tbss4.d13
-rw-r--r--ld/testsuite/ld-elf/tbss4.s25
-rw-r--r--ld/testsuite/ld-elfvers/vers7.c4
-rw-r--r--ld/testsuite/ld-loongarch-elf/32_pcrel.s6
-rw-r--r--ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp3
-rw-r--r--ld/testsuite/ld-loongarch-elf/overflow_32_pcrel.d4
-rw-r--r--ld/testsuite/ld-loongarch-elf/relax-after-alignment.d31
-rw-r--r--ld/testsuite/ld-loongarch-elf/relax-after-alignment.s49
-rw-r--r--ld/testsuite/ld-loongarch-elf/underflow_32_pcrel.d4
-rw-r--r--ld/testsuite/ld-mips-elf/micromips-hilo-n64.d662
-rw-r--r--ld/testsuite/ld-mips-elf/micromips-hilo-srec-n64.d8
-rw-r--r--ld/testsuite/ld-mips-elf/micromips-hilo-srec.d8
-rw-r--r--ld/testsuite/ld-mips-elf/micromips-hilo.d230
-rw-r--r--ld/testsuite/ld-mips-elf/mips-elf.exp64
-rw-r--r--ld/testsuite/ld-mips-elf/mips-hilo-n64.d660
-rw-r--r--ld/testsuite/ld-mips-elf/mips-hilo-srec-n64.d6
-rw-r--r--ld/testsuite/ld-mips-elf/mips-hilo-srec.d6
-rw-r--r--ld/testsuite/ld-mips-elf/mips-hilo.d228
-rw-r--r--ld/testsuite/ld-mips-elf/mips-hilo.ld (renamed from ld/testsuite/ld-mips-elf/mips16-hilo.ld)3
-rw-r--r--ld/testsuite/ld-mips-elf/mips-hilo.s14
-rw-r--r--ld/testsuite/ld-mips-elf/mips16-hilo-n32.d337
-rw-r--r--ld/testsuite/ld-mips-elf/mips16-hilo-srec.d7
-rw-r--r--ld/testsuite/ld-mips-elf/mips16-hilo.d663
-rw-r--r--ld/testsuite/ld-mips-elf/mips16-hilo.s13
-rw-r--r--ld/testsuite/ld-mips-elf/mips16e2-hilo-srec.d8
-rw-r--r--ld/testsuite/ld-mips-elf/mips16e2-hilo.d230
-rw-r--r--ld/testsuite/ld-mips-elf/pcrel-hilo-srec.d6
-rw-r--r--ld/testsuite/ld-mips-elf/pcrel-hilo.d42
-rw-r--r--ld/testsuite/ld-mips-elf/pcrel-hilo.ld14
-rw-r--r--ld/testsuite/ld-mips-elf/pic-and-nonpic-1-r6.s0
-rw-r--r--ld/testsuite/ld-mips-elf/pr19977-micromips.d25
-rw-r--r--ld/testsuite/ld-mips-elf/pr19977-mips16.d24
-rw-r--r--ld/testsuite/ld-mips-elf/pr19977-r-micromips.d8
-rw-r--r--ld/testsuite/ld-mips-elf/pr19977-r-mips16.d7
-rw-r--r--ld/testsuite/ld-mips-elf/pr19977-r.d32
-rw-r--r--ld/testsuite/ld-mips-elf/pr19977-r.s2
-rw-r--r--ld/testsuite/ld-mips-elf/pr19977.d23
-rw-r--r--ld/testsuite/ld-mips-elf/pr19977.ld14
-rw-r--r--ld/testsuite/ld-plugin/lto-binutils.exp358
-rw-r--r--ld/testsuite/ld-plugin/lto.exp46
-rw-r--r--ld/testsuite/ld-plugin/pr25618a.h1
-rw-r--r--ld/testsuite/ld-plugin/pr25618b.h1
-rw-r--r--ld/testsuite/ld-plugin/pr32846a.c6
-rw-r--r--ld/testsuite/ld-plugin/pr32846b.c4
-rw-r--r--ld/testsuite/ld-plugin/pr32846c.c6
-rw-r--r--ld/testsuite/ld-plugin/pr32846d.c12
-rw-r--r--ld/testsuite/ld-plugin/pr32846e.c4
-rw-r--r--ld/testsuite/ld-plugin/strip-1a-fat.c1
-rw-r--r--ld/testsuite/ld-plugin/strip-1a-fat.rd6
-rw-r--r--ld/testsuite/ld-plugin/strip-1a-s-all.nd3
-rw-r--r--ld/testsuite/ld-plugin/strip-1a.c4
-rw-r--r--ld/testsuite/ld-plugin/strip-1b-fat.c1
-rw-r--r--ld/testsuite/ld-plugin/strip-1b-fat.rd5
-rw-r--r--ld/testsuite/ld-plugin/strip-1b.c3
-rw-r--r--ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp11
-rw-r--r--ld/testsuite/ld-riscv-elf/pie-bind-locally-a.s5
-rw-r--r--ld/testsuite/ld-riscv-elf/pie-bind-locally-b.s8
-rw-r--r--ld/testsuite/ld-riscv-elf/pie-bind-locally-rv32.d10
-rw-r--r--ld/testsuite/ld-riscv-elf/pie-bind-locally-rv64.d10
-rw-r--r--ld/testsuite/ld-riscv-elf/property-combine-and-1.d6
-rw-r--r--ld/testsuite/ld-riscv-elf/property-combine-and-2.d11
-rw-r--r--ld/testsuite/ld-riscv-elf/property-combine-and-3.d11
-rw-r--r--ld/testsuite/ld-riscv-elf/property-zicfilp-unlabeled.d10
-rw-r--r--ld/testsuite/ld-riscv-elf/property-zicfilp-unlabeled.s21
-rw-r--r--ld/testsuite/ld-riscv-elf/property-zicfiss.d10
-rw-r--r--ld/testsuite/ld-riscv-elf/property-zicfiss.s21
-rw-r--r--ld/testsuite/ld-riscv-elf/property1.s21
-rw-r--r--ld/testsuite/ld-riscv-elf/property2.s5
-rw-r--r--ld/testsuite/ld-riscv-elf/property3.s21
-rw-r--r--ld/testsuite/ld-riscv-elf/property4.s21
-rw-r--r--ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.d35
-rw-r--r--ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.s21
-rw-r--r--ld/testsuite/ld-s390/pr32969_64-1.dd15
-rw-r--r--ld/testsuite/ld-s390/pr32969_64-2.dd15
-rw-r--r--ld/testsuite/ld-s390/pr32969a.s14
-rw-r--r--ld/testsuite/ld-s390/pr32969b.s10
-rw-r--r--ld/testsuite/ld-s390/pr32969c.s10
-rw-r--r--ld/testsuite/ld-s390/s390.exp26
-rw-r--r--ld/testsuite/ld-s390/sframe-bar.s21
-rw-r--r--ld/testsuite/ld-s390/sframe-foo.s9
-rw-r--r--ld/testsuite/ld-s390/sframe-plt-1.d29
-rw-r--r--ld/testsuite/ld-s390/sframe-simple-1.d32
-rw-r--r--ld/testsuite/ld-tic6x/discard-unwind.ld2
-rw-r--r--ld/testsuite/ld-tic6x/unwind.ld2
-rw-r--r--ld/testsuite/ld-x86-64/dwarf4.s346
-rw-r--r--ld/testsuite/ld-x86-64/dwarf5a.s400
-rw-r--r--ld/testsuite/ld-x86-64/dwarf5b.s345
-rw-r--r--ld/testsuite/ld-x86-64/pr32809.d71
-rw-r--r--ld/testsuite/ld-x86-64/sframe-ibt-plt-1.d3
-rw-r--r--ld/testsuite/ld-x86-64/sframe-plt-1.d3
-rw-r--r--ld/testsuite/ld-x86-64/sframe-pltgot-1.d3
-rw-r--r--ld/testsuite/ld-x86-64/sframe-pltgot-2.d3
-rw-r--r--ld/testsuite/ld-x86-64/sframe-reloc-1.d35
-rw-r--r--ld/testsuite/ld-x86-64/sframe-reloc-2a.s7
-rw-r--r--ld/testsuite/ld-x86-64/sframe-reloc-2b.s31
-rw-r--r--ld/testsuite/ld-x86-64/sframe-simple-1.d3
-rw-r--r--ld/testsuite/ld-x86-64/x86-64.exp23
-rw-r--r--ld/testsuite/lib/ld-lib.exp41
347 files changed, 7212 insertions, 3170 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 69dad59..52bbeda 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2025-07-13 Nick Clifton <nickc@redhat.com>
+
+ * 2.45 Branch point.
+
2025-02-08 Alexandre Oliva <oliva@adacore.com>
* testsuite/ld-sparc/got-def.s: New test.
diff --git a/ld/NEWS b/ld/NEWS
index 7b5e2e4..217c5b7 100644
--- a/ld/NEWS
+++ b/ld/NEWS
@@ -1,5 +1,21 @@
-*- text -*-
+Changes in 2.45:
+
+* On s390 64-bit (s390x), generate SFrame stack trace information (.sframe)
+ for the linker generated .plt section. Enabled by default. Can be disabled
+ using linker option --no-ld-generated-unwind-info.
+
+* All SFrame sections generated by the linker have the header flag
+ SFRAME_F_FDE_FUNC_START_PCREL set to indicate the new encoding for
+ sfde_func_start_address field in the SFrame section. Relocatable SFrame
+ links are now fixed.
+
+ ELF SFrame sections now have section type set to SHT_GNU_SFRAME.
+
+* On RISC-V, add new PLT formats, and GNU property merge rules for zicfiss and
+ zicfilp extensions.
+
* The linker's --stats option can take an optional argument which if used is
interpreted as a filename into which resource usage information should be
stored. As an alternative mechanism the LD_STATS environment variable can
@@ -12,12 +28,23 @@
* Remove the linker -taso option for Alpha target, as Linux/Alpha kernel
support for 32-bit pointers has been removed.
+* On avr, the default linker scripts now assert that the .progmem sections
+ don't extend past 0xffff since they are accessed by means of LPM.
+ For data in program memory that may be located past 0xffff, a .progmemx
+ section should be used.
+
* On s390, generate ".eh_frame" unwind information for the linker generated
.plt section. Enabled by default. Can be disabled using linker option
--no-ld-generated-unwind-info.
* On s390, add support for linker option --[no-]ld-generated-unwind-info.
+* On LoongArch, linker relaxation time complexity is no longer quadratic with
+ respect to relocation counts. Linking time of large software should be
+ improved.
+
+* On LoongArch, R_LARCH_32_PCREL records are now checked for overflow.
+
Changes in 2.44:
* Support for Nios II target has been removed, as this architecture has been
diff --git a/ld/config.in b/ld/config.in
index e10c9e7..3781224 100644
--- a/ld/config.in
+++ b/ld/config.in
@@ -234,9 +234,6 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
-/* The size of `void *', as computed by sizeof. */
-#undef SIZEOF_VOID_P
-
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
diff --git a/ld/configure b/ld/configure
index 3f745ac..592bf9d 100755
--- a/ld/configure
+++ b/ld/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ld 2.44.50.
+# Generated by GNU Autoconf 2.69 for ld 2.45.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='ld'
PACKAGE_TARNAME='ld'
-PACKAGE_VERSION='2.44.50'
-PACKAGE_STRING='ld 2.44.50'
+PACKAGE_VERSION='2.45.50'
+PACKAGE_STRING='ld 2.45.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -696,8 +696,6 @@ install_as_default
TARGET_SYSTEM_ROOT_DEFINE
TARGET_SYSTEM_ROOT
use_sysroot
-ENABLE_BFD_64_BIT_FALSE
-ENABLE_BFD_64_BIT_TRUE
LARGEFILE_CPPFLAGS
CXXCPP
OTOOL64
@@ -842,7 +840,6 @@ enable_largefile
enable_checking
with_lib_path
enable_targets
-enable_64_bit_bfd
with_sysroot
enable_gold
enable_got
@@ -1439,7 +1436,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures ld 2.44.50 to adapt to many kinds of systems.
+\`configure' configures ld 2.45.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1510,7 +1507,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ld 2.44.50:";;
+ short | recursive ) echo "Configuration of ld 2.45.50:";;
esac
cat <<\_ACEOF
@@ -1536,7 +1533,6 @@ Optional Features:
--disable-largefile omit support for large files
--enable-checking enable run-time checks
--enable-targets alternative target configurations
- --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
--enable-gold[=ARG] build gold [ARG={default,yes,no}]
--enable-got=<type> GOT handling scheme (target, single, negative,
multigot)
@@ -1694,7 +1690,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ld configure 2.44.50
+ld configure 2.45.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2177,189 +2173,6 @@ fi
} # ac_fn_cxx_try_link
-# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
-# --------------------------------------------
-# Tries to find the compile-time value of EXPR in a program that includes
-# INCLUDES, setting VAR accordingly. Returns whether the value could be
-# computed
-ac_fn_c_compute_int ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if test "$cross_compiling" = yes; then
- # Depending upon the size, compute the lo and hi bounds.
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_lo=0 ac_mid=0
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_hi=$ac_mid; break
-else
- as_fn_arith $ac_mid + 1 && ac_lo=$as_val
- if test $ac_lo -le $ac_mid; then
- ac_lo= ac_hi=
- break
- fi
- as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_hi=-1 ac_mid=-1
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_lo=$ac_mid; break
-else
- as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
- if test $ac_mid -le $ac_hi; then
- ac_lo= ac_hi=
- break
- fi
- as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- ac_lo= ac_hi=
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
- as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_hi=$ac_mid
-else
- as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in #((
-?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
-'') ac_retval=1 ;;
-esac
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-static long int longval () { return $2; }
-static unsigned long int ulongval () { return $2; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
- FILE *f = fopen ("conftest.val", "w");
- if (! f)
- return 1;
- if (($2) < 0)
- {
- long int i = longval ();
- if (i != ($2))
- return 1;
- fprintf (f, "%ld", i);
- }
- else
- {
- unsigned long int i = ulongval ();
- if (i != ($2))
- return 1;
- fprintf (f, "%lu", i);
- }
- /* Do not output a trailing newline, as this causes \r\n confusion
- on some platforms. */
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-else
- ac_retval=1
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-rm -f conftest.val
-
- fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_compute_int
-
# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
# ---------------------------------------------
# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
@@ -2409,7 +2222,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ld $as_me 2.44.50, which was
+It was created by ld $as_me 2.45.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3393,7 +3206,7 @@ fi
# Define the identity of the package.
PACKAGE='ld'
- VERSION='2.44.50'
+ VERSION='2.45.50'
cat >>confdefs.h <<_ACEOF
@@ -11688,7 +11501,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11691 "configure"
+#line 11504 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11794,7 +11607,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11797 "configure"
+#line 11610 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15462,70 +15275,40 @@ if test "${enable_targets+set}" = set; then :
esac
fi
-# Check whether --enable-64-bit-bfd was given.
-if test "${enable_64_bit_bfd+set}" = set; then :
- enableval=$enable_64_bit_bfd; case $enableval in #(
- yes|no) :
- ;; #(
- *) :
- as_fn_error $? "bad value ${enableval} for 64-bit-bfd option" "$LINENO" 5 ;; #(
- *) :
- ;;
-esac
-else
- enable_64_bit_bfd=no
-fi
-
-
-if test "x$enable_64_bit_bfd" = "xno"; then :
- # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
-$as_echo_n "checking size of void *... " >&6; }
-if ${ac_cv_sizeof_void_p+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then :
-
-else
- if test "$ac_cv_type_void_p" = yes; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (void *)
-See \`config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_void_p=0
- fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
-$as_echo "$ac_cv_sizeof_void_p" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
+# See whether 64-bit bfd lib has been enabled.
+OLD_CPPFLAGS=$CPPFLAGS
+# Put the old CPPFLAGS last, in case the user's CPPFLAGS point somewhere
+# with bfd, with -I/foo/include. We always want our bfd.
+CPPFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CPPFLAGS"
+# Note we cannot cache the result of this check because BFD64 may change
+# when a secondary target has been added or removed and we have no access
+# to this information here.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BFD is 64-bit" >&5
+$as_echo_n "checking whether BFD is 64-bit... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include "bfd.h"
+int
+main ()
+{
+#ifdef BFD64
+HAVE_BFD64
+#endif
+ ;
+ return 0;
+}
_ACEOF
-
-
- if test "x$ac_cv_sizeof_void_p" = "x8"; then :
- enable_64_bit_bfd=yes
-fi
-
-fi
-
- if test "x$enable_64_bit_bfd" = "xyes"; then
- ENABLE_BFD_64_BIT_TRUE=
- ENABLE_BFD_64_BIT_FALSE='#'
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "HAVE_BFD64" >/dev/null 2>&1; then :
+ have_64_bit_bfd=yes
else
- ENABLE_BFD_64_BIT_TRUE='#'
- ENABLE_BFD_64_BIT_FALSE=
+ have_64_bit_bfd=no
fi
+rm -f conftest*
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_64_bit_bfd" >&5
+$as_echo "$have_64_bit_bfd" >&6; }
+CPPFLAGS=$OLD_CPPFLAGS
# Check whether --with-sysroot was given.
@@ -18177,287 +17960,6 @@ fi
-
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
- ac_executable_p="test -x"
-else
- ac_executable_p="test -f"
-fi
-rm -f conf$$.file
-
-# Extract the first word of "msgfmt", so it can be a program name with args.
-set dummy msgfmt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MSGFMT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case "$MSGFMT" in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
- ;;
- *)
- ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$ac_save_IFS"
- test -z "$ac_dir" && ac_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
- if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext"
- break 2
- fi
- fi
- done
- done
- IFS="$ac_save_IFS"
- test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
- ;;
-esac
-fi
-MSGFMT="$ac_cv_path_MSGFMT"
-if test "$MSGFMT" != ":"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
-$as_echo "$MSGFMT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- # Extract the first word of "gmsgfmt", so it can be a program name with args.
-set dummy gmsgfmt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GMSGFMT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $GMSGFMT in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
- ;;
-esac
-fi
-GMSGFMT=$ac_cv_path_GMSGFMT
-if test -n "$GMSGFMT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
-$as_echo "$GMSGFMT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
- ac_executable_p="test -x"
-else
- ac_executable_p="test -f"
-fi
-rm -f conf$$.file
-
-# Extract the first word of "xgettext", so it can be a program name with args.
-set dummy xgettext; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_XGETTEXT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case "$XGETTEXT" in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
- ;;
- *)
- ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$ac_save_IFS"
- test -z "$ac_dir" && ac_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
- if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext"
- break 2
- fi
- fi
- done
- done
- IFS="$ac_save_IFS"
- test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
- ;;
-esac
-fi
-XGETTEXT="$ac_cv_path_XGETTEXT"
-if test "$XGETTEXT" != ":"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
-$as_echo "$XGETTEXT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- rm -f messages.po
-
-
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
- ac_executable_p="test -x"
-else
- ac_executable_p="test -f"
-fi
-rm -f conf$$.file
-
-# Extract the first word of "msgmerge", so it can be a program name with args.
-set dummy msgmerge; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MSGMERGE+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case "$MSGMERGE" in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
- ;;
- *)
- ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$ac_save_IFS"
- test -z "$ac_dir" && ac_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
- if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then
- ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext"
- break 2
- fi
- fi
- done
- done
- IFS="$ac_save_IFS"
- test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
- ;;
-esac
-fi
-MSGMERGE="$ac_cv_path_MSGMERGE"
-if test "$MSGMERGE" != ":"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
-$as_echo "$MSGMERGE" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- if test "$GMSGFMT" != ":"; then
- if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
- (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5
-$as_echo "found $GMSGFMT program is not GNU msgfmt; ignore it" >&6; }
- GMSGFMT=":"
- fi
- fi
-
- if test "$XGETTEXT" != ":"; then
- if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
- (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5
-$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; }
- XGETTEXT=":"
- fi
- rm -f messages.po
- fi
-
- ac_config_commands="$ac_config_commands default-2"
-
-
-
-
-
for ac_prog in 'bison -y' byacc
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -19306,11 +18808,11 @@ do
EMUL=$targ_emul
fi
- if test x${enable_64_bit_bfd} = xno; then
+ if test x${have_64_bit_bfd} = xno; then
. ${srcdir}/../bfd/config.bfd
fi
- if test x${enable_64_bit_bfd} = xyes; then
+ if test x${have_64_bit_bfd} = xyes; then
targ_extra_emuls="$targ_extra_emuls $targ64_extra_emuls"
targ_extra_libpath="$targ_extra_libpath $targ64_extra_libpath"
fi
@@ -19534,7 +19036,7 @@ _ACEOF
if test x${all_targets} = xtrue; then
- if test x${enable_64_bit_bfd} = xyes; then
+ if test x${have_64_bit_bfd} = xyes; then
EMULATION_OFILES='$(ALL_EMULATIONS) $(ALL_64_EMULATIONS)'
EMUL_EXTRA_OFILES='$(ALL_EMUL_EXTRA_OFILES) $(ALL_64_EMUL_EXTRA_OFILES)'
else
@@ -19737,10 +19239,6 @@ if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${ENABLE_BFD_64_BIT_TRUE}" && test -z "${ENABLE_BFD_64_BIT_FALSE}"; then
- as_fn_error $? "conditional \"ENABLE_BFD_64_BIT\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${ENABLE_LIBCTF_TRUE}" && test -z "${ENABLE_LIBCTF_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_LIBCTF\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -20150,7 +19648,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by ld $as_me 2.44.50, which was
+This file was extended by ld $as_me 2.45.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -20216,7 +19714,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-ld config.status 2.44.50
+ld config.status 2.45.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -20703,13 +20201,6 @@ fi
# Capture the value of LINGUAS because we need it to compute CATALOGS.
LINGUAS="${LINGUAS-%UNSET%}"
-# Capture the value of obsolete ALL_LINGUAS because we need it to compute
- # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
- # from automake.
- eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
- # Capture the value of LINGUAS because we need it to compute CATALOGS.
- LINGUAS="${LINGUAS-%UNSET%}"
-
_ACEOF
@@ -20724,7 +20215,6 @@ do
"libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;;
"default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
- "default-2") CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;;
"default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in:po/Make-in" ;;
@@ -22327,107 +21817,6 @@ _LT_EOF
;;
esac
done ;;
- "default-2":C)
- for ac_file in $CONFIG_FILES; do
- # Support "outfile[:infile[:infile...]]"
- case "$ac_file" in
- *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- esac
- # PO directories have a Makefile.in generated from Makefile.in.in.
- case "$ac_file" in */Makefile.in)
- # Adjust a relative srcdir.
- ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
- ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'`
- ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
- # In autoconf-2.13 it is called $ac_given_srcdir.
- # In autoconf-2.50 it is called $srcdir.
- test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
- case "$ac_given_srcdir" in
- .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
- /*) top_srcdir="$ac_given_srcdir" ;;
- *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
- if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
- rm -f "$ac_dir/POTFILES"
- test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
- cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
- POMAKEFILEDEPS="POTFILES.in"
- # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
- # on $ac_dir but don't depend on user-specified configuration
- # parameters.
- if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
- # The LINGUAS file contains the set of available languages.
- if test -n "$OBSOLETE_ALL_LINGUAS"; then
- test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.ac is obsolete" || echo "setting ALL_LINGUAS in configure.ac is obsolete"
- fi
- ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
- # Hide the ALL_LINGUAS assigment from automake.
- eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
- POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
- else
- # The set of available languages was given in configure.ac.
- eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
- fi
- case "$ac_given_srcdir" in
- .) srcdirpre= ;;
- *) srcdirpre='$(srcdir)/' ;;
- esac
- POFILES=
- GMOFILES=
- UPDATEPOFILES=
- DUMMYPOFILES=
- for lang in $ALL_LINGUAS; do
- POFILES="$POFILES $srcdirpre$lang.po"
- GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
- UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
- DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
- done
- # CATALOGS depends on both $ac_dir and the user's LINGUAS
- # environment variable.
- INST_LINGUAS=
- if test -n "$ALL_LINGUAS"; then
- for presentlang in $ALL_LINGUAS; do
- useit=no
- if test "%UNSET%" != "$LINGUAS"; then
- desiredlanguages="$LINGUAS"
- else
- desiredlanguages="$ALL_LINGUAS"
- fi
- for desiredlang in $desiredlanguages; do
- # Use the presentlang catalog if desiredlang is
- # a. equal to presentlang, or
- # b. a variant of presentlang (because in this case,
- # presentlang can be used as a fallback for messages
- # which are not translated in the desiredlang catalog).
- case "$desiredlang" in
- "$presentlang"*) useit=yes;;
- esac
- done
- if test $useit = yes; then
- INST_LINGUAS="$INST_LINGUAS $presentlang"
- fi
- done
- fi
- CATALOGS=
- if test -n "$INST_LINGUAS"; then
- for lang in $INST_LINGUAS; do
- CATALOGS="$CATALOGS $lang.gmo"
- done
- fi
- test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
- sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
- for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
- if test -f "$f"; then
- case "$f" in
- *.orig | *.bak | *~) ;;
- *) cat "$f" >> "$ac_dir/Makefile" ;;
- esac
- fi
- done
- fi
- ;;
- esac
- done ;;
"default":C)
case "$srcdir" in
.) srcdirpre= ;;
diff --git a/ld/configure.ac b/ld/configure.ac
index 1ee0c0c..b8241fe 100644
--- a/ld/configure.ac
+++ b/ld/configure.ac
@@ -389,7 +389,6 @@ fi
ALL_LINGUAS="bg da de es fi fr ga id it ja pt_BR ru sr sv tr uk vi zh_CN zh_TW"
ZW_GNU_GETTEXT_SISTER_DIR
-AM_PO_SUBDIRS
AC_EXEEXT
@@ -495,11 +494,11 @@ do
EMUL=$targ_emul
fi
- if test x${enable_64_bit_bfd} = xno; then
+ if test x${have_64_bit_bfd} = xno; then
. ${srcdir}/../bfd/config.bfd
fi
- if test x${enable_64_bit_bfd} = xyes; then
+ if test x${have_64_bit_bfd} = xyes; then
targ_extra_emuls="$targ_extra_emuls $targ64_extra_emuls"
targ_extra_libpath="$targ_extra_libpath $targ64_extra_libpath"
fi
@@ -686,7 +685,7 @@ AC_SUBST(TDIRS)
AM_SUBST_NOTMAKE(TDIRS)
if test x${all_targets} = xtrue; then
- if test x${enable_64_bit_bfd} = xyes; then
+ if test x${have_64_bit_bfd} = xyes; then
EMULATION_OFILES='$(ALL_EMULATIONS) $(ALL_64_EMULATIONS)'
EMUL_EXTRA_OFILES='$(ALL_EMUL_EXTRA_OFILES) $(ALL_64_EMUL_EXTRA_OFILES)'
else
diff --git a/ld/emulparams/elf32lriscv.sh b/ld/emulparams/elf32lriscv.sh
index da0d7cf..4246013 100644
--- a/ld/emulparams/elf32lriscv.sh
+++ b/ld/emulparams/elf32lriscv.sh
@@ -6,7 +6,7 @@ OUTPUT_FORMAT="elf32-littleriscv"
# On Linux, first look for 32 bit ILP32D target libraries in /lib/ilp32d as per
# the glibc ABI.
case "$target" in
- riscv32*-linux*)
+ riscv*-linux*)
case "$EMULATION_NAME" in
*32*)
LIBPATH_SUFFIX="32/ilp32d 32" ;;
diff --git a/ld/emulparams/elf32lriscv_ilp32.sh b/ld/emulparams/elf32lriscv_ilp32.sh
index 4935937..c773985 100644
--- a/ld/emulparams/elf32lriscv_ilp32.sh
+++ b/ld/emulparams/elf32lriscv_ilp32.sh
@@ -5,7 +5,7 @@ OUTPUT_FORMAT="elf32-littleriscv"
# On Linux, first look for 32 bit ILP32 target libraries in /lib/ilp32 as per
# the glibc ABI.
case "$target" in
- riscv32*-linux*)
+ riscv*-linux*)
case "$EMULATION_NAME" in
*32*)
LIBPATH_SUFFIX="32/ilp32 32" ;;
diff --git a/ld/emulparams/elf32lriscv_ilp32f.sh b/ld/emulparams/elf32lriscv_ilp32f.sh
index c684bf8..a2f0c2a 100644
--- a/ld/emulparams/elf32lriscv_ilp32f.sh
+++ b/ld/emulparams/elf32lriscv_ilp32f.sh
@@ -5,7 +5,7 @@ OUTPUT_FORMAT="elf32-littleriscv"
# On Linux, first look for 32 bit ILP32F target libraries in /lib/ilp32f as per
# the glibc ABI.
case "$target" in
- riscv32*-linux*)
+ riscv*-linux*)
case "$EMULATION_NAME" in
*32*)
LIBPATH_SUFFIX="32/ilp32f 32" ;;
diff --git a/ld/emulparams/elf64lriscv.sh b/ld/emulparams/elf64lriscv.sh
index e07a064..7958052 100644
--- a/ld/emulparams/elf64lriscv.sh
+++ b/ld/emulparams/elf64lriscv.sh
@@ -6,7 +6,7 @@ OUTPUT_FORMAT="elf64-littleriscv"
# On Linux, first look for 64 bit LP64D target libraries in /lib64/lp64d as per
# the glibc ABI, and then /lib64 for backward compatility.
case "$target" in
- riscv64*-linux*)
+ riscv*-linux*)
case "$EMULATION_NAME" in
*64*)
LIBPATH_SUFFIX="64/lp64d 64";;
diff --git a/ld/emulparams/elf64lriscv_lp64.sh b/ld/emulparams/elf64lriscv_lp64.sh
index b1bb252..7c7feca 100644
--- a/ld/emulparams/elf64lriscv_lp64.sh
+++ b/ld/emulparams/elf64lriscv_lp64.sh
@@ -5,7 +5,7 @@ OUTPUT_FORMAT="elf64-littleriscv"
# On Linux, first look for 64 bit LP64 target libraries in /lib64/lp64 as per
# the glibc ABI, and then /lib64 for backward compatility.
case "$target" in
- riscv64*-linux*)
+ riscv*-linux*)
case "$EMULATION_NAME" in
*64*)
LIBPATH_SUFFIX="64/lp64 64";;
diff --git a/ld/emulparams/elf64lriscv_lp64f.sh b/ld/emulparams/elf64lriscv_lp64f.sh
index 005f191..e036c2f 100644
--- a/ld/emulparams/elf64lriscv_lp64f.sh
+++ b/ld/emulparams/elf64lriscv_lp64f.sh
@@ -5,7 +5,7 @@ OUTPUT_FORMAT="elf64-littleriscv"
# On Linux, first look for 64 bit LP64F target libraries in /lib64/lp64f as per
# the glibc ABI, and then /lib64 for backward compatility.
case "$target" in
- riscv64*-linux*)
+ riscv*-linux*)
case "$EMULATION_NAME" in
*64*)
LIBPATH_SUFFIX="64/lp64f 64";;
diff --git a/ld/emultempl/aarch64elf.em b/ld/emultempl/aarch64elf.em
index afa91af..91d58d8 100644
--- a/ld/emultempl/aarch64elf.em
+++ b/ld/emultempl/aarch64elf.em
@@ -42,6 +42,11 @@ static aarch64_protection_opts sw_protections = {
.gcs_report_dynamic = MARKING_UNSET,
};
+static aarch64_memtag_opts memtag_opts = {
+ .memtag_mode = AARCH64_MEMTAG_MODE_NONE,
+ .memtag_stack = 0,
+};
+
#define COMPILE_TIME_STRLEN(s) \
(sizeof(s) - 1)
@@ -335,7 +340,8 @@ aarch64_elf_create_output_section_statements (void)
pic_veneer,
fix_erratum_835769, fix_erratum_843419,
no_apply_dynamic_relocs,
- &sw_protections);
+ &sw_protections,
+ &memtag_opts);
stub_file = lang_add_input_file ("linker stubs",
lang_input_file_is_fake_enum,
@@ -440,6 +446,31 @@ aarch64_parse_gcs_option (const char *_optarg)
#undef GCS
#undef GCS_LEN
}
+
+static bool
+aarch64_parse_memtag_mode_option (const char *_optarg)
+{
+ #define MEMTAG_MODE "memtag-mode"
+ #define MEMTAG_MODE_LEN COMPILE_TIME_STRLEN (MEMTAG_MODE)
+
+ if (strncmp (_optarg, MEMTAG_MODE, MEMTAG_MODE_LEN) != 0)
+ return false;
+
+ if (strcmp (_optarg + MEMTAG_MODE_LEN, "=none") == 0)
+ memtag_opts.memtag_mode = AARCH64_MEMTAG_MODE_NONE;
+ else if (strcmp (_optarg + MEMTAG_MODE_LEN, "=sync") == 0)
+ memtag_opts.memtag_mode = AARCH64_MEMTAG_MODE_SYNC;
+ else if (strcmp (_optarg + MEMTAG_MODE_LEN, "=async") == 0)
+ memtag_opts.memtag_mode = AARCH64_MEMTAG_MODE_ASYNC;
+ else
+ einfo (_("%X%P: error: unrecognized value '-z %s'\n"), _optarg);
+
+ return true;
+
+ #undef MEMTAG_MODE
+ #undef MEMTAG_MODE_LEN
+}
+
EOF
# Define some shell vars to insert bits of code into the standard elf
@@ -518,6 +549,17 @@ PARSE_AND_LIST_OPTIONS='
and output have GCS marking.\n\
error: Emit error when the input objects are missing GCS markings\n\
and output have GCS marking.\n"));
+ fprintf (file, _("\
+ -z memtag-mode[=none|sync|async] Select Memory Tagging Extension mode of operation to use.\n\
+ Emits a DT_AARCH64_MEMTAG_MODE dynamic tag for the binary.\n\
+ This entry is only valid on the main executable. It is\n\
+ ignored in the dynamically loaded objects by the loader.\n\
+ none (default): Disable MTE checking of memory reads and writes.\n\
+ sync: Enable precise exceptions when mismatched address and\n\
+ allocation tags detected on load/store operations.\n\
+ async: Enable imprecise exceptions.\n"));
+ fprintf (file, _("\
+ -z memtag-stack Mark program stack with MTE protection.\n"));
'
PARSE_AND_LIST_ARGS_CASE_Z_AARCH64='
@@ -533,6 +575,10 @@ PARSE_AND_LIST_ARGS_CASE_Z_AARCH64='
{}
else if (aarch64_parse_gcs_option (optarg))
{}
+ else if (aarch64_parse_memtag_mode_option (optarg))
+ {}
+ else if (strcmp (optarg, "memtag-stack") == 0)
+ memtag_opts.memtag_stack = 1;
'
PARSE_AND_LIST_ARGS_CASE_Z="$PARSE_AND_LIST_ARGS_CASE_Z $PARSE_AND_LIST_ARGS_CASE_Z_AARCH64"
diff --git a/ld/emultempl/emulation.em b/ld/emultempl/emulation.em
index 7fe821a..8ff71d6 100644
--- a/ld/emultempl/emulation.em
+++ b/ld/emultempl/emulation.em
@@ -36,6 +36,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
${LDEMUL_EMIT_CTF_EARLY-NULL},
${LDEMUL_ACQUIRE_STRINGS_FOR_CTF-NULL},
${LDEMUL_NEW_DYNSYM_FOR_CTF-NULL},
- ${LDEMUL_PRINT_SYMBOL-NULL}
+ ${LDEMUL_PRINT_SYMBOL-NULL},
+ ${LDEMUL_FIND_START_SYMBOL-NULL}
};
EOF
diff --git a/ld/emultempl/kvxelf.em b/ld/emultempl/kvxelf.em
index 186f148..c9a83f7 100644
--- a/ld/emultempl/kvxelf.em
+++ b/ld/emultempl/kvxelf.em
@@ -173,7 +173,7 @@ elf${ELFSIZE}_kvx_add_stub_section (const char *stub_sec_name,
return stub_sec;
err_ret:
- einfo ("%X%P: can not make stub section: %E\n");
+ einfo (_("%X%P: can not make stub section: %E\n"));
return NULL;
}
@@ -216,7 +216,7 @@ gld${EMULATION_NAME}_after_allocation (void)
ret = bfd_elf_discard_info (link_info.output_bfd, & link_info);
if (ret < 0)
{
- einfo ("%X%P: .eh_frame/.stab edit: %E\n");
+ einfo (_("%X%P: .eh_frame/.stab edit: %E\n"));
return;
}
else if (ret > 0)
@@ -232,7 +232,7 @@ gld${EMULATION_NAME}_after_allocation (void)
{
if (ret < 0)
{
- einfo ("%X%P: could not compute sections lists for stub generation: %E\n");
+ einfo (_("%X%P: could not compute sections lists for stub generation: %E\n"));
return;
}
@@ -246,7 +246,7 @@ gld${EMULATION_NAME}_after_allocation (void)
& elf${ELFSIZE}_kvx_add_stub_section,
& gldkvx_layout_sections_again))
{
- einfo ("%X%P: cannot size stub section: %E\n");
+ einfo (_("%X%P: cannot size stub section: %E\n"));
return;
}
}
@@ -266,7 +266,7 @@ gld${EMULATION_NAME}_finish (void)
&& stub_file->the_bfd->sections != NULL)
{
if (! elf${ELFSIZE}_kvx_build_stubs (& link_info))
- einfo ("%X%P: can not build stubs: %E\n");
+ einfo (_("%X%P: can not build stubs: %E\n"));
}
}
@@ -291,7 +291,7 @@ kvx_elf_create_output_section_statements (void)
bfd_get_arch (link_info.output_bfd),
bfd_get_mach (link_info.output_bfd)))
{
- einfo ("%X%P: can not create BFD %E\n");
+ fatal (_("%P: can not create BFD %E\n"));
return;
}
@@ -299,7 +299,7 @@ kvx_elf_create_output_section_statements (void)
ldlang_add_file (stub_file);
if (!kvx_elf${ELFSIZE}_init_stub_bfd (&link_info, stub_file->the_bfd))
- einfo ("%P: can not init BFD: %E\n");
+ fatal (_("%P: can not init BFD: %E\n"));
}
diff --git a/ld/emultempl/loongarchelf.em b/ld/emultempl/loongarchelf.em
index 928fd83..517ece1 100644
--- a/ld/emultempl/loongarchelf.em
+++ b/ld/emultempl/loongarchelf.em
@@ -58,7 +58,7 @@ larch_elf_before_allocation (void)
ENABLE_RELAXATION;
}
- link_info.relax_pass = 2;
+ link_info.relax_pass = 3;
}
static void
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 9a2b576..b522687 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -7,11 +7,11 @@ else
fi
case ${target} in
- *-*-cygwin*)
- cygwin_behavior=1
+ *-*-mingw*)
+ mingw_behavior=1
;;
*)
- cygwin_behavior=0;
+ mingw_behavior=0
;;
esac
@@ -126,9 +126,10 @@ fragment <<EOF
#define DEFAULT_PSEUDO_RELOC_VERSION 1
#endif
-#define DEFAULT_DLL_CHARACTERISTICS (${cygwin_behavior} ? 0 : \
- IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE \
- | IMAGE_DLL_CHARACTERISTICS_NX_COMPAT)
+#define DEFAULT_DLL_CHARACTERISTICS (${mingw_behavior} \
+ ? IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE \
+ | IMAGE_DLL_CHARACTERISTICS_NX_COMPAT \
+ : 0)
#if defined(TARGET_IS_i386pe) || ! defined(DLL_SUPPORT)
#define PE_DEF_SUBSYSTEM IMAGE_SUBSYSTEM_WINDOWS_CUI
@@ -2447,6 +2448,55 @@ gld${EMULATION_NAME}_find_potential_libraries
{
return ldfile_open_file_search (name, entry, "", ".lib");
}
+
+static struct bfd_link_hash_entry *
+gld${EMULATION_NAME}_find_alt_start_symbol
+ (struct bfd_sym_chain *entry)
+{
+#if defined (TARGET_IS_i386pe)
+ bool entry_has_stdcall_suffix;
+#endif
+ struct bfd_link_hash_entry *h;
+ size_t entry_name_len;
+ char *symbol_name;
+ const char *prefix;
+ const char *suffix;
+
+ entry_name_len = strlen (entry->name);
+
+ if (is_underscoring ())
+ prefix = "_";
+ else
+ prefix = "";
+
+#if defined (TARGET_IS_i386pe)
+ if ((entry_name_len > 2 && entry->name[entry_name_len-2] == '@' && ISDIGIT (entry->name[entry_name_len-1]))
+ || (entry_name_len > 3 && entry->name[entry_name_len-3] == '@' && ISDIGIT (entry->name[entry_name_len-2]) && ISDIGIT (entry->name[entry_name_len-1]))
+ || (entry_name_len > 4 && entry->name[entry_name_len-4] == '@' && ISDIGIT (entry->name[entry_name_len-3]) && ISDIGIT (entry->name[entry_name_len-2]) && ISDIGIT (entry->name[entry_name_len-1])))
+ entry_has_stdcall_suffix = true;
+ else
+ entry_has_stdcall_suffix = false;
+
+ if (!entry_has_stdcall_suffix && (bfd_link_dll (&link_info) || dll))
+ suffix = "@12";
+ else if (!entry_has_stdcall_suffix && pe_subsystem == 1 /* NT kernel driver */)
+ suffix = "@8";
+ else
+#endif
+ suffix = "";
+
+ if (*prefix == '\0' && *suffix == '\0')
+ return NULL;
+
+ symbol_name = xmalloc (entry_name_len + 5);
+ strcpy (symbol_name, prefix);
+ strcat (symbol_name, entry->name);
+ strcat (symbol_name, suffix);
+
+ h = bfd_link_hash_lookup (link_info.hash, symbol_name, false, false, true);
+ free (symbol_name);
+ return h;
+}
static char *
gld${EMULATION_NAME}_get_script (int *isfile)
@@ -2525,5 +2575,6 @@ LDEMUL_UNRECOGNIZED_FILE=gld${EMULATION_NAME}_unrecognized_file
LDEMUL_LIST_OPTIONS=gld${EMULATION_NAME}_list_options
LDEMUL_RECOGNIZED_FILE=gld${EMULATION_NAME}_recognized_file
LDEMUL_FIND_POTENTIAL_LIBRARIES=gld${EMULATION_NAME}_find_potential_libraries
+LDEMUL_FIND_START_SYMBOL=gld${EMULATION_NAME}_find_alt_start_symbol
source_em ${srcdir}/emultempl/emulation.em
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
index 440c0bf..60a8339 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
@@ -9,11 +9,15 @@ fi
case ${target} in
*-*-cygwin*)
move_default_addr_high=1
- cygwin_behavior=1
+ mingw_behavior=0
+ ;;
+ *-*-mingw*)
+ move_default_addr_high=0
+ mingw_behavior=1
;;
*)
- move_default_addr_high=0;
- cygwin_behavior=0;
+ move_default_addr_high=0
+ mingw_behavior=0
;;
esac
@@ -126,10 +130,11 @@ fragment <<EOF
#define DLL_SUPPORT
#endif
-#define DEFAULT_DLL_CHARACTERISTICS (${cygwin_behavior} ? 0 : \
- IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE \
- | IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA \
- | IMAGE_DLL_CHARACTERISTICS_NX_COMPAT)
+#define DEFAULT_DLL_CHARACTERISTICS (${mingw_behavior} \
+ ? IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE \
+ | IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA \
+ | IMAGE_DLL_CHARACTERISTICS_NX_COMPAT \
+ : 0)
#if defined(TARGET_IS_i386pep) || defined(COFF_WITH_peAArch64) || ! defined(DLL_SUPPORT)
#define PE_DEF_SUBSYSTEM IMAGE_SUBSYSTEM_WINDOWS_CUI
diff --git a/ld/ld.texi b/ld/ld.texi
index 29bd0e1..413335a 100644
--- a/ld/ld.texi
+++ b/ld/ld.texi
@@ -531,7 +531,9 @@ named @var{entry}, the linker will try to parse @var{entry} as a number,
and use that as the entry address (the number will be interpreted in
base 10; you may use a leading @samp{0x} for base 16, or a leading
@samp{0} for base 8). @xref{Entry Point}, for a discussion of defaults
-and other ways of specifying the entry point.
+and other ways of specifying the entry point. For i386 PE, @var{entry}
+can be also the original function name (without the leading underscore
+and/or the trailing stdcall @samp{@@number} when applicable).
@kindex --exclude-libs
@item --exclude-libs @var{lib},@var{lib},...
@@ -1022,7 +1024,7 @@ Write a @dfn{dependency file} to @var{depfile}. This file contains a rule
suitable for @code{make} describing the output file and all the input files
that were read to produce it. The output is similar to the compiler's
output with @samp{-M -MP} (@pxref{Preprocessor Options,, Options
-Controlling the Preprocessor, gcc.info, Using the GNU Compiler
+Controlling the Preprocessor, gcc, Using the GNU Compiler
Collection}). Note that there is no option like the compiler's @samp{-MM},
to exclude ``system files'' (which is not a well-specified concept in the
linker, unlike ``system headers'' in the compiler). So the output from
@@ -3781,7 +3783,8 @@ of the PE file header:
@item --high-entropy-va
@itemx --disable-high-entropy-va
Image is compatible with 64-bit address space layout randomization
-(ASLR). This option is enabled by default for 64-bit PE images.
+(ASLR). This option is enabled by default for 64-bit PE images in
+MinGW targets.
This option also implies @option{--dynamicbase} and
@option{--enable-reloc-section}.
@@ -3791,9 +3794,9 @@ This option also implies @option{--dynamicbase} and
@itemx --disable-dynamicbase
The image base address may be relocated using address space layout
randomization (ASLR). This feature was introduced with MS Windows
-Vista for i386 PE targets. This option is enabled by default but
-can be disabled via the @option{--disable-dynamicbase} option.
-This option also implies @option{--enable-reloc-section}.
+Vista for i386 PE targets. This option is enabled by default for MinGW
+targets but can be disabled via the @option{--disable-dynamicbase}
+option. This option also implies @option{--enable-reloc-section}.
@kindex --forceinteg
@item --forceinteg
@@ -3806,7 +3809,7 @@ default.
@item --disable-nxcompat
The image is compatible with the Data Execution Prevention.
This feature was introduced with MS Windows XP SP2 for i386 PE
-targets. The option is enabled by default.
+targets. The option is enabled by default for MinGW targets.
@kindex --no-isolation
@item --no-isolation
@@ -8371,6 +8374,21 @@ GCS markings.
If issues are found, a maximum of 20 messages will be emitted, and then a summary
with the total number of issues will be displayed at the end.
+@kindex -z memtag-mode=@var{mode}
+@cindex MTE modes of operation
+The @samp{-z memtag-mode=mode} specifies the MTE mode of operation.
+The value of @samp{mode} can be one of @samp{none}, @samp{sync} or
+@samp{async}. The specified modes determine the value of the
+@samp{DT_AARCH64_MEMTAG_MODE} dynamic tag. The @samp{sync} mode
+implies precise exceptions, with the runtime providing the exact
+instruction where the fault occurred, and the exact faulting address.
+The @samp{async} mode implies imprecise exceptions.
+
+@kindex -z memtag-stack
+@cindex Mark program stack for MTE protection
+The @samp{-z memtag-stack} specifies that output object uses MTE
+instructions for stack memory usage.
+
@ifclear GENERIC
@lowersections
@end ifclear
@@ -9683,7 +9701,7 @@ format can be supported simply by creating a new BFD back end and adding
it to the library. To conserve runtime memory, however, the linker and
associated tools are usually configured to support only a subset of the
object file formats available. You can use @code{objdump -i}
-(@pxref{objdump,,objdump,binutils.info,The GNU Binary Utilities}) to
+(@pxref{objdump,,objdump,binutils,The GNU Binary Utilities}) to
list all the formats available for your configuration.
@cindex BFD requirements
diff --git a/ld/ldemul.c b/ld/ldemul.c
index dce0d38..35f91a2 100644
--- a/ld/ldemul.c
+++ b/ld/ldemul.c
@@ -35,6 +35,14 @@
static ld_emulation_xfer_type *ld_emulation;
+struct bfd_link_hash_entry *
+ldemul_find_alt_start_symbol (struct bfd_sym_chain *entry)
+{
+ if (ld_emulation->find_alt_start_symbol)
+ return ld_emulation->find_alt_start_symbol (entry);
+ return NULL;
+}
+
void
ldemul_hll (char *name)
{
diff --git a/ld/ldemul.h b/ld/ldemul.h
index aa014ae..c58d4c2 100644
--- a/ld/ldemul.h
+++ b/ld/ldemul.h
@@ -115,9 +115,10 @@ extern void ldemul_acquire_strings_for_ctf
(struct ctf_dict *, struct elf_strtab_hash *);
extern void ldemul_new_dynsym_for_ctf
(struct ctf_dict *, int symidx, struct elf_internal_sym *);
-
extern bool ldemul_print_symbol
(struct bfd_link_hash_entry *hash_entry, void *ptr);
+extern struct bfd_link_hash_entry * ldemul_find_alt_start_symbol
+ (struct bfd_sym_chain *);
typedef struct ld_emulation_xfer_struct {
/* Run before parsing the command line and script file.
@@ -259,6 +260,11 @@ typedef struct ld_emulation_xfer_struct {
bool (*print_symbol)
(struct bfd_link_hash_entry *hash_entry, void *ptr);
+ /* Called when ENTRY->name cannot be found by a direct lookup in INFO->hash.
+ Allows emulations to try variations of the name. */
+ struct bfd_link_hash_entry * (*find_alt_start_symbol)
+ (struct bfd_sym_chain *entry);
+
} ld_emulation_xfer_type;
typedef enum {
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 0bb9e17..d4b4ef2 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -322,7 +322,7 @@ spec_match (const struct wildcard_spec *spec, const char *name)
}
static char *
-ldirname (const char *name)
+stat_ldirname (const char *name)
{
const char *base = lbasename (name);
@@ -1266,7 +1266,7 @@ new_afile (const char *name,
/* If name is a relative path, search the directory of the current linker
script first. */
if (from_filename && !IS_ABSOLUTE_PATH (name))
- p->extra_search_path = ldirname (from_filename);
+ p->extra_search_path = stat_ldirname (from_filename);
p->flags.real = true;
p->flags.search_dirs = true;
break;
@@ -2486,11 +2486,18 @@ lang_map (void)
}
static bool
+is_defined (struct bfd_link_hash_entry *h)
+{
+ return h != NULL
+ && (h->type == bfd_link_hash_defined
+ || h->type == bfd_link_hash_defweak);
+}
+
+static bool
sort_def_symbol (struct bfd_link_hash_entry *hash_entry,
void *info ATTRIBUTE_UNUSED)
{
- if ((hash_entry->type == bfd_link_hash_defined
- || hash_entry->type == bfd_link_hash_defweak)
+ if (is_defined (hash_entry)
&& hash_entry->u.def.section->owner != link_info.output_bfd
&& hash_entry->u.def.section->owner != NULL)
{
@@ -2867,7 +2874,7 @@ lang_add_section (lang_statement_list_type *ptr,
/* This must happen after flags have been updated. The output
section may have been created before we saw its first input
section, eg. for a data statement. */
- bfd_init_private_section_data (section->owner, section,
+ bfd_copy_private_section_data (section->owner, section,
link_info.output_bfd,
output->bfd_section,
&link_info);
@@ -4184,9 +4191,7 @@ ldlang_check_require_defined_symbols (void)
h = bfd_link_hash_lookup (link_info.hash, ptr->name,
false, false, true);
- if (h == NULL
- || (h->type != bfd_link_hash_defined
- && h->type != bfd_link_hash_defweak))
+ if (! is_defined (h))
einfo(_("%X%P: required symbol `%s' not defined\n"), ptr->name);
}
}
@@ -4892,9 +4897,7 @@ print_assignment (lang_assignment_statement_type *assignment,
h = bfd_link_hash_lookup (link_info.hash, assignment->exp->assign.dst,
false, false, true);
- if (h != NULL
- && (h->type == bfd_link_hash_defined
- || h->type == bfd_link_hash_defweak))
+ if (is_defined (h))
{
value = h->u.def.value;
value += h->u.def.section->output_section->vma;
@@ -4939,8 +4942,7 @@ print_one_symbol (struct bfd_link_hash_entry *hash_entry, void *ptr)
{
asection *sec = (asection *) ptr;
- if ((hash_entry->type == bfd_link_hash_defined
- || hash_entry->type == bfd_link_hash_defweak)
+ if (is_defined (hash_entry)
&& sec == hash_entry->u.def.section)
{
print_spaces (SECTION_NAME_MAP_LENGTH);
@@ -5062,7 +5064,8 @@ print_input_section (asection *i, bool is_discarded)
}
print_spaces (SECTION_NAME_MAP_LENGTH - len);
- if (i->output_section != NULL
+ if ((i->flags & SEC_EXCLUDE) == 0
+ && i->output_section != NULL
&& i->output_section->owner == link_info.output_bfd)
addr = i->output_section->vma + i->output_offset;
else
@@ -7233,9 +7236,7 @@ lang_end (void)
{
h = bfd_link_hash_lookup (link_info.hash, sym->name,
false, false, false);
- if (h != NULL
- && (h->type == bfd_link_hash_defined
- || h->type == bfd_link_hash_defweak)
+ if (is_defined (h)
&& !bfd_is_const_section (h->u.def.section))
break;
}
@@ -7254,9 +7255,11 @@ lang_end (void)
h = bfd_link_hash_lookup (link_info.hash, entry_symbol.name,
false, false, true);
- if (h != NULL
- && (h->type == bfd_link_hash_defined
- || h->type == bfd_link_hash_defweak)
+
+ if (! is_defined (h) || h->u.def.section->output_section == NULL)
+ h = ldemul_find_alt_start_symbol (&entry_symbol);
+
+ if (is_defined (h)
&& h->u.def.section->output_section != NULL)
{
bfd_vma val;
@@ -10491,7 +10494,7 @@ setup_section (bfd *ibfd, sec_ptr isection, void *p)
/* Allow the BFD backend to copy any private data it understands
from the input section to the output section. */
- if (!bfd_copy_private_section_data (ibfd, isection, obfd, osection))
+ if (!bfd_copy_private_section_data (ibfd, isection, obfd, osection, NULL))
{
err = _("failed to copy private data");
goto loser;
@@ -10884,6 +10887,9 @@ cmdline_emit_object_only_section (void)
lang_init (true);
ldexp_init (true);
+ /* Allow lang_add_section to add new sections. */
+ map_head_is_link_order = false;
+
/* Set up the object-only output. */
lang_final ();
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 91237a4..67c60c3 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -423,8 +423,8 @@ ld_stop_phase (ld_phase phase)
if (pd->begin.ru_maxrss < usage.ru_maxrss)
pd->use.ru_maxrss += usage.ru_maxrss - pd->begin.ru_maxrss;
-#endif
}
+#endif
}
static void
@@ -563,8 +563,8 @@ report_phases (FILE * file, time_t * start, char ** argv)
COLUMN_ENTRY (pd->duration, "ld", 1);
#if defined (HAVE_GETRUSAGE)
COLUMN_ENTRY (pd->use.ru_maxrss, "ld", 2);
- COLUMN_ENTRY (pd->use.ru_utime.tv_sec, "ld", 3);
- COLUMN_ENTRY (pd->use.ru_stime.tv_sec, "ld", 4);
+ COLUMN_ENTRY ((int64_t) pd->use.ru_utime.tv_sec, PRId64, 3);
+ COLUMN_ENTRY ((int64_t) pd->use.ru_stime.tv_sec, PRId64, 4);
#endif
fprintf (file, "\n");
}
diff --git a/ld/ldmisc.c b/ld/ldmisc.c
index 9ee0781..3f305fa 100644
--- a/ld/ldmisc.c
+++ b/ld/ldmisc.c
@@ -42,7 +42,6 @@
%C clever filename:linenumber with function
%D like %C, but no function name
%E current bfd error or errno
- %F error is fatal
%G like %D, but only function name
%H like %C but in addition emit section+offset
%P print program name
@@ -70,7 +69,6 @@
void
vfinfo (FILE *fp, const char *fmt, va_list ap, bool is_warning)
{
- bool isfatal = false;
const char *scan;
int arg_type;
unsigned int arg_count = 0;
@@ -280,11 +278,6 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bool is_warning)
}
break;
- case 'F':
- /* Error is fatal. */
- isfatal = true;
- break;
-
case 'P':
/* Print program name. */
fprintf (fp, "%s", program_name);
@@ -586,9 +579,6 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bool is_warning)
if (is_warning && config.fatal_warnings)
config.make_executable = false;
-
- if (isfatal)
- xexit (1);
}
/* Format info message and print on stdout. */
diff --git a/ld/ldwrite.c b/ld/ldwrite.c
index 7613def..974245f 100644
--- a/ld/ldwrite.c
+++ b/ld/ldwrite.c
@@ -366,7 +366,7 @@ clone_section (bfd *abfd, asection *s, const char *name, int *count)
n->reloc_count = 0;
n->alignment_power = s->alignment_power;
- bfd_copy_private_section_data (abfd, s, abfd, n);
+ bfd_copy_private_section_data (abfd, s, abfd, n, NULL);
return n;
}
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index 4a2ea03..210b77e 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -1620,10 +1620,11 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info)
printf ("rel: %s\n", sym->name);
}
if (!relocs[i]->howto->pc_relative
- && relocs[i]->howto->type != pe_details->imagebase_reloc
- && (relocs[i]->howto->type < pe_details->secrel_reloc_lo
- || relocs[i]->howto->type > pe_details->secrel_reloc_hi)
- && relocs[i]->howto->type != pe_details->section_reloc)
+ && (bfd_get_flavour (b) != bfd_target_coff_flavour
+ || (relocs[i]->howto->type != pe_details->imagebase_reloc
+ && (relocs[i]->howto->type < pe_details->secrel_reloc_lo
+ || relocs[i]->howto->type > pe_details->secrel_reloc_hi)
+ && relocs[i]->howto->type != pe_details->section_reloc)))
{
struct bfd_symbol *sym = *relocs[i]->sym_ptr_ptr;
const struct bfd_link_hash_entry *blhe
diff --git a/ld/po/ld.pot b/ld/po/ld.pot
index 63447a1..47c96be 100644
--- a/ld/po/ld.pot
+++ b/ld/po/ld.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2025-01-19 12:39+0000\n"
+"POT-Creation-Date: 2025-07-13 08:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -55,16 +55,16 @@ msgstr ""
msgid "%P: symbol `%pT' missing from main hash table\n"
msgstr ""
-#: ldcref.c:517 ldcref.c:628 ldmain.c:1357 ldmisc.c:327 pe-dll.c:780
-#: pe-dll.c:1350 pe-dll.c:1471 pe-dll.c:1573 eaarch64pe.c:1580 earm64pe.c:1580
+#: ldcref.c:517 ldcref.c:628 ldmain.c:1733 ldmisc.c:320 pe-dll.c:783
+#: pe-dll.c:1353 pe-dll.c:1474 pe-dll.c:1576 eaarch64pe.c:1580 earm64pe.c:1580
#: earm_wince_pe.c:1583 earm_wince_pe.c:1770 earmpe.c:1583 earmpe.c:1770
#: ei386pe.c:1583 ei386pe.c:1770 ei386pe_posix.c:1583 ei386pe_posix.c:1770
#: ei386pep.c:1580 emcorepe.c:1583 emcorepe.c:1770 eshpe.c:1583 eshpe.c:1770
-msgid "%F%P: %pB: could not read symbols: %E\n"
+msgid "%P: %pB: could not read symbols: %E\n"
msgstr ""
-#: ldcref.c:690 ldcref.c:697 ldmain.c:1419 ldmain.c:1426
-msgid "%F%P: %pB: could not read relocs: %E\n"
+#: ldcref.c:690 ldcref.c:697 ldmain.c:1795 ldmain.c:1802
+msgid "%P: %pB: could not read relocs: %E\n"
msgstr ""
#. We found a reloc for the symbol. The symbol is defined
@@ -103,14 +103,14 @@ msgid ""
msgstr ""
#: ldelf.c:98
-msgid "%F%P: common page size (0x%v) > maximum page size (0x%v)\n"
+msgid "%P: common page size (0x%v) > maximum page size (0x%v)\n"
msgstr ""
#: ldelf.c:124
-msgid "%F%P: %pB: --just-symbols may not be used on DSO\n"
+msgid "%P: %pB: --just-symbols may not be used on DSO\n"
msgstr ""
-#: ldelf.c:226
+#: ldelf.c:226 ldelf.c:372
msgid "%P: %pB: bfd_stat failed: %E\n"
msgstr ""
@@ -124,11 +124,7 @@ msgid "attempt to open %s failed\n"
msgstr ""
#: ldelf.c:324
-msgid "%F%P: %pB: bfd_elf_get_bfd_needed_list failed: %E\n"
-msgstr ""
-
-#: ldelf.c:372
-msgid "%F%P: %pB: bfd_stat failed: %E\n"
+msgid "%P: %pB: bfd_elf_get_bfd_needed_list failed: %E\n"
msgstr ""
#: ldelf.c:378
@@ -136,8 +132,8 @@ msgstr ""
msgid "found %s at %s\n"
msgstr ""
-#: ldelf.c:411 ldlang.c:3177 ldlang.c:3191 ldlang.c:10994
-msgid "%F%P: %pB: error adding symbols: %E\n"
+#: ldelf.c:411 ldlang.c:3228 ldlang.c:3242 ldlang.c:11057
+msgid "%P: %pB: error adding symbols: %E\n"
msgstr ""
#. We only issue an "unrecognised" message in verbose mode
@@ -159,145 +155,143 @@ msgid ""
msgstr ""
#: ldelf.c:1209
-msgid "%F%P: failed to add DT_NEEDED dynamic tag\n"
+msgid "%P: failed to add DT_NEEDED dynamic tag\n"
msgstr ""
-#: ldelf.c:1261
-msgid "%F%P: %s: can't open for writing: %E\n"
+#: ldelf.c:1260
+msgid "%P: %s: can't open for writing: %E\n"
msgstr ""
-#: ldelf.c:1317
-msgid "%F%P: cannot use executable file '%pB' as input to a link\n"
+#: ldelf.c:1315
+msgid "%P: cannot use executable file '%pB' as input to a link\n"
msgstr ""
-#: ldelf.c:1371
+#: ldelf.c:1369
msgid ""
-"%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %"
-"pB\n"
+"%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"
msgstr ""
-#: ldelf.c:1407
+#: ldelf.c:1405
msgid ""
"%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"
msgstr ""
-#: ldelf.c:1413
-msgid "%F%P: failed to parse EH frame entries\n"
+#: ldelf.c:1411
+msgid "%P: failed to parse EH frame entries\n"
msgstr ""
-#: ldelf.c:1455
+#: ldelf.c:1453
msgid "%P: warning: .note.gnu.build-id section discarded, --build-id ignored\n"
msgstr ""
-#: ldelf.c:1505 eaarch64pe.c:1354 earm64pe.c:1354 earm_wince_pe.c:1339
+#: ldelf.c:1503 eaarch64pe.c:1354 earm64pe.c:1354 earm_wince_pe.c:1339
#: earmpe.c:1339 ei386pe.c:1339 ei386pe_posix.c:1339 ei386pep.c:1354
#: emcorepe.c:1339 eshpe.c:1339
msgid "%P: warning: unrecognized --build-id style ignored\n"
msgstr ""
-#: ldelf.c:1524
+#: ldelf.c:1522
msgid ""
"%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n"
msgstr ""
-#: ldelf.c:1545
+#: ldelf.c:1543
msgid ""
"%P: warning: .note.package section discarded, --package-metadata ignored\n"
msgstr ""
-#: ldelf.c:1601
+#: ldelf.c:1599
msgid "%P: warning: --package-metadata is empty, ignoring\n"
msgstr ""
-#: ldelf.c:1611
+#: ldelf.c:1609
msgid ""
"%P: warning: --package-metadata=%s does not contain valid JSON, ignoring: %"
"s\n"
msgstr ""
-#: ldelf.c:1640
+#: ldelf.c:1638
msgid ""
"%P: warning: cannot create .note.package section, --package-metadata "
"ignored\n"
msgstr ""
-#: ldelf.c:1672 eaix5ppc.c:1546 eaix5rs6.c:1546 eaixppc.c:1546 eaixrs6.c:1546
-#: eppcmacos.c:1546
-msgid "%F%P: failed to record assignment to %s: %E\n"
+#: ldelf.c:1670 eaix5ppc.c:1545 eaix5rs6.c:1545 eaixppc.c:1545 eaixrs6.c:1545
+#: eppcmacos.c:1545
+msgid "%P: failed to record assignment to %s: %E\n"
msgstr ""
-#: ldelf.c:1850 ldelf.c:1915 eaix5ppc.c:816 eaix5rs6.c:816 eaixppc.c:816
+#: ldelf.c:1845 ldelf.c:1911 eaix5ppc.c:816 eaix5rs6.c:816 eaixppc.c:816
#: eaixrs6.c:816 eelf64_ia64_vms.c:209 eppcmacos.c:816
-msgid "%F%P: failed to set dynamic section sizes: %E\n"
+msgid "%P: failed to set dynamic section sizes: %E\n"
msgstr ""
-#: ldelf.c:1887
-msgid "%F%P: %pB: can't read contents of section .gnu.warning: %E\n"
+#: ldelf.c:1883
+msgid "%P: %pB: can't read contents of section %pA: %E\n"
msgstr ""
#: ldelfgen.c:285
-msgid "%F%P: %pA has both ordered and unordered sections\n"
+msgid "%P: %pA has both ordered and unordered sections\n"
msgstr ""
#: ldelfgen.c:310 eelf32loongarch.c:106 eelf64loongarch.c:106
-msgid "%F%P: map sections to segments failed: %E\n"
+msgid "%P: map sections to segments failed: %E\n"
msgstr ""
#: ldelfgen.c:330
-msgid "%F%P: looping in map_segments\n"
+msgid "%P: looping in map_segments\n"
msgstr ""
-#: ldelfgen.c:342
-msgid "%F%P: failed to strip zero-sized dynamic sections\n"
+#: ldelfgen.c:341
+msgid "%P: failed to strip zero-sized dynamic sections\n"
msgstr ""
-#: ldelfgen.c:420
+#: ldelfgen.c:419
msgid ""
-"%F%P: warning: CTF strtab association failed; strings will not be shared: %"
-"s\n"
+"%P: warning: CTF strtab association failed; strings will not be shared: %s\n"
msgstr ""
-#: ldelfgen.c:447
+#: ldelfgen.c:446
msgid ""
-"%F%P: warning: CTF symbol addition failed; CTF will not be tied to symbols: %"
+"%P: warning: CTF symbol addition failed; CTF will not be tied to symbols: %"
"s\n"
msgstr ""
-#: ldelfgen.c:457
+#: ldelfgen.c:456
msgid ""
-"%F%P: warning: CTF symbol shuffling failed; CTF will not be tied to symbols: "
-"%s\n"
+"%P: warning: CTF symbol shuffling failed; CTF will not be tied to symbols: %"
+"s\n"
msgstr ""
-#: ldemul.c:323
+#: ldemul.c:331
#, c-format
msgid "%pS SYSLIB ignored\n"
msgstr ""
-#: ldemul.c:329
+#: ldemul.c:337
#, c-format
msgid "%pS HLL ignored\n"
msgstr ""
-#: ldemul.c:349
+#: ldemul.c:357
msgid "%P: unrecognised emulation mode: %s\n"
msgstr ""
-#: ldemul.c:350
+#: ldemul.c:358
msgid "Supported emulations: "
msgstr ""
-#: ldemul.c:392
+#: ldemul.c:400
#, c-format
msgid " no emulation specific options.\n"
msgstr ""
#: ldexp.c:285
-msgid "%F%P: bfd_hash_allocate failed creating symbol %s\n"
+msgid "%P: bfd_hash_allocate failed creating symbol %s\n"
msgstr ""
#: ldexp.c:316
-msgid "%F%P: bfd_hash_lookup failed creating symbol %s\n"
+msgid "%P: bfd_hash_lookup failed creating symbol %s\n"
msgstr ""
#: ldexp.c:562
@@ -305,19 +299,19 @@ msgid "%P: warning: address of `%s' isn't multiple of maximum page size\n"
msgstr ""
#: ldexp.c:641
-msgid "%F%P:%pS %% by zero\n"
+msgid "%P:%pS %% by zero\n"
msgstr ""
#: ldexp.c:650
-msgid "%F%P:%pS / by zero\n"
+msgid "%P:%pS / by zero\n"
msgstr ""
-#: ldexp.c:764 ldlang.c:4035 ldmain.c:1324 eaarch64pe.c:1168 eaarch64pe.c:1784
+#: ldexp.c:764 ldlang.c:4112 ldmain.c:1700 eaarch64pe.c:1168 eaarch64pe.c:1784
#: earm64pe.c:1168 earm64pe.c:1784 earm_wince_pe.c:1154 earm_wince_pe.c:1881
#: earmpe.c:1154 earmpe.c:1881 ei386pe.c:1154 ei386pe.c:1881
#: ei386pe_posix.c:1154 ei386pe_posix.c:1881 ei386pep.c:1168 ei386pep.c:1784
#: emcorepe.c:1154 emcorepe.c:1881 eshpe.c:1154 eshpe.c:1881
-msgid "%F%P: bfd_link_hash_lookup failed: %E\n"
+msgid "%P: bfd_link_hash_lookup failed: %E\n"
msgstr ""
#: ldexp.c:777
@@ -325,47 +319,47 @@ msgid "%X%P:%pS: unresolvable symbol `%s' referenced in expression\n"
msgstr ""
#: ldexp.c:792
-msgid "%F%P:%pS: undefined symbol `%s' referenced in expression\n"
+msgid "%P:%pS: undefined symbol `%s' referenced in expression\n"
msgstr ""
#: ldexp.c:830 ldexp.c:848 ldexp.c:876
-msgid "%F%P:%pS: undefined section `%s' referenced in expression\n"
+msgid "%P:%pS: undefined section `%s' referenced in expression\n"
msgstr ""
#: ldexp.c:915 ldexp.c:929
-msgid "%F%P:%pS: undefined MEMORY region `%s' referenced in expression\n"
+msgid "%P:%pS: undefined MEMORY region `%s' referenced in expression\n"
msgstr ""
#: ldexp.c:941
-msgid "%F%P:%pS: unknown constant `%s' referenced in expression\n"
+msgid "%P:%pS: unknown constant `%s' referenced in expression\n"
msgstr ""
#: ldexp.c:1089
-msgid "%F%P:%pS can not PROVIDE assignment to location counter\n"
+msgid "%P:%pS can not PROVIDE assignment to location counter\n"
msgstr ""
#: ldexp.c:1122
-msgid "%F%P:%pS invalid assignment to location counter\n"
+msgid "%P:%pS invalid assignment to location counter\n"
msgstr ""
#: ldexp.c:1126
-msgid "%F%P:%pS assignment to location counter invalid outside of SECTIONS\n"
+msgid "%P:%pS assignment to location counter invalid outside of SECTIONS\n"
msgstr ""
#: ldexp.c:1145
-msgid "%F%P:%pS cannot move location counter backwards (from %V to %V)\n"
+msgid "%P:%pS cannot move location counter backwards (from %V to %V)\n"
msgstr ""
#: ldexp.c:1205
-msgid "%F%P:%s: hash creation failed\n"
+msgid "%P:%s: hash creation failed\n"
msgstr ""
#: ldexp.c:1581 ldexp.c:1624 ldexp.c:1684
-msgid "%F%P:%pS: nonconstant expression for %s\n"
+msgid "%P:%pS: nonconstant expression for %s\n"
msgstr ""
-#: ldexp.c:1711 ldlang.c:1355 ldlang.c:3510 ldlang.c:8236
-msgid "%F%P: can not create hash table: %E\n"
+#: ldexp.c:1711 ldlang.c:1399 ldlang.c:3561 ldlang.c:8309
+msgid "%P: can not create hash table: %E\n"
msgstr ""
#: ldfile.c:239
@@ -410,885 +404,888 @@ msgid "attempt to open %s succeeded\n"
msgstr ""
#: ldfile.c:364
-msgid "%F%P: invalid BFD target `%s'\n"
+msgid "%P: invalid BFD target `%s'\n"
msgstr ""
-#: ldfile.c:494 ldfile.c:524
+#: ldfile.c:481 ldfile.c:511
msgid "%P: skipping incompatible %s when searching for %s\n"
msgstr ""
-#: ldfile.c:507
-msgid "%F%P: attempted static link of dynamic object `%s'\n"
+#: ldfile.c:494
+msgid "%P: attempted static link of dynamic object `%s'\n"
msgstr ""
-#: ldfile.c:636
+#: ldfile.c:623
msgid "%P: cannot find %s (%s): %E\n"
msgstr ""
#. We ignore the return status of the script
#. and always print the error message.
-#: ldfile.c:639 ldfile.c:723 ldfile.c:727
+#: ldfile.c:626 ldfile.c:710 ldfile.c:714
msgid "%P: cannot find %s: %E\n"
msgstr ""
-#: ldfile.c:691
+#: ldfile.c:678
msgid "%P: cannot find %s inside %s\n"
msgstr ""
-#: ldfile.c:706 ldmain.c:1504
+#: ldfile.c:693 ldmain.c:1880
msgid "%P: About to run error handling script '%s' with arguments: '%s' '%s'\n"
msgstr ""
-#: ldfile.c:710 ldmain.c:1508
+#: ldfile.c:697 ldmain.c:1884
msgid "error handling script"
msgstr ""
-#: ldfile.c:716 ldmain.c:1514
+#: ldfile.c:703 ldmain.c:1890
msgid "%P: Failed to run error handling script '%s', reason: "
msgstr ""
-#: ldfile.c:732
+#: ldfile.c:719
msgid "%P: have you installed the static version of the %s library ?\n"
msgstr ""
-#: ldfile.c:743
+#: ldfile.c:730
msgid "%P: note to link with %s use -l:%s or rename it to lib%s\n"
msgstr ""
-#: ldfile.c:775
+#: ldfile.c:762
#, c-format
msgid "cannot find script file %s\n"
msgstr ""
-#: ldfile.c:777
+#: ldfile.c:764
#, c-format
msgid "opened script file %s\n"
msgstr ""
-#: ldfile.c:913
-msgid "%F%P: error: linker script file '%s' appears multiple times\n"
+#: ldfile.c:900
+msgid "%P: error: linker script file '%s' appears multiple times\n"
msgstr ""
-#: ldfile.c:932
-msgid "%F%P: cannot open linker script file %s: %E\n"
+#: ldfile.c:919
+msgid "%P: cannot open linker script file %s: %E\n"
msgstr ""
-#: ldfile.c:1026
-msgid "%F%P: cannot represent machine `%s'\n"
+#: ldfile.c:1013
+msgid "%P: cannot represent machine `%s'\n"
msgstr ""
-#: ldlang.c:1446
+#: ldlang.c:1490
msgid "%P:%pS: warning: redeclaration of memory region `%s'\n"
msgstr ""
-#: ldlang.c:1452
+#: ldlang.c:1496
msgid "%P:%pS: warning: memory region `%s' not declared\n"
msgstr ""
-#: ldlang.c:1488
-msgid "%F%P:%pS: error: alias for default memory region\n"
+#: ldlang.c:1532
+msgid "%P:%pS: error: alias for default memory region\n"
msgstr ""
-#: ldlang.c:1499
-msgid "%F%P:%pS: error: redefinition of memory region alias `%s'\n"
+#: ldlang.c:1543
+msgid "%P:%pS: error: redefinition of memory region alias `%s'\n"
msgstr ""
-#: ldlang.c:1506
-msgid "%F%P:%pS: error: memory region `%s' for alias `%s' does not exist\n"
+#: ldlang.c:1550
+msgid "%P:%pS: error: memory region `%s' for alias `%s' does not exist\n"
msgstr ""
-#: ldlang.c:1567 ldlang.c:1610
-msgid "%F%P: failed creating section `%s': %E\n"
+#: ldlang.c:1611 ldlang.c:1654
+msgid "%P: failed creating section `%s': %E\n"
msgstr ""
-#: ldlang.c:2328
+#: ldlang.c:2372
msgid ""
"\n"
"As-needed library included to satisfy reference by file (symbol)\n"
"\n"
msgstr ""
-#: ldlang.c:2393
+#: ldlang.c:2437
msgid ""
"\n"
"Discarded input sections\n"
"\n"
msgstr ""
-#: ldlang.c:2401
+#: ldlang.c:2445
msgid ""
"\n"
"There are no discarded input sections\n"
msgstr ""
-#: ldlang.c:2403
+#: ldlang.c:2447
msgid ""
"\n"
"Memory Configuration\n"
"\n"
msgstr ""
-#: ldlang.c:2405
+#: ldlang.c:2449
msgid "Name"
msgstr ""
-#: ldlang.c:2405
+#: ldlang.c:2449
msgid "Origin"
msgstr ""
-#: ldlang.c:2405
+#: ldlang.c:2449
msgid "Length"
msgstr ""
-#: ldlang.c:2405
+#: ldlang.c:2449
msgid "Attributes"
msgstr ""
-#: ldlang.c:2429
+#: ldlang.c:2473
msgid ""
"\n"
"Linker script and memory map\n"
"\n"
msgstr ""
-#: ldlang.c:2482
-msgid "%F%P: illegal use of `%s' section\n"
+#: ldlang.c:2533
+msgid "%P: illegal use of `%s' section\n"
msgstr ""
-#: ldlang.c:2491
-msgid "%F%P: output format %s cannot represent section called %s: %E\n"
+#: ldlang.c:2542
+msgid "%P: output format %s cannot represent section called %s: %E\n"
msgstr ""
-#: ldlang.c:2672
+#: ldlang.c:2723
msgid ""
"%P:%pS: warning: --enable-non-contiguous-regions makes section `%pA' from `%"
"pB' match /DISCARD/ clause.\n"
msgstr ""
-#: ldlang.c:2696
+#: ldlang.c:2747
msgid ""
"%P:%pS: warning: --enable-non-contiguous-regions may change behaviour for "
"section `%pA' from `%pB' (assigned to %pA, but additional match: %pA)\n"
msgstr ""
-#: ldlang.c:3074
+#: ldlang.c:3125
msgid "%P: %pB: file not recognized: %E; matching formats:"
msgstr ""
-#: ldlang.c:3083
-msgid "%F%P: %pB: file not recognized: %E\n"
+#: ldlang.c:3134
+msgid "%P: %pB: file not recognized: %E\n"
msgstr ""
-#: ldlang.c:3156
-msgid "%F%P: %pB: member %pB in archive is not an object\n"
+#: ldlang.c:3207
+msgid "%P: %pB: member %pB in archive is not an object\n"
msgstr ""
-#: ldlang.c:3432
-msgid "%F%P: input file '%s' is the same as output file\n"
+#: ldlang.c:3483
+msgid "%P: input file '%s' is the same as output file\n"
msgstr ""
-#: ldlang.c:3480
+#: ldlang.c:3531
msgid ""
"%P: warning: could not find any targets that match endianness requirement\n"
msgstr ""
-#: ldlang.c:3494
-msgid "%F%P: target %s not found\n"
+#: ldlang.c:3545
+msgid "%P: target %s not found\n"
msgstr ""
-#: ldlang.c:3496
-msgid "%F%P: cannot open output file %s: %E\n"
+#: ldlang.c:3547
+msgid "%P: cannot open output file %s: %E\n"
msgstr ""
-#: ldlang.c:3502
-msgid "%F%P: %s: can not make object file: %E\n"
+#: ldlang.c:3553
+msgid "%P: %s: can not make object file: %E\n"
msgstr ""
-#: ldlang.c:3506
-msgid "%F%P: %s: can not set architecture: %E\n"
+#: ldlang.c:3557
+msgid "%P: %s: can not set architecture: %E\n"
msgstr ""
-#: ldlang.c:3693
+#: ldlang.c:3744
msgid "%P: warning: %s contains output sections; did you forget -T?\n"
msgstr ""
-#: ldlang.c:3740
+#: ldlang.c:3791
#, c-format
msgid "%s: %s\n"
msgstr ""
-#: ldlang.c:3740
+#: ldlang.c:3791
msgid "CTF warning"
msgstr ""
-#: ldlang.c:3740
+#: ldlang.c:3791
msgid "CTF error"
msgstr ""
-#: ldlang.c:3746
+#: ldlang.c:3797
#, c-format
msgid "CTF error: cannot get CTF errors: `%s'\n"
msgstr ""
-#: ldlang.c:3780
+#: ldlang.c:3833
msgid ""
"%P: warning: CTF section in %pB not loaded; its types will be discarded: %s\n"
msgstr ""
-#: ldlang.c:3809
+#: ldlang.c:3866
msgid "%P: warning: CTF output not created: `%s'\n"
msgstr ""
-#: ldlang.c:3852
+#: ldlang.c:3915
msgid "%P: warning: CTF section in %pB cannot be linked: `%s'\n"
msgstr ""
-#: ldlang.c:3872
+#: ldlang.c:3935
msgid "%P: warning: CTF linking failed; output will have no CTF section: %s\n"
msgstr ""
-#: ldlang.c:3943
+#: ldlang.c:4018
msgid ""
"%P: warning: CTF section emission failed; output will have no CTF section: %"
"s\n"
msgstr ""
-#: ldlang.c:3982
+#: ldlang.c:4059
msgid ""
"%P: warning: CTF section in %pB not linkable: %P was built without support "
"for CTF\n"
msgstr ""
-#: ldlang.c:4120
+#: ldlang.c:4195
msgid "%X%P: required symbol `%s' not defined\n"
msgstr ""
-#: ldlang.c:4321 ldlang.c:4330
-msgid "%F%P: invalid type for output section `%s'\n"
+#: ldlang.c:4396 ldlang.c:4405
+msgid "%P: invalid type for output section `%s'\n"
msgstr ""
-#: ldlang.c:4466
+#: ldlang.c:4541
msgid ""
"warning: INSERT statement in linker script is incompatible with --enable-non-"
"contiguous-regions.\n"
msgstr ""
-#: ldlang.c:4479
-msgid "%F%P: %s not found for insert\n"
+#: ldlang.c:4554
+msgid "%P: %s not found for insert\n"
msgstr ""
-#: ldlang.c:4751
+#: ldlang.c:4826
msgid " load address 0x%V"
msgstr ""
-#: ldlang.c:5013
+#: ldlang.c:5086
msgid "%W (size before relaxing)\n"
msgstr ""
-#: ldlang.c:5142
+#: ldlang.c:5215
#, c-format
msgid "Address of section %s set to "
msgstr ""
-#: ldlang.c:5344
+#: ldlang.c:5417
#, c-format
msgid "Fail with %d\n"
msgstr ""
-#: ldlang.c:5561
+#: ldlang.c:5634
msgid ""
-"%F%P: Output section `%pA' not large enough for the linker-created stubs "
+"%P: Output section `%pA' not large enough for the linker-created stubs "
"section `%pA'.\n"
msgstr ""
-#: ldlang.c:5566
+#: ldlang.c:5639
msgid ""
-"%F%P: Relaxation not supported with --enable-non-contiguous-regions (section "
-"`%pA' would overflow `%pA' after it changed size).\n"
+"%P: Relaxation not supported with --enable-non-contiguous-regions (section `%"
+"pA' would overflow `%pA' after it changed size).\n"
msgstr ""
-#: ldlang.c:5675
+#: ldlang.c:5748
msgid "%X%P: section %s VMA wraps around address space\n"
msgstr ""
-#: ldlang.c:5681
+#: ldlang.c:5754
msgid "%X%P: section %s LMA wraps around address space\n"
msgstr ""
-#: ldlang.c:5733
+#: ldlang.c:5806
msgid "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"
msgstr ""
-#: ldlang.c:5777
+#: ldlang.c:5850
msgid "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"
msgstr ""
-#: ldlang.c:5800
+#: ldlang.c:5873
msgid "%X%P: region `%s' overflowed by %lu byte\n"
msgid_plural "%X%P: region `%s' overflowed by %lu bytes\n"
msgstr[0] ""
msgstr[1] ""
-#: ldlang.c:5825
+#: ldlang.c:5898
msgid "%X%P: address 0x%v of %pB section `%s' is not within region `%s'\n"
msgstr ""
-#: ldlang.c:5836
+#: ldlang.c:5909
msgid "%X%P: %pB section `%s' will not fit in region `%s'\n"
msgstr ""
-#: ldlang.c:5922
+#: ldlang.c:5995
msgid ""
-"%F%P:%pS: non constant or forward reference address expression for section %"
-"s\n"
+"%P:%pS: non constant or forward reference address expression for section %s\n"
msgstr ""
-#: ldlang.c:5947
+#: ldlang.c:6020
msgid "%X%P: internal error on COFF shared library section %s\n"
msgstr ""
-#: ldlang.c:6005
-msgid "%F%P: error: no memory region specified for loadable section `%s'\n"
+#: ldlang.c:6078
+msgid "%P: error: no memory region specified for loadable section `%s'\n"
msgstr ""
-#: ldlang.c:6009
+#: ldlang.c:6082
msgid "%P: warning: no memory region specified for loadable section `%s'\n"
msgstr ""
-#: ldlang.c:6043
+#: ldlang.c:6116
msgid "%P: warning: start of section %s changed by %ld\n"
msgstr ""
-#: ldlang.c:6136
+#: ldlang.c:6209
msgid "%P: warning: dot moved backwards before `%s'\n"
msgstr ""
-#: ldlang.c:6312
-msgid "%F%P: can't relax section: %E\n"
+#: ldlang.c:6385
+msgid "%P: can't relax section: %E\n"
msgstr ""
-#: ldlang.c:6721
-msgid "%F%P: invalid data statement\n"
+#: ldlang.c:6794
+msgid "%P: invalid data statement\n"
msgstr ""
-#: ldlang.c:6754
-msgid "%F%P: invalid reloc statement\n"
+#: ldlang.c:6827
+msgid "%P: invalid reloc statement\n"
msgstr ""
-#: ldlang.c:7172
+#: ldlang.c:7244
msgid ""
-"%F%P: --gc-sections requires a defined symbol root specified by -e or -u\n"
+"%P: --gc-sections requires a defined symbol root specified by -e or -u\n"
msgstr ""
-#: ldlang.c:7197
-msgid "%F%P: %s: can't set start address\n"
+#: ldlang.c:7271
+msgid "%P: %s: can't set start address\n"
msgstr ""
-#: ldlang.c:7210 ldlang.c:7229
-msgid "%F%P: can't set start address\n"
+#: ldlang.c:7284 ldlang.c:7303
+msgid "%P: can't set start address\n"
msgstr ""
-#: ldlang.c:7223
+#: ldlang.c:7297
msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
msgstr ""
-#: ldlang.c:7234 ldlang.c:7242
+#: ldlang.c:7308 ldlang.c:7316
msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
msgstr ""
-#: ldlang.c:7298
+#: ldlang.c:7372
msgid ""
-"%F%P: relocatable linking with relocations from format %s (%pB) to format %s "
-"(%pB) is not supported\n"
+"%P: relocatable linking with relocations from format %s (%pB) to format %s (%"
+"pB) is not supported\n"
msgstr ""
-#: ldlang.c:7308
+#: ldlang.c:7381
msgid ""
"%X%P: %s architecture of input file `%pB' is incompatible with %s output\n"
msgstr ""
-#: ldlang.c:7332
+#: ldlang.c:7405
msgid "%X%P: failed to merge target specific data of file %pB\n"
msgstr ""
-#: ldlang.c:7403
-msgid "%F%P: could not define common symbol `%pT': %E\n"
+#: ldlang.c:7476
+msgid "%P: could not define common symbol `%pT': %E\n"
msgstr ""
-#: ldlang.c:7415
+#: ldlang.c:7488
msgid ""
"\n"
"Allocating common symbols\n"
msgstr ""
-#: ldlang.c:7416
+#: ldlang.c:7489
msgid ""
"Common symbol size file\n"
"\n"
msgstr ""
-#: ldlang.c:7473
+#: ldlang.c:7546
msgid "%X%P: error: unplaced orphan section `%pA' from `%pB'\n"
msgstr ""
-#: ldlang.c:7491
+#: ldlang.c:7564
msgid ""
"%P: warning: orphan section `%pA' from `%pB' being placed in section `%s'\n"
msgstr ""
-#: ldlang.c:7581
-msgid "%F%P: invalid character %c (%d) in flags\n"
+#: ldlang.c:7654
+msgid "%P: invalid character %c (%d) in flags\n"
msgstr ""
#. && in_section_ordering
-#: ldlang.c:7675
-msgid "%F%P:%pS: error: output section '%s' must already exist\n"
+#: ldlang.c:7748
+msgid "%P:%pS: error: output section '%s' must already exist\n"
msgstr ""
-#: ldlang.c:7699
-msgid "%F%P:%pS: error: align with input and explicit align specified\n"
+#: ldlang.c:7772
+msgid "%P:%pS: error: align with input and explicit align specified\n"
msgstr ""
-#: ldlang.c:8170
+#: ldlang.c:8243
msgid ""
"%P: warning: --enable-non-contiguous-regions discards section `%pA' from `%"
"pB'\n"
msgstr ""
-#: ldlang.c:8274
-msgid "%F%P: %s: plugin reported error after all symbols read\n"
+#: ldlang.c:8347
+msgid "%P: %s: plugin reported error after all symbols read\n"
msgstr ""
-#: ldlang.c:8399
+#: ldlang.c:8472
msgid ""
"Object-only input files:\n"
" "
msgstr ""
-#: ldlang.c:8511
-msgid "%F%P: bfd_merge_sections failed: %E\n"
+#: ldlang.c:8586
+msgid "%P: bfd_merge_sections failed: %E\n"
msgstr ""
-#: ldlang.c:8888
-msgid "%F%P: multiple STARTUP files\n"
+#: ldlang.c:8965
+msgid "%P: multiple STARTUP files\n"
msgstr ""
-#: ldlang.c:8934
+#: ldlang.c:9010
msgid "%X%P:%pS: section has both a load address and a load region\n"
msgstr ""
-#: ldlang.c:9043
+#: ldlang.c:9119
msgid ""
"%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers "
"lack them\n"
msgstr ""
-#: ldlang.c:9116
-msgid "%F%P: no sections assigned to phdrs\n"
+#: ldlang.c:9192
+msgid "%P: no sections assigned to phdrs\n"
msgstr ""
-#: ldlang.c:9154
-msgid "%F%P: bfd_record_phdr failed: %E\n"
+#: ldlang.c:9230
+msgid "%P: bfd_record_phdr failed: %E\n"
msgstr ""
-#: ldlang.c:9174
+#: ldlang.c:9250
msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
msgstr ""
-#: ldlang.c:9590
+#: ldlang.c:9663
msgid "%X%P: unknown language `%s' in version information\n"
msgstr ""
-#: ldlang.c:9735
+#: ldlang.c:9801
msgid ""
"%X%P: anonymous version tag cannot be combined with other version tags\n"
msgstr ""
-#: ldlang.c:9744
+#: ldlang.c:9809
msgid "%X%P: duplicate version tag `%s'\n"
msgstr ""
-#: ldlang.c:9765 ldlang.c:9774 ldlang.c:9792 ldlang.c:9802
+#: ldlang.c:9830 ldlang.c:9839 ldlang.c:9857 ldlang.c:9867
msgid "%X%P: duplicate expression `%s' in version information\n"
msgstr ""
-#: ldlang.c:9842
+#: ldlang.c:9907
msgid "%X%P: unable to find version dependency `%s'\n"
msgstr ""
-#: ldlang.c:9865
+#: ldlang.c:9930
msgid "%X%P: unable to read .exports section contents\n"
msgstr ""
-#: ldlang.c:9911
+#: ldlang.c:9974
msgid "%P: invalid origin for memory region %s\n"
msgstr ""
-#: ldlang.c:9923
+#: ldlang.c:9986
msgid "%P: invalid length for memory region %s\n"
msgstr ""
-#: ldlang.c:10035
+#: ldlang.c:10099
msgid "%X%P: unknown feature `%s'\n"
msgstr ""
-#: ldlang.c:10401
+#: ldlang.c:10465
msgid "failed to create output section"
msgstr ""
-#: ldlang.c:10435
+#: ldlang.c:10499
msgid "failed to copy private data"
msgstr ""
-#: ldlang.c:10444
-msgid "%P%F: setup_section: %s: %s\n"
+#: ldlang.c:10508
+msgid "%P: setup_section: %s: %s\n"
msgstr ""
-#: ldlang.c:10507
+#: ldlang.c:10571
msgid "relocation count is negative"
msgstr ""
-#: ldlang.c:10539
-msgid "%P%F: copy_section: %s: %s\n"
+#: ldlang.c:10603
+msgid "%P: copy_section: %s: %s\n"
msgstr ""
-#: ldlang.c:10694
+#: ldlang.c:10758
msgid "error setting up sections"
msgstr ""
-#: ldlang.c:10702
+#: ldlang.c:10766
msgid "error copying private header data"
msgstr ""
-#: ldlang.c:10715
+#: ldlang.c:10779
msgid "can't create object-only section"
msgstr ""
-#: ldlang.c:10721
+#: ldlang.c:10785
msgid "can't set object-only section size"
msgstr ""
-#: ldlang.c:10752
+#: ldlang.c:10816
msgid "error copying sections"
msgstr ""
-#: ldlang.c:10759
+#: ldlang.c:10823
msgid "error adding object-only section"
msgstr ""
-#: ldlang.c:10769
+#: ldlang.c:10833
msgid "error copying private BFD data"
msgstr ""
-#: ldlang.c:10776
-msgid "%P%F: failed to finish output with object-only section\n"
+#: ldlang.c:10840
+msgid "%P: failed to finish output with object-only section\n"
msgstr ""
-#: ldlang.c:10786
-msgid "%P%F: failed to rename output with object-only section\n"
+#: ldlang.c:10850
+msgid "%P: failed to rename output with object-only section\n"
msgstr ""
-#: ldlang.c:10802
-msgid "%P%F: failed to add object-only section: %s\n"
+#: ldlang.c:10866
+msgid "%P: failed to add object-only section: %s\n"
msgstr ""
-#: ldlang.c:10835
-msgid "%P%F: Failed to create hash table\n"
+#: ldlang.c:10899
+msgid "%P: Failed to create hash table\n"
msgstr ""
-#: ldlang.c:10899
-msgid "%P%F:%s: final close failed on object-only output: %E\n"
+#: ldlang.c:10963
+msgid "%P:%s: final close failed on object-only output: %E\n"
msgstr ""
-#: ldlang.c:10909
-msgid "%P%F:%s: cannot open object-only output: %E\n"
+#: ldlang.c:10973
+msgid "%P:%s: cannot open object-only output: %E\n"
msgstr ""
-#: ldlang.c:10917
-msgid "%P%F:%s: cannot stat object-only output: %E\n"
+#: ldlang.c:10981
+msgid "%P:%s: cannot stat object-only output: %E\n"
msgstr ""
-#: ldlang.c:10932
-msgid "%P%F:%s: read failed on object-only output: %E\n"
+#: ldlang.c:10996
+msgid "%P:%s: read failed on object-only output: %E\n"
msgstr ""
-#: ldlang.c:10959
-msgid "%P%F: cannot extract object-only section from %B: %E\n"
+#: ldlang.c:11023
+msgid "%P: cannot extract object-only section from %B: %E\n"
msgstr ""
-#: ldmain.c:198
-msgid "%F%P: cannot open dependency file %s: %E\n"
+#: ldmain.c:204
+msgid "%P: cannot open dependency file %s: %E\n"
msgstr ""
-#: ldmain.c:291
-msgid "%F%P: fatal error: libbfd ABI mismatch\n"
+#: ldmain.c:553
+msgid "WARNING: Data is unreliable!\n"
msgstr ""
-#: ldmain.c:330
+#: ldmain.c:611
+msgid "%P: fatal error: libbfd ABI mismatch\n"
+msgstr ""
+
+#: ldmain.c:650
msgid "%X%P: can't set BFD default target to `%s': %E\n"
msgstr ""
-#: ldmain.c:435
+#: ldmain.c:761
msgid "built in linker script"
msgstr ""
-#: ldmain.c:445
+#: ldmain.c:771
#, c-format
msgid "using external linker script: %s"
msgstr ""
-#: ldmain.c:447
+#: ldmain.c:773
msgid "using internal linker script:"
msgstr ""
-#: ldmain.c:497
-msgid "%F%P: --no-define-common may not be used without -shared\n"
+#: ldmain.c:823
+msgid "%P: --no-define-common may not be used without -shared\n"
msgstr ""
-#: ldmain.c:504
-msgid "%F%P: no input files\n"
+#: ldmain.c:830
+msgid "%P: no input files\n"
msgstr ""
-#: ldmain.c:508
+#: ldmain.c:834
msgid "%P: mode %s\n"
msgstr ""
-#: ldmain.c:526 ends32belf.c:473 ends32belf16m.c:473 ends32belf_linux.c:606
+#: ldmain.c:852 ends32belf.c:473 ends32belf16m.c:473 ends32belf_linux.c:606
#: ends32elf.c:473 ends32elf16m.c:473 ends32elf_linux.c:606
-msgid "%F%P: cannot open map file %s: %E\n"
+msgid "%P: cannot open map file %s: %E\n"
msgstr ""
-#: ldmain.c:590
+#: ldmain.c:944
msgid "%P: link errors found, deleting executable `%s'\n"
msgstr ""
-#: ldmain.c:601
-msgid "%F%P: %s: final close failed: %E\n"
+#: ldmain.c:955
+msgid "%P: %s: final close failed: %E\n"
msgstr ""
-#: ldmain.c:630
-msgid "%F%P: unable to open for source of copy `%s'\n"
+#: ldmain.c:984
+msgid "%P: unable to open for source of copy `%s'\n"
msgstr ""
-#: ldmain.c:633
-msgid "%F%P: unable to open for destination of copy `%s'\n"
+#: ldmain.c:987
+msgid "%P: unable to open for destination of copy `%s'\n"
msgstr ""
-#: ldmain.c:640
+#: ldmain.c:994
msgid "%P: error writing file `%s'\n"
msgstr ""
-#: ldmain.c:645 pe-dll.c:2009
+#: ldmain.c:999 pe-dll.c:2013
#, c-format
msgid "%P: error closing file `%s'\n"
msgstr ""
-#: ldmain.c:660
+#: ldmain.c:1030
#, c-format
msgid "%s: total time in link: %ld.%06ld\n"
msgstr ""
-#: ldmain.c:747
-msgid "%F%P: missing argument to -m\n"
+#: ldmain.c:1120
+msgid "%P: missing argument to -m\n"
msgstr ""
-#: ldmain.c:801 ldmain.c:818 ldmain.c:838 ldmain.c:870 pe-dll.c:1431
-msgid "%F%P: bfd_hash_table_init failed: %E\n"
+#: ldmain.c:1174 ldmain.c:1191 ldmain.c:1211 ldmain.c:1243 pe-dll.c:1434
+msgid "%P: bfd_hash_table_init failed: %E\n"
msgstr ""
-#: ldmain.c:805 ldmain.c:822 ldmain.c:842
-msgid "%F%P: bfd_hash_lookup failed: %E\n"
+#: ldmain.c:1178 ldmain.c:1195 ldmain.c:1215
+msgid "%P: bfd_hash_lookup failed: %E\n"
msgstr ""
-#: ldmain.c:856
+#: ldmain.c:1229
msgid "%X%P: error: duplicate retain-symbols-file\n"
msgstr ""
-#: ldmain.c:900
-msgid "%F%P: bfd_hash_lookup for insertion failed: %E\n"
+#: ldmain.c:1273
+msgid "%P: bfd_hash_lookup for insertion failed: %E\n"
msgstr ""
-#: ldmain.c:905
+#: ldmain.c:1278
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
msgstr ""
-#: ldmain.c:1026
+#: ldmain.c:1402
msgid ""
"Archive member included to satisfy reference by file (symbol)\n"
"\n"
msgstr ""
-#: ldmain.c:1132
+#: ldmain.c:1508
msgid "%P: %C: warning: multiple definition of `%pT'"
msgstr ""
-#: ldmain.c:1135
+#: ldmain.c:1511
msgid "%X%P: %C: multiple definition of `%pT'"
msgstr ""
-#: ldmain.c:1138
+#: ldmain.c:1514
msgid "; %D: first defined here"
msgstr ""
-#: ldmain.c:1143
+#: ldmain.c:1519
msgid "%P: disabling relaxation; it will not work with multiple definitions\n"
msgstr ""
-#: ldmain.c:1196
+#: ldmain.c:1572
msgid "%P: %pB: warning: definition of `%pT' overriding common from %pB\n"
msgstr ""
-#: ldmain.c:1200
+#: ldmain.c:1576
msgid "%P: %pB: warning: definition of `%pT' overriding common\n"
msgstr ""
-#: ldmain.c:1209
+#: ldmain.c:1585
msgid "%P: %pB: warning: common of `%pT' overridden by definition from %pB\n"
msgstr ""
-#: ldmain.c:1213
+#: ldmain.c:1589
msgid "%P: %pB: warning: common of `%pT' overridden by definition\n"
msgstr ""
-#: ldmain.c:1222
+#: ldmain.c:1598
msgid ""
"%P: %pB: warning: common of `%pT' overridden by larger common from %pB\n"
msgstr ""
-#: ldmain.c:1226
+#: ldmain.c:1602
msgid "%P: %pB: warning: common of `%pT' overridden by larger common\n"
msgstr ""
-#: ldmain.c:1233
+#: ldmain.c:1609
msgid "%P: %pB: warning: common of `%pT' overriding smaller common from %pB\n"
msgstr ""
-#: ldmain.c:1237
+#: ldmain.c:1613
msgid "%P: %pB: warning: common of `%pT' overriding smaller common\n"
msgstr ""
-#: ldmain.c:1244
+#: ldmain.c:1620
msgid "%P: %pB and %pB: warning: multiple common of `%pT'\n"
msgstr ""
-#: ldmain.c:1247
+#: ldmain.c:1623
msgid "%P: %pB: warning: multiple common of `%pT'\n"
msgstr ""
-#: ldmain.c:1266 ldmain.c:1302
+#: ldmain.c:1642 ldmain.c:1678
msgid "%P: warning: global constructor %s used\n"
msgstr ""
-#: ldmain.c:1312
-msgid "%F%P: BFD backend error: BFD_RELOC_CTOR unsupported\n"
+#: ldmain.c:1688
+msgid "%P: BFD backend error: BFD_RELOC_CTOR unsupported\n"
msgstr ""
#. We found a reloc for the symbol we are looking for.
-#: ldmain.c:1384 ldmain.c:1386 ldmain.c:1388 ldmain.c:1396 ldmain.c:1439
+#: ldmain.c:1760 ldmain.c:1762 ldmain.c:1764 ldmain.c:1772 ldmain.c:1815
msgid "warning: "
msgstr ""
-#: ldmain.c:1529
+#: ldmain.c:1905
msgid "%X%P: %H: undefined reference to `%pT'\n"
msgstr ""
-#: ldmain.c:1532
+#: ldmain.c:1908
msgid "%P: %H: warning: undefined reference to `%pT'\n"
msgstr ""
-#: ldmain.c:1538
+#: ldmain.c:1914
msgid "%X%P: %D: more undefined references to `%pT' follow\n"
msgstr ""
-#: ldmain.c:1541
+#: ldmain.c:1917
msgid "%P: %D: warning: more undefined references to `%pT' follow\n"
msgstr ""
-#: ldmain.c:1552
+#: ldmain.c:1928
msgid "%X%P: %pB: undefined reference to `%pT'\n"
msgstr ""
-#: ldmain.c:1555
+#: ldmain.c:1931
msgid "%P: %pB: warning: undefined reference to `%pT'\n"
msgstr ""
-#: ldmain.c:1561
+#: ldmain.c:1937
msgid "%X%P: %pB: more undefined references to `%pT' follow\n"
msgstr ""
-#: ldmain.c:1564
+#: ldmain.c:1940
msgid "%P: %pB: warning: more undefined references to `%pT' follow\n"
msgstr ""
-#: ldmain.c:1601
+#: ldmain.c:1977
msgid " additional relocation overflows omitted from the output\n"
msgstr ""
-#: ldmain.c:1614
+#: ldmain.c:1990
#, c-format
msgid " relocation truncated to fit: %s against undefined symbol `%pT'"
msgstr ""
-#: ldmain.c:1620
+#: ldmain.c:1996
#, c-format
msgid ""
" relocation truncated to fit: %s against symbol `%pT' defined in %pA section "
"in %pB"
msgstr ""
-#: ldmain.c:1633
+#: ldmain.c:2009
#, c-format
msgid " relocation truncated to fit: %s against `%pT'"
msgstr ""
-#: ldmain.c:1649
+#: ldmain.c:2025
msgid "%X%H: dangerous relocation: %s\n"
msgstr ""
-#: ldmain.c:1663
+#: ldmain.c:2039
msgid "%X%H: reloc refers to symbol `%pT' which is not being output\n"
msgstr ""
-#: ldmain.c:1697
+#: ldmain.c:2073
msgid "%P: %pB: reference to %s\n"
msgstr ""
-#: ldmain.c:1699
+#: ldmain.c:2075
msgid "%P: %pB: definition of %s\n"
msgstr ""
-#: ldmisc.c:366
+#: ldmisc.c:359
#, c-format
msgid "%pB: in function `%pT':\n"
msgstr ""
-#: ldmisc.c:506
+#: ldmisc.c:499
#, c-format
msgid "no symbol"
msgstr ""
-#: ldmisc.c:688
+#: ldmisc.c:693
msgid "%P: error: unsupported option: %s\n"
msgstr ""
-#: ldmisc.c:690
+#: ldmisc.c:695
msgid "%P: warning: %s ignored\n"
msgstr ""
-#: ldmisc.c:701
-msgid "%F%P: internal error %s %d\n"
+#: ldmisc.c:706
+msgid "%P: internal error %s %d\n"
msgstr ""
-#: ldmisc.c:765
+#: ldmisc.c:770
msgid "%P: internal error: aborting at %s:%d in %s\n"
msgstr ""
-#: ldmisc.c:768
+#: ldmisc.c:773
msgid "%P: internal error: aborting at %s:%d\n"
msgstr ""
-#: ldmisc.c:770
-msgid "%F%P: please report this bug\n"
+#: ldmisc.c:775
+msgid "%P: please report this bug\n"
msgstr ""
#. Output for noisy == 2 is intended to follow the GNU standards.
@@ -1318,28 +1315,28 @@ msgstr ""
#: ldwrite.c:60 ldwrite.c:67 ldwrite.c:173 ldwrite.c:181 ldwrite.c:227
#: ldwrite.c:268
-msgid "%F%P: bfd_new_link_order failed: %E\n"
+msgid "%P: bfd_new_link_order failed: %E\n"
msgstr ""
#: ldwrite.c:337
-msgid "%F%P: cannot create split section name for %s\n"
+msgid "%P: cannot create split section name for %s\n"
msgstr ""
-#: ldwrite.c:349
-msgid "%F%P: clone section failed: %E\n"
+#: ldwrite.c:348
+msgid "%P: clone section failed: %E\n"
msgstr ""
-#: ldwrite.c:387
+#: ldwrite.c:385
#, c-format
msgid "%8x something else\n"
msgstr ""
-#: ldwrite.c:553
-msgid "%F%P: final link failed: %E\n"
+#: ldwrite.c:551
+msgid "%P: final link failed: %E\n"
msgstr ""
-#: ldwrite.c:555
-msgid "%F%P: final link failed\n"
+#: ldwrite.c:553
+msgid "%P: final link failed\n"
msgstr ""
#: lexsup.c:105 lexsup.c:303
@@ -1368,7 +1365,7 @@ msgstr ""
#: lexsup.c:113 lexsup.c:119 lexsup.c:180 lexsup.c:184 lexsup.c:223
#: lexsup.c:227 lexsup.c:242 lexsup.c:244 lexsup.c:465 lexsup.c:491
-#: lexsup.c:539 lexsup.c:552 lexsup.c:556
+#: lexsup.c:541 lexsup.c:554 lexsup.c:558
msgid "FILE"
msgstr ""
@@ -1388,8 +1385,8 @@ msgstr ""
msgid "Force group members out of groups"
msgstr ""
-#: lexsup.c:124 lexsup.c:514 lexsup.c:516 lexsup.c:518 lexsup.c:520
-#: lexsup.c:522 lexsup.c:524 lexsup.c:526
+#: lexsup.c:124 lexsup.c:516 lexsup.c:518 lexsup.c:520 lexsup.c:522
+#: lexsup.c:524 lexsup.c:526 lexsup.c:528
msgid "ADDRESS"
msgstr ""
@@ -1616,7 +1613,7 @@ msgid "Read default linker script"
msgstr ""
#: lexsup.c:248 lexsup.c:251 lexsup.c:269 lexsup.c:361 lexsup.c:385
-#: lexsup.c:507 lexsup.c:542 lexsup.c:554 lexsup.c:613 lexsup.c:616
+#: lexsup.c:509 lexsup.c:544 lexsup.c:556 lexsup.c:615 lexsup.c:618
msgid "SYMBOL"
msgstr ""
@@ -2003,58 +2000,62 @@ msgid "Split output sections every COUNT relocs"
msgstr ""
#: lexsup.c:503
-msgid "Print memory usage statistics"
+msgid "Print resource usage statistics"
msgstr ""
#: lexsup.c:505
-msgid "Display target specific options"
+msgid "Do not print resource usage statistics"
msgstr ""
#: lexsup.c:507
-msgid "Do task level linking"
+msgid "Display target specific options"
msgstr ""
#: lexsup.c:509
-msgid "Use same format as native linker"
+msgid "Do task level linking"
msgstr ""
#: lexsup.c:511
+msgid "Use same format as native linker"
+msgstr ""
+
+#: lexsup.c:513
msgid "SECTION=ADDRESS"
msgstr ""
-#: lexsup.c:511
+#: lexsup.c:513
msgid "Set address of named section"
msgstr ""
-#: lexsup.c:514
+#: lexsup.c:516
msgid "Set image base address"
msgstr ""
-#: lexsup.c:516
+#: lexsup.c:518
msgid "Set address of .bss section"
msgstr ""
-#: lexsup.c:518
+#: lexsup.c:520
msgid "Set address of .data section"
msgstr ""
-#: lexsup.c:520
+#: lexsup.c:522
msgid "Set address of .text section"
msgstr ""
-#: lexsup.c:522
+#: lexsup.c:524
msgid "Set address of text segment"
msgstr ""
-#: lexsup.c:524
+#: lexsup.c:526
msgid "Set address of rodata segment"
msgstr ""
-#: lexsup.c:526
+#: lexsup.c:528
msgid "Set address of ldata segment"
msgstr ""
-#: lexsup.c:529
+#: lexsup.c:531
msgid ""
"How to handle unresolved symbols. <method> is:\n"
" ignore-all, report-all, ignore-in-object-"
@@ -2062,207 +2063,208 @@ msgid ""
" ignore-in-shared-libs"
msgstr ""
-#: lexsup.c:534
+#: lexsup.c:536
msgid "[=NUMBER]"
msgstr ""
-#: lexsup.c:535
+#: lexsup.c:537
msgid "Output lots of information during link"
msgstr ""
-#: lexsup.c:539
+#: lexsup.c:541
msgid "Read version information script"
msgstr ""
-#: lexsup.c:542
+#: lexsup.c:544
msgid ""
"Take export symbols list from .exports, using\n"
" SYMBOL as the version."
msgstr ""
-#: lexsup.c:546
+#: lexsup.c:548
msgid "Add data symbols to dynamic list"
msgstr ""
-#: lexsup.c:548
+#: lexsup.c:550
msgid "Use C++ operator new/delete dynamic list"
msgstr ""
-#: lexsup.c:550
+#: lexsup.c:552
msgid "Use C++ typeinfo dynamic list"
msgstr ""
-#: lexsup.c:552
+#: lexsup.c:554
msgid "Read dynamic list"
msgstr ""
-#: lexsup.c:554
+#: lexsup.c:556
msgid "Export the specified symbol"
msgstr ""
-#: lexsup.c:556
+#: lexsup.c:558
msgid "Read export dynamic symbol list"
msgstr ""
-#: lexsup.c:558
+#: lexsup.c:560
msgid "Warn about duplicate common symbols"
msgstr ""
-#: lexsup.c:560
+#: lexsup.c:562
msgid "Warn if global constructors/destructors are seen"
msgstr ""
-#: lexsup.c:584
+#: lexsup.c:586
msgid "Warn if the multiple GP values are used"
msgstr ""
-#: lexsup.c:586
+#: lexsup.c:588
msgid "Warn only once per undefined symbol"
msgstr ""
-#: lexsup.c:588
+#: lexsup.c:590
msgid "Warn if start of section changes due to alignment"
msgstr ""
-#: lexsup.c:593
+#: lexsup.c:595
msgid "Warn if output has DT_TEXTREL (default)"
msgstr ""
-#: lexsup.c:595
+#: lexsup.c:597
msgid "Warn if output has DT_TEXTREL"
msgstr ""
-#: lexsup.c:601
+#: lexsup.c:603
msgid "Warn if an object has alternate ELF machine code"
msgstr ""
-#: lexsup.c:605
+#: lexsup.c:607
msgid "Report unresolved symbols as warnings"
msgstr ""
-#: lexsup.c:608
+#: lexsup.c:610
msgid "Report unresolved symbols as errors"
msgstr ""
-#: lexsup.c:610
+#: lexsup.c:612
msgid "Include all objects from following archives"
msgstr ""
-#: lexsup.c:613
+#: lexsup.c:615
msgid "Use wrapper functions for SYMBOL"
msgstr ""
-#: lexsup.c:617
+#: lexsup.c:619
msgid "Unresolved SYMBOL will not cause an error or warning"
msgstr ""
-#: lexsup.c:619
+#: lexsup.c:621
msgid "Push state of flags governing input file handling"
msgstr ""
-#: lexsup.c:622
+#: lexsup.c:624
msgid "Pop state of flags governing input file handling"
msgstr ""
-#: lexsup.c:625
+#: lexsup.c:627
msgid "Report target memory usage"
msgstr ""
-#: lexsup.c:627
+#: lexsup.c:629
msgid "=MODE"
msgstr ""
-#: lexsup.c:627
+#: lexsup.c:629
msgid "Control how orphan sections are handled."
msgstr ""
-#: lexsup.c:630
+#: lexsup.c:632
msgid "Show discarded sections in map file output (default)"
msgstr ""
-#: lexsup.c:633
+#: lexsup.c:635
msgid "Do not show discarded sections in map file output"
msgstr ""
-#: lexsup.c:636
+#: lexsup.c:638
msgid "Show local symbols in map file output"
msgstr ""
-#: lexsup.c:639
+#: lexsup.c:641
msgid "Do not show local symbols in map file output (default)"
msgstr ""
-#: lexsup.c:642
+#: lexsup.c:644
msgid "Emit names and types of static variables in CTF"
msgstr ""
-#: lexsup.c:645
+#: lexsup.c:647
msgid "Do not emit names and types of static variables in CTF"
msgstr ""
-#: lexsup.c:649
+#: lexsup.c:651
msgid ""
"How to share CTF types between translation units.\n"
" <method> is: share-unconflicted (default),\n"
" share-duplicated"
msgstr ""
-#: lexsup.c:813
-msgid "%F%P: Error: unable to disambiguate: %s (did you mean -%s ?)\n"
+#: lexsup.c:815
+msgid "%P: Error: unable to disambiguate: %s (did you mean -%s ?)\n"
msgstr ""
-#: lexsup.c:816
+#: lexsup.c:819
msgid "%P: Warning: grouped short command line options are deprecated: %s\n"
msgstr ""
-#: lexsup.c:843
+#: lexsup.c:846
msgid "%P: %s: missing argument\n"
msgstr ""
-#: lexsup.c:848
+#: lexsup.c:851
msgid "%P: unrecognized option '%s'\n"
msgstr ""
-#: lexsup.c:853
-msgid "%F%P: use the --help option for usage information\n"
+#: lexsup.c:856
+msgid "%P: use the --help option for usage information\n"
msgstr ""
-#: lexsup.c:872
-msgid "%F%P: unrecognized -a option `%s'\n"
+#: lexsup.c:875
+msgid "%P: unrecognized -a option `%s'\n"
msgstr ""
-#: lexsup.c:885
-msgid "%F%P: unrecognized -assert option `%s'\n"
+#: lexsup.c:888
+msgid "%P: unrecognized -assert option `%s'\n"
msgstr ""
-#: lexsup.c:929
-msgid "%F%P: unknown demangling style `%s'\n"
+#: lexsup.c:932
+msgid "%P: unknown demangling style `%s'\n"
msgstr ""
-#: lexsup.c:1037 lexsup.c:1533 eaarch64cloudabi.c:986 eaarch64cloudabib.c:986
-#: eaarch64elf.c:986 eaarch64elf32.c:986 eaarch64elf32b.c:986
-#: eaarch64elfb.c:986 eaarch64fbsd.c:991 eaarch64fbsdb.c:991
-#: eaarch64haiku.c:986 eaarch64linux.c:991 eaarch64linux32.c:991
-#: eaarch64linux32b.c:991 eaarch64linuxb.c:991 eaarch64nto.c:1148
-#: earmelf.c:1135 earmelf_fbsd.c:1135 earmelf_fuchsia.c:1140
-#: earmelf_haiku.c:1140 earmelf_linux.c:1140 earmelf_linux_eabi.c:1140
-#: earmelf_linux_fdpiceabi.c:1140 earmelf_nacl.c:1140 earmelf_nbsd.c:1135
-#: earmelf_phoenix.c:1140 earmelf_vxworks.c:1167 earmelfb.c:1135
-#: earmelfb_fbsd.c:1135 earmelfb_fuchsia.c:1140 earmelfb_linux.c:1140
-#: earmelfb_linux_eabi.c:1140 earmelfb_linux_fdpiceabi.c:1140
-#: earmelfb_nacl.c:1140 earmelfb_nbsd.c:1135 earmnto.c:1095 ecskyelf.c:602
-#: ecskyelf_linux.c:789 eelf32metag.c:788 eelf64lppc.c:1236
-#: eelf64lppc_fbsd.c:1236 eelf64ppc.c:1236 eelf64ppc_fbsd.c:1236
-#: ehppaelf.c:613 ehppalinux.c:825 ehppanbsd.c:825 ehppaobsd.c:825
-msgid "%F%P: invalid number `%s'\n"
+#: lexsup.c:1039 lexsup.c:1545 eaarch64cloudabi.c:1021
+#: eaarch64cloudabib.c:1021 eaarch64elf.c:1026 eaarch64elf32.c:1026
+#: eaarch64elf32b.c:1026 eaarch64elfb.c:1026 eaarch64fbsd.c:1026
+#: eaarch64fbsdb.c:1026 eaarch64haiku.c:1021 eaarch64linux.c:1026
+#: eaarch64linux32.c:1026 eaarch64linux32b.c:1026 eaarch64linuxb.c:1026
+#: eaarch64nto.c:1183 earmelf.c:1135 earmelf_fbsd.c:1135
+#: earmelf_fuchsia.c:1140 earmelf_haiku.c:1140 earmelf_linux.c:1140
+#: earmelf_linux_eabi.c:1140 earmelf_linux_fdpiceabi.c:1140
+#: earmelf_nacl.c:1140 earmelf_nbsd.c:1135 earmelf_phoenix.c:1140
+#: earmelf_vxworks.c:1167 earmelfb.c:1135 earmelfb_fbsd.c:1135
+#: earmelfb_fuchsia.c:1140 earmelfb_linux.c:1140 earmelfb_linux_eabi.c:1140
+#: earmelfb_linux_fdpiceabi.c:1140 earmelfb_nacl.c:1140 earmelfb_nbsd.c:1135
+#: earmnto.c:1095 ecskyelf.c:602 ecskyelf_linux.c:789 eelf32metag.c:788
+#: eelf64lppc.c:1237 eelf64lppc_fbsd.c:1237 eelf64ppc.c:1237
+#: eelf64ppc_fbsd.c:1237 ehppaelf.c:613 ehppalinux.c:825 ehppanbsd.c:825
+#: ehppaobsd.c:825
+msgid "%P: invalid number `%s'\n"
msgstr ""
-#: lexsup.c:1133
-msgid "%F%P: bad --unresolved-symbols option: %s\n"
+#: lexsup.c:1135
+msgid "%P: bad --unresolved-symbols option: %s\n"
msgstr ""
-#: lexsup.c:1220
-msgid "%F%P: bad -plugin-opt option\n"
+#: lexsup.c:1222
+msgid "%P: bad -plugin-opt option\n"
msgstr ""
#. This can happen if the user put "-rpath,a" on the command
@@ -2273,175 +2275,175 @@ msgstr ""
#. an error message here. We cannot just make this a warning,
#. increment optind, and continue because getopt is too confused
#. and will seg-fault the next time around.
-#: lexsup.c:1240
-msgid "%F%P: unrecognised option: %s\n"
+#: lexsup.c:1242
+msgid "%P: unrecognised option: %s\n"
msgstr ""
-#: lexsup.c:1243 lexsup.c:1353 lexsup.c:1374 lexsup.c:1502
-msgid "%F%P: -r and %s may not be used together\n"
+#: lexsup.c:1245 lexsup.c:1355 lexsup.c:1376 lexsup.c:1514
+msgid "%P: -r and %s may not be used together\n"
msgstr ""
-#: lexsup.c:1365
-msgid "%F%P: -shared not supported\n"
+#: lexsup.c:1367
+msgid "%P: -shared not supported\n"
msgstr ""
-#: lexsup.c:1379
-msgid "%F%P: -pie not supported\n"
+#: lexsup.c:1381
+msgid "%P: -pie not supported\n"
msgstr ""
-#: lexsup.c:1385
+#: lexsup.c:1387
msgid "%P: SONAME must not be empty string; keeping previous one\n"
msgstr ""
-#: lexsup.c:1391
+#: lexsup.c:1393
msgid "descending"
msgstr ""
-#: lexsup.c:1393
+#: lexsup.c:1395
msgid "ascending"
msgstr ""
-#: lexsup.c:1396
-msgid "%F%P: invalid common section sorting option: %s\n"
+#: lexsup.c:1398
+msgid "%P: invalid common section sorting option: %s\n"
msgstr ""
-#: lexsup.c:1400
+#: lexsup.c:1402
msgid "name"
msgstr ""
-#: lexsup.c:1402
+#: lexsup.c:1404
msgid "alignment"
msgstr ""
-#: lexsup.c:1405
-msgid "%F%P: invalid section sorting option: %s\n"
+#: lexsup.c:1407
+msgid "%P: invalid section sorting option: %s\n"
msgstr ""
-#: lexsup.c:1411
+#: lexsup.c:1412
msgid ""
"%P: warning: section ordering file changed. Ignoring earlier definition\n"
msgstr ""
-#: lexsup.c:1448
-msgid "%F%P: invalid argument to option \"--section-start\"\n"
+#: lexsup.c:1460
+msgid "%P: invalid argument to option \"--section-start\"\n"
msgstr ""
-#: lexsup.c:1455
-msgid "%F%P: missing argument(s) to option \"--section-start\"\n"
+#: lexsup.c:1467
+msgid "%P: missing argument(s) to option \"--section-start\"\n"
msgstr ""
-#: lexsup.c:1728
-msgid "%F%P: group ended before it began (--help for usage)\n"
+#: lexsup.c:1740
+msgid "%P: group ended before it began (--help for usage)\n"
msgstr ""
-#: lexsup.c:1744
-msgid "%F%P: failed to add remap file %s\n"
+#: lexsup.c:1756
+msgid "%P: failed to add remap file %s\n"
msgstr ""
#. FIXME: Should we allow --remap-inputs=@myfile as a synonym
#. for --remap-inputs-file=myfile ?
-#: lexsup.c:1753
-msgid "%F%P: invalid argument to option --remap-inputs\n"
+#: lexsup.c:1765
+msgid "%P: invalid argument to option --remap-inputs\n"
msgstr ""
-#: lexsup.c:1774
-msgid "%F%P: invalid cache memory size: %s\n"
+#: lexsup.c:1786
+msgid "%P: invalid cache memory size: %s\n"
msgstr ""
-#: lexsup.c:1788
+#: lexsup.c:1799
msgid "%X%P: --hash-size needs a numeric argument\n"
msgstr ""
-#: lexsup.c:1800
-msgid "%F%P: no state pushed before popping\n"
+#: lexsup.c:1811
+msgid "%P: no state pushed before popping\n"
msgstr ""
-#: lexsup.c:1823
-msgid "%F%P: invalid argument to option \"--orphan-handling\"\n"
+#: lexsup.c:1834
+msgid "%P: invalid argument to option \"--orphan-handling\"\n"
msgstr ""
-#: lexsup.c:1861
-msgid "%F%P: bad --ctf-share-types option: %s\n"
+#: lexsup.c:1872
+msgid "%P: bad --ctf-share-types option: %s\n"
msgstr ""
-#: lexsup.c:1878
+#: lexsup.c:1889
msgid "%P: no file/directory name provided for map output; ignored\n"
msgstr ""
-#: lexsup.c:1906
+#: lexsup.c:1917
msgid "%P: cannot stat linker map file: %E\n"
msgstr ""
-#: lexsup.c:1917
+#: lexsup.c:1928
msgid "%P: linker map file is not a regular file\n"
msgstr ""
-#: lexsup.c:1932
+#: lexsup.c:1943
msgid "%P: SONAME must not be empty string; ignored\n"
msgstr ""
-#: lexsup.c:1938
+#: lexsup.c:1949
msgid "%P: missing --end-group; added as last command line option\n"
msgstr ""
-#: lexsup.c:2047
-msgid "%F%P: -r and -z nosectionheader may not be used together\n"
+#: lexsup.c:2038
+msgid "%P: -r and -z nosectionheader may not be used together\n"
msgstr ""
-#: lexsup.c:2055
-msgid "%F%P: -F may not be used without -shared\n"
+#: lexsup.c:2046
+msgid "%P: -F may not be used without -shared\n"
msgstr ""
-#: lexsup.c:2057
-msgid "%F%P: -f may not be used without -shared\n"
+#: lexsup.c:2048
+msgid "%P: -f may not be used without -shared\n"
msgstr ""
-#: lexsup.c:2098 lexsup.c:2111
-msgid "%F%P: invalid hex number `%s'\n"
+#: lexsup.c:2089 lexsup.c:2102
+msgid "%P: invalid hex number `%s'\n"
msgstr ""
-#: lexsup.c:2141
+#: lexsup.c:2132
#, c-format
msgid " --audit=AUDITLIB Specify a library to use for auditing\n"
msgstr ""
-#: lexsup.c:2143
+#: lexsup.c:2134
#, c-format
msgid " -Bgroup Selects group name lookup rules for DSO\n"
msgstr ""
-#: lexsup.c:2145
+#: lexsup.c:2136
#, c-format
msgid " --disable-new-dtags Disable new dynamic tags\n"
msgstr ""
-#: lexsup.c:2147
+#: lexsup.c:2138
#, c-format
msgid " --enable-new-dtags Enable new dynamic tags\n"
msgstr ""
-#: lexsup.c:2149
+#: lexsup.c:2140
#, c-format
msgid " --eh-frame-hdr Create .eh_frame_hdr section\n"
msgstr ""
-#: lexsup.c:2151
+#: lexsup.c:2142
#, c-format
msgid " --no-eh-frame-hdr Do not create .eh_frame_hdr section\n"
msgstr ""
-#: lexsup.c:2153
+#: lexsup.c:2144
#, c-format
msgid " --exclude-libs=LIBS Make all symbols in LIBS hidden\n"
msgstr ""
-#: lexsup.c:2155
+#: lexsup.c:2146
#, c-format
msgid ""
" --hash-style=STYLE Set hash style to sysv/gnu/both. Default: "
msgstr ""
-#: lexsup.c:2174
+#: lexsup.c:2165
#, c-format
msgid ""
" -P AUDITLIB, --depaudit=AUDITLIB\n"
@@ -2449,20 +2451,20 @@ msgid ""
"dependencies\n"
msgstr ""
-#: lexsup.c:2177
+#: lexsup.c:2168
#, c-format
msgid ""
" -z combreloc Merge dynamic relocs into one section and "
"sort\n"
msgstr ""
-#: lexsup.c:2179
+#: lexsup.c:2170
#, c-format
msgid ""
" -z nocombreloc Don't merge dynamic relocs into one section\n"
msgstr ""
-#: lexsup.c:2181
+#: lexsup.c:2172
#, c-format
msgid ""
" -z global Make symbols in DSO available for "
@@ -2470,424 +2472,424 @@ msgid ""
" loaded objects\n"
msgstr ""
-#: lexsup.c:2184
+#: lexsup.c:2175
#, c-format
msgid ""
" -z initfirst Mark DSO to be initialized first at runtime\n"
msgstr ""
-#: lexsup.c:2186
+#: lexsup.c:2177
#, c-format
msgid ""
" -z interpose Mark object to interpose all DSOs but "
"executable\n"
msgstr ""
-#: lexsup.c:2188
+#: lexsup.c:2179
#, c-format
msgid ""
" -z unique Mark DSO to be loaded at most once by default, "
"and only in the main namespace\n"
msgstr ""
-#: lexsup.c:2190
+#: lexsup.c:2181
#, c-format
msgid ""
" -z nounique Don't mark DSO as a loadable at most once\n"
msgstr ""
-#: lexsup.c:2192
+#: lexsup.c:2183
#, c-format
msgid ""
" -z lazy Mark object lazy runtime binding (default)\n"
msgstr ""
-#: lexsup.c:2194
+#: lexsup.c:2185
#, c-format
msgid " -z loadfltr Mark object requiring immediate process\n"
msgstr ""
-#: lexsup.c:2196
+#: lexsup.c:2187
#, c-format
msgid " -z nocopyreloc Don't create copy relocs\n"
msgstr ""
-#: lexsup.c:2198
+#: lexsup.c:2189
#, c-format
msgid ""
" -z nodefaultlib Mark object not to use default search paths\n"
msgstr ""
-#: lexsup.c:2200
+#: lexsup.c:2191
#, c-format
msgid " -z nodelete Mark DSO non-deletable at runtime\n"
msgstr ""
-#: lexsup.c:2202
+#: lexsup.c:2193
#, c-format
msgid " -z nodlopen Mark DSO not available to dlopen\n"
msgstr ""
-#: lexsup.c:2204
+#: lexsup.c:2195
#, c-format
msgid " -z nodump Mark DSO not available to dldump\n"
msgstr ""
-#: lexsup.c:2206
+#: lexsup.c:2197
#, c-format
msgid " -z now Mark object non-lazy runtime binding\n"
msgstr ""
-#: lexsup.c:2208
+#: lexsup.c:2199
#, c-format
msgid ""
" -z origin Mark object requiring immediate $ORIGIN\n"
" processing at runtime\n"
msgstr ""
-#: lexsup.c:2212
+#: lexsup.c:2203
#, c-format
msgid " -z relro Create RELRO program header (default)\n"
msgstr ""
-#: lexsup.c:2214
+#: lexsup.c:2205
#, c-format
msgid " -z norelro Don't create RELRO program header\n"
msgstr ""
-#: lexsup.c:2217
+#: lexsup.c:2208
#, c-format
msgid " -z relro Create RELRO program header\n"
msgstr ""
-#: lexsup.c:2219
+#: lexsup.c:2210
#, c-format
msgid ""
" -z norelro Don't create RELRO program header (default)\n"
msgstr ""
-#: lexsup.c:2223
+#: lexsup.c:2214
#, c-format
msgid ""
" -z separate-code Create separate code program header (default)\n"
msgstr ""
-#: lexsup.c:2225
+#: lexsup.c:2216
#, c-format
msgid ""
" -z noseparate-code Don't create separate code program header\n"
msgstr ""
-#: lexsup.c:2228
+#: lexsup.c:2219
#, c-format
msgid " -z separate-code Create separate code program header\n"
msgstr ""
-#: lexsup.c:2230
+#: lexsup.c:2221
#, c-format
msgid ""
" -z noseparate-code Don't create separate code program header "
"(default)\n"
msgstr ""
-#: lexsup.c:2234
+#: lexsup.c:2225
#, c-format
msgid ""
" --rosegment With -z separate-code, create a single read-"
"only segment (default)\n"
msgstr ""
-#: lexsup.c:2236
+#: lexsup.c:2227
#, c-format
msgid ""
" --no-rosegment With -z separate-code, creste two read-only "
"segments\n"
msgstr ""
-#: lexsup.c:2239
+#: lexsup.c:2230
#, c-format
msgid ""
" --rosegment With -z separate-code, create a single read-"
"only segment\n"
msgstr ""
-#: lexsup.c:2241
+#: lexsup.c:2232
#, c-format
msgid ""
" --no-rosegment With -z separate-code, creste two read-only "
"segments (default)\n"
msgstr ""
-#: lexsup.c:2244
+#: lexsup.c:2235
#, c-format
msgid ""
" -z common Generate common symbols with STT_COMMON type\n"
msgstr ""
-#: lexsup.c:2246
+#: lexsup.c:2237
#, c-format
msgid ""
" -z nocommon Generate common symbols with STT_OBJECT type\n"
msgstr ""
-#: lexsup.c:2249
+#: lexsup.c:2240
#, c-format
msgid ""
" -z text Treat DT_TEXTREL in output as error (default)\n"
msgstr ""
-#: lexsup.c:2252
+#: lexsup.c:2243
#, c-format
msgid " -z text Treat DT_TEXTREL in output as error\n"
msgstr ""
-#: lexsup.c:2256
+#: lexsup.c:2247
#, c-format
msgid ""
" -z notext Don't treat DT_TEXTREL in output as error "
"(default)\n"
msgstr ""
-#: lexsup.c:2258
+#: lexsup.c:2249
#, c-format
msgid ""
" -z textoff Don't treat DT_TEXTREL in output as error "
"(default)\n"
msgstr ""
-#: lexsup.c:2263
+#: lexsup.c:2254
#, c-format
msgid ""
" -z notext Don't treat DT_TEXTREL in output as error\n"
msgstr ""
-#: lexsup.c:2265
+#: lexsup.c:2256
#, c-format
msgid ""
" -z textoff Don't treat DT_TEXTREL in output as error\n"
msgstr ""
-#: lexsup.c:2269
+#: lexsup.c:2260
#, c-format
msgid " -z memory-seal Mark object be memory sealed (default)\n"
msgstr ""
-#: lexsup.c:2271
+#: lexsup.c:2262
#, c-format
msgid " -z nomemory-seal Don't mark oject to be memory sealed\n"
msgstr ""
-#: lexsup.c:2274
+#: lexsup.c:2265
#, c-format
msgid " -z memory-seal Mark object be memory sealed\n"
msgstr ""
-#: lexsup.c:2276
+#: lexsup.c:2267
#, c-format
msgid ""
" -z nomemory-seal Don't mark oject to be memory sealed "
"(default)\n"
msgstr ""
-#: lexsup.c:2284
+#: lexsup.c:2275
#, c-format
msgid " --build-id[=STYLE] Generate build ID note\n"
msgstr ""
-#: lexsup.c:2288
+#: lexsup.c:2279
#, c-format
msgid " Styles: none,md5,sha1,xx,uuid,0xHEX\n"
msgstr ""
-#: lexsup.c:2292
+#: lexsup.c:2283
#, c-format
msgid " Styles: none,md5,sha1,uuid,0xHEX\n"
msgstr ""
-#: lexsup.c:2295
+#: lexsup.c:2286
#, c-format
msgid " --package-metadata[=JSON] Generate package metadata note\n"
msgstr ""
-#: lexsup.c:2297
+#: lexsup.c:2288
#, c-format
msgid ""
" --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi|zstd]\n"
"\t\t\t Compress DWARF debug sections\n"
msgstr ""
-#: lexsup.c:2300
+#: lexsup.c:2291
#, c-format
msgid " Default: %s\n"
msgstr ""
-#: lexsup.c:2303
+#: lexsup.c:2294
#, c-format
msgid " -z common-page-size=SIZE Set common page size to SIZE\n"
msgstr ""
-#: lexsup.c:2305
+#: lexsup.c:2296
#, c-format
msgid " -z max-page-size=SIZE Set maximum page size to SIZE\n"
msgstr ""
-#: lexsup.c:2307
+#: lexsup.c:2298
#, c-format
msgid ""
" -z defs Report unresolved symbols in object files\n"
msgstr ""
-#: lexsup.c:2309
+#: lexsup.c:2300
#, c-format
msgid ""
" -z undefs Ignore unresolved symbols in object files\n"
msgstr ""
-#: lexsup.c:2311
+#: lexsup.c:2302
#, c-format
msgid " -z muldefs Allow multiple definitions\n"
msgstr ""
-#: lexsup.c:2313
+#: lexsup.c:2304
#, c-format
msgid " -z stack-size=SIZE Set size of stack segment\n"
msgstr ""
-#: lexsup.c:2316
+#: lexsup.c:2307
#, c-format
msgid ""
" -z execstack Mark executable as requiring executable stack\n"
msgstr ""
-#: lexsup.c:2318
+#: lexsup.c:2309
#, c-format
msgid ""
" -z noexecstack Mark executable as not requiring executable "
"stack\n"
msgstr ""
-#: lexsup.c:2320
+#: lexsup.c:2311
#, c-format
msgid ""
" --warn-execstack-objects Generate a warning if an object file requests "
"an executable stack\n"
msgstr ""
-#: lexsup.c:2323
+#: lexsup.c:2314
#, c-format
msgid ""
" --warn-execstack Generate a warning if creating an executable "
"stack\n"
msgstr ""
-#: lexsup.c:2326
+#: lexsup.c:2317
#, c-format
msgid ""
" --warn-execstack Generate a warning if creating an executable "
"stack (default)\n"
msgstr ""
-#: lexsup.c:2330
+#: lexsup.c:2321
#, c-format
msgid ""
" --no-warn-execstack Do not generate a warning if creating an "
"executable stack (default)\n"
msgstr ""
-#: lexsup.c:2333
+#: lexsup.c:2324
#, c-format
msgid ""
" --no-warn-execstack Do not generate a warning if creating an "
"executable stack\n"
msgstr ""
-#: lexsup.c:2336
+#: lexsup.c:2327
#, c-format
msgid ""
" --error-execstack Turn warnings about executable stacks into "
"errors\n"
msgstr ""
-#: lexsup.c:2338
+#: lexsup.c:2329
#, c-format
msgid ""
" --no-error-execstack Do not turn warnings about executable stacks "
"into errors\n"
msgstr ""
-#: lexsup.c:2342
+#: lexsup.c:2333
#, c-format
msgid ""
" --warn-rwx-segments Generate a warning if a LOAD segment has RWX "
"permissions (default)\n"
msgstr ""
-#: lexsup.c:2344
+#: lexsup.c:2335
#, c-format
msgid ""
" --no-warn-rwx-segments Do not generate a warning if a LOAD segments "
"has RWX permissions\n"
msgstr ""
-#: lexsup.c:2347
+#: lexsup.c:2338
#, c-format
msgid ""
" --warn-rwx-segments Generate a warning if a LOAD segment has RWX "
"permissions\n"
msgstr ""
-#: lexsup.c:2349
+#: lexsup.c:2340
#, c-format
msgid ""
" --no-warn-rwx-segments Do not generate a warning if a LOAD segments "
"has RWX permissions (default)\n"
msgstr ""
-#: lexsup.c:2352
+#: lexsup.c:2343
#, c-format
msgid ""
" --error-rwx-segments Turn warnings about loadable RWX segments into "
"errors\n"
msgstr ""
-#: lexsup.c:2354
+#: lexsup.c:2345
#, c-format
msgid ""
" --no-error-rwx-segments Do not turn warnings about loadable RWX "
"segments into errors\n"
msgstr ""
-#: lexsup.c:2357
+#: lexsup.c:2348
#, c-format
msgid " -z unique-symbol Avoid duplicated local symbol names\n"
msgstr ""
-#: lexsup.c:2359
+#: lexsup.c:2350
#, c-format
msgid ""
" -z nounique-symbol Keep duplicated local symbol names (default)\n"
msgstr ""
-#: lexsup.c:2361
+#: lexsup.c:2352
#, c-format
msgid ""
" -z globalaudit Mark executable requiring global auditing\n"
msgstr ""
-#: lexsup.c:2363
+#: lexsup.c:2354
#, c-format
msgid ""
" -z start-stop-gc Enable garbage collection on __start/__stop\n"
msgstr ""
-#: lexsup.c:2365
+#: lexsup.c:2356
#, c-format
msgid ""
" -z nostart-stop-gc Don't garbage collect __start/__stop "
"(default)\n"
msgstr ""
-#: lexsup.c:2367
+#: lexsup.c:2358
#, c-format
msgid ""
" -z start-stop-visibility=V Set visibility of built-in __start/__stop "
@@ -2895,23 +2897,23 @@ msgid ""
" to DEFAULT, PROTECTED, HIDDEN or INTERNAL\n"
msgstr ""
-#: lexsup.c:2370
+#: lexsup.c:2361
#, c-format
msgid " -z sectionheader Generate section header (default)\n"
msgstr ""
-#: lexsup.c:2372
+#: lexsup.c:2363
#, c-format
msgid " -z nosectionheader Do not generate section header\n"
msgstr ""
-#: lexsup.c:2379
+#: lexsup.c:2370
#, c-format
msgid ""
" --ld-generated-unwind-info Generate exception handling info for PLT\n"
msgstr ""
-#: lexsup.c:2381
+#: lexsup.c:2372
#, c-format
msgid ""
" --no-ld-generated-unwind-info\n"
@@ -2919,55 +2921,55 @@ msgid ""
"PLT\n"
msgstr ""
-#: lexsup.c:2391
+#: lexsup.c:2382
#, c-format
msgid "ELF emulations:\n"
msgstr ""
-#: lexsup.c:2409
+#: lexsup.c:2400
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr ""
-#: lexsup.c:2411
+#: lexsup.c:2402
#, c-format
msgid "Options:\n"
msgstr ""
-#: lexsup.c:2489
+#: lexsup.c:2480
#, c-format
msgid " @FILE"
msgstr ""
-#: lexsup.c:2492
+#: lexsup.c:2483
#, c-format
msgid "Read options from FILE\n"
msgstr ""
#. Note: Various tools (such as libtool) depend upon the
#. format of the listings below - do not change them.
-#: lexsup.c:2497
+#: lexsup.c:2488
#, c-format
msgid "%s: supported targets:"
msgstr ""
-#: lexsup.c:2505
+#: lexsup.c:2496
#, c-format
msgid "%s: supported emulations: "
msgstr ""
-#: lexsup.c:2510
+#: lexsup.c:2501
#, c-format
msgid "%s: emulation specific options:\n"
msgstr ""
-#: lexsup.c:2517
+#: lexsup.c:2508
#, c-format
msgid "Report bugs to %s\n"
msgstr ""
#: mri.c:291
-msgid "%F%P: unknown format type %s\n"
+msgid "%P: unknown format type %s\n"
msgstr ""
#: pdb.c:845 pdb.c:1136
@@ -3410,46 +3412,46 @@ msgstr ""
msgid "%P: warning: cannot populate info stream in PDB file: %E\n"
msgstr ""
-#: pe-dll.c:480
+#: pe-dll.c:483
msgid "%X%P: unsupported PEI architecture: %s\n"
msgstr ""
-#: pe-dll.c:869
+#: pe-dll.c:872
msgid "%X%P: cannot export %s: invalid export name\n"
msgstr ""
-#: pe-dll.c:921
+#: pe-dll.c:924
#, c-format
msgid "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
msgstr ""
-#: pe-dll.c:928
+#: pe-dll.c:931
#, c-format
msgid "%P: warning, duplicate EXPORT: %s\n"
msgstr ""
-#: pe-dll.c:1035
+#: pe-dll.c:1038
#, c-format
msgid "%X%P: cannot export %s: symbol not defined\n"
msgstr ""
-#: pe-dll.c:1041
+#: pe-dll.c:1044
#, c-format
msgid "%X%P: cannot export %s: symbol wrong type (%d vs %d)\n"
msgstr ""
-#: pe-dll.c:1048
+#: pe-dll.c:1051
#, c-format
msgid "%X%P: cannot export %s: symbol not found\n"
msgstr ""
-#: pe-dll.c:1072 eaarch64cloudabi.c:370 eaarch64cloudabib.c:370
-#: eaarch64elf.c:369 eaarch64elf32.c:369 eaarch64elf32b.c:369
-#: eaarch64elfb.c:369 eaarch64fbsd.c:370 eaarch64fbsdb.c:370
-#: eaarch64haiku.c:370 eaarch64linux.c:370 eaarch64linux32.c:370
-#: eaarch64linux32b.c:370 eaarch64linuxb.c:370 eaarch64nto.c:370
-#: eaix5ppc.c:1632 eaix5ppc.c:1642 eaix5rs6.c:1632 eaix5rs6.c:1642
-#: eaixppc.c:1632 eaixppc.c:1642 eaixrs6.c:1632 eaixrs6.c:1642 earmelf.c:572
+#: pe-dll.c:1075 eaarch64cloudabi.c:376 eaarch64cloudabib.c:376
+#: eaarch64elf.c:376 eaarch64elf32.c:376 eaarch64elf32b.c:376
+#: eaarch64elfb.c:376 eaarch64fbsd.c:376 eaarch64fbsdb.c:376
+#: eaarch64haiku.c:376 eaarch64linux.c:376 eaarch64linux32.c:376
+#: eaarch64linux32b.c:376 eaarch64linuxb.c:376 eaarch64nto.c:376
+#: eaix5ppc.c:1631 eaix5ppc.c:1641 eaix5rs6.c:1631 eaix5rs6.c:1641
+#: eaixppc.c:1631 eaixppc.c:1641 eaixrs6.c:1631 eaixrs6.c:1641 earmelf.c:572
#: earmelf_fbsd.c:572 earmelf_fuchsia.c:573 earmelf_haiku.c:573
#: earmelf_linux.c:573 earmelf_linux_eabi.c:573 earmelf_linux_fdpiceabi.c:573
#: earmelf_nacl.c:573 earmelf_nbsd.c:572 earmelf_phoenix.c:573
@@ -3469,104 +3471,104 @@ msgstr ""
#: eelf64ltsmip_fbsd.c:175 eelf64ppc.c:122 eelf64ppc_fbsd.c:122
#: eelf_mipsel_haiku.c:175 ehppaelf.c:113 ehppalinux.c:113 ehppanbsd.c:113
#: ehppaobsd.c:113 em68hc11elf.c:173 em68hc11elfb.c:173 em68hc12elf.c:173
-#: em68hc12elfb.c:173 eppcmacos.c:1632 eppcmacos.c:1642
-msgid "%F%P: can not create BFD: %E\n"
+#: em68hc12elfb.c:173 eppcmacos.c:1631 eppcmacos.c:1641
+msgid "%P: can not create BFD: %E\n"
msgstr ""
-#: pe-dll.c:1086
+#: pe-dll.c:1089
msgid "%X%P: can not create .edata section: %E\n"
msgstr ""
-#: pe-dll.c:1100
+#: pe-dll.c:1103
msgid "%X%P: can not create .reloc section: %E\n"
msgstr ""
-#: pe-dll.c:1149
+#: pe-dll.c:1152
#, c-format
msgid "%X%P: error: ordinal used twice: %d (%s vs %s)\n"
msgstr ""
-#: pe-dll.c:1185
+#: pe-dll.c:1188
#, c-format
msgid "%X%P: error: export ordinal too large: %d\n"
msgstr ""
-#: pe-dll.c:1511
+#: pe-dll.c:1514
#, c-format
msgid "Info: resolving %s by linking to %s (auto-import)\n"
msgstr ""
-#: pe-dll.c:1517
+#: pe-dll.c:1520
msgid ""
"%P: warning: auto-importing has been activated without --enable-auto-import "
"specified on the command line; this should work unless it involves constant "
"data structures referencing symbols from auto-imported DLLs\n"
msgstr ""
-#: pe-dll.c:1680
+#: pe-dll.c:1684
msgid "%P: base relocation for section `%s' above .reloc section\n"
msgstr ""
-#: pe-dll.c:1730
+#: pe-dll.c:1734
#, c-format
msgid "%X%P: error: %d-bit reloc in dll\n"
msgstr ""
-#: pe-dll.c:1856
+#: pe-dll.c:1860
#, c-format
msgid "%P: can't open output def file %s\n"
msgstr ""
-#: pe-dll.c:2005
+#: pe-dll.c:2009
#, c-format
msgid "; no contents available\n"
msgstr ""
-#: pe-dll.c:2364
+#: pe-dll.c:2368
msgid "%P: error: NULL decorated name for %s\n"
msgstr ""
-#: pe-dll.c:2899
+#: pe-dll.c:2903
msgid ""
"%X%P: %H: variable '%pT' can't be auto-imported; please read the "
"documentation for ld's --enable-auto-import for details\n"
msgstr ""
-#: pe-dll.c:2920
+#: pe-dll.c:2924
#, c-format
msgid "%X%P: can't open .lib file: %s\n"
msgstr ""
-#: pe-dll.c:2926
+#: pe-dll.c:2930
#, c-format
msgid "Creating library file: %s\n"
msgstr ""
-#: pe-dll.c:2956
+#: pe-dll.c:2960
msgid "%X%P: bfd_openr %s: %E\n"
msgstr ""
-#: pe-dll.c:2968
+#: pe-dll.c:2972
msgid "%X%P: %s(%s): can't find member in non-archive file"
msgstr ""
-#: pe-dll.c:2982
+#: pe-dll.c:2986
msgid "%X%P: %s(%s): can't find member in archive"
msgstr ""
-#: pe-dll.c:3239
+#: pe-dll.c:3243
msgid "%X%P: add symbols %s: %E\n"
msgstr ""
-#: pe-dll.c:3450
+#: pe-dll.c:3454
msgid "%X%P: open %s: %E\n"
msgstr ""
-#: pe-dll.c:3460
+#: pe-dll.c:3464
msgid "%X%P: %s: this doesn't appear to be a DLL\n"
msgstr ""
-#: pe-dll.c:3680
+#: pe-dll.c:3684
msgid "%X%P: error: can't use long section names on this arch\n"
msgstr ""
@@ -3574,8 +3576,8 @@ msgstr ""
msgid "<no plugin>"
msgstr ""
-#: plugin.c:255 plugin.c:1137
-msgid "%F%P: %s: error loading plugin: %s\n"
+#: plugin.c:255 plugin.c:1139
+msgid "%P: %s: error loading plugin: %s\n"
msgstr ""
#: plugin.c:262
@@ -3583,79 +3585,79 @@ msgid "%P: %s: duplicated plugin\n"
msgstr ""
#: plugin.c:346
-msgid "%F%P: could not create dummy IR bfd: %E\n"
+msgid "%P: could not create dummy IR bfd: %E\n"
msgstr ""
-#: plugin.c:427
-msgid "%F%P: %s: non-ELF symbol in ELF BFD!\n"
+#: plugin.c:428
+msgid "%P: %s: non-ELF symbol in ELF BFD!\n"
msgstr ""
-#: plugin.c:438
-msgid "%F%P: unknown ELF symbol visibility: %d!\n"
+#: plugin.c:439
+msgid "%P: unknown ELF symbol visibility: %d!\n"
msgstr ""
-#: plugin.c:560
-msgid "%F%P: unsupported input file size: %s (%ld bytes)\n"
+#: plugin.c:561
+msgid "%P: unsupported input file size: %s (%ld bytes)\n"
msgstr ""
-#: plugin.c:705
+#: plugin.c:706
#, c-format
msgid "unknown LTO kind value %x"
msgstr ""
-#: plugin.c:731
+#: plugin.c:732
#, c-format
msgid "unknown LTO resolution value %x"
msgstr ""
-#: plugin.c:751
+#: plugin.c:752
#, c-format
msgid "unknown LTO visibility value %x"
msgstr ""
#. We should not have a new, indirect or warning symbol here.
-#: plugin.c:836
-msgid "%F%P: %s: plugin symbol table corrupt (sym type %d)\n"
+#: plugin.c:837
+msgid "%P: %s: plugin symbol table corrupt (sym type %d)\n"
msgstr ""
-#: plugin.c:901
+#: plugin.c:902
msgid "%P: %pB: symbol `%s' definition: %s, visibility: %s, resolution: %s\n"
msgstr ""
-#: plugin.c:978
+#: plugin.c:979
msgid "%P: warning: "
msgstr ""
#: plugin.c:989
-msgid "%P: error: "
+msgid "%X%P: error: "
msgstr ""
-#: plugin.c:1144
-msgid "%F%P: %s: plugin error: %d\n"
+#: plugin.c:1146
+msgid "%P: %s: plugin error: %d\n"
msgstr ""
-#: plugin.c:1208
-msgid "%F%P: plugin_strdup failed to allocate memory: %s\n"
+#: plugin.c:1210
+msgid "%P: plugin_strdup failed to allocate memory: %s\n"
msgstr ""
-#: plugin.c:1250
-msgid "%F%P: plugin failed to allocate memory for input: %s\n"
+#: plugin.c:1252
+msgid "%P: plugin failed to allocate memory for input: %s\n"
msgstr ""
-#: plugin.c:1279
-msgid "%F%P: %s: plugin reported error claiming file\n"
+#: plugin.c:1281
+msgid "%P: %s: plugin reported error claiming file\n"
msgstr ""
-#: plugin.c:1401
+#: plugin.c:1403
msgid "%P: %s: error in plugin cleanup: %d (ignored)\n"
msgstr ""
-#: eaarch64cloudabi.c:237 eaarch64cloudabib.c:237 eaarch64elf.c:236
-#: eaarch64elf32.c:236 eaarch64elf32b.c:236 eaarch64elfb.c:236
-#: eaarch64fbsd.c:237 eaarch64fbsdb.c:237 eaarch64haiku.c:237
-#: eaarch64linux.c:237 eaarch64linux32.c:237 eaarch64linux32b.c:237
-#: eaarch64linuxb.c:237 eaarch64nto.c:237 eaix5ppc.c:1097 eaix5rs6.c:1097
-#: eaixppc.c:1097 eaixrs6.c:1097 earmelf.c:299 earmelf_fbsd.c:299
+#: eaarch64cloudabi.c:242 eaarch64cloudabib.c:242 eaarch64elf.c:242
+#: eaarch64elf32.c:242 eaarch64elf32b.c:242 eaarch64elfb.c:242
+#: eaarch64fbsd.c:242 eaarch64fbsdb.c:242 eaarch64haiku.c:242
+#: eaarch64linux.c:242 eaarch64linux32.c:242 eaarch64linux32b.c:242
+#: eaarch64linuxb.c:242 eaarch64nto.c:242 eaix5ppc.c:1096 eaix5rs6.c:1096
+#: eaixppc.c:1096 eaixrs6.c:1096 earmelf.c:299 earmelf_fbsd.c:299
#: earmelf_fuchsia.c:300 earmelf_haiku.c:300 earmelf_linux.c:300
#: earmelf_linux_eabi.c:300 earmelf_linux_fdpiceabi.c:300 earmelf_nacl.c:300
#: earmelf_nbsd.c:299 earmelf_phoenix.c:300 earmelf_vxworks.c:299
@@ -3670,24 +3672,25 @@ msgstr ""
#: eelf32b4300.c:208 eelf32bmip.c:208 eelf32bmipn32.c:222 eelf32bsmip.c:222
#: eelf32btsmip.c:208 eelf32btsmip_fbsd.c:208 eelf32btsmipn32.c:208
#: eelf32btsmipn32_fbsd.c:208 eelf32ebmip.c:208 eelf32ebmipvxworks.c:208
-#: eelf32elmip.c:208 eelf32elmipvxworks.c:208 eelf32l4300.c:208
-#: eelf32lmip.c:208 eelf32lr5900.c:208 eelf32lr5900n32.c:208 eelf32lsmip.c:208
-#: eelf32ltsmip.c:208 eelf32ltsmip_fbsd.c:208 eelf32ltsmipn32.c:208
-#: eelf32ltsmipn32_fbsd.c:208 eelf32metag.c:209 eelf32mipswindiss.c:208
-#: eelf64bmip.c:222 eelf64btsmip.c:208 eelf64btsmip_fbsd.c:208
+#: eelf32elmip.c:208 eelf32elmipvxworks.c:208 eelf32kvx.c:198
+#: eelf32l4300.c:208 eelf32lmip.c:208 eelf32lr5900.c:208 eelf32lr5900n32.c:208
+#: eelf32lsmip.c:208 eelf32ltsmip.c:208 eelf32ltsmip_fbsd.c:208
+#: eelf32ltsmipn32.c:208 eelf32ltsmipn32_fbsd.c:208 eelf32metag.c:209
+#: eelf32mipswindiss.c:208 eelf64bmip.c:222 eelf64btsmip.c:208
+#: eelf64btsmip_fbsd.c:208 eelf64kvx.c:198 eelf64kvx_linux.c:196
#: eelf64lppc.c:485 eelf64lppc_fbsd.c:485 eelf64ltsmip.c:208
#: eelf64ltsmip_fbsd.c:208 eelf64ppc.c:485 eelf64ppc_fbsd.c:485
#: eelf_mipsel_haiku.c:208 ehppaelf.c:233 ehppalinux.c:233 ehppanbsd.c:233
#: ehppaobsd.c:233 em68hc11elf.c:298 em68hc11elfb.c:298 em68hc12elf.c:298
-#: em68hc12elfb.c:298 eppcmacos.c:1097
+#: em68hc12elfb.c:298 eppcmacos.c:1096
msgid "%X%P: can not make stub section: %E\n"
msgstr ""
-#: eaarch64cloudabi.c:280 eaarch64cloudabib.c:280 eaarch64elf.c:279
-#: eaarch64elf32.c:279 eaarch64elf32b.c:279 eaarch64elfb.c:279
-#: eaarch64fbsd.c:280 eaarch64fbsdb.c:280 eaarch64haiku.c:280
-#: eaarch64linux.c:280 eaarch64linux32.c:280 eaarch64linux32b.c:280
-#: eaarch64linuxb.c:280 eaarch64nto.c:280 earcelf.c:117 earclinux.c:118
+#: eaarch64cloudabi.c:285 eaarch64cloudabib.c:285 eaarch64elf.c:285
+#: eaarch64elf32.c:285 eaarch64elf32b.c:285 eaarch64elfb.c:285
+#: eaarch64fbsd.c:285 eaarch64fbsdb.c:285 eaarch64haiku.c:285
+#: eaarch64linux.c:285 eaarch64linux32.c:285 eaarch64linux32b.c:285
+#: eaarch64linuxb.c:285 eaarch64nto.c:285 earcelf.c:117 earclinux.c:118
#: earclinux_nps.c:118 earcv2elf.c:117 earcv2elfx.c:117 earmelf.c:411
#: earmelf_fbsd.c:411 earmelf_fuchsia.c:412 earmelf_haiku.c:412
#: earmelf_linux.c:412 earmelf_linux_eabi.c:412 earmelf_linux_fdpiceabi.c:412
@@ -3701,9 +3704,9 @@ msgstr ""
#: eavrxmega3.c:321 eavrxmega4.c:321 eavrxmega4_flmap.c:321 eavrxmega5.c:321
#: eavrxmega6.c:321 eavrxmega7.c:321 ecriself.c:117 ecrislinux.c:118
#: ed10velf.c:117 eelf32_sparc.c:118 eelf32_sparc_sol2.c:250
-#: eelf32_sparc_vxworks.c:147 eelf32_spu.c:787 eelf32_tic6x_be.c:184
-#: eelf32_tic6x_elf_be.c:184 eelf32_tic6x_elf_le.c:184 eelf32_tic6x_le.c:184
-#: eelf32_tic6x_linux_be.c:184 eelf32_tic6x_linux_le.c:184 eelf32_x86_64.c:150
+#: eelf32_sparc_vxworks.c:147 eelf32_spu.c:787 eelf32_tic6x_be.c:182
+#: eelf32_tic6x_elf_be.c:182 eelf32_tic6x_elf_le.c:182 eelf32_tic6x_le.c:182
+#: eelf32_tic6x_linux_be.c:182 eelf32_tic6x_linux_le.c:182 eelf32_x86_64.c:182
#: eelf32am33lin.c:117 eelf32b4300.c:314 eelf32bfin.c:127 eelf32bfinfd.c:127
#: eelf32bmip.c:314 eelf32bmipn32.c:328 eelf32briscv.c:94
#: eelf32briscv_ilp32.c:94 eelf32briscv_ilp32f.c:94 eelf32bsmip.c:328
@@ -3711,16 +3714,17 @@ msgstr ""
#: eelf32btsmipn32_fbsd.c:314 eelf32cr16.c:267 eelf32crx.c:154
#: eelf32ebmip.c:314 eelf32ebmipvxworks.c:343 eelf32elmip.c:314
#: eelf32elmipvxworks.c:343 eelf32epiphany.c:117 eelf32epiphany_4x4.c:119
-#: eelf32frvfd.c:117 eelf32ip2k.c:117 eelf32l4300.c:314 eelf32lm32.c:117
-#: eelf32lm32fd.c:117 eelf32lmip.c:314 eelf32loongarch.c:92 eelf32lppc.c:338
-#: eelf32lppclinux.c:338 eelf32lppcnto.c:338 eelf32lppcsim.c:338
-#: eelf32lr5900.c:314 eelf32lr5900n32.c:313 eelf32lriscv.c:94
-#: eelf32lriscv_ilp32.c:94 eelf32lriscv_ilp32f.c:94 eelf32lsmip.c:314
-#: eelf32ltsmip.c:314 eelf32ltsmip_fbsd.c:314 eelf32ltsmipn32.c:314
-#: eelf32ltsmipn32_fbsd.c:314 eelf32m32c.c:128 eelf32mb_linux.c:118
-#: eelf32mbel_linux.c:118 eelf32mcore.c:117 eelf32mep.c:117 eelf32metag.c:259
-#: eelf32microblaze.c:117 eelf32microblazeel.c:117 eelf32mipswindiss.c:313
-#: eelf32moxie.c:117 eelf32or1k.c:118 eelf32or1k_linux.c:118 eelf32ppc.c:338
+#: eelf32frvfd.c:117 eelf32ip2k.c:117 eelf32kvx.c:241 eelf32l4300.c:314
+#: eelf32lm32.c:117 eelf32lm32fd.c:117 eelf32lmip.c:314 eelf32loongarch.c:92
+#: eelf32lppc.c:338 eelf32lppclinux.c:338 eelf32lppcnto.c:338
+#: eelf32lppcsim.c:338 eelf32lr5900.c:314 eelf32lr5900n32.c:313
+#: eelf32lriscv.c:94 eelf32lriscv_ilp32.c:94 eelf32lriscv_ilp32f.c:94
+#: eelf32lsmip.c:314 eelf32ltsmip.c:314 eelf32ltsmip_fbsd.c:314
+#: eelf32ltsmipn32.c:314 eelf32ltsmipn32_fbsd.c:314 eelf32m32c.c:128
+#: eelf32mb_linux.c:118 eelf32mbel_linux.c:118 eelf32mcore.c:117
+#: eelf32mep.c:117 eelf32metag.c:259 eelf32microblaze.c:117
+#: eelf32microblazeel.c:117 eelf32mipswindiss.c:313 eelf32moxie.c:117
+#: eelf32or1k.c:118 eelf32or1k_linux.c:118 eelf32ppc.c:338
#: eelf32ppc_fbsd.c:338 eelf32ppchaiku.c:338 eelf32ppclinux.c:338
#: eelf32ppcnto.c:338 eelf32ppcsim.c:338 eelf32ppcvxworks.c:312
#: eelf32ppcwindiss.c:338 eelf32rl78.c:117 eelf32rx.c:133 eelf32rx_linux.c:130
@@ -3729,19 +3733,20 @@ msgstr ""
#: eelf32xtensa.c:2014 eelf32z80.c:144 eelf64_aix.c:117 eelf64_ia64.c:143
#: eelf64_ia64_fbsd.c:143 eelf64_ia64_vms.c:220 eelf64_s390.c:133
#: eelf64_sparc.c:118 eelf64_sparc_fbsd.c:118 eelf64_sparc_sol2.c:250
-#: eelf64alpha.c:201 eelf64alpha_fbsd.c:201 eelf64alpha_nbsd.c:201
+#: eelf64alpha.c:178 eelf64alpha_fbsd.c:178 eelf64alpha_nbsd.c:178
#: eelf64bmip.c:328 eelf64bpf.c:117 eelf64briscv.c:94 eelf64briscv_lp64.c:94
#: eelf64briscv_lp64f.c:94 eelf64btsmip.c:314 eelf64btsmip_fbsd.c:314
-#: eelf64hppa.c:117 eelf64loongarch.c:92 eelf64lppc.c:595
-#: eelf64lppc_fbsd.c:595 eelf64lriscv.c:94 eelf64lriscv_lp64.c:94
-#: eelf64lriscv_lp64f.c:94 eelf64ltsmip.c:314 eelf64ltsmip_fbsd.c:314
-#: eelf64mmix.c:228 eelf64ppc.c:595 eelf64ppc_fbsd.c:595 eelf64rdos.c:133
-#: eelf64tilegx.c:118 eelf64tilegx_be.c:118 eelf_i386.c:142 eelf_i386_be.c:141
+#: eelf64hppa.c:117 eelf64kvx.c:241 eelf64kvx_linux.c:239 eelf64loongarch.c:92
+#: eelf64lppc.c:595 eelf64lppc_fbsd.c:595 eelf64lriscv.c:94
+#: eelf64lriscv_lp64.c:94 eelf64lriscv_lp64f.c:94 eelf64ltsmip.c:314
+#: eelf64ltsmip_fbsd.c:314 eelf64mmix.c:225 eelf64ppc.c:595
+#: eelf64ppc_fbsd.c:595 eelf64rdos.c:165 eelf64tilegx.c:118
+#: eelf64tilegx_be.c:118 eelf_i386.c:142 eelf_i386_be.c:141
#: eelf_i386_fbsd.c:142 eelf_i386_haiku.c:142 eelf_i386_ldso.c:142
#: eelf_i386_sol2.c:274 eelf_i386_vxworks.c:171 eelf_iamcu.c:142
-#: eelf_mipsel_haiku.c:314 eelf_s390.c:118 eelf_x86_64.c:150
-#: eelf_x86_64_cloudabi.c:150 eelf_x86_64_fbsd.c:150 eelf_x86_64_haiku.c:150
-#: eelf_x86_64_sol2.c:282 eh8300elf.c:117 eh8300elf_linux.c:117
+#: eelf_mipsel_haiku.c:314 eelf_s390.c:118 eelf_x86_64.c:182
+#: eelf_x86_64_cloudabi.c:182 eelf_x86_64_fbsd.c:182 eelf_x86_64_haiku.c:182
+#: eelf_x86_64_sol2.c:314 eh8300elf.c:117 eh8300elf_linux.c:117
#: eh8300helf.c:117 eh8300helf_linux.c:117 eh8300hnelf.c:117 eh8300self.c:117
#: eh8300self_linux.c:117 eh8300snelf.c:117 eh8300sxelf.c:117
#: eh8300sxelf_linux.c:117 eh8300sxnelf.c:117 ehppa64linux.c:117
@@ -3760,26 +3765,27 @@ msgstr ""
msgid "%X%P: .eh_frame/.stab edit: %E\n"
msgstr ""
-#: eaarch64cloudabi.c:296 eaarch64cloudabib.c:296 eaarch64elf.c:295
-#: eaarch64elf32.c:295 eaarch64elf32b.c:295 eaarch64elfb.c:295
-#: eaarch64fbsd.c:296 eaarch64fbsdb.c:296 eaarch64haiku.c:296
-#: eaarch64linux.c:296 eaarch64linux32.c:296 eaarch64linux32b.c:296
-#: eaarch64linuxb.c:296 eaarch64nto.c:296 earmelf.c:426 earmelf_fbsd.c:426
+#: eaarch64cloudabi.c:301 eaarch64cloudabib.c:301 eaarch64elf.c:301
+#: eaarch64elf32.c:301 eaarch64elf32b.c:301 eaarch64elfb.c:301
+#: eaarch64fbsd.c:301 eaarch64fbsdb.c:301 eaarch64haiku.c:301
+#: eaarch64linux.c:301 eaarch64linux32.c:301 eaarch64linux32b.c:301
+#: eaarch64linuxb.c:301 eaarch64nto.c:301 earmelf.c:426 earmelf_fbsd.c:426
#: earmelf_fuchsia.c:427 earmelf_haiku.c:427 earmelf_linux.c:427
#: earmelf_linux_eabi.c:427 earmelf_linux_fdpiceabi.c:427 earmelf_nacl.c:427
#: earmelf_nbsd.c:426 earmelf_phoenix.c:427 earmelf_vxworks.c:426
#: earmelfb.c:426 earmelfb_fbsd.c:426 earmelfb_fuchsia.c:427
#: earmelfb_linux.c:427 earmelfb_linux_eabi.c:427
#: earmelfb_linux_fdpiceabi.c:427 earmelfb_nacl.c:427 earmelfb_nbsd.c:426
-#: earmnto.c:426 ecskyelf.c:263 ecskyelf_linux.c:263
+#: earmnto.c:426 ecskyelf.c:263 ecskyelf_linux.c:263 eelf32kvx.c:257
+#: eelf64kvx.c:257 eelf64kvx_linux.c:255
msgid "%X%P: could not compute sections lists for stub generation: %E\n"
msgstr ""
-#: eaarch64cloudabi.c:311 eaarch64cloudabib.c:311 eaarch64elf.c:310
-#: eaarch64elf32.c:310 eaarch64elf32b.c:310 eaarch64elfb.c:310
-#: eaarch64fbsd.c:311 eaarch64fbsdb.c:311 eaarch64haiku.c:311
-#: eaarch64linux.c:311 eaarch64linux32.c:311 eaarch64linux32b.c:311
-#: eaarch64linuxb.c:311 eaarch64nto.c:311 earmelf.c:441 earmelf_fbsd.c:441
+#: eaarch64cloudabi.c:316 eaarch64cloudabib.c:316 eaarch64elf.c:316
+#: eaarch64elf32.c:316 eaarch64elf32b.c:316 eaarch64elfb.c:316
+#: eaarch64fbsd.c:316 eaarch64fbsdb.c:316 eaarch64haiku.c:316
+#: eaarch64linux.c:316 eaarch64linux32.c:316 eaarch64linux32b.c:316
+#: eaarch64linuxb.c:316 eaarch64nto.c:316 earmelf.c:441 earmelf_fbsd.c:441
#: earmelf_fuchsia.c:442 earmelf_haiku.c:442 earmelf_linux.c:442
#: earmelf_linux_eabi.c:442 earmelf_linux_fdpiceabi.c:442 earmelf_nacl.c:442
#: earmelf_nbsd.c:441 earmelf_phoenix.c:442 earmelf_vxworks.c:441
@@ -3807,12 +3813,12 @@ msgstr ""
msgid "%X%P: can not size stub section: %E\n"
msgstr ""
-#: eaarch64cloudabi.c:330 eaarch64cloudabib.c:330 eaarch64elf.c:329
-#: eaarch64elf32.c:329 eaarch64elf32b.c:329 eaarch64elfb.c:329
-#: eaarch64fbsd.c:330 eaarch64fbsdb.c:330 eaarch64haiku.c:330
-#: eaarch64linux.c:330 eaarch64linux32.c:330 eaarch64linux32b.c:330
-#: eaarch64linuxb.c:330 eaarch64nto.c:330 eaix5ppc.c:1137 eaix5rs6.c:1137
-#: eaixppc.c:1137 eaixrs6.c:1137 earmelf.c:475 earmelf_fbsd.c:475
+#: eaarch64cloudabi.c:335 eaarch64cloudabib.c:335 eaarch64elf.c:335
+#: eaarch64elf32.c:335 eaarch64elf32b.c:335 eaarch64elfb.c:335
+#: eaarch64fbsd.c:335 eaarch64fbsdb.c:335 eaarch64haiku.c:335
+#: eaarch64linux.c:335 eaarch64linux32.c:335 eaarch64linux32b.c:335
+#: eaarch64linuxb.c:335 eaarch64nto.c:335 eaix5ppc.c:1136 eaix5rs6.c:1136
+#: eaixppc.c:1136 eaixrs6.c:1136 earmelf.c:475 earmelf_fbsd.c:475
#: earmelf_fuchsia.c:476 earmelf_haiku.c:476 earmelf_linux.c:476
#: earmelf_linux_eabi.c:476 earmelf_linux_fdpiceabi.c:476 earmelf_nacl.c:476
#: earmelf_nbsd.c:475 earmelf_phoenix.c:476 earmelf_vxworks.c:475
@@ -3823,10 +3829,11 @@ msgstr ""
#: eavr35.c:205 eavr4.c:205 eavr5.c:205 eavr51.c:205 eavr6.c:205
#: eavrtiny.c:205 eavrxmega1.c:205 eavrxmega2.c:205 eavrxmega2_flmap.c:205
#: eavrxmega3.c:205 eavrxmega4.c:205 eavrxmega4_flmap.c:205 eavrxmega5.c:205
-#: eavrxmega6.c:205 eavrxmega7.c:205 eelf32metag.c:303 eelf64lppc.c:634
+#: eavrxmega6.c:205 eavrxmega7.c:205 eelf32kvx.c:291 eelf32metag.c:303
+#: eelf64kvx.c:291 eelf64kvx_linux.c:289 eelf64lppc.c:634
#: eelf64lppc_fbsd.c:634 eelf64ppc.c:634 eelf64ppc_fbsd.c:634 ehppaelf.c:335
#: ehppalinux.c:335 ehppanbsd.c:335 ehppaobsd.c:335 em68hc11elf.c:324
-#: em68hc11elfb.c:324 em68hc12elf.c:324 em68hc12elfb.c:324 eppcmacos.c:1137
+#: em68hc11elfb.c:324 em68hc12elf.c:324 em68hc12elfb.c:324 eppcmacos.c:1136
msgid "%X%P: can not build stubs: %E\n"
msgstr ""
@@ -3859,11 +3866,11 @@ msgstr ""
#. These will only be created if the output format is an arm format,
#. hence we do not support linking and changing output formats at the
#. same time. Use a link followed by objcopy to change output formats.
-#: eaarch64cloudabi.c:348 eaarch64cloudabib.c:348 eaarch64elf.c:347
-#: eaarch64elf32.c:347 eaarch64elf32b.c:347 eaarch64elfb.c:347
-#: eaarch64fbsd.c:348 eaarch64fbsdb.c:348 eaarch64haiku.c:348
-#: eaarch64linux.c:348 eaarch64linux32.c:348 eaarch64linux32b.c:348
-#: eaarch64linuxb.c:348 eaarch64nto.c:348 earm_wince_pe.c:1523 earmelf.c:544
+#: eaarch64cloudabi.c:353 eaarch64cloudabib.c:353 eaarch64elf.c:353
+#: eaarch64elf32.c:353 eaarch64elf32b.c:353 eaarch64elfb.c:353
+#: eaarch64fbsd.c:353 eaarch64fbsdb.c:353 eaarch64haiku.c:353
+#: eaarch64linux.c:353 eaarch64linux32.c:353 eaarch64linux32b.c:353
+#: eaarch64linuxb.c:353 eaarch64nto.c:353 earm_wince_pe.c:1523 earmelf.c:544
#: earmelf_fbsd.c:544 earmelf_fuchsia.c:545 earmelf_haiku.c:545
#: earmelf_linux.c:545 earmelf_linux_eabi.c:545 earmelf_linux_fdpiceabi.c:545
#: earmelf_nacl.c:545 earmelf_nbsd.c:544 earmelf_phoenix.c:545
@@ -3883,27 +3890,30 @@ msgstr ""
#: ends32belf16m.c:77 ends32belf_linux.c:77 ends32elf.c:77 ends32elf16m.c:77
#: ends32elf_linux.c:77 escore3_elf.c:82 escore7_elf.c:82 eshpe.c:1523
#: ev850.c:94 ev850_rh850.c:94
-msgid "%F%P: error: cannot change output format whilst linking %s binaries\n"
-msgstr ""
-
-#: eaarch64cloudabi.c:397 eaarch64cloudabi.c:457 eaarch64cloudabib.c:397
-#: eaarch64cloudabib.c:457 eaarch64elf.c:396 eaarch64elf.c:456
-#: eaarch64elf32.c:396 eaarch64elf32.c:456 eaarch64elf32b.c:396
-#: eaarch64elf32b.c:456 eaarch64elfb.c:396 eaarch64elfb.c:456
-#: eaarch64fbsd.c:397 eaarch64fbsd.c:457 eaarch64fbsdb.c:397
-#: eaarch64fbsdb.c:457 eaarch64haiku.c:397 eaarch64haiku.c:457
-#: eaarch64linux.c:397 eaarch64linux.c:457 eaarch64linux32.c:397
-#: eaarch64linux32.c:457 eaarch64linux32b.c:397 eaarch64linux32b.c:457
-#: eaarch64linuxb.c:397 eaarch64linuxb.c:457 eaarch64nto.c:397
-#: eaarch64nto.c:457
+msgid "%P: error: cannot change output format whilst linking %s binaries\n"
+msgstr ""
+
+#: eaarch64cloudabi.c:403 eaarch64cloudabi.c:463 eaarch64cloudabi.c:487
+#: eaarch64cloudabib.c:403 eaarch64cloudabib.c:463 eaarch64cloudabib.c:487
+#: eaarch64elf.c:403 eaarch64elf.c:463 eaarch64elf.c:487 eaarch64elf32.c:403
+#: eaarch64elf32.c:463 eaarch64elf32.c:487 eaarch64elf32b.c:403
+#: eaarch64elf32b.c:463 eaarch64elf32b.c:487 eaarch64elfb.c:403
+#: eaarch64elfb.c:463 eaarch64elfb.c:487 eaarch64fbsd.c:403 eaarch64fbsd.c:463
+#: eaarch64fbsd.c:487 eaarch64fbsdb.c:403 eaarch64fbsdb.c:463
+#: eaarch64fbsdb.c:487 eaarch64haiku.c:403 eaarch64haiku.c:463
+#: eaarch64haiku.c:487 eaarch64linux.c:403 eaarch64linux.c:463
+#: eaarch64linux.c:487 eaarch64linux32.c:403 eaarch64linux32.c:463
+#: eaarch64linux32.c:487 eaarch64linux32b.c:403 eaarch64linux32b.c:463
+#: eaarch64linux32b.c:487 eaarch64linuxb.c:403 eaarch64linuxb.c:463
+#: eaarch64linuxb.c:487 eaarch64nto.c:403 eaarch64nto.c:463 eaarch64nto.c:487
msgid "%X%P: error: unrecognized value '-z %s'\n"
msgstr ""
-#: eaarch64cloudabi.c:713 eaarch64cloudabib.c:713 eaarch64elf.c:712
-#: eaarch64elf32.c:712 eaarch64elf32b.c:712 eaarch64elfb.c:712
-#: eaarch64fbsd.c:713 eaarch64fbsdb.c:713 eaarch64haiku.c:713
-#: eaarch64linux.c:713 eaarch64linux32.c:713 eaarch64linux32b.c:713
-#: eaarch64linuxb.c:713 eaarch64nto.c:875 earcelf.c:233 earclinux.c:324
+#: eaarch64cloudabi.c:744 eaarch64cloudabib.c:744 eaarch64elf.c:744
+#: eaarch64elf32.c:744 eaarch64elf32b.c:744 eaarch64elfb.c:744
+#: eaarch64fbsd.c:744 eaarch64fbsdb.c:744 eaarch64haiku.c:744
+#: eaarch64linux.c:744 eaarch64linux32.c:744 eaarch64linux32b.c:744
+#: eaarch64linuxb.c:744 eaarch64nto.c:906 earcelf.c:233 earclinux.c:324
#: earclinux_nps.c:324 earcv2elf.c:212 earcv2elfx.c:212 earmelf.c:848
#: earmelf_fbsd.c:848 earmelf_fuchsia.c:849 earmelf_haiku.c:849
#: earmelf_linux.c:849 earmelf_linux_eabi.c:849 earmelf_linux_fdpiceabi.c:849
@@ -3918,16 +3928,16 @@ msgstr ""
#: eavrxmega6.c:428 eavrxmega7.c:428 ecriself.c:237 ecrislinux.c:284
#: ecskyelf.c:476 ecskyelf_linux.c:563 ed10velf.c:212 eelf32_sparc.c:324
#: eelf32_sparc_sol2.c:456 eelf32_sparc_vxworks.c:356 eelf32_spu.c:932
-#: eelf32_tic6x_be.c:415 eelf32_tic6x_elf_be.c:415 eelf32_tic6x_elf_le.c:415
-#: eelf32_tic6x_le.c:415 eelf32_tic6x_linux_be.c:415
-#: eelf32_tic6x_linux_le.c:415 eelf32_x86_64.c:8364 eelf32am33lin.c:283
+#: eelf32_tic6x_be.c:413 eelf32_tic6x_elf_be.c:413 eelf32_tic6x_elf_le.c:413
+#: eelf32_tic6x_le.c:413 eelf32_tic6x_linux_be.c:413
+#: eelf32_tic6x_linux_le.c:413 eelf32_x86_64.c:8396 eelf32am33lin.c:283
#: eelf32b4300.c:528 eelf32bfin.c:297 eelf32bfinfd.c:337 eelf32bmip.c:528
#: eelf32bmipn32.c:542 eelf32briscv.c:402 eelf32briscv_ilp32.c:402
#: eelf32briscv_ilp32f.c:402 eelf32bsmip.c:542 eelf32btsmip.c:528
#: eelf32btsmip_fbsd.c:528 eelf32btsmipn32.c:528 eelf32btsmipn32_fbsd.c:528
#: eelf32cr16.c:362 eelf32crx.c:249 eelf32ebmip.c:528 eelf32ebmipvxworks.c:559
#: eelf32elmip.c:528 eelf32elmipvxworks.c:559 eelf32epiphany.c:237
-#: eelf32epiphany_4x4.c:214 eelf32frvfd.c:323 eelf32ip2k.c:237 eelf32kvx.c:549
+#: eelf32epiphany_4x4.c:214 eelf32frvfd.c:323 eelf32ip2k.c:237 eelf32kvx.c:548
#: eelf32l4300.c:528 eelf32lm32.c:237 eelf32lm32fd.c:323 eelf32lmip.c:528
#: eelf32loongarch.c:380 eelf32lppc.c:565 eelf32lppclinux.c:565
#: eelf32lppcnto.c:565 eelf32lppcsim.c:565 eelf32lr5900.c:482
@@ -3944,22 +3954,22 @@ msgstr ""
#: eelf32tilegx.c:324 eelf32tilegx_be.c:324 eelf32tilepro.c:324
#: eelf32vax.c:283 eelf32visium.c:212 eelf32xstormy16.c:223
#: eelf32xtensa.c:2227 eelf32z80.c:239 eelf64_aix.c:283 eelf64_ia64.c:352
-#: eelf64_ia64_fbsd.c:352 eelf64_s390.c:421 eelf64_sparc.c:324
-#: eelf64_sparc_fbsd.c:324 eelf64_sparc_sol2.c:456 eelf64alpha.c:412
-#: eelf64alpha_fbsd.c:412 eelf64alpha_nbsd.c:412 eelf64bmip.c:542
+#: eelf64_ia64_fbsd.c:352 eelf64_s390.c:426 eelf64_sparc.c:324
+#: eelf64_sparc_fbsd.c:324 eelf64_sparc_sol2.c:456 eelf64alpha.c:388
+#: eelf64alpha_fbsd.c:388 eelf64alpha_nbsd.c:388 eelf64bmip.c:542
#: eelf64bpf.c:212 eelf64briscv.c:402 eelf64briscv_lp64.c:402
#: eelf64briscv_lp64f.c:402 eelf64btsmip.c:528 eelf64btsmip_fbsd.c:528
-#: eelf64hppa.c:233 eelf64kvx.c:549 eelf64kvx_linux.c:586
-#: eelf64loongarch.c:380 eelf64lppc.c:999 eelf64lppc_fbsd.c:999
+#: eelf64hppa.c:233 eelf64kvx.c:548 eelf64kvx_linux.c:586
+#: eelf64loongarch.c:380 eelf64lppc.c:1000 eelf64lppc_fbsd.c:1000
#: eelf64lriscv.c:402 eelf64lriscv_lp64.c:402 eelf64lriscv_lp64f.c:402
-#: eelf64ltsmip.c:528 eelf64ltsmip_fbsd.c:528 eelf64mmix.c:394 eelf64ppc.c:999
-#: eelf64ppc_fbsd.c:999 eelf64rdos.c:345 eelf64tilegx.c:324
+#: eelf64ltsmip.c:528 eelf64ltsmip_fbsd.c:528 eelf64mmix.c:391
+#: eelf64ppc.c:1000 eelf64ppc_fbsd.c:1000 eelf64rdos.c:377 eelf64tilegx.c:324
#: eelf64tilegx_be.c:324 eelf_i386.c:7822 eelf_i386_be.c:307
#: eelf_i386_fbsd.c:354 eelf_i386_haiku.c:354 eelf_i386_ldso.c:314
#: eelf_i386_sol2.c:486 eelf_i386_vxworks.c:380 eelf_iamcu.c:354
-#: eelf_mipsel_haiku.c:528 eelf_s390.c:324 eelf_x86_64.c:8364
-#: eelf_x86_64_cloudabi.c:362 eelf_x86_64_fbsd.c:362 eelf_x86_64_haiku.c:362
-#: eelf_x86_64_sol2.c:494 eh8300elf.c:237 eh8300elf_linux.c:237
+#: eelf_mipsel_haiku.c:528 eelf_s390.c:324 eelf_x86_64.c:8396
+#: eelf_x86_64_cloudabi.c:394 eelf_x86_64_fbsd.c:394 eelf_x86_64_haiku.c:394
+#: eelf_x86_64_sol2.c:526 eh8300elf.c:237 eh8300elf_linux.c:237
#: eh8300helf.c:237 eh8300helf_linux.c:237 eh8300hnelf.c:237 eh8300self.c:237
#: eh8300self_linux.c:237 eh8300snelf.c:237 eh8300sxelf.c:237
#: eh8300sxelf_linux.c:237 eh8300sxnelf.c:237 ehppa64linux.c:283
@@ -3975,15 +3985,14 @@ msgstr ""
#: eshelf_vxworks.c:315 eshlelf.c:283 eshlelf_fd.c:324 eshlelf_linux.c:324
#: eshlelf_nbsd.c:283 eshlelf_nto.c:283 eshlelf_vxworks.c:315 ev850.c:259
#: ev850_rh850.c:259
-msgid ""
-"%F%P: --compress-debug-sections=zstd: ld is not built with zstd support\n"
+msgid "%P: --compress-debug-sections=zstd: ld is not built with zstd support\n"
msgstr ""
-#: eaarch64cloudabi.c:718 eaarch64cloudabib.c:718 eaarch64elf.c:717
-#: eaarch64elf32.c:717 eaarch64elf32b.c:717 eaarch64elfb.c:717
-#: eaarch64fbsd.c:718 eaarch64fbsdb.c:718 eaarch64haiku.c:718
-#: eaarch64linux.c:718 eaarch64linux32.c:718 eaarch64linux32b.c:718
-#: eaarch64linuxb.c:718 eaarch64nto.c:880 earcelf.c:238 earclinux.c:329
+#: eaarch64cloudabi.c:749 eaarch64cloudabib.c:749 eaarch64elf.c:749
+#: eaarch64elf32.c:749 eaarch64elf32b.c:749 eaarch64elfb.c:749
+#: eaarch64fbsd.c:749 eaarch64fbsdb.c:749 eaarch64haiku.c:749
+#: eaarch64linux.c:749 eaarch64linux32.c:749 eaarch64linux32b.c:749
+#: eaarch64linuxb.c:749 eaarch64nto.c:911 earcelf.c:238 earclinux.c:329
#: earclinux_nps.c:329 earcv2elf.c:217 earcv2elfx.c:217 earmelf.c:853
#: earmelf_fbsd.c:853 earmelf_fuchsia.c:854 earmelf_haiku.c:854
#: earmelf_linux.c:854 earmelf_linux_eabi.c:854 earmelf_linux_fdpiceabi.c:854
@@ -3998,16 +4007,16 @@ msgstr ""
#: eavrxmega6.c:433 eavrxmega7.c:433 ecriself.c:242 ecrislinux.c:289
#: ecskyelf.c:481 ecskyelf_linux.c:568 ed10velf.c:217 eelf32_sparc.c:329
#: eelf32_sparc_sol2.c:461 eelf32_sparc_vxworks.c:361 eelf32_spu.c:937
-#: eelf32_tic6x_be.c:420 eelf32_tic6x_elf_be.c:420 eelf32_tic6x_elf_le.c:420
-#: eelf32_tic6x_le.c:420 eelf32_tic6x_linux_be.c:420
-#: eelf32_tic6x_linux_le.c:420 eelf32_x86_64.c:8369 eelf32am33lin.c:288
+#: eelf32_tic6x_be.c:418 eelf32_tic6x_elf_be.c:418 eelf32_tic6x_elf_le.c:418
+#: eelf32_tic6x_le.c:418 eelf32_tic6x_linux_be.c:418
+#: eelf32_tic6x_linux_le.c:418 eelf32_x86_64.c:8401 eelf32am33lin.c:288
#: eelf32b4300.c:533 eelf32bfin.c:302 eelf32bfinfd.c:342 eelf32bmip.c:533
#: eelf32bmipn32.c:547 eelf32briscv.c:407 eelf32briscv_ilp32.c:407
#: eelf32briscv_ilp32f.c:407 eelf32bsmip.c:547 eelf32btsmip.c:533
#: eelf32btsmip_fbsd.c:533 eelf32btsmipn32.c:533 eelf32btsmipn32_fbsd.c:533
#: eelf32cr16.c:367 eelf32crx.c:254 eelf32ebmip.c:533 eelf32ebmipvxworks.c:564
#: eelf32elmip.c:533 eelf32elmipvxworks.c:564 eelf32epiphany.c:242
-#: eelf32epiphany_4x4.c:219 eelf32frvfd.c:328 eelf32ip2k.c:242 eelf32kvx.c:554
+#: eelf32epiphany_4x4.c:219 eelf32frvfd.c:328 eelf32ip2k.c:242 eelf32kvx.c:553
#: eelf32l4300.c:533 eelf32lm32.c:242 eelf32lm32fd.c:328 eelf32lmip.c:533
#: eelf32loongarch.c:385 eelf32lppc.c:570 eelf32lppclinux.c:570
#: eelf32lppcnto.c:570 eelf32lppcsim.c:570 eelf32lr5900.c:487
@@ -4024,22 +4033,22 @@ msgstr ""
#: eelf32tilegx.c:329 eelf32tilegx_be.c:329 eelf32tilepro.c:329
#: eelf32vax.c:288 eelf32visium.c:217 eelf32xstormy16.c:228
#: eelf32xtensa.c:2232 eelf32z80.c:244 eelf64_aix.c:288 eelf64_ia64.c:357
-#: eelf64_ia64_fbsd.c:357 eelf64_s390.c:426 eelf64_sparc.c:329
-#: eelf64_sparc_fbsd.c:329 eelf64_sparc_sol2.c:461 eelf64alpha.c:417
-#: eelf64alpha_fbsd.c:417 eelf64alpha_nbsd.c:417 eelf64bmip.c:547
+#: eelf64_ia64_fbsd.c:357 eelf64_s390.c:431 eelf64_sparc.c:329
+#: eelf64_sparc_fbsd.c:329 eelf64_sparc_sol2.c:461 eelf64alpha.c:393
+#: eelf64alpha_fbsd.c:393 eelf64alpha_nbsd.c:393 eelf64bmip.c:547
#: eelf64bpf.c:217 eelf64briscv.c:407 eelf64briscv_lp64.c:407
#: eelf64briscv_lp64f.c:407 eelf64btsmip.c:533 eelf64btsmip_fbsd.c:533
-#: eelf64hppa.c:238 eelf64kvx.c:554 eelf64kvx_linux.c:591
-#: eelf64loongarch.c:385 eelf64lppc.c:1004 eelf64lppc_fbsd.c:1004
+#: eelf64hppa.c:238 eelf64kvx.c:553 eelf64kvx_linux.c:591
+#: eelf64loongarch.c:385 eelf64lppc.c:1005 eelf64lppc_fbsd.c:1005
#: eelf64lriscv.c:407 eelf64lriscv_lp64.c:407 eelf64lriscv_lp64f.c:407
-#: eelf64ltsmip.c:533 eelf64ltsmip_fbsd.c:533 eelf64mmix.c:399
-#: eelf64ppc.c:1004 eelf64ppc_fbsd.c:1004 eelf64rdos.c:350 eelf64tilegx.c:329
+#: eelf64ltsmip.c:533 eelf64ltsmip_fbsd.c:533 eelf64mmix.c:396
+#: eelf64ppc.c:1005 eelf64ppc_fbsd.c:1005 eelf64rdos.c:382 eelf64tilegx.c:329
#: eelf64tilegx_be.c:329 eelf_i386.c:7827 eelf_i386_be.c:312
#: eelf_i386_fbsd.c:359 eelf_i386_haiku.c:359 eelf_i386_ldso.c:319
#: eelf_i386_sol2.c:491 eelf_i386_vxworks.c:385 eelf_iamcu.c:359
-#: eelf_mipsel_haiku.c:533 eelf_s390.c:329 eelf_x86_64.c:8369
-#: eelf_x86_64_cloudabi.c:367 eelf_x86_64_fbsd.c:367 eelf_x86_64_haiku.c:367
-#: eelf_x86_64_sol2.c:499 eh8300elf.c:242 eh8300elf_linux.c:242
+#: eelf_mipsel_haiku.c:533 eelf_s390.c:329 eelf_x86_64.c:8401
+#: eelf_x86_64_cloudabi.c:399 eelf_x86_64_fbsd.c:399 eelf_x86_64_haiku.c:399
+#: eelf_x86_64_sol2.c:531 eh8300elf.c:242 eh8300elf_linux.c:242
#: eh8300helf.c:242 eh8300helf_linux.c:242 eh8300hnelf.c:242 eh8300self.c:242
#: eh8300self_linux.c:242 eh8300snelf.c:242 eh8300sxelf.c:242
#: eh8300sxelf_linux.c:242 eh8300sxnelf.c:242 ehppa64linux.c:288
@@ -4055,14 +4064,14 @@ msgstr ""
#: eshelf_vxworks.c:320 eshlelf.c:288 eshlelf_fd.c:329 eshlelf_linux.c:329
#: eshlelf_nbsd.c:288 eshlelf_nto.c:288 eshlelf_vxworks.c:320 ev850.c:264
#: ev850_rh850.c:264
-msgid "%F%P: invalid --compress-debug-sections option: `%s'\n"
+msgid "%P: invalid --compress-debug-sections option: `%s'\n"
msgstr ""
-#: eaarch64cloudabi.c:776 eaarch64cloudabib.c:776 eaarch64elf.c:775
-#: eaarch64elf32.c:775 eaarch64elf32b.c:775 eaarch64elfb.c:775
-#: eaarch64fbsd.c:776 eaarch64fbsdb.c:776 eaarch64haiku.c:776
-#: eaarch64linux.c:776 eaarch64linux32.c:776 eaarch64linux32b.c:776
-#: eaarch64linuxb.c:776 eaarch64nto.c:938 earcelf.c:296 earclinux.c:387
+#: eaarch64cloudabi.c:807 eaarch64cloudabib.c:807 eaarch64elf.c:807
+#: eaarch64elf32.c:807 eaarch64elf32b.c:807 eaarch64elfb.c:807
+#: eaarch64fbsd.c:807 eaarch64fbsdb.c:807 eaarch64haiku.c:807
+#: eaarch64linux.c:807 eaarch64linux32.c:807 eaarch64linux32b.c:807
+#: eaarch64linuxb.c:807 eaarch64nto.c:969 earcelf.c:296 earclinux.c:387
#: earclinux_nps.c:387 earmelf.c:911 earmelf_fbsd.c:911 earmelf_fuchsia.c:912
#: earmelf_haiku.c:912 earmelf_linux.c:912 earmelf_linux_eabi.c:912
#: earmelf_linux_fdpiceabi.c:912 earmelf_nacl.c:912 earmelf_nbsd.c:911
@@ -4071,15 +4080,15 @@ msgstr ""
#: earmelfb_linux_eabi.c:912 earmelfb_linux_fdpiceabi.c:912
#: earmelfb_nacl.c:912 earmelfb_nbsd.c:911 earmnto.c:871 ecrislinux.c:347
#: ecskyelf_linux.c:626 eelf32_sparc.c:387 eelf32_sparc_sol2.c:519
-#: eelf32_sparc_vxworks.c:419 eelf32_tic6x_be.c:478 eelf32_tic6x_elf_be.c:478
-#: eelf32_tic6x_elf_le.c:478 eelf32_tic6x_le.c:478 eelf32_tic6x_linux_be.c:478
-#: eelf32_tic6x_linux_le.c:478 eelf32_x86_64.c:8427 eelf32am33lin.c:346
+#: eelf32_sparc_vxworks.c:419 eelf32_tic6x_be.c:476 eelf32_tic6x_elf_be.c:476
+#: eelf32_tic6x_elf_le.c:476 eelf32_tic6x_le.c:476 eelf32_tic6x_linux_be.c:476
+#: eelf32_tic6x_linux_le.c:476 eelf32_x86_64.c:8459 eelf32am33lin.c:346
#: eelf32b4300.c:591 eelf32bfin.c:360 eelf32bfinfd.c:400 eelf32bmip.c:591
#: eelf32bmipn32.c:605 eelf32briscv.c:465 eelf32briscv_ilp32.c:465
#: eelf32briscv_ilp32f.c:465 eelf32bsmip.c:605 eelf32btsmip.c:591
#: eelf32btsmip_fbsd.c:591 eelf32btsmipn32.c:591 eelf32btsmipn32_fbsd.c:591
#: eelf32ebmip.c:591 eelf32ebmipvxworks.c:622 eelf32elmip.c:591
-#: eelf32elmipvxworks.c:622 eelf32frvfd.c:386 eelf32kvx.c:612
+#: eelf32elmipvxworks.c:622 eelf32frvfd.c:386 eelf32kvx.c:611
#: eelf32l4300.c:591 eelf32lm32fd.c:386 eelf32lmip.c:591 eelf32loongarch.c:443
#: eelf32lppc.c:628 eelf32lppclinux.c:628 eelf32lppcnto.c:628
#: eelf32lppcsim.c:628 eelf32lriscv.c:465 eelf32lriscv_ilp32.c:465
@@ -4091,21 +4100,21 @@ msgstr ""
#: eelf32ppcsim.c:628 eelf32ppcvxworks.c:598 eelf32ppcwindiss.c:628
#: eelf32tilegx.c:387 eelf32tilegx_be.c:387 eelf32tilepro.c:387
#: eelf32vax.c:346 eelf32xtensa.c:2290 eelf64_aix.c:346 eelf64_ia64.c:415
-#: eelf64_ia64_fbsd.c:415 eelf64_s390.c:484 eelf64_sparc.c:387
-#: eelf64_sparc_fbsd.c:387 eelf64_sparc_sol2.c:519 eelf64alpha.c:475
-#: eelf64alpha_fbsd.c:475 eelf64alpha_nbsd.c:475 eelf64bmip.c:605
+#: eelf64_ia64_fbsd.c:415 eelf64_s390.c:489 eelf64_sparc.c:387
+#: eelf64_sparc_fbsd.c:387 eelf64_sparc_sol2.c:519 eelf64alpha.c:451
+#: eelf64alpha_fbsd.c:451 eelf64alpha_nbsd.c:451 eelf64bmip.c:605
#: eelf64briscv.c:465 eelf64briscv_lp64.c:465 eelf64briscv_lp64f.c:465
-#: eelf64btsmip.c:591 eelf64btsmip_fbsd.c:591 eelf64hppa.c:296 eelf64kvx.c:612
-#: eelf64kvx_linux.c:649 eelf64loongarch.c:443 eelf64lppc.c:1062
-#: eelf64lppc_fbsd.c:1062 eelf64lriscv.c:465 eelf64lriscv_lp64.c:465
+#: eelf64btsmip.c:591 eelf64btsmip_fbsd.c:591 eelf64hppa.c:296 eelf64kvx.c:611
+#: eelf64kvx_linux.c:649 eelf64loongarch.c:443 eelf64lppc.c:1063
+#: eelf64lppc_fbsd.c:1063 eelf64lriscv.c:465 eelf64lriscv_lp64.c:465
#: eelf64lriscv_lp64f.c:465 eelf64ltsmip.c:591 eelf64ltsmip_fbsd.c:591
-#: eelf64mmix.c:457 eelf64ppc.c:1062 eelf64ppc_fbsd.c:1062 eelf64rdos.c:408
+#: eelf64mmix.c:454 eelf64ppc.c:1063 eelf64ppc_fbsd.c:1063 eelf64rdos.c:440
#: eelf64tilegx.c:387 eelf64tilegx_be.c:387 eelf_i386.c:7885
#: eelf_i386_be.c:370 eelf_i386_fbsd.c:417 eelf_i386_haiku.c:417
#: eelf_i386_ldso.c:377 eelf_i386_sol2.c:549 eelf_i386_vxworks.c:443
-#: eelf_iamcu.c:417 eelf_mipsel_haiku.c:591 eelf_s390.c:387 eelf_x86_64.c:8427
-#: eelf_x86_64_cloudabi.c:425 eelf_x86_64_fbsd.c:425 eelf_x86_64_haiku.c:425
-#: eelf_x86_64_sol2.c:557 ehppa64linux.c:346 ehppalinux.c:666 ehppanbsd.c:666
+#: eelf_iamcu.c:417 eelf_mipsel_haiku.c:591 eelf_s390.c:387 eelf_x86_64.c:8459
+#: eelf_x86_64_cloudabi.c:457 eelf_x86_64_fbsd.c:457 eelf_x86_64_haiku.c:457
+#: eelf_x86_64_sol2.c:589 ehppa64linux.c:346 ehppalinux.c:666 ehppanbsd.c:666
#: ehppaobsd.c:666 ei386lynx.c:361 ei386moss.c:361 ei386nto.c:361
#: em32relf_linux.c:386 em32rlelf_linux.c:386 em68kelf.c:541
#: em68kelfnbsd.c:541 emn10300.c:346 ends32belf_linux.c:432
@@ -4114,14 +4123,14 @@ msgstr ""
#: eshelf_uclinux.c:346 eshelf_vxworks.c:378 eshlelf.c:346 eshlelf_fd.c:387
#: eshlelf_linux.c:387 eshlelf_nbsd.c:346 eshlelf_nto.c:346
#: eshlelf_vxworks.c:378
-msgid "%F%P: invalid hash style `%s'\n"
+msgid "%P: invalid hash style `%s'\n"
msgstr ""
-#: eaarch64cloudabi.c:793 eaarch64cloudabib.c:793 eaarch64elf.c:792
-#: eaarch64elf32.c:792 eaarch64elf32b.c:792 eaarch64elfb.c:792
-#: eaarch64fbsd.c:793 eaarch64fbsdb.c:793 eaarch64haiku.c:793
-#: eaarch64linux.c:793 eaarch64linux32.c:793 eaarch64linux32b.c:793
-#: eaarch64linuxb.c:793 eaarch64nto.c:955 earcelf.c:313 earclinux.c:404
+#: eaarch64cloudabi.c:824 eaarch64cloudabib.c:824 eaarch64elf.c:824
+#: eaarch64elf32.c:824 eaarch64elf32b.c:824 eaarch64elfb.c:824
+#: eaarch64fbsd.c:824 eaarch64fbsdb.c:824 eaarch64haiku.c:824
+#: eaarch64linux.c:824 eaarch64linux32.c:824 eaarch64linux32b.c:824
+#: eaarch64linuxb.c:824 eaarch64nto.c:986 earcelf.c:313 earclinux.c:404
#: earclinux_nps.c:404 earcv2elf.c:241 earcv2elfx.c:241 earmelf.c:928
#: earmelf_fbsd.c:928 earmelf_fuchsia.c:929 earmelf_haiku.c:929
#: earmelf_linux.c:929 earmelf_linux_eabi.c:929 earmelf_linux_fdpiceabi.c:929
@@ -4136,16 +4145,16 @@ msgstr ""
#: eavrxmega6.c:457 eavrxmega7.c:457 ecriself.c:266 ecrislinux.c:364
#: ecskyelf.c:505 ecskyelf_linux.c:643 ed10velf.c:241 eelf32_sparc.c:404
#: eelf32_sparc_sol2.c:536 eelf32_sparc_vxworks.c:436 eelf32_spu.c:961
-#: eelf32_tic6x_be.c:495 eelf32_tic6x_elf_be.c:495 eelf32_tic6x_elf_le.c:495
-#: eelf32_tic6x_le.c:495 eelf32_tic6x_linux_be.c:495
-#: eelf32_tic6x_linux_le.c:495 eelf32_x86_64.c:8444 eelf32am33lin.c:363
+#: eelf32_tic6x_be.c:493 eelf32_tic6x_elf_be.c:493 eelf32_tic6x_elf_le.c:493
+#: eelf32_tic6x_le.c:493 eelf32_tic6x_linux_be.c:493
+#: eelf32_tic6x_linux_le.c:493 eelf32_x86_64.c:8476 eelf32am33lin.c:363
#: eelf32b4300.c:608 eelf32bfin.c:377 eelf32bfinfd.c:417 eelf32bmip.c:608
#: eelf32bmipn32.c:622 eelf32briscv.c:482 eelf32briscv_ilp32.c:482
#: eelf32briscv_ilp32f.c:482 eelf32bsmip.c:622 eelf32btsmip.c:608
#: eelf32btsmip_fbsd.c:608 eelf32btsmipn32.c:608 eelf32btsmipn32_fbsd.c:608
#: eelf32cr16.c:391 eelf32crx.c:278 eelf32ebmip.c:608 eelf32ebmipvxworks.c:639
#: eelf32elmip.c:608 eelf32elmipvxworks.c:639 eelf32epiphany.c:266
-#: eelf32epiphany_4x4.c:243 eelf32frvfd.c:403 eelf32ip2k.c:266 eelf32kvx.c:629
+#: eelf32epiphany_4x4.c:243 eelf32frvfd.c:403 eelf32ip2k.c:266 eelf32kvx.c:628
#: eelf32l4300.c:608 eelf32lm32.c:266 eelf32lm32fd.c:403 eelf32lmip.c:608
#: eelf32loongarch.c:460 eelf32lppc.c:645 eelf32lppclinux.c:645
#: eelf32lppcnto.c:645 eelf32lppcsim.c:645 eelf32lr5900.c:511
@@ -4162,22 +4171,22 @@ msgstr ""
#: eelf32tilegx.c:404 eelf32tilegx_be.c:404 eelf32tilepro.c:404
#: eelf32vax.c:363 eelf32visium.c:241 eelf32xstormy16.c:252
#: eelf32xtensa.c:2307 eelf32z80.c:268 eelf64_aix.c:363 eelf64_ia64.c:432
-#: eelf64_ia64_fbsd.c:432 eelf64_s390.c:501 eelf64_sparc.c:404
-#: eelf64_sparc_fbsd.c:404 eelf64_sparc_sol2.c:536 eelf64alpha.c:492
-#: eelf64alpha_fbsd.c:492 eelf64alpha_nbsd.c:492 eelf64bmip.c:622
+#: eelf64_ia64_fbsd.c:432 eelf64_s390.c:506 eelf64_sparc.c:404
+#: eelf64_sparc_fbsd.c:404 eelf64_sparc_sol2.c:536 eelf64alpha.c:468
+#: eelf64alpha_fbsd.c:468 eelf64alpha_nbsd.c:468 eelf64bmip.c:622
#: eelf64bpf.c:241 eelf64briscv.c:482 eelf64briscv_lp64.c:482
#: eelf64briscv_lp64f.c:482 eelf64btsmip.c:608 eelf64btsmip_fbsd.c:608
-#: eelf64hppa.c:313 eelf64kvx.c:629 eelf64kvx_linux.c:666
-#: eelf64loongarch.c:460 eelf64lppc.c:1079 eelf64lppc_fbsd.c:1079
+#: eelf64hppa.c:313 eelf64kvx.c:628 eelf64kvx_linux.c:666
+#: eelf64loongarch.c:460 eelf64lppc.c:1080 eelf64lppc_fbsd.c:1080
#: eelf64lriscv.c:482 eelf64lriscv_lp64.c:482 eelf64lriscv_lp64f.c:482
-#: eelf64ltsmip.c:608 eelf64ltsmip_fbsd.c:608 eelf64mmix.c:474
-#: eelf64ppc.c:1079 eelf64ppc_fbsd.c:1079 eelf64rdos.c:425 eelf64tilegx.c:404
+#: eelf64ltsmip.c:608 eelf64ltsmip_fbsd.c:608 eelf64mmix.c:471
+#: eelf64ppc.c:1080 eelf64ppc_fbsd.c:1080 eelf64rdos.c:457 eelf64tilegx.c:404
#: eelf64tilegx_be.c:404 eelf_i386.c:7902 eelf_i386_be.c:387
#: eelf_i386_fbsd.c:434 eelf_i386_haiku.c:434 eelf_i386_ldso.c:394
#: eelf_i386_sol2.c:566 eelf_i386_vxworks.c:460 eelf_iamcu.c:434
-#: eelf_mipsel_haiku.c:608 eelf_s390.c:404 eelf_x86_64.c:8444
-#: eelf_x86_64_cloudabi.c:442 eelf_x86_64_fbsd.c:442 eelf_x86_64_haiku.c:442
-#: eelf_x86_64_sol2.c:574 eh8300elf.c:266 eh8300elf_linux.c:266
+#: eelf_mipsel_haiku.c:608 eelf_s390.c:404 eelf_x86_64.c:8476
+#: eelf_x86_64_cloudabi.c:474 eelf_x86_64_fbsd.c:474 eelf_x86_64_haiku.c:474
+#: eelf_x86_64_sol2.c:606 eh8300elf.c:266 eh8300elf_linux.c:266
#: eh8300helf.c:266 eh8300helf_linux.c:266 eh8300hnelf.c:266 eh8300self.c:266
#: eh8300self_linux.c:266 eh8300snelf.c:266 eh8300sxelf.c:266
#: eh8300sxelf_linux.c:266 eh8300sxnelf.c:266 ehppa64linux.c:363
@@ -4193,14 +4202,14 @@ msgstr ""
#: eshelf_vxworks.c:395 eshlelf.c:363 eshlelf_fd.c:404 eshlelf_linux.c:404
#: eshlelf_nbsd.c:363 eshlelf_nto.c:363 eshlelf_vxworks.c:395 ev850.c:288
#: ev850_rh850.c:288
-msgid "%F%P: invalid maximum page size `%s'\n"
+msgid "%P: invalid maximum page size `%s'\n"
msgstr ""
-#: eaarch64cloudabi.c:803 eaarch64cloudabib.c:803 eaarch64elf.c:802
-#: eaarch64elf32.c:802 eaarch64elf32b.c:802 eaarch64elfb.c:802
-#: eaarch64fbsd.c:803 eaarch64fbsdb.c:803 eaarch64haiku.c:803
-#: eaarch64linux.c:803 eaarch64linux32.c:803 eaarch64linux32b.c:803
-#: eaarch64linuxb.c:803 eaarch64nto.c:965 earcelf.c:323 earclinux.c:414
+#: eaarch64cloudabi.c:834 eaarch64cloudabib.c:834 eaarch64elf.c:834
+#: eaarch64elf32.c:834 eaarch64elf32b.c:834 eaarch64elfb.c:834
+#: eaarch64fbsd.c:834 eaarch64fbsdb.c:834 eaarch64haiku.c:834
+#: eaarch64linux.c:834 eaarch64linux32.c:834 eaarch64linux32b.c:834
+#: eaarch64linuxb.c:834 eaarch64nto.c:996 earcelf.c:323 earclinux.c:414
#: earclinux_nps.c:414 earcv2elf.c:251 earcv2elfx.c:251 earmelf.c:938
#: earmelf_fbsd.c:938 earmelf_fuchsia.c:939 earmelf_haiku.c:939
#: earmelf_linux.c:939 earmelf_linux_eabi.c:939 earmelf_linux_fdpiceabi.c:939
@@ -4215,16 +4224,16 @@ msgstr ""
#: eavrxmega6.c:467 eavrxmega7.c:467 ecriself.c:276 ecrislinux.c:374
#: ecskyelf.c:515 ecskyelf_linux.c:653 ed10velf.c:251 eelf32_sparc.c:414
#: eelf32_sparc_sol2.c:546 eelf32_sparc_vxworks.c:446 eelf32_spu.c:971
-#: eelf32_tic6x_be.c:505 eelf32_tic6x_elf_be.c:505 eelf32_tic6x_elf_le.c:505
-#: eelf32_tic6x_le.c:505 eelf32_tic6x_linux_be.c:505
-#: eelf32_tic6x_linux_le.c:505 eelf32_x86_64.c:8454 eelf32am33lin.c:373
+#: eelf32_tic6x_be.c:503 eelf32_tic6x_elf_be.c:503 eelf32_tic6x_elf_le.c:503
+#: eelf32_tic6x_le.c:503 eelf32_tic6x_linux_be.c:503
+#: eelf32_tic6x_linux_le.c:503 eelf32_x86_64.c:8486 eelf32am33lin.c:373
#: eelf32b4300.c:618 eelf32bfin.c:387 eelf32bfinfd.c:427 eelf32bmip.c:618
#: eelf32bmipn32.c:632 eelf32briscv.c:492 eelf32briscv_ilp32.c:492
#: eelf32briscv_ilp32f.c:492 eelf32bsmip.c:632 eelf32btsmip.c:618
#: eelf32btsmip_fbsd.c:618 eelf32btsmipn32.c:618 eelf32btsmipn32_fbsd.c:618
#: eelf32cr16.c:401 eelf32crx.c:288 eelf32ebmip.c:618 eelf32ebmipvxworks.c:649
#: eelf32elmip.c:618 eelf32elmipvxworks.c:649 eelf32epiphany.c:276
-#: eelf32epiphany_4x4.c:253 eelf32frvfd.c:413 eelf32ip2k.c:276 eelf32kvx.c:639
+#: eelf32epiphany_4x4.c:253 eelf32frvfd.c:413 eelf32ip2k.c:276 eelf32kvx.c:638
#: eelf32l4300.c:618 eelf32lm32.c:276 eelf32lm32fd.c:413 eelf32lmip.c:618
#: eelf32loongarch.c:470 eelf32lppc.c:655 eelf32lppclinux.c:655
#: eelf32lppcnto.c:655 eelf32lppcsim.c:655 eelf32lr5900.c:521
@@ -4241,22 +4250,22 @@ msgstr ""
#: eelf32tilegx.c:414 eelf32tilegx_be.c:414 eelf32tilepro.c:414
#: eelf32vax.c:373 eelf32visium.c:251 eelf32xstormy16.c:262
#: eelf32xtensa.c:2317 eelf32z80.c:278 eelf64_aix.c:373 eelf64_ia64.c:442
-#: eelf64_ia64_fbsd.c:442 eelf64_s390.c:511 eelf64_sparc.c:414
-#: eelf64_sparc_fbsd.c:414 eelf64_sparc_sol2.c:546 eelf64alpha.c:502
-#: eelf64alpha_fbsd.c:502 eelf64alpha_nbsd.c:502 eelf64bmip.c:632
+#: eelf64_ia64_fbsd.c:442 eelf64_s390.c:516 eelf64_sparc.c:414
+#: eelf64_sparc_fbsd.c:414 eelf64_sparc_sol2.c:546 eelf64alpha.c:478
+#: eelf64alpha_fbsd.c:478 eelf64alpha_nbsd.c:478 eelf64bmip.c:632
#: eelf64bpf.c:251 eelf64briscv.c:492 eelf64briscv_lp64.c:492
#: eelf64briscv_lp64f.c:492 eelf64btsmip.c:618 eelf64btsmip_fbsd.c:618
-#: eelf64hppa.c:323 eelf64kvx.c:639 eelf64kvx_linux.c:676
-#: eelf64loongarch.c:470 eelf64lppc.c:1089 eelf64lppc_fbsd.c:1089
+#: eelf64hppa.c:323 eelf64kvx.c:638 eelf64kvx_linux.c:676
+#: eelf64loongarch.c:470 eelf64lppc.c:1090 eelf64lppc_fbsd.c:1090
#: eelf64lriscv.c:492 eelf64lriscv_lp64.c:492 eelf64lriscv_lp64f.c:492
-#: eelf64ltsmip.c:618 eelf64ltsmip_fbsd.c:618 eelf64mmix.c:484
-#: eelf64ppc.c:1089 eelf64ppc_fbsd.c:1089 eelf64rdos.c:435 eelf64tilegx.c:414
+#: eelf64ltsmip.c:618 eelf64ltsmip_fbsd.c:618 eelf64mmix.c:481
+#: eelf64ppc.c:1090 eelf64ppc_fbsd.c:1090 eelf64rdos.c:467 eelf64tilegx.c:414
#: eelf64tilegx_be.c:414 eelf_i386.c:7912 eelf_i386_be.c:397
#: eelf_i386_fbsd.c:444 eelf_i386_haiku.c:444 eelf_i386_ldso.c:404
#: eelf_i386_sol2.c:576 eelf_i386_vxworks.c:470 eelf_iamcu.c:444
-#: eelf_mipsel_haiku.c:618 eelf_s390.c:414 eelf_x86_64.c:8454
-#: eelf_x86_64_cloudabi.c:452 eelf_x86_64_fbsd.c:452 eelf_x86_64_haiku.c:452
-#: eelf_x86_64_sol2.c:584 eh8300elf.c:276 eh8300elf_linux.c:276
+#: eelf_mipsel_haiku.c:618 eelf_s390.c:414 eelf_x86_64.c:8486
+#: eelf_x86_64_cloudabi.c:484 eelf_x86_64_fbsd.c:484 eelf_x86_64_haiku.c:484
+#: eelf_x86_64_sol2.c:616 eh8300elf.c:276 eh8300elf_linux.c:276
#: eh8300helf.c:276 eh8300helf_linux.c:276 eh8300hnelf.c:276 eh8300self.c:276
#: eh8300self_linux.c:276 eh8300snelf.c:276 eh8300sxelf.c:276
#: eh8300sxelf_linux.c:276 eh8300sxnelf.c:276 ehppa64linux.c:373
@@ -4272,14 +4281,14 @@ msgstr ""
#: eshelf_vxworks.c:405 eshlelf.c:373 eshlelf_fd.c:414 eshlelf_linux.c:414
#: eshlelf_nbsd.c:373 eshlelf_nto.c:373 eshlelf_vxworks.c:405 ev850.c:298
#: ev850_rh850.c:298
-msgid "%F%P: invalid common page size `%s'\n"
+msgid "%P: invalid common page size `%s'\n"
msgstr ""
-#: eaarch64cloudabi.c:812 eaarch64cloudabib.c:812 eaarch64elf.c:811
-#: eaarch64elf32.c:811 eaarch64elf32b.c:811 eaarch64elfb.c:811
-#: eaarch64fbsd.c:812 eaarch64fbsdb.c:812 eaarch64haiku.c:812
-#: eaarch64linux.c:812 eaarch64linux32.c:812 eaarch64linux32b.c:812
-#: eaarch64linuxb.c:812 eaarch64nto.c:974 eaarch64nto.c:1157 earcelf.c:332
+#: eaarch64cloudabi.c:843 eaarch64cloudabib.c:843 eaarch64elf.c:843
+#: eaarch64elf32.c:843 eaarch64elf32b.c:843 eaarch64elfb.c:843
+#: eaarch64fbsd.c:843 eaarch64fbsdb.c:843 eaarch64haiku.c:843
+#: eaarch64linux.c:843 eaarch64linux32.c:843 eaarch64linux32b.c:843
+#: eaarch64linuxb.c:843 eaarch64nto.c:1005 eaarch64nto.c:1192 earcelf.c:332
#: earclinux.c:423 earclinux_nps.c:423 earcv2elf.c:260 earcv2elfx.c:260
#: earmelf.c:947 earmelf_fbsd.c:947 earmelf_fuchsia.c:948 earmelf_haiku.c:948
#: earmelf_linux.c:948 earmelf_linux_eabi.c:948 earmelf_linux_fdpiceabi.c:948
@@ -4294,16 +4303,16 @@ msgstr ""
#: eavrxmega6.c:476 eavrxmega7.c:476 ecriself.c:285 ecrislinux.c:383
#: ecskyelf.c:524 ecskyelf_linux.c:662 ed10velf.c:260 eelf32_sparc.c:423
#: eelf32_sparc_sol2.c:555 eelf32_sparc_vxworks.c:455 eelf32_spu.c:980
-#: eelf32_tic6x_be.c:514 eelf32_tic6x_elf_be.c:514 eelf32_tic6x_elf_le.c:514
-#: eelf32_tic6x_le.c:514 eelf32_tic6x_linux_be.c:514
-#: eelf32_tic6x_linux_le.c:514 eelf32_x86_64.c:8463 eelf32am33lin.c:382
+#: eelf32_tic6x_be.c:512 eelf32_tic6x_elf_be.c:512 eelf32_tic6x_elf_le.c:512
+#: eelf32_tic6x_le.c:512 eelf32_tic6x_linux_be.c:512
+#: eelf32_tic6x_linux_le.c:512 eelf32_x86_64.c:8495 eelf32am33lin.c:382
#: eelf32b4300.c:627 eelf32bfin.c:396 eelf32bfinfd.c:436 eelf32bmip.c:627
#: eelf32bmipn32.c:641 eelf32briscv.c:501 eelf32briscv_ilp32.c:501
#: eelf32briscv_ilp32f.c:501 eelf32bsmip.c:641 eelf32btsmip.c:627
#: eelf32btsmip_fbsd.c:627 eelf32btsmipn32.c:627 eelf32btsmipn32_fbsd.c:627
#: eelf32cr16.c:410 eelf32crx.c:297 eelf32ebmip.c:627 eelf32ebmipvxworks.c:658
#: eelf32elmip.c:627 eelf32elmipvxworks.c:658 eelf32epiphany.c:285
-#: eelf32epiphany_4x4.c:262 eelf32frvfd.c:422 eelf32ip2k.c:285 eelf32kvx.c:648
+#: eelf32epiphany_4x4.c:262 eelf32frvfd.c:422 eelf32ip2k.c:285 eelf32kvx.c:647
#: eelf32l4300.c:627 eelf32lm32.c:285 eelf32lm32fd.c:422 eelf32lmip.c:627
#: eelf32loongarch.c:479 eelf32lppc.c:664 eelf32lppclinux.c:664
#: eelf32lppcnto.c:664 eelf32lppcsim.c:664 eelf32lr5900.c:530
@@ -4320,22 +4329,22 @@ msgstr ""
#: eelf32tilegx.c:423 eelf32tilegx_be.c:423 eelf32tilepro.c:423
#: eelf32vax.c:382 eelf32visium.c:260 eelf32xstormy16.c:271
#: eelf32xtensa.c:2326 eelf32z80.c:287 eelf64_aix.c:382 eelf64_ia64.c:451
-#: eelf64_ia64_fbsd.c:451 eelf64_s390.c:520 eelf64_sparc.c:423
-#: eelf64_sparc_fbsd.c:423 eelf64_sparc_sol2.c:555 eelf64alpha.c:511
-#: eelf64alpha_fbsd.c:511 eelf64alpha_nbsd.c:511 eelf64bmip.c:641
+#: eelf64_ia64_fbsd.c:451 eelf64_s390.c:525 eelf64_sparc.c:423
+#: eelf64_sparc_fbsd.c:423 eelf64_sparc_sol2.c:555 eelf64alpha.c:487
+#: eelf64alpha_fbsd.c:487 eelf64alpha_nbsd.c:487 eelf64bmip.c:641
#: eelf64bpf.c:260 eelf64briscv.c:501 eelf64briscv_lp64.c:501
#: eelf64briscv_lp64f.c:501 eelf64btsmip.c:627 eelf64btsmip_fbsd.c:627
-#: eelf64hppa.c:332 eelf64kvx.c:648 eelf64kvx_linux.c:685
-#: eelf64loongarch.c:479 eelf64lppc.c:1098 eelf64lppc_fbsd.c:1098
+#: eelf64hppa.c:332 eelf64kvx.c:647 eelf64kvx_linux.c:685
+#: eelf64loongarch.c:479 eelf64lppc.c:1099 eelf64lppc_fbsd.c:1099
#: eelf64lriscv.c:501 eelf64lriscv_lp64.c:501 eelf64lriscv_lp64f.c:501
-#: eelf64ltsmip.c:627 eelf64ltsmip_fbsd.c:627 eelf64mmix.c:493
-#: eelf64ppc.c:1098 eelf64ppc_fbsd.c:1098 eelf64rdos.c:444 eelf64tilegx.c:423
+#: eelf64ltsmip.c:627 eelf64ltsmip_fbsd.c:627 eelf64mmix.c:490
+#: eelf64ppc.c:1099 eelf64ppc_fbsd.c:1099 eelf64rdos.c:476 eelf64tilegx.c:423
#: eelf64tilegx_be.c:423 eelf_i386.c:7921 eelf_i386_be.c:406
#: eelf_i386_fbsd.c:453 eelf_i386_haiku.c:453 eelf_i386_ldso.c:413
#: eelf_i386_sol2.c:585 eelf_i386_vxworks.c:479 eelf_iamcu.c:453
-#: eelf_mipsel_haiku.c:627 eelf_s390.c:423 eelf_x86_64.c:8463
-#: eelf_x86_64_cloudabi.c:461 eelf_x86_64_fbsd.c:461 eelf_x86_64_haiku.c:461
-#: eelf_x86_64_sol2.c:593 eh8300elf.c:285 eh8300elf_linux.c:285
+#: eelf_mipsel_haiku.c:627 eelf_s390.c:423 eelf_x86_64.c:8495
+#: eelf_x86_64_cloudabi.c:493 eelf_x86_64_fbsd.c:493 eelf_x86_64_haiku.c:493
+#: eelf_x86_64_sol2.c:625 eh8300elf.c:285 eh8300elf_linux.c:285
#: eh8300helf.c:285 eh8300helf_linux.c:285 eh8300hnelf.c:285 eh8300self.c:285
#: eh8300self_linux.c:285 eh8300snelf.c:285 eh8300sxelf.c:285
#: eh8300sxelf_linux.c:285 eh8300sxnelf.c:285 ehppa64linux.c:382
@@ -4351,14 +4360,14 @@ msgstr ""
#: eshelf_vxworks.c:414 eshlelf.c:382 eshlelf_fd.c:423 eshlelf_linux.c:423
#: eshlelf_nbsd.c:382 eshlelf_nto.c:382 eshlelf_vxworks.c:414 ev850.c:307
#: ev850_rh850.c:307
-msgid "%F%P: invalid stack size `%s'\n"
+msgid "%P: invalid stack size `%s'\n"
msgstr ""
-#: eaarch64cloudabi.c:851 eaarch64cloudabib.c:851 eaarch64elf.c:850
-#: eaarch64elf32.c:850 eaarch64elf32b.c:850 eaarch64elfb.c:850
-#: eaarch64fbsd.c:851 eaarch64fbsdb.c:851 eaarch64haiku.c:851
-#: eaarch64linux.c:851 eaarch64linux32.c:851 eaarch64linux32b.c:851
-#: eaarch64linuxb.c:851 eaarch64nto.c:1013 earcelf.c:371 earclinux.c:462
+#: eaarch64cloudabi.c:882 eaarch64cloudabib.c:882 eaarch64elf.c:882
+#: eaarch64elf32.c:882 eaarch64elf32b.c:882 eaarch64elfb.c:882
+#: eaarch64fbsd.c:882 eaarch64fbsdb.c:882 eaarch64haiku.c:882
+#: eaarch64linux.c:882 eaarch64linux32.c:882 eaarch64linux32b.c:882
+#: eaarch64linuxb.c:882 eaarch64nto.c:1044 earcelf.c:371 earclinux.c:462
#: earclinux_nps.c:462 earcv2elf.c:299 earcv2elfx.c:299 earmelf.c:986
#: earmelf_fbsd.c:986 earmelf_fuchsia.c:987 earmelf_haiku.c:987
#: earmelf_linux.c:987 earmelf_linux_eabi.c:987 earmelf_linux_fdpiceabi.c:987
@@ -4373,16 +4382,16 @@ msgstr ""
#: eavrxmega6.c:515 eavrxmega7.c:515 ecriself.c:324 ecrislinux.c:422
#: ecskyelf.c:563 ecskyelf_linux.c:701 ed10velf.c:299 eelf32_sparc.c:462
#: eelf32_sparc_sol2.c:594 eelf32_sparc_vxworks.c:494 eelf32_spu.c:1019
-#: eelf32_tic6x_be.c:553 eelf32_tic6x_elf_be.c:553 eelf32_tic6x_elf_le.c:553
-#: eelf32_tic6x_le.c:553 eelf32_tic6x_linux_be.c:553
-#: eelf32_tic6x_linux_le.c:553 eelf32_x86_64.c:8502 eelf32am33lin.c:421
+#: eelf32_tic6x_be.c:551 eelf32_tic6x_elf_be.c:551 eelf32_tic6x_elf_le.c:551
+#: eelf32_tic6x_le.c:551 eelf32_tic6x_linux_be.c:551
+#: eelf32_tic6x_linux_le.c:551 eelf32_x86_64.c:8534 eelf32am33lin.c:421
#: eelf32b4300.c:666 eelf32bfin.c:435 eelf32bfinfd.c:475 eelf32bmip.c:666
#: eelf32bmipn32.c:680 eelf32briscv.c:540 eelf32briscv_ilp32.c:540
#: eelf32briscv_ilp32f.c:540 eelf32bsmip.c:680 eelf32btsmip.c:666
#: eelf32btsmip_fbsd.c:666 eelf32btsmipn32.c:666 eelf32btsmipn32_fbsd.c:666
#: eelf32cr16.c:449 eelf32crx.c:336 eelf32ebmip.c:666 eelf32ebmipvxworks.c:697
#: eelf32elmip.c:666 eelf32elmipvxworks.c:697 eelf32epiphany.c:324
-#: eelf32epiphany_4x4.c:301 eelf32frvfd.c:461 eelf32ip2k.c:324 eelf32kvx.c:687
+#: eelf32epiphany_4x4.c:301 eelf32frvfd.c:461 eelf32ip2k.c:324 eelf32kvx.c:686
#: eelf32l4300.c:666 eelf32lm32.c:324 eelf32lm32fd.c:461 eelf32lmip.c:666
#: eelf32loongarch.c:518 eelf32lppc.c:703 eelf32lppclinux.c:703
#: eelf32lppcnto.c:703 eelf32lppcsim.c:703 eelf32lr5900.c:569
@@ -4399,22 +4408,22 @@ msgstr ""
#: eelf32tilegx.c:462 eelf32tilegx_be.c:462 eelf32tilepro.c:462
#: eelf32vax.c:421 eelf32visium.c:299 eelf32xstormy16.c:310
#: eelf32xtensa.c:2365 eelf32z80.c:326 eelf64_aix.c:421 eelf64_ia64.c:490
-#: eelf64_ia64_fbsd.c:490 eelf64_s390.c:559 eelf64_sparc.c:462
-#: eelf64_sparc_fbsd.c:462 eelf64_sparc_sol2.c:594 eelf64alpha.c:550
-#: eelf64alpha_fbsd.c:550 eelf64alpha_nbsd.c:550 eelf64bmip.c:680
+#: eelf64_ia64_fbsd.c:490 eelf64_s390.c:564 eelf64_sparc.c:462
+#: eelf64_sparc_fbsd.c:462 eelf64_sparc_sol2.c:594 eelf64alpha.c:526
+#: eelf64alpha_fbsd.c:526 eelf64alpha_nbsd.c:526 eelf64bmip.c:680
#: eelf64bpf.c:299 eelf64briscv.c:540 eelf64briscv_lp64.c:540
#: eelf64briscv_lp64f.c:540 eelf64btsmip.c:666 eelf64btsmip_fbsd.c:666
-#: eelf64hppa.c:371 eelf64kvx.c:687 eelf64kvx_linux.c:724
-#: eelf64loongarch.c:518 eelf64lppc.c:1137 eelf64lppc_fbsd.c:1137
+#: eelf64hppa.c:371 eelf64kvx.c:686 eelf64kvx_linux.c:724
+#: eelf64loongarch.c:518 eelf64lppc.c:1138 eelf64lppc_fbsd.c:1138
#: eelf64lriscv.c:540 eelf64lriscv_lp64.c:540 eelf64lriscv_lp64f.c:540
-#: eelf64ltsmip.c:666 eelf64ltsmip_fbsd.c:666 eelf64mmix.c:532
-#: eelf64ppc.c:1137 eelf64ppc_fbsd.c:1137 eelf64rdos.c:483 eelf64tilegx.c:462
+#: eelf64ltsmip.c:666 eelf64ltsmip_fbsd.c:666 eelf64mmix.c:529
+#: eelf64ppc.c:1138 eelf64ppc_fbsd.c:1138 eelf64rdos.c:515 eelf64tilegx.c:462
#: eelf64tilegx_be.c:462 eelf_i386.c:7960 eelf_i386_be.c:445
#: eelf_i386_fbsd.c:492 eelf_i386_haiku.c:492 eelf_i386_ldso.c:452
#: eelf_i386_sol2.c:624 eelf_i386_vxworks.c:518 eelf_iamcu.c:492
-#: eelf_mipsel_haiku.c:666 eelf_s390.c:462 eelf_x86_64.c:8502
-#: eelf_x86_64_cloudabi.c:500 eelf_x86_64_fbsd.c:500 eelf_x86_64_haiku.c:500
-#: eelf_x86_64_sol2.c:632 eh8300elf.c:324 eh8300elf_linux.c:324
+#: eelf_mipsel_haiku.c:666 eelf_s390.c:462 eelf_x86_64.c:8534
+#: eelf_x86_64_cloudabi.c:532 eelf_x86_64_fbsd.c:532 eelf_x86_64_haiku.c:532
+#: eelf_x86_64_sol2.c:664 eh8300elf.c:324 eh8300elf_linux.c:324
#: eh8300helf.c:324 eh8300helf_linux.c:324 eh8300hnelf.c:324 eh8300self.c:324
#: eh8300self_linux.c:324 eh8300snelf.c:324 eh8300sxelf.c:324
#: eh8300sxelf_linux.c:324 eh8300sxnelf.c:324 ehppa64linux.c:421
@@ -4431,23 +4440,23 @@ msgstr ""
#: eshlelf_nbsd.c:421 eshlelf_nto.c:421 eshlelf_vxworks.c:453 ev850.c:346
#: ev850_rh850.c:346
msgid ""
-"%F%P: invalid visibility in `-z %s'; must be default, internal, hidden, or "
+"%P: invalid visibility in `-z %s'; must be default, internal, hidden, or "
"protected"
msgstr ""
-#: eaarch64cloudabi.c:971 eaarch64cloudabib.c:971 eaarch64elf.c:971
-#: eaarch64elf32.c:971 eaarch64elf32b.c:971 eaarch64elfb.c:971
-#: eaarch64fbsd.c:976 eaarch64fbsdb.c:976 eaarch64haiku.c:971
-#: eaarch64linux.c:976 eaarch64linux32.c:976 eaarch64linux32b.c:976
-#: eaarch64linuxb.c:976 eaarch64nto.c:1133
+#: eaarch64cloudabi.c:1006 eaarch64cloudabib.c:1006 eaarch64elf.c:1011
+#: eaarch64elf32.c:1011 eaarch64elf32b.c:1011 eaarch64elfb.c:1011
+#: eaarch64fbsd.c:1011 eaarch64fbsdb.c:1011 eaarch64haiku.c:1006
+#: eaarch64linux.c:1011 eaarch64linux32.c:1011 eaarch64linux32b.c:1011
+#: eaarch64linuxb.c:1011 eaarch64nto.c:1168
msgid "%P: error: unrecognized option for --fix-cortex-a53-843419: %s\n"
msgstr ""
-#: eaarch64cloudabi.c:1000 eaarch64cloudabib.c:1000 eaarch64elf.c:1000
-#: eaarch64elf32.c:1000 eaarch64elf32b.c:1000 eaarch64elfb.c:1000
-#: eaarch64fbsd.c:1005 eaarch64fbsdb.c:1005 eaarch64haiku.c:1000
-#: eaarch64linux.c:1005 eaarch64linux32.c:1005 eaarch64linux32b.c:1005
-#: eaarch64linuxb.c:1005 eaarch64nto.c:1178 earmelf.c:1191 earmelf_fbsd.c:1191
+#: eaarch64cloudabi.c:1035 eaarch64cloudabib.c:1035 eaarch64elf.c:1040
+#: eaarch64elf32.c:1040 eaarch64elf32b.c:1040 eaarch64elfb.c:1040
+#: eaarch64fbsd.c:1040 eaarch64fbsdb.c:1040 eaarch64haiku.c:1035
+#: eaarch64linux.c:1040 eaarch64linux32.c:1040 eaarch64linux32b.c:1040
+#: eaarch64linuxb.c:1040 eaarch64nto.c:1213 earmelf.c:1191 earmelf_fbsd.c:1191
#: earmelf_fuchsia.c:1196 earmelf_haiku.c:1196 earmelf_linux.c:1196
#: earmelf_linux_eabi.c:1196 earmelf_linux_fdpiceabi.c:1196
#: earmelf_nacl.c:1196 earmelf_nbsd.c:1191 earmelf_phoenix.c:1196
@@ -4461,11 +4470,11 @@ msgid ""
" enum sizes\n"
msgstr ""
-#: eaarch64cloudabi.c:1002 eaarch64cloudabib.c:1002 eaarch64elf.c:1002
-#: eaarch64elf32.c:1002 eaarch64elf32b.c:1002 eaarch64elfb.c:1002
-#: eaarch64fbsd.c:1007 eaarch64fbsdb.c:1007 eaarch64haiku.c:1002
-#: eaarch64linux.c:1007 eaarch64linux32.c:1007 eaarch64linux32b.c:1007
-#: eaarch64linuxb.c:1007 eaarch64nto.c:1180 earmelf.c:1193 earmelf_fbsd.c:1193
+#: eaarch64cloudabi.c:1037 eaarch64cloudabib.c:1037 eaarch64elf.c:1042
+#: eaarch64elf32.c:1042 eaarch64elf32b.c:1042 eaarch64elfb.c:1042
+#: eaarch64fbsd.c:1042 eaarch64fbsdb.c:1042 eaarch64haiku.c:1037
+#: eaarch64linux.c:1042 eaarch64linux32.c:1042 eaarch64linux32b.c:1042
+#: eaarch64linuxb.c:1042 eaarch64nto.c:1215 earmelf.c:1193 earmelf_fbsd.c:1193
#: earmelf_fuchsia.c:1198 earmelf_haiku.c:1198 earmelf_linux.c:1198
#: earmelf_linux_eabi.c:1198 earmelf_linux_fdpiceabi.c:1198
#: earmelf_nacl.c:1198 earmelf_nbsd.c:1193 earmelf_phoenix.c:1198
@@ -4479,11 +4488,11 @@ msgid ""
" wchar_t sizes\n"
msgstr ""
-#: eaarch64cloudabi.c:1004 eaarch64cloudabib.c:1004 eaarch64elf.c:1004
-#: eaarch64elf32.c:1004 eaarch64elf32b.c:1004 eaarch64elfb.c:1004
-#: eaarch64fbsd.c:1009 eaarch64fbsdb.c:1009 eaarch64haiku.c:1004
-#: eaarch64linux.c:1009 eaarch64linux32.c:1009 eaarch64linux32b.c:1009
-#: eaarch64linuxb.c:1009 eaarch64nto.c:1182 earmelf.c:1195 earmelf_fbsd.c:1195
+#: eaarch64cloudabi.c:1039 eaarch64cloudabib.c:1039 eaarch64elf.c:1044
+#: eaarch64elf32.c:1044 eaarch64elf32b.c:1044 eaarch64elfb.c:1044
+#: eaarch64fbsd.c:1044 eaarch64fbsdb.c:1044 eaarch64haiku.c:1039
+#: eaarch64linux.c:1044 eaarch64linux32.c:1044 eaarch64linux32b.c:1044
+#: eaarch64linuxb.c:1044 eaarch64nto.c:1217 earmelf.c:1195 earmelf_fbsd.c:1195
#: earmelf_fuchsia.c:1200 earmelf_haiku.c:1200 earmelf_linux.c:1200
#: earmelf_linux_eabi.c:1200 earmelf_linux_fdpiceabi.c:1200
#: earmelf_nacl.c:1200 earmelf_nbsd.c:1195 earmelf_phoenix.c:1200
@@ -4496,11 +4505,11 @@ msgid ""
" --pic-veneer Always generate PIC interworking veneers\n"
msgstr ""
-#: eaarch64cloudabi.c:1005 eaarch64cloudabib.c:1005 eaarch64elf.c:1005
-#: eaarch64elf32.c:1005 eaarch64elf32b.c:1005 eaarch64elfb.c:1005
-#: eaarch64fbsd.c:1010 eaarch64fbsdb.c:1010 eaarch64haiku.c:1005
-#: eaarch64linux.c:1010 eaarch64linux32.c:1010 eaarch64linux32b.c:1010
-#: eaarch64linuxb.c:1010 eaarch64nto.c:1183 earmelf.c:1202 earmelf_fbsd.c:1202
+#: eaarch64cloudabi.c:1040 eaarch64cloudabib.c:1040 eaarch64elf.c:1045
+#: eaarch64elf32.c:1045 eaarch64elf32b.c:1045 eaarch64elfb.c:1045
+#: eaarch64fbsd.c:1045 eaarch64fbsdb.c:1045 eaarch64haiku.c:1040
+#: eaarch64linux.c:1045 eaarch64linux32.c:1045 eaarch64linux32b.c:1045
+#: eaarch64linuxb.c:1045 eaarch64nto.c:1218 earmelf.c:1202 earmelf_fbsd.c:1202
#: earmelf_fuchsia.c:1207 earmelf_haiku.c:1207 earmelf_linux.c:1207
#: earmelf_linux_eabi.c:1207 earmelf_linux_fdpiceabi.c:1207
#: earmelf_nacl.c:1207 earmelf_nbsd.c:1202 earmelf_phoenix.c:1207
@@ -4524,20 +4533,20 @@ msgid ""
" choose suitable defaults.\n"
msgstr ""
-#: eaarch64cloudabi.c:1014 eaarch64cloudabib.c:1014 eaarch64elf.c:1014
-#: eaarch64elf32.c:1014 eaarch64elf32b.c:1014 eaarch64elfb.c:1014
-#: eaarch64fbsd.c:1019 eaarch64fbsdb.c:1019 eaarch64haiku.c:1014
-#: eaarch64linux.c:1019 eaarch64linux32.c:1019 eaarch64linux32b.c:1019
-#: eaarch64linuxb.c:1019 eaarch64nto.c:1192
+#: eaarch64cloudabi.c:1049 eaarch64cloudabib.c:1049 eaarch64elf.c:1054
+#: eaarch64elf32.c:1054 eaarch64elf32b.c:1054 eaarch64elfb.c:1054
+#: eaarch64fbsd.c:1054 eaarch64fbsdb.c:1054 eaarch64haiku.c:1049
+#: eaarch64linux.c:1054 eaarch64linux32.c:1054 eaarch64linux32b.c:1054
+#: eaarch64linuxb.c:1054 eaarch64nto.c:1227
#, c-format
msgid " --fix-cortex-a53-835769 Fix erratum 835769\n"
msgstr ""
-#: eaarch64cloudabi.c:1015 eaarch64cloudabib.c:1015 eaarch64elf.c:1015
-#: eaarch64elf32.c:1015 eaarch64elf32b.c:1015 eaarch64elfb.c:1015
-#: eaarch64fbsd.c:1020 eaarch64fbsdb.c:1020 eaarch64haiku.c:1015
-#: eaarch64linux.c:1020 eaarch64linux32.c:1020 eaarch64linux32b.c:1020
-#: eaarch64linuxb.c:1020 eaarch64nto.c:1193
+#: eaarch64cloudabi.c:1050 eaarch64cloudabib.c:1050 eaarch64elf.c:1055
+#: eaarch64elf32.c:1055 eaarch64elf32b.c:1055 eaarch64elfb.c:1055
+#: eaarch64fbsd.c:1055 eaarch64fbsdb.c:1055 eaarch64haiku.c:1050
+#: eaarch64linux.c:1055 eaarch64linux32.c:1055 eaarch64linux32b.c:1055
+#: eaarch64linuxb.c:1055 eaarch64nto.c:1228
#, c-format
msgid ""
" --fix-cortex-a53-843419[=full|adr|adrp] Fix erratum 843419 and "
@@ -4562,22 +4571,22 @@ msgid ""
"you both a performance and size overhead.\n"
msgstr ""
-#: eaarch64cloudabi.c:1026 eaarch64cloudabib.c:1026 eaarch64elf.c:1026
-#: eaarch64elf32.c:1026 eaarch64elf32b.c:1026 eaarch64elfb.c:1026
-#: eaarch64fbsd.c:1031 eaarch64fbsdb.c:1031 eaarch64haiku.c:1026
-#: eaarch64linux.c:1031 eaarch64linux32.c:1031 eaarch64linux32b.c:1031
-#: eaarch64linuxb.c:1031 eaarch64nto.c:1204
+#: eaarch64cloudabi.c:1061 eaarch64cloudabib.c:1061 eaarch64elf.c:1066
+#: eaarch64elf32.c:1066 eaarch64elf32b.c:1066 eaarch64elfb.c:1066
+#: eaarch64fbsd.c:1066 eaarch64fbsdb.c:1066 eaarch64haiku.c:1061
+#: eaarch64linux.c:1066 eaarch64linux32.c:1066 eaarch64linux32b.c:1066
+#: eaarch64linuxb.c:1066 eaarch64nto.c:1239
#, c-format
msgid ""
" --no-apply-dynamic-relocs Do not apply link-time values for dynamic "
"relocations\n"
msgstr ""
-#: eaarch64cloudabi.c:1027 eaarch64cloudabib.c:1027 eaarch64elf.c:1027
-#: eaarch64elf32.c:1027 eaarch64elf32b.c:1027 eaarch64elfb.c:1027
-#: eaarch64fbsd.c:1032 eaarch64fbsdb.c:1032 eaarch64haiku.c:1027
-#: eaarch64linux.c:1032 eaarch64linux32.c:1032 eaarch64linux32b.c:1032
-#: eaarch64linuxb.c:1032 eaarch64nto.c:1205
+#: eaarch64cloudabi.c:1062 eaarch64cloudabib.c:1062 eaarch64elf.c:1067
+#: eaarch64elf32.c:1067 eaarch64elf32b.c:1067 eaarch64elfb.c:1067
+#: eaarch64fbsd.c:1067 eaarch64fbsdb.c:1067 eaarch64haiku.c:1062
+#: eaarch64linux.c:1067 eaarch64linux32.c:1067 eaarch64linux32b.c:1067
+#: eaarch64linuxb.c:1067 eaarch64nto.c:1240
#, c-format
msgid ""
" -z force-bti Turn on Branch Target Identification "
@@ -4586,11 +4595,11 @@ msgid ""
"markings on inputs\n"
msgstr ""
-#: eaarch64cloudabi.c:1030 eaarch64cloudabib.c:1030 eaarch64elf.c:1030
-#: eaarch64elf32.c:1030 eaarch64elf32b.c:1030 eaarch64elfb.c:1030
-#: eaarch64fbsd.c:1035 eaarch64fbsdb.c:1035 eaarch64haiku.c:1030
-#: eaarch64linux.c:1035 eaarch64linux32.c:1035 eaarch64linux32b.c:1035
-#: eaarch64linuxb.c:1035 eaarch64nto.c:1208
+#: eaarch64cloudabi.c:1065 eaarch64cloudabib.c:1065 eaarch64elf.c:1070
+#: eaarch64elf32.c:1070 eaarch64elf32b.c:1070 eaarch64elfb.c:1070
+#: eaarch64fbsd.c:1070 eaarch64fbsdb.c:1070 eaarch64haiku.c:1065
+#: eaarch64linux.c:1070 eaarch64linux32.c:1070 eaarch64linux32b.c:1070
+#: eaarch64linuxb.c:1070 eaarch64nto.c:1243
#, c-format
msgid ""
" -z bti-report[=none|warning|error] Emit warning/error on mismatch of BTI "
@@ -4605,22 +4614,22 @@ msgid ""
" and output has BTI marking.\n"
msgstr ""
-#: eaarch64cloudabi.c:1037 eaarch64cloudabib.c:1037 eaarch64elf.c:1037
-#: eaarch64elf32.c:1037 eaarch64elf32b.c:1037 eaarch64elfb.c:1037
-#: eaarch64fbsd.c:1042 eaarch64fbsdb.c:1042 eaarch64haiku.c:1037
-#: eaarch64linux.c:1042 eaarch64linux32.c:1042 eaarch64linux32b.c:1042
-#: eaarch64linuxb.c:1042 eaarch64nto.c:1215
+#: eaarch64cloudabi.c:1072 eaarch64cloudabib.c:1072 eaarch64elf.c:1077
+#: eaarch64elf32.c:1077 eaarch64elf32b.c:1077 eaarch64elfb.c:1077
+#: eaarch64fbsd.c:1077 eaarch64fbsdb.c:1077 eaarch64haiku.c:1072
+#: eaarch64linux.c:1077 eaarch64linux32.c:1077 eaarch64linux32b.c:1077
+#: eaarch64linuxb.c:1077 eaarch64nto.c:1250
#, c-format
msgid ""
" -z pac-plt Protect PLTs with Pointer "
"Authentication.\n"
msgstr ""
-#: eaarch64cloudabi.c:1039 eaarch64cloudabib.c:1039 eaarch64elf.c:1039
-#: eaarch64elf32.c:1039 eaarch64elf32b.c:1039 eaarch64elfb.c:1039
-#: eaarch64fbsd.c:1044 eaarch64fbsdb.c:1044 eaarch64haiku.c:1039
-#: eaarch64linux.c:1044 eaarch64linux32.c:1044 eaarch64linux32b.c:1044
-#: eaarch64linuxb.c:1044 eaarch64nto.c:1217
+#: eaarch64cloudabi.c:1074 eaarch64cloudabib.c:1074 eaarch64elf.c:1079
+#: eaarch64elf32.c:1079 eaarch64elf32b.c:1079 eaarch64elfb.c:1079
+#: eaarch64fbsd.c:1079 eaarch64fbsdb.c:1079 eaarch64haiku.c:1074
+#: eaarch64linux.c:1079 eaarch64linux32.c:1079 eaarch64linux32b.c:1079
+#: eaarch64linuxb.c:1079 eaarch64nto.c:1252
#, c-format
msgid ""
" -z gcs=[always|never|implicit] Controls whether the output supports "
@@ -4633,11 +4642,11 @@ msgid ""
"GCS.\n"
msgstr ""
-#: eaarch64cloudabi.c:1044 eaarch64cloudabib.c:1044 eaarch64elf.c:1044
-#: eaarch64elf32.c:1044 eaarch64elf32b.c:1044 eaarch64elfb.c:1044
-#: eaarch64fbsd.c:1049 eaarch64fbsdb.c:1049 eaarch64haiku.c:1044
-#: eaarch64linux.c:1049 eaarch64linux32.c:1049 eaarch64linux32b.c:1049
-#: eaarch64linuxb.c:1049 eaarch64nto.c:1222
+#: eaarch64cloudabi.c:1079 eaarch64cloudabib.c:1079 eaarch64elf.c:1084
+#: eaarch64elf32.c:1084 eaarch64elf32b.c:1084 eaarch64elfb.c:1084
+#: eaarch64fbsd.c:1084 eaarch64fbsdb.c:1084 eaarch64haiku.c:1079
+#: eaarch64linux.c:1084 eaarch64linux32.c:1084 eaarch64linux32b.c:1084
+#: eaarch64linuxb.c:1084 eaarch64nto.c:1257
#, c-format
msgid ""
" -z gcs-report[=none|warning|error] Emit warning/error on mismatch of GCS "
@@ -4652,11 +4661,11 @@ msgid ""
" and output have GCS marking.\n"
msgstr ""
-#: eaarch64cloudabi.c:1051 eaarch64cloudabib.c:1051 eaarch64elf.c:1051
-#: eaarch64elf32.c:1051 eaarch64elf32b.c:1051 eaarch64elfb.c:1051
-#: eaarch64fbsd.c:1056 eaarch64fbsdb.c:1056 eaarch64haiku.c:1051
-#: eaarch64linux.c:1056 eaarch64linux32.c:1056 eaarch64linux32b.c:1056
-#: eaarch64linuxb.c:1056 eaarch64nto.c:1229
+#: eaarch64cloudabi.c:1086 eaarch64cloudabib.c:1086 eaarch64elf.c:1091
+#: eaarch64elf32.c:1091 eaarch64elf32b.c:1091 eaarch64elfb.c:1091
+#: eaarch64fbsd.c:1091 eaarch64fbsdb.c:1091 eaarch64haiku.c:1086
+#: eaarch64linux.c:1091 eaarch64linux32.c:1091 eaarch64linux32b.c:1091
+#: eaarch64linuxb.c:1091 eaarch64nto.c:1264
#, c-format
msgid ""
" -z gcs-report-dynamic=none|warning|error Emit warning/error on mismatch "
@@ -4675,31 +4684,66 @@ msgid ""
"marking.\n"
msgstr ""
-#: eaarch64nto.c:490
-msgid "%F%P: cannot create .note section in stub BFD.\n"
+#: eaarch64cloudabi.c:1094 eaarch64cloudabib.c:1094 eaarch64elf.c:1099
+#: eaarch64elf32.c:1099 eaarch64elf32b.c:1099 eaarch64elfb.c:1099
+#: eaarch64fbsd.c:1099 eaarch64fbsdb.c:1099 eaarch64haiku.c:1094
+#: eaarch64linux.c:1099 eaarch64linux32.c:1099 eaarch64linux32b.c:1099
+#: eaarch64linuxb.c:1099 eaarch64nto.c:1272
+#, c-format
+msgid ""
+" -z memtag-mode[=none|sync|async] Select Memory Tagging Extension mode "
+"of operation to use.\n"
+" Emits a DT_AARCH64_MEMTAG_MODE "
+"dynamic tag for the binary.\n"
+" This entry is only valid on the main "
+"executable. It is\n"
+" ignored in the dynamically loaded "
+"objects by the loader.\n"
+" none (default): Disable MTE "
+"checking of memory reads and writes.\n"
+" sync: Enable precise exceptions "
+"when mismatched address and\n"
+" allocation tags detected on "
+"load/store operations.\n"
+" async: Enable imprecise "
+"exceptions.\n"
+msgstr ""
+
+#: eaarch64cloudabi.c:1103 eaarch64cloudabib.c:1103 eaarch64elf.c:1108
+#: eaarch64elf32.c:1108 eaarch64elf32b.c:1108 eaarch64elfb.c:1108
+#: eaarch64fbsd.c:1108 eaarch64fbsdb.c:1108 eaarch64haiku.c:1103
+#: eaarch64linux.c:1108 eaarch64linux32.c:1108 eaarch64linux32b.c:1108
+#: eaarch64linuxb.c:1108 eaarch64nto.c:1281
+#, c-format
+msgid ""
+" -z memtag-stack Mark program stack with MTE protection.\n"
+msgstr ""
+
+#: eaarch64nto.c:521
+msgid "%P: cannot create .note section in stub BFD.\n"
msgstr ""
-#: eaarch64nto.c:499
-msgid "%F%P: failed to create .note section\n"
+#: eaarch64nto.c:530
+msgid "%P: failed to create .note section\n"
msgstr ""
-#: eaarch64nto.c:540
-msgid "%F%P: %pB: can't read contents of section .note: %E\n"
+#: eaarch64nto.c:571
+msgid "%P: %pB: can't read contents of section .note: %E\n"
msgstr ""
-#: eaarch64nto.c:550 eaarch64nto.c:554
+#: eaarch64nto.c:581 eaarch64nto.c:585
msgid "%P: %pB: warning: duplicated QNX stack .note detected\n"
msgstr ""
-#: eaarch64nto.c:583
-msgid "%F%P: error: --lazy-stack must follow -zstack-size=<size>\n"
+#: eaarch64nto.c:614
+msgid "%P: error: --lazy-stack must follow -zstack-size=<size>\n"
msgstr ""
-#: eaarch64nto.c:1238
+#: eaarch64nto.c:1284
#, c-format
msgid ""
" --stack <size> Set size of the initial stack\n"
-" --lazy-stack\t\t Set lazy allocation of stack\n"
+" --lazy-stack Set lazy allocation of stack\n"
msgstr ""
#: eaarch64pe.c:350 earm64pe.c:350 earm_wince_pe.c:338 earmpe.c:338
@@ -5113,29 +5157,29 @@ msgstr ""
#: eaarch64pe.c:560 earm64pe.c:560 earm_wince_pe.c:571 earmpe.c:571
#: ei386beos.c:205 ei386pe.c:571 ei386pe_posix.c:571 ei386pep.c:560
#: emcorepe.c:571 eshpe.c:571
-msgid "%F%P: invalid subsystem type %s\n"
+msgid "%P: invalid subsystem type %s\n"
msgstr ""
#: eaarch64pe.c:581 earm64pe.c:581 earm_wince_pe.c:592 earmpe.c:592
-#: ei386beos.c:216 ei386pe.c:592 ei386pe_posix.c:592 ei386pep.c:581
+#: ei386beos.c:215 ei386pe.c:592 ei386pe_posix.c:592 ei386pep.c:581
#: emcorepe.c:592 eshpe.c:592
-msgid "%F%P: invalid hex number for PE parameter '%s'\n"
+msgid "%P: invalid hex number for PE parameter '%s'\n"
msgstr ""
#: eaarch64pe.c:598 earm64pe.c:598 earm_wince_pe.c:609 earmpe.c:609
-#: ei386beos.c:233 ei386pe.c:609 ei386pe_posix.c:609 ei386pep.c:598
+#: ei386beos.c:230 ei386pe.c:609 ei386pe_posix.c:609 ei386pep.c:598
#: emcorepe.c:609 eshpe.c:609
-msgid "%F%P: strange hex info for PE parameter '%s'\n"
+msgid "%P: strange hex info for PE parameter '%s'\n"
msgstr ""
#: eaarch64pe.c:615 earm64pe.c:615 earm_wince_pe.c:625 earmpe.c:625
-#: eelf32mcore.c:356 ei386beos.c:249 ei386pe.c:625 ei386pe_posix.c:625
+#: eelf32mcore.c:356 ei386beos.c:245 ei386pe.c:625 ei386pe_posix.c:625
#: ei386pep.c:615 emcorepe.c:625 eshpe.c:625
-msgid "%F%P: cannot open base file %s\n"
+msgid "%P: cannot open base file %s\n"
msgstr ""
#: eaarch64pe.c:932 earm64pe.c:932 earm_wince_pe.c:955 earmpe.c:955
-#: ei386beos.c:345 ei386pe.c:955 ei386pe_posix.c:955 ei386pep.c:932
+#: ei386beos.c:341 ei386pe.c:955 ei386pe_posix.c:955 ei386pep.c:932
#: emcorepe.c:955 eshpe.c:955
msgid "%P: warning, file alignment > section alignment\n"
msgstr ""
@@ -5191,7 +5235,7 @@ msgstr ""
#: eaarch64pe.c:1468 earm64pe.c:1468 earm_wince_pe.c:1452 earmpe.c:1452
#: ei386pe.c:1452 ei386pe_posix.c:1452 ei386pep.c:1468 emcorepe.c:1452
#: eshpe.c:1452
-msgid "%F%P: cannot perform PE operations on non PE output file '%pB'\n"
+msgid "%P: cannot perform PE operations on non PE output file '%pB'\n"
msgstr ""
#: eaarch64pe.c:1592 earm64pe.c:1592 earm_wince_pe.c:1595 earmpe.c:1595
@@ -5201,11 +5245,11 @@ msgid "%X%P: unable to process relocs: %E\n"
msgstr ""
#: eaix5ppc.c:302 eaix5rs6.c:302 eaixppc.c:302 eaixrs6.c:302 eppcmacos.c:302
-msgid "%F%P: cannot open %s\n"
+msgid "%P: cannot open %s\n"
msgstr ""
-#: eaix5ppc.c:349 eaix5rs6.c:349 eaixppc.c:349 eaixrs6.c:349 eppcmacos.c:349
-msgid "%F%P: cannot read %s\n"
+#: eaix5ppc.c:350 eaix5rs6.c:350 eaixppc.c:350 eaixrs6.c:350 eppcmacos.c:350
+msgid "%P: cannot read %s\n"
msgstr ""
#: eaix5ppc.c:377 eaix5rs6.c:377 eaixppc.c:377 eaixrs6.c:377 eppcmacos.c:377
@@ -5237,94 +5281,95 @@ msgid "%P: warning: ignoring invalid -pT number %s\n"
msgstr ""
#: eaix5ppc.c:701 eaix5rs6.c:701 eaixppc.c:701 eaixrs6.c:701 eppcmacos.c:701
-msgid "%F%P: bfd_xcoff_link_record_set failed: %E\n"
+msgid "%P: bfd_xcoff_link_record_set failed: %E\n"
msgstr ""
#: eaix5ppc.c:731 eaix5rs6.c:731 eaixppc.c:731 eaixrs6.c:731 eppcmacos.c:731
-msgid "%F%P: bfd_link_hash_lookup of export symbol failed: %E\n"
+msgid "%P: bfd_link_hash_lookup of export symbol failed: %E\n"
msgstr ""
#: eaix5ppc.c:733 eaix5rs6.c:733 eaixppc.c:733 eaixrs6.c:733 eppcmacos.c:733
-msgid "%F%P: bfd_xcoff_export_symbol failed: %E\n"
+msgid "%P: bfd_xcoff_export_symbol failed: %E\n"
msgstr ""
#: eaix5ppc.c:838 eaix5rs6.c:838 eaixppc.c:838 eaixrs6.c:838 eppcmacos.c:838
-msgid "%F%P: can't find output section %s\n"
+msgid "%P: can't find output section %pA\n"
msgstr ""
#: eaix5ppc.c:875 eaix5rs6.c:875 eaixppc.c:875 eaixrs6.c:875 eppcmacos.c:875
-msgid "%F%P: can't find %s in output section\n"
+msgid "%P: can't find %pA in output section\n"
msgstr ""
-#: eaix5ppc.c:942 eaix5rs6.c:942 eaixppc.c:942 eaixrs6.c:942 eppcmacos.c:942
+#: eaix5ppc.c:941 eaix5rs6.c:941 eaixppc.c:941 eaixrs6.c:941 eppcmacos.c:941
msgid "%P: can't find required output section %s\n"
msgstr ""
-#: eaix5ppc.c:1124 eaix5rs6.c:1124 eaixppc.c:1124 eaixrs6.c:1124
-#: eppcmacos.c:1124
+#: eaix5ppc.c:1123 eaix5rs6.c:1123 eaixppc.c:1123 eaixrs6.c:1123
+#: eppcmacos.c:1123
msgid "%X%P: can not size stub sections: %E\n"
msgstr ""
-#: eaix5ppc.c:1129 eaix5rs6.c:1129 eaixppc.c:1129 eaixrs6.c:1129
-#: eppcmacos.c:1129
-msgid "%F%P: failed to layout dynamic sections: %E\n"
+#: eaix5ppc.c:1128 eaix5rs6.c:1128 eaixppc.c:1128 eaixrs6.c:1128
+#: eppcmacos.c:1128
+msgid "%P: failed to layout dynamic sections: %E\n"
msgstr ""
-#: eaix5ppc.c:1342 eaix5rs6.c:1342 eaixppc.c:1342 eaixrs6.c:1342
-#: eppcmacos.c:1342
-msgid "%F%P:%s:%d: #! ([member]) is not supported in import files\n"
+#: eaix5ppc.c:1341 eaix5rs6.c:1341 eaixppc.c:1341 eaixrs6.c:1341
+#: eppcmacos.c:1341
+msgid "%P:%s:%d: #! ([member]) is not supported in import files\n"
msgstr ""
-#: eaix5ppc.c:1359 eaix5rs6.c:1359 eaixppc.c:1359 eaixrs6.c:1359
-#: eppcmacos.c:1359
-msgid "%F%P: could not parse import path: %E\n"
+#: eaix5ppc.c:1358 eaix5rs6.c:1358 eaixppc.c:1358 eaixrs6.c:1358
+#: eppcmacos.c:1358
+msgid "%P: could not parse import path: %E\n"
msgstr ""
-#: eaix5ppc.c:1369 eaix5ppc.c:1381 eaix5rs6.c:1369 eaix5rs6.c:1381
-#: eaixppc.c:1369 eaixppc.c:1381 eaixrs6.c:1369 eaixrs6.c:1381
-#: eppcmacos.c:1369 eppcmacos.c:1381
+#: eaix5ppc.c:1368 eaix5ppc.c:1380 eaix5rs6.c:1368 eaix5rs6.c:1380
+#: eaixppc.c:1368 eaixppc.c:1380 eaixrs6.c:1368 eaixrs6.c:1380
+#: eppcmacos.c:1368 eppcmacos.c:1380
msgid "%P:%s:%d: warning: syntax error in import file\n"
msgstr ""
-#: eaix5ppc.c:1416 eaix5rs6.c:1416 eaixppc.c:1416 eaixrs6.c:1416
-#: eppcmacos.c:1416
+#: eaix5ppc.c:1415 eaix5rs6.c:1415 eaixppc.c:1415 eaixrs6.c:1415
+#: eppcmacos.c:1415
msgid "%P:%s%d: warning: syntax error in import/export file\n"
msgstr ""
-#: eaix5ppc.c:1434 eaix5rs6.c:1434 eaixppc.c:1434 eaixrs6.c:1434
-#: eppcmacos.c:1434
+#: eaix5ppc.c:1433 eaix5rs6.c:1433 eaixppc.c:1433 eaixrs6.c:1433
+#: eppcmacos.c:1433
msgid "%P:%s:%d: warning: syntax error in import/export file\n"
msgstr ""
-#: eaix5ppc.c:1469 eaix5rs6.c:1469 eaixppc.c:1469 eaixrs6.c:1469
-#: eppcmacos.c:1469
+#: eaix5ppc.c:1468 eaix5rs6.c:1468 eaixppc.c:1468 eaixrs6.c:1468
+#: eppcmacos.c:1468
msgid "%X%P:%s:%d: failed to import symbol %s: %E\n"
msgstr ""
-#: eaix5ppc.c:1479 eaix5rs6.c:1479 eaixppc.c:1479 eaixrs6.c:1479
-#: eppcmacos.c:1479
+#: eaix5ppc.c:1478 eaix5rs6.c:1478 eaixppc.c:1478 eaixrs6.c:1478
+#: eppcmacos.c:1478
msgid "%P:%s:%d: warning: ignoring unterminated last line\n"
msgstr ""
-#: eaix5ppc.c:1514 eaix5rs6.c:1514 eaixppc.c:1514 eaixrs6.c:1514
-#: eppcmacos.c:1514
-msgid "%F%P: only relocations against symbols are permitted\n"
+#: eaix5ppc.c:1513 eaix5rs6.c:1513 eaixppc.c:1513 eaixrs6.c:1513
+#: eppcmacos.c:1513
+msgid "%P: only relocations against symbols are permitted\n"
msgstr ""
-#: eaix5ppc.c:1517 eaix5rs6.c:1517 eaixppc.c:1517 eaixrs6.c:1517
-#: eppcmacos.c:1517
-msgid "%F%P: bfd_xcoff_link_count_reloc failed: %E\n"
+#: eaix5ppc.c:1516 eaix5rs6.c:1516 eaixppc.c:1516 eaixrs6.c:1516
+#: eppcmacos.c:1516
+msgid "%P: bfd_xcoff_link_count_reloc failed: %E\n"
msgstr ""
-#: eaix5ppc.c:1605 eaix5rs6.c:1605 eaixppc.c:1605 eaixrs6.c:1605
-#: eppcmacos.c:1605
-msgid "%F%P: can not create stub BFD: %E\n"
+#: eaix5ppc.c:1604 eaix5rs6.c:1604 eaixppc.c:1604 eaixrs6.c:1604
+#: eppcmacos.c:1604
+msgid "%P: can not create stub BFD: %E\n"
msgstr ""
-#: eaix5ppc.c:1615 eaix5rs6.c:1615 eaixppc.c:1615 eaixrs6.c:1615
-#: eelf64_s390.c:66 eelf64lppc.c:132 eelf64lppc_fbsd.c:132 eelf64ppc.c:132
-#: eelf64ppc_fbsd.c:132 eppcmacos.c:1615
-msgid "%F%P: can not init BFD: %E\n"
+#: eaix5ppc.c:1614 eaix5rs6.c:1614 eaixppc.c:1614 eaixrs6.c:1614
+#: eelf32kvx.c:324 eelf64_s390.c:66 eelf64kvx.c:324 eelf64kvx_linux.c:322
+#: eelf64lppc.c:132 eelf64lppc_fbsd.c:132 eelf64ppc.c:132 eelf64ppc_fbsd.c:132
+#: eppcmacos.c:1614
+msgid "%P: can not init BFD: %E\n"
msgstr ""
#: ealphavms.c:168 eelf64_ia64_vms.c:168
@@ -5485,7 +5530,7 @@ msgstr ""
#: earmelf_vxworks.c:145 earmelfb.c:145 earmelfb_fbsd.c:145
#: earmelfb_fuchsia.c:146 earmelfb_linux.c:146 earmelfb_linux_eabi.c:146
#: earmelfb_linux_fdpiceabi.c:146 earmelfb_nacl.c:146 earmelfb_nbsd.c:145
-#: earmnto.c:145 ei386beos.c:598
+#: earmnto.c:145 ei386beos.c:592
#, c-format
msgid "%P: errors encountered processing file %s\n"
msgstr ""
@@ -5497,7 +5542,7 @@ msgstr ""
#: earmelfb_fuchsia.c:556 earmelfb_linux.c:556 earmelfb_linux_eabi.c:556
#: earmelfb_linux_fdpiceabi.c:556 earmelfb_nacl.c:556 earmelfb_nbsd.c:555
#: earmnto.c:555
-msgid "%F%P: %s: can't open: %E\n"
+msgid "%P: %s: can't open: %E\n"
msgstr ""
#: earmelf.c:558 earmelf_fbsd.c:558 earmelf_fuchsia.c:559 earmelf_haiku.c:559
@@ -5507,7 +5552,7 @@ msgstr ""
#: earmelfb_fuchsia.c:559 earmelfb_linux.c:559 earmelfb_linux_eabi.c:559
#: earmelfb_linux_fdpiceabi.c:559 earmelfb_nacl.c:559 earmelfb_nbsd.c:558
#: earmnto.c:558
-msgid "%F%P: %s: not a relocatable file: %E\n"
+msgid "%P: %s: not a relocatable file: %E\n"
msgstr ""
#: earmelf.c:1101 earmelf_fbsd.c:1101 earmelf_fuchsia.c:1106
@@ -5817,7 +5862,8 @@ msgstr ""
msgid " --debug-relax Used for debugging avr-ld.\n"
msgstr ""
-#: ecskyelf.c:278 ecskyelf_linux.c:278
+#: ecskyelf.c:278 ecskyelf_linux.c:278 eelf32kvx.c:271 eelf64kvx.c:271
+#: eelf64kvx_linux.c:269
msgid "%X%P: cannot size stub section: %E\n"
msgstr ""
@@ -5851,7 +5897,7 @@ msgid "%X%P: can not create note section: %E\n"
msgstr ""
#: eelf32_spu.c:347
-msgid "%F%P: no built-in overlay manager\n"
+msgid "%P: no built-in overlay manager\n"
msgstr ""
#: eelf32_spu.c:357
@@ -5875,7 +5921,7 @@ msgid "%X%P: can not size overlay stubs: %E\n"
msgstr ""
#: eelf32_spu.c:524
-msgid "%F%P: can not open script: %E\n"
+msgid "%P: can not open script: %E\n"
msgstr ""
#: eelf32_spu.c:571
@@ -5892,35 +5938,35 @@ msgid "running: %s \"%s\" \"%s\" \"%s\" \"%s\"\n"
msgstr ""
#: eelf32_spu.c:1075
-msgid "%F%P: invalid --local-store address range `%s'\n"
+msgid "%P: invalid --local-store address range `%s'\n"
msgstr ""
#: eelf32_spu.c:1111
-msgid "%F%P: invalid --num-lines/--num-regions `%u'\n"
+msgid "%P: invalid --num-lines/--num-regions `%u'\n"
msgstr ""
#: eelf32_spu.c:1116
-msgid "%F%P: invalid --line-size/--region-size `%u'\n"
+msgid "%P: invalid --line-size/--region-size `%u'\n"
msgstr ""
#: eelf32_spu.c:1137
-msgid "%F%P: invalid --num-lines/--num-regions `%s'\n"
+msgid "%P: invalid --num-lines/--num-regions `%s'\n"
msgstr ""
#: eelf32_spu.c:1150
-msgid "%F%P: invalid --line-size/--region-size `%s'\n"
+msgid "%P: invalid --line-size/--region-size `%s'\n"
msgstr ""
#: eelf32_spu.c:1159
-msgid "%F%P: invalid --fixed-space value `%s'\n"
+msgid "%P: invalid --fixed-space value `%s'\n"
msgstr ""
#: eelf32_spu.c:1168
-msgid "%F%P: invalid --reserved-space value `%s'\n"
+msgid "%P: invalid --reserved-space value `%s'\n"
msgstr ""
#: eelf32_spu.c:1177
-msgid "%F%P: invalid --extra-stack-space value `%s'\n"
+msgid "%P: invalid --extra-stack-space value `%s'\n"
msgstr ""
#: eelf32_spu.c:1214
@@ -6045,243 +6091,243 @@ msgstr ""
msgid " --lrlive-analysis Scan function prologue for lr liveness\n"
msgstr ""
-#: eelf32_tic6x_be.c:91 eelf32_tic6x_elf_be.c:91 eelf32_tic6x_elf_le.c:91
-#: eelf32_tic6x_le.c:91 eelf32_tic6x_linux_be.c:91 eelf32_tic6x_linux_le.c:91
-msgid "%F%P: invalid --dsbt-index %d, outside DSBT size\n"
+#: eelf32_tic6x_be.c:90 eelf32_tic6x_elf_be.c:90 eelf32_tic6x_elf_le.c:90
+#: eelf32_tic6x_le.c:90 eelf32_tic6x_linux_be.c:90 eelf32_tic6x_linux_le.c:90
+msgid "%P: invalid --dsbt-index %d, outside DSBT size\n"
msgstr ""
-#: eelf32_tic6x_be.c:631 eelf32_tic6x_elf_be.c:631 eelf32_tic6x_elf_le.c:631
-#: eelf32_tic6x_le.c:631 eelf32_tic6x_linux_be.c:631
-#: eelf32_tic6x_linux_le.c:631
-msgid "%F%P: invalid --dsbt-index %s\n"
+#: eelf32_tic6x_be.c:629 eelf32_tic6x_elf_be.c:629 eelf32_tic6x_elf_le.c:629
+#: eelf32_tic6x_le.c:629 eelf32_tic6x_linux_be.c:629
+#: eelf32_tic6x_linux_le.c:629
+msgid "%P: invalid --dsbt-index %s\n"
msgstr ""
-#: eelf32_tic6x_be.c:641 eelf32_tic6x_elf_be.c:641 eelf32_tic6x_elf_le.c:641
-#: eelf32_tic6x_le.c:641 eelf32_tic6x_linux_be.c:641
-#: eelf32_tic6x_linux_le.c:641
-msgid "%F%P: invalid --dsbt-size %s\n"
+#: eelf32_tic6x_be.c:639 eelf32_tic6x_elf_be.c:639 eelf32_tic6x_elf_le.c:639
+#: eelf32_tic6x_le.c:639 eelf32_tic6x_linux_be.c:639
+#: eelf32_tic6x_linux_le.c:639
+msgid "%P: invalid --dsbt-size %s\n"
msgstr ""
-#: eelf32_tic6x_be.c:657 eelf32_tic6x_elf_be.c:657 eelf32_tic6x_elf_le.c:657
-#: eelf32_tic6x_le.c:657 eelf32_tic6x_linux_be.c:657
-#: eelf32_tic6x_linux_le.c:657
+#: eelf32_tic6x_be.c:655 eelf32_tic6x_elf_be.c:655 eelf32_tic6x_elf_le.c:655
+#: eelf32_tic6x_le.c:655 eelf32_tic6x_linux_be.c:655
+#: eelf32_tic6x_linux_le.c:655
#, c-format
msgid ""
" --dsbt-index <index> Use this as the DSBT index for the output object\n"
msgstr ""
-#: eelf32_tic6x_be.c:658 eelf32_tic6x_elf_be.c:658 eelf32_tic6x_elf_le.c:658
-#: eelf32_tic6x_le.c:658 eelf32_tic6x_linux_be.c:658
-#: eelf32_tic6x_linux_le.c:658
+#: eelf32_tic6x_be.c:656 eelf32_tic6x_elf_be.c:656 eelf32_tic6x_elf_le.c:656
+#: eelf32_tic6x_le.c:656 eelf32_tic6x_linux_be.c:656
+#: eelf32_tic6x_linux_le.c:656
#, c-format
msgid ""
" --dsbt-size <index> Use this as the number of entries in the DSBT "
"table\n"
msgstr ""
-#: eelf32_tic6x_be.c:659 eelf32_tic6x_elf_be.c:659 eelf32_tic6x_elf_le.c:659
-#: eelf32_tic6x_le.c:659 eelf32_tic6x_linux_be.c:659
-#: eelf32_tic6x_linux_le.c:659
+#: eelf32_tic6x_be.c:657 eelf32_tic6x_elf_be.c:657 eelf32_tic6x_elf_le.c:657
+#: eelf32_tic6x_le.c:657 eelf32_tic6x_linux_be.c:657
+#: eelf32_tic6x_linux_le.c:657
#, c-format
msgid " --no-merge-exidx-entries\n"
msgstr ""
-#: eelf32_tic6x_be.c:660 eelf32_tic6x_elf_be.c:660 eelf32_tic6x_elf_le.c:660
-#: eelf32_tic6x_le.c:660 eelf32_tic6x_linux_be.c:660
-#: eelf32_tic6x_linux_le.c:660
+#: eelf32_tic6x_be.c:658 eelf32_tic6x_elf_be.c:658 eelf32_tic6x_elf_le.c:658
+#: eelf32_tic6x_le.c:658 eelf32_tic6x_linux_be.c:658
+#: eelf32_tic6x_linux_le.c:658
#, c-format
msgid " Disable merging exidx entries\n"
msgstr ""
-#: eelf32_x86_64.c:8606 eelf_i386.c:8061 eelf_i386_be.c:542
+#: eelf32_x86_64.c:8638 eelf_i386.c:8061 eelf_i386_be.c:542
#: eelf_i386_fbsd.c:593 eelf_i386_haiku.c:593 eelf_i386_ldso.c:553
#: eelf_i386_sol2.c:725 eelf_i386_vxworks.c:619 eelf_iamcu.c:593
-#: eelf_x86_64.c:8606 eelf_x86_64_cloudabi.c:604 eelf_x86_64_fbsd.c:604
-#: eelf_x86_64_haiku.c:604 eelf_x86_64_sol2.c:736
-msgid "%F%P: invalid number for -z call-nop=prefix-: %s\n"
+#: eelf_x86_64.c:8638 eelf_x86_64_cloudabi.c:636 eelf_x86_64_fbsd.c:636
+#: eelf_x86_64_haiku.c:636 eelf_x86_64_sol2.c:768
+msgid "%P: invalid number for -z call-nop=prefix-: %s\n"
msgstr ""
-#: eelf32_x86_64.c:8615 eelf_i386.c:8070 eelf_i386_be.c:551
+#: eelf32_x86_64.c:8647 eelf_i386.c:8070 eelf_i386_be.c:551
#: eelf_i386_fbsd.c:602 eelf_i386_haiku.c:602 eelf_i386_ldso.c:562
#: eelf_i386_sol2.c:734 eelf_i386_vxworks.c:628 eelf_iamcu.c:602
-#: eelf_x86_64.c:8615 eelf_x86_64_cloudabi.c:613 eelf_x86_64_fbsd.c:613
-#: eelf_x86_64_haiku.c:613 eelf_x86_64_sol2.c:745
-msgid "%F%P: invalid number for -z call-nop=suffix-: %s\n"
+#: eelf_x86_64.c:8647 eelf_x86_64_cloudabi.c:645 eelf_x86_64_fbsd.c:645
+#: eelf_x86_64_haiku.c:645 eelf_x86_64_sol2.c:777
+msgid "%P: invalid number for -z call-nop=suffix-: %s\n"
msgstr ""
-#: eelf32_x86_64.c:8620 eelf_i386.c:8075 eelf_i386_be.c:556
+#: eelf32_x86_64.c:8652 eelf_i386.c:8075 eelf_i386_be.c:556
#: eelf_i386_fbsd.c:607 eelf_i386_haiku.c:607 eelf_i386_ldso.c:567
#: eelf_i386_sol2.c:739 eelf_i386_vxworks.c:633 eelf_iamcu.c:607
-#: eelf_x86_64.c:8620 eelf_x86_64_cloudabi.c:618 eelf_x86_64_fbsd.c:618
-#: eelf_x86_64_haiku.c:618 eelf_x86_64_sol2.c:750
-msgid "%F%P: unsupported option: -z %s\n"
+#: eelf_x86_64.c:8652 eelf_x86_64_cloudabi.c:650 eelf_x86_64_fbsd.c:650
+#: eelf_x86_64_haiku.c:650 eelf_x86_64_sol2.c:782
+msgid "%P: unsupported option: -z %s\n"
msgstr ""
-#: eelf32_x86_64.c:8642 eelf_i386.c:8097 eelf_i386_fbsd.c:629
-#: eelf_i386_haiku.c:629 eelf_x86_64.c:8642 eelf_x86_64_cloudabi.c:640
-#: eelf_x86_64_fbsd.c:640 eelf_x86_64_haiku.c:640 eelf_x86_64_sol2.c:772
-msgid "%F%P: invalid option for -z cet-report=: %s\n"
+#: eelf32_x86_64.c:8674 eelf_i386.c:8097 eelf_i386_fbsd.c:629
+#: eelf_i386_haiku.c:629 eelf_x86_64.c:8674 eelf_x86_64_cloudabi.c:672
+#: eelf_x86_64_fbsd.c:672 eelf_x86_64_haiku.c:672 eelf_x86_64_sol2.c:804
+msgid "%P: invalid option for -z cet-report=: %s\n"
msgstr ""
-#: eelf32_x86_64.c:8656 eelf_i386.c:8111 eelf_i386_fbsd.c:643
-#: eelf_i386_haiku.c:643 eelf_x86_64.c:8656 eelf_x86_64_cloudabi.c:654
-#: eelf_x86_64_fbsd.c:654 eelf_x86_64_haiku.c:654 eelf_x86_64_sol2.c:786
-msgid "%F%P: invalid x86-64 ISA level: %s\n"
+#: eelf32_x86_64.c:8688 eelf_i386.c:8111 eelf_i386_fbsd.c:643
+#: eelf_i386_haiku.c:643 eelf_x86_64.c:8688 eelf_x86_64_cloudabi.c:686
+#: eelf_x86_64_fbsd.c:686 eelf_x86_64_haiku.c:686 eelf_x86_64_sol2.c:818
+msgid "%P: invalid x86-64 ISA level: %s\n"
msgstr ""
-#: eelf32_x86_64.c:8672 eelf_i386.c:8127 eelf_i386_fbsd.c:659
-#: eelf_i386_haiku.c:659 eelf_x86_64.c:8672 eelf_x86_64_cloudabi.c:670
-#: eelf_x86_64_fbsd.c:670 eelf_x86_64_haiku.c:670 eelf_x86_64_sol2.c:802
-msgid "%F%P: invalid option for -z isa-level-report=: %s\n"
+#: eelf32_x86_64.c:8704 eelf_i386.c:8127 eelf_i386_fbsd.c:659
+#: eelf_i386_haiku.c:659 eelf_x86_64.c:8704 eelf_x86_64_cloudabi.c:702
+#: eelf_x86_64_fbsd.c:702 eelf_x86_64_haiku.c:702 eelf_x86_64_sol2.c:834
+msgid "%P: invalid option for -z isa-level-report=: %s\n"
msgstr ""
-#: eelf32_x86_64.c:8719 eelf_i386.c:8169 eelf_i386_be.c:572
+#: eelf32_x86_64.c:8751 eelf_i386.c:8169 eelf_i386_be.c:572
#: eelf_i386_fbsd.c:701 eelf_i386_haiku.c:701 eelf_i386_ldso.c:592
#: eelf_i386_sol2.c:764 eelf_i386_vxworks.c:654 eelf_iamcu.c:632
-#: eelf_x86_64.c:8769 eelf_x86_64_cloudabi.c:767 eelf_x86_64_fbsd.c:767
-#: eelf_x86_64_haiku.c:767 eelf_x86_64_sol2.c:899
+#: eelf_x86_64.c:8801 eelf_x86_64_cloudabi.c:799 eelf_x86_64_fbsd.c:799
+#: eelf_x86_64_haiku.c:799 eelf_x86_64_sol2.c:931
#, c-format
msgid ""
" -z noextern-protected-data Do not treat protected data symbol as "
"external\n"
msgstr ""
-#: eelf32_x86_64.c:8721 eelf_i386.c:8171 eelf_i386_be.c:574
+#: eelf32_x86_64.c:8753 eelf_i386.c:8171 eelf_i386_be.c:574
#: eelf_i386_fbsd.c:703 eelf_i386_haiku.c:703 eelf_i386_ldso.c:594
#: eelf_i386_sol2.c:766 eelf_i386_vxworks.c:656 eelf_iamcu.c:634
-#: eelf_x86_64.c:8771 eelf_x86_64_cloudabi.c:769 eelf_x86_64_fbsd.c:769
-#: eelf_x86_64_haiku.c:769 eelf_x86_64_sol2.c:901
+#: eelf_x86_64.c:8803 eelf_x86_64_cloudabi.c:801 eelf_x86_64_fbsd.c:801
+#: eelf_x86_64_haiku.c:801 eelf_x86_64_sol2.c:933
#, c-format
msgid " -z indirect-extern-access Enable indirect external access\n"
msgstr ""
-#: eelf32_x86_64.c:8723 eelf_i386.c:8173 eelf_i386_be.c:576
+#: eelf32_x86_64.c:8755 eelf_i386.c:8173 eelf_i386_be.c:576
#: eelf_i386_fbsd.c:705 eelf_i386_haiku.c:705 eelf_i386_ldso.c:596
#: eelf_i386_sol2.c:768 eelf_i386_vxworks.c:658 eelf_iamcu.c:636
-#: eelf_x86_64.c:8773 eelf_x86_64_cloudabi.c:771 eelf_x86_64_fbsd.c:771
-#: eelf_x86_64_haiku.c:771 eelf_x86_64_sol2.c:903
+#: eelf_x86_64.c:8805 eelf_x86_64_cloudabi.c:803 eelf_x86_64_fbsd.c:803
+#: eelf_x86_64_haiku.c:803 eelf_x86_64_sol2.c:935
#, c-format
msgid ""
" -z noindirect-extern-access Disable indirect external access (default)\n"
msgstr ""
-#: eelf32_x86_64.c:8726 eelf32lppc.c:881 eelf32lppclinux.c:881
+#: eelf32_x86_64.c:8758 eelf32lppc.c:881 eelf32lppclinux.c:881
#: eelf32lppcnto.c:881 eelf32lppcsim.c:881 eelf32ppc.c:881
#: eelf32ppc_fbsd.c:881 eelf32ppchaiku.c:881 eelf32ppclinux.c:881
#: eelf32ppcnto.c:881 eelf32ppcsim.c:881 eelf32ppcvxworks.c:855
-#: eelf32ppcwindiss.c:881 eelf64lppc.c:1395 eelf64lppc_fbsd.c:1395
-#: eelf64ppc.c:1395 eelf64ppc_fbsd.c:1395 eelf_i386.c:8176 eelf_i386_be.c:579
+#: eelf32ppcwindiss.c:881 eelf64lppc.c:1396 eelf64lppc_fbsd.c:1396
+#: eelf64ppc.c:1396 eelf64ppc_fbsd.c:1396 eelf_i386.c:8176 eelf_i386_be.c:579
#: eelf_i386_fbsd.c:708 eelf_i386_haiku.c:708 eelf_i386_ldso.c:599
#: eelf_i386_sol2.c:771 eelf_i386_vxworks.c:661 eelf_iamcu.c:639
-#: eelf_x86_64.c:8776 eelf_x86_64_cloudabi.c:774 eelf_x86_64_fbsd.c:774
-#: eelf_x86_64_haiku.c:774 eelf_x86_64_sol2.c:906
+#: eelf_x86_64.c:8808 eelf_x86_64_cloudabi.c:806 eelf_x86_64_fbsd.c:806
+#: eelf_x86_64_haiku.c:806 eelf_x86_64_sol2.c:938
#, c-format
msgid ""
" -z dynamic-undefined-weak Make undefined weak symbols dynamic\n"
" -z nodynamic-undefined-weak Do not make undefined weak symbols dynamic\n"
msgstr ""
-#: eelf32_x86_64.c:8730 eelf_x86_64.c:8780 eelf_x86_64_cloudabi.c:778
-#: eelf_x86_64_fbsd.c:778 eelf_x86_64_haiku.c:778 eelf_x86_64_sol2.c:910
+#: eelf32_x86_64.c:8762 eelf_x86_64.c:8812 eelf_x86_64_cloudabi.c:810
+#: eelf_x86_64_fbsd.c:810 eelf_x86_64_haiku.c:810 eelf_x86_64_sol2.c:942
#, c-format
msgid " -z noreloc-overflow Disable relocation overflow check\n"
msgstr ""
-#: eelf32_x86_64.c:8733 eelf_i386.c:8180 eelf_i386_be.c:583
+#: eelf32_x86_64.c:8765 eelf_i386.c:8180 eelf_i386_be.c:583
#: eelf_i386_fbsd.c:712 eelf_i386_haiku.c:712 eelf_i386_ldso.c:603
#: eelf_i386_sol2.c:775 eelf_i386_vxworks.c:665 eelf_iamcu.c:643
-#: eelf_x86_64.c:8783 eelf_x86_64_cloudabi.c:781 eelf_x86_64_fbsd.c:781
-#: eelf_x86_64_haiku.c:781 eelf_x86_64_sol2.c:913
+#: eelf_x86_64.c:8815 eelf_x86_64_cloudabi.c:813 eelf_x86_64_fbsd.c:813
+#: eelf_x86_64_haiku.c:813 eelf_x86_64_sol2.c:945
#, c-format
msgid " -z call-nop=PADDING Use PADDING as 1-byte NOP for branch\n"
msgstr ""
-#: eelf32_x86_64.c:8736 eelf_i386.c:8183 eelf_i386_fbsd.c:715
-#: eelf_i386_haiku.c:715 eelf_x86_64.c:8786 eelf_x86_64_cloudabi.c:784
-#: eelf_x86_64_fbsd.c:784 eelf_x86_64_haiku.c:784 eelf_x86_64_sol2.c:916
+#: eelf32_x86_64.c:8768 eelf_i386.c:8183 eelf_i386_fbsd.c:715
+#: eelf_i386_haiku.c:715 eelf_x86_64.c:8818 eelf_x86_64_cloudabi.c:816
+#: eelf_x86_64_fbsd.c:816 eelf_x86_64_haiku.c:816 eelf_x86_64_sol2.c:948
#, c-format
msgid " -z ibtplt Generate IBT-enabled PLT entries\n"
msgstr ""
-#: eelf32_x86_64.c:8738 eelf_i386.c:8185 eelf_i386_fbsd.c:717
-#: eelf_i386_haiku.c:717 eelf_x86_64.c:8788 eelf_x86_64_cloudabi.c:786
-#: eelf_x86_64_fbsd.c:786 eelf_x86_64_haiku.c:786 eelf_x86_64_sol2.c:918
+#: eelf32_x86_64.c:8770 eelf_i386.c:8185 eelf_i386_fbsd.c:717
+#: eelf_i386_haiku.c:717 eelf_x86_64.c:8820 eelf_x86_64_cloudabi.c:818
+#: eelf_x86_64_fbsd.c:818 eelf_x86_64_haiku.c:818 eelf_x86_64_sol2.c:950
#, c-format
msgid " -z ibt Generate GNU_PROPERTY_X86_FEATURE_1_IBT\n"
msgstr ""
-#: eelf32_x86_64.c:8740 eelf_i386.c:8187 eelf_i386_fbsd.c:719
-#: eelf_i386_haiku.c:719 eelf_x86_64.c:8790 eelf_x86_64_cloudabi.c:788
-#: eelf_x86_64_fbsd.c:788 eelf_x86_64_haiku.c:788 eelf_x86_64_sol2.c:920
+#: eelf32_x86_64.c:8772 eelf_i386.c:8187 eelf_i386_fbsd.c:719
+#: eelf_i386_haiku.c:719 eelf_x86_64.c:8822 eelf_x86_64_cloudabi.c:820
+#: eelf_x86_64_fbsd.c:820 eelf_x86_64_haiku.c:820 eelf_x86_64_sol2.c:952
#, c-format
msgid ""
" -z shstk Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK\n"
msgstr ""
-#: eelf32_x86_64.c:8742 eelf_i386.c:8189 eelf_i386_fbsd.c:721
-#: eelf_i386_haiku.c:721 eelf_x86_64.c:8792 eelf_x86_64_cloudabi.c:790
-#: eelf_x86_64_fbsd.c:790 eelf_x86_64_haiku.c:790 eelf_x86_64_sol2.c:922
+#: eelf32_x86_64.c:8774 eelf_i386.c:8189 eelf_i386_fbsd.c:721
+#: eelf_i386_haiku.c:721 eelf_x86_64.c:8824 eelf_x86_64_cloudabi.c:822
+#: eelf_x86_64_fbsd.c:822 eelf_x86_64_haiku.c:822 eelf_x86_64_sol2.c:954
#, c-format
msgid ""
" -z cet-report=[none|warning|error] (default: none)\n"
" Report missing IBT and SHSTK properties\n"
msgstr ""
-#: eelf32_x86_64.c:8746 eelf_i386.c:8193 eelf_i386_fbsd.c:725
-#: eelf_i386_haiku.c:725 eelf_x86_64.c:8796 eelf_x86_64_cloudabi.c:794
-#: eelf_x86_64_fbsd.c:794 eelf_x86_64_haiku.c:794 eelf_x86_64_sol2.c:926
+#: eelf32_x86_64.c:8778 eelf_i386.c:8193 eelf_i386_fbsd.c:725
+#: eelf_i386_haiku.c:725 eelf_x86_64.c:8828 eelf_x86_64_cloudabi.c:826
+#: eelf_x86_64_fbsd.c:826 eelf_x86_64_haiku.c:826 eelf_x86_64_sol2.c:958
#, c-format
msgid " -z report-relative-reloc Report relative relocations\n"
msgstr ""
-#: eelf32_x86_64.c:8749 eelf_i386.c:8196 eelf_i386_fbsd.c:728
-#: eelf_i386_haiku.c:728 eelf_x86_64.c:8799 eelf_x86_64_cloudabi.c:797
-#: eelf_x86_64_fbsd.c:797 eelf_x86_64_haiku.c:797 eelf_x86_64_sol2.c:929
+#: eelf32_x86_64.c:8781 eelf_i386.c:8196 eelf_i386_fbsd.c:728
+#: eelf_i386_haiku.c:728 eelf_x86_64.c:8831 eelf_x86_64_cloudabi.c:829
+#: eelf_x86_64_fbsd.c:829 eelf_x86_64_haiku.c:829 eelf_x86_64_sol2.c:961
#, c-format
msgid ""
" -z x86-64-{baseline|v[234]} Mark x86-64-{baseline|v[234]} ISA level as "
"needed\n"
msgstr ""
-#: eelf32_x86_64.c:8752 eelf_i386.c:8199 eelf_i386_fbsd.c:731
-#: eelf_i386_haiku.c:731 eelf_x86_64.c:8802 eelf_x86_64_cloudabi.c:800
-#: eelf_x86_64_fbsd.c:800 eelf_x86_64_haiku.c:800 eelf_x86_64_sol2.c:932
+#: eelf32_x86_64.c:8784 eelf_i386.c:8199 eelf_i386_fbsd.c:731
+#: eelf_i386_haiku.c:731 eelf_x86_64.c:8834 eelf_x86_64_cloudabi.c:832
+#: eelf_x86_64_fbsd.c:832 eelf_x86_64_haiku.c:832 eelf_x86_64_sol2.c:964
#, c-format
msgid ""
" -z isa-level-report=[none|all|needed|used] (default: none)\n"
" Report x86-64 ISA level\n"
msgstr ""
-#: eelf32_x86_64.c:8757 eelf_x86_64.c:8821 eelf_x86_64_cloudabi.c:819
-#: eelf_x86_64_fbsd.c:819 eelf_x86_64_haiku.c:819 eelf_x86_64_sol2.c:951
+#: eelf32_x86_64.c:8789 eelf_x86_64.c:8853 eelf_x86_64_cloudabi.c:851
+#: eelf_x86_64_fbsd.c:851 eelf_x86_64_haiku.c:851 eelf_x86_64_sol2.c:983
#, c-format
msgid ""
" -z mark-plt Mark PLT with dynamic tags (default)\n"
" -z nomark-plt Do not mark PLT with dynamic tags\n"
msgstr ""
-#: eelf32_x86_64.c:8761 eelf_x86_64.c:8825 eelf_x86_64_cloudabi.c:823
-#: eelf_x86_64_fbsd.c:823 eelf_x86_64_haiku.c:823 eelf_x86_64_sol2.c:955
+#: eelf32_x86_64.c:8793 eelf_x86_64.c:8857 eelf_x86_64_cloudabi.c:855
+#: eelf_x86_64_fbsd.c:855 eelf_x86_64_haiku.c:855 eelf_x86_64_sol2.c:987
#, c-format
msgid ""
" -z mark-plt Mark PLT with dynamic tags\n"
" -z nomark-plt Do not mark PLT with dynamic tags (default)\n"
msgstr ""
-#: eelf32_x86_64.c:8765 eelf64loongarch.c:619 eelf64lppc.c:1399
-#: eelf64lppc_fbsd.c:1399 eelf64ppc.c:1399 eelf64ppc_fbsd.c:1399
+#: eelf32_x86_64.c:8797 eelf64loongarch.c:619 eelf64lppc.c:1400
+#: eelf64lppc_fbsd.c:1400 eelf64ppc.c:1400 eelf64ppc_fbsd.c:1400
#: eelf_i386.c:8203 eelf_i386_fbsd.c:735 eelf_i386_haiku.c:735
-#: eelf_x86_64.c:8829 eelf_x86_64_cloudabi.c:827 eelf_x86_64_fbsd.c:827
-#: eelf_x86_64_haiku.c:827 eelf_x86_64_sol2.c:959
+#: eelf_x86_64.c:8861 eelf_x86_64_cloudabi.c:859 eelf_x86_64_fbsd.c:859
+#: eelf_x86_64_haiku.c:859 eelf_x86_64_sol2.c:991
#, c-format
msgid " -z pack-relative-relocs Pack relative relocations\n"
msgstr ""
-#: eelf32_x86_64.c:8767 eelf64loongarch.c:621 eelf64lppc.c:1401
-#: eelf64lppc_fbsd.c:1401 eelf64ppc.c:1401 eelf64ppc_fbsd.c:1401
+#: eelf32_x86_64.c:8799 eelf64loongarch.c:621 eelf64lppc.c:1402
+#: eelf64lppc_fbsd.c:1402 eelf64ppc.c:1402 eelf64ppc_fbsd.c:1402
#: eelf_i386.c:8205 eelf_i386_fbsd.c:737 eelf_i386_haiku.c:737
-#: eelf_x86_64.c:8831 eelf_x86_64_cloudabi.c:829 eelf_x86_64_fbsd.c:829
-#: eelf_x86_64_haiku.c:829 eelf_x86_64_sol2.c:961
+#: eelf_x86_64.c:8863 eelf_x86_64_cloudabi.c:861 eelf_x86_64_fbsd.c:861
+#: eelf_x86_64_haiku.c:861 eelf_x86_64_sol2.c:993
#, c-format
msgid ""
" -z nopack-relative-relocs Do not pack relative relocations (default)\n"
@@ -6419,12 +6465,11 @@ msgid ""
msgstr ""
#: eelf32cr16.c:88
-msgid ""
-"%F%P: %pB: all input objects must be COFF or ELF for --embedded-relocs\n"
+msgid "%P: %pB: all input objects must be COFF or ELF for --embedded-relocs\n"
msgstr ""
#: eelf32cr16.c:112 em68kelf.c:116 em68kelfnbsd.c:116
-msgid "%F%P: %pB: can not create .emreloc section: %E\n"
+msgid "%P: %pB: can not create .emreloc section: %E\n"
msgstr ""
#: eelf32cr16.c:131 em68kelf.c:137 em68kelfnbsd.c:137
@@ -6440,7 +6485,11 @@ msgid "%X%P: %pB: can not create runtime reloc information: %s\n"
msgstr ""
#: eelf32kvx.c:64 eelf64kvx.c:64
-msgid "%F:%P: -pie not supported\n"
+msgid ":%P: -pie not supported\n"
+msgstr ""
+
+#: eelf32kvx.c:316 eelf64kvx.c:316 eelf64kvx_linux.c:314
+msgid "%P: can not create BFD %E\n"
msgstr ""
#: eelf32lppc.c:99 eelf32lppclinux.c:99 eelf32lppcnto.c:99 eelf32lppcsim.c:99
@@ -6478,24 +6527,24 @@ msgstr ""
#: eelf32lppcsim.c:822 eelf32ppc.c:822 eelf32ppc_fbsd.c:822
#: eelf32ppchaiku.c:822 eelf32ppclinux.c:822 eelf32ppcnto.c:822
#: eelf32ppcsim.c:822 eelf32ppcvxworks.c:792 eelf32ppcwindiss.c:822
-#: eelf64lppc.c:1262 eelf64lppc_fbsd.c:1262 eelf64ppc.c:1262
-#: eelf64ppc_fbsd.c:1262
-msgid "%F%P: invalid --plt-align `%s'\n"
+#: eelf64lppc.c:1263 eelf64lppc_fbsd.c:1263 eelf64ppc.c:1263
+#: eelf64ppc_fbsd.c:1263
+msgid "%P: invalid --plt-align `%s'\n"
msgstr ""
#: eelf32lppc.c:855 eelf32lppclinux.c:855 eelf32lppcnto.c:855
#: eelf32lppcsim.c:855 eelf32ppc.c:855 eelf32ppc_fbsd.c:855
#: eelf32ppchaiku.c:855 eelf32ppclinux.c:855 eelf32ppcnto.c:855
#: eelf32ppcsim.c:855 eelf32ppcvxworks.c:825 eelf32ppcwindiss.c:855
-msgid "%F%P: invalid pagesize `%s'\n"
+msgid "%P: invalid pagesize `%s'\n"
msgstr ""
#: eelf32lppc.c:885 eelf32lppclinux.c:885 eelf32lppcnto.c:885
#: eelf32lppcsim.c:885 eelf32ppc.c:885 eelf32ppc_fbsd.c:885
#: eelf32ppchaiku.c:885 eelf32ppclinux.c:885 eelf32ppcnto.c:885
#: eelf32ppcsim.c:885 eelf32ppcvxworks.c:859 eelf32ppcwindiss.c:885
-#: eelf64lppc.c:1447 eelf64lppc_fbsd.c:1447 eelf64ppc.c:1447
-#: eelf64ppc_fbsd.c:1447
+#: eelf64lppc.c:1448 eelf64lppc_fbsd.c:1448 eelf64ppc.c:1448
+#: eelf64ppc_fbsd.c:1448
#, c-format
msgid " --emit-stub-syms Label linker stubs with a symbol\n"
msgstr ""
@@ -6504,8 +6553,8 @@ msgstr ""
#: eelf32lppcsim.c:888 eelf32ppc.c:888 eelf32ppc_fbsd.c:888
#: eelf32ppchaiku.c:888 eelf32ppclinux.c:888 eelf32ppcnto.c:888
#: eelf32ppcsim.c:888 eelf32ppcvxworks.c:862 eelf32ppcwindiss.c:888
-#: eelf64lppc.c:1450 eelf64lppc_fbsd.c:1450 eelf64ppc.c:1450
-#: eelf64ppc_fbsd.c:1450
+#: eelf64lppc.c:1451 eelf64lppc_fbsd.c:1451 eelf64ppc.c:1451
+#: eelf64ppc_fbsd.c:1451
#, c-format
msgid " --no-emit-stub-syms Don't label linker stubs with a symbol\n"
msgstr ""
@@ -6514,8 +6563,8 @@ msgstr ""
#: eelf32lppcsim.c:891 eelf32ppc.c:891 eelf32ppc_fbsd.c:891
#: eelf32ppchaiku.c:891 eelf32ppclinux.c:891 eelf32ppcnto.c:891
#: eelf32ppcsim.c:891 eelf32ppcvxworks.c:865 eelf32ppcwindiss.c:891
-#: eelf64lppc.c:1470 eelf64lppc_fbsd.c:1470 eelf64ppc.c:1470
-#: eelf64ppc_fbsd.c:1470
+#: eelf64lppc.c:1471 eelf64lppc_fbsd.c:1471 eelf64ppc.c:1471
+#: eelf64ppc_fbsd.c:1471
#, c-format
msgid " --no-tls-optimize Don't try to optimize TLS accesses\n"
msgstr ""
@@ -6524,8 +6573,8 @@ msgstr ""
#: eelf32lppcsim.c:894 eelf32ppc.c:894 eelf32ppc_fbsd.c:894
#: eelf32ppchaiku.c:894 eelf32ppclinux.c:894 eelf32ppcnto.c:894
#: eelf32ppcsim.c:894 eelf32ppcvxworks.c:868 eelf32ppcwindiss.c:894
-#: eelf64lppc.c:1476 eelf64lppc_fbsd.c:1476 eelf64ppc.c:1476
-#: eelf64ppc_fbsd.c:1476
+#: eelf64lppc.c:1477 eelf64lppc_fbsd.c:1477 eelf64ppc.c:1477
+#: eelf64ppc_fbsd.c:1477
#, c-format
msgid " --no-tls-get-addr-optimize Don't use a special __tls_get_addr call\n"
msgstr ""
@@ -6557,8 +6606,8 @@ msgstr ""
#: eelf32lppc.c:906 eelf32lppclinux.c:906 eelf32lppcnto.c:906
#: eelf32lppcsim.c:906 eelf32ppc.c:906 eelf32ppc_fbsd.c:906
#: eelf32ppchaiku.c:906 eelf32ppclinux.c:906 eelf32ppcnto.c:906
-#: eelf32ppcsim.c:906 eelf32ppcwindiss.c:906 eelf64lppc.c:1429
-#: eelf64lppc_fbsd.c:1429 eelf64ppc.c:1429 eelf64ppc_fbsd.c:1429
+#: eelf32ppcsim.c:906 eelf32ppcwindiss.c:906 eelf64lppc.c:1430
+#: eelf64lppc_fbsd.c:1430 eelf64ppc.c:1430 eelf64ppc_fbsd.c:1430
#, c-format
msgid " --no-plt-align Dont't align individual PLT call stubs\n"
msgstr ""
@@ -6566,8 +6615,8 @@ msgstr ""
#: eelf32lppc.c:909 eelf32lppclinux.c:909 eelf32lppcnto.c:909
#: eelf32lppcsim.c:909 eelf32ppc.c:909 eelf32ppc_fbsd.c:909
#: eelf32ppchaiku.c:909 eelf32ppclinux.c:909 eelf32ppcnto.c:909
-#: eelf32ppcsim.c:909 eelf32ppcwindiss.c:909 eelf64lppc.c:1488
-#: eelf64lppc_fbsd.c:1488 eelf64ppc.c:1488 eelf64ppc_fbsd.c:1488
+#: eelf32ppcsim.c:909 eelf32ppcwindiss.c:909 eelf64lppc.c:1489
+#: eelf64lppc_fbsd.c:1489 eelf64ppc.c:1489 eelf64ppc_fbsd.c:1489
#, c-format
msgid ""
" --no-inline-optimize Don't convert inline PLT to direct calls\n"
@@ -6622,8 +6671,8 @@ msgid ""
" --base_file <basefile> Generate a base file for relocatable DLLs\n"
msgstr ""
-#: eelf32metag.c:802 eelf64lppc.c:1404 eelf64lppc_fbsd.c:1404 eelf64ppc.c:1404
-#: eelf64ppc_fbsd.c:1404 ehppaelf.c:631 ehppalinux.c:843 ehppanbsd.c:843
+#: eelf32metag.c:802 eelf64lppc.c:1405 eelf64lppc_fbsd.c:1405 eelf64ppc.c:1405
+#: eelf64ppc_fbsd.c:1405 ehppaelf.c:631 ehppalinux.c:843 ehppanbsd.c:843
#: ehppaobsd.c:843
#, c-format
msgid ""
@@ -6694,7 +6743,7 @@ msgid ""
msgstr ""
#: eelf32xtensa.c:421
-msgid "%F%P: %pB: cannot read contents of section %pA\n"
+msgid "%P: %pB: cannot read contents of section %pA\n"
msgstr ""
#: eelf32xtensa.c:432
@@ -6706,23 +6755,23 @@ msgid "%P: %pB: warning: cannot parse .xtensa.info section\n"
msgstr ""
#: eelf32xtensa.c:462
-msgid "%F%P: little endian output does not match Xtensa configuration\n"
+msgid "%P: little endian output does not match Xtensa configuration\n"
msgstr ""
#: eelf32xtensa.c:468
-msgid "%F%P: big endian output does not match Xtensa configuration\n"
+msgid "%P: big endian output does not match Xtensa configuration\n"
msgstr ""
#: eelf32xtensa.c:487
-msgid "%F%P: cross-endian linking for %pB not supported\n"
+msgid "%P: cross-endian linking for %pB not supported\n"
msgstr ""
#: eelf32xtensa.c:518
-msgid "%F%P: failed to create .xtensa.info section\n"
+msgid "%P: failed to create .xtensa.info section\n"
msgstr ""
#: eelf32xtensa.c:1257
-msgid "%F%P: Relaxation not supported with --enable-non-contiguous-regions.\n"
+msgid "%P: Relaxation not supported with --enable-non-contiguous-regions.\n"
msgstr ""
#: eelf32xtensa.c:2466
@@ -6744,7 +6793,7 @@ msgid " --abi-call0 Choose call0 ABI for the output object\n"
msgstr ""
#: eelf32z80.c:70 ez80.c:59
-msgid "%F%P: %pB: Instruction sets of object files incompatible\n"
+msgid "%P: %pB: Instruction sets of object files incompatible\n"
msgstr ""
#: eelf64_ia64.c:575 eelf64_ia64_fbsd.c:575
@@ -6753,26 +6802,18 @@ msgid ""
" --itanium Generate code for Intel Itanium processor\n"
msgstr ""
-#: eelf64_s390.c:648
+#: eelf64_s390.c:661
#, c-format
msgid ""
" --s390-pgste Tell the kernel to allocate 4k page tables\n"
msgstr ""
-#: eelf64alpha.c:645 eelf64alpha_fbsd.c:645 eelf64alpha_nbsd.c:645
-#, c-format
-msgid ""
-" --taso Load executable in the lower 31-bit "
-"addressable\n"
-" virtual address range\n"
-msgstr ""
-
-#: eelf64alpha.c:648 eelf64alpha_fbsd.c:648 eelf64alpha_nbsd.c:648
+#: eelf64alpha.c:618 eelf64alpha_fbsd.c:618 eelf64alpha_nbsd.c:618
#, c-format
msgid " --secureplt Force PLT in text segment\n"
msgstr ""
-#: eelf64alpha.c:650 eelf64alpha_fbsd.c:650 eelf64alpha_nbsd.c:650
+#: eelf64alpha.c:620 eelf64alpha_fbsd.c:620 eelf64alpha_nbsd.c:620
#, c-format
msgid " --no-secureplt Force PLT in data segment\n"
msgstr ""
@@ -6791,76 +6832,76 @@ msgstr ""
msgid "%P: .init/.fini fragments use differing TOC pointers\n"
msgstr ""
-#: eelf64lppc.c:1291 eelf64lppc_fbsd.c:1291 eelf64ppc.c:1291
-#: eelf64ppc_fbsd.c:1291
-msgid "%F%P: invalid --power10-stubs argument `%s'\n"
+#: eelf64lppc.c:1292 eelf64lppc_fbsd.c:1292 eelf64ppc.c:1292
+#: eelf64ppc_fbsd.c:1292
+msgid "%P: invalid --power10-stubs argument `%s'\n"
msgstr ""
-#: eelf64lppc.c:1414 eelf64ppc.c:1414
+#: eelf64lppc.c:1415 eelf64ppc.c:1415
#, c-format
msgid ""
" --plt-static-chain PLT call stubs should load r11 (default)\n"
msgstr ""
-#: eelf64lppc.c:1417 eelf64ppc.c:1417
+#: eelf64lppc.c:1418 eelf64ppc.c:1418
#, c-format
msgid " --no-plt-static-chain PLT call stubs should not load r11\n"
msgstr ""
-#: eelf64lppc.c:1420 eelf64lppc_fbsd.c:1420 eelf64ppc.c:1420
-#: eelf64ppc_fbsd.c:1420
+#: eelf64lppc.c:1421 eelf64lppc_fbsd.c:1421 eelf64ppc.c:1421
+#: eelf64ppc_fbsd.c:1421
#, c-format
msgid " --plt-thread-safe PLT call stubs with load-load barrier\n"
msgstr ""
-#: eelf64lppc.c:1423 eelf64lppc_fbsd.c:1423 eelf64ppc.c:1423
-#: eelf64ppc_fbsd.c:1423
+#: eelf64lppc.c:1424 eelf64lppc_fbsd.c:1424 eelf64ppc.c:1424
+#: eelf64ppc_fbsd.c:1424
#, c-format
msgid " --no-plt-thread-safe PLT call stubs without barrier\n"
msgstr ""
-#: eelf64lppc.c:1426 eelf64lppc_fbsd.c:1426 eelf64ppc.c:1426
-#: eelf64ppc_fbsd.c:1426
+#: eelf64lppc.c:1427 eelf64lppc_fbsd.c:1427 eelf64ppc.c:1427
+#: eelf64ppc_fbsd.c:1427
#, c-format
msgid " --plt-align [=<align>] Align PLT call stubs to fit cache lines\n"
msgstr ""
-#: eelf64lppc.c:1432 eelf64lppc_fbsd.c:1432 eelf64ppc.c:1432
-#: eelf64ppc_fbsd.c:1432
+#: eelf64lppc.c:1433 eelf64lppc_fbsd.c:1433 eelf64ppc.c:1433
+#: eelf64ppc_fbsd.c:1433
#, c-format
msgid ""
" --plt-localentry Optimize calls to ELFv2 localentry:0 "
"functions\n"
msgstr ""
-#: eelf64lppc.c:1435 eelf64lppc_fbsd.c:1435 eelf64ppc.c:1435
-#: eelf64ppc_fbsd.c:1435
+#: eelf64lppc.c:1436 eelf64lppc_fbsd.c:1436 eelf64ppc.c:1436
+#: eelf64ppc_fbsd.c:1436
#, c-format
msgid " --no-plt-localentry Don't optimize ELFv2 calls\n"
msgstr ""
-#: eelf64lppc.c:1438 eelf64lppc_fbsd.c:1438 eelf64ppc.c:1438
-#: eelf64ppc_fbsd.c:1438
+#: eelf64lppc.c:1439 eelf64lppc_fbsd.c:1439 eelf64ppc.c:1439
+#: eelf64ppc_fbsd.c:1439
#, c-format
msgid ""
" --power10-stubs [=auto] Use Power10 PLT call stubs (default auto)\n"
msgstr ""
-#: eelf64lppc.c:1441 eelf64lppc_fbsd.c:1441 eelf64ppc.c:1441
-#: eelf64ppc_fbsd.c:1441
+#: eelf64lppc.c:1442 eelf64lppc_fbsd.c:1442 eelf64ppc.c:1442
+#: eelf64ppc_fbsd.c:1442
#, c-format
msgid ""
" --no-pcrel-optimize Don't perform R_PPC64_PCREL_OPT optimization\n"
msgstr ""
-#: eelf64lppc.c:1444 eelf64lppc_fbsd.c:1444 eelf64ppc.c:1444
-#: eelf64ppc_fbsd.c:1444
+#: eelf64lppc.c:1445 eelf64lppc_fbsd.c:1445 eelf64ppc.c:1445
+#: eelf64ppc_fbsd.c:1445
#, c-format
msgid " --no-power10-stubs Don't use Power10 PLT call stubs\n"
msgstr ""
-#: eelf64lppc.c:1453 eelf64lppc_fbsd.c:1453 eelf64ppc.c:1453
-#: eelf64ppc_fbsd.c:1453
+#: eelf64lppc.c:1454 eelf64lppc_fbsd.c:1454 eelf64ppc.c:1454
+#: eelf64ppc_fbsd.c:1454
#, c-format
msgid ""
" --dotsyms For every version pattern \"foo\" in a "
@@ -6870,15 +6911,15 @@ msgid ""
" descriptor symbols. Defaults to on.\n"
msgstr ""
-#: eelf64lppc.c:1459 eelf64lppc_fbsd.c:1459 eelf64ppc.c:1459
-#: eelf64ppc_fbsd.c:1459
+#: eelf64lppc.c:1460 eelf64lppc_fbsd.c:1460 eelf64ppc.c:1460
+#: eelf64ppc_fbsd.c:1460
#, c-format
msgid ""
" --no-dotsyms Don't do anything special in version scripts\n"
msgstr ""
-#: eelf64lppc.c:1462 eelf64lppc_fbsd.c:1462 eelf64ppc.c:1462
-#: eelf64ppc_fbsd.c:1462
+#: eelf64lppc.c:1463 eelf64lppc_fbsd.c:1463 eelf64ppc.c:1463
+#: eelf64ppc_fbsd.c:1463
#, c-format
msgid ""
" --save-restore-funcs Provide register save and restore routines "
@@ -6887,71 +6928,71 @@ msgid ""
" final link, off for ld -r.\n"
msgstr ""
-#: eelf64lppc.c:1467 eelf64lppc_fbsd.c:1467 eelf64ppc.c:1467
-#: eelf64ppc_fbsd.c:1467
+#: eelf64lppc.c:1468 eelf64lppc_fbsd.c:1468 eelf64ppc.c:1468
+#: eelf64ppc_fbsd.c:1468
#, c-format
msgid " --no-save-restore-funcs Don't provide these routines\n"
msgstr ""
-#: eelf64lppc.c:1473 eelf64lppc_fbsd.c:1473 eelf64ppc.c:1473
-#: eelf64ppc_fbsd.c:1473
+#: eelf64lppc.c:1474 eelf64lppc_fbsd.c:1474 eelf64ppc.c:1474
+#: eelf64ppc_fbsd.c:1474
#, c-format
msgid ""
" --tls-get-addr-optimize Force use of special __tls_get_addr call\n"
msgstr ""
-#: eelf64lppc.c:1479 eelf64lppc_fbsd.c:1479 eelf64ppc.c:1479
-#: eelf64ppc_fbsd.c:1479
+#: eelf64lppc.c:1480 eelf64lppc_fbsd.c:1480 eelf64ppc.c:1480
+#: eelf64ppc_fbsd.c:1480
#, c-format
msgid " --tls-get-addr-regsave Force register save __tls_get_addr stub\n"
msgstr ""
-#: eelf64lppc.c:1482 eelf64lppc_fbsd.c:1482 eelf64ppc.c:1482
-#: eelf64ppc_fbsd.c:1482
+#: eelf64lppc.c:1483 eelf64lppc_fbsd.c:1483 eelf64ppc.c:1483
+#: eelf64ppc_fbsd.c:1483
#, c-format
msgid ""
" --no-tls-get-addr-regsave Don't use register save __tls_get_addr stub\n"
msgstr ""
-#: eelf64lppc.c:1485 eelf64lppc_fbsd.c:1485 eelf64ppc.c:1485
-#: eelf64ppc_fbsd.c:1485
+#: eelf64lppc.c:1486 eelf64lppc_fbsd.c:1486 eelf64ppc.c:1486
+#: eelf64ppc_fbsd.c:1486
#, c-format
msgid " --no-opd-optimize Don't optimize the OPD section\n"
msgstr ""
-#: eelf64lppc.c:1491 eelf64lppc_fbsd.c:1491 eelf64ppc.c:1491
-#: eelf64ppc_fbsd.c:1491
+#: eelf64lppc.c:1492 eelf64lppc_fbsd.c:1492 eelf64ppc.c:1492
+#: eelf64ppc_fbsd.c:1492
#, c-format
msgid " --no-toc-optimize Don't optimize the TOC section\n"
msgstr ""
-#: eelf64lppc.c:1494 eelf64lppc_fbsd.c:1494 eelf64ppc.c:1494
-#: eelf64ppc_fbsd.c:1494
+#: eelf64lppc.c:1495 eelf64lppc_fbsd.c:1495 eelf64ppc.c:1495
+#: eelf64ppc_fbsd.c:1495
#, c-format
msgid ""
" --no-multi-toc Disallow automatic multiple toc sections\n"
msgstr ""
-#: eelf64lppc.c:1497 eelf64lppc_fbsd.c:1497 eelf64ppc.c:1497
-#: eelf64ppc_fbsd.c:1497
+#: eelf64lppc.c:1498 eelf64lppc_fbsd.c:1498 eelf64ppc.c:1498
+#: eelf64ppc_fbsd.c:1498
#, c-format
msgid " --no-toc-sort Don't sort TOC and GOT sections\n"
msgstr ""
-#: eelf64lppc.c:1500 eelf64lppc_fbsd.c:1500 eelf64ppc.c:1500
-#: eelf64ppc_fbsd.c:1500
+#: eelf64lppc.c:1501 eelf64lppc_fbsd.c:1501 eelf64ppc.c:1501
+#: eelf64ppc_fbsd.c:1501
#, c-format
msgid ""
" --non-overlapping-opd Canonicalize .opd, so that there are no\n"
" overlapping .opd entries\n"
msgstr ""
-#: eelf64lppc_fbsd.c:1414 eelf64ppc_fbsd.c:1414
+#: eelf64lppc_fbsd.c:1415 eelf64ppc_fbsd.c:1415
#, c-format
msgid " --plt-static-chain PLT call stubs should load r111\n"
msgstr ""
-#: eelf64lppc_fbsd.c:1417 eelf64ppc_fbsd.c:1417
+#: eelf64lppc_fbsd.c:1418 eelf64ppc_fbsd.c:1418
#, c-format
msgid ""
" --no-plt-static-chain PLT call stubs should not load r11 (default)\n"
@@ -6965,58 +7006,57 @@ msgstr ""
msgid "%X%P: too many global registers: %u, max 223\n"
msgstr ""
-#. This is a fatal error; make einfo call not return.
-#: eelf64mmix.c:146 emmo.c:146
-msgid "%F%P: can't finalize linker-allocated global registers\n"
+#: eelf64mmix.c:144 emmo.c:144
+msgid "%P: can't finalize linker-allocated global registers\n"
msgstr ""
-#: eelf_x86_64.c:8687 eelf_x86_64_cloudabi.c:685 eelf_x86_64_fbsd.c:685
-#: eelf_x86_64_haiku.c:685 eelf_x86_64_sol2.c:817
-msgid "%F%P: invalid option for -z lam-u48-report=: %s\n"
+#: eelf_x86_64.c:8719 eelf_x86_64_cloudabi.c:717 eelf_x86_64_fbsd.c:717
+#: eelf_x86_64_haiku.c:717 eelf_x86_64_sol2.c:849
+msgid "%P: invalid option for -z lam-u48-report=: %s\n"
msgstr ""
-#: eelf_x86_64.c:8701 eelf_x86_64_cloudabi.c:699 eelf_x86_64_fbsd.c:699
-#: eelf_x86_64_haiku.c:699 eelf_x86_64_sol2.c:831
-msgid "%F%P: invalid option for -z lam-u57-report=: %s\n"
+#: eelf_x86_64.c:8733 eelf_x86_64_cloudabi.c:731 eelf_x86_64_fbsd.c:731
+#: eelf_x86_64_haiku.c:731 eelf_x86_64_sol2.c:863
+msgid "%P: invalid option for -z lam-u57-report=: %s\n"
msgstr ""
-#: eelf_x86_64.c:8722 eelf_x86_64_cloudabi.c:720 eelf_x86_64_fbsd.c:720
-#: eelf_x86_64_haiku.c:720 eelf_x86_64_sol2.c:852
-msgid "%F%P: invalid option for -z lam-report=: %s\n"
+#: eelf_x86_64.c:8754 eelf_x86_64_cloudabi.c:752 eelf_x86_64_fbsd.c:752
+#: eelf_x86_64_haiku.c:752 eelf_x86_64_sol2.c:884
+msgid "%P: invalid option for -z lam-report=: %s\n"
msgstr ""
-#: eelf_x86_64.c:8806 eelf_x86_64_cloudabi.c:804 eelf_x86_64_fbsd.c:804
-#: eelf_x86_64_haiku.c:804 eelf_x86_64_sol2.c:936
+#: eelf_x86_64.c:8838 eelf_x86_64_cloudabi.c:836 eelf_x86_64_fbsd.c:836
+#: eelf_x86_64_haiku.c:836 eelf_x86_64_sol2.c:968
#, c-format
msgid ""
" -z lam-u48 Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U48\n"
msgstr ""
-#: eelf_x86_64.c:8808 eelf_x86_64_cloudabi.c:806 eelf_x86_64_fbsd.c:806
-#: eelf_x86_64_haiku.c:806 eelf_x86_64_sol2.c:938
+#: eelf_x86_64.c:8840 eelf_x86_64_cloudabi.c:838 eelf_x86_64_fbsd.c:838
+#: eelf_x86_64_haiku.c:838 eelf_x86_64_sol2.c:970
#, c-format
msgid ""
" -z lam-u48-report=[none|warning|error] (default: none)\n"
" Report missing LAM_U48 property\n"
msgstr ""
-#: eelf_x86_64.c:8811 eelf_x86_64_cloudabi.c:809 eelf_x86_64_fbsd.c:809
-#: eelf_x86_64_haiku.c:809 eelf_x86_64_sol2.c:941
+#: eelf_x86_64.c:8843 eelf_x86_64_cloudabi.c:841 eelf_x86_64_fbsd.c:841
+#: eelf_x86_64_haiku.c:841 eelf_x86_64_sol2.c:973
#, c-format
msgid ""
" -z lam-u57 Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U57\n"
msgstr ""
-#: eelf_x86_64.c:8813 eelf_x86_64_cloudabi.c:811 eelf_x86_64_fbsd.c:811
-#: eelf_x86_64_haiku.c:811 eelf_x86_64_sol2.c:943
+#: eelf_x86_64.c:8845 eelf_x86_64_cloudabi.c:843 eelf_x86_64_fbsd.c:843
+#: eelf_x86_64_haiku.c:843 eelf_x86_64_sol2.c:975
#, c-format
msgid ""
" -z lam-u57-report=[none|warning|error] (default: none)\n"
" Report missing LAM_U57 property\n"
msgstr ""
-#: eelf_x86_64.c:8816 eelf_x86_64_cloudabi.c:814 eelf_x86_64_fbsd.c:814
-#: eelf_x86_64_haiku.c:814 eelf_x86_64_sol2.c:946
+#: eelf_x86_64.c:8848 eelf_x86_64_cloudabi.c:846 eelf_x86_64_fbsd.c:846
+#: eelf_x86_64_haiku.c:846 eelf_x86_64_sol2.c:978
#, c-format
msgid ""
" -z lam-report=[none|warning|error] (default: none)\n"
@@ -7034,20 +7074,20 @@ msgid ""
" multiple sub-space shared libraries\n"
msgstr ""
-#: ei386beos.c:359
-msgid "%F%P: PE operations on non PE file\n"
+#: ei386beos.c:354
+msgid "%P: PE operations on non PE file\n"
msgstr ""
-#: ei386beos.c:409 ei386beos.c:414
-msgid "%F%P: %pB: can't read contents of section .idata: %E\n"
+#: ei386beos.c:403 ei386beos.c:408
+msgid "%P: %pB: can't read contents of section .idata: %E\n"
msgstr ""
-#: ei386beos.c:646
-msgid "%F%P: section %s has '$' as first character\n"
+#: ei386beos.c:640
+msgid "%P: section %s has '$' as first character\n"
msgstr ""
-#: ei386beos.c:676
-msgid "%F%P: *(%s$) missing from linker script\n"
+#: ei386beos.c:670
+msgid "%P: *(%s$) missing from linker script\n"
msgstr ""
#: em68hc11elf.c:144 em68hc11elfb.c:144 em68hc12elf.c:144 em68hc12elfb.c:144
@@ -7077,7 +7117,7 @@ msgid ""
msgstr ""
#: em68kelf.c:92 em68kelfnbsd.c:92
-msgid "%F%P: %pB: all input objects must be ELF for --embedded-relocs\n"
+msgid "%P: %pB: all input objects must be ELF for --embedded-relocs\n"
msgstr ""
#: em68kelf.c:701 em68kelfnbsd.c:701
@@ -7089,7 +7129,7 @@ msgstr ""
msgid " --got=<type> Specify GOT handling scheme\n"
msgstr ""
-#: emmo.c:333
+#: emmo.c:330
msgid "%X%P: internal problems scanning %pB after opening it"
msgstr ""
@@ -7148,7 +7188,7 @@ msgstr ""
#. Incompatible objects.
#: ends32belf.c:129 ends32belf16m.c:129 ends32belf_linux.c:129 ends32elf.c:129
#: ends32elf16m.c:129 ends32elf_linux.c:129
-msgid "%F%P: %pB: ABI version of object files mismatched\n"
+msgid "%P: %pB: ABI version of object files mismatched\n"
msgstr ""
#: ends32belf.c:450 ends32belf16m.c:450 ends32belf_linux.c:583 ends32elf.c:450
@@ -7227,6 +7267,6 @@ msgstr ""
msgid " --format 0|1|2 Specify which COFF version to use\n"
msgstr ""
-#: etic3xcoff.c:92 etic3xcoff_onchip.c:92 etic4xcoff.c:92 etic54xcoff.c:92
-msgid "%F%P: invalid COFF format version %s\n"
+#: etic3xcoff.c:91 etic3xcoff_onchip.c:91 etic4xcoff.c:91 etic54xcoff.c:91
+msgid "%P: invalid COFF format version %s\n"
msgstr ""
diff --git a/ld/scripttempl/avr.sc b/ld/scripttempl/avr.sc
index 8479ec3..4d9af7f 100644
--- a/ld/scripttempl/avr.sc
+++ b/ld/scripttempl/avr.sc
@@ -189,11 +189,16 @@ SECTIONS
${RELOCATING+*(.vectors)
KEEP(*(.vectors))
- /* For data that needs to reside in the lower 64k of progmem. */
- *(.progmem.gcc*)
+ /* For data that needs to reside in the lower 64k of progmem.
+ For data accessed with ELPM use .progmemx.* instead
+ so that no lower 64k .progmem addresses are wasted. */
+ __progmem_start = . ;
+ *(.progmem)
+ *(.progmem.*)
+ __progmem_end = . ;
+ ASSERT (__progmem_start == __progmem_end || __progmem_end <= 0x10000,
+ \".progmem section exceeds 0x10000\");
- /* PR 13812: Placing the trampolines here gives a better chance
- that they will be in range of the code that uses them. */
. = ALIGN(2);
__trampolines_start = . ;
/* The jump trampolines for the 16-bit limited relocs will reside here. */
@@ -201,12 +206,6 @@ SECTIONS
*(.trampolines*)
__trampolines_end = . ;
- /* avr-libc expects these data to reside in lower 64K. */
- *libprintf_flt.a:*(.progmem.data)
- *libc.a:*(.progmem.data)
-
- *(.progmem.*)
-
. = ALIGN(2);
/* For code that needs to reside in the lower 128k progmem. */
@@ -273,6 +272,7 @@ SECTIONS
*(.hightext)
*(.hightext*)
+ *(.progmemx)
*(.progmemx.*)
. = ALIGN(2);
diff --git a/ld/scripttempl/pe.sc b/ld/scripttempl/pe.sc
index 96a4751..8fb98b2 100644
--- a/ld/scripttempl/pe.sc
+++ b/ld/scripttempl/pe.sc
@@ -14,7 +14,7 @@ fi
# substitution, so we do this instead.
# Sorting of the .foo$* sections is required by the definition of
# grouped sections in PE.
-# Sorting of the file names in R_IDATA is required by the
+# Sorting of the file names in R_IDATA and R_DIDAT is required by the
# current implementation of dlltool (this could probably be changed to
# use grouped sections instead).
if test "${RELOCATING}"; then
@@ -39,6 +39,18 @@ if test "${RELOCATING}"; then
R_IDATA67='
KEEP (SORT(*)(.idata$6))
KEEP (SORT(*)(.idata$7))'
+ R_DIDAT234='
+ __DELAY_IMPORT_DIRECTORY_start__ = .;
+ KEEP (SORT(*)(.didat$2))
+ KEEP (SORT(*)(.didat$3))
+ __DELAY_IMPORT_DIRECTORY_end__ = .;
+ /* These zeroes mark the end of the import list. */
+ . += (__DELAY_IMPORT_DIRECTORY_end__ - __DELAY_IMPORT_DIRECTORY_start__) ? 8*4 : 0;
+ KEEP (SORT(*)(.didat$4))'
+ R_DIDAT5='KEEP (SORT(*)(.didat$5))'
+ R_DIDAT67='
+ KEEP (SORT(*)(.didat$6))
+ KEEP (SORT(*)(.didat$7))'
R_CRT_XC='KEEP (*(SORT(.CRT$XC*))) /* C initialization */'
R_CRT_XI='KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */'
R_CRT_XL='KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */'
@@ -61,6 +73,9 @@ else
R_IDATA234=
R_IDATA5=
R_IDATA67=
+ R_DIDAT234=
+ R_DIDAT5=
+ R_DIDAT67=
R_CRT_XC=
R_CRT_XI=
R_CRT_XL=
@@ -131,6 +146,11 @@ SECTIONS
${RELOCATING+__rt_psrelocs_start = .;}
${RELOCATING+KEEP(*(.rdata_runtime_pseudo_reloc))}
${RELOCATING+__rt_psrelocs_end = .;}
+ /* read-only parts of .didat */
+ /* This cannot currently be handled with grouped sections.
+ See pe.em:sort_sections. */
+ ${R_DIDAT234}
+ ${R_DIDAT67}
/* .ctors & .dtors */
${CONSTRUCTING+
@@ -244,6 +264,13 @@ SECTIONS
${R_IDATA67}
}
+ .didat ${RELOCATING+BLOCK(__section_alignment__)} :
+ {
+ /* This cannot currently be handled with grouped sections.
+ See pe.em:sort_sections. */
+ ${R_DIDAT5}
+ }
+
/* Windows TLS expects .tls\$AAA to be at the start and .tls\$ZZZ to be
at the end of section. This is important because _tls_start MUST
be at the beginning of the section to enable SECREL32 relocations with TLS
diff --git a/ld/scripttempl/pep.sc b/ld/scripttempl/pep.sc
index e2c6c2c..841ee35 100644
--- a/ld/scripttempl/pep.sc
+++ b/ld/scripttempl/pep.sc
@@ -14,7 +14,7 @@ fi
# substitution, so we do this instead.
# Sorting of the .foo$* sections is required by the definition of
# grouped sections in PE.
-# Sorting of the file names in R_IDATA is required by the
+# Sorting of the file names in R_IDATA and R_DIDAT is required by the
# current implementation of dlltool (this could probably be changed to
# use grouped sections instead).
if test "${RELOCATING}"; then
@@ -40,6 +40,19 @@ if test "${RELOCATING}"; then
R_IDATA67='
KEEP (SORT(*)(.idata$6))
KEEP (SORT(*)(.idata$7))'
+ R_DIDAT234='
+ __DELAY_IMPORT_DIRECTORY_start__ = .;
+ KEEP (SORT(*)(.didat$2))
+ KEEP (SORT(*)(.didat$3))
+ __DELAY_IMPORT_DIRECTORY_end__ = .;
+ /* These zeroes mark the end of the import list. */
+ . += (__DELAY_IMPORT_DIRECTORY_end__ - __DELAY_IMPORT_DIRECTORY_start__) ? 8*4 : 0;
+ . = ALIGN(8);
+ KEEP (SORT(*)(.didat$4))'
+ R_DIDAT5='SORT(*)(.didat$5)'
+ R_DIDAT67='
+ KEEP (SORT(*)(.didat$6))
+ KEEP (SORT(*)(.didat$7))'
R_CRT_XC='KEEP (*(SORT(.CRT$XC*))) /* C initialization */'
R_CRT_XI='KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */'
R_CRT_XL='KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */'
@@ -62,6 +75,9 @@ else
R_IDATA234=
R_IDATA5=
R_IDATA67=
+ R_DIDAT234=
+ R_DIDAT5=
+ R_DIDAT67=
R_CRT_XC=
R_CRT_XI=
R_CRT_XL=
@@ -132,6 +148,12 @@ SECTIONS
${RELOCATING+__rt_psrelocs_start = .;}
${RELOCATING+KEEP(*(.rdata_runtime_pseudo_reloc))}
${RELOCATING+__rt_psrelocs_end = .;}
+ /* read-only parts of .didat */
+ /* This cannot currently be handled with grouped sections.
+ See pe.em:sort_sections. */
+ ${RELOCATING+. = ALIGN(8);}
+ ${R_DIDAT234}
+ ${R_DIDAT67}
/* .ctors & .dtors */
${CONSTRUCTING+. = ALIGN(8);}
@@ -251,6 +273,13 @@ SECTIONS
${R_IDATA67}
}
+ .didat ${RELOCATING+BLOCK(__section_alignment__)} :
+ {
+ /* This cannot currently be handled with grouped sections.
+ See pep.em:sort_sections. */
+ ${R_DIDAT5}
+ }
+
/* Windows TLS expects .tls\$AAA to be at the start and .tls\$ZZZ to be
at the end of the .tls section. This is important because _tls_start MUST
be at the beginning of the section to enable SECREL32 relocations with TLS
diff --git a/ld/testsuite/config/default.exp b/ld/testsuite/config/default.exp
index 66721ff..1d69681 100644
--- a/ld/testsuite/config/default.exp
+++ b/ld/testsuite/config/default.exp
@@ -538,10 +538,11 @@ if { [check_compiler_available] } {
}
}
-if {[file exists .libs/libdep.so]} {
- set dep_plug_opt "--plugin .libs/libdep.so"
-} elseif {[file exists .libs/libdep.dll]} {
- set dep_plug_opt "--plugin .libs/libdep.dll"
-} else {
- set dep_plug_opt ""
+set dep_plug_opt ""
+if [check_plugin_api_available] {
+ if {[file exists .libs/libdep.so]} {
+ set dep_plug_opt "--plugin .libs/libdep.so"
+ } elseif {[file exists .libs/libdep.dll]} {
+ set dep_plug_opt "--plugin .libs/libdep.dll"
+ }
}
diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp
index 4de498f..8d56beb 100644
--- a/ld/testsuite/ld-aarch64/aarch64-elf.exp
+++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp
@@ -376,6 +376,10 @@ run_dump_test_lp64 "variant_pcs-r"
run_dump_test_lp64 "variant_pcs-shared"
run_dump_test_lp64 "variant_pcs-now"
+run_dump_test_lp64 "mte-tagged-frame"
+run_dump_test_lp64 "dt-memtag-mode"
+run_dump_test_lp64 "dt-memtag-stack"
+
set aarch64elflinktests {
{"ld-aarch64/so with global symbol" "-shared" "" "" {copy-reloc-so.s}
{} "copy-reloc-so.so"}
diff --git a/ld/testsuite/ld-aarch64/aarch64.ld b/ld/testsuite/ld-aarch64/aarch64.ld
index 75ee3b5..765ddf5 100644
--- a/ld/testsuite/ld-aarch64/aarch64.ld
+++ b/ld/testsuite/ld-aarch64/aarch64.ld
@@ -3,17 +3,23 @@ OUTPUT_ARCH(aarch64)
ENTRY(_start)
SECTIONS
{
- /* Read-only sections, merged into text segment: */
- PROVIDE (__executable_start = 0x8000); . = 0x8000;
- .text :
+ PROVIDE (__executable_start = 0x8000);
+ . = SEGMENT_START("text-segment", 0x8000) + SIZEOF_HEADERS;
+ /* Start of the executable code region. */
+ . = 0x9000;
+ .plt : ALIGN(16) { *(.plt) *(.iplt) }
+ . = 0x10000;
+ .text :
{
*(.before)
*(.text)
*(.after)
} =0
- . = 0x9000;
- .got : { *(.got) *(.got.plt)}
. = 0x12340000;
- .far : { *(.far) }
- .ARM.attributes 0 : { *(.ARM.atttributes) }
+ .far : { *(.far) }
+ /* Start of the Read Write Data region. */
+ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1));
+ .got : { *(.got) *(.got.plt)}
+ /* Start of the metadata region. */
+ .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) }
}
diff --git a/ld/testsuite/ld-aarch64/dt-memtag-mode.d b/ld/testsuite/ld-aarch64/dt-memtag-mode.d
new file mode 100644
index 0000000..21670bc
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/dt-memtag-mode.d
@@ -0,0 +1,7 @@
+#source: dt-memtag.s
+#ld: -shared -z memtag-mode=async
+#readelf: -d
+
+#...
+ 0x0000000070000009 \(AARCH64_MEMTAG_MODE\) 0x1
+#...
diff --git a/ld/testsuite/ld-aarch64/dt-memtag-stack.d b/ld/testsuite/ld-aarch64/dt-memtag-stack.d
new file mode 100644
index 0000000..242f61f
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/dt-memtag-stack.d
@@ -0,0 +1,7 @@
+#source: dt-memtag.s
+#ld: -shared -z memtag-stack
+#readelf: -d
+
+#...
+ 0x000000007000000c \(AARCH64_MEMTAG_STACK\) 0x1
+#...
diff --git a/ld/testsuite/ld-aarch64/dt-memtag.s b/ld/testsuite/ld-aarch64/dt-memtag.s
new file mode 100644
index 0000000..51f3ba5
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/dt-memtag.s
@@ -0,0 +1,7 @@
+// Test DT_AARCH64_MEMTAG_MODE.
+
+.text
+.p2align 3
+.global foo
+foo:
+.xword foo
diff --git a/ld/testsuite/ld-aarch64/gc-got-relocs.d b/ld/testsuite/ld-aarch64/gc-got-relocs.d
index 6525d10..a1821c3 100644
--- a/ld/testsuite/ld-aarch64/gc-got-relocs.d
+++ b/ld/testsuite/ld-aarch64/gc-got-relocs.d
@@ -12,15 +12,14 @@
.*: file format elf64-(little|big)aarch64
SYMBOL TABLE:
-0+8000 l d \.text 0+ \.text
-0+0000 l df \*ABS\* 0+ .*
-0+8000 g \.text 0+ _start
+0+10000 l d \.text 0+ \.text
+0+00000 l df \*ABS\* 0+ .*
+0+10000 g \.text 0+ _start
Contents of section .text:
- 8000 1f2003d5 .*
+ 10000 1f2003d5 .*
-Disassembly of section .text:
-
-0+8000 \<_start>:
- 8000: d503201f nop
+Disassembly of section \.text:
+0+10000 \<_start>:
+ 10000: d503201f nop
diff --git a/ld/testsuite/ld-aarch64/gc-plt-relocs.d b/ld/testsuite/ld-aarch64/gc-plt-relocs.d
index 5c9b5fe..ac455f8 100644
--- a/ld/testsuite/ld-aarch64/gc-plt-relocs.d
+++ b/ld/testsuite/ld-aarch64/gc-plt-relocs.d
@@ -13,36 +13,36 @@
.*: file format elf64-(little|big)aarch64
DYNAMIC SYMBOL TABLE:
-0+8000 g DF \.text 0+4 _start
-0+0000 D \*UND\* 0+ foo
-0+8008 g DF \.text 0+ bar
+0+10000 g DF \.text 0+4 _start
+0+00000 D \*UND\* 0+ foo
+0+10008 g DF \.text 0+ bar
+
+Disassembly of section \.plt:
+
+0+9000 \<\.plt\>:
+ 9000: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
+ 9004: f00919b0 adrp x16, 12340000 \<_GLOBAL_OFFSET_TABLE_\>
+ 9008: f9400e11 ldr x17, \[x16, #24\]
+ 900c: 91006210 add x16, x16, #0x18
+ 9010: d61f0220 br x17
+ 9014: d503201f nop
+ 9018: d503201f nop
+ 901c: d503201f nop
+ 9020: f00919b0 adrp x16, 12340000 \<_GLOBAL_OFFSET_TABLE_\>
+ 9024: f9401211 ldr x17, \[x16, #32\]
+ 9028: 91008210 add x16, x16, #0x20
+ 902c: d61f0220 br x17
Disassembly of section .text:
-0+8000 \<_start\>:
- 8000: 9400000c bl 8030 \<.*>
-
-0+8004 \<hidfn\>:
- 8004: 8a000000 and x0, x0, x0
-
-0+8008 \<bar\>:
- 8008: 14000001 b 800c \<foo\>
-
-0+800c \<foo\>:
- 800c: 97fffffe bl 8004 \<hidfn\>
-
-Disassembly of section .plt:
-
-0+8010 \<\.plt\>:
- 8010: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
- 8014: b0000010 adrp x16, 9000 .*
- 8018: f9400e11 ldr x17, \[x16, #24\]
- 801c: 91006210 add x16, x16, #0x18
- 8020: d61f0220 br x17
- 8024: d503201f nop
- 8028: d503201f nop
- 802c: d503201f nop
- 8030: b0000010 adrp x16, 9000 .*
- 8034: f9401211 ldr x17, \[x16, #32\]
- 8038: 91008210 add x16, x16, #0x20
- 803c: d61f0220 br x17
+0+10000 \<_start\>:
+ 10000: 97ffe408 bl 9020 \<\.plt\+0x20>
+
+0+10004 \<hidfn\>:
+ 10004: 8a000000 and x0, x0, x0
+
+0+10008 \<bar\>:
+ 10008: 14000001 b 1000c \<foo\>
+
+0+1000c \<foo\>:
+ 1000c: 97fffffe bl 10004 \<hidfn\>
diff --git a/ld/testsuite/ld-aarch64/gc-relocs-257-dyn.d b/ld/testsuite/ld-aarch64/gc-relocs-257-dyn.d
index 56fcfa4..2e5e4c6 100644
--- a/ld/testsuite/ld-aarch64/gc-relocs-257-dyn.d
+++ b/ld/testsuite/ld-aarch64/gc-relocs-257-dyn.d
@@ -13,5 +13,5 @@
Disassembly of section .text:
-0+8000 \<_start\>:
- 8000: d503201f nop
+0+10000 \<_start\>:
+ 10000: d503201f nop
diff --git a/ld/testsuite/ld-aarch64/gc-relocs-257.d b/ld/testsuite/ld-aarch64/gc-relocs-257.d
index ffa7571..022b407 100644
--- a/ld/testsuite/ld-aarch64/gc-relocs-257.d
+++ b/ld/testsuite/ld-aarch64/gc-relocs-257.d
@@ -12,5 +12,5 @@
Disassembly of section .text:
-0+8000 \<_start\>:
- 8000: d503201f nop
+0+10000 \<_start\>:
+ 10000: d503201f nop
diff --git a/ld/testsuite/ld-aarch64/gc-tls-relocs.d b/ld/testsuite/ld-aarch64/gc-tls-relocs.d
index 38637dc..2f2210c 100644
--- a/ld/testsuite/ld-aarch64/gc-tls-relocs.d
+++ b/ld/testsuite/ld-aarch64/gc-tls-relocs.d
@@ -13,15 +13,15 @@
.*: file format elf64-(little|big)aarch64
SYMBOL TABLE:
-0+8000 l d \.text 0+ \.text
-0+0000 l df \*ABS\* 0+ .*
-0+8000 g \.text 0+ _start
+0+10000 l d \.text 0+ \.text
+0+00000 l df \*ABS\* 0+ .*
+0+10000 g \.text 0+ _start
Contents of section .text:
- 8000 1f2003d5 .*
+ 10000 1f2003d5 .*
-Disassembly of section .text:
+Disassembly of section \.text:
-0+8000 \<_start>:
- 8000: d503201f nop
+0+10000 \<_start>:
+ 10000: d503201f nop
diff --git a/ld/testsuite/ld-aarch64/mte-tagged-frame-bar.s b/ld/testsuite/ld-aarch64/mte-tagged-frame-bar.s
new file mode 100644
index 0000000..0bd5619
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/mte-tagged-frame-bar.s
@@ -0,0 +1,17 @@
+ .text
+ .global bar
+ .type bar, %function
+bar:
+ .cfi_startproc
+ .cfi_mte_tagged_frame
+ stp x19, x20, [sp, -144]!
+ .cfi_def_cfa_offset 144
+ .cfi_offset 19, -144
+ .cfi_offset 20, -136
+ ldp x19, x20, [sp], 144
+ .cfi_restore 20
+ .cfi_restore 19
+ .cfi_def_cfa_offset 0
+ ret
+ .cfi_endproc
+ .size bar, .-bar
diff --git a/ld/testsuite/ld-aarch64/mte-tagged-frame-foo.s b/ld/testsuite/ld-aarch64/mte-tagged-frame-foo.s
new file mode 100644
index 0000000..af5a8c4
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/mte-tagged-frame-foo.s
@@ -0,0 +1,16 @@
+ .text
+ .global foo
+ .type foo, %function
+foo:
+ .cfi_startproc
+ stp x19, x20, [sp, -32]!
+ .cfi_def_cfa_offset 32
+ .cfi_offset 19, -32
+ .cfi_offset 20, -16
+ ldp x19, x20, [sp], 32
+ .cfi_restore 20
+ .cfi_restore 19
+ .cfi_def_cfa_offset 0
+ ret
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/ld/testsuite/ld-aarch64/mte-tagged-frame.d b/ld/testsuite/ld-aarch64/mte-tagged-frame.d
new file mode 100644
index 0000000..dd667fe
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/mte-tagged-frame.d
@@ -0,0 +1,35 @@
+#source: mte-tagged-frame-foo.s
+#source: mte-tagged-frame-bar.s
+#ld: -shared
+#objdump: -Wf
+#name: MTE tagged EH Frame FDE
+
+#...
+Contents of the .eh_frame section:
+
+00000000 0000000000000010 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 30
+ Augmentation data: 1b
+ DW_CFA_def_cfa: r31 \(sp\) ofs 0
+
+00000014 0000000000000020 00000018 FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
+#...
+
+00000038 0000000000000014 00000000 CIE
+ Version: 1
+ Augmentation: "zRG"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 30
+ Augmentation data: 1b
+ DW_CFA_def_cfa: r31 \(sp\) ofs 0
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
+00000050 000000000000001c 0000001c FDE cie=00000038 pc=[a-f0-9]+\.\.[a-f0-9]+
+#...
diff --git a/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-a.d b/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-a.d
new file mode 100644
index 0000000..7409525
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-a.d
@@ -0,0 +1,45 @@
+#name: No '-z force-bti' with '-z memory-seal' with feature properties (BTI) forces the generation of BTI PLT (shared)
+#source: bti-plt-1.s
+#source: bti-plt-2.s
+#target: [check_shared_lib_support]
+#as: -mabi=lp64 -defsym __property_bti__=1
+#ld: -shared -z memory-seal -T bti-plt.ld -L./tmpdir -lbti-plt-so
+#objdump: -dr -j .plt
+
+[^:]*: *file format elf64-.*aarch64
+
+Disassembly of section \.plt:
+
+[0-9]+ <\.plt>:
+.*: d503245f bti c
+.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
+.*: f9400e11 ldr x17, \[x16, #24\]
+.*: 91006210 add x16, x16, #0x18
+.*: d61f0220 br x17
+.*: d503201f nop
+.*: d503201f nop
+
+[0-9]+ <.*>:
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
+.*: f9401211 ldr x17, \[x16, #32\]
+.*: 91008210 add x16, x16, #0x20
+.*: d61f0220 br x17
+
+[0-9]+ <.*>:
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
+.*: f9401611 ldr x17, \[x16, #40\]
+.*: 9100a210 add x16, x16, #0x28
+.*: d61f0220 br x17
+
+[0-9]+ <.*>:
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
+.*: f9401a11 ldr x17, \[x16, #48\]
+.*: 9100c210 add x16, x16, #0x30
+.*: d61f0220 br x17
+
+[0-9]+ <.*>:
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
+.*: f9401e11 ldr x17, \[x16, #56\]
+.*: 9100e210 add x16, x16, #0x38
+.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-b.d b/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-b.d
new file mode 100644
index 0000000..0dadcc9
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-b.d
@@ -0,0 +1,14 @@
+#name: No '-z force-bti' with '-z memory-seal' all input objects have BTI emits BTI feature (shared)
+#source: bti-plt-1.s
+#source: bti-plt-2.s
+#target: [check_shared_lib_support]
+#as: -mabi=lp64 -defsym __property_bti__=1
+#ld: -z memory-seal -shared -T bti-plt.ld
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+ GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
+ Properties: memory seal\s
+\s+AArch64 feature: BTI
+#pass
diff --git a/ld/testsuite/ld-aarch64/protections/bti-far-1.d b/ld/testsuite/ld-aarch64/protections/bti-far-1.d
index 63fbb43..eb295cf 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-far-1.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-far-1.d
@@ -13,7 +13,7 @@ Disassembly of section \.plt:
0000000000018000 <\.plt>:
18000: d503245f bti c
18004: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
- 18008: 900000d0 adrp x16, 30000 <_GLOBAL_OFFSET_TABLE_>
+ 18008: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
1800c: f9400e11 ldr x17, \[x16, #24\]
18010: 91006210 add x16, x16, #0x18
18014: d61f0220 br x17
@@ -21,7 +21,7 @@ Disassembly of section \.plt:
1801c: d503201f nop
0000000000018020 <foo@plt>:
- 18020: 900000d0 adrp x16, 30000 <_GLOBAL_OFFSET_TABLE_>
+ 18020: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
18024: f9401211 ldr x17, \[x16, #32\]
18028: 91008210 add x16, x16, #0x20
1802c: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-far-opt.d b/ld/testsuite/ld-aarch64/protections/bti-far-opt.d
index cb293b6..f5038c0 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-far-opt.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-far-opt.d
@@ -13,7 +13,7 @@ Disassembly of section \.plt:
0000000000018000 <\.plt>:
18000: d503245f bti c
18004: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
- 18008: 900000d0 adrp x16, 30000 <_GLOBAL_OFFSET_TABLE_>
+ 18008: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
1800c: f9400e11 ldr x17, \[x16, #24\]
18010: 91006210 add x16, x16, #0x18
18014: d61f0220 br x17
@@ -21,7 +21,7 @@ Disassembly of section \.plt:
1801c: d503201f nop
0000000000018020 <foo@plt>:
- 18020: 900000d0 adrp x16, 30000 <_GLOBAL_OFFSET_TABLE_>
+ 18020: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
18024: f9401211 ldr x17, \[x16, #32\]
18028: 91008210 add x16, x16, #0x20
1802c: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-far.ld b/ld/testsuite/ld-aarch64/protections/bti-far.ld
index 214b8cb..1568f18 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-far.ld
+++ b/ld/testsuite/ld-aarch64/protections/bti-far.ld
@@ -2,14 +2,28 @@ OUTPUT_ARCH(aarch64)
ENTRY(_start)
SECTIONS
{
+ PROVIDE(__executable_start = 0x8000);
+ . = SEGMENT_START("text-segment", 0x8000) + SIZEOF_HEADERS;
+ /* Start of the executable code region. */
+ .hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
+ .dynsym : { *(.dynsym) }
+ .dynstr : { *(.dynstr) }
. = 0x10000;
- .rela.plt : { *(.rela.plt) *(.rela.iplt) }
+ .rela.dyn : { *(.rela.ifunc) }
+ .rela.plt : { *(.rela.plt) *(.rela.iplt) }
. = 0x18000;
- .plt : { *(.plt) *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
. = 0x20000;
- .text : { *(.text) }
- . = 0x30000;
- .got : { *(.got) *(.got.plt) }
+ .text : { *(.text) }
. = 0x12340000;
- .far : { *(.far) }
+ .far : { *(.far) }
+ /* Start of the Read Only Data region. */
+ .note.gnu-property : { *(.note.gnu-property) }
+
+ /* Start of the Read Write Data region. */
+ . = ALIGN (CONSTANT (MAXPAGESIZE));
+ .got : { *(.got) *(.got.plt) }
+ /* Start of the metadata region. */
+ .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) }
}
diff --git a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-a.d b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-a.d
index 96268d3..4ab1ca8 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-a.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-a.d
@@ -11,7 +11,7 @@ Disassembly of section \.plt:
[0-9a-f]+ <\.plt>:
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -20,13 +20,13 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d61f0220 br x17
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-b.d b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-b.d
index 041bf22..ef744e1 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-b.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-b.d
@@ -16,7 +16,7 @@ Disassembly of section \.plt:
[0-9a-f]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -24,13 +24,13 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d61f0220 br x17
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-a.d b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-a.d
index f1ae3cd..0e87bcc 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-a.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-a.d
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
[0-9a-f]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -20,7 +20,7 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d503219f autia1716
@@ -28,7 +28,7 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d503219f autia1716
diff --git a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-b.d b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-b.d
index 69ccaab..199585c 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-b.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-b.d
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
[0-9]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -21,7 +21,7 @@ Disassembly of section \.plt:
[0-9]+ <.*>:
.*: d503245f bti c
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d503219f autia1716
@@ -29,7 +29,7 @@ Disassembly of section \.plt:
[0-9]+ <.*>:
.*: d503245f bti c
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d503219f autia1716
diff --git a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-a.d b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-a.d
index c0c0bdb..1789a98 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-a.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-a.d
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
[0-9a-f]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -20,7 +20,7 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d503219f autia1716
@@ -28,7 +28,7 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d503219f autia1716
diff --git a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-b.d b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-b.d
index 89a08ae..a0643ab 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-b.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-b.d
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
[0-9]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -21,7 +21,7 @@ Disassembly of section \.plt:
[0-9]+ <.*>:
.*: d503245f bti c
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d503219f autia1716
@@ -29,7 +29,7 @@ Disassembly of section \.plt:
[0-9]+ <.*>:
.*: d503245f bti c
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d503219f autia1716
diff --git a/ld/testsuite/ld-aarch64/protections/bti-plt-1-a.d b/ld/testsuite/ld-aarch64/protections/bti-plt-1-a.d
index 2dc3864..89c0abc 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-plt-1-a.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-plt-1-a.d
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
[0-9]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -20,13 +20,13 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d61f0220 br x17
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-plt-1-b.d b/ld/testsuite/ld-aarch64/protections/bti-plt-1-b.d
index 1bf956c..c889c1c 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-plt-1-b.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-plt-1-b.d
@@ -2,7 +2,7 @@
#source: bti-plt-1.s
#target: [check_shared_lib_support]
#as: -mabi=lp64 -defsym __property_bti__=1
-#ld: -shared -z force-bti -T bti-plt.ld -L./tmpdir -lbti-plt-so
+#ld: -shared -T bti-plt.ld -L./tmpdir -lbti-plt-so
#objdump: -dr -j .plt
[^:]*: *file format elf64-.*aarch64
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
[0-9]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -20,13 +20,13 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d61f0220 br x17
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-plt-1-c.d b/ld/testsuite/ld-aarch64/protections/bti-plt-1-c.d
index 2fd0dea..c200b0c 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-plt-1-c.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-plt-1-c.d
@@ -13,7 +13,7 @@ Disassembly of section \.plt:
[0-9]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -21,13 +21,13 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d61f0220 br x17
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-plt-3.d b/ld/testsuite/ld-aarch64/protections/bti-plt-3.d
index e457bab..48db434 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-plt-3.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-plt-3.d
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
[0-9]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -21,7 +21,7 @@ Disassembly of section \.plt:
[0-9]+ <.*>:
.*: d503245f bti c
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d61f0220 br x17
@@ -29,7 +29,7 @@ Disassembly of section \.plt:
[0-9]+ <.*>:
.*: d503245f bti c
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-plt.ld b/ld/testsuite/ld-aarch64/protections/bti-plt.ld
index 8682623..c930fc8 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-plt.ld
+++ b/ld/testsuite/ld-aarch64/protections/bti-plt.ld
@@ -2,13 +2,26 @@ OUTPUT_ARCH(aarch64)
ENTRY(_start)
SECTIONS
{
+ PROVIDE(__executable_start = 0x8000);
+ . = SEGMENT_START("text-segment", 0x8000) + SIZEOF_HEADERS;
+ /* Start of the executable code region. */
+ .hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
+ .dynsym : { *(.dynsym) }
+ .dynstr : { *(.dynstr) }
. = 0x10000;
- .rela.plt : { *(.rela.plt) *(.rela.iplt) }
+ .rela.dyn : { *(.rela.ifunc) }
+ .rela.plt : { *(.rela.plt) *(.rela.iplt) }
. = 0x18000;
- .plt : { *(.plt) *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
. = 0x20000;
- .text : { *(.text) }
- . = 0x28000;
- .got : { *(.got) *(.got.plt) }
- .ARM.attributes 0 : { *(.ARM.atttributes) }
+ .text : { *(.text) }
+ /* Start of the Read Only Data region. */
+ .note.gnu-property : { *(.note.gnu-property) }
+
+ /* Start of the Read Write Data region. */
+ . = ALIGN (CONSTANT (MAXPAGESIZE));
+ .got : { *(.got) *(.got.plt) }
+ /* Start of the metadata region. */
+ .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) }
}
diff --git a/ld/testsuite/ld-aarch64/protections/pac-plt-1-a.d b/ld/testsuite/ld-aarch64/protections/pac-plt-1-a.d
index fc10ec7..203cb12 100644
--- a/ld/testsuite/ld-aarch64/protections/pac-plt-1-a.d
+++ b/ld/testsuite/ld-aarch64/protections/pac-plt-1-a.d
@@ -11,7 +11,7 @@ Disassembly of section \.plt:
[0-9]+ <.*>:
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -20,7 +20,7 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d503219f autia1716
@@ -28,7 +28,7 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d503219f autia1716
diff --git a/ld/testsuite/ld-aarch64/protections/pac-plt-1-b.d b/ld/testsuite/ld-aarch64/protections/pac-plt-1-b.d
index 7a0fd59..6592689 100644
--- a/ld/testsuite/ld-aarch64/protections/pac-plt-1-b.d
+++ b/ld/testsuite/ld-aarch64/protections/pac-plt-1-b.d
@@ -15,7 +15,7 @@ Disassembly of section \.plt:
[0-9a-f]+ <\.plt>:
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -24,13 +24,13 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d61f0220 br x17
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/pac-plt-2.d b/ld/testsuite/ld-aarch64/protections/pac-plt-2.d
index 1c3d7f4..6795645 100644
--- a/ld/testsuite/ld-aarch64/protections/pac-plt-2.d
+++ b/ld/testsuite/ld-aarch64/protections/pac-plt-2.d
@@ -9,7 +9,7 @@ Disassembly of section \.plt:
.* \<.plt\>:
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401a11 ldr x17, \[x16, #48\]
.*: 9100c210 add x16, x16, #0x30
.*: d61f0220 br x17
@@ -19,7 +19,7 @@ Disassembly of section \.plt:
.* \<__tls_get_addr@plt\>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401e11 ldr x17, \[x16, #56\]
.*: 9100e210 add x16, x16, #0x38
.*: d503219f autia1716
diff --git a/ld/testsuite/ld-aarch64/relocs-ilp32.ld b/ld/testsuite/ld-aarch64/relocs-ilp32.ld
index 4ddba91..3958ad8 100644
--- a/ld/testsuite/ld-aarch64/relocs-ilp32.ld
+++ b/ld/testsuite/ld-aarch64/relocs-ilp32.ld
@@ -15,7 +15,7 @@ SECTIONS
.got : { *(.got) *(.got.plt)}
. = 0x12340000;
.far : { *(.far) }
- .ARM.attributes 0 : { *(.ARM.atttributes) }
+ .ARM.attributes 0 : { *(.ARM.attributes) }
/* Providing a .data section triggers a non-executable segment to be
generated, which gives somewhere else for the linker to put the TLS
segment without creating a RWX permissioned one. */
diff --git a/ld/testsuite/ld-aarch64/relocs.ld b/ld/testsuite/ld-aarch64/relocs.ld
index 77adac8..b0e75e0 100644
--- a/ld/testsuite/ld-aarch64/relocs.ld
+++ b/ld/testsuite/ld-aarch64/relocs.ld
@@ -15,7 +15,7 @@ SECTIONS
.got : { *(.got) *(.got.plt)}
. = 0x12340000;
.far : { *(.far) }
- .ARM.attributes 0 : { *(.ARM.atttributes) }
+ .ARM.attributes 0 : { *(.ARM.attributes) }
/* Providing a .data section triggers a non-executable segment to be
generated, which gives somewhere else for the linker to put the TLS
segment without creating a RWX permissioned one. */
diff --git a/ld/testsuite/ld-aarch64/sframe-simple-1.d b/ld/testsuite/ld-aarch64/sframe-simple-1.d
index 6ab8c2a..1ae73de 100644
--- a/ld/testsuite/ld-aarch64/sframe-simple-1.d
+++ b/ld/testsuite/ld-aarch64/sframe-simple-1.d
@@ -11,7 +11,8 @@ Contents of the SFrame section .sframe:
Header :
Version: SFRAME_VERSION_2
- Flags: SFRAME_F_FDE_SORTED
+ Flags: SFRAME_F_FDE_SORTED,
+ SFRAME_F_FDE_FUNC_START_PCREL
Num FDEs: 2
Num FREs: 2
diff --git a/ld/testsuite/ld-aarch64/variant_pcs-now.d b/ld/testsuite/ld-aarch64/variant_pcs-now.d
index 5007632..1add2bb 100644
--- a/ld/testsuite/ld-aarch64/variant_pcs-now.d
+++ b/ld/testsuite/ld-aarch64/variant_pcs-now.d
@@ -4,65 +4,65 @@
#ld: -shared --hash-style=sysv -T variant_pcs.ld -z now
#readelf: -rsW
-Relocation section '\.rela\.plt' at offset 0x11000 contains 12 entries:
+Relocation section '\.rela\.plt' at offset 0x[[:xdigit:]]+ contains 12 entries:
Offset Info Type Symbol's Value Symbol's Name \+ Addend
-0000000000009020 0000000100000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_base_global_default_undef \+ 0
-0000000000009028 0000000200000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_spec_global_default_undef \+ 0
-0000000000009030 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000008000 f_base_global_default_def \+ 0
-0000000000009038 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000008000 f_spec_global_default_def \+ 0
-0000000000009040 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009048 0000000300000402 R_AARCH64_JUMP_SLOT f_spec_global_default_ifunc\(\) f_spec_global_default_ifunc \+ 0
-0000000000009050 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009058 0000000600000402 R_AARCH64_JUMP_SLOT f_base_global_default_ifunc\(\) f_base_global_default_ifunc \+ 0
-0000000000009060 0000000000000408 R_AARCH64_IRELATIVE 8038
-0000000000009068 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009070 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009078 0000000000000408 R_AARCH64_IRELATIVE 8038
+00000000000[[:xdigit:]]{2}020 0000000100000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_base_global_default_undef \+ 0
+00000000000[[:xdigit:]]{2}028 0000000200000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_spec_global_default_undef \+ 0
+00000000000[[:xdigit:]]{2}030 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000011000 f_base_global_default_def \+ 0
+00000000000[[:xdigit:]]{2}038 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000011000 f_spec_global_default_def \+ 0
+00000000000[[:xdigit:]]{2}040 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}048 0000000300000402 R_AARCH64_JUMP_SLOT f_spec_global_default_ifunc\(\) f_spec_global_default_ifunc \+ 0
+00000000000[[:xdigit:]]{2}050 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}058 0000000600000402 R_AARCH64_JUMP_SLOT f_base_global_default_ifunc\(\) f_base_global_default_ifunc \+ 0
+00000000000[[:xdigit:]]{2}060 0000000000000408 R_AARCH64_IRELATIVE 11038
+00000000000[[:xdigit:]]{2}068 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}070 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}078 0000000000000408 R_AARCH64_IRELATIVE 11038
Symbol table '\.dynsym' contains 7 entries:
Num: Value Size Type Bind Vis Ndx Name
- 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
+ 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND\s
1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef
2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef
- 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc
- 4: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def
- 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def
- 6: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc
+ 3: 0000000000011000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_ifunc
+ 4: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 6 f_base_global_default_def
+ 5: 0000000000011000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_def
+ 6: 0000000000011000 0 IFUNC GLOBAL DEFAULT 6 f_base_global_default_ifunc
Symbol table '\.symtab' contains 35 entries:
Num: Value Size Type Bind Vis Ndx Name
- 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
- 1: 0000000000008000 0 SECTION LOCAL DEFAULT 1.*
- 2: 0000000000008070 0 SECTION LOCAL DEFAULT 2.*
- 3: 0000000000009000 0 SECTION LOCAL DEFAULT 3.*
- 4: 0000000000009080 0 SECTION LOCAL DEFAULT 4.*
- 5: 0000000000011000 0 SECTION LOCAL DEFAULT 5.*
- 6: 0000000000011120 0 SECTION LOCAL DEFAULT 6.*
- 7: 00000000000111c8 0 SECTION LOCAL DEFAULT 7.*
- 8: 0000000000011270 0 SECTION LOCAL DEFAULT 8.*
+ 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND\s
+ 1: 00000000000080e8 0 SECTION LOCAL DEFAULT 1 \.hash
+ 2: 0000000000008118 0 SECTION LOCAL DEFAULT 2 \.dynsym
+ 3: 00000000000081c0 0 SECTION LOCAL DEFAULT 3 \.dynstr
+ 4: 0000000000009000 0 SECTION LOCAL DEFAULT 4 \.rela\.plt
+ 5: 0000000000010000 0 SECTION LOCAL DEFAULT 5 \.plt
+ 6: 0000000000011000 0 SECTION LOCAL DEFAULT 6 \.text
+ 7: 0000000000020000 0 SECTION LOCAL DEFAULT 7 \.dynamic
+ 8: 0000000000021000 0 SECTION LOCAL DEFAULT 8 \.got
9: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o
- 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local
- 11: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc
- 12: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc
- 13: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_local
- 14: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 \$x
+ 10: 0000000000011000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local
+ 11: 0000000000011000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local_ifunc
+ 12: 0000000000011000 0 IFUNC LOCAL DEFAULT 6 f_base_local_ifunc
+ 13: 0000000000011000 0 NOTYPE LOCAL DEFAULT 6 f_base_local
+ 14: 0000000000011000 0 NOTYPE LOCAL DEFAULT 6 \$x
15: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o
- 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2
- 17: 0000000000008038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc
- 18: 0000000000008038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc
- 19: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2
- 20: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 \$x
- 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS
- 22: 0000000000009080 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
- 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_def
- 24: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_global_hidden_ifunc
- 25: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_global_hidden_def
- 26: 0000000000009000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- 27: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc
- 28: 0000000000008070 0 NOTYPE LOCAL DEFAULT 2 \$x
+ 16: 0000000000011038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local2
+ 17: 0000000000011038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local2_ifunc
+ 18: 0000000000011038 0 IFUNC LOCAL DEFAULT 6 f_base_local2_ifunc
+ 19: 0000000000011038 0 NOTYPE LOCAL DEFAULT 6 f_base_local2
+ 20: 0000000000011038 0 NOTYPE LOCAL DEFAULT 6 \$x
+ 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS\s
+ 22: 0000000000020000 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
+ 23: 0000000000011000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_hidden_def
+ 24: 0000000000011000 0 IFUNC LOCAL DEFAULT 6 f_base_global_hidden_ifunc
+ 25: 0000000000011000 0 NOTYPE LOCAL DEFAULT 6 f_base_global_hidden_def
+ 26: 0000000000021000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ 27: 0000000000011000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_hidden_ifunc
+ 28: 0000000000010000 0 NOTYPE LOCAL DEFAULT 5 \$x
29: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef
30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef
- 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc
- 32: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def
- 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def
- 34: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc
+ 31: 0000000000011000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_ifunc
+ 32: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 6 f_base_global_default_def
+ 33: 0000000000011000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_def
+ 34: 0000000000011000 0 IFUNC GLOBAL DEFAULT 6 f_base_global_default_ifunc
diff --git a/ld/testsuite/ld-aarch64/variant_pcs-r.d b/ld/testsuite/ld-aarch64/variant_pcs-r.d
index 2651a68..65849e1 100644
--- a/ld/testsuite/ld-aarch64/variant_pcs-r.d
+++ b/ld/testsuite/ld-aarch64/variant_pcs-r.d
@@ -3,7 +3,7 @@
#ld: -r
#readelf: -rsW
-Relocation section '\.rela\.text' at offset .* contains 24 entries:
+Relocation section '\.rela\.text' at offset 0x[[:xdigit:]]+ contains 24 entries:
Offset Info Type Symbol's Value Symbol's Name \+ Addend
0000000000000000 000000180000011b R_AARCH64_CALL26 0000000000000000 f_spec_global_default_def \+ 0
0000000000000004 000000110000011b R_AARCH64_CALL26 0000000000000000 f_spec_global_default_undef \+ 0
@@ -32,10 +32,10 @@ Relocation section '\.rela\.text' at offset .* contains 24 entries:
Symbol table '\.symtab' contains 26 entries:
Num: Value Size Type Bind Vis Ndx Name
- 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
- 1: 0000000000000000 0 SECTION LOCAL DEFAULT 1.*
- 2: 0000000000000000 0 SECTION LOCAL DEFAULT 3.*
- 3: 0000000000000000 0 SECTION LOCAL DEFAULT 4.*
+ 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND\s
+ 1: 0000000000000000 0 SECTION LOCAL DEFAULT 1 \.text
+ 2: 0000000000000000 0 SECTION LOCAL DEFAULT 3 \.data
+ 3: 0000000000000000 0 SECTION LOCAL DEFAULT 4 \.bss
4: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o
5: 0000000000000000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local
6: 0000000000000000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc
diff --git a/ld/testsuite/ld-aarch64/variant_pcs-shared.d b/ld/testsuite/ld-aarch64/variant_pcs-shared.d
index e021799..3a39d8c 100644
--- a/ld/testsuite/ld-aarch64/variant_pcs-shared.d
+++ b/ld/testsuite/ld-aarch64/variant_pcs-shared.d
@@ -4,65 +4,65 @@
#ld: -shared --hash-style=sysv -T variant_pcs.ld
#readelf: -rsW
-Relocation section '\.rela\.plt' at offset 0x11000 contains 12 entries:
+Relocation section '\.rela\.plt' at offset 0x[[:xdigit:]]+ contains 12 entries:
Offset Info Type Symbol's Value Symbol's Name \+ Addend
-0000000000009020 0000000100000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_base_global_default_undef \+ 0
-0000000000009028 0000000200000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_spec_global_default_undef \+ 0
-0000000000009030 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000008000 f_base_global_default_def \+ 0
-0000000000009038 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000008000 f_spec_global_default_def \+ 0
-0000000000009040 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009048 0000000300000402 R_AARCH64_JUMP_SLOT f_spec_global_default_ifunc\(\) f_spec_global_default_ifunc \+ 0
-0000000000009050 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009058 0000000600000402 R_AARCH64_JUMP_SLOT f_base_global_default_ifunc\(\) f_base_global_default_ifunc \+ 0
-0000000000009060 0000000000000408 R_AARCH64_IRELATIVE 8038
-0000000000009068 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009070 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009078 0000000000000408 R_AARCH64_IRELATIVE 8038
+00000000000[[:xdigit:]]{2}020 0000000100000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_base_global_default_undef \+ 0
+00000000000[[:xdigit:]]{2}028 0000000200000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_spec_global_default_undef \+ 0
+00000000000[[:xdigit:]]{2}030 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000011000 f_base_global_default_def \+ 0
+00000000000[[:xdigit:]]{2}038 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000011000 f_spec_global_default_def \+ 0
+00000000000[[:xdigit:]]{2}040 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}048 0000000300000402 R_AARCH64_JUMP_SLOT f_spec_global_default_ifunc\(\) f_spec_global_default_ifunc \+ 0
+00000000000[[:xdigit:]]{2}050 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}058 0000000600000402 R_AARCH64_JUMP_SLOT f_base_global_default_ifunc\(\) f_base_global_default_ifunc \+ 0
+00000000000[[:xdigit:]]{2}060 0000000000000408 R_AARCH64_IRELATIVE 11038
+00000000000[[:xdigit:]]{2}068 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}070 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}078 0000000000000408 R_AARCH64_IRELATIVE 11038
Symbol table '\.dynsym' contains 7 entries:
Num: Value Size Type Bind Vis Ndx Name
- 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
+ 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND\s
1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef
2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef
- 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc
- 4: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def
- 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def
- 6: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc
+ 3: 0000000000011000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_ifunc
+ 4: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 6 f_base_global_default_def
+ 5: 0000000000011000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_def
+ 6: 0000000000011000 0 IFUNC GLOBAL DEFAULT 6 f_base_global_default_ifunc
Symbol table '\.symtab' contains 35 entries:
Num: Value Size Type Bind Vis Ndx Name
- 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
- 1: 0000000000008000 0 SECTION LOCAL DEFAULT 1.*
- 2: 0000000000008070 0 SECTION LOCAL DEFAULT 2.*
- 3: 0000000000009000 0 SECTION LOCAL DEFAULT 3.*
- 4: 0000000000009080 0 SECTION LOCAL DEFAULT 4.*
- 5: 0000000000011000 0 SECTION LOCAL DEFAULT 5.*
- 6: 0000000000011120 0 SECTION LOCAL DEFAULT 6.*
- 7: 00000000000111c8 0 SECTION LOCAL DEFAULT 7.*
- 8: 0000000000011270 0 SECTION LOCAL DEFAULT 8.*
+ 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND\s
+ 1: 00000000000080e8 0 SECTION LOCAL DEFAULT 1 \.hash
+ 2: 0000000000008118 0 SECTION LOCAL DEFAULT 2 \.dynsym
+ 3: 00000000000081c0 0 SECTION LOCAL DEFAULT 3 \.dynstr
+ 4: 0000000000009000 0 SECTION LOCAL DEFAULT 4 \.rela\.plt
+ 5: 0000000000010000 0 SECTION LOCAL DEFAULT 5 \.plt
+ 6: 0000000000011000 0 SECTION LOCAL DEFAULT 6 \.text
+ 7: 0000000000020000 0 SECTION LOCAL DEFAULT 7 \.dynamic
+ 8: 0000000000021000 0 SECTION LOCAL DEFAULT 8 \.got
9: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o
- 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local
- 11: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc
- 12: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc
- 13: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_local
- 14: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 \$x
+ 10: 0000000000011000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local
+ 11: 0000000000011000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local_ifunc
+ 12: 0000000000011000 0 IFUNC LOCAL DEFAULT 6 f_base_local_ifunc
+ 13: 0000000000011000 0 NOTYPE LOCAL DEFAULT 6 f_base_local
+ 14: 0000000000011000 0 NOTYPE LOCAL DEFAULT 6 \$x
15: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o
- 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2
- 17: 0000000000008038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc
- 18: 0000000000008038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc
- 19: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2
- 20: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 \$x
- 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS
- 22: 0000000000009080 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
- 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_def
- 24: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_global_hidden_ifunc
- 25: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_global_hidden_def
- 26: 0000000000009000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- 27: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc
- 28: 0000000000008070 0 NOTYPE LOCAL DEFAULT 2 \$x
+ 16: 0000000000011038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local2
+ 17: 0000000000011038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local2_ifunc
+ 18: 0000000000011038 0 IFUNC LOCAL DEFAULT 6 f_base_local2_ifunc
+ 19: 0000000000011038 0 NOTYPE LOCAL DEFAULT 6 f_base_local2
+ 20: 0000000000011038 0 NOTYPE LOCAL DEFAULT 6 \$x
+ 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS\s
+ 22: 0000000000020000 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
+ 23: 0000000000011000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_hidden_def
+ 24: 0000000000011000 0 IFUNC LOCAL DEFAULT 6 f_base_global_hidden_ifunc
+ 25: 0000000000011000 0 NOTYPE LOCAL DEFAULT 6 f_base_global_hidden_def
+ 26: 0000000000021000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ 27: 0000000000011000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_hidden_ifunc
+ 28: 0000000000010000 0 NOTYPE LOCAL DEFAULT 5 \$x
29: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef
30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef
- 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc
- 32: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def
- 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def
- 34: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc
+ 31: 0000000000011000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_ifunc
+ 32: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 6 f_base_global_default_def
+ 33: 0000000000011000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_def
+ 34: 0000000000011000 0 IFUNC GLOBAL DEFAULT 6 f_base_global_default_ifunc
diff --git a/ld/testsuite/ld-aarch64/variant_pcs.ld b/ld/testsuite/ld-aarch64/variant_pcs.ld
index a66a934..cadecd8 100644
--- a/ld/testsuite/ld-aarch64/variant_pcs.ld
+++ b/ld/testsuite/ld-aarch64/variant_pcs.ld
@@ -3,21 +3,31 @@ OUTPUT_ARCH(aarch64)
ENTRY(_start)
SECTIONS
{
- /* Read-only sections, merged into text segment: */
- PROVIDE (__executable_start = 0x8000); . = 0x8000;
+ PROVIDE(__executable_start = 0x8000);
+ . = SEGMENT_START("text-segment", 0x8000) + SIZEOF_HEADERS;
+ /* Start of the executable code region. */
+ .hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
+ .dynsym : { *(.dynsym) }
+ .dynstr : { *(.dynstr) }
+ . = 0x9000;
+ .rela.plt : { *(.rela.plt) *(.rela.iplt) }
+ . = 0x10000;
+ .plt : { *(.plt) }
+ . = 0x11000;
.text :
{
*(.before)
*(.text)
*(.after)
- } =0
- . = 0x9000;
+ }
+
+ /* Start of the Read Write Data region. */
+ . = ALIGN (CONSTANT (MAXPAGESIZE));
+ .dynamic : { *(.dynamic) }
+ . = ALIGN(4K);
.got : { *(.got) *(.got.plt)}
- . = 0x10000;
- .rela.dyn : { *(.rela.ifunc) }
- . = 0x11000;
- .rela.plt : { *(.rela.plt) *(.rela.iplt) }
- . = 0x12340000;
- .far : { *(.far) }
- .ARM.attributes 0 : { *(.ARM.atttributes) }
+
+ /* Start of the metadata region. */
+ .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) }
}
diff --git a/ld/testsuite/ld-arm/arm.ld b/ld/testsuite/ld-arm/arm.ld
index 8e3fac2..4b596ce 100644
--- a/ld/testsuite/ld-arm/arm.ld
+++ b/ld/testsuite/ld-arm/arm.ld
@@ -19,5 +19,5 @@ SECTIONS
.got : { *(.got) *(.got.plt)}
. = 0x12340000;
.far : { *(.far) }
- .ARM.attribues 0 : { *(.ARM.atttributes) }
+ .ARM.attributes 0 : { *(.ARM.attributes) }
}
diff --git a/ld/testsuite/ld-arm/arm_purecode.ld b/ld/testsuite/ld-arm/arm_purecode.ld
index 195aca1..488e3dd 100644
--- a/ld/testsuite/ld-arm/arm_purecode.ld
+++ b/ld/testsuite/ld-arm/arm_purecode.ld
@@ -28,5 +28,5 @@ SECTIONS
.got : { *(.got) *(.got.plt)}
. = 0x12340000;
.far : { *(.far) }
- .ARM.attribues 0 : { *(.ARM.atttributes) }
+ .ARM.attributes 0 : { *(.ARM.attributes) }
}
diff --git a/ld/testsuite/ld-arm/discard-unwind.ld b/ld/testsuite/ld-arm/discard-unwind.ld
index d8f6524..54418f7 100644
--- a/ld/testsuite/ld-arm/discard-unwind.ld
+++ b/ld/testsuite/ld-arm/discard-unwind.ld
@@ -15,5 +15,5 @@ SECTIONS
*(.v4_bx)
} =0
/DISCARD/ : { *(.ARM.exidx*) }
- .ARM.attribues 0 : { *(.ARM.atttributes) }
+ .ARM.attributes 0 : { *(.ARM.attributes) }
}
diff --git a/ld/testsuite/ld-arm/script-type.ld b/ld/testsuite/ld-arm/script-type.ld
index 01995eb..af34697 100644
--- a/ld/testsuite/ld-arm/script-type.ld
+++ b/ld/testsuite/ld-arm/script-type.ld
@@ -3,7 +3,7 @@ SECTIONS {
foo_a = bar_a;
foo_t = bar_t;
foo_o = bar_o;
- *(.text)
+ *(.text)
}
- .ARM.attribues 0 : { *(.ARM.attributes) }
+ .ARM.attributes 0 : { *(.ARM.attributes) }
}
diff --git a/ld/testsuite/ld-arm/unwind-1.d b/ld/testsuite/ld-arm/unwind-1.d
index add5cb7..073d6a5 100644
--- a/ld/testsuite/ld-arm/unwind-1.d
+++ b/ld/testsuite/ld-arm/unwind-1.d
@@ -1,10 +1,7 @@
#ld: -T arm.ld
-#objdump: -s
+#objdump: -s -j .ARM.exidx
.*: file format.*
-#...
-Contents of section .ARM.exidx:
- 8008 (f8ffff7f b0b0a880 f4ffff7f 01000000|7ffffff8 80a8b0b0 7ffffff4 00000001) .*
-Contents of section .far:
-#...
+Contents of section \.ARM\.exidx:
+ 8008 (f8ffff7f b0b0a880 f4ffff7f 01000000|7ffffff8 80a8b0b0 7ffffff4 00000001) \.+
diff --git a/ld/testsuite/ld-arm/unwind-2.d b/ld/testsuite/ld-arm/unwind-2.d
index a096c9b..c9cd433 100644
--- a/ld/testsuite/ld-arm/unwind-2.d
+++ b/ld/testsuite/ld-arm/unwind-2.d
@@ -1,10 +1,7 @@
#ld: -T arm.ld
-#objdump: -s
+#objdump: -s -j .ARM.exidx
.*: file format.*
-#...
-Contents of section .ARM.exidx:
- 8004 (fcffff7f b0b0a880 f8ffff7f 01000000|7ffffffc 80a8b0b0 7ffffff8 00000001) .*
-Contents of section .far:
-#...
+Contents of section \.ARM\.exidx:
+ 8004 (fcffff7f b0b0a880 f8ffff7f 01000000|7ffffffc 80a8b0b0 7ffffff8 00000001) \.+
diff --git a/ld/testsuite/ld-arm/unwind-3.d b/ld/testsuite/ld-arm/unwind-3.d
index 0b8e85e..9da1484 100644
--- a/ld/testsuite/ld-arm/unwind-3.d
+++ b/ld/testsuite/ld-arm/unwind-3.d
@@ -1,11 +1,8 @@
#ld: -T arm.ld
-#objdump: -s
+#objdump: -s -j .ARM.exidx
.*: file format.*
-#...
-Contents of section .ARM.exidx:
- 800c (f4ffff7f b0b0a880 f0ffff7f 01000000|7ffffff4 80a8b0b0 7ffffff0 00000001) .*
- 801c (ecffff7f b0b0a880 e8ffff7f 01000000|7fffffec 80a8b0b0 7fffffe8 00000001) .*
-Contents of section .far:
-#...
+Contents of section \.ARM\.exidx:
+ 800c (f4ffff7f b0b0a880 f0ffff7f 01000000|7ffffff4 80a8b0b0 7ffffff0 00000001) \.+
+ 801c (ecffff7f b0b0a880 e8ffff7f 01000000|7fffffec 80a8b0b0 7fffffe8 00000001) \.+
diff --git a/ld/testsuite/ld-arm/unwind-4.d b/ld/testsuite/ld-arm/unwind-4.d
index ffc8725..7b71de88 100644
--- a/ld/testsuite/ld-arm/unwind-4.d
+++ b/ld/testsuite/ld-arm/unwind-4.d
@@ -1,9 +1,8 @@
#ld: -q -T arm.ld
-#objdump: -sr
+#objdump: -sr -j .ARM.exidx
.*: file format.*
-#...
RELOCATION RECORDS FOR \[\.ARM\.exidx\]:
OFFSET +TYPE +VALUE
00000000 R_ARM_PREL31 \.text
@@ -17,11 +16,6 @@ OFFSET +TYPE +VALUE
00000010 R_ARM_NONE __aeabi_unwind_cpp_pr0
00000018 R_ARM_PREL31 \.text
-
-Contents of section .text:
-#...
-Contents of section .ARM.exidx:
- 8020 (e0ffff7f b0b0a880 dcffff7f e8ffff7f|7fffffe0 80a8b0b0 7fffffdc 7fffffe8) .*
- 8030 (d8ffff7f b0b0a880 d8ffff7f 01000000|7fffffd8 80a8b0b0 7fffffd8 00000001) .*
-Contents of section .far:
-#...
+Contents of section \.ARM\.exidx:
+ 8020 (e0ffff7f b0b0a880 dcffff7f e8ffff7f|7fffffe0 80a8b0b0 7fffffdc 7fffffe8) \.+
+ 8030 (d8ffff7f b0b0a880 d8ffff7f 01000000|7fffffd8 80a8b0b0 7fffffd8 00000001) \.+
diff --git a/ld/testsuite/ld-cris/asneed1.d b/ld/testsuite/ld-cris/asneed1.d
index 00fba75..b40356d 100644
--- a/ld/testsuite/ld-cris/asneed1.d
+++ b/ld/testsuite/ld-cris/asneed1.d
@@ -1,7 +1,7 @@
#source: start1.s
#source: dso-2.s
#source: dso-1.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: -m crislinux --as-needed tmpdir/libdso-1.so
#objdump: -p
diff --git a/ld/testsuite/ld-cris/badgotr1.d b/ld/testsuite/ld-cris/badgotr1.d
index f7a5ac8..a993e90 100644
--- a/ld/testsuite/ld-cris/badgotr1.d
+++ b/ld/testsuite/ld-cris/badgotr1.d
@@ -1,5 +1,5 @@
#source: gotrel1.s
-#as: --pic --underscore --em=criself
+#as: --pic --underscore --emulation=criself
#ld: -m crislinux -shared
#objdump: -dr
#error: \A[^\nc][^\n]*o: uses _-prefixed [^\nc]*\n[^\nc][^\n]* failed to merge [^\n]*\n[^\nc][^\n]* no GOT [^\n]*\n[^\nc][^\n]* bad value\Z
diff --git a/ld/testsuite/ld-cris/def2.d b/ld/testsuite/ld-cris/def2.d
index ff75d88..00c5f41 100644
--- a/ld/testsuite/ld-cris/def2.d
+++ b/ld/testsuite/ld-cris/def2.d
@@ -2,7 +2,7 @@
#source: stabs1.s
#source: globsymw1.s
#target: cris-*-*elf* cris-*-*aout*
-#as: --em=crisaout
+#as: --emulation=crisaout
#ld: -mcrisaout
#objdump: -p
# Just checking that undef2 links correctly when given a symbol.
diff --git a/ld/testsuite/ld-cris/def3.d b/ld/testsuite/ld-cris/def3.d
index e1ae3c5..231414b 100644
--- a/ld/testsuite/ld-cris/def3.d
+++ b/ld/testsuite/ld-cris/def3.d
@@ -2,7 +2,7 @@
#source: stabs1.s
#source: globsymw1.s
#target: cris-*-*elf* cris-*-*aout*
-#as: --em=criself
+#as: --emulation=criself
#ld: -mcriself
#objdump: -p
# Just checking that undef3 links correctly when given a symbol.
diff --git a/ld/testsuite/ld-cris/dso-pltdis1.d b/ld/testsuite/ld-cris/dso-pltdis1.d
index efc4d94..9614033 100644
--- a/ld/testsuite/ld-cris/dso-pltdis1.d
+++ b/ld/testsuite/ld-cris/dso-pltdis1.d
@@ -1,7 +1,7 @@
#source: dsov32-1.s
#source: dsov32-2.s
#source: dsofn4g.s
-#as: --pic --no-underscore --march=v32 --em=criself
+#as: --pic --no-underscore --march=v32 --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#objdump: -d -R
diff --git a/ld/testsuite/ld-cris/dso-pltdis2.d b/ld/testsuite/ld-cris/dso-pltdis2.d
index c6f53fd..e967386 100644
--- a/ld/testsuite/ld-cris/dso-pltdis2.d
+++ b/ld/testsuite/ld-cris/dso-pltdis2.d
@@ -1,7 +1,7 @@
#source: dsov32-1.s
#source: dsov32-2.s
#source: dsofng.s
-#as: --pic --no-underscore --march=v32 --em=criself
+#as: --pic --no-underscore --march=v32 --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#objdump: -d
diff --git a/ld/testsuite/ld-cris/dso12-pltdis.d b/ld/testsuite/ld-cris/dso12-pltdis.d
index 429f91e..e5a230c 100644
--- a/ld/testsuite/ld-cris/dso12-pltdis.d
+++ b/ld/testsuite/ld-cris/dso12-pltdis.d
@@ -1,7 +1,7 @@
#source: expdyn1.s
#source: dsov32-1.s
#source: dsov32-2.s
-#as: --pic --no-underscore --march=v32 --em=criself
+#as: --pic --no-underscore --march=v32 --emulation=criself
#ld: --shared -m crislinux -z nocombreloc --hash-style=sysv
#objdump: -d
diff --git a/ld/testsuite/ld-cris/expdyn1.d b/ld/testsuite/ld-cris/expdyn1.d
index 37cbe4d..0c1ea55 100644
--- a/ld/testsuite/ld-cris/expdyn1.d
+++ b/ld/testsuite/ld-cris/expdyn1.d
@@ -1,5 +1,5 @@
#source: expdyn1.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux -export-dynamic tmpdir/libdso-1.so --hash-style=sysv
#objdump: -T
diff --git a/ld/testsuite/ld-cris/expdyn2.d b/ld/testsuite/ld-cris/expdyn2.d
index 6c5faa5..b2a6fb3 100644
--- a/ld/testsuite/ld-cris/expdyn2.d
+++ b/ld/testsuite/ld-cris/expdyn2.d
@@ -1,6 +1,6 @@
#source: expdyn1.s
#source: expdref1.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --export-dynamic tmpdir/libdso-1.so
#objdump: -R
diff --git a/ld/testsuite/ld-cris/expdyn3.d b/ld/testsuite/ld-cris/expdyn3.d
index 34f2a5e..aefbe84 100644
--- a/ld/testsuite/ld-cris/expdyn3.d
+++ b/ld/testsuite/ld-cris/expdyn3.d
@@ -1,7 +1,7 @@
#source: expdyn1.s
#source: expdref1.s --pic
#source: euwref1.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --export-dynamic tmpdir/libdso-1.so
#objdump: -R
diff --git a/ld/testsuite/ld-cris/expdyn4.d b/ld/testsuite/ld-cris/expdyn4.d
index e932056..5510142 100644
--- a/ld/testsuite/ld-cris/expdyn4.d
+++ b/ld/testsuite/ld-cris/expdyn4.d
@@ -1,7 +1,7 @@
#source: expdyn1.s
#source: expdref1.s --pic
#source: comref1.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --export-dynamic tmpdir/libdso-1.so
#objdump: -R
diff --git a/ld/testsuite/ld-cris/expdyn5.d b/ld/testsuite/ld-cris/expdyn5.d
index 818ee4f..0c4dfd0 100644
--- a/ld/testsuite/ld-cris/expdyn5.d
+++ b/ld/testsuite/ld-cris/expdyn5.d
@@ -1,6 +1,6 @@
#source: expdyn1.s
#source: expdref1.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --export-dynamic tmpdir/libdso-1.so --hash-style=sysv
#objdump: -s -j .got
diff --git a/ld/testsuite/ld-cris/expdyn6.d b/ld/testsuite/ld-cris/expdyn6.d
index cf4a578..c315d95 100644
--- a/ld/testsuite/ld-cris/expdyn6.d
+++ b/ld/testsuite/ld-cris/expdyn6.d
@@ -1,7 +1,7 @@
#source: expdyn1.s
#source: expdref1.s --pic
#source: euwref1.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --export-dynamic tmpdir/libdso-1.so --hash-style=sysv
#objdump: -s -j .got
diff --git a/ld/testsuite/ld-cris/expdyn7.d b/ld/testsuite/ld-cris/expdyn7.d
index 6028343..a5d52d1 100644
--- a/ld/testsuite/ld-cris/expdyn7.d
+++ b/ld/testsuite/ld-cris/expdyn7.d
@@ -1,7 +1,7 @@
#source: expdyn1.s
#source: expdref1.s --pic
#source: comref1.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --export-dynamic tmpdir/libdso-1.so --hash-style=sysv
#objdump: -s -j .got
diff --git a/ld/testsuite/ld-cris/gotplt1.d b/ld/testsuite/ld-cris/gotplt1.d
index 163bb01..96ea5e1 100644
--- a/ld/testsuite/ld-cris/gotplt1.d
+++ b/ld/testsuite/ld-cris/gotplt1.d
@@ -1,7 +1,7 @@
#source: dso-2.s
#source: dsofnf2.s
#source: gotrel1.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: -m crislinux tmpdir/libdso-1.so --hash-style=sysv
#objdump: -sR
diff --git a/ld/testsuite/ld-cris/gotplt2.d b/ld/testsuite/ld-cris/gotplt2.d
index 32d0f89..32c515f 100644
--- a/ld/testsuite/ld-cris/gotplt2.d
+++ b/ld/testsuite/ld-cris/gotplt2.d
@@ -1,7 +1,7 @@
#source: dso-2.s
#source: dsofnf.s
#source: gotrel1.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: -shared -m crislinux -z nocombreloc --hash-style=sysv
#objdump: -sR
diff --git a/ld/testsuite/ld-cris/gotplt3.d b/ld/testsuite/ld-cris/gotplt3.d
index abc0192..7dd8562 100644
--- a/ld/testsuite/ld-cris/gotplt3.d
+++ b/ld/testsuite/ld-cris/gotplt3.d
@@ -2,7 +2,7 @@
#source: dsofnf.s
#source: gotrel1.s
#source: dso-1.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: -shared -m crislinux -z nocombreloc --hash-style=sysv
#objdump: -sR
diff --git a/ld/testsuite/ld-cris/hiddef1.d b/ld/testsuite/ld-cris/hiddef1.d
index 602f1bf..7cbe876 100644
--- a/ld/testsuite/ld-cris/hiddef1.d
+++ b/ld/testsuite/ld-cris/hiddef1.d
@@ -2,7 +2,7 @@
#source: hiddef1.s
#source: hidrefgotplt1.s
#ld: -shared -m crislinux --hash-style=sysv
-#as: --pic --no-underscore -I$srcdir/$subdir --em=criself
+#as: --pic --no-underscore -I$srcdir/$subdir --emulation=criself
#readelf: -S -s -r
# Regression test for mishandling of GOTPLT relocs against a
diff --git a/ld/testsuite/ld-cris/ldsym1.d b/ld/testsuite/ld-cris/ldsym1.d
index e8dcd32..2aacf3a 100644
--- a/ld/testsuite/ld-cris/ldsym1.d
+++ b/ld/testsuite/ld-cris/ldsym1.d
@@ -1,6 +1,6 @@
# source: expdyn1.s
# target: cris-*-*elf* cris-*-*aout*
-# as: --em=criself
+# as: --emulation=criself
# ld: -mcriself
# objdump: -d
diff --git a/ld/testsuite/ld-cris/libdso-1.d b/ld/testsuite/ld-cris/libdso-1.d
index 5a7e9a1..ba5d3b0 100644
--- a/ld/testsuite/ld-cris/libdso-1.d
+++ b/ld/testsuite/ld-cris/libdso-1.d
@@ -1,5 +1,5 @@
#source: dso-1.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux
#objdump: -T
diff --git a/ld/testsuite/ld-cris/libdso-10.d b/ld/testsuite/ld-cris/libdso-10.d
index 0f0d562..696b16e 100644
--- a/ld/testsuite/ld-cris/libdso-10.d
+++ b/ld/testsuite/ld-cris/libdso-10.d
@@ -1,5 +1,5 @@
#source: dso-1.s
-#as: --pic --no-underscore --march=v32 --em=criself
+#as: --pic --no-underscore --march=v32 --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#objdump: -p -h
diff --git a/ld/testsuite/ld-cris/libdso-11.d b/ld/testsuite/ld-cris/libdso-11.d
index 0e00ad6..f95ca4f 100644
--- a/ld/testsuite/ld-cris/libdso-11.d
+++ b/ld/testsuite/ld-cris/libdso-11.d
@@ -1,6 +1,6 @@
#source: dso-1.s
#source: dsov32-1.s
-#as: --pic --no-underscore --march=v32 --em=criself
+#as: --pic --no-underscore --march=v32 --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -T
diff --git a/ld/testsuite/ld-cris/libdso-12.d b/ld/testsuite/ld-cris/libdso-12.d
index 7fe8342..1bf4596 100644
--- a/ld/testsuite/ld-cris/libdso-12.d
+++ b/ld/testsuite/ld-cris/libdso-12.d
@@ -1,7 +1,7 @@
#source: expdyn1.s
#source: dsov32-1.s
#source: dsov32-2.s
-#as: --pic --no-underscore --march=v32 --em=criself
+#as: --pic --no-underscore --march=v32 --emulation=criself
#ld: --shared -m crislinux -z nocombreloc --hash-style=sysv
#objdump: -s -T
diff --git a/ld/testsuite/ld-cris/libdso-12b.d b/ld/testsuite/ld-cris/libdso-12b.d
index 215d188..a133f11 100644
--- a/ld/testsuite/ld-cris/libdso-12b.d
+++ b/ld/testsuite/ld-cris/libdso-12b.d
@@ -1,7 +1,7 @@
#source: expdyn1.s
#source: dsov32-1.s
#source: dsov32-2.s
-#as: --pic --no-underscore --march=v32 --em=criself
+#as: --pic --no-underscore --march=v32 --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -T
diff --git a/ld/testsuite/ld-cris/libdso-12c.d b/ld/testsuite/ld-cris/libdso-12c.d
index 949a0e7..484630e 100644
--- a/ld/testsuite/ld-cris/libdso-12c.d
+++ b/ld/testsuite/ld-cris/libdso-12c.d
@@ -2,7 +2,7 @@
#source: dsov32-1.s
#source: dsov32-2.s
#source: dso-1.s
-#as: --pic --no-underscore --march=v32 --em=criself
+#as: --pic --no-underscore --march=v32 --emulation=criself
#ld: --shared -m crislinux --version-script $srcdir/$subdir/hidedsofns2468 --hash-style=sysv
#objdump: -s -T
diff --git a/ld/testsuite/ld-cris/libdso-13.d b/ld/testsuite/ld-cris/libdso-13.d
index b50a5af..ad32019 100644
--- a/ld/testsuite/ld-cris/libdso-13.d
+++ b/ld/testsuite/ld-cris/libdso-13.d
@@ -1,6 +1,6 @@
#source: dso-1.s
#source: dsov32-3.s
-#as: --pic --no-underscore --march=v32 --em=criself
+#as: --pic --no-underscore --march=v32 --emulation=criself
#ld: --shared -m crislinux -z nocombreloc --enable-new-dtags --hash-style=sysv
#readelf: -d -r
#warning: relocation R_CRIS_32_PCREL should not be used in a shared object; recompile with -fPIC
diff --git a/ld/testsuite/ld-cris/libdso-13b.d b/ld/testsuite/ld-cris/libdso-13b.d
index cf8200e..b592a9c 100644
--- a/ld/testsuite/ld-cris/libdso-13b.d
+++ b/ld/testsuite/ld-cris/libdso-13b.d
@@ -1,6 +1,6 @@
#source: dso-1.s
#source: dsov32-3.s
-#as: --pic --no-underscore --march=v32 --em=criself
+#as: --pic --no-underscore --march=v32 --emulation=criself
#ld: --shared -m crislinux --version-script $srcdir/$subdir/hidedsofns2468 --hash-style=sysv
#readelf: -d -r
diff --git a/ld/testsuite/ld-cris/libdso-14.d b/ld/testsuite/ld-cris/libdso-14.d
index b87a5ce..ce4b8ad 100644
--- a/ld/testsuite/ld-cris/libdso-14.d
+++ b/ld/testsuite/ld-cris/libdso-14.d
@@ -1,6 +1,6 @@
#source: dso-1.s
#source: dsov32-4.s
-#as: --pic --no-underscore --march=v32 --em=criself
+#as: --pic --no-underscore --march=v32 --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#readelf: -d -r
diff --git a/ld/testsuite/ld-cris/libdso-15.d b/ld/testsuite/ld-cris/libdso-15.d
index e772fa3..6f9b575 100644
--- a/ld/testsuite/ld-cris/libdso-15.d
+++ b/ld/testsuite/ld-cris/libdso-15.d
@@ -1,5 +1,5 @@
#source: expdyn2.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: --shared -m crislinux --version-script $srcdir/$subdir/expalltst3 --hash-style=sysv
#objdump: -s -T
diff --git a/ld/testsuite/ld-cris/libdso-15b.d b/ld/testsuite/ld-cris/libdso-15b.d
index d02619b..161a58e 100644
--- a/ld/testsuite/ld-cris/libdso-15b.d
+++ b/ld/testsuite/ld-cris/libdso-15b.d
@@ -1,5 +1,5 @@
#source: expdref2.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#ld_after_inputfiles: tmpdir/libdso-15.so
#objdump: -s -T
diff --git a/ld/testsuite/ld-cris/libdso-15c.d b/ld/testsuite/ld-cris/libdso-15c.d
index b035990..3adb952 100644
--- a/ld/testsuite/ld-cris/libdso-15c.d
+++ b/ld/testsuite/ld-cris/libdso-15c.d
@@ -1,5 +1,5 @@
#source: expdref2.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#ld_after_inputfiles: tmpdir/libdso-15.so
#readelf: -d
diff --git a/ld/testsuite/ld-cris/libdso-1b.d b/ld/testsuite/ld-cris/libdso-1b.d
index 56e5788..6d88e13 100644
--- a/ld/testsuite/ld-cris/libdso-1b.d
+++ b/ld/testsuite/ld-cris/libdso-1b.d
@@ -1,5 +1,5 @@
#source: dso-1b.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: --shared -m crislinux --version-script $srcdir/$subdir/hidedsofns2468 --hash-style=sysv
#objdump: -T
diff --git a/ld/testsuite/ld-cris/libdso-1c.d b/ld/testsuite/ld-cris/libdso-1c.d
index d69b857..218f296 100644
--- a/ld/testsuite/ld-cris/libdso-1c.d
+++ b/ld/testsuite/ld-cris/libdso-1c.d
@@ -1,5 +1,5 @@
#source: expdref1.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: --shared -m crislinux --hash-style=sysv
#ld_after_inputfiles: tmpdir/libdso-1b.so
#objdump: -s -T
diff --git a/ld/testsuite/ld-cris/libdso-1d.d b/ld/testsuite/ld-cris/libdso-1d.d
index 83a4337..7755b0e 100644
--- a/ld/testsuite/ld-cris/libdso-1d.d
+++ b/ld/testsuite/ld-cris/libdso-1d.d
@@ -1,6 +1,6 @@
#source: expdref1.s
#source: expdyn1w.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: --shared -m crislinux --hash-style=sysv
#ld_after_inputfiles: tmpdir/libdso-1b.so
#objdump: -s -T
diff --git a/ld/testsuite/ld-cris/libdso-2.d b/ld/testsuite/ld-cris/libdso-2.d
index 900d00d..7133dd5 100644
--- a/ld/testsuite/ld-cris/libdso-2.d
+++ b/ld/testsuite/ld-cris/libdso-2.d
@@ -1,6 +1,6 @@
#source: dso-1.s
#source: dso-2.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv --version-script $srcdir/$subdir/hide1
#readelf: -S -s -r
diff --git a/ld/testsuite/ld-cris/libdso-3.d b/ld/testsuite/ld-cris/libdso-3.d
index 9e18c59..c02eb3d 100644
--- a/ld/testsuite/ld-cris/libdso-3.d
+++ b/ld/testsuite/ld-cris/libdso-3.d
@@ -1,6 +1,6 @@
#source: expdyn1.s
#source: dso-3.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux
#objdump: -R
diff --git a/ld/testsuite/ld-cris/libdso-4.d b/ld/testsuite/ld-cris/libdso-4.d
index 3d57395..11a85a1 100644
--- a/ld/testsuite/ld-cris/libdso-4.d
+++ b/ld/testsuite/ld-cris/libdso-4.d
@@ -1,5 +1,5 @@
#source: dso-2.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#objdump: -T
diff --git a/ld/testsuite/ld-cris/locref1.d b/ld/testsuite/ld-cris/locref1.d
index ac26b28..da5d86c 100644
--- a/ld/testsuite/ld-cris/locref1.d
+++ b/ld/testsuite/ld-cris/locref1.d
@@ -1,4 +1,4 @@
-#as: --no-underscore --pic --em=criself
+#as: --no-underscore --pic --emulation=criself
#source: expdyn1.s
#source: locref1.s
#ld: -m crislinux
diff --git a/ld/testsuite/ld-cris/locref2.d b/ld/testsuite/ld-cris/locref2.d
index 0cf5394..4f8712b 100644
--- a/ld/testsuite/ld-cris/locref2.d
+++ b/ld/testsuite/ld-cris/locref2.d
@@ -1,4 +1,4 @@
-#as: --no-underscore --pic --em=criself
+#as: --no-underscore --pic --emulation=criself
#source: gotrel1.s
#source: locref2.s
#ld: -m crislinux
diff --git a/ld/testsuite/ld-cris/nodyn4.d b/ld/testsuite/ld-cris/nodyn4.d
index c1af092..9a20173 100644
--- a/ld/testsuite/ld-cris/nodyn4.d
+++ b/ld/testsuite/ld-cris/nodyn4.d
@@ -1,7 +1,7 @@
#source: expdyn1.s
#source: expdref1.s --pic
#source: comref1.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#readelf: -l
diff --git a/ld/testsuite/ld-cris/nodyn5.d b/ld/testsuite/ld-cris/nodyn5.d
index 28b581e..0130fa5 100644
--- a/ld/testsuite/ld-cris/nodyn5.d
+++ b/ld/testsuite/ld-cris/nodyn5.d
@@ -1,7 +1,7 @@
#source: expdyn1.s
#source: expdref1.s --pic
#source: comref1.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#objdump: -s -j .got
diff --git a/ld/testsuite/ld-cris/pcrelcp-1.d b/ld/testsuite/ld-cris/pcrelcp-1.d
index 0d5f6b8..7152308 100644
--- a/ld/testsuite/ld-cris/pcrelcp-1.d
+++ b/ld/testsuite/ld-cris/pcrelcp-1.d
@@ -1,4 +1,4 @@
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -shared -m crislinux -z nocombreloc
#ld_after_inputfiles: tmpdir/libdso-1b.so
#warning: \A[^\n]*\.o, section `.text', to symbol `expfn@@TST2':[^\n]*recompile with -fPIC\Z
diff --git a/ld/testsuite/ld-cris/pic-gc-72.d b/ld/testsuite/ld-cris/pic-gc-72.d
index 3c096ea..269a5d2 100644
--- a/ld/testsuite/ld-cris/pic-gc-72.d
+++ b/ld/testsuite/ld-cris/pic-gc-72.d
@@ -1,7 +1,7 @@
#source: pic-gc-72.s
#source: expdref1.s
#source: expdyn1.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: --shared -m crislinux --gc-sections --hash-style=sysv
#objdump: -s -t -R -p -T
diff --git a/ld/testsuite/ld-cris/pic-gc-73.d b/ld/testsuite/ld-cris/pic-gc-73.d
index 603ce45..bafe483 100644
--- a/ld/testsuite/ld-cris/pic-gc-73.d
+++ b/ld/testsuite/ld-cris/pic-gc-73.d
@@ -1,6 +1,6 @@
#source: pic-gc-73.s
#source: expdyn1.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: --shared -m crislinux --gc-sections --hash-style=sysv
#objdump: -s -t -R -p -T
diff --git a/ld/testsuite/ld-cris/pr16044.d b/ld/testsuite/ld-cris/pr16044.d
index 9bb264b..59e90bb 100644
--- a/ld/testsuite/ld-cris/pr16044.d
+++ b/ld/testsuite/ld-cris/pr16044.d
@@ -1,7 +1,7 @@
#source: dso-4.s
#source: dso-2b.s
#source: dso-1c.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: --shared -m crislinux --hash-style=sysv
#readelf: -s -r
diff --git a/ld/testsuite/ld-cris/pr26589.d b/ld/testsuite/ld-cris/pr26589.d
index aee3143..17da49a 100644
--- a/ld/testsuite/ld-cris/pr26589.d
+++ b/ld/testsuite/ld-cris/pr26589.d
@@ -1,6 +1,6 @@
#source: dso-1.s
#source: locref3.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux
#readelf: --dyn-syms -r
diff --git a/ld/testsuite/ld-cris/pv32-1.d b/ld/testsuite/ld-cris/pv32-1.d
index 3b17e23..0d9a924 100644
--- a/ld/testsuite/ld-cris/pv32-1.d
+++ b/ld/testsuite/ld-cris/pv32-1.d
@@ -1,5 +1,5 @@
#source: pv32.s
-#as: --march=v32 --no-underscore --em=criself
+#as: --march=v32 --no-underscore --emulation=criself
#ld: -e here -m crislinux tmpdir/libdso-12.so --hash-style=sysv
#objdump: -s -T
diff --git a/ld/testsuite/ld-cris/tls-dso-dtpoffd2.d b/ld/testsuite/ld-cris/tls-dso-dtpoffd2.d
index 46ad8ab..cd99981 100644
--- a/ld/testsuite/ld-cris/tls-dso-dtpoffd2.d
+++ b/ld/testsuite/ld-cris/tls-dso-dtpoffd2.d
@@ -3,7 +3,7 @@
#source: tls-gd-1.s
#source: tls128.s
#source: tls-x.s
-#as: --no-underscore --em=criself --pic -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself --pic -I$srcdir/$subdir
#ld: -m crislinux --shared --hash-style=sysv --hash-style=sysv
#objdump: -d -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-dso-dtpoffd4.d b/ld/testsuite/ld-cris/tls-dso-dtpoffd4.d
index a8f1305..b1792e8 100644
--- a/ld/testsuite/ld-cris/tls-dso-dtpoffd4.d
+++ b/ld/testsuite/ld-cris/tls-dso-dtpoffd4.d
@@ -3,7 +3,7 @@
#source: tls-gd-1.s
#source: tls128.s
#source: tls-commx.s
-#as: --no-underscore --em=criself --pic -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself --pic -I$srcdir/$subdir
#ld: -m crislinux --shared --hash-style=sysv
#objdump: -d -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-dso-tpoffgotcomm1.d b/ld/testsuite/ld-cris/tls-dso-tpoffgotcomm1.d
index a591113..fcdfe4e 100644
--- a/ld/testsuite/ld-cris/tls-dso-tpoffgotcomm1.d
+++ b/ld/testsuite/ld-cris/tls-dso-tpoffgotcomm1.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-dso-tpoffgotcomm1.s
-#as: --no-underscore --pic --em=criself -I$srcdir/$subdir
+#as: --no-underscore --pic --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux -shared --hash-style=sysv
#objdump: -d -h -s -t -r -R -p
diff --git a/ld/testsuite/ld-cris/tls-dso-x1x2-1.d b/ld/testsuite/ld-cris/tls-dso-x1x2-1.d
index 6168701..29e3ed7 100644
--- a/ld/testsuite/ld-cris/tls-dso-x1x2-1.d
+++ b/ld/testsuite/ld-cris/tls-dso-x1x2-1.d
@@ -1,6 +1,6 @@
#source: tls-hx.s
#source: tls-x1x2.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared --hash-style=sysv
#objdump: -T
diff --git a/ld/testsuite/ld-cris/tls-dso-xz-1.d b/ld/testsuite/ld-cris/tls-dso-xz-1.d
index 9a33b78..87a0165 100644
--- a/ld/testsuite/ld-cris/tls-dso-xz-1.d
+++ b/ld/testsuite/ld-cris/tls-dso-xz-1.d
@@ -2,7 +2,7 @@
#source: tls-hx1x2.s
#source: tls-x.s
#source: tls-z.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared
#objdump: -T
diff --git a/ld/testsuite/ld-cris/tls-e-20.d b/ld/testsuite/ld-cris/tls-e-20.d
index eb323a5..d192e84 100644
--- a/ld/testsuite/ld-cris/tls-e-20.d
+++ b/ld/testsuite/ld-cris/tls-e-20.d
@@ -4,7 +4,7 @@
#source: tls-ld-6.s --pic
#source: tls-ie-10.s --pic
#source: tls-hx1x2.s --pic
-#as: --no-underscore --em=criself -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -d -s -h -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-e-20a.d b/ld/testsuite/ld-cris/tls-e-20a.d
index 7d5a95e..5680184 100644
--- a/ld/testsuite/ld-cris/tls-e-20a.d
+++ b/ld/testsuite/ld-cris/tls-e-20a.d
@@ -6,7 +6,7 @@
#source: tls-ie-10.s
#source: tls-hx.s
#source: tls-hx1x2.s
-#as: --no-underscore --em=criself -I$srcdir/$subdir --pic
+#as: --no-underscore --emulation=criself -I$srcdir/$subdir --pic
#ld: -m crislinux
#objdump: -d -s -h -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-e-21.d b/ld/testsuite/ld-cris/tls-e-21.d
index 80ca3e3..33c2214 100644
--- a/ld/testsuite/ld-cris/tls-e-21.d
+++ b/ld/testsuite/ld-cris/tls-e-21.d
@@ -2,7 +2,7 @@
#source: tls128.s
#source: tls-gd-2.s
#source: tls-hx.s
-#as: --no-underscore --em=criself --pic
+#as: --no-underscore --emulation=criself --pic
#ld: -m crislinux
#objdump: -d -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-e-22.d b/ld/testsuite/ld-cris/tls-e-22.d
index 93ab45d..c49a4b4 100644
--- a/ld/testsuite/ld-cris/tls-e-22.d
+++ b/ld/testsuite/ld-cris/tls-e-22.d
@@ -2,7 +2,7 @@
#source: tls128.s
#source: tls-ld-6.s
#source: tls-hx.s
-#as: --no-underscore --em=criself --pic -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself --pic -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -d -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-e-23.d b/ld/testsuite/ld-cris/tls-e-23.d
index a09d55e..ae07bb2 100644
--- a/ld/testsuite/ld-cris/tls-e-23.d
+++ b/ld/testsuite/ld-cris/tls-e-23.d
@@ -2,7 +2,7 @@
#source: tls128.s
#source: tls-ie-10.s
#source: tls-hx.s
-#as: --no-underscore --em=criself --pic -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself --pic -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -d -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-e-66.d b/ld/testsuite/ld-cris/tls-e-66.d
index ba1755d..f556ddf 100644
--- a/ld/testsuite/ld-cris/tls-e-66.d
+++ b/ld/testsuite/ld-cris/tls-e-66.d
@@ -1,7 +1,7 @@
#source: start1.s
#source: tls-le-12s.s
#source: tls-z.s
-#as: --no-underscore --em=criself -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -d -s -t -r -p -h
diff --git a/ld/testsuite/ld-cris/tls-e-80.d b/ld/testsuite/ld-cris/tls-e-80.d
index 15ce3d7..919be62 100644
--- a/ld/testsuite/ld-cris/tls-e-80.d
+++ b/ld/testsuite/ld-cris/tls-e-80.d
@@ -8,7 +8,7 @@
#source: tls-ld-6.s --pic
#source: tls-ie-10.s --pic
#source: tls-hx1x2.s --pic
-#as: --no-underscore --em=criself -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -d -s -h -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-e-dtpoffd1.d b/ld/testsuite/ld-cris/tls-e-dtpoffd1.d
index 5da24b5..3d07dbc 100644
--- a/ld/testsuite/ld-cris/tls-e-dtpoffd1.d
+++ b/ld/testsuite/ld-cris/tls-e-dtpoffd1.d
@@ -3,7 +3,7 @@
#source: tls-gd-1.s
#source: tls128.s
#source: tls-x.s
-#as: --no-underscore --em=criself --pic -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself --pic -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -d -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-e-dtpoffd3.d b/ld/testsuite/ld-cris/tls-e-dtpoffd3.d
index 6013a3a..f619598 100644
--- a/ld/testsuite/ld-cris/tls-e-dtpoffd3.d
+++ b/ld/testsuite/ld-cris/tls-e-dtpoffd3.d
@@ -3,7 +3,7 @@
#source: tls-gd-1.s
#source: tls128.s
#source: tls-commx.s
-#as: --no-underscore --em=criself --pic -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself --pic -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -d -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-e-tpiecomm1.d b/ld/testsuite/ld-cris/tls-e-tpiecomm1.d
index 2e0f0f0..0360790 100644
--- a/ld/testsuite/ld-cris/tls-e-tpiecomm1.d
+++ b/ld/testsuite/ld-cris/tls-e-tpiecomm1.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-e-tpiecomm1.s
-#as: --no-underscore --em=criself -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -d -s -h -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-e-tpoffcomm1.d b/ld/testsuite/ld-cris/tls-e-tpoffcomm1.d
index 4fc067e..4300a22 100644
--- a/ld/testsuite/ld-cris/tls-e-tpoffcomm1.d
+++ b/ld/testsuite/ld-cris/tls-e-tpoffcomm1.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-e-tpoffcomm1.s
-#as: --no-underscore --em=criself -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -d -s -h -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-e-tpoffgotcomm1.d b/ld/testsuite/ld-cris/tls-e-tpoffgotcomm1.d
index 9d34f68..a0501e9 100644
--- a/ld/testsuite/ld-cris/tls-e-tpoffgotcomm1.d
+++ b/ld/testsuite/ld-cris/tls-e-tpoffgotcomm1.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-dso-tpoffgotcomm1.s --pic
-#as: --no-underscore --em=criself -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -d -s -h -t -p
diff --git a/ld/testsuite/ld-cris/tls-err-20x.d b/ld/testsuite/ld-cris/tls-err-20x.d
index 9a3af03..06661dc 100644
--- a/ld/testsuite/ld-cris/tls-err-20x.d
+++ b/ld/testsuite/ld-cris/tls-err-20x.d
@@ -3,7 +3,7 @@
#source: tls-ld-6.s --pic
#source: tls-ie-10.s --pic
#source: tls-hx.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#error: \A[^\n]*: warning: cannot find entry symbol _start; defaulting to [0-9a-f]*\n[^\n]*: in function `tlsdsofn9':\n[^\n]*: undefined reference to `x1'\n[^\n]*: undefined reference to `x2'\Z
diff --git a/ld/testsuite/ld-cris/tls-err-24.d b/ld/testsuite/ld-cris/tls-err-24.d
index 0867870..504b76e 100644
--- a/ld/testsuite/ld-cris/tls-err-24.d
+++ b/ld/testsuite/ld-cris/tls-err-24.d
@@ -1,6 +1,6 @@
#source: tls-le-12s.s
#source: tls-z.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: --shared -m crislinux
#error: \A[^\n]*\.o, [^\n]*\n[^\n]*mixup[^\n]*\n[^\n]*invalid operation\Z
diff --git a/ld/testsuite/ld-cris/tls-err-25.d b/ld/testsuite/ld-cris/tls-err-25.d
index e162d6e..6f049f2 100644
--- a/ld/testsuite/ld-cris/tls-err-25.d
+++ b/ld/testsuite/ld-cris/tls-err-25.d
@@ -1,6 +1,6 @@
#source: tls-le-12.s
#source: tls-z.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: --shared -m crislinux
#error: \A[^\n]*\.o, [^\n]*\n[^\n]*mixup[^\n]*\n[^\n]*invalid operation\Z
diff --git a/ld/testsuite/ld-cris/tls-err-26.d b/ld/testsuite/ld-cris/tls-err-26.d
index 45ebfe2..e8f18a3 100644
--- a/ld/testsuite/ld-cris/tls-err-26.d
+++ b/ld/testsuite/ld-cris/tls-err-26.d
@@ -1,6 +1,6 @@
#source: tls-ld-4.s
#source: tls-x.s
-#as: --no-underscore --em=criself --pic
+#as: --no-underscore --emulation=criself --pic
#ld: --shared -m crislinux
#error: \A[^\n]*\.o,[^\n]*mixup[^\n]*\n[^\n]*bad value\Z
diff --git a/ld/testsuite/ld-cris/tls-err-27.d b/ld/testsuite/ld-cris/tls-err-27.d
index ce55924..876e5ad 100644
--- a/ld/testsuite/ld-cris/tls-err-27.d
+++ b/ld/testsuite/ld-cris/tls-err-27.d
@@ -1,6 +1,6 @@
#source: tls-ld-6.s
#source: tls-x.s
-#as: --no-underscore --em=criself --pic
+#as: --no-underscore --emulation=criself --pic
#ld: --shared -m crislinux
#error: \A[^\n]*\.o,[^\n]*mixup[^\n]*\n[^\n]*bad value\Z
diff --git a/ld/testsuite/ld-cris/tls-err-28.d b/ld/testsuite/ld-cris/tls-err-28.d
index 8ccd40b..4edf9f9 100644
--- a/ld/testsuite/ld-cris/tls-err-28.d
+++ b/ld/testsuite/ld-cris/tls-err-28.d
@@ -1,6 +1,6 @@
#source: tls-gd-3.s
#source: tls-x.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: --shared -m crislinux
#error: \A[^\n]*\.o, [^\n]*\n[^\n]*mixup[^\n]*\n[^\n]*invalid operation\Z
diff --git a/ld/testsuite/ld-cris/tls-err-29.d b/ld/testsuite/ld-cris/tls-err-29.d
index e0d7327..d5c9d75 100644
--- a/ld/testsuite/ld-cris/tls-err-29.d
+++ b/ld/testsuite/ld-cris/tls-err-29.d
@@ -1,6 +1,6 @@
#source: init.s
#source: tls-gdgotrelm.s --defsym r=8192
-#as: --no-underscore --em=criself --pic
+#as: --no-underscore --emulation=criself --pic
#ld: --shared -m crislinux
#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\Z
diff --git a/ld/testsuite/ld-cris/tls-err-31.d b/ld/testsuite/ld-cris/tls-err-31.d
index b7484ad..ccc5027 100644
--- a/ld/testsuite/ld-cris/tls-err-31.d
+++ b/ld/testsuite/ld-cris/tls-err-31.d
@@ -1,5 +1,5 @@
#source: tls-dtprelm.s --defsym r=32768
-#as: --no-underscore --em=criself --pic
+#as: --no-underscore --emulation=criself --pic
#ld: --shared -m crislinux
#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too big[^\n]*\Z
diff --git a/ld/testsuite/ld-cris/tls-err-33.d b/ld/testsuite/ld-cris/tls-err-33.d
index 329fae1..d3fb231 100644
--- a/ld/testsuite/ld-cris/tls-err-33.d
+++ b/ld/testsuite/ld-cris/tls-err-33.d
@@ -1,5 +1,5 @@
#source: tls-gottprelm.s --defsym r=8190
-#as: --no-underscore --em=criself --pic
+#as: --no-underscore --emulation=criself --pic
#ld: --shared -m crislinux
#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\Z
diff --git a/ld/testsuite/ld-cris/tls-err-35.d b/ld/testsuite/ld-cris/tls-err-35.d
index b203e35..7d7a371 100644
--- a/ld/testsuite/ld-cris/tls-err-35.d
+++ b/ld/testsuite/ld-cris/tls-err-35.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-tprelm.s --defsym r=32768
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too big[^\n]*\Z
diff --git a/ld/testsuite/ld-cris/tls-err-37.d b/ld/testsuite/ld-cris/tls-err-37.d
index a41dd0a..10a2cc2 100644
--- a/ld/testsuite/ld-cris/tls-err-37.d
+++ b/ld/testsuite/ld-cris/tls-err-37.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-gd-2.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
diff --git a/ld/testsuite/ld-cris/tls-err-39.d b/ld/testsuite/ld-cris/tls-err-39.d
index fbdc698..a666fcb 100644
--- a/ld/testsuite/ld-cris/tls-err-39.d
+++ b/ld/testsuite/ld-cris/tls-err-39.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-ld-6.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
diff --git a/ld/testsuite/ld-cris/tls-err-40.d b/ld/testsuite/ld-cris/tls-err-40.d
index 91b4165..8bcd356 100644
--- a/ld/testsuite/ld-cris/tls-err-40.d
+++ b/ld/testsuite/ld-cris/tls-err-40.d
@@ -1,5 +1,5 @@
#source: tls-ld-6.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared
#error: \A[^\n]*\.o[^\n]*undefined reference[^\n]*\n[^\n]*bad value\Z
diff --git a/ld/testsuite/ld-cris/tls-err-41.d b/ld/testsuite/ld-cris/tls-err-41.d
index 0c4705f..b74bbb8 100644
--- a/ld/testsuite/ld-cris/tls-err-41.d
+++ b/ld/testsuite/ld-cris/tls-err-41.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-ie-10.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
diff --git a/ld/testsuite/ld-cris/tls-err-43.d b/ld/testsuite/ld-cris/tls-err-43.d
index bb3abb4..de5eb4c 100644
--- a/ld/testsuite/ld-cris/tls-err-43.d
+++ b/ld/testsuite/ld-cris/tls-err-43.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-le-12.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
diff --git a/ld/testsuite/ld-cris/tls-err-44.d b/ld/testsuite/ld-cris/tls-err-44.d
index 941e21c..f70a965 100644
--- a/ld/testsuite/ld-cris/tls-err-44.d
+++ b/ld/testsuite/ld-cris/tls-err-44.d
@@ -1,5 +1,5 @@
#source: tls-le-12.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared
#error: \A[^\n]*\.o, [^\n]*\n[^\n]*mixup[^\n]*\n[^\n]*invalid operation\Z
diff --git a/ld/testsuite/ld-cris/tls-err-45.d b/ld/testsuite/ld-cris/tls-err-45.d
index 28faa30..dedab8f 100644
--- a/ld/testsuite/ld-cris/tls-err-45.d
+++ b/ld/testsuite/ld-cris/tls-err-45.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-gd-1.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
diff --git a/ld/testsuite/ld-cris/tls-err-47.d b/ld/testsuite/ld-cris/tls-err-47.d
index 4f7139b..035ca1e 100644
--- a/ld/testsuite/ld-cris/tls-err-47.d
+++ b/ld/testsuite/ld-cris/tls-err-47.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-ld-4.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
diff --git a/ld/testsuite/ld-cris/tls-err-48.d b/ld/testsuite/ld-cris/tls-err-48.d
index 756f1b5..5530c34 100644
--- a/ld/testsuite/ld-cris/tls-err-48.d
+++ b/ld/testsuite/ld-cris/tls-err-48.d
@@ -1,5 +1,5 @@
#source: tls-ld-4.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared
#error: \A[^\n]*\.o[^\n]*undefined reference[^\n]*\n[^\n]*bad value\Z
diff --git a/ld/testsuite/ld-cris/tls-err-49.d b/ld/testsuite/ld-cris/tls-err-49.d
index 5d8a9c9..6509560 100644
--- a/ld/testsuite/ld-cris/tls-err-49.d
+++ b/ld/testsuite/ld-cris/tls-err-49.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-ie-8.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
diff --git a/ld/testsuite/ld-cris/tls-err-51.d b/ld/testsuite/ld-cris/tls-err-51.d
index 3891aac..efe5f3c 100644
--- a/ld/testsuite/ld-cris/tls-err-51.d
+++ b/ld/testsuite/ld-cris/tls-err-51.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-le-12s.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#error: \A[^\n]*\.o: in function[^\n]*\n[^\n]*undefined reference[^\n]*\Z
diff --git a/ld/testsuite/ld-cris/tls-err-52.d b/ld/testsuite/ld-cris/tls-err-52.d
index b2f85cf..9aeb260 100644
--- a/ld/testsuite/ld-cris/tls-err-52.d
+++ b/ld/testsuite/ld-cris/tls-err-52.d
@@ -1,5 +1,5 @@
#source: tls-le-12s.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared
#error: \A[^\n]*\.o, [^\n]*\n[^\n]*mixup[^\n]*\n[^\n]*invalid operation\Z
diff --git a/ld/testsuite/ld-cris/tls-err-53.d b/ld/testsuite/ld-cris/tls-err-53.d
index 89884be..31f3a3c 100644
--- a/ld/testsuite/ld-cris/tls-err-53.d
+++ b/ld/testsuite/ld-cris/tls-err-53.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-ld-4.s
-#as: --no-underscore --em=criself --pic
+#as: --no-underscore --emulation=criself --pic
#ld: -m crislinux tmpdir/tls-dso-xz-1.so
#error: \A[^\n]*\.o,[^\n]*mixup[^\n]*\n[^\n]*bad value\Z
diff --git a/ld/testsuite/ld-cris/tls-err-55.d b/ld/testsuite/ld-cris/tls-err-55.d
index 32f0517..10a8016 100644
--- a/ld/testsuite/ld-cris/tls-err-55.d
+++ b/ld/testsuite/ld-cris/tls-err-55.d
@@ -1,5 +1,5 @@
#source: tls-err-55.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: --shared -m crislinux
#error: \A[^\n]*\.o[^\n]*relocation R_CRIS_32_GOT_GD with non-zero addend 42 against symbol `tls128'[^\n]*\n[^\n]*bad value\Z
diff --git a/ld/testsuite/ld-cris/tls-err-56.d b/ld/testsuite/ld-cris/tls-err-56.d
index 8a68dd1..d46e27e 100644
--- a/ld/testsuite/ld-cris/tls-err-56.d
+++ b/ld/testsuite/ld-cris/tls-err-56.d
@@ -1,5 +1,5 @@
#source: tls-err-56.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: --shared -m crislinux
#error: \A[^\n]*\.o[^\n]*relocation R_CRIS_32_GOT_GD with non-zero addend 42 against symbol `tls128'[^\n]*\n[^\n]*bad value\Z
diff --git a/ld/testsuite/ld-cris/tls-err-62.d b/ld/testsuite/ld-cris/tls-err-62.d
index da64d1c..1e18000 100644
--- a/ld/testsuite/ld-cris/tls-err-62.d
+++ b/ld/testsuite/ld-cris/tls-err-62.d
@@ -1,5 +1,5 @@
#source: tls-err-62.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: --shared -m crislinux
#error: \A[^\n]*\.o[^\n]*relocation R_CRIS_32_GOT_TPREL with non-zero addend 42 against symbol `tls128'[^\n]*\n[^\n]*bad value\Z
diff --git a/ld/testsuite/ld-cris/tls-err-65.d b/ld/testsuite/ld-cris/tls-err-65.d
index 62958a2..0de5e51 100644
--- a/ld/testsuite/ld-cris/tls-err-65.d
+++ b/ld/testsuite/ld-cris/tls-err-65.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-le-12s.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux tmpdir/tls-dso-xz-1.so
#error: \A[^\n]*\.o,[^\n]*mixup[^\n]*\n[^\n]*bad value\Z
diff --git a/ld/testsuite/ld-cris/tls-err-67.d b/ld/testsuite/ld-cris/tls-err-67.d
index 6a010e1..a1493e5 100644
--- a/ld/testsuite/ld-cris/tls-err-67.d
+++ b/ld/testsuite/ld-cris/tls-err-67.d
@@ -1,6 +1,6 @@
#source: init.s
#source: tls-gdgotrelm.s --defsym r=8203
-#as: --no-underscore --em=criself --pic
+#as: --no-underscore --emulation=criself --pic
#ld: --shared -m crislinux
#error: \A[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*truncated[^\n]*\n[^\n]*too many[^\n]*\n[^\n]*\.o: in[^\n]*\n[^\n]*omitted[^\n]*\Z
diff --git a/ld/testsuite/ld-cris/tls-err-77.d b/ld/testsuite/ld-cris/tls-err-77.d
index 6b7696b..2888da3 100644
--- a/ld/testsuite/ld-cris/tls-err-77.d
+++ b/ld/testsuite/ld-cris/tls-err-77.d
@@ -1,6 +1,6 @@
#source: tls-ie-8e.s
#source: tls-x.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: --shared -m crislinux
#error: \A[^\n]*\.o, [^\n]*\n[^\n]*mixup[^\n]*\n[^\n]*invalid operation\Z
diff --git a/ld/testsuite/ld-cris/tls-gc-68.d b/ld/testsuite/ld-cris/tls-gc-68.d
index c1a7d25..a2c04f1 100644
--- a/ld/testsuite/ld-cris/tls-gc-68.d
+++ b/ld/testsuite/ld-cris/tls-gc-68.d
@@ -1,7 +1,7 @@
#source: start1.s
#source: tls-x.s
#source: tls-local-58.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux --gc-sections
#objdump: -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-gc-69.d b/ld/testsuite/ld-cris/tls-gc-69.d
index ef02437..3714efb 100644
--- a/ld/testsuite/ld-cris/tls-gc-69.d
+++ b/ld/testsuite/ld-cris/tls-gc-69.d
@@ -1,7 +1,7 @@
#source: start1.s
#source: tls-x.s
#source: tls-local-59.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux --gc-sections
#objdump: -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-gc-70.d b/ld/testsuite/ld-cris/tls-gc-70.d
index 74d0d13..b6c5c76 100644
--- a/ld/testsuite/ld-cris/tls-gc-70.d
+++ b/ld/testsuite/ld-cris/tls-gc-70.d
@@ -2,7 +2,7 @@
#source: tls128.s
#source: tls-gd-3.s
#source: tls-x.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --gc-sections
#objdump: -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-gc-71.d b/ld/testsuite/ld-cris/tls-gc-71.d
index 343204e..c6f35ca 100644
--- a/ld/testsuite/ld-cris/tls-gc-71.d
+++ b/ld/testsuite/ld-cris/tls-gc-71.d
@@ -2,7 +2,7 @@
#source: init.s
#source: tls128g.s
#source: tls-hx.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: --shared -m crislinux --gc-sections --hash-style=sysv
#objdump: -s -t -R -p -T
diff --git a/ld/testsuite/ld-cris/tls-gc-75.d b/ld/testsuite/ld-cris/tls-gc-75.d
index f377dc2..2ce0fcf 100644
--- a/ld/testsuite/ld-cris/tls-gc-75.d
+++ b/ld/testsuite/ld-cris/tls-gc-75.d
@@ -4,7 +4,7 @@
#source: tls-ie-10.s
#source: tls-gd-1.s
#source: tls-ie-8.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux --gc-sections
#objdump: -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-gc-76.d b/ld/testsuite/ld-cris/tls-gc-76.d
index 2bcf25c..01d37c9 100644
--- a/ld/testsuite/ld-cris/tls-gc-76.d
+++ b/ld/testsuite/ld-cris/tls-gc-76.d
@@ -1,4 +1,4 @@
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux --gc-sections -u gc76fn
#source: start1.s
#source: tls-gc-76.s
diff --git a/ld/testsuite/ld-cris/tls-gc-79.d b/ld/testsuite/ld-cris/tls-gc-79.d
index a5bd7ff..92fce15 100644
--- a/ld/testsuite/ld-cris/tls-gc-79.d
+++ b/ld/testsuite/ld-cris/tls-gc-79.d
@@ -2,7 +2,7 @@
#source: tls128.s
#source: tls-ie-8e.s
#source: tls-x.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --gc-sections
#objdump: -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-gd-1.d b/ld/testsuite/ld-cris/tls-gd-1.d
index 5156a27..61d5804 100644
--- a/ld/testsuite/ld-cris/tls-gd-1.d
+++ b/ld/testsuite/ld-cris/tls-gd-1.d
@@ -1,4 +1,4 @@
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#source: tls-gd-1.s
#source: tls128.s
diff --git a/ld/testsuite/ld-cris/tls-gd-1h.d b/ld/testsuite/ld-cris/tls-gd-1h.d
index e012304..242f3ac 100644
--- a/ld/testsuite/ld-cris/tls-gd-1h.d
+++ b/ld/testsuite/ld-cris/tls-gd-1h.d
@@ -1,4 +1,4 @@
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#source: tls-gd-1.s
#source: tls128g.s
diff --git a/ld/testsuite/ld-cris/tls-gd-2.d b/ld/testsuite/ld-cris/tls-gd-2.d
index 107687c..989fa56 100644
--- a/ld/testsuite/ld-cris/tls-gd-2.d
+++ b/ld/testsuite/ld-cris/tls-gd-2.d
@@ -1,4 +1,4 @@
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#source: tls-gd-2.s
#source: tls128g.s
diff --git a/ld/testsuite/ld-cris/tls-gd-2h.d b/ld/testsuite/ld-cris/tls-gd-2h.d
index f5eaa8b..1041de4 100644
--- a/ld/testsuite/ld-cris/tls-gd-2h.d
+++ b/ld/testsuite/ld-cris/tls-gd-2h.d
@@ -1,4 +1,4 @@
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#source: tls-gd-2.s
#source: tls128g.s
diff --git a/ld/testsuite/ld-cris/tls-gd-3.d b/ld/testsuite/ld-cris/tls-gd-3.d
index b2de851..d9ed9de 100644
--- a/ld/testsuite/ld-cris/tls-gd-3.d
+++ b/ld/testsuite/ld-cris/tls-gd-3.d
@@ -2,7 +2,7 @@
#source: tls128.s
#source: tls-gd-3.s
#source: tls-x.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#objdump: -d -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-gd-3h.d b/ld/testsuite/ld-cris/tls-gd-3h.d
index 898a670..69455e6 100644
--- a/ld/testsuite/ld-cris/tls-gd-3h.d
+++ b/ld/testsuite/ld-cris/tls-gd-3h.d
@@ -2,7 +2,7 @@
#source: tls128.s
#source: tls-gd-3.s
#source: tls-hx.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#objdump: -d -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-global-74.d b/ld/testsuite/ld-cris/tls-global-74.d
index b70c6a9..e0b9859 100644
--- a/ld/testsuite/ld-cris/tls-global-74.d
+++ b/ld/testsuite/ld-cris/tls-global-74.d
@@ -4,7 +4,7 @@
#source: tls-ie-10.s
#source: tls-gd-1.s
#source: tls-ie-8.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-ie-10.d b/ld/testsuite/ld-cris/tls-ie-10.d
index 0df1e9d..bf010f0 100644
--- a/ld/testsuite/ld-cris/tls-ie-10.d
+++ b/ld/testsuite/ld-cris/tls-ie-10.d
@@ -1,4 +1,4 @@
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#source: tls-ie-10.s
#source: tls128g.s
diff --git a/ld/testsuite/ld-cris/tls-ie-11.d b/ld/testsuite/ld-cris/tls-ie-11.d
index 3bd727a..8a43359 100644
--- a/ld/testsuite/ld-cris/tls-ie-11.d
+++ b/ld/testsuite/ld-cris/tls-ie-11.d
@@ -1,4 +1,4 @@
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#source: tls-ie-11.s
#source: tls128g.s
diff --git a/ld/testsuite/ld-cris/tls-ie-78.d b/ld/testsuite/ld-cris/tls-ie-78.d
index ae9862c..7e477490 100644
--- a/ld/testsuite/ld-cris/tls-ie-78.d
+++ b/ld/testsuite/ld-cris/tls-ie-78.d
@@ -1,7 +1,7 @@
#source: start1.s
#source: tls128.s
#source: tls-ie-8e.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --hash-style=sysv
#ld_after_inputfiles: tmpdir/tls-dso-xz-1.so
#objdump: -s -h -t -T -R -r -p
diff --git a/ld/testsuite/ld-cris/tls-ie-8.d b/ld/testsuite/ld-cris/tls-ie-8.d
index 4af78fb..deed73f 100644
--- a/ld/testsuite/ld-cris/tls-ie-8.d
+++ b/ld/testsuite/ld-cris/tls-ie-8.d
@@ -1,4 +1,4 @@
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#source: tls-ie-8.s
#source: tls128g.s
diff --git a/ld/testsuite/ld-cris/tls-ie-8e1.d b/ld/testsuite/ld-cris/tls-ie-8e1.d
index 0093935..2666e3e 100644
--- a/ld/testsuite/ld-cris/tls-ie-8e1.d
+++ b/ld/testsuite/ld-cris/tls-ie-8e1.d
@@ -1,4 +1,4 @@
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#source: start1.s
#source: tls-ie-8e.s
diff --git a/ld/testsuite/ld-cris/tls-ie-9.d b/ld/testsuite/ld-cris/tls-ie-9.d
index c1b5b1a..5334dc5 100644
--- a/ld/testsuite/ld-cris/tls-ie-9.d
+++ b/ld/testsuite/ld-cris/tls-ie-9.d
@@ -1,4 +1,4 @@
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#source: tls-ie-9.s
#source: tls128g.s
diff --git a/ld/testsuite/ld-cris/tls-js1.d b/ld/testsuite/ld-cris/tls-js1.d
index f007ea4..099d046 100644
--- a/ld/testsuite/ld-cris/tls-js1.d
+++ b/ld/testsuite/ld-cris/tls-js1.d
@@ -4,7 +4,7 @@
#source: expdyn1.s
#source: tls-hx.s
#source: dso-1.s
-#as: --pic --no-underscore --em=criself --march=v32
+#as: --pic --no-underscore --emulation=criself --march=v32
#ld: --shared -m crislinux --hash-style=sysv
#readelf: -a
diff --git a/ld/testsuite/ld-cris/tls-ld-4.d b/ld/testsuite/ld-cris/tls-ld-4.d
index ea1fc29..2d2c7c5 100644
--- a/ld/testsuite/ld-cris/tls-ld-4.d
+++ b/ld/testsuite/ld-cris/tls-ld-4.d
@@ -1,4 +1,4 @@
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#source: tls-ld-4.s
#source: tls128g.s
diff --git a/ld/testsuite/ld-cris/tls-ld-5.d b/ld/testsuite/ld-cris/tls-ld-5.d
index 5d423aa..f2bb06e 100644
--- a/ld/testsuite/ld-cris/tls-ld-5.d
+++ b/ld/testsuite/ld-cris/tls-ld-5.d
@@ -1,4 +1,4 @@
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#source: tls-ld-5.s
#source: tls128g.s
diff --git a/ld/testsuite/ld-cris/tls-ld-6.d b/ld/testsuite/ld-cris/tls-ld-6.d
index 21dbabe..db00c15 100644
--- a/ld/testsuite/ld-cris/tls-ld-6.d
+++ b/ld/testsuite/ld-cris/tls-ld-6.d
@@ -1,4 +1,4 @@
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: --shared -m crislinux --hash-style=sysv
#source: tls128g.s
#source: tls-ld-6.s
diff --git a/ld/testsuite/ld-cris/tls-ld-7.d b/ld/testsuite/ld-cris/tls-ld-7.d
index e0fb31e..7f89a90 100644
--- a/ld/testsuite/ld-cris/tls-ld-7.d
+++ b/ld/testsuite/ld-cris/tls-ld-7.d
@@ -1,4 +1,4 @@
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#source: tls-ld-7.s
#source: tls128g.s
diff --git a/ld/testsuite/ld-cris/tls-ldgd-14.d b/ld/testsuite/ld-cris/tls-ldgd-14.d
index 0c1d486..1a93a47 100644
--- a/ld/testsuite/ld-cris/tls-ldgd-14.d
+++ b/ld/testsuite/ld-cris/tls-ldgd-14.d
@@ -5,7 +5,7 @@
#source: tls-x.s
#source: tls-z.s
#source: tls-hx1x2.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -t -R -p -T
diff --git a/ld/testsuite/ld-cris/tls-ldgd-15.d b/ld/testsuite/ld-cris/tls-ldgd-15.d
index 7916d31..a51e8ff 100644
--- a/ld/testsuite/ld-cris/tls-ldgd-15.d
+++ b/ld/testsuite/ld-cris/tls-ldgd-15.d
@@ -5,7 +5,7 @@
#source: tls-x.s
#source: tls-z.s
#source: tls-hx1x2.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -t -R -p -T
diff --git a/ld/testsuite/ld-cris/tls-ldgde-14.d b/ld/testsuite/ld-cris/tls-ldgde-14.d
index 9eada3e..0f2d90d 100644
--- a/ld/testsuite/ld-cris/tls-ldgde-14.d
+++ b/ld/testsuite/ld-cris/tls-ldgde-14.d
@@ -6,7 +6,7 @@
#source: tls-x.s
#source: tls-z.s
#source: tls-hx1x2.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: -m crislinux
#objdump: -d -s -h -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-ldgde-15.d b/ld/testsuite/ld-cris/tls-ldgde-15.d
index d5e993d..8b3c6ed 100644
--- a/ld/testsuite/ld-cris/tls-ldgde-15.d
+++ b/ld/testsuite/ld-cris/tls-ldgde-15.d
@@ -6,7 +6,7 @@
#source: tls-x.s
#source: tls-z.s
#source: tls-hx1x2.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: -m crislinux
#objdump: -d -s -h -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-ldgdex-14.d b/ld/testsuite/ld-cris/tls-ldgdex-14.d
index 86a8d4e..b96e6de 100644
--- a/ld/testsuite/ld-cris/tls-ldgdex-14.d
+++ b/ld/testsuite/ld-cris/tls-ldgdex-14.d
@@ -4,7 +4,7 @@
#source: tls-gd-1.s
#source: tls-ldgd-14.s
#source: tls-hx1x2.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: -m crislinux tmpdir/tls-dso-xz-1.so --hash-style=sysv
#objdump: -s -h -t -T -R -r -p
diff --git a/ld/testsuite/ld-cris/tls-ldgdex-15.d b/ld/testsuite/ld-cris/tls-ldgdex-15.d
index 0a4e527..0589a35 100644
--- a/ld/testsuite/ld-cris/tls-ldgdex-15.d
+++ b/ld/testsuite/ld-cris/tls-ldgdex-15.d
@@ -4,7 +4,7 @@
#source: tls-gd-2.s
#source: tls-ldgd-15.s
#source: tls-hx1x2.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: -m crislinux tmpdir/tls-dso-xz-1.so --hash-style=sysv
#objdump: -s -h -t -T -R -r -p
diff --git a/ld/testsuite/ld-cris/tls-ldgdx-14.d b/ld/testsuite/ld-cris/tls-ldgdx-14.d
index a773522..d9d229e 100644
--- a/ld/testsuite/ld-cris/tls-ldgdx-14.d
+++ b/ld/testsuite/ld-cris/tls-ldgdx-14.d
@@ -3,7 +3,7 @@
#source: tls-gd-1.s
#source: tls-ldgd-14.s
#source: tls-hx1x2.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv tmpdir/tls-dso-xz-1.so
#objdump: -s -h -t -T -R -r -p
diff --git a/ld/testsuite/ld-cris/tls-ldgdx-15.d b/ld/testsuite/ld-cris/tls-ldgdx-15.d
index e0b9a53..ac3dfd6 100644
--- a/ld/testsuite/ld-cris/tls-ldgdx-15.d
+++ b/ld/testsuite/ld-cris/tls-ldgdx-15.d
@@ -3,7 +3,7 @@
#source: tls-gd-2.s
#source: tls-ldgd-15.s
#source: tls-hx1x2.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux --hash-style=sysv tmpdir/tls-dso-xz-1.so
#objdump: -s -h -t -T -R -r -p
diff --git a/ld/testsuite/ld-cris/tls-le-12.d b/ld/testsuite/ld-cris/tls-le-12.d
index d24b21b..b5d8abf 100644
--- a/ld/testsuite/ld-cris/tls-le-12.d
+++ b/ld/testsuite/ld-cris/tls-le-12.d
@@ -2,7 +2,7 @@
#source: tls128.s
#source: tls-le-12.s
#source: tls-z.s
-#as: --no-underscore --em=criself -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -d -s -t -r -p -h
diff --git a/ld/testsuite/ld-cris/tls-le-12s.d b/ld/testsuite/ld-cris/tls-le-12s.d
index 96570e9..b69b871 100644
--- a/ld/testsuite/ld-cris/tls-le-12s.d
+++ b/ld/testsuite/ld-cris/tls-le-12s.d
@@ -2,7 +2,7 @@
#source: tls-le-12s.s
#source: tls-z.s
#source: tls128.s
-#as: --no-underscore --em=criself -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -d -s -t -r -p -h
diff --git a/ld/testsuite/ld-cris/tls-le-13.d b/ld/testsuite/ld-cris/tls-le-13.d
index 3d969ac..c04de57 100644
--- a/ld/testsuite/ld-cris/tls-le-13.d
+++ b/ld/testsuite/ld-cris/tls-le-13.d
@@ -2,7 +2,7 @@
#source: tls128.s
#source: tls-le-13.s
#source: tls-x1x2.s
-#as: --no-underscore --em=criself -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -d -s -t -r -p -h
diff --git a/ld/testsuite/ld-cris/tls-le-13s.d b/ld/testsuite/ld-cris/tls-le-13s.d
index 146c913..dc5720e 100644
--- a/ld/testsuite/ld-cris/tls-le-13s.d
+++ b/ld/testsuite/ld-cris/tls-le-13s.d
@@ -2,7 +2,7 @@
#source: tls128.s
#source: tls-le-13s.s
#source: tls-x1x2.s
-#as: --no-underscore --em=criself -I$srcdir/$subdir
+#as: --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -d -s -t -r -p -h
diff --git a/ld/testsuite/ld-cris/tls-legd-16.d b/ld/testsuite/ld-cris/tls-legd-16.d
index 092d39e..b5fc3d7 100644
--- a/ld/testsuite/ld-cris/tls-legd-16.d
+++ b/ld/testsuite/ld-cris/tls-legd-16.d
@@ -6,7 +6,7 @@
#source: tls-x.s
#source: tls-z.s
#source: tls-x1x2.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#objdump: -d -s -h -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-legd-17.d b/ld/testsuite/ld-cris/tls-legd-17.d
index 49f2d45..f7f4421 100644
--- a/ld/testsuite/ld-cris/tls-legd-17.d
+++ b/ld/testsuite/ld-cris/tls-legd-17.d
@@ -6,7 +6,7 @@
#source: tls-x.s
#source: tls-z.s
#source: tls-x1x2.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#objdump: -d -s -h -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-legdx-16.d b/ld/testsuite/ld-cris/tls-legdx-16.d
index badbeb3..11816cc 100644
--- a/ld/testsuite/ld-cris/tls-legdx-16.d
+++ b/ld/testsuite/ld-cris/tls-legdx-16.d
@@ -4,7 +4,7 @@
#source: tls-gd-3.s
#source: tls-legd-16.s
#source: tls-x1x2.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux tmpdir/tls-dso-xz-1.so --hash-style=sysv
#objdump: -s -h -t -T -R -r -p
diff --git a/ld/testsuite/ld-cris/tls-legdx-17.d b/ld/testsuite/ld-cris/tls-legdx-17.d
index 5b2c7ec..9eba531 100644
--- a/ld/testsuite/ld-cris/tls-legdx-17.d
+++ b/ld/testsuite/ld-cris/tls-legdx-17.d
@@ -4,7 +4,7 @@
#source: tls-gd-2.s --pic
#source: tls-ldgd-14.s --pic
#source: tls-x1x2.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux tmpdir/tls-dso-xz-1.so --hash-style=sysv
#objdump: -s -h -t -T -R -r -p
diff --git a/ld/testsuite/ld-cris/tls-leie-18.d b/ld/testsuite/ld-cris/tls-leie-18.d
index edff43c..2285f46 100644
--- a/ld/testsuite/ld-cris/tls-leie-18.d
+++ b/ld/testsuite/ld-cris/tls-leie-18.d
@@ -3,7 +3,7 @@
#source: tls-le-13s.s
#source: tls-ie-9.s --pic
#source: tls-x1x2.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#objdump: -d -s -h -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-leie-19.d b/ld/testsuite/ld-cris/tls-leie-19.d
index 859e2e6..09f5cf6 100644
--- a/ld/testsuite/ld-cris/tls-leie-19.d
+++ b/ld/testsuite/ld-cris/tls-leie-19.d
@@ -6,7 +6,7 @@
#source: tls-hx1x2.s
#source: tls-x.s
#source: tls-z.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#objdump: -d -s -h -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-local-54.d b/ld/testsuite/ld-cris/tls-local-54.d
index 0098e56..1209cfd 100644
--- a/ld/testsuite/ld-cris/tls-local-54.d
+++ b/ld/testsuite/ld-cris/tls-local-54.d
@@ -1,5 +1,5 @@
#source: tls-local-54.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -t -R -p -T
diff --git a/ld/testsuite/ld-cris/tls-local-57.d b/ld/testsuite/ld-cris/tls-local-57.d
index cce2486..ed74fe0 100644
--- a/ld/testsuite/ld-cris/tls-local-57.d
+++ b/ld/testsuite/ld-cris/tls-local-57.d
@@ -1,7 +1,7 @@
#source: start1.s
#source: tls-x.s
#source: tls-local-57.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-local-58.d b/ld/testsuite/ld-cris/tls-local-58.d
index d7926bd..e22b393 100644
--- a/ld/testsuite/ld-cris/tls-local-58.d
+++ b/ld/testsuite/ld-cris/tls-local-58.d
@@ -1,7 +1,7 @@
#source: start1.s
#source: tls-x.s
#source: tls-local-58.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-local-59.d b/ld/testsuite/ld-cris/tls-local-59.d
index c37584b..ee68c3a 100644
--- a/ld/testsuite/ld-cris/tls-local-59.d
+++ b/ld/testsuite/ld-cris/tls-local-59.d
@@ -1,7 +1,7 @@
#source: start1.s
#source: tls-x.s
#source: tls-local-59.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux
#objdump: -s -t -r -p
diff --git a/ld/testsuite/ld-cris/tls-local-60.d b/ld/testsuite/ld-cris/tls-local-60.d
index ce64203..acbed26 100644
--- a/ld/testsuite/ld-cris/tls-local-60.d
+++ b/ld/testsuite/ld-cris/tls-local-60.d
@@ -1,6 +1,6 @@
#source: tls-x.s
#source: tls-local-59.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux --shared --hash-style=sysv
#objdump: -s -t -r -p -R -T
diff --git a/ld/testsuite/ld-cris/tls-local-61.d b/ld/testsuite/ld-cris/tls-local-61.d
index c902a87..1a47880 100644
--- a/ld/testsuite/ld-cris/tls-local-61.d
+++ b/ld/testsuite/ld-cris/tls-local-61.d
@@ -1,5 +1,5 @@
#source: tls-local-59.s
-#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
+#as: --pic --no-underscore --emulation=criself -I$srcdir/$subdir
#ld: -m crislinux --shared --hash-style=sysv
#objdump: -s -t -r -p -R -T
diff --git a/ld/testsuite/ld-cris/tls-local-63.d b/ld/testsuite/ld-cris/tls-local-63.d
index 7fde60a..4dcdb2e 100644
--- a/ld/testsuite/ld-cris/tls-local-63.d
+++ b/ld/testsuite/ld-cris/tls-local-63.d
@@ -1,6 +1,6 @@
#source: tls-ie-8.s --pic
#source: tls-hx.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared --hash-style=sysv
#readelf: -a -x 6 -x 8 -x 5
diff --git a/ld/testsuite/ld-cris/tls-local-64.d b/ld/testsuite/ld-cris/tls-local-64.d
index ec0b0ea..38f90c8 100644
--- a/ld/testsuite/ld-cris/tls-local-64.d
+++ b/ld/testsuite/ld-cris/tls-local-64.d
@@ -1,7 +1,7 @@
#source: tls-ie-8.s --pic
#source: tls128.s
#source: tls-hx.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared --hash-style=sysv
#readelf: -a -x 6 -x 8 -x 5
diff --git a/ld/testsuite/ld-cris/tls-ok-30.d b/ld/testsuite/ld-cris/tls-ok-30.d
index b5f0f56..3e1cbcb 100644
--- a/ld/testsuite/ld-cris/tls-ok-30.d
+++ b/ld/testsuite/ld-cris/tls-ok-30.d
@@ -1,5 +1,5 @@
#source: tls-gdgotrelm.s --defsym r=8191
-#as: --no-underscore --em=criself --pic
+#as: --no-underscore --emulation=criself --pic
#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -j .got -R
diff --git a/ld/testsuite/ld-cris/tls-ok-32.d b/ld/testsuite/ld-cris/tls-ok-32.d
index 6f7dab0..64e4e07 100644
--- a/ld/testsuite/ld-cris/tls-ok-32.d
+++ b/ld/testsuite/ld-cris/tls-ok-32.d
@@ -1,5 +1,5 @@
#source: tls-dtprelm.s --defsym r=32767
-#as: --no-underscore --em=criself --pic
+#as: --no-underscore --emulation=criself --pic
#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -j .got -j .text -j .tdata -R
diff --git a/ld/testsuite/ld-cris/tls-ok-34.d b/ld/testsuite/ld-cris/tls-ok-34.d
index ec2f7ee..c5cf66f 100644
--- a/ld/testsuite/ld-cris/tls-ok-34.d
+++ b/ld/testsuite/ld-cris/tls-ok-34.d
@@ -1,5 +1,5 @@
#source: tls-gottprelm.s --defsym r=8189
-#as: --no-underscore --em=criself --pic
+#as: --no-underscore --emulation=criself --pic
#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -j .got -R
diff --git a/ld/testsuite/ld-cris/tls-ok-36.d b/ld/testsuite/ld-cris/tls-ok-36.d
index fcfecb9..fac6746 100644
--- a/ld/testsuite/ld-cris/tls-ok-36.d
+++ b/ld/testsuite/ld-cris/tls-ok-36.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: tls-tprelm.s --defsym r=32767
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux
#objdump: -s -j .got -j .text -j .tdata
diff --git a/ld/testsuite/ld-cris/tls-und-38.d b/ld/testsuite/ld-cris/tls-und-38.d
index fefe386..07c0662 100644
--- a/ld/testsuite/ld-cris/tls-und-38.d
+++ b/ld/testsuite/ld-cris/tls-und-38.d
@@ -1,5 +1,5 @@
#source: tls-gd-2.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared --hash-style=sysv
#readelf: -a -x 7
diff --git a/ld/testsuite/ld-cris/tls-und-42.d b/ld/testsuite/ld-cris/tls-und-42.d
index 6446077..b7309a7 100644
--- a/ld/testsuite/ld-cris/tls-und-42.d
+++ b/ld/testsuite/ld-cris/tls-und-42.d
@@ -1,5 +1,5 @@
#source: tls-ie-10.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared --hash-style=sysv
#readelf: -a -x 7
diff --git a/ld/testsuite/ld-cris/tls-und-46.d b/ld/testsuite/ld-cris/tls-und-46.d
index ab62cde..1088e42 100644
--- a/ld/testsuite/ld-cris/tls-und-46.d
+++ b/ld/testsuite/ld-cris/tls-und-46.d
@@ -1,5 +1,5 @@
#source: tls-gd-1.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared --hash-style=sysv
#readelf: -a -x 7
diff --git a/ld/testsuite/ld-cris/tls-und-50.d b/ld/testsuite/ld-cris/tls-und-50.d
index ed35e42..2b22a21 100644
--- a/ld/testsuite/ld-cris/tls-und-50.d
+++ b/ld/testsuite/ld-cris/tls-und-50.d
@@ -1,5 +1,5 @@
#source: tls-ie-8.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared --hash-style=sysv
#readelf: -a -x 7
diff --git a/ld/testsuite/ld-cris/undef1.d b/ld/testsuite/ld-cris/undef1.d
index cec00cb..7940c77 100644
--- a/ld/testsuite/ld-cris/undef1.d
+++ b/ld/testsuite/ld-cris/undef1.d
@@ -1,6 +1,6 @@
#source: dso-1.s
#source: gotrel1.s --pic
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux tmpdir/libdso-4.so
#objdump: -T
diff --git a/ld/testsuite/ld-cris/undef2.d b/ld/testsuite/ld-cris/undef2.d
index cd2c43e..a8e6e86 100644
--- a/ld/testsuite/ld-cris/undef2.d
+++ b/ld/testsuite/ld-cris/undef2.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: stabs1.s
#target: cris-*-*elf* cris-*-*aout*
-#as: --em=crisaout
+#as: --emulation=crisaout
#ld: -mcrisaout
#error: .o:/blah/foo.c:96:\(.*\): undefined reference to `globsym1'$
diff --git a/ld/testsuite/ld-cris/undef3.d b/ld/testsuite/ld-cris/undef3.d
index e21456b..92c348f 100644
--- a/ld/testsuite/ld-cris/undef3.d
+++ b/ld/testsuite/ld-cris/undef3.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: stabs1.s
#target: cris-*-*elf* cris-*-*aout*
-#as: --em=criself
+#as: --emulation=criself
#ld: -mcriself
#error: .o:/blah/foo.c:96:\(.*\): undefined reference to `globsym1'$
diff --git a/ld/testsuite/ld-cris/v10-v32.d b/ld/testsuite/ld-cris/v10-v32.d
index d692926..0c41946 100644
--- a/ld/testsuite/ld-cris/v10-v32.d
+++ b/ld/testsuite/ld-cris/v10-v32.d
@@ -1,7 +1,7 @@
# notarget: cris*-*-linux-gnu
# source: start1.s --march=v32
# source: move-1.s --march=v0_v10
-# as: --em=criself
+# as: --emulation=criself
# ld: -m criself
# error: contains non-CRIS-v32 code
diff --git a/ld/testsuite/ld-cris/v10-va.d b/ld/testsuite/ld-cris/v10-va.d
index c6db037..f5288bb 100644
--- a/ld/testsuite/ld-cris/v10-va.d
+++ b/ld/testsuite/ld-cris/v10-va.d
@@ -1,7 +1,7 @@
# notarget: cris*-*-linux-gnu
# source: start1.s --march=common_v10_v32
# source: move-1.s --march=v0_v10
-# as: --em=criself
+# as: --emulation=criself
# ld: -m criself
# objdump: -p
diff --git a/ld/testsuite/ld-cris/v32-ba-1.d b/ld/testsuite/ld-cris/v32-ba-1.d
index b4ce78d..24c9ed8 100644
--- a/ld/testsuite/ld-cris/v32-ba-1.d
+++ b/ld/testsuite/ld-cris/v32-ba-1.d
@@ -1,5 +1,5 @@
# notarget: cris*-*-linux-gnu
-# as: --march=v32 --em=criself
+# as: --march=v32 --emulation=criself
# ld: -m criself
# objdump: -d
diff --git a/ld/testsuite/ld-cris/v32-bin-1.d b/ld/testsuite/ld-cris/v32-bin-1.d
index 3a8714b..3eb94b7 100644
--- a/ld/testsuite/ld-cris/v32-bin-1.d
+++ b/ld/testsuite/ld-cris/v32-bin-1.d
@@ -1,5 +1,5 @@
#notarget: cris*-*-linux-gnu
-#as: --em=criself --march=v32
+#as: --emulation=criself --march=v32
#ld: -m criself --oformat binary --defsym ext1=0x4000 --defsym ext2=0x6000
#objdump: -s -b binary
diff --git a/ld/testsuite/ld-cris/v32-v10.d b/ld/testsuite/ld-cris/v32-v10.d
index a96120f..23995b2 100644
--- a/ld/testsuite/ld-cris/v32-v10.d
+++ b/ld/testsuite/ld-cris/v32-v10.d
@@ -1,7 +1,7 @@
# notarget: cris*-*-linux-gnu
# source: start1.s --march=v0_v10
# source: move-1.s --march=v32
-# as: --em=criself
+# as: --emulation=criself
# ld: -m criself
# error: contains CRIS v32 code
diff --git a/ld/testsuite/ld-cris/v32-va.d b/ld/testsuite/ld-cris/v32-va.d
index 526d3c3..28d1c9e 100644
--- a/ld/testsuite/ld-cris/v32-va.d
+++ b/ld/testsuite/ld-cris/v32-va.d
@@ -1,7 +1,7 @@
# notarget: cris*-*-linux-gnu
# source: start1.s --march=common_v10_v32
# source: move-1.s --march=v32
-# as: --em=criself
+# as: --emulation=criself
# ld: -m criself
# objdump: -p
diff --git a/ld/testsuite/ld-cris/va-v10.d b/ld/testsuite/ld-cris/va-v10.d
index d6bda58..94579f3 100644
--- a/ld/testsuite/ld-cris/va-v10.d
+++ b/ld/testsuite/ld-cris/va-v10.d
@@ -1,7 +1,7 @@
# notarget: cris*-*-linux-gnu
# source: start1.s --march=v0_v10
# source: move-1.s --march=common_v10_v32
-# as: --em=criself
+# as: --emulation=criself
# ld: -m criself
# objdump: -p
diff --git a/ld/testsuite/ld-cris/va-v32.d b/ld/testsuite/ld-cris/va-v32.d
index b598ff5..8c16b05 100644
--- a/ld/testsuite/ld-cris/va-v32.d
+++ b/ld/testsuite/ld-cris/va-v32.d
@@ -1,7 +1,7 @@
# notarget: cris*-*-linux-gnu
# source: start1.s --march=v32
# source: move-1.s --march=common_v10_v32
-# as: --em=criself
+# as: --emulation=criself
# ld: -m criself
# objdump: -p
diff --git a/ld/testsuite/ld-cris/warn1.d b/ld/testsuite/ld-cris/warn1.d
index ecdf19e..7ba9225 100644
--- a/ld/testsuite/ld-cris/warn1.d
+++ b/ld/testsuite/ld-cris/warn1.d
@@ -2,7 +2,7 @@
#source: globsym1ref.s
#source: globsymw1.s
#target: cris-*-*elf* cris-*-*aout*
-#as: --em=crisaout
+#as: --emulation=crisaout
#ld: -mcrisaout
#objdump: -p
# There should be no warning, since the symbol warned about is
diff --git a/ld/testsuite/ld-cris/warn2.d b/ld/testsuite/ld-cris/warn2.d
index 96f089e..dd48f8c 100644
--- a/ld/testsuite/ld-cris/warn2.d
+++ b/ld/testsuite/ld-cris/warn2.d
@@ -2,7 +2,7 @@
#source: globsym1ref.s
#source: globsymw1.s
#target: cris-*-*elf* cris-*-*aout*
-#as: --em=criself
+#as: --emulation=criself
#ld: -mcriself
#objdump: -p
# There should be no warning, since the symbol warned about is
diff --git a/ld/testsuite/ld-cris/warn3.d b/ld/testsuite/ld-cris/warn3.d
index 8cd1435..3f87fcc 100644
--- a/ld/testsuite/ld-cris/warn3.d
+++ b/ld/testsuite/ld-cris/warn3.d
@@ -2,7 +2,7 @@
#source: globsym1ref.s
#source: globsymw2.s
#target: cris-*-*elf* cris-*-*aout*
-#as: --em=crisaout
+#as: --emulation=crisaout
#ld: -mcrisaout
#warning: warning: isatty is not implemented, will always fail$
#objdump: -p
diff --git a/ld/testsuite/ld-cris/warn4.d b/ld/testsuite/ld-cris/warn4.d
index dc096b6..cc1ebb5 100644
--- a/ld/testsuite/ld-cris/warn4.d
+++ b/ld/testsuite/ld-cris/warn4.d
@@ -2,7 +2,7 @@
#source: globsym1ref.s
#source: globsymw2.s
#target: cris-*-*elf* cris-*-*aout*
-#as: --em=criself
+#as: --emulation=criself
#ld: -mcriself
#warning: warning: isatty is not implemented and will always fail$
#objdump: -p
diff --git a/ld/testsuite/ld-cris/weakhiddso.d b/ld/testsuite/ld-cris/weakhiddso.d
index f4776d6..41d21a7 100644
--- a/ld/testsuite/ld-cris/weakhiddso.d
+++ b/ld/testsuite/ld-cris/weakhiddso.d
@@ -1,5 +1,5 @@
#source: weakhid.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: --shared -m crislinux -z nocombreloc --hash-style=sysv
#objdump: -s -R -T
diff --git a/ld/testsuite/ld-cris/weakref1.d b/ld/testsuite/ld-cris/weakref1.d
index 6dab5e4..53697e2 100644
--- a/ld/testsuite/ld-cris/weakref1.d
+++ b/ld/testsuite/ld-cris/weakref1.d
@@ -1,5 +1,5 @@
#source: gotrel2.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: -m crislinux tmpdir/libdso-1.so
#objdump: -R
diff --git a/ld/testsuite/ld-cris/weakref2.d b/ld/testsuite/ld-cris/weakref2.d
index fa9689b..00ac443 100644
--- a/ld/testsuite/ld-cris/weakref2.d
+++ b/ld/testsuite/ld-cris/weakref2.d
@@ -1,5 +1,5 @@
#source: gotrel2.s
-#as: --pic --no-underscore --em=criself
+#as: --pic --no-underscore --emulation=criself
#ld: -m crislinux tmpdir/libdso-1.so --hash-style=sysv
#objdump: -s -j .got
diff --git a/ld/testsuite/ld-cris/weakref3.d b/ld/testsuite/ld-cris/weakref3.d
index 46ac80c..a4a55b4 100644
--- a/ld/testsuite/ld-cris/weakref3.d
+++ b/ld/testsuite/ld-cris/weakref3.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: expdref3.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --hash-style=sysv
#ld_after_inputfiles: tmpdir/libdso-15.so
#readelf: -a -x 10
diff --git a/ld/testsuite/ld-cris/weakref4.d b/ld/testsuite/ld-cris/weakref4.d
index 520191f..9012bdc 100644
--- a/ld/testsuite/ld-cris/weakref4.d
+++ b/ld/testsuite/ld-cris/weakref4.d
@@ -1,6 +1,6 @@
#source: start1.s
#source: expdref4.s
-#as: --no-underscore --em=criself
+#as: --no-underscore --emulation=criself
#ld: -m crislinux --hash-style=sysv
#ld_after_inputfiles: tmpdir/libdso-15.so
#readelf: -a -x 11
diff --git a/ld/testsuite/ld-elf/tbss4.d b/ld/testsuite/ld-elf/tbss4.d
new file mode 100644
index 0000000..336ed8f
--- /dev/null
+++ b/ld/testsuite/ld-elf/tbss4.d
@@ -0,0 +1,13 @@
+#ld: -e _start -Ttext=0x1000 -z max-page-size=0x1000 -z common-page-size=0x1000 -z noseparate-code
+#readelf: -lSW
+#target: *-linux* *-gnu*
+#notarget: hppa64-*-* ia64-*-*
+
+#...
+.* \.tbss +NOBITS +0+1014 +0+1014 +0+4 +0+ +WAT +0 +0 +4
+
+#...
+ +TLS +0x0*1014 +0x0+1014 +0x0+1014 +0x0+ +0x0+4 R +0x4
+#...
+.* \.tbss
+#pass
diff --git a/ld/testsuite/ld-elf/tbss4.s b/ld/testsuite/ld-elf/tbss4.s
new file mode 100644
index 0000000..f49491e
--- /dev/null
+++ b/ld/testsuite/ld-elf/tbss4.s
@@ -0,0 +1,25 @@
+# Writeable gcc_except_table is required in order to put this section after
+# the DATA_SEGMENT_ALIGN directive in the default linker script (and hence
+# in the same PT_LOAD as the PT_TLS segment, and hence so that the
+# gcc_except_table can affect the .tbss section location).
+ .section .gcc_except_table,"aw",%progbits
+# Alignment is needed -- otherwise gcc_except_table start position seems to
+# be adjusted so that the tbss section is fully aligned.
+ .balign 4
+ .ascii "Odd number of chars"
+
+ .section .tbss,"awT",%nobits
+ .balign 4
+ .type xyz, %object
+ .size xyz, 4
+xyz:
+ .zero 4
+
+ .data
+dataval:
+ .balign 4
+ .ascii "x"
+
+ .text
+ .global _start
+_start:
diff --git a/ld/testsuite/ld-elfvers/vers7.c b/ld/testsuite/ld-elfvers/vers7.c
index 54316c9..a4fb254 100644
--- a/ld/testsuite/ld-elfvers/vers7.c
+++ b/ld/testsuite/ld-elfvers/vers7.c
@@ -2,8 +2,8 @@
* Test program that goes with test7.so
*/
-extern int hide_a();
-extern int show_b();
+extern int hide_a(int e);
+extern int show_b(int e);
int
main()
diff --git a/ld/testsuite/ld-loongarch-elf/32_pcrel.s b/ld/testsuite/ld-loongarch-elf/32_pcrel.s
new file mode 100644
index 0000000..3ef16de
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/32_pcrel.s
@@ -0,0 +1,6 @@
+ .section sx,"a"
+x:
+ nop
+
+ .section sy,"a"
+ .4byte x-.
diff --git a/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp b/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
index 0295be8..e23cdc8 100644
--- a/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
+++ b/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
@@ -45,6 +45,7 @@ if [istarget "loongarch64-*-*"] {
run_dump_test "underflow_s_5_20"
run_dump_test "tls-le-norelax"
run_dump_test "tls-le-relax"
+ run_dump_test "relax-after-alignment"
run_dump_test "relax-medium-call"
run_dump_test "relax-medium-call-1"
run_dump_test "check_got_relax"
@@ -200,6 +201,8 @@ if [istarget "loongarch64-*-*"] {
run_dump_test "bad_pcrel20_s2_global"
run_dump_test "bad_pcrel20_s2_weak"
run_dump_test "weak-undef-hidden-shared"
+ run_dump_test "overflow_32_pcrel"
+ run_dump_test "underflow_32_pcrel"
}
if [check_pie_support] {
diff --git a/ld/testsuite/ld-loongarch-elf/overflow_32_pcrel.d b/ld/testsuite/ld-loongarch-elf/overflow_32_pcrel.d
new file mode 100644
index 0000000..154dac9
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/overflow_32_pcrel.d
@@ -0,0 +1,4 @@
+#source: 32_pcrel.s
+#as: -mthin-add-sub
+#ld: -shared --section-start=sx=0x80001000 --section-start=sy=0x1000
+#error: .*relocation truncated to fit: R_LARCH_32_PCREL against `x'
diff --git a/ld/testsuite/ld-loongarch-elf/relax-after-alignment.d b/ld/testsuite/ld-loongarch-elf/relax-after-alignment.d
new file mode 100644
index 0000000..08def25
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relax-after-alignment.d
@@ -0,0 +1,31 @@
+#name: additional relaxation chances after alignment processing
+#as:
+#ld: --defsym _start=0
+#objdump: -d --no-show-raw-insn
+#xfail: *-*-*
+
+.*:\s+file format .*
+
+
+Disassembly of section \.text:
+
+0000000120000400 <before>:
+\s*120000400:\s+pcalau12i\s+\$t0, 512
+\s*[0-9a-f]+:\s+addi\.d\s+\$t0, \$t0, 1024
+\s*[0-9a-f]+:\s+pcaddi\s+\$t0, 524286
+\s*[0-9a-f]+:\s+nop\s*
+\s*\.\.\.
+\s*120000c00:\s+pcaddi\s+\$t0, 523776
+\s*\.\.\.
+
+0000000120200400 <target>:
+\s*120200400:\s+break\s+0x0
+
+0000000120200404 <after>:
+\s*\.\.\.
+\s*1203ffbfc:\s+pcaddi\s+\$t0, -523775
+\s*\.\.\.
+\s*120400400:\s+pcaddi\s+\$t0, -524288
+\s*[0-9a-f]+:\s+nop\s*
+\s*[0-9a-f]+:\s+pcalau12i\s+\$t0, -512
+\s*[0-9a-f]+:\s+addi\.d\s+\$t0, \$t0, 1024
diff --git a/ld/testsuite/ld-loongarch-elf/relax-after-alignment.s b/ld/testsuite/ld-loongarch-elf/relax-after-alignment.s
new file mode 100644
index 0000000..24d29ec
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relax-after-alignment.s
@@ -0,0 +1,49 @@
+# 0x0 pre-relax, 0x400 post-relax
+# all addresses are additionally offset by 0x120000000 without `ld -shared`
+before:
+ la.pcrel $t0, target # too far; should stay as pcalau12i + addi.d
+ la.pcrel $t0, target # furthest reach of relax pass 2
+
+# 0x10 pre-relax, 0x410 post-relax
+.rept 508
+.word 0
+.endr
+
+# 0x800 {pre,post}-relax
+# 255 nops + R_LARCH_ALIGN before relaxation
+# none of the aligning nops should remain after relax pass 1
+.p2align 10
+
+# 0xbfc pre-relax, 0xc00 post-relax
+ la.pcrel $t0, target # should become single pcaddi in relax pass 0
+
+# 0xc04 {pre,post}-relax
+.rept 523775
+.word 0
+.endr
+
+# 0x200400 {pre,post}-relax
+target:
+ break 0
+
+# 0x200404 {pre,post}-relax
+after:
+.rept 523774
+.word 0
+.endr
+
+# 0x3ffbfc {pre,post}-relax
+ la.pcrel $t0, target # should become single pcaddi in relax pass 0
+
+# 255 nops + R_LARCH_ALIGN before relaxation
+# none of the aligning nops should remain after relax pass 1
+.p2align 10
+
+# 0x400000 pre-relax, 0x3ffc00 post-relax
+.rept 512
+.word 0
+.endr
+
+# 0x400800 pre-relax, 0x400400 post-relax
+ la.pcrel $t0, target # furthest reach of relax pass 2
+ la.pcrel $t0, target # too far; should stay as pcalau12i + addi.d
diff --git a/ld/testsuite/ld-loongarch-elf/underflow_32_pcrel.d b/ld/testsuite/ld-loongarch-elf/underflow_32_pcrel.d
new file mode 100644
index 0000000..a5396bc
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/underflow_32_pcrel.d
@@ -0,0 +1,4 @@
+#source: 32_pcrel.s
+#as: -mthin-add-sub
+#ld: -shared --section-start=sx=0x1000 --section-start=sy=0x80001001
+#error: .*relocation truncated to fit: R_LARCH_32_PCREL against `x'
diff --git a/ld/testsuite/ld-mips-elf/micromips-hilo-n64.d b/ld/testsuite/ld-mips-elf/micromips-hilo-n64.d
new file mode 100644
index 0000000..b3d34a1
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/micromips-hilo-n64.d
@@ -0,0 +1,662 @@
+#name: R_MICROMIPS_HI16 and R_MICROMIPS_LO16 relocs (n64)
+#source: ../../../gas/testsuite/gas/mips/mips-hilo-n64.s
+#source: mips-hilo.s
+#as: -mmicromips -march=mips64r2
+#objdump: -d
+#ld: -Tmips-hilo.ld -e 0x500000 -N
+#notarget: mips*el-ps2-elf*
+
+.*: file format (:?elf.*mips.*|srec)
+
+Disassembly of section \.(:?text|sec1):
+
+0*500000 <[^>]*>:
+ *500000: 41a1 0000 lui at,0x0
+ *500004: 41a4 0000 lui a0,0x0
+ *500008: 3021 0000 addiu at,at,0
+ *50000c: 3084 0000 addiu a0,a0,0
+ *500010: 5821 0008 dsll32 at,at,0x0
+ *500014: 5824 2150 daddu a0,a0,at
+ *500018: 41a1 0000 lui at,0x0
+ *50001c: 41a4 0065 lui a0,0x65
+ *500020: 3021 0000 addiu at,at,0
+ *500024: 3084 4320 addiu a0,a0,17184
+ *500028: 5821 0008 dsll32 at,at,0x0
+ *50002c: 5824 2150 daddu a0,a0,at
+ *500030: 41a1 0000 lui at,0x0
+ *500034: 41a4 0065 lui a0,0x65
+ *500038: 3021 0000 addiu at,at,0
+ *50003c: 3084 4324 addiu a0,a0,17188
+ *500040: 5821 0008 dsll32 at,at,0x0
+ *500044: 5824 2150 daddu a0,a0,at
+ *500048: 41a1 0000 lui at,0x0
+ *50004c: 41a4 0065 lui a0,0x65
+ *500050: 3021 0000 addiu at,at,0
+ *500054: 3084 4330 addiu a0,a0,17200
+ *500058: 5821 0008 dsll32 at,at,0x0
+ *50005c: 5824 2150 daddu a0,a0,at
+ *500060: 41a1 0000 lui at,0x0
+ *500064: 41a4 0065 lui a0,0x65
+ *500068: 3021 0000 addiu at,at,0
+ *50006c: 3084 4720 addiu a0,a0,18208
+ *500070: 5821 0008 dsll32 at,at,0x0
+ *500074: 5824 2150 daddu a0,a0,at
+ *500078: 41a1 0000 lui at,0x0
+ *50007c: 41a4 0076 lui a0,0x76
+ *500080: 3021 0000 addiu at,at,0
+ *500084: 3084 5820 addiu a0,a0,22560
+ *500088: 5821 0008 dsll32 at,at,0x0
+ *50008c: 5824 2150 daddu a0,a0,at
+ *500090: 41a1 0000 lui at,0x0
+ *500094: 41a4 0076 lui a0,0x76
+ *500098: 3021 0000 addiu at,at,0
+ *50009c: 3084 5c08 addiu a0,a0,23560
+ *5000a0: 5821 0008 dsll32 at,at,0x0
+ *5000a4: 5824 2150 daddu a0,a0,at
+ *5000a8: 41a1 0000 lui at,0x0
+ *5000ac: 41a4 0076 lui a0,0x76
+ *5000b0: 3021 0000 addiu at,at,0
+ *5000b4: 3084 5430 addiu a0,a0,21552
+ *5000b8: 5821 0008 dsll32 at,at,0x0
+ *5000bc: 5824 2150 daddu a0,a0,at
+ *5000c0: 41a1 0000 lui at,0x0
+ *5000c4: 41a4 0076 lui a0,0x76
+ *5000c8: 3021 0000 addiu at,at,0
+ *5000cc: 3084 5c09 addiu a0,a0,23561
+ *5000d0: 5821 0008 dsll32 at,at,0x0
+ *5000d4: 5824 2150 daddu a0,a0,at
+ *5000d8: 41a1 0000 lui at,0x0
+ *5000dc: 41a4 0000 lui a0,0x0
+ *5000e0: 3021 0000 addiu at,at,0
+ *5000e4: 3084 0001 addiu a0,a0,1
+ *5000e8: 5821 0008 dsll32 at,at,0x0
+ *5000ec: 5824 2150 daddu a0,a0,at
+ *5000f0: 41a1 0000 lui at,0x0
+ *5000f4: 41a4 0065 lui a0,0x65
+ *5000f8: 3021 0000 addiu at,at,0
+ *5000fc: 3084 4321 addiu a0,a0,17185
+ *500100: 5821 0008 dsll32 at,at,0x0
+ *500104: 5824 2150 daddu a0,a0,at
+ *500108: 41a1 0000 lui at,0x0
+ *50010c: 41a4 0065 lui a0,0x65
+ *500110: 3021 0000 addiu at,at,0
+ *500114: 3084 4325 addiu a0,a0,17189
+ *500118: 5821 0008 dsll32 at,at,0x0
+ *50011c: 5824 2150 daddu a0,a0,at
+ *500120: 41a1 0000 lui at,0x0
+ *500124: 41a4 0065 lui a0,0x65
+ *500128: 3021 0000 addiu at,at,0
+ *50012c: 3084 4331 addiu a0,a0,17201
+ *500130: 5821 0008 dsll32 at,at,0x0
+ *500134: 5824 2150 daddu a0,a0,at
+ *500138: 41a1 0000 lui at,0x0
+ *50013c: 41a4 0065 lui a0,0x65
+ *500140: 3021 0000 addiu at,at,0
+ *500144: 3084 4721 addiu a0,a0,18209
+ *500148: 5821 0008 dsll32 at,at,0x0
+ *50014c: 5824 2150 daddu a0,a0,at
+ *500150: 41a1 0000 lui at,0x0
+ *500154: 41a4 0076 lui a0,0x76
+ *500158: 3021 0000 addiu at,at,0
+ *50015c: 3084 5821 addiu a0,a0,22561
+ *500160: 5821 0008 dsll32 at,at,0x0
+ *500164: 5824 2150 daddu a0,a0,at
+ *500168: 41a1 0000 lui at,0x0
+ *50016c: 41a4 0076 lui a0,0x76
+ *500170: 3021 0000 addiu at,at,0
+ *500174: 3084 5c09 addiu a0,a0,23561
+ *500178: 5821 0008 dsll32 at,at,0x0
+ *50017c: 5824 2150 daddu a0,a0,at
+ *500180: 41a1 0000 lui at,0x0
+ *500184: 41a4 0076 lui a0,0x76
+ *500188: 3021 0000 addiu at,at,0
+ *50018c: 3084 5431 addiu a0,a0,21553
+ *500190: 5821 0008 dsll32 at,at,0x0
+ *500194: 5824 2150 daddu a0,a0,at
+ *500198: 41a1 0000 lui at,0x0
+ *50019c: 41a4 0076 lui a0,0x76
+ *5001a0: 3021 0000 addiu at,at,0
+ *5001a4: 3084 5c0a addiu a0,a0,23562
+ *5001a8: 5821 0008 dsll32 at,at,0x0
+ *5001ac: 5824 2150 daddu a0,a0,at
+ *5001b0: 41a1 0001 lui at,0x1
+ *5001b4: 41a4 8001 lui a0,0x8001
+ *5001b8: 3021 8001 addiu at,at,-32767
+ *5001bc: 3084 8000 addiu a0,a0,-32768
+ *5001c0: 5821 0008 dsll32 at,at,0x0
+ *5001c4: 5824 2150 daddu a0,a0,at
+ *5001c8: 41a1 0001 lui at,0x1
+ *5001cc: 41a4 8066 lui a0,0x8066
+ *5001d0: 3021 8001 addiu at,at,-32767
+ *5001d4: 3084 c320 addiu a0,a0,-15584
+ *5001d8: 5821 0008 dsll32 at,at,0x0
+ *5001dc: 5824 2150 daddu a0,a0,at
+ *5001e0: 41a1 0001 lui at,0x1
+ *5001e4: 41a4 8066 lui a0,0x8066
+ *5001e8: 3021 8001 addiu at,at,-32767
+ *5001ec: 3084 c324 addiu a0,a0,-15580
+ *5001f0: 5821 0008 dsll32 at,at,0x0
+ *5001f4: 5824 2150 daddu a0,a0,at
+ *5001f8: 41a1 0001 lui at,0x1
+ *5001fc: 41a4 8066 lui a0,0x8066
+ *500200: 3021 8001 addiu at,at,-32767
+ *500204: 3084 c330 addiu a0,a0,-15568
+ *500208: 5821 0008 dsll32 at,at,0x0
+ *50020c: 5824 2150 daddu a0,a0,at
+ *500210: 41a1 0001 lui at,0x1
+ *500214: 41a4 8066 lui a0,0x8066
+ *500218: 3021 8001 addiu at,at,-32767
+ *50021c: 3084 c720 addiu a0,a0,-14560
+ *500220: 5821 0008 dsll32 at,at,0x0
+ *500224: 5824 2150 daddu a0,a0,at
+ *500228: 41a1 0001 lui at,0x1
+ *50022c: 41a4 8077 lui a0,0x8077
+ *500230: 3021 8001 addiu at,at,-32767
+ *500234: 3084 d820 addiu a0,a0,-10208
+ *500238: 5821 0008 dsll32 at,at,0x0
+ *50023c: 5824 2150 daddu a0,a0,at
+ *500240: 41a1 0001 lui at,0x1
+ *500244: 41a4 8077 lui a0,0x8077
+ *500248: 3021 8001 addiu at,at,-32767
+ *50024c: 3084 dc08 addiu a0,a0,-9208
+ *500250: 5821 0008 dsll32 at,at,0x0
+ *500254: 5824 2150 daddu a0,a0,at
+ *500258: 41a1 0001 lui at,0x1
+ *50025c: 41a4 8077 lui a0,0x8077
+ *500260: 3021 8001 addiu at,at,-32767
+ *500264: 3084 d430 addiu a0,a0,-11216
+ *500268: 5821 0008 dsll32 at,at,0x0
+ *50026c: 5824 2150 daddu a0,a0,at
+ *500270: 41a1 0001 lui at,0x1
+ *500274: 41a4 8077 lui a0,0x8077
+ *500278: 3021 8001 addiu at,at,-32767
+ *50027c: 3084 dc09 addiu a0,a0,-9207
+ *500280: 5821 0008 dsll32 at,at,0x0
+ *500284: 5824 2150 daddu a0,a0,at
+ *500288: 41a1 0000 lui at,0x0
+ *50028c: 41a4 8000 lui a0,0x8000
+ *500290: 3021 8000 addiu at,at,-32768
+ *500294: 3084 8000 addiu a0,a0,-32768
+ *500298: 5821 0008 dsll32 at,at,0x0
+ *50029c: 5824 2150 daddu a0,a0,at
+ *5002a0: 41a1 0000 lui at,0x0
+ *5002a4: 41a4 8065 lui a0,0x8065
+ *5002a8: 3021 8000 addiu at,at,-32768
+ *5002ac: 3084 c320 addiu a0,a0,-15584
+ *5002b0: 5821 0008 dsll32 at,at,0x0
+ *5002b4: 5824 2150 daddu a0,a0,at
+ *5002b8: 41a1 0000 lui at,0x0
+ *5002bc: 41a4 8065 lui a0,0x8065
+ *5002c0: 3021 8000 addiu at,at,-32768
+ *5002c4: 3084 c324 addiu a0,a0,-15580
+ *5002c8: 5821 0008 dsll32 at,at,0x0
+ *5002cc: 5824 2150 daddu a0,a0,at
+ *5002d0: 41a1 0000 lui at,0x0
+ *5002d4: 41a4 8065 lui a0,0x8065
+ *5002d8: 3021 8000 addiu at,at,-32768
+ *5002dc: 3084 c330 addiu a0,a0,-15568
+ *5002e0: 5821 0008 dsll32 at,at,0x0
+ *5002e4: 5824 2150 daddu a0,a0,at
+ *5002e8: 41a1 0000 lui at,0x0
+ *5002ec: 41a4 8065 lui a0,0x8065
+ *5002f0: 3021 8000 addiu at,at,-32768
+ *5002f4: 3084 c720 addiu a0,a0,-14560
+ *5002f8: 5821 0008 dsll32 at,at,0x0
+ *5002fc: 5824 2150 daddu a0,a0,at
+ *500300: 41a1 0000 lui at,0x0
+ *500304: 41a4 8076 lui a0,0x8076
+ *500308: 3021 8000 addiu at,at,-32768
+ *50030c: 3084 d820 addiu a0,a0,-10208
+ *500310: 5821 0008 dsll32 at,at,0x0
+ *500314: 5824 2150 daddu a0,a0,at
+ *500318: 41a1 0000 lui at,0x0
+ *50031c: 41a4 8076 lui a0,0x8076
+ *500320: 3021 8000 addiu at,at,-32768
+ *500324: 3084 dc08 addiu a0,a0,-9208
+ *500328: 5821 0008 dsll32 at,at,0x0
+ *50032c: 5824 2150 daddu a0,a0,at
+ *500330: 41a1 0000 lui at,0x0
+ *500334: 41a4 8076 lui a0,0x8076
+ *500338: 3021 8000 addiu at,at,-32768
+ *50033c: 3084 d430 addiu a0,a0,-11216
+ *500340: 5821 0008 dsll32 at,at,0x0
+ *500344: 5824 2150 daddu a0,a0,at
+ *500348: 41a1 0000 lui at,0x0
+ *50034c: 41a4 8076 lui a0,0x8076
+ *500350: 3021 8000 addiu at,at,-32768
+ *500354: 3084 dc09 addiu a0,a0,-9207
+ *500358: 5821 0008 dsll32 at,at,0x0
+ *50035c: 5824 2150 daddu a0,a0,at
+ *500360: 41a1 0001 lui at,0x1
+ *500364: 41a4 0001 lui a0,0x1
+ *500368: 3021 0001 addiu at,at,1
+ *50036c: 3084 0000 addiu a0,a0,0
+ *500370: 5821 0008 dsll32 at,at,0x0
+ *500374: 5824 2150 daddu a0,a0,at
+ *500378: 41a1 0001 lui at,0x1
+ *50037c: 41a4 0066 lui a0,0x66
+ *500380: 3021 0001 addiu at,at,1
+ *500384: 3084 4320 addiu a0,a0,17184
+ *500388: 5821 0008 dsll32 at,at,0x0
+ *50038c: 5824 2150 daddu a0,a0,at
+ *500390: 41a1 0001 lui at,0x1
+ *500394: 41a4 0066 lui a0,0x66
+ *500398: 3021 0001 addiu at,at,1
+ *50039c: 3084 4324 addiu a0,a0,17188
+ *5003a0: 5821 0008 dsll32 at,at,0x0
+ *5003a4: 5824 2150 daddu a0,a0,at
+ *5003a8: 41a1 0001 lui at,0x1
+ *5003ac: 41a4 0066 lui a0,0x66
+ *5003b0: 3021 0001 addiu at,at,1
+ *5003b4: 3084 4330 addiu a0,a0,17200
+ *5003b8: 5821 0008 dsll32 at,at,0x0
+ *5003bc: 5824 2150 daddu a0,a0,at
+ *5003c0: 41a1 0001 lui at,0x1
+ *5003c4: 41a4 0066 lui a0,0x66
+ *5003c8: 3021 0001 addiu at,at,1
+ *5003cc: 3084 4720 addiu a0,a0,18208
+ *5003d0: 5821 0008 dsll32 at,at,0x0
+ *5003d4: 5824 2150 daddu a0,a0,at
+ *5003d8: 41a1 0001 lui at,0x1
+ *5003dc: 41a4 0077 lui a0,0x77
+ *5003e0: 3021 0001 addiu at,at,1
+ *5003e4: 3084 5820 addiu a0,a0,22560
+ *5003e8: 5821 0008 dsll32 at,at,0x0
+ *5003ec: 5824 2150 daddu a0,a0,at
+ *5003f0: 41a1 0001 lui at,0x1
+ *5003f4: 41a4 0077 lui a0,0x77
+ *5003f8: 3021 0001 addiu at,at,1
+ *5003fc: 3084 5c08 addiu a0,a0,23560
+ *500400: 5821 0008 dsll32 at,at,0x0
+ *500404: 5824 2150 daddu a0,a0,at
+ *500408: 41a1 0001 lui at,0x1
+ *50040c: 41a4 0077 lui a0,0x77
+ *500410: 3021 0001 addiu at,at,1
+ *500414: 3084 5430 addiu a0,a0,21552
+ *500418: 5821 0008 dsll32 at,at,0x0
+ *50041c: 5824 2150 daddu a0,a0,at
+ *500420: 41a1 0001 lui at,0x1
+ *500424: 41a4 0077 lui a0,0x77
+ *500428: 3021 0001 addiu at,at,1
+ *50042c: 3084 5c09 addiu a0,a0,23561
+ *500430: 5821 0008 dsll32 at,at,0x0
+ *500434: 5824 2150 daddu a0,a0,at
+ *500438: 41a1 0002 lui at,0x2
+ *50043c: 41a4 0002 lui a0,0x2
+ *500440: 3021 a5a5 addiu at,at,-23131
+ *500444: 3084 a5a5 addiu a0,a0,-23131
+ *500448: 5821 0008 dsll32 at,at,0x0
+ *50044c: 5824 2150 daddu a0,a0,at
+ *500450: 41a1 0002 lui at,0x2
+ *500454: 41a4 0067 lui a0,0x67
+ *500458: 3021 a5a5 addiu at,at,-23131
+ *50045c: 3084 e8c5 addiu a0,a0,-5947
+ *500460: 5821 0008 dsll32 at,at,0x0
+ *500464: 5824 2150 daddu a0,a0,at
+ *500468: 41a1 0002 lui at,0x2
+ *50046c: 41a4 0067 lui a0,0x67
+ *500470: 3021 a5a5 addiu at,at,-23131
+ *500474: 3084 e8c9 addiu a0,a0,-5943
+ *500478: 5821 0008 dsll32 at,at,0x0
+ *50047c: 5824 2150 daddu a0,a0,at
+ *500480: 41a1 0002 lui at,0x2
+ *500484: 41a4 0067 lui a0,0x67
+ *500488: 3021 a5a5 addiu at,at,-23131
+ *50048c: 3084 e8d5 addiu a0,a0,-5931
+ *500490: 5821 0008 dsll32 at,at,0x0
+ *500494: 5824 2150 daddu a0,a0,at
+ *500498: 41a1 0002 lui at,0x2
+ *50049c: 41a4 0067 lui a0,0x67
+ *5004a0: 3021 a5a5 addiu at,at,-23131
+ *5004a4: 3084 ecc5 addiu a0,a0,-4923
+ *5004a8: 5821 0008 dsll32 at,at,0x0
+ *5004ac: 5824 2150 daddu a0,a0,at
+ *5004b0: 41a1 0002 lui at,0x2
+ *5004b4: 41a4 0078 lui a0,0x78
+ *5004b8: 3021 a5a5 addiu at,at,-23131
+ *5004bc: 3084 fdc5 addiu a0,a0,-571
+ *5004c0: 5821 0008 dsll32 at,at,0x0
+ *5004c4: 5824 2150 daddu a0,a0,at
+ *5004c8: 41a1 0002 lui at,0x2
+ *5004cc: 41a4 0078 lui a0,0x78
+ *5004d0: 3021 a5a5 addiu at,at,-23131
+ *5004d4: 3084 01ad addiu a0,a0,429
+ *5004d8: 5821 0008 dsll32 at,at,0x0
+ *5004dc: 5824 2150 daddu a0,a0,at
+ *5004e0: 41a1 0002 lui at,0x2
+ *5004e4: 41a4 0078 lui a0,0x78
+ *5004e8: 3021 a5a5 addiu at,at,-23131
+ *5004ec: 3084 f9d5 addiu a0,a0,-1579
+ *5004f0: 5821 0008 dsll32 at,at,0x0
+ *5004f4: 5824 2150 daddu a0,a0,at
+ *5004f8: 41a1 0002 lui at,0x2
+ *5004fc: 41a4 0078 lui a0,0x78
+ *500500: 3021 a5a5 addiu at,at,-23131
+ *500504: 3084 01ae addiu a0,a0,430
+ *500508: 5821 0008 dsll32 at,at,0x0
+ *50050c: 5824 2150 daddu a0,a0,at
+ *500510: 41a1 0000 lui at,0x0
+ *500514: 41a5 0000 lui a1,0x0
+ *500518: 3021 0000 addiu at,at,0
+ *50051c: 5821 0008 dsll32 at,at,0x0
+ *500520: 5825 2950 daddu a1,a1,at
+ *500524: fc85 0000 lw a0,0\(a1\)
+ *500528: 41a1 0000 lui at,0x0
+ *50052c: 41a5 0065 lui a1,0x65
+ *500530: 3021 0000 addiu at,at,0
+ *500534: 5821 0008 dsll32 at,at,0x0
+ *500538: 5825 2950 daddu a1,a1,at
+ *50053c: fc85 4320 lw a0,17184\(a1\)
+ *500540: 41a1 0000 lui at,0x0
+ *500544: 41a5 0065 lui a1,0x65
+ *500548: 3021 0000 addiu at,at,0
+ *50054c: 5821 0008 dsll32 at,at,0x0
+ *500550: 5825 2950 daddu a1,a1,at
+ *500554: fc85 4324 lw a0,17188\(a1\)
+ *500558: 41a1 0000 lui at,0x0
+ *50055c: 41a5 0065 lui a1,0x65
+ *500560: 3021 0000 addiu at,at,0
+ *500564: 5821 0008 dsll32 at,at,0x0
+ *500568: 5825 2950 daddu a1,a1,at
+ *50056c: fc85 4330 lw a0,17200\(a1\)
+ *500570: 41a1 0000 lui at,0x0
+ *500574: 41a5 0065 lui a1,0x65
+ *500578: 3021 0000 addiu at,at,0
+ *50057c: 5821 0008 dsll32 at,at,0x0
+ *500580: 5825 2950 daddu a1,a1,at
+ *500584: fc85 4720 lw a0,18208\(a1\)
+ *500588: 41a1 0000 lui at,0x0
+ *50058c: 41a5 0076 lui a1,0x76
+ *500590: 3021 0000 addiu at,at,0
+ *500594: 5821 0008 dsll32 at,at,0x0
+ *500598: 5825 2950 daddu a1,a1,at
+ *50059c: fc85 5820 lw a0,22560\(a1\)
+ *5005a0: 41a1 0000 lui at,0x0
+ *5005a4: 41a5 0076 lui a1,0x76
+ *5005a8: 3021 0000 addiu at,at,0
+ *5005ac: 5821 0008 dsll32 at,at,0x0
+ *5005b0: 5825 2950 daddu a1,a1,at
+ *5005b4: fc85 5c08 lw a0,23560\(a1\)
+ *5005b8: 41a1 0000 lui at,0x0
+ *5005bc: 41a5 0076 lui a1,0x76
+ *5005c0: 3021 0000 addiu at,at,0
+ *5005c4: 5821 0008 dsll32 at,at,0x0
+ *5005c8: 5825 2950 daddu a1,a1,at
+ *5005cc: fc85 5430 lw a0,21552\(a1\)
+ *5005d0: 41a1 0000 lui at,0x0
+ *5005d4: 41a5 0076 lui a1,0x76
+ *5005d8: 3021 0000 addiu at,at,0
+ *5005dc: 5821 0008 dsll32 at,at,0x0
+ *5005e0: 5825 2950 daddu a1,a1,at
+ *5005e4: fc85 5c09 lw a0,23561\(a1\)
+ *5005e8: 41a1 0000 lui at,0x0
+ *5005ec: 41a5 0000 lui a1,0x0
+ *5005f0: 3021 0000 addiu at,at,0
+ *5005f4: 5821 0008 dsll32 at,at,0x0
+ *5005f8: 5825 2950 daddu a1,a1,at
+ *5005fc: fc85 0001 lw a0,1\(a1\)
+ *500600: 41a1 0000 lui at,0x0
+ *500604: 41a5 0065 lui a1,0x65
+ *500608: 3021 0000 addiu at,at,0
+ *50060c: 5821 0008 dsll32 at,at,0x0
+ *500610: 5825 2950 daddu a1,a1,at
+ *500614: fc85 4321 lw a0,17185\(a1\)
+ *500618: 41a1 0000 lui at,0x0
+ *50061c: 41a5 0065 lui a1,0x65
+ *500620: 3021 0000 addiu at,at,0
+ *500624: 5821 0008 dsll32 at,at,0x0
+ *500628: 5825 2950 daddu a1,a1,at
+ *50062c: fc85 4325 lw a0,17189\(a1\)
+ *500630: 41a1 0000 lui at,0x0
+ *500634: 41a5 0065 lui a1,0x65
+ *500638: 3021 0000 addiu at,at,0
+ *50063c: 5821 0008 dsll32 at,at,0x0
+ *500640: 5825 2950 daddu a1,a1,at
+ *500644: fc85 4331 lw a0,17201\(a1\)
+ *500648: 41a1 0000 lui at,0x0
+ *50064c: 41a5 0065 lui a1,0x65
+ *500650: 3021 0000 addiu at,at,0
+ *500654: 5821 0008 dsll32 at,at,0x0
+ *500658: 5825 2950 daddu a1,a1,at
+ *50065c: fc85 4721 lw a0,18209\(a1\)
+ *500660: 41a1 0000 lui at,0x0
+ *500664: 41a5 0076 lui a1,0x76
+ *500668: 3021 0000 addiu at,at,0
+ *50066c: 5821 0008 dsll32 at,at,0x0
+ *500670: 5825 2950 daddu a1,a1,at
+ *500674: fc85 5821 lw a0,22561\(a1\)
+ *500678: 41a1 0000 lui at,0x0
+ *50067c: 41a5 0076 lui a1,0x76
+ *500680: 3021 0000 addiu at,at,0
+ *500684: 5821 0008 dsll32 at,at,0x0
+ *500688: 5825 2950 daddu a1,a1,at
+ *50068c: fc85 5c09 lw a0,23561\(a1\)
+ *500690: 41a1 0000 lui at,0x0
+ *500694: 41a5 0076 lui a1,0x76
+ *500698: 3021 0000 addiu at,at,0
+ *50069c: 5821 0008 dsll32 at,at,0x0
+ *5006a0: 5825 2950 daddu a1,a1,at
+ *5006a4: fc85 5431 lw a0,21553\(a1\)
+ *5006a8: 41a1 0000 lui at,0x0
+ *5006ac: 41a5 0076 lui a1,0x76
+ *5006b0: 3021 0000 addiu at,at,0
+ *5006b4: 5821 0008 dsll32 at,at,0x0
+ *5006b8: 5825 2950 daddu a1,a1,at
+ *5006bc: fc85 5c0a lw a0,23562\(a1\)
+ *5006c0: 41a1 0001 lui at,0x1
+ *5006c4: 41a5 8001 lui a1,0x8001
+ *5006c8: 3021 8001 addiu at,at,-32767
+ *5006cc: 5821 0008 dsll32 at,at,0x0
+ *5006d0: 5825 2950 daddu a1,a1,at
+ *5006d4: fc85 8000 lw a0,-32768\(a1\)
+ *5006d8: 41a1 0001 lui at,0x1
+ *5006dc: 41a5 8066 lui a1,0x8066
+ *5006e0: 3021 8001 addiu at,at,-32767
+ *5006e4: 5821 0008 dsll32 at,at,0x0
+ *5006e8: 5825 2950 daddu a1,a1,at
+ *5006ec: fc85 c320 lw a0,-15584\(a1\)
+ *5006f0: 41a1 0001 lui at,0x1
+ *5006f4: 41a5 8066 lui a1,0x8066
+ *5006f8: 3021 8001 addiu at,at,-32767
+ *5006fc: 5821 0008 dsll32 at,at,0x0
+ *500700: 5825 2950 daddu a1,a1,at
+ *500704: fc85 c324 lw a0,-15580\(a1\)
+ *500708: 41a1 0001 lui at,0x1
+ *50070c: 41a5 8066 lui a1,0x8066
+ *500710: 3021 8001 addiu at,at,-32767
+ *500714: 5821 0008 dsll32 at,at,0x0
+ *500718: 5825 2950 daddu a1,a1,at
+ *50071c: fc85 c330 lw a0,-15568\(a1\)
+ *500720: 41a1 0001 lui at,0x1
+ *500724: 41a5 8066 lui a1,0x8066
+ *500728: 3021 8001 addiu at,at,-32767
+ *50072c: 5821 0008 dsll32 at,at,0x0
+ *500730: 5825 2950 daddu a1,a1,at
+ *500734: fc85 c720 lw a0,-14560\(a1\)
+ *500738: 41a1 0001 lui at,0x1
+ *50073c: 41a5 8077 lui a1,0x8077
+ *500740: 3021 8001 addiu at,at,-32767
+ *500744: 5821 0008 dsll32 at,at,0x0
+ *500748: 5825 2950 daddu a1,a1,at
+ *50074c: fc85 d820 lw a0,-10208\(a1\)
+ *500750: 41a1 0001 lui at,0x1
+ *500754: 41a5 8077 lui a1,0x8077
+ *500758: 3021 8001 addiu at,at,-32767
+ *50075c: 5821 0008 dsll32 at,at,0x0
+ *500760: 5825 2950 daddu a1,a1,at
+ *500764: fc85 dc08 lw a0,-9208\(a1\)
+ *500768: 41a1 0001 lui at,0x1
+ *50076c: 41a5 8077 lui a1,0x8077
+ *500770: 3021 8001 addiu at,at,-32767
+ *500774: 5821 0008 dsll32 at,at,0x0
+ *500778: 5825 2950 daddu a1,a1,at
+ *50077c: fc85 d430 lw a0,-11216\(a1\)
+ *500780: 41a1 0001 lui at,0x1
+ *500784: 41a5 8077 lui a1,0x8077
+ *500788: 3021 8001 addiu at,at,-32767
+ *50078c: 5821 0008 dsll32 at,at,0x0
+ *500790: 5825 2950 daddu a1,a1,at
+ *500794: fc85 dc09 lw a0,-9207\(a1\)
+ *500798: 41a1 0000 lui at,0x0
+ *50079c: 41a5 8000 lui a1,0x8000
+ *5007a0: 3021 8000 addiu at,at,-32768
+ *5007a4: 5821 0008 dsll32 at,at,0x0
+ *5007a8: 5825 2950 daddu a1,a1,at
+ *5007ac: fc85 8000 lw a0,-32768\(a1\)
+ *5007b0: 41a1 0000 lui at,0x0
+ *5007b4: 41a5 8065 lui a1,0x8065
+ *5007b8: 3021 8000 addiu at,at,-32768
+ *5007bc: 5821 0008 dsll32 at,at,0x0
+ *5007c0: 5825 2950 daddu a1,a1,at
+ *5007c4: fc85 c320 lw a0,-15584\(a1\)
+ *5007c8: 41a1 0000 lui at,0x0
+ *5007cc: 41a5 8065 lui a1,0x8065
+ *5007d0: 3021 8000 addiu at,at,-32768
+ *5007d4: 5821 0008 dsll32 at,at,0x0
+ *5007d8: 5825 2950 daddu a1,a1,at
+ *5007dc: fc85 c324 lw a0,-15580\(a1\)
+ *5007e0: 41a1 0000 lui at,0x0
+ *5007e4: 41a5 8065 lui a1,0x8065
+ *5007e8: 3021 8000 addiu at,at,-32768
+ *5007ec: 5821 0008 dsll32 at,at,0x0
+ *5007f0: 5825 2950 daddu a1,a1,at
+ *5007f4: fc85 c330 lw a0,-15568\(a1\)
+ *5007f8: 41a1 0000 lui at,0x0
+ *5007fc: 41a5 8065 lui a1,0x8065
+ *500800: 3021 8000 addiu at,at,-32768
+ *500804: 5821 0008 dsll32 at,at,0x0
+ *500808: 5825 2950 daddu a1,a1,at
+ *50080c: fc85 c720 lw a0,-14560\(a1\)
+ *500810: 41a1 0000 lui at,0x0
+ *500814: 41a5 8076 lui a1,0x8076
+ *500818: 3021 8000 addiu at,at,-32768
+ *50081c: 5821 0008 dsll32 at,at,0x0
+ *500820: 5825 2950 daddu a1,a1,at
+ *500824: fc85 d820 lw a0,-10208\(a1\)
+ *500828: 41a1 0000 lui at,0x0
+ *50082c: 41a5 8076 lui a1,0x8076
+ *500830: 3021 8000 addiu at,at,-32768
+ *500834: 5821 0008 dsll32 at,at,0x0
+ *500838: 5825 2950 daddu a1,a1,at
+ *50083c: fc85 dc08 lw a0,-9208\(a1\)
+ *500840: 41a1 0000 lui at,0x0
+ *500844: 41a5 8076 lui a1,0x8076
+ *500848: 3021 8000 addiu at,at,-32768
+ *50084c: 5821 0008 dsll32 at,at,0x0
+ *500850: 5825 2950 daddu a1,a1,at
+ *500854: fc85 d430 lw a0,-11216\(a1\)
+ *500858: 41a1 0000 lui at,0x0
+ *50085c: 41a5 8076 lui a1,0x8076
+ *500860: 3021 8000 addiu at,at,-32768
+ *500864: 5821 0008 dsll32 at,at,0x0
+ *500868: 5825 2950 daddu a1,a1,at
+ *50086c: fc85 dc09 lw a0,-9207\(a1\)
+ *500870: 41a1 0001 lui at,0x1
+ *500874: 41a5 0001 lui a1,0x1
+ *500878: 3021 0001 addiu at,at,1
+ *50087c: 5821 0008 dsll32 at,at,0x0
+ *500880: 5825 2950 daddu a1,a1,at
+ *500884: fc85 0000 lw a0,0\(a1\)
+ *500888: 41a1 0001 lui at,0x1
+ *50088c: 41a5 0066 lui a1,0x66
+ *500890: 3021 0001 addiu at,at,1
+ *500894: 5821 0008 dsll32 at,at,0x0
+ *500898: 5825 2950 daddu a1,a1,at
+ *50089c: fc85 4320 lw a0,17184\(a1\)
+ *5008a0: 41a1 0001 lui at,0x1
+ *5008a4: 41a5 0066 lui a1,0x66
+ *5008a8: 3021 0001 addiu at,at,1
+ *5008ac: 5821 0008 dsll32 at,at,0x0
+ *5008b0: 5825 2950 daddu a1,a1,at
+ *5008b4: fc85 4324 lw a0,17188\(a1\)
+ *5008b8: 41a1 0001 lui at,0x1
+ *5008bc: 41a5 0066 lui a1,0x66
+ *5008c0: 3021 0001 addiu at,at,1
+ *5008c4: 5821 0008 dsll32 at,at,0x0
+ *5008c8: 5825 2950 daddu a1,a1,at
+ *5008cc: fc85 4330 lw a0,17200\(a1\)
+ *5008d0: 41a1 0001 lui at,0x1
+ *5008d4: 41a5 0066 lui a1,0x66
+ *5008d8: 3021 0001 addiu at,at,1
+ *5008dc: 5821 0008 dsll32 at,at,0x0
+ *5008e0: 5825 2950 daddu a1,a1,at
+ *5008e4: fc85 4720 lw a0,18208\(a1\)
+ *5008e8: 41a1 0001 lui at,0x1
+ *5008ec: 41a5 0077 lui a1,0x77
+ *5008f0: 3021 0001 addiu at,at,1
+ *5008f4: 5821 0008 dsll32 at,at,0x0
+ *5008f8: 5825 2950 daddu a1,a1,at
+ *5008fc: fc85 5820 lw a0,22560\(a1\)
+ *500900: 41a1 0001 lui at,0x1
+ *500904: 41a5 0077 lui a1,0x77
+ *500908: 3021 0001 addiu at,at,1
+ *50090c: 5821 0008 dsll32 at,at,0x0
+ *500910: 5825 2950 daddu a1,a1,at
+ *500914: fc85 5c08 lw a0,23560\(a1\)
+ *500918: 41a1 0001 lui at,0x1
+ *50091c: 41a5 0077 lui a1,0x77
+ *500920: 3021 0001 addiu at,at,1
+ *500924: 5821 0008 dsll32 at,at,0x0
+ *500928: 5825 2950 daddu a1,a1,at
+ *50092c: fc85 5430 lw a0,21552\(a1\)
+ *500930: 41a1 0001 lui at,0x1
+ *500934: 41a5 0077 lui a1,0x77
+ *500938: 3021 0001 addiu at,at,1
+ *50093c: 5821 0008 dsll32 at,at,0x0
+ *500940: 5825 2950 daddu a1,a1,at
+ *500944: fc85 5c09 lw a0,23561\(a1\)
+ *500948: 41a1 0002 lui at,0x2
+ *50094c: 41a5 0002 lui a1,0x2
+ *500950: 3021 a5a5 addiu at,at,-23131
+ *500954: 5821 0008 dsll32 at,at,0x0
+ *500958: 5825 2950 daddu a1,a1,at
+ *50095c: fc85 a5a5 lw a0,-23131\(a1\)
+ *500960: 41a1 0002 lui at,0x2
+ *500964: 41a5 0067 lui a1,0x67
+ *500968: 3021 a5a5 addiu at,at,-23131
+ *50096c: 5821 0008 dsll32 at,at,0x0
+ *500970: 5825 2950 daddu a1,a1,at
+ *500974: fc85 e8c5 lw a0,-5947\(a1\)
+ *500978: 41a1 0002 lui at,0x2
+ *50097c: 41a5 0067 lui a1,0x67
+ *500980: 3021 a5a5 addiu at,at,-23131
+ *500984: 5821 0008 dsll32 at,at,0x0
+ *500988: 5825 2950 daddu a1,a1,at
+ *50098c: fc85 e8c9 lw a0,-5943\(a1\)
+ *500990: 41a1 0002 lui at,0x2
+ *500994: 41a5 0067 lui a1,0x67
+ *500998: 3021 a5a5 addiu at,at,-23131
+ *50099c: 5821 0008 dsll32 at,at,0x0
+ *5009a0: 5825 2950 daddu a1,a1,at
+ *5009a4: fc85 e8d5 lw a0,-5931\(a1\)
+ *5009a8: 41a1 0002 lui at,0x2
+ *5009ac: 41a5 0067 lui a1,0x67
+ *5009b0: 3021 a5a5 addiu at,at,-23131
+ *5009b4: 5821 0008 dsll32 at,at,0x0
+ *5009b8: 5825 2950 daddu a1,a1,at
+ *5009bc: fc85 ecc5 lw a0,-4923\(a1\)
+ *5009c0: 41a1 0002 lui at,0x2
+ *5009c4: 41a5 0078 lui a1,0x78
+ *5009c8: 3021 a5a5 addiu at,at,-23131
+ *5009cc: 5821 0008 dsll32 at,at,0x0
+ *5009d0: 5825 2950 daddu a1,a1,at
+ *5009d4: fc85 fdc5 lw a0,-571\(a1\)
+ *5009d8: 41a1 0002 lui at,0x2
+ *5009dc: 41a5 0078 lui a1,0x78
+ *5009e0: 3021 a5a5 addiu at,at,-23131
+ *5009e4: 5821 0008 dsll32 at,at,0x0
+ *5009e8: 5825 2950 daddu a1,a1,at
+ *5009ec: fc85 01ad lw a0,429\(a1\)
+ *5009f0: 41a1 0002 lui at,0x2
+ *5009f4: 41a5 0078 lui a1,0x78
+ *5009f8: 3021 a5a5 addiu at,at,-23131
+ *5009fc: 5821 0008 dsll32 at,at,0x0
+ *500a00: 5825 2950 daddu a1,a1,at
+ *500a04: fc85 f9d5 lw a0,-1579\(a1\)
+ *500a08: 41a1 0002 lui at,0x2
+ *500a0c: 41a5 0078 lui a1,0x78
+ *500a10: 3021 a5a5 addiu at,at,-23131
+ *500a14: 5821 0008 dsll32 at,at,0x0
+ *500a18: 5825 2950 daddu a1,a1,at
+ *500a1c: fc85 01ae lw a0,430\(a1\)
+ \.\.\.
diff --git a/ld/testsuite/ld-mips-elf/micromips-hilo-srec-n64.d b/ld/testsuite/ld-mips-elf/micromips-hilo-srec-n64.d
new file mode 100644
index 0000000..efbaaa5
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/micromips-hilo-srec-n64.d
@@ -0,0 +1,8 @@
+#name: R_MICROMIPS_HI16 and R_MICROMIPS_LO16 relocs srec (n64)
+#source: ../../../gas/testsuite/gas/mips/mips-hilo-n64.s
+#source: mips-hilo.s
+#as: -mmicromips -march=mips64r2
+#objdump: -m mips:micromips -j .sec1 -D
+#ld: --oformat=srec -Tmips-hilo.ld -e 0x500000 -N
+#notarget: mips*el-ps2-elf*
+#dump: micromips-hilo-n64.d
diff --git a/ld/testsuite/ld-mips-elf/micromips-hilo-srec.d b/ld/testsuite/ld-mips-elf/micromips-hilo-srec.d
new file mode 100644
index 0000000..c8bee0a
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/micromips-hilo-srec.d
@@ -0,0 +1,8 @@
+#name: R_MICROMIPS_HI16 and R_MICROMIPS_LO16 relocs srec
+#source: ../../../gas/testsuite/gas/mips/mips-hilo.s
+#source: mips-hilo.s
+#as: -mmicromips -march=mips64r2
+#objdump: -m mips:micromips -j .sec1 -D
+#ld: --oformat=srec -Tmips-hilo.ld -e 0x500000 -N
+#notarget: mips*el-ps2-elf*
+#dump: micromips-hilo.d
diff --git a/ld/testsuite/ld-mips-elf/micromips-hilo.d b/ld/testsuite/ld-mips-elf/micromips-hilo.d
new file mode 100644
index 0000000..ec5c9d1
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/micromips-hilo.d
@@ -0,0 +1,230 @@
+#name: R_MICROMIPS_HI16 and R_MICROMIPS_LO16 relocs
+#source: ../../../gas/testsuite/gas/mips/mips-hilo.s
+#source: mips-hilo.s
+#as: -mmicromips -march=mips64r2
+#objdump: -d
+#ld: -Tmips-hilo.ld -e 0x500000 -N
+#notarget: mips*el-ps2-elf*
+
+.*: file format (:?elf.*mips.*|srec)
+
+Disassembly of section \.(:?text|sec1):
+
+0*500000 <[^>]*>:
+ *500000: 41a4 0000 lui a0,0x0
+ *500004: 3084 0000 addiu a0,a0,0
+ *500008: 41a4 0065 lui a0,0x65
+ *50000c: 3084 4320 addiu a0,a0,17184
+ *500010: 41a4 0065 lui a0,0x65
+ *500014: 3084 4324 addiu a0,a0,17188
+ *500018: 41a4 0065 lui a0,0x65
+ *50001c: 3084 4330 addiu a0,a0,17200
+ *500020: 41a4 0065 lui a0,0x65
+ *500024: 3084 4720 addiu a0,a0,18208
+ *500028: 41a4 0076 lui a0,0x76
+ *50002c: 3084 5820 addiu a0,a0,22560
+ *500030: 41a4 0076 lui a0,0x76
+ *500034: 3084 5c08 addiu a0,a0,23560
+ *500038: 41a4 0076 lui a0,0x76
+ *50003c: 3084 5430 addiu a0,a0,21552
+ *500040: 41a4 0076 lui a0,0x76
+ *500044: 3084 5c09 addiu a0,a0,23561
+ *500048: 41a4 0000 lui a0,0x0
+ *50004c: 3084 0001 addiu a0,a0,1
+ *500050: 41a4 0065 lui a0,0x65
+ *500054: 3084 4321 addiu a0,a0,17185
+ *500058: 41a4 0065 lui a0,0x65
+ *50005c: 3084 4325 addiu a0,a0,17189
+ *500060: 41a4 0065 lui a0,0x65
+ *500064: 3084 4331 addiu a0,a0,17201
+ *500068: 41a4 0065 lui a0,0x65
+ *50006c: 3084 4721 addiu a0,a0,18209
+ *500070: 41a4 0076 lui a0,0x76
+ *500074: 3084 5821 addiu a0,a0,22561
+ *500078: 41a4 0076 lui a0,0x76
+ *50007c: 3084 5c09 addiu a0,a0,23561
+ *500080: 41a4 0076 lui a0,0x76
+ *500084: 3084 5431 addiu a0,a0,21553
+ *500088: 41a4 0076 lui a0,0x76
+ *50008c: 3084 5c0a addiu a0,a0,23562
+ *500090: 41a4 0001 lui a0,0x1
+ *500094: 3084 8000 addiu a0,a0,-32768
+ *500098: 41a4 0066 lui a0,0x66
+ *50009c: 3084 c320 addiu a0,a0,-15584
+ *5000a0: 41a4 0066 lui a0,0x66
+ *5000a4: 3084 c324 addiu a0,a0,-15580
+ *5000a8: 41a4 0066 lui a0,0x66
+ *5000ac: 3084 c330 addiu a0,a0,-15568
+ *5000b0: 41a4 0066 lui a0,0x66
+ *5000b4: 3084 c720 addiu a0,a0,-14560
+ *5000b8: 41a4 0077 lui a0,0x77
+ *5000bc: 3084 d820 addiu a0,a0,-10208
+ *5000c0: 41a4 0077 lui a0,0x77
+ *5000c4: 3084 dc08 addiu a0,a0,-9208
+ *5000c8: 41a4 0077 lui a0,0x77
+ *5000cc: 3084 d430 addiu a0,a0,-11216
+ *5000d0: 41a4 0077 lui a0,0x77
+ *5000d4: 3084 dc09 addiu a0,a0,-9207
+ *5000d8: 41a4 0000 lui a0,0x0
+ *5000dc: 3084 8000 addiu a0,a0,-32768
+ *5000e0: 41a4 0065 lui a0,0x65
+ *5000e4: 3084 c320 addiu a0,a0,-15584
+ *5000e8: 41a4 0065 lui a0,0x65
+ *5000ec: 3084 c324 addiu a0,a0,-15580
+ *5000f0: 41a4 0065 lui a0,0x65
+ *5000f4: 3084 c330 addiu a0,a0,-15568
+ *5000f8: 41a4 0065 lui a0,0x65
+ *5000fc: 3084 c720 addiu a0,a0,-14560
+ *500100: 41a4 0076 lui a0,0x76
+ *500104: 3084 d820 addiu a0,a0,-10208
+ *500108: 41a4 0076 lui a0,0x76
+ *50010c: 3084 dc08 addiu a0,a0,-9208
+ *500110: 41a4 0076 lui a0,0x76
+ *500114: 3084 d430 addiu a0,a0,-11216
+ *500118: 41a4 0076 lui a0,0x76
+ *50011c: 3084 dc09 addiu a0,a0,-9207
+ *500120: 41a4 0001 lui a0,0x1
+ *500124: 3084 0000 addiu a0,a0,0
+ *500128: 41a4 0066 lui a0,0x66
+ *50012c: 3084 4320 addiu a0,a0,17184
+ *500130: 41a4 0066 lui a0,0x66
+ *500134: 3084 4324 addiu a0,a0,17188
+ *500138: 41a4 0066 lui a0,0x66
+ *50013c: 3084 4330 addiu a0,a0,17200
+ *500140: 41a4 0066 lui a0,0x66
+ *500144: 3084 4720 addiu a0,a0,18208
+ *500148: 41a4 0077 lui a0,0x77
+ *50014c: 3084 5820 addiu a0,a0,22560
+ *500150: 41a4 0077 lui a0,0x77
+ *500154: 3084 5c08 addiu a0,a0,23560
+ *500158: 41a4 0077 lui a0,0x77
+ *50015c: 3084 5430 addiu a0,a0,21552
+ *500160: 41a4 0077 lui a0,0x77
+ *500164: 3084 5c09 addiu a0,a0,23561
+ *500168: 41a4 0002 lui a0,0x2
+ *50016c: 3084 a5a5 addiu a0,a0,-23131
+ *500170: 41a4 0067 lui a0,0x67
+ *500174: 3084 e8c5 addiu a0,a0,-5947
+ *500178: 41a4 0067 lui a0,0x67
+ *50017c: 3084 e8c9 addiu a0,a0,-5943
+ *500180: 41a4 0067 lui a0,0x67
+ *500184: 3084 e8d5 addiu a0,a0,-5931
+ *500188: 41a4 0067 lui a0,0x67
+ *50018c: 3084 ecc5 addiu a0,a0,-4923
+ *500190: 41a4 0078 lui a0,0x78
+ *500194: 3084 fdc5 addiu a0,a0,-571
+ *500198: 41a4 0078 lui a0,0x78
+ *50019c: 3084 01ad addiu a0,a0,429
+ *5001a0: 41a4 0078 lui a0,0x78
+ *5001a4: 3084 f9d5 addiu a0,a0,-1579
+ *5001a8: 41a4 0078 lui a0,0x78
+ *5001ac: 3084 01ae addiu a0,a0,430
+ *5001b0: 41a5 0000 lui a1,0x0
+ *5001b4: fc85 0000 lw a0,0\(a1\)
+ *5001b8: 41a5 0065 lui a1,0x65
+ *5001bc: fc85 4320 lw a0,17184\(a1\)
+ *5001c0: 41a5 0065 lui a1,0x65
+ *5001c4: fc85 4324 lw a0,17188\(a1\)
+ *5001c8: 41a5 0065 lui a1,0x65
+ *5001cc: fc85 4330 lw a0,17200\(a1\)
+ *5001d0: 41a5 0065 lui a1,0x65
+ *5001d4: fc85 4720 lw a0,18208\(a1\)
+ *5001d8: 41a5 0076 lui a1,0x76
+ *5001dc: fc85 5820 lw a0,22560\(a1\)
+ *5001e0: 41a5 0076 lui a1,0x76
+ *5001e4: fc85 5c08 lw a0,23560\(a1\)
+ *5001e8: 41a5 0076 lui a1,0x76
+ *5001ec: fc85 5430 lw a0,21552\(a1\)
+ *5001f0: 41a5 0076 lui a1,0x76
+ *5001f4: fc85 5c09 lw a0,23561\(a1\)
+ *5001f8: 41a5 0000 lui a1,0x0
+ *5001fc: fc85 0001 lw a0,1\(a1\)
+ *500200: 41a5 0065 lui a1,0x65
+ *500204: fc85 4321 lw a0,17185\(a1\)
+ *500208: 41a5 0065 lui a1,0x65
+ *50020c: fc85 4325 lw a0,17189\(a1\)
+ *500210: 41a5 0065 lui a1,0x65
+ *500214: fc85 4331 lw a0,17201\(a1\)
+ *500218: 41a5 0065 lui a1,0x65
+ *50021c: fc85 4721 lw a0,18209\(a1\)
+ *500220: 41a5 0076 lui a1,0x76
+ *500224: fc85 5821 lw a0,22561\(a1\)
+ *500228: 41a5 0076 lui a1,0x76
+ *50022c: fc85 5c09 lw a0,23561\(a1\)
+ *500230: 41a5 0076 lui a1,0x76
+ *500234: fc85 5431 lw a0,21553\(a1\)
+ *500238: 41a5 0076 lui a1,0x76
+ *50023c: fc85 5c0a lw a0,23562\(a1\)
+ *500240: 41a5 0001 lui a1,0x1
+ *500244: fc85 8000 lw a0,-32768\(a1\)
+ *500248: 41a5 0066 lui a1,0x66
+ *50024c: fc85 c320 lw a0,-15584\(a1\)
+ *500250: 41a5 0066 lui a1,0x66
+ *500254: fc85 c324 lw a0,-15580\(a1\)
+ *500258: 41a5 0066 lui a1,0x66
+ *50025c: fc85 c330 lw a0,-15568\(a1\)
+ *500260: 41a5 0066 lui a1,0x66
+ *500264: fc85 c720 lw a0,-14560\(a1\)
+ *500268: 41a5 0077 lui a1,0x77
+ *50026c: fc85 d820 lw a0,-10208\(a1\)
+ *500270: 41a5 0077 lui a1,0x77
+ *500274: fc85 dc08 lw a0,-9208\(a1\)
+ *500278: 41a5 0077 lui a1,0x77
+ *50027c: fc85 d430 lw a0,-11216\(a1\)
+ *500280: 41a5 0077 lui a1,0x77
+ *500284: fc85 dc09 lw a0,-9207\(a1\)
+ *500288: 41a5 0000 lui a1,0x0
+ *50028c: fc85 8000 lw a0,-32768\(a1\)
+ *500290: 41a5 0065 lui a1,0x65
+ *500294: fc85 c320 lw a0,-15584\(a1\)
+ *500298: 41a5 0065 lui a1,0x65
+ *50029c: fc85 c324 lw a0,-15580\(a1\)
+ *5002a0: 41a5 0065 lui a1,0x65
+ *5002a4: fc85 c330 lw a0,-15568\(a1\)
+ *5002a8: 41a5 0065 lui a1,0x65
+ *5002ac: fc85 c720 lw a0,-14560\(a1\)
+ *5002b0: 41a5 0076 lui a1,0x76
+ *5002b4: fc85 d820 lw a0,-10208\(a1\)
+ *5002b8: 41a5 0076 lui a1,0x76
+ *5002bc: fc85 dc08 lw a0,-9208\(a1\)
+ *5002c0: 41a5 0076 lui a1,0x76
+ *5002c4: fc85 d430 lw a0,-11216\(a1\)
+ *5002c8: 41a5 0076 lui a1,0x76
+ *5002cc: fc85 dc09 lw a0,-9207\(a1\)
+ *5002d0: 41a5 0001 lui a1,0x1
+ *5002d4: fc85 0000 lw a0,0\(a1\)
+ *5002d8: 41a5 0066 lui a1,0x66
+ *5002dc: fc85 4320 lw a0,17184\(a1\)
+ *5002e0: 41a5 0066 lui a1,0x66
+ *5002e4: fc85 4324 lw a0,17188\(a1\)
+ *5002e8: 41a5 0066 lui a1,0x66
+ *5002ec: fc85 4330 lw a0,17200\(a1\)
+ *5002f0: 41a5 0066 lui a1,0x66
+ *5002f4: fc85 4720 lw a0,18208\(a1\)
+ *5002f8: 41a5 0077 lui a1,0x77
+ *5002fc: fc85 5820 lw a0,22560\(a1\)
+ *500300: 41a5 0077 lui a1,0x77
+ *500304: fc85 5c08 lw a0,23560\(a1\)
+ *500308: 41a5 0077 lui a1,0x77
+ *50030c: fc85 5430 lw a0,21552\(a1\)
+ *500310: 41a5 0077 lui a1,0x77
+ *500314: fc85 5c09 lw a0,23561\(a1\)
+ *500318: 41a5 0002 lui a1,0x2
+ *50031c: fc85 a5a5 lw a0,-23131\(a1\)
+ *500320: 41a5 0067 lui a1,0x67
+ *500324: fc85 e8c5 lw a0,-5947\(a1\)
+ *500328: 41a5 0067 lui a1,0x67
+ *50032c: fc85 e8c9 lw a0,-5943\(a1\)
+ *500330: 41a5 0067 lui a1,0x67
+ *500334: fc85 e8d5 lw a0,-5931\(a1\)
+ *500338: 41a5 0067 lui a1,0x67
+ *50033c: fc85 ecc5 lw a0,-4923\(a1\)
+ *500340: 41a5 0078 lui a1,0x78
+ *500344: fc85 fdc5 lw a0,-571\(a1\)
+ *500348: 41a5 0078 lui a1,0x78
+ *50034c: fc85 01ad lw a0,429\(a1\)
+ *500350: 41a5 0078 lui a1,0x78
+ *500354: fc85 f9d5 lw a0,-1579\(a1\)
+ *500358: 41a5 0078 lui a1,0x78
+ *50035c: fc85 01ae lw a0,430\(a1\)
+ \.\.\.
diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp
index 6cb9088..e8a1d42 100644
--- a/ld/testsuite/ld-mips-elf/mips-elf.exp
+++ b/ld/testsuite/ld-mips-elf/mips-elf.exp
@@ -814,8 +814,68 @@ run_dump_test_n32 "jalbal" noarch
run_dump_test "mode-change-error-1"
-run_dump_test_o32 "mips16-hilo"
-run_dump_test_n32 "mips16-hilo-n32"
+run_dump_test_o32 "mips16-hilo" noarch
+run_dump_test_n32 "mips16-hilo" [list noarch [list name (n32)]]
+run_dump_test_o32 "mips16-hilo-srec" \
+ [list noarch \
+ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]]
+run_dump_test_n32 "mips16-hilo-srec" \
+ [list noarch \
+ [list name (n32)] \
+ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]]
+run_dump_test_o32 "mips16e2-hilo" noarch
+run_dump_test_n32 "mips16e2-hilo" [list noarch [list name (n32)]]
+run_dump_test_o32 "mips16e2-hilo-srec" \
+ [list noarch \
+ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]]
+run_dump_test_n32 "mips16e2-hilo-srec" \
+ [list noarch \
+ [list name (n32)] \
+ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]]
+run_dump_test_o32 "mips-hilo"
+run_dump_test_n32 "mips-hilo" [list [list name (n32)]]
+run_dump_test_n64 "mips-hilo-n64"
+run_dump_test_o32 "mips-hilo-srec" \
+ [list [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]]
+run_dump_test_n32 "mips-hilo-srec" \
+ [list [list name (n32)] \
+ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]]
+run_dump_test_n64 "mips-hilo-srec-n64" \
+ [list [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]]
+run_dump_test_o32 "micromips-hilo" noarch
+run_dump_test_n32 "micromips-hilo" [list noarch [list name (n32)]]
+run_dump_test_n64 "micromips-hilo-n64" noarch
+run_dump_test_o32 "micromips-hilo-srec" \
+ [list noarch \
+ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]]
+run_dump_test_n32 "micromips-hilo-srec" \
+ [list noarch \
+ [list name (n32)] \
+ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]]
+run_dump_test_n64 "micromips-hilo-srec-n64" \
+ [list noarch \
+ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]]
+run_dump_test_o32 "pcrel-hilo"
+run_dump_test_n32 "pcrel-hilo" [list [list name (n32)]]
+run_dump_test_n64 "pcrel-hilo" [list [list name (n64)]]
+run_dump_test_o32 "pcrel-hilo-srec" \
+ [list [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]]
+run_dump_test_n32 "pcrel-hilo-srec" \
+ [list [list name (n32)] \
+ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]]
+run_dump_test_n64 "pcrel-hilo-srec" \
+ [list [list name (n64)] \
+ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]]
+
+run_dump_test_o32 "pr19977"
+run_dump_test_n32 "pr19977" [list [list name (n32)]]
+run_dump_test_o32 "pr19977-mips16" noarch
+run_dump_test_n32 "pr19977-mips16" [list noarch [list name (n32)]]
+run_dump_test_o32 "pr19977-micromips" noarch
+run_dump_test_n32 "pr19977-micromips" [list noarch [list name (n32)]]
+run_dump_test_o32 "pr19977-r"
+run_dump_test_o32 "pr19977-r-mips16" noarch
+run_dump_test_o32 "pr19977-r-micromips" noarch
if { $linux_gnu } {
run_dump_test_n32 "textrel-1"
diff --git a/ld/testsuite/ld-mips-elf/mips-hilo-n64.d b/ld/testsuite/ld-mips-elf/mips-hilo-n64.d
new file mode 100644
index 0000000..9cac1b3
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/mips-hilo-n64.d
@@ -0,0 +1,660 @@
+#name: R_MIPS_HI16 and R_MIPS_LO16 relocs (n64)
+#source: ../../../gas/testsuite/gas/mips/mips-hilo-n64.s
+#source: mips-hilo.s
+#objdump: -d
+#ld: -Tmips-hilo.ld -e 0x500000 -N
+
+.*: file format (:?elf.*mips.*|srec)
+
+Disassembly of section \.(:?text|sec1):
+
+0*500000 <[^>]*>:
+ *500000: 3c010000 lui at,0x0
+ *500004: 3c040000 lui a0,0x0
+ *500008: 24210000 addiu at,at,0
+ *50000c: 24840000 addiu a0,a0,0
+ *500010: 0001083c dsll32 at,at,0x0
+ *500014: 0081202d daddu a0,a0,at
+ *500018: 3c010000 lui at,0x0
+ *50001c: 3c040065 lui a0,0x65
+ *500020: 24210000 addiu at,at,0
+ *500024: 24844320 addiu a0,a0,17184
+ *500028: 0001083c dsll32 at,at,0x0
+ *50002c: 0081202d daddu a0,a0,at
+ *500030: 3c010000 lui at,0x0
+ *500034: 3c040065 lui a0,0x65
+ *500038: 24210000 addiu at,at,0
+ *50003c: 24844324 addiu a0,a0,17188
+ *500040: 0001083c dsll32 at,at,0x0
+ *500044: 0081202d daddu a0,a0,at
+ *500048: 3c010000 lui at,0x0
+ *50004c: 3c040065 lui a0,0x65
+ *500050: 24210000 addiu at,at,0
+ *500054: 24844330 addiu a0,a0,17200
+ *500058: 0001083c dsll32 at,at,0x0
+ *50005c: 0081202d daddu a0,a0,at
+ *500060: 3c010000 lui at,0x0
+ *500064: 3c040065 lui a0,0x65
+ *500068: 24210000 addiu at,at,0
+ *50006c: 24844720 addiu a0,a0,18208
+ *500070: 0001083c dsll32 at,at,0x0
+ *500074: 0081202d daddu a0,a0,at
+ *500078: 3c010000 lui at,0x0
+ *50007c: 3c040076 lui a0,0x76
+ *500080: 24210000 addiu at,at,0
+ *500084: 24845820 addiu a0,a0,22560
+ *500088: 0001083c dsll32 at,at,0x0
+ *50008c: 0081202d daddu a0,a0,at
+ *500090: 3c010000 lui at,0x0
+ *500094: 3c040076 lui a0,0x76
+ *500098: 24210000 addiu at,at,0
+ *50009c: 24845c08 addiu a0,a0,23560
+ *5000a0: 0001083c dsll32 at,at,0x0
+ *5000a4: 0081202d daddu a0,a0,at
+ *5000a8: 3c010000 lui at,0x0
+ *5000ac: 3c040076 lui a0,0x76
+ *5000b0: 24210000 addiu at,at,0
+ *5000b4: 24845430 addiu a0,a0,21552
+ *5000b8: 0001083c dsll32 at,at,0x0
+ *5000bc: 0081202d daddu a0,a0,at
+ *5000c0: 3c010000 lui at,0x0
+ *5000c4: 3c040076 lui a0,0x76
+ *5000c8: 24210000 addiu at,at,0
+ *5000cc: 24845c09 addiu a0,a0,23561
+ *5000d0: 0001083c dsll32 at,at,0x0
+ *5000d4: 0081202d daddu a0,a0,at
+ *5000d8: 3c010000 lui at,0x0
+ *5000dc: 3c040000 lui a0,0x0
+ *5000e0: 24210000 addiu at,at,0
+ *5000e4: 24840001 addiu a0,a0,1
+ *5000e8: 0001083c dsll32 at,at,0x0
+ *5000ec: 0081202d daddu a0,a0,at
+ *5000f0: 3c010000 lui at,0x0
+ *5000f4: 3c040065 lui a0,0x65
+ *5000f8: 24210000 addiu at,at,0
+ *5000fc: 24844321 addiu a0,a0,17185
+ *500100: 0001083c dsll32 at,at,0x0
+ *500104: 0081202d daddu a0,a0,at
+ *500108: 3c010000 lui at,0x0
+ *50010c: 3c040065 lui a0,0x65
+ *500110: 24210000 addiu at,at,0
+ *500114: 24844325 addiu a0,a0,17189
+ *500118: 0001083c dsll32 at,at,0x0
+ *50011c: 0081202d daddu a0,a0,at
+ *500120: 3c010000 lui at,0x0
+ *500124: 3c040065 lui a0,0x65
+ *500128: 24210000 addiu at,at,0
+ *50012c: 24844331 addiu a0,a0,17201
+ *500130: 0001083c dsll32 at,at,0x0
+ *500134: 0081202d daddu a0,a0,at
+ *500138: 3c010000 lui at,0x0
+ *50013c: 3c040065 lui a0,0x65
+ *500140: 24210000 addiu at,at,0
+ *500144: 24844721 addiu a0,a0,18209
+ *500148: 0001083c dsll32 at,at,0x0
+ *50014c: 0081202d daddu a0,a0,at
+ *500150: 3c010000 lui at,0x0
+ *500154: 3c040076 lui a0,0x76
+ *500158: 24210000 addiu at,at,0
+ *50015c: 24845821 addiu a0,a0,22561
+ *500160: 0001083c dsll32 at,at,0x0
+ *500164: 0081202d daddu a0,a0,at
+ *500168: 3c010000 lui at,0x0
+ *50016c: 3c040076 lui a0,0x76
+ *500170: 24210000 addiu at,at,0
+ *500174: 24845c09 addiu a0,a0,23561
+ *500178: 0001083c dsll32 at,at,0x0
+ *50017c: 0081202d daddu a0,a0,at
+ *500180: 3c010000 lui at,0x0
+ *500184: 3c040076 lui a0,0x76
+ *500188: 24210000 addiu at,at,0
+ *50018c: 24845431 addiu a0,a0,21553
+ *500190: 0001083c dsll32 at,at,0x0
+ *500194: 0081202d daddu a0,a0,at
+ *500198: 3c010000 lui at,0x0
+ *50019c: 3c040076 lui a0,0x76
+ *5001a0: 24210000 addiu at,at,0
+ *5001a4: 24845c0a addiu a0,a0,23562
+ *5001a8: 0001083c dsll32 at,at,0x0
+ *5001ac: 0081202d daddu a0,a0,at
+ *5001b0: 3c010001 lui at,0x1
+ *5001b4: 3c048001 lui a0,0x8001
+ *5001b8: 24218001 addiu at,at,-32767
+ *5001bc: 24848000 addiu a0,a0,-32768
+ *5001c0: 0001083c dsll32 at,at,0x0
+ *5001c4: 0081202d daddu a0,a0,at
+ *5001c8: 3c010001 lui at,0x1
+ *5001cc: 3c048066 lui a0,0x8066
+ *5001d0: 24218001 addiu at,at,-32767
+ *5001d4: 2484c320 addiu a0,a0,-15584
+ *5001d8: 0001083c dsll32 at,at,0x0
+ *5001dc: 0081202d daddu a0,a0,at
+ *5001e0: 3c010001 lui at,0x1
+ *5001e4: 3c048066 lui a0,0x8066
+ *5001e8: 24218001 addiu at,at,-32767
+ *5001ec: 2484c324 addiu a0,a0,-15580
+ *5001f0: 0001083c dsll32 at,at,0x0
+ *5001f4: 0081202d daddu a0,a0,at
+ *5001f8: 3c010001 lui at,0x1
+ *5001fc: 3c048066 lui a0,0x8066
+ *500200: 24218001 addiu at,at,-32767
+ *500204: 2484c330 addiu a0,a0,-15568
+ *500208: 0001083c dsll32 at,at,0x0
+ *50020c: 0081202d daddu a0,a0,at
+ *500210: 3c010001 lui at,0x1
+ *500214: 3c048066 lui a0,0x8066
+ *500218: 24218001 addiu at,at,-32767
+ *50021c: 2484c720 addiu a0,a0,-14560
+ *500220: 0001083c dsll32 at,at,0x0
+ *500224: 0081202d daddu a0,a0,at
+ *500228: 3c010001 lui at,0x1
+ *50022c: 3c048077 lui a0,0x8077
+ *500230: 24218001 addiu at,at,-32767
+ *500234: 2484d820 addiu a0,a0,-10208
+ *500238: 0001083c dsll32 at,at,0x0
+ *50023c: 0081202d daddu a0,a0,at
+ *500240: 3c010001 lui at,0x1
+ *500244: 3c048077 lui a0,0x8077
+ *500248: 24218001 addiu at,at,-32767
+ *50024c: 2484dc08 addiu a0,a0,-9208
+ *500250: 0001083c dsll32 at,at,0x0
+ *500254: 0081202d daddu a0,a0,at
+ *500258: 3c010001 lui at,0x1
+ *50025c: 3c048077 lui a0,0x8077
+ *500260: 24218001 addiu at,at,-32767
+ *500264: 2484d430 addiu a0,a0,-11216
+ *500268: 0001083c dsll32 at,at,0x0
+ *50026c: 0081202d daddu a0,a0,at
+ *500270: 3c010001 lui at,0x1
+ *500274: 3c048077 lui a0,0x8077
+ *500278: 24218001 addiu at,at,-32767
+ *50027c: 2484dc09 addiu a0,a0,-9207
+ *500280: 0001083c dsll32 at,at,0x0
+ *500284: 0081202d daddu a0,a0,at
+ *500288: 3c010000 lui at,0x0
+ *50028c: 3c048000 lui a0,0x8000
+ *500290: 24218000 addiu at,at,-32768
+ *500294: 24848000 addiu a0,a0,-32768
+ *500298: 0001083c dsll32 at,at,0x0
+ *50029c: 0081202d daddu a0,a0,at
+ *5002a0: 3c010000 lui at,0x0
+ *5002a4: 3c048065 lui a0,0x8065
+ *5002a8: 24218000 addiu at,at,-32768
+ *5002ac: 2484c320 addiu a0,a0,-15584
+ *5002b0: 0001083c dsll32 at,at,0x0
+ *5002b4: 0081202d daddu a0,a0,at
+ *5002b8: 3c010000 lui at,0x0
+ *5002bc: 3c048065 lui a0,0x8065
+ *5002c0: 24218000 addiu at,at,-32768
+ *5002c4: 2484c324 addiu a0,a0,-15580
+ *5002c8: 0001083c dsll32 at,at,0x0
+ *5002cc: 0081202d daddu a0,a0,at
+ *5002d0: 3c010000 lui at,0x0
+ *5002d4: 3c048065 lui a0,0x8065
+ *5002d8: 24218000 addiu at,at,-32768
+ *5002dc: 2484c330 addiu a0,a0,-15568
+ *5002e0: 0001083c dsll32 at,at,0x0
+ *5002e4: 0081202d daddu a0,a0,at
+ *5002e8: 3c010000 lui at,0x0
+ *5002ec: 3c048065 lui a0,0x8065
+ *5002f0: 24218000 addiu at,at,-32768
+ *5002f4: 2484c720 addiu a0,a0,-14560
+ *5002f8: 0001083c dsll32 at,at,0x0
+ *5002fc: 0081202d daddu a0,a0,at
+ *500300: 3c010000 lui at,0x0
+ *500304: 3c048076 lui a0,0x8076
+ *500308: 24218000 addiu at,at,-32768
+ *50030c: 2484d820 addiu a0,a0,-10208
+ *500310: 0001083c dsll32 at,at,0x0
+ *500314: 0081202d daddu a0,a0,at
+ *500318: 3c010000 lui at,0x0
+ *50031c: 3c048076 lui a0,0x8076
+ *500320: 24218000 addiu at,at,-32768
+ *500324: 2484dc08 addiu a0,a0,-9208
+ *500328: 0001083c dsll32 at,at,0x0
+ *50032c: 0081202d daddu a0,a0,at
+ *500330: 3c010000 lui at,0x0
+ *500334: 3c048076 lui a0,0x8076
+ *500338: 24218000 addiu at,at,-32768
+ *50033c: 2484d430 addiu a0,a0,-11216
+ *500340: 0001083c dsll32 at,at,0x0
+ *500344: 0081202d daddu a0,a0,at
+ *500348: 3c010000 lui at,0x0
+ *50034c: 3c048076 lui a0,0x8076
+ *500350: 24218000 addiu at,at,-32768
+ *500354: 2484dc09 addiu a0,a0,-9207
+ *500358: 0001083c dsll32 at,at,0x0
+ *50035c: 0081202d daddu a0,a0,at
+ *500360: 3c010001 lui at,0x1
+ *500364: 3c040001 lui a0,0x1
+ *500368: 24210001 addiu at,at,1
+ *50036c: 24840000 addiu a0,a0,0
+ *500370: 0001083c dsll32 at,at,0x0
+ *500374: 0081202d daddu a0,a0,at
+ *500378: 3c010001 lui at,0x1
+ *50037c: 3c040066 lui a0,0x66
+ *500380: 24210001 addiu at,at,1
+ *500384: 24844320 addiu a0,a0,17184
+ *500388: 0001083c dsll32 at,at,0x0
+ *50038c: 0081202d daddu a0,a0,at
+ *500390: 3c010001 lui at,0x1
+ *500394: 3c040066 lui a0,0x66
+ *500398: 24210001 addiu at,at,1
+ *50039c: 24844324 addiu a0,a0,17188
+ *5003a0: 0001083c dsll32 at,at,0x0
+ *5003a4: 0081202d daddu a0,a0,at
+ *5003a8: 3c010001 lui at,0x1
+ *5003ac: 3c040066 lui a0,0x66
+ *5003b0: 24210001 addiu at,at,1
+ *5003b4: 24844330 addiu a0,a0,17200
+ *5003b8: 0001083c dsll32 at,at,0x0
+ *5003bc: 0081202d daddu a0,a0,at
+ *5003c0: 3c010001 lui at,0x1
+ *5003c4: 3c040066 lui a0,0x66
+ *5003c8: 24210001 addiu at,at,1
+ *5003cc: 24844720 addiu a0,a0,18208
+ *5003d0: 0001083c dsll32 at,at,0x0
+ *5003d4: 0081202d daddu a0,a0,at
+ *5003d8: 3c010001 lui at,0x1
+ *5003dc: 3c040077 lui a0,0x77
+ *5003e0: 24210001 addiu at,at,1
+ *5003e4: 24845820 addiu a0,a0,22560
+ *5003e8: 0001083c dsll32 at,at,0x0
+ *5003ec: 0081202d daddu a0,a0,at
+ *5003f0: 3c010001 lui at,0x1
+ *5003f4: 3c040077 lui a0,0x77
+ *5003f8: 24210001 addiu at,at,1
+ *5003fc: 24845c08 addiu a0,a0,23560
+ *500400: 0001083c dsll32 at,at,0x0
+ *500404: 0081202d daddu a0,a0,at
+ *500408: 3c010001 lui at,0x1
+ *50040c: 3c040077 lui a0,0x77
+ *500410: 24210001 addiu at,at,1
+ *500414: 24845430 addiu a0,a0,21552
+ *500418: 0001083c dsll32 at,at,0x0
+ *50041c: 0081202d daddu a0,a0,at
+ *500420: 3c010001 lui at,0x1
+ *500424: 3c040077 lui a0,0x77
+ *500428: 24210001 addiu at,at,1
+ *50042c: 24845c09 addiu a0,a0,23561
+ *500430: 0001083c dsll32 at,at,0x0
+ *500434: 0081202d daddu a0,a0,at
+ *500438: 3c010002 lui at,0x2
+ *50043c: 3c040002 lui a0,0x2
+ *500440: 2421a5a5 addiu at,at,-23131
+ *500444: 2484a5a5 addiu a0,a0,-23131
+ *500448: 0001083c dsll32 at,at,0x0
+ *50044c: 0081202d daddu a0,a0,at
+ *500450: 3c010002 lui at,0x2
+ *500454: 3c040067 lui a0,0x67
+ *500458: 2421a5a5 addiu at,at,-23131
+ *50045c: 2484e8c5 addiu a0,a0,-5947
+ *500460: 0001083c dsll32 at,at,0x0
+ *500464: 0081202d daddu a0,a0,at
+ *500468: 3c010002 lui at,0x2
+ *50046c: 3c040067 lui a0,0x67
+ *500470: 2421a5a5 addiu at,at,-23131
+ *500474: 2484e8c9 addiu a0,a0,-5943
+ *500478: 0001083c dsll32 at,at,0x0
+ *50047c: 0081202d daddu a0,a0,at
+ *500480: 3c010002 lui at,0x2
+ *500484: 3c040067 lui a0,0x67
+ *500488: 2421a5a5 addiu at,at,-23131
+ *50048c: 2484e8d5 addiu a0,a0,-5931
+ *500490: 0001083c dsll32 at,at,0x0
+ *500494: 0081202d daddu a0,a0,at
+ *500498: 3c010002 lui at,0x2
+ *50049c: 3c040067 lui a0,0x67
+ *5004a0: 2421a5a5 addiu at,at,-23131
+ *5004a4: 2484ecc5 addiu a0,a0,-4923
+ *5004a8: 0001083c dsll32 at,at,0x0
+ *5004ac: 0081202d daddu a0,a0,at
+ *5004b0: 3c010002 lui at,0x2
+ *5004b4: 3c040078 lui a0,0x78
+ *5004b8: 2421a5a5 addiu at,at,-23131
+ *5004bc: 2484fdc5 addiu a0,a0,-571
+ *5004c0: 0001083c dsll32 at,at,0x0
+ *5004c4: 0081202d daddu a0,a0,at
+ *5004c8: 3c010002 lui at,0x2
+ *5004cc: 3c040078 lui a0,0x78
+ *5004d0: 2421a5a5 addiu at,at,-23131
+ *5004d4: 248401ad addiu a0,a0,429
+ *5004d8: 0001083c dsll32 at,at,0x0
+ *5004dc: 0081202d daddu a0,a0,at
+ *5004e0: 3c010002 lui at,0x2
+ *5004e4: 3c040078 lui a0,0x78
+ *5004e8: 2421a5a5 addiu at,at,-23131
+ *5004ec: 2484f9d5 addiu a0,a0,-1579
+ *5004f0: 0001083c dsll32 at,at,0x0
+ *5004f4: 0081202d daddu a0,a0,at
+ *5004f8: 3c010002 lui at,0x2
+ *5004fc: 3c040078 lui a0,0x78
+ *500500: 2421a5a5 addiu at,at,-23131
+ *500504: 248401ae addiu a0,a0,430
+ *500508: 0001083c dsll32 at,at,0x0
+ *50050c: 0081202d daddu a0,a0,at
+ *500510: 3c010000 lui at,0x0
+ *500514: 3c050000 lui a1,0x0
+ *500518: 24210000 addiu at,at,0
+ *50051c: 0001083c dsll32 at,at,0x0
+ *500520: 00a1282d daddu a1,a1,at
+ *500524: 8ca40000 lw a0,0\(a1\)
+ *500528: 3c010000 lui at,0x0
+ *50052c: 3c050065 lui a1,0x65
+ *500530: 24210000 addiu at,at,0
+ *500534: 0001083c dsll32 at,at,0x0
+ *500538: 00a1282d daddu a1,a1,at
+ *50053c: 8ca44320 lw a0,17184\(a1\)
+ *500540: 3c010000 lui at,0x0
+ *500544: 3c050065 lui a1,0x65
+ *500548: 24210000 addiu at,at,0
+ *50054c: 0001083c dsll32 at,at,0x0
+ *500550: 00a1282d daddu a1,a1,at
+ *500554: 8ca44324 lw a0,17188\(a1\)
+ *500558: 3c010000 lui at,0x0
+ *50055c: 3c050065 lui a1,0x65
+ *500560: 24210000 addiu at,at,0
+ *500564: 0001083c dsll32 at,at,0x0
+ *500568: 00a1282d daddu a1,a1,at
+ *50056c: 8ca44330 lw a0,17200\(a1\)
+ *500570: 3c010000 lui at,0x0
+ *500574: 3c050065 lui a1,0x65
+ *500578: 24210000 addiu at,at,0
+ *50057c: 0001083c dsll32 at,at,0x0
+ *500580: 00a1282d daddu a1,a1,at
+ *500584: 8ca44720 lw a0,18208\(a1\)
+ *500588: 3c010000 lui at,0x0
+ *50058c: 3c050076 lui a1,0x76
+ *500590: 24210000 addiu at,at,0
+ *500594: 0001083c dsll32 at,at,0x0
+ *500598: 00a1282d daddu a1,a1,at
+ *50059c: 8ca45820 lw a0,22560\(a1\)
+ *5005a0: 3c010000 lui at,0x0
+ *5005a4: 3c050076 lui a1,0x76
+ *5005a8: 24210000 addiu at,at,0
+ *5005ac: 0001083c dsll32 at,at,0x0
+ *5005b0: 00a1282d daddu a1,a1,at
+ *5005b4: 8ca45c08 lw a0,23560\(a1\)
+ *5005b8: 3c010000 lui at,0x0
+ *5005bc: 3c050076 lui a1,0x76
+ *5005c0: 24210000 addiu at,at,0
+ *5005c4: 0001083c dsll32 at,at,0x0
+ *5005c8: 00a1282d daddu a1,a1,at
+ *5005cc: 8ca45430 lw a0,21552\(a1\)
+ *5005d0: 3c010000 lui at,0x0
+ *5005d4: 3c050076 lui a1,0x76
+ *5005d8: 24210000 addiu at,at,0
+ *5005dc: 0001083c dsll32 at,at,0x0
+ *5005e0: 00a1282d daddu a1,a1,at
+ *5005e4: 8ca45c09 lw a0,23561\(a1\)
+ *5005e8: 3c010000 lui at,0x0
+ *5005ec: 3c050000 lui a1,0x0
+ *5005f0: 24210000 addiu at,at,0
+ *5005f4: 0001083c dsll32 at,at,0x0
+ *5005f8: 00a1282d daddu a1,a1,at
+ *5005fc: 8ca40001 lw a0,1\(a1\)
+ *500600: 3c010000 lui at,0x0
+ *500604: 3c050065 lui a1,0x65
+ *500608: 24210000 addiu at,at,0
+ *50060c: 0001083c dsll32 at,at,0x0
+ *500610: 00a1282d daddu a1,a1,at
+ *500614: 8ca44321 lw a0,17185\(a1\)
+ *500618: 3c010000 lui at,0x0
+ *50061c: 3c050065 lui a1,0x65
+ *500620: 24210000 addiu at,at,0
+ *500624: 0001083c dsll32 at,at,0x0
+ *500628: 00a1282d daddu a1,a1,at
+ *50062c: 8ca44325 lw a0,17189\(a1\)
+ *500630: 3c010000 lui at,0x0
+ *500634: 3c050065 lui a1,0x65
+ *500638: 24210000 addiu at,at,0
+ *50063c: 0001083c dsll32 at,at,0x0
+ *500640: 00a1282d daddu a1,a1,at
+ *500644: 8ca44331 lw a0,17201\(a1\)
+ *500648: 3c010000 lui at,0x0
+ *50064c: 3c050065 lui a1,0x65
+ *500650: 24210000 addiu at,at,0
+ *500654: 0001083c dsll32 at,at,0x0
+ *500658: 00a1282d daddu a1,a1,at
+ *50065c: 8ca44721 lw a0,18209\(a1\)
+ *500660: 3c010000 lui at,0x0
+ *500664: 3c050076 lui a1,0x76
+ *500668: 24210000 addiu at,at,0
+ *50066c: 0001083c dsll32 at,at,0x0
+ *500670: 00a1282d daddu a1,a1,at
+ *500674: 8ca45821 lw a0,22561\(a1\)
+ *500678: 3c010000 lui at,0x0
+ *50067c: 3c050076 lui a1,0x76
+ *500680: 24210000 addiu at,at,0
+ *500684: 0001083c dsll32 at,at,0x0
+ *500688: 00a1282d daddu a1,a1,at
+ *50068c: 8ca45c09 lw a0,23561\(a1\)
+ *500690: 3c010000 lui at,0x0
+ *500694: 3c050076 lui a1,0x76
+ *500698: 24210000 addiu at,at,0
+ *50069c: 0001083c dsll32 at,at,0x0
+ *5006a0: 00a1282d daddu a1,a1,at
+ *5006a4: 8ca45431 lw a0,21553\(a1\)
+ *5006a8: 3c010000 lui at,0x0
+ *5006ac: 3c050076 lui a1,0x76
+ *5006b0: 24210000 addiu at,at,0
+ *5006b4: 0001083c dsll32 at,at,0x0
+ *5006b8: 00a1282d daddu a1,a1,at
+ *5006bc: 8ca45c0a lw a0,23562\(a1\)
+ *5006c0: 3c010001 lui at,0x1
+ *5006c4: 3c058001 lui a1,0x8001
+ *5006c8: 24218001 addiu at,at,-32767
+ *5006cc: 0001083c dsll32 at,at,0x0
+ *5006d0: 00a1282d daddu a1,a1,at
+ *5006d4: 8ca48000 lw a0,-32768\(a1\)
+ *5006d8: 3c010001 lui at,0x1
+ *5006dc: 3c058066 lui a1,0x8066
+ *5006e0: 24218001 addiu at,at,-32767
+ *5006e4: 0001083c dsll32 at,at,0x0
+ *5006e8: 00a1282d daddu a1,a1,at
+ *5006ec: 8ca4c320 lw a0,-15584\(a1\)
+ *5006f0: 3c010001 lui at,0x1
+ *5006f4: 3c058066 lui a1,0x8066
+ *5006f8: 24218001 addiu at,at,-32767
+ *5006fc: 0001083c dsll32 at,at,0x0
+ *500700: 00a1282d daddu a1,a1,at
+ *500704: 8ca4c324 lw a0,-15580\(a1\)
+ *500708: 3c010001 lui at,0x1
+ *50070c: 3c058066 lui a1,0x8066
+ *500710: 24218001 addiu at,at,-32767
+ *500714: 0001083c dsll32 at,at,0x0
+ *500718: 00a1282d daddu a1,a1,at
+ *50071c: 8ca4c330 lw a0,-15568\(a1\)
+ *500720: 3c010001 lui at,0x1
+ *500724: 3c058066 lui a1,0x8066
+ *500728: 24218001 addiu at,at,-32767
+ *50072c: 0001083c dsll32 at,at,0x0
+ *500730: 00a1282d daddu a1,a1,at
+ *500734: 8ca4c720 lw a0,-14560\(a1\)
+ *500738: 3c010001 lui at,0x1
+ *50073c: 3c058077 lui a1,0x8077
+ *500740: 24218001 addiu at,at,-32767
+ *500744: 0001083c dsll32 at,at,0x0
+ *500748: 00a1282d daddu a1,a1,at
+ *50074c: 8ca4d820 lw a0,-10208\(a1\)
+ *500750: 3c010001 lui at,0x1
+ *500754: 3c058077 lui a1,0x8077
+ *500758: 24218001 addiu at,at,-32767
+ *50075c: 0001083c dsll32 at,at,0x0
+ *500760: 00a1282d daddu a1,a1,at
+ *500764: 8ca4dc08 lw a0,-9208\(a1\)
+ *500768: 3c010001 lui at,0x1
+ *50076c: 3c058077 lui a1,0x8077
+ *500770: 24218001 addiu at,at,-32767
+ *500774: 0001083c dsll32 at,at,0x0
+ *500778: 00a1282d daddu a1,a1,at
+ *50077c: 8ca4d430 lw a0,-11216\(a1\)
+ *500780: 3c010001 lui at,0x1
+ *500784: 3c058077 lui a1,0x8077
+ *500788: 24218001 addiu at,at,-32767
+ *50078c: 0001083c dsll32 at,at,0x0
+ *500790: 00a1282d daddu a1,a1,at
+ *500794: 8ca4dc09 lw a0,-9207\(a1\)
+ *500798: 3c010000 lui at,0x0
+ *50079c: 3c058000 lui a1,0x8000
+ *5007a0: 24218000 addiu at,at,-32768
+ *5007a4: 0001083c dsll32 at,at,0x0
+ *5007a8: 00a1282d daddu a1,a1,at
+ *5007ac: 8ca48000 lw a0,-32768\(a1\)
+ *5007b0: 3c010000 lui at,0x0
+ *5007b4: 3c058065 lui a1,0x8065
+ *5007b8: 24218000 addiu at,at,-32768
+ *5007bc: 0001083c dsll32 at,at,0x0
+ *5007c0: 00a1282d daddu a1,a1,at
+ *5007c4: 8ca4c320 lw a0,-15584\(a1\)
+ *5007c8: 3c010000 lui at,0x0
+ *5007cc: 3c058065 lui a1,0x8065
+ *5007d0: 24218000 addiu at,at,-32768
+ *5007d4: 0001083c dsll32 at,at,0x0
+ *5007d8: 00a1282d daddu a1,a1,at
+ *5007dc: 8ca4c324 lw a0,-15580\(a1\)
+ *5007e0: 3c010000 lui at,0x0
+ *5007e4: 3c058065 lui a1,0x8065
+ *5007e8: 24218000 addiu at,at,-32768
+ *5007ec: 0001083c dsll32 at,at,0x0
+ *5007f0: 00a1282d daddu a1,a1,at
+ *5007f4: 8ca4c330 lw a0,-15568\(a1\)
+ *5007f8: 3c010000 lui at,0x0
+ *5007fc: 3c058065 lui a1,0x8065
+ *500800: 24218000 addiu at,at,-32768
+ *500804: 0001083c dsll32 at,at,0x0
+ *500808: 00a1282d daddu a1,a1,at
+ *50080c: 8ca4c720 lw a0,-14560\(a1\)
+ *500810: 3c010000 lui at,0x0
+ *500814: 3c058076 lui a1,0x8076
+ *500818: 24218000 addiu at,at,-32768
+ *50081c: 0001083c dsll32 at,at,0x0
+ *500820: 00a1282d daddu a1,a1,at
+ *500824: 8ca4d820 lw a0,-10208\(a1\)
+ *500828: 3c010000 lui at,0x0
+ *50082c: 3c058076 lui a1,0x8076
+ *500830: 24218000 addiu at,at,-32768
+ *500834: 0001083c dsll32 at,at,0x0
+ *500838: 00a1282d daddu a1,a1,at
+ *50083c: 8ca4dc08 lw a0,-9208\(a1\)
+ *500840: 3c010000 lui at,0x0
+ *500844: 3c058076 lui a1,0x8076
+ *500848: 24218000 addiu at,at,-32768
+ *50084c: 0001083c dsll32 at,at,0x0
+ *500850: 00a1282d daddu a1,a1,at
+ *500854: 8ca4d430 lw a0,-11216\(a1\)
+ *500858: 3c010000 lui at,0x0
+ *50085c: 3c058076 lui a1,0x8076
+ *500860: 24218000 addiu at,at,-32768
+ *500864: 0001083c dsll32 at,at,0x0
+ *500868: 00a1282d daddu a1,a1,at
+ *50086c: 8ca4dc09 lw a0,-9207\(a1\)
+ *500870: 3c010001 lui at,0x1
+ *500874: 3c050001 lui a1,0x1
+ *500878: 24210001 addiu at,at,1
+ *50087c: 0001083c dsll32 at,at,0x0
+ *500880: 00a1282d daddu a1,a1,at
+ *500884: 8ca40000 lw a0,0\(a1\)
+ *500888: 3c010001 lui at,0x1
+ *50088c: 3c050066 lui a1,0x66
+ *500890: 24210001 addiu at,at,1
+ *500894: 0001083c dsll32 at,at,0x0
+ *500898: 00a1282d daddu a1,a1,at
+ *50089c: 8ca44320 lw a0,17184\(a1\)
+ *5008a0: 3c010001 lui at,0x1
+ *5008a4: 3c050066 lui a1,0x66
+ *5008a8: 24210001 addiu at,at,1
+ *5008ac: 0001083c dsll32 at,at,0x0
+ *5008b0: 00a1282d daddu a1,a1,at
+ *5008b4: 8ca44324 lw a0,17188\(a1\)
+ *5008b8: 3c010001 lui at,0x1
+ *5008bc: 3c050066 lui a1,0x66
+ *5008c0: 24210001 addiu at,at,1
+ *5008c4: 0001083c dsll32 at,at,0x0
+ *5008c8: 00a1282d daddu a1,a1,at
+ *5008cc: 8ca44330 lw a0,17200\(a1\)
+ *5008d0: 3c010001 lui at,0x1
+ *5008d4: 3c050066 lui a1,0x66
+ *5008d8: 24210001 addiu at,at,1
+ *5008dc: 0001083c dsll32 at,at,0x0
+ *5008e0: 00a1282d daddu a1,a1,at
+ *5008e4: 8ca44720 lw a0,18208\(a1\)
+ *5008e8: 3c010001 lui at,0x1
+ *5008ec: 3c050077 lui a1,0x77
+ *5008f0: 24210001 addiu at,at,1
+ *5008f4: 0001083c dsll32 at,at,0x0
+ *5008f8: 00a1282d daddu a1,a1,at
+ *5008fc: 8ca45820 lw a0,22560\(a1\)
+ *500900: 3c010001 lui at,0x1
+ *500904: 3c050077 lui a1,0x77
+ *500908: 24210001 addiu at,at,1
+ *50090c: 0001083c dsll32 at,at,0x0
+ *500910: 00a1282d daddu a1,a1,at
+ *500914: 8ca45c08 lw a0,23560\(a1\)
+ *500918: 3c010001 lui at,0x1
+ *50091c: 3c050077 lui a1,0x77
+ *500920: 24210001 addiu at,at,1
+ *500924: 0001083c dsll32 at,at,0x0
+ *500928: 00a1282d daddu a1,a1,at
+ *50092c: 8ca45430 lw a0,21552\(a1\)
+ *500930: 3c010001 lui at,0x1
+ *500934: 3c050077 lui a1,0x77
+ *500938: 24210001 addiu at,at,1
+ *50093c: 0001083c dsll32 at,at,0x0
+ *500940: 00a1282d daddu a1,a1,at
+ *500944: 8ca45c09 lw a0,23561\(a1\)
+ *500948: 3c010002 lui at,0x2
+ *50094c: 3c050002 lui a1,0x2
+ *500950: 2421a5a5 addiu at,at,-23131
+ *500954: 0001083c dsll32 at,at,0x0
+ *500958: 00a1282d daddu a1,a1,at
+ *50095c: 8ca4a5a5 lw a0,-23131\(a1\)
+ *500960: 3c010002 lui at,0x2
+ *500964: 3c050067 lui a1,0x67
+ *500968: 2421a5a5 addiu at,at,-23131
+ *50096c: 0001083c dsll32 at,at,0x0
+ *500970: 00a1282d daddu a1,a1,at
+ *500974: 8ca4e8c5 lw a0,-5947\(a1\)
+ *500978: 3c010002 lui at,0x2
+ *50097c: 3c050067 lui a1,0x67
+ *500980: 2421a5a5 addiu at,at,-23131
+ *500984: 0001083c dsll32 at,at,0x0
+ *500988: 00a1282d daddu a1,a1,at
+ *50098c: 8ca4e8c9 lw a0,-5943\(a1\)
+ *500990: 3c010002 lui at,0x2
+ *500994: 3c050067 lui a1,0x67
+ *500998: 2421a5a5 addiu at,at,-23131
+ *50099c: 0001083c dsll32 at,at,0x0
+ *5009a0: 00a1282d daddu a1,a1,at
+ *5009a4: 8ca4e8d5 lw a0,-5931\(a1\)
+ *5009a8: 3c010002 lui at,0x2
+ *5009ac: 3c050067 lui a1,0x67
+ *5009b0: 2421a5a5 addiu at,at,-23131
+ *5009b4: 0001083c dsll32 at,at,0x0
+ *5009b8: 00a1282d daddu a1,a1,at
+ *5009bc: 8ca4ecc5 lw a0,-4923\(a1\)
+ *5009c0: 3c010002 lui at,0x2
+ *5009c4: 3c050078 lui a1,0x78
+ *5009c8: 2421a5a5 addiu at,at,-23131
+ *5009cc: 0001083c dsll32 at,at,0x0
+ *5009d0: 00a1282d daddu a1,a1,at
+ *5009d4: 8ca4fdc5 lw a0,-571\(a1\)
+ *5009d8: 3c010002 lui at,0x2
+ *5009dc: 3c050078 lui a1,0x78
+ *5009e0: 2421a5a5 addiu at,at,-23131
+ *5009e4: 0001083c dsll32 at,at,0x0
+ *5009e8: 00a1282d daddu a1,a1,at
+ *5009ec: 8ca401ad lw a0,429\(a1\)
+ *5009f0: 3c010002 lui at,0x2
+ *5009f4: 3c050078 lui a1,0x78
+ *5009f8: 2421a5a5 addiu at,at,-23131
+ *5009fc: 0001083c dsll32 at,at,0x0
+ *500a00: 00a1282d daddu a1,a1,at
+ *500a04: 8ca4f9d5 lw a0,-1579\(a1\)
+ *500a08: 3c010002 lui at,0x2
+ *500a0c: 3c050078 lui a1,0x78
+ *500a10: 2421a5a5 addiu at,at,-23131
+ *500a14: 0001083c dsll32 at,at,0x0
+ *500a18: 00a1282d daddu a1,a1,at
+ *500a1c: 8ca401ae lw a0,430\(a1\)
+ \.\.\.
diff --git a/ld/testsuite/ld-mips-elf/mips-hilo-srec-n64.d b/ld/testsuite/ld-mips-elf/mips-hilo-srec-n64.d
new file mode 100644
index 0000000..19ba44c
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/mips-hilo-srec-n64.d
@@ -0,0 +1,6 @@
+#name: R_MIPS_HI16 and R_MIPS_LO16 relocs srec (n64)
+#source: ../../../gas/testsuite/gas/mips/mips-hilo-n64.s
+#source: mips-hilo.s
+#objdump: -m mips:4000 -j .sec1 -D
+#ld: --oformat=srec -Tmips-hilo.ld -e 0x500000 -N
+#dump: mips-hilo-n64.d
diff --git a/ld/testsuite/ld-mips-elf/mips-hilo-srec.d b/ld/testsuite/ld-mips-elf/mips-hilo-srec.d
new file mode 100644
index 0000000..a6afb3f
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/mips-hilo-srec.d
@@ -0,0 +1,6 @@
+#name: R_MIPS_HI16 and R_MIPS_LO16 relocs srec
+#source: ../../../gas/testsuite/gas/mips/mips-hilo.s
+#source: mips-hilo.s
+#objdump: -m mips:4000 -j .sec1 -D
+#ld: --oformat=srec -Tmips-hilo.ld -e 0x500000 -N
+#dump: mips-hilo.d
diff --git a/ld/testsuite/ld-mips-elf/mips-hilo.d b/ld/testsuite/ld-mips-elf/mips-hilo.d
new file mode 100644
index 0000000..ae19f50
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/mips-hilo.d
@@ -0,0 +1,228 @@
+#name: R_MIPS_HI16 and R_MIPS_LO16 relocs
+#source: ../../../gas/testsuite/gas/mips/mips-hilo.s
+#source: mips-hilo.s
+#objdump: -d
+#ld: -Tmips-hilo.ld -e 0x500000 -N
+
+.*: file format (:?elf.*mips.*|srec)
+
+Disassembly of section \.(:?text|sec1):
+
+0*500000 <[^>]*>:
+ *500000: 3c040000 lui a0,0x0
+ *500004: 24840000 addiu a0,a0,0
+ *500008: 3c040065 lui a0,0x65
+ *50000c: 24844320 addiu a0,a0,17184
+ *500010: 3c040065 lui a0,0x65
+ *500014: 24844324 addiu a0,a0,17188
+ *500018: 3c040065 lui a0,0x65
+ *50001c: 24844330 addiu a0,a0,17200
+ *500020: 3c040065 lui a0,0x65
+ *500024: 24844720 addiu a0,a0,18208
+ *500028: 3c040076 lui a0,0x76
+ *50002c: 24845820 addiu a0,a0,22560
+ *500030: 3c040076 lui a0,0x76
+ *500034: 24845c08 addiu a0,a0,23560
+ *500038: 3c040076 lui a0,0x76
+ *50003c: 24845430 addiu a0,a0,21552
+ *500040: 3c040076 lui a0,0x76
+ *500044: 24845c09 addiu a0,a0,23561
+ *500048: 3c040000 lui a0,0x0
+ *50004c: 24840001 addiu a0,a0,1
+ *500050: 3c040065 lui a0,0x65
+ *500054: 24844321 addiu a0,a0,17185
+ *500058: 3c040065 lui a0,0x65
+ *50005c: 24844325 addiu a0,a0,17189
+ *500060: 3c040065 lui a0,0x65
+ *500064: 24844331 addiu a0,a0,17201
+ *500068: 3c040065 lui a0,0x65
+ *50006c: 24844721 addiu a0,a0,18209
+ *500070: 3c040076 lui a0,0x76
+ *500074: 24845821 addiu a0,a0,22561
+ *500078: 3c040076 lui a0,0x76
+ *50007c: 24845c09 addiu a0,a0,23561
+ *500080: 3c040076 lui a0,0x76
+ *500084: 24845431 addiu a0,a0,21553
+ *500088: 3c040076 lui a0,0x76
+ *50008c: 24845c0a addiu a0,a0,23562
+ *500090: 3c040001 lui a0,0x1
+ *500094: 24848000 addiu a0,a0,-32768
+ *500098: 3c040066 lui a0,0x66
+ *50009c: 2484c320 addiu a0,a0,-15584
+ *5000a0: 3c040066 lui a0,0x66
+ *5000a4: 2484c324 addiu a0,a0,-15580
+ *5000a8: 3c040066 lui a0,0x66
+ *5000ac: 2484c330 addiu a0,a0,-15568
+ *5000b0: 3c040066 lui a0,0x66
+ *5000b4: 2484c720 addiu a0,a0,-14560
+ *5000b8: 3c040077 lui a0,0x77
+ *5000bc: 2484d820 addiu a0,a0,-10208
+ *5000c0: 3c040077 lui a0,0x77
+ *5000c4: 2484dc08 addiu a0,a0,-9208
+ *5000c8: 3c040077 lui a0,0x77
+ *5000cc: 2484d430 addiu a0,a0,-11216
+ *5000d0: 3c040077 lui a0,0x77
+ *5000d4: 2484dc09 addiu a0,a0,-9207
+ *5000d8: 3c040000 lui a0,0x0
+ *5000dc: 24848000 addiu a0,a0,-32768
+ *5000e0: 3c040065 lui a0,0x65
+ *5000e4: 2484c320 addiu a0,a0,-15584
+ *5000e8: 3c040065 lui a0,0x65
+ *5000ec: 2484c324 addiu a0,a0,-15580
+ *5000f0: 3c040065 lui a0,0x65
+ *5000f4: 2484c330 addiu a0,a0,-15568
+ *5000f8: 3c040065 lui a0,0x65
+ *5000fc: 2484c720 addiu a0,a0,-14560
+ *500100: 3c040076 lui a0,0x76
+ *500104: 2484d820 addiu a0,a0,-10208
+ *500108: 3c040076 lui a0,0x76
+ *50010c: 2484dc08 addiu a0,a0,-9208
+ *500110: 3c040076 lui a0,0x76
+ *500114: 2484d430 addiu a0,a0,-11216
+ *500118: 3c040076 lui a0,0x76
+ *50011c: 2484dc09 addiu a0,a0,-9207
+ *500120: 3c040001 lui a0,0x1
+ *500124: 24840000 addiu a0,a0,0
+ *500128: 3c040066 lui a0,0x66
+ *50012c: 24844320 addiu a0,a0,17184
+ *500130: 3c040066 lui a0,0x66
+ *500134: 24844324 addiu a0,a0,17188
+ *500138: 3c040066 lui a0,0x66
+ *50013c: 24844330 addiu a0,a0,17200
+ *500140: 3c040066 lui a0,0x66
+ *500144: 24844720 addiu a0,a0,18208
+ *500148: 3c040077 lui a0,0x77
+ *50014c: 24845820 addiu a0,a0,22560
+ *500150: 3c040077 lui a0,0x77
+ *500154: 24845c08 addiu a0,a0,23560
+ *500158: 3c040077 lui a0,0x77
+ *50015c: 24845430 addiu a0,a0,21552
+ *500160: 3c040077 lui a0,0x77
+ *500164: 24845c09 addiu a0,a0,23561
+ *500168: 3c040002 lui a0,0x2
+ *50016c: 2484a5a5 addiu a0,a0,-23131
+ *500170: 3c040067 lui a0,0x67
+ *500174: 2484e8c5 addiu a0,a0,-5947
+ *500178: 3c040067 lui a0,0x67
+ *50017c: 2484e8c9 addiu a0,a0,-5943
+ *500180: 3c040067 lui a0,0x67
+ *500184: 2484e8d5 addiu a0,a0,-5931
+ *500188: 3c040067 lui a0,0x67
+ *50018c: 2484ecc5 addiu a0,a0,-4923
+ *500190: 3c040078 lui a0,0x78
+ *500194: 2484fdc5 addiu a0,a0,-571
+ *500198: 3c040078 lui a0,0x78
+ *50019c: 248401ad addiu a0,a0,429
+ *5001a0: 3c040078 lui a0,0x78
+ *5001a4: 2484f9d5 addiu a0,a0,-1579
+ *5001a8: 3c040078 lui a0,0x78
+ *5001ac: 248401ae addiu a0,a0,430
+ *5001b0: 3c050000 lui a1,0x0
+ *5001b4: 8ca40000 lw a0,0\(a1\)
+ *5001b8: 3c050065 lui a1,0x65
+ *5001bc: 8ca44320 lw a0,17184\(a1\)
+ *5001c0: 3c050065 lui a1,0x65
+ *5001c4: 8ca44324 lw a0,17188\(a1\)
+ *5001c8: 3c050065 lui a1,0x65
+ *5001cc: 8ca44330 lw a0,17200\(a1\)
+ *5001d0: 3c050065 lui a1,0x65
+ *5001d4: 8ca44720 lw a0,18208\(a1\)
+ *5001d8: 3c050076 lui a1,0x76
+ *5001dc: 8ca45820 lw a0,22560\(a1\)
+ *5001e0: 3c050076 lui a1,0x76
+ *5001e4: 8ca45c08 lw a0,23560\(a1\)
+ *5001e8: 3c050076 lui a1,0x76
+ *5001ec: 8ca45430 lw a0,21552\(a1\)
+ *5001f0: 3c050076 lui a1,0x76
+ *5001f4: 8ca45c09 lw a0,23561\(a1\)
+ *5001f8: 3c050000 lui a1,0x0
+ *5001fc: 8ca40001 lw a0,1\(a1\)
+ *500200: 3c050065 lui a1,0x65
+ *500204: 8ca44321 lw a0,17185\(a1\)
+ *500208: 3c050065 lui a1,0x65
+ *50020c: 8ca44325 lw a0,17189\(a1\)
+ *500210: 3c050065 lui a1,0x65
+ *500214: 8ca44331 lw a0,17201\(a1\)
+ *500218: 3c050065 lui a1,0x65
+ *50021c: 8ca44721 lw a0,18209\(a1\)
+ *500220: 3c050076 lui a1,0x76
+ *500224: 8ca45821 lw a0,22561\(a1\)
+ *500228: 3c050076 lui a1,0x76
+ *50022c: 8ca45c09 lw a0,23561\(a1\)
+ *500230: 3c050076 lui a1,0x76
+ *500234: 8ca45431 lw a0,21553\(a1\)
+ *500238: 3c050076 lui a1,0x76
+ *50023c: 8ca45c0a lw a0,23562\(a1\)
+ *500240: 3c050001 lui a1,0x1
+ *500244: 8ca48000 lw a0,-32768\(a1\)
+ *500248: 3c050066 lui a1,0x66
+ *50024c: 8ca4c320 lw a0,-15584\(a1\)
+ *500250: 3c050066 lui a1,0x66
+ *500254: 8ca4c324 lw a0,-15580\(a1\)
+ *500258: 3c050066 lui a1,0x66
+ *50025c: 8ca4c330 lw a0,-15568\(a1\)
+ *500260: 3c050066 lui a1,0x66
+ *500264: 8ca4c720 lw a0,-14560\(a1\)
+ *500268: 3c050077 lui a1,0x77
+ *50026c: 8ca4d820 lw a0,-10208\(a1\)
+ *500270: 3c050077 lui a1,0x77
+ *500274: 8ca4dc08 lw a0,-9208\(a1\)
+ *500278: 3c050077 lui a1,0x77
+ *50027c: 8ca4d430 lw a0,-11216\(a1\)
+ *500280: 3c050077 lui a1,0x77
+ *500284: 8ca4dc09 lw a0,-9207\(a1\)
+ *500288: 3c050000 lui a1,0x0
+ *50028c: 8ca48000 lw a0,-32768\(a1\)
+ *500290: 3c050065 lui a1,0x65
+ *500294: 8ca4c320 lw a0,-15584\(a1\)
+ *500298: 3c050065 lui a1,0x65
+ *50029c: 8ca4c324 lw a0,-15580\(a1\)
+ *5002a0: 3c050065 lui a1,0x65
+ *5002a4: 8ca4c330 lw a0,-15568\(a1\)
+ *5002a8: 3c050065 lui a1,0x65
+ *5002ac: 8ca4c720 lw a0,-14560\(a1\)
+ *5002b0: 3c050076 lui a1,0x76
+ *5002b4: 8ca4d820 lw a0,-10208\(a1\)
+ *5002b8: 3c050076 lui a1,0x76
+ *5002bc: 8ca4dc08 lw a0,-9208\(a1\)
+ *5002c0: 3c050076 lui a1,0x76
+ *5002c4: 8ca4d430 lw a0,-11216\(a1\)
+ *5002c8: 3c050076 lui a1,0x76
+ *5002cc: 8ca4dc09 lw a0,-9207\(a1\)
+ *5002d0: 3c050001 lui a1,0x1
+ *5002d4: 8ca40000 lw a0,0\(a1\)
+ *5002d8: 3c050066 lui a1,0x66
+ *5002dc: 8ca44320 lw a0,17184\(a1\)
+ *5002e0: 3c050066 lui a1,0x66
+ *5002e4: 8ca44324 lw a0,17188\(a1\)
+ *5002e8: 3c050066 lui a1,0x66
+ *5002ec: 8ca44330 lw a0,17200\(a1\)
+ *5002f0: 3c050066 lui a1,0x66
+ *5002f4: 8ca44720 lw a0,18208\(a1\)
+ *5002f8: 3c050077 lui a1,0x77
+ *5002fc: 8ca45820 lw a0,22560\(a1\)
+ *500300: 3c050077 lui a1,0x77
+ *500304: 8ca45c08 lw a0,23560\(a1\)
+ *500308: 3c050077 lui a1,0x77
+ *50030c: 8ca45430 lw a0,21552\(a1\)
+ *500310: 3c050077 lui a1,0x77
+ *500314: 8ca45c09 lw a0,23561\(a1\)
+ *500318: 3c050002 lui a1,0x2
+ *50031c: 8ca4a5a5 lw a0,-23131\(a1\)
+ *500320: 3c050067 lui a1,0x67
+ *500324: 8ca4e8c5 lw a0,-5947\(a1\)
+ *500328: 3c050067 lui a1,0x67
+ *50032c: 8ca4e8c9 lw a0,-5943\(a1\)
+ *500330: 3c050067 lui a1,0x67
+ *500334: 8ca4e8d5 lw a0,-5931\(a1\)
+ *500338: 3c050067 lui a1,0x67
+ *50033c: 8ca4ecc5 lw a0,-4923\(a1\)
+ *500340: 3c050078 lui a1,0x78
+ *500344: 8ca4fdc5 lw a0,-571\(a1\)
+ *500348: 3c050078 lui a1,0x78
+ *50034c: 8ca401ad lw a0,429\(a1\)
+ *500350: 3c050078 lui a1,0x78
+ *500354: 8ca4f9d5 lw a0,-1579\(a1\)
+ *500358: 3c050078 lui a1,0x78
+ *50035c: 8ca401ae lw a0,430\(a1\)
+ \.\.\.
diff --git a/ld/testsuite/ld-mips-elf/mips16-hilo.ld b/ld/testsuite/ld-mips-elf/mips-hilo.ld
index 1b54352..ce13411 100644
--- a/ld/testsuite/ld-mips-elf/mips16-hilo.ld
+++ b/ld/testsuite/ld-mips-elf/mips-hilo.ld
@@ -5,8 +5,9 @@ SECTIONS
. = 0x0654320;
.data : { *(.data) }
.sdata : { *(.sdata) }
+ .MIPS.abiflags : { *(.MIPS.abiflags) }
. = 0x0765430;
.bss : { *(.bss) *(COMMON) }
- .sbss : { *(.sbss) *(.scommon) }
+ .sbss : { *(.scommon) *(.sbss) }
/DISCARD/ : { *(*) }
}
diff --git a/ld/testsuite/ld-mips-elf/mips-hilo.s b/ld/testsuite/ld-mips-elf/mips-hilo.s
new file mode 100644
index 0000000..79ac2fb
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/mips-hilo.s
@@ -0,0 +1,14 @@
+ .data
+ .globl big_external_data_label
+big_external_data_label:
+ .fill 1000
+
+# align section end to 16-byte boundary for easier testing on multiple targets
+ .p2align 4
+
+ .globl small_external_data_label
+small_external_data_label:
+ .fill 1
+
+# align section end to 16-byte boundary for easier testing on multiple targets
+ .p2align 4
diff --git a/ld/testsuite/ld-mips-elf/mips16-hilo-n32.d b/ld/testsuite/ld-mips-elf/mips16-hilo-n32.d
deleted file mode 100644
index 8d70b35..0000000
--- a/ld/testsuite/ld-mips-elf/mips16-hilo-n32.d
+++ /dev/null
@@ -1,337 +0,0 @@
-#name: R_MIPS16_HI16 and R_MIPS16_LO16 relocs n32
-#source: ../../../gas/testsuite/gas/mips/mips16-hilo.s
-#source: mips16-hilo.s
-#objdump: -mmips:16 --prefix-addresses -tdr --show-raw-insn
-#ld: -Tmips16-hilo.ld -e 0x500000 -N
-
-.*: file format elf.*mips.*
-
-#...
-
-Disassembly of section .text:
-0+500000 <[^>]*> 6c00 li a0,0
-0+500002 <[^>]*> f400 3480 sll a0,16
-0+500006 <[^>]*> 4c00 addiu a0,0
-0+500008 <[^>]*> f060 6c05 li a0,101
-0+50000c <[^>]*> f400 3480 sll a0,16
-0+500010 <[^>]*> f328 4c00 addiu a0,17184
-0+500014 <[^>]*> f060 6c05 li a0,101
-0+500018 <[^>]*> f400 3480 sll a0,16
-0+50001c <[^>]*> f328 4c04 addiu a0,17188
-0+500020 <[^>]*> f060 6c05 li a0,101
-0+500024 <[^>]*> f400 3480 sll a0,16
-0+500028 <[^>]*> f328 4c10 addiu a0,17200
-0+50002c <[^>]*> f060 6c05 li a0,101
-0+500030 <[^>]*> f400 3480 sll a0,16
-0+500034 <[^>]*> f728 4c00 addiu a0,18208
-0+500038 <[^>]*> f060 6c16 li a0,118
-0+50003c <[^>]*> f400 3480 sll a0,16
-0+500040 <[^>]*> f02b 4c00 addiu a0,22560
-0+500044 <[^>]*> f060 6c16 li a0,118
-0+500048 <[^>]*> f400 3480 sll a0,16
-0+50004c <[^>]*> f40b 4c09 addiu a0,23561
-0+500050 <[^>]*> f060 6c16 li a0,118
-0+500054 <[^>]*> f400 3480 sll a0,16
-0+500058 <[^>]*> f42a 4c10 addiu a0,21552
-0+50005c <[^>]*> f060 6c16 li a0,118
-0+500060 <[^>]*> f400 3480 sll a0,16
-0+500064 <[^>]*> f40b 4c08 addiu a0,23560
-0+500068 <[^>]*> 6c00 li a0,0
-0+50006a <[^>]*> f400 3480 sll a0,16
-0+50006e <[^>]*> 4c01 addiu a0,1
-0+500070 <[^>]*> f060 6c05 li a0,101
-0+500074 <[^>]*> f400 3480 sll a0,16
-0+500078 <[^>]*> f328 4c01 addiu a0,17185
-0+50007c <[^>]*> f060 6c05 li a0,101
-0+500080 <[^>]*> f400 3480 sll a0,16
-0+500084 <[^>]*> f328 4c05 addiu a0,17189
-0+500088 <[^>]*> f060 6c05 li a0,101
-0+50008c <[^>]*> f400 3480 sll a0,16
-0+500090 <[^>]*> f328 4c11 addiu a0,17201
-0+500094 <[^>]*> f060 6c05 li a0,101
-0+500098 <[^>]*> f400 3480 sll a0,16
-0+50009c <[^>]*> f728 4c01 addiu a0,18209
-0+5000a0 <[^>]*> f060 6c16 li a0,118
-0+5000a4 <[^>]*> f400 3480 sll a0,16
-0+5000a8 <[^>]*> f02b 4c01 addiu a0,22561
-0+5000ac <[^>]*> f060 6c16 li a0,118
-0+5000b0 <[^>]*> f400 3480 sll a0,16
-0+5000b4 <[^>]*> f40b 4c0a addiu a0,23562
-0+5000b8 <[^>]*> f060 6c16 li a0,118
-0+5000bc <[^>]*> f400 3480 sll a0,16
-0+5000c0 <[^>]*> f42a 4c11 addiu a0,21553
-0+5000c4 <[^>]*> f060 6c16 li a0,118
-0+5000c8 <[^>]*> f400 3480 sll a0,16
-0+5000cc <[^>]*> f40b 4c09 addiu a0,23561
-0+5000d0 <[^>]*> 6c01 li a0,1
-0+5000d2 <[^>]*> f400 3480 sll a0,16
-0+5000d6 <[^>]*> f010 4c00 addiu a0,-32768
-0+5000da <[^>]*> f060 6c06 li a0,102
-0+5000de <[^>]*> f400 3480 sll a0,16
-0+5000e2 <[^>]*> f338 4c00 addiu a0,-15584
-0+5000e6 <[^>]*> f060 6c06 li a0,102
-0+5000ea <[^>]*> f400 3480 sll a0,16
-0+5000ee <[^>]*> f338 4c04 addiu a0,-15580
-0+5000f2 <[^>]*> f060 6c06 li a0,102
-0+5000f6 <[^>]*> f400 3480 sll a0,16
-0+5000fa <[^>]*> f338 4c10 addiu a0,-15568
-0+5000fe <[^>]*> f060 6c06 li a0,102
-0+500102 <[^>]*> f400 3480 sll a0,16
-0+500106 <[^>]*> f738 4c00 addiu a0,-14560
-0+50010a <[^>]*> f060 6c17 li a0,119
-0+50010e <[^>]*> f400 3480 sll a0,16
-0+500112 <[^>]*> f03b 4c00 addiu a0,-10208
-0+500116 <[^>]*> f060 6c17 li a0,119
-0+50011a <[^>]*> f400 3480 sll a0,16
-0+50011e <[^>]*> f41b 4c09 addiu a0,-9207
-0+500122 <[^>]*> f060 6c17 li a0,119
-0+500126 <[^>]*> f400 3480 sll a0,16
-0+50012a <[^>]*> f43a 4c10 addiu a0,-11216
-0+50012e <[^>]*> f060 6c17 li a0,119
-0+500132 <[^>]*> f400 3480 sll a0,16
-0+500136 <[^>]*> f41b 4c08 addiu a0,-9208
-0+50013a <[^>]*> 6c00 li a0,0
-0+50013c <[^>]*> f400 3480 sll a0,16
-0+500140 <[^>]*> f010 4c00 addiu a0,-32768
-0+500144 <[^>]*> f060 6c05 li a0,101
-0+500148 <[^>]*> f400 3480 sll a0,16
-0+50014c <[^>]*> f338 4c00 addiu a0,-15584
-0+500150 <[^>]*> f060 6c05 li a0,101
-0+500154 <[^>]*> f400 3480 sll a0,16
-0+500158 <[^>]*> f338 4c04 addiu a0,-15580
-0+50015c <[^>]*> f060 6c05 li a0,101
-0+500160 <[^>]*> f400 3480 sll a0,16
-0+500164 <[^>]*> f338 4c10 addiu a0,-15568
-0+500168 <[^>]*> f060 6c05 li a0,101
-0+50016c <[^>]*> f400 3480 sll a0,16
-0+500170 <[^>]*> f738 4c00 addiu a0,-14560
-0+500174 <[^>]*> f060 6c16 li a0,118
-0+500178 <[^>]*> f400 3480 sll a0,16
-0+50017c <[^>]*> f03b 4c00 addiu a0,-10208
-0+500180 <[^>]*> f060 6c16 li a0,118
-0+500184 <[^>]*> f400 3480 sll a0,16
-0+500188 <[^>]*> f41b 4c09 addiu a0,-9207
-0+50018c <[^>]*> f060 6c16 li a0,118
-0+500190 <[^>]*> f400 3480 sll a0,16
-0+500194 <[^>]*> f43a 4c10 addiu a0,-11216
-0+500198 <[^>]*> f060 6c16 li a0,118
-0+50019c <[^>]*> f400 3480 sll a0,16
-0+5001a0 <[^>]*> f41b 4c08 addiu a0,-9208
-0+5001a4 <[^>]*> 6c01 li a0,1
-0+5001a6 <[^>]*> f400 3480 sll a0,16
-0+5001aa <[^>]*> 4c00 addiu a0,0
-0+5001ac <[^>]*> f060 6c06 li a0,102
-0+5001b0 <[^>]*> f400 3480 sll a0,16
-0+5001b4 <[^>]*> f328 4c00 addiu a0,17184
-0+5001b8 <[^>]*> f060 6c06 li a0,102
-0+5001bc <[^>]*> f400 3480 sll a0,16
-0+5001c0 <[^>]*> f328 4c04 addiu a0,17188
-0+5001c4 <[^>]*> f060 6c06 li a0,102
-0+5001c8 <[^>]*> f400 3480 sll a0,16
-0+5001cc <[^>]*> f328 4c10 addiu a0,17200
-0+5001d0 <[^>]*> f060 6c06 li a0,102
-0+5001d4 <[^>]*> f400 3480 sll a0,16
-0+5001d8 <[^>]*> f728 4c00 addiu a0,18208
-0+5001dc <[^>]*> f060 6c17 li a0,119
-0+5001e0 <[^>]*> f400 3480 sll a0,16
-0+5001e4 <[^>]*> f02b 4c00 addiu a0,22560
-0+5001e8 <[^>]*> f060 6c17 li a0,119
-0+5001ec <[^>]*> f400 3480 sll a0,16
-0+5001f0 <[^>]*> f40b 4c09 addiu a0,23561
-0+5001f4 <[^>]*> f060 6c17 li a0,119
-0+5001f8 <[^>]*> f400 3480 sll a0,16
-0+5001fc <[^>]*> f42a 4c10 addiu a0,21552
-0+500200 <[^>]*> f060 6c17 li a0,119
-0+500204 <[^>]*> f400 3480 sll a0,16
-0+500208 <[^>]*> f40b 4c08 addiu a0,23560
-0+50020c <[^>]*> 6c02 li a0,2
-0+50020e <[^>]*> f400 3480 sll a0,16
-0+500212 <[^>]*> f5b4 4c05 addiu a0,-23131
-0+500216 <[^>]*> f060 6c07 li a0,103
-0+50021a <[^>]*> f400 3480 sll a0,16
-0+50021e <[^>]*> f0dd 4c05 addiu a0,-5947
-0+500222 <[^>]*> f060 6c07 li a0,103
-0+500226 <[^>]*> f400 3480 sll a0,16
-0+50022a <[^>]*> f0dd 4c09 addiu a0,-5943
-0+50022e <[^>]*> f060 6c07 li a0,103
-0+500232 <[^>]*> f400 3480 sll a0,16
-0+500236 <[^>]*> f0dd 4c15 addiu a0,-5931
-0+50023a <[^>]*> f060 6c07 li a0,103
-0+50023e <[^>]*> f400 3480 sll a0,16
-0+500242 <[^>]*> f4dd 4c05 addiu a0,-4923
-0+500246 <[^>]*> f060 6c18 li a0,120
-0+50024a <[^>]*> f400 3480 sll a0,16
-0+50024e <[^>]*> f5df 4c05 addiu a0,-571
-0+500252 <[^>]*> f060 6c18 li a0,120
-0+500256 <[^>]*> f400 3480 sll a0,16
-0+50025a <[^>]*> f1a0 4c0e addiu a0,430
-0+50025e <[^>]*> f060 6c18 li a0,120
-0+500262 <[^>]*> f400 3480 sll a0,16
-0+500266 <[^>]*> f1df 4c15 addiu a0,-1579
-0+50026a <[^>]*> f060 6c18 li a0,120
-0+50026e <[^>]*> f400 3480 sll a0,16
-0+500272 <[^>]*> f1a0 4c0d addiu a0,429
-0+500276 <[^>]*> 6d00 li a1,0
-0+500278 <[^>]*> f400 35a0 sll a1,16
-0+50027c <[^>]*> 9d80 lw a0,0\(a1\)
-0+50027e <[^>]*> f060 6d05 li a1,101
-0+500282 <[^>]*> f400 35a0 sll a1,16
-0+500286 <[^>]*> f060 9d85 lw a0,101\(a1\)
-0+50028a <[^>]*> f060 6d05 li a1,101
-0+50028e <[^>]*> f400 35a0 sll a1,16
-0+500292 <[^>]*> f060 9d85 lw a0,101\(a1\)
-0+500296 <[^>]*> f060 6d05 li a1,101
-0+50029a <[^>]*> f400 35a0 sll a1,16
-0+50029e <[^>]*> f328 9d90 lw a0,17200\(a1\)
-0+5002a2 <[^>]*> f060 6d05 li a1,101
-0+5002a6 <[^>]*> f400 35a0 sll a1,16
-0+5002aa <[^>]*> f728 9d80 lw a0,18208\(a1\)
-0+5002ae <[^>]*> f060 6d16 li a1,118
-0+5002b2 <[^>]*> f400 35a0 sll a1,16
-0+5002b6 <[^>]*> f02b 9d80 lw a0,22560\(a1\)
-0+5002ba <[^>]*> f060 6d16 li a1,118
-0+5002be <[^>]*> f400 35a0 sll a1,16
-0+5002c2 <[^>]*> f40b 9d89 lw a0,23561\(a1\)
-0+5002c6 <[^>]*> f060 6d16 li a1,118
-0+5002ca <[^>]*> f400 35a0 sll a1,16
-0+5002ce <[^>]*> f42a 9d90 lw a0,21552\(a1\)
-0+5002d2 <[^>]*> f060 6d16 li a1,118
-0+5002d6 <[^>]*> f400 35a0 sll a1,16
-0+5002da <[^>]*> f40b 9d88 lw a0,23560\(a1\)
-0+5002de <[^>]*> 6d00 li a1,0
-0+5002e0 <[^>]*> f400 35a0 sll a1,16
-0+5002e4 <[^>]*> f000 9d81 lw a0,1\(a1\)
-0+5002e8 <[^>]*> f060 6d05 li a1,101
-0+5002ec <[^>]*> f400 35a0 sll a1,16
-0+5002f0 <[^>]*> f328 9d81 lw a0,17185\(a1\)
-0+5002f4 <[^>]*> f060 6d05 li a1,101
-0+5002f8 <[^>]*> f400 35a0 sll a1,16
-0+5002fc <[^>]*> f328 9d85 lw a0,17189\(a1\)
-0+500300 <[^>]*> f060 6d05 li a1,101
-0+500304 <[^>]*> f400 35a0 sll a1,16
-0+500308 <[^>]*> f328 9d91 lw a0,17201\(a1\)
-0+50030c <[^>]*> f060 6d05 li a1,101
-0+500310 <[^>]*> f400 35a0 sll a1,16
-0+500314 <[^>]*> f728 9d81 lw a0,18209\(a1\)
-0+500318 <[^>]*> f060 6d16 li a1,118
-0+50031c <[^>]*> f400 35a0 sll a1,16
-0+500320 <[^>]*> f02b 9d81 lw a0,22561\(a1\)
-0+500324 <[^>]*> f060 6d16 li a1,118
-0+500328 <[^>]*> f400 35a0 sll a1,16
-0+50032c <[^>]*> f40b 9d8a lw a0,23562\(a1\)
-0+500330 <[^>]*> f060 6d16 li a1,118
-0+500334 <[^>]*> f400 35a0 sll a1,16
-0+500338 <[^>]*> f42a 9d91 lw a0,21553\(a1\)
-0+50033c <[^>]*> f060 6d16 li a1,118
-0+500340 <[^>]*> f400 35a0 sll a1,16
-0+500344 <[^>]*> f40b 9d89 lw a0,23561\(a1\)
-0+500348 <[^>]*> 6d01 li a1,1
-0+50034a <[^>]*> f400 35a0 sll a1,16
-0+50034e <[^>]*> f010 9d80 lw a0,-32768\(a1\)
-0+500352 <[^>]*> f060 6d06 li a1,102
-0+500356 <[^>]*> f400 35a0 sll a1,16
-0+50035a <[^>]*> f338 9d80 lw a0,-15584\(a1\)
-0+50035e <[^>]*> f060 6d06 li a1,102
-0+500362 <[^>]*> f400 35a0 sll a1,16
-0+500366 <[^>]*> f338 9d84 lw a0,-15580\(a1\)
-0+50036a <[^>]*> f060 6d06 li a1,102
-0+50036e <[^>]*> f400 35a0 sll a1,16
-0+500372 <[^>]*> f338 9d90 lw a0,-15568\(a1\)
-0+500376 <[^>]*> f060 6d06 li a1,102
-0+50037a <[^>]*> f400 35a0 sll a1,16
-0+50037e <[^>]*> f738 9d80 lw a0,-14560\(a1\)
-0+500382 <[^>]*> f060 6d17 li a1,119
-0+500386 <[^>]*> f400 35a0 sll a1,16
-0+50038a <[^>]*> f03b 9d80 lw a0,-10208\(a1\)
-0+50038e <[^>]*> f060 6d17 li a1,119
-0+500392 <[^>]*> f400 35a0 sll a1,16
-0+500396 <[^>]*> f41b 9d89 lw a0,-9207\(a1\)
-0+50039a <[^>]*> f060 6d17 li a1,119
-0+50039e <[^>]*> f400 35a0 sll a1,16
-0+5003a2 <[^>]*> f43a 9d90 lw a0,-11216\(a1\)
-0+5003a6 <[^>]*> f060 6d17 li a1,119
-0+5003aa <[^>]*> f400 35a0 sll a1,16
-0+5003ae <[^>]*> f41b 9d88 lw a0,-9208\(a1\)
-0+5003b2 <[^>]*> 6d00 li a1,0
-0+5003b4 <[^>]*> f400 35a0 sll a1,16
-0+5003b8 <[^>]*> f010 9d80 lw a0,-32768\(a1\)
-0+5003bc <[^>]*> f060 6d05 li a1,101
-0+5003c0 <[^>]*> f400 35a0 sll a1,16
-0+5003c4 <[^>]*> f338 9d80 lw a0,-15584\(a1\)
-0+5003c8 <[^>]*> f060 6d05 li a1,101
-0+5003cc <[^>]*> f400 35a0 sll a1,16
-0+5003d0 <[^>]*> f338 9d84 lw a0,-15580\(a1\)
-0+5003d4 <[^>]*> f060 6d05 li a1,101
-0+5003d8 <[^>]*> f400 35a0 sll a1,16
-0+5003dc <[^>]*> f338 9d90 lw a0,-15568\(a1\)
-0+5003e0 <[^>]*> f060 6d05 li a1,101
-0+5003e4 <[^>]*> f400 35a0 sll a1,16
-0+5003e8 <[^>]*> f738 9d80 lw a0,-14560\(a1\)
-0+5003ec <[^>]*> f060 6d16 li a1,118
-0+5003f0 <[^>]*> f400 35a0 sll a1,16
-0+5003f4 <[^>]*> f03b 9d80 lw a0,-10208\(a1\)
-0+5003f8 <[^>]*> f060 6d16 li a1,118
-0+5003fc <[^>]*> f400 35a0 sll a1,16
-0+500400 <[^>]*> f41b 9d89 lw a0,-9207\(a1\)
-0+500404 <[^>]*> f060 6d16 li a1,118
-0+500408 <[^>]*> f400 35a0 sll a1,16
-0+50040c <[^>]*> f43a 9d90 lw a0,-11216\(a1\)
-0+500410 <[^>]*> f060 6d16 li a1,118
-0+500414 <[^>]*> f400 35a0 sll a1,16
-0+500418 <[^>]*> f41b 9d88 lw a0,-9208\(a1\)
-0+50041c <[^>]*> 6d01 li a1,1
-0+50041e <[^>]*> f400 35a0 sll a1,16
-0+500422 <[^>]*> 9d80 lw a0,0\(a1\)
-0+500424 <[^>]*> f060 6d06 li a1,102
-0+500428 <[^>]*> f400 35a0 sll a1,16
-0+50042c <[^>]*> f328 9d80 lw a0,17184\(a1\)
-0+500430 <[^>]*> f060 6d06 li a1,102
-0+500434 <[^>]*> f400 35a0 sll a1,16
-0+500438 <[^>]*> f328 9d84 lw a0,17188\(a1\)
-0+50043c <[^>]*> f060 6d06 li a1,102
-0+500440 <[^>]*> f400 35a0 sll a1,16
-0+500444 <[^>]*> f328 9d90 lw a0,17200\(a1\)
-0+500448 <[^>]*> f060 6d06 li a1,102
-0+50044c <[^>]*> f400 35a0 sll a1,16
-0+500450 <[^>]*> f728 9d80 lw a0,18208\(a1\)
-0+500454 <[^>]*> f060 6d17 li a1,119
-0+500458 <[^>]*> f400 35a0 sll a1,16
-0+50045c <[^>]*> f02b 9d80 lw a0,22560\(a1\)
-0+500460 <[^>]*> f060 6d17 li a1,119
-0+500464 <[^>]*> f400 35a0 sll a1,16
-0+500468 <[^>]*> f40b 9d89 lw a0,23561\(a1\)
-0+50046c <[^>]*> f060 6d17 li a1,119
-0+500470 <[^>]*> f400 35a0 sll a1,16
-0+500474 <[^>]*> f42a 9d90 lw a0,21552\(a1\)
-0+500478 <[^>]*> f060 6d17 li a1,119
-0+50047c <[^>]*> f400 35a0 sll a1,16
-0+500480 <[^>]*> f40b 9d88 lw a0,23560\(a1\)
-0+500484 <[^>]*> 6d02 li a1,2
-0+500486 <[^>]*> f400 35a0 sll a1,16
-0+50048a <[^>]*> f5b4 9d85 lw a0,-23131\(a1\)
-0+50048e <[^>]*> f060 6d07 li a1,103
-0+500492 <[^>]*> f400 35a0 sll a1,16
-0+500496 <[^>]*> f0dd 9d85 lw a0,-5947\(a1\)
-0+50049a <[^>]*> f060 6d07 li a1,103
-0+50049e <[^>]*> f400 35a0 sll a1,16
-0+5004a2 <[^>]*> f0dd 9d89 lw a0,-5943\(a1\)
-0+5004a6 <[^>]*> f060 6d07 li a1,103
-0+5004aa <[^>]*> f400 35a0 sll a1,16
-0+5004ae <[^>]*> f0dd 9d95 lw a0,-5931\(a1\)
-0+5004b2 <[^>]*> f060 6d07 li a1,103
-0+5004b6 <[^>]*> f400 35a0 sll a1,16
-0+5004ba <[^>]*> f4dd 9d85 lw a0,-4923\(a1\)
-0+5004be <[^>]*> f060 6d18 li a1,120
-0+5004c2 <[^>]*> f400 35a0 sll a1,16
-0+5004c6 <[^>]*> f5df 9d85 lw a0,-571\(a1\)
-0+5004ca <[^>]*> f060 6d18 li a1,120
-0+5004ce <[^>]*> f400 35a0 sll a1,16
-0+5004d2 <[^>]*> f1a0 9d8e lw a0,430\(a1\)
-0+5004d6 <[^>]*> f060 6d18 li a1,120
-0+5004da <[^>]*> f400 35a0 sll a1,16
-0+5004de <[^>]*> f1df 9d95 lw a0,-1579\(a1\)
-0+5004e2 <[^>]*> f060 6d18 li a1,120
-0+5004e6 <[^>]*> f400 35a0 sll a1,16
-0+5004ea <[^>]*> f1a0 9d8d lw a0,429\(a1\)
-0+5004ee <[^>]*> 6500 nop
-#pass
diff --git a/ld/testsuite/ld-mips-elf/mips16-hilo-srec.d b/ld/testsuite/ld-mips-elf/mips16-hilo-srec.d
new file mode 100644
index 0000000..cd20d98
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/mips16-hilo-srec.d
@@ -0,0 +1,7 @@
+#name: R_MIPS16_HI16 and R_MIPS16_LO16 relocs srec
+#source: ../../../gas/testsuite/gas/mips/mips16-hilo.s
+#source: mips-hilo.s
+#as: -march=mips3
+#objdump: -mmips:16 -j .sec1 -D
+#ld: --oformat=srec -Tmips-hilo.ld -e 0x500000 -N
+#dump: mips16-hilo.d
diff --git a/ld/testsuite/ld-mips-elf/mips16-hilo.d b/ld/testsuite/ld-mips-elf/mips16-hilo.d
index 5600983..3a8dc71 100644
--- a/ld/testsuite/ld-mips-elf/mips16-hilo.d
+++ b/ld/testsuite/ld-mips-elf/mips16-hilo.d
@@ -1,337 +1,338 @@
#name: R_MIPS16_HI16 and R_MIPS16_LO16 relocs
#source: ../../../gas/testsuite/gas/mips/mips16-hilo.s
-#source: mips16-hilo.s
-#objdump: -mmips:16 --prefix-addresses -tdr --show-raw-insn
-#ld: -Tmips16-hilo.ld -e 0x500000 -N
+#source: mips-hilo.s
+#as: -march=mips3
+#objdump: -mmips:16 -d
+#ld: -Tmips-hilo.ld -e 0x500000 -N
-.*: file format elf.*mips.*
+.*: file format (:?elf.*mips.*|srec)
-#...
+Disassembly of section \.(:?text|sec1):
-Disassembly of section .text:
-0+500000 <[^>]*> 6c00 li a0,0
-0+500002 <[^>]*> f400 3480 sll a0,16
-0+500006 <[^>]*> 4c00 addiu a0,0
-0+500008 <[^>]*> f060 6c05 li a0,101
-0+50000c <[^>]*> f400 3480 sll a0,16
-0+500010 <[^>]*> f328 4c00 addiu a0,17184
-0+500014 <[^>]*> f060 6c05 li a0,101
-0+500018 <[^>]*> f400 3480 sll a0,16
-0+50001c <[^>]*> f328 4c04 addiu a0,17188
-0+500020 <[^>]*> f060 6c05 li a0,101
-0+500024 <[^>]*> f400 3480 sll a0,16
-0+500028 <[^>]*> f328 4c10 addiu a0,17200
-0+50002c <[^>]*> f060 6c05 li a0,101
-0+500030 <[^>]*> f400 3480 sll a0,16
-0+500034 <[^>]*> f728 4c00 addiu a0,18208
-0+500038 <[^>]*> f060 6c16 li a0,118
-0+50003c <[^>]*> f400 3480 sll a0,16
-0+500040 <[^>]*> f02b 4c00 addiu a0,22560
-0+500044 <[^>]*> f060 6c16 li a0,118
-0+500048 <[^>]*> f400 3480 sll a0,16
-0+50004c <[^>]*> f40b 4c09 addiu a0,23561
-0+500050 <[^>]*> f060 6c16 li a0,118
-0+500054 <[^>]*> f400 3480 sll a0,16
-0+500058 <[^>]*> f42a 4c10 addiu a0,21552
-0+50005c <[^>]*> f060 6c16 li a0,118
-0+500060 <[^>]*> f400 3480 sll a0,16
-0+500064 <[^>]*> f40b 4c08 addiu a0,23560
-0+500068 <[^>]*> 6c00 li a0,0
-0+50006a <[^>]*> f400 3480 sll a0,16
-0+50006e <[^>]*> 4c01 addiu a0,1
-0+500070 <[^>]*> f060 6c05 li a0,101
-0+500074 <[^>]*> f400 3480 sll a0,16
-0+500078 <[^>]*> f328 4c01 addiu a0,17185
-0+50007c <[^>]*> f060 6c05 li a0,101
-0+500080 <[^>]*> f400 3480 sll a0,16
-0+500084 <[^>]*> f328 4c05 addiu a0,17189
-0+500088 <[^>]*> f060 6c05 li a0,101
-0+50008c <[^>]*> f400 3480 sll a0,16
-0+500090 <[^>]*> f328 4c11 addiu a0,17201
-0+500094 <[^>]*> f060 6c05 li a0,101
-0+500098 <[^>]*> f400 3480 sll a0,16
-0+50009c <[^>]*> f728 4c01 addiu a0,18209
-0+5000a0 <[^>]*> f060 6c16 li a0,118
-0+5000a4 <[^>]*> f400 3480 sll a0,16
-0+5000a8 <[^>]*> f02b 4c01 addiu a0,22561
-0+5000ac <[^>]*> f060 6c16 li a0,118
-0+5000b0 <[^>]*> f400 3480 sll a0,16
-0+5000b4 <[^>]*> f40b 4c0a addiu a0,23562
-0+5000b8 <[^>]*> f060 6c16 li a0,118
-0+5000bc <[^>]*> f400 3480 sll a0,16
-0+5000c0 <[^>]*> f42a 4c11 addiu a0,21553
-0+5000c4 <[^>]*> f060 6c16 li a0,118
-0+5000c8 <[^>]*> f400 3480 sll a0,16
-0+5000cc <[^>]*> f40b 4c09 addiu a0,23561
-0+5000d0 <[^>]*> 6c01 li a0,1
-0+5000d2 <[^>]*> f400 3480 sll a0,16
-0+5000d6 <[^>]*> f010 4c00 addiu a0,-32768
-0+5000da <[^>]*> f060 6c06 li a0,102
-0+5000de <[^>]*> f400 3480 sll a0,16
-0+5000e2 <[^>]*> f338 4c00 addiu a0,-15584
-0+5000e6 <[^>]*> f060 6c06 li a0,102
-0+5000ea <[^>]*> f400 3480 sll a0,16
-0+5000ee <[^>]*> f338 4c04 addiu a0,-15580
-0+5000f2 <[^>]*> f060 6c06 li a0,102
-0+5000f6 <[^>]*> f400 3480 sll a0,16
-0+5000fa <[^>]*> f338 4c10 addiu a0,-15568
-0+5000fe <[^>]*> f060 6c06 li a0,102
-0+500102 <[^>]*> f400 3480 sll a0,16
-0+500106 <[^>]*> f738 4c00 addiu a0,-14560
-0+50010a <[^>]*> f060 6c17 li a0,119
-0+50010e <[^>]*> f400 3480 sll a0,16
-0+500112 <[^>]*> f03b 4c00 addiu a0,-10208
-0+500116 <[^>]*> f060 6c17 li a0,119
-0+50011a <[^>]*> f400 3480 sll a0,16
-0+50011e <[^>]*> f41b 4c09 addiu a0,-9207
-0+500122 <[^>]*> f060 6c17 li a0,119
-0+500126 <[^>]*> f400 3480 sll a0,16
-0+50012a <[^>]*> f43a 4c10 addiu a0,-11216
-0+50012e <[^>]*> f060 6c17 li a0,119
-0+500132 <[^>]*> f400 3480 sll a0,16
-0+500136 <[^>]*> f41b 4c08 addiu a0,-9208
-0+50013a <[^>]*> 6c00 li a0,0
-0+50013c <[^>]*> f400 3480 sll a0,16
-0+500140 <[^>]*> f010 4c00 addiu a0,-32768
-0+500144 <[^>]*> f060 6c05 li a0,101
-0+500148 <[^>]*> f400 3480 sll a0,16
-0+50014c <[^>]*> f338 4c00 addiu a0,-15584
-0+500150 <[^>]*> f060 6c05 li a0,101
-0+500154 <[^>]*> f400 3480 sll a0,16
-0+500158 <[^>]*> f338 4c04 addiu a0,-15580
-0+50015c <[^>]*> f060 6c05 li a0,101
-0+500160 <[^>]*> f400 3480 sll a0,16
-0+500164 <[^>]*> f338 4c10 addiu a0,-15568
-0+500168 <[^>]*> f060 6c05 li a0,101
-0+50016c <[^>]*> f400 3480 sll a0,16
-0+500170 <[^>]*> f738 4c00 addiu a0,-14560
-0+500174 <[^>]*> f060 6c16 li a0,118
-0+500178 <[^>]*> f400 3480 sll a0,16
-0+50017c <[^>]*> f03b 4c00 addiu a0,-10208
-0+500180 <[^>]*> f060 6c16 li a0,118
-0+500184 <[^>]*> f400 3480 sll a0,16
-0+500188 <[^>]*> f41b 4c09 addiu a0,-9207
-0+50018c <[^>]*> f060 6c16 li a0,118
-0+500190 <[^>]*> f400 3480 sll a0,16
-0+500194 <[^>]*> f43a 4c10 addiu a0,-11216
-0+500198 <[^>]*> f060 6c16 li a0,118
-0+50019c <[^>]*> f400 3480 sll a0,16
-0+5001a0 <[^>]*> f41b 4c08 addiu a0,-9208
-0+5001a4 <[^>]*> 6c01 li a0,1
-0+5001a6 <[^>]*> f400 3480 sll a0,16
-0+5001aa <[^>]*> 4c00 addiu a0,0
-0+5001ac <[^>]*> f060 6c06 li a0,102
-0+5001b0 <[^>]*> f400 3480 sll a0,16
-0+5001b4 <[^>]*> f328 4c00 addiu a0,17184
-0+5001b8 <[^>]*> f060 6c06 li a0,102
-0+5001bc <[^>]*> f400 3480 sll a0,16
-0+5001c0 <[^>]*> f328 4c04 addiu a0,17188
-0+5001c4 <[^>]*> f060 6c06 li a0,102
-0+5001c8 <[^>]*> f400 3480 sll a0,16
-0+5001cc <[^>]*> f328 4c10 addiu a0,17200
-0+5001d0 <[^>]*> f060 6c06 li a0,102
-0+5001d4 <[^>]*> f400 3480 sll a0,16
-0+5001d8 <[^>]*> f728 4c00 addiu a0,18208
-0+5001dc <[^>]*> f060 6c17 li a0,119
-0+5001e0 <[^>]*> f400 3480 sll a0,16
-0+5001e4 <[^>]*> f02b 4c00 addiu a0,22560
-0+5001e8 <[^>]*> f060 6c17 li a0,119
-0+5001ec <[^>]*> f400 3480 sll a0,16
-0+5001f0 <[^>]*> f40b 4c09 addiu a0,23561
-0+5001f4 <[^>]*> f060 6c17 li a0,119
-0+5001f8 <[^>]*> f400 3480 sll a0,16
-0+5001fc <[^>]*> f42a 4c10 addiu a0,21552
-0+500200 <[^>]*> f060 6c17 li a0,119
-0+500204 <[^>]*> f400 3480 sll a0,16
-0+500208 <[^>]*> f40b 4c08 addiu a0,23560
-0+50020c <[^>]*> 6c02 li a0,2
-0+50020e <[^>]*> f400 3480 sll a0,16
-0+500212 <[^>]*> f5b4 4c05 addiu a0,-23131
-0+500216 <[^>]*> f060 6c07 li a0,103
-0+50021a <[^>]*> f400 3480 sll a0,16
-0+50021e <[^>]*> f0dd 4c05 addiu a0,-5947
-0+500222 <[^>]*> f060 6c07 li a0,103
-0+500226 <[^>]*> f400 3480 sll a0,16
-0+50022a <[^>]*> f0dd 4c09 addiu a0,-5943
-0+50022e <[^>]*> f060 6c07 li a0,103
-0+500232 <[^>]*> f400 3480 sll a0,16
-0+500236 <[^>]*> f0dd 4c15 addiu a0,-5931
-0+50023a <[^>]*> f060 6c07 li a0,103
-0+50023e <[^>]*> f400 3480 sll a0,16
-0+500242 <[^>]*> f4dd 4c05 addiu a0,-4923
-0+500246 <[^>]*> f060 6c18 li a0,120
-0+50024a <[^>]*> f400 3480 sll a0,16
-0+50024e <[^>]*> f5df 4c05 addiu a0,-571
-0+500252 <[^>]*> f060 6c18 li a0,120
-0+500256 <[^>]*> f400 3480 sll a0,16
-0+50025a <[^>]*> f1a0 4c0e addiu a0,430
-0+50025e <[^>]*> f060 6c18 li a0,120
-0+500262 <[^>]*> f400 3480 sll a0,16
-0+500266 <[^>]*> f1df 4c15 addiu a0,-1579
-0+50026a <[^>]*> f060 6c18 li a0,120
-0+50026e <[^>]*> f400 3480 sll a0,16
-0+500272 <[^>]*> f1a0 4c0d addiu a0,429
-0+500276 <[^>]*> 6d00 li a1,0
-0+500278 <[^>]*> f400 35a0 sll a1,16
-0+50027c <[^>]*> 9d80 lw a0,0\(a1\)
-0+50027e <[^>]*> f060 6d05 li a1,101
-0+500282 <[^>]*> f400 35a0 sll a1,16
-0+500286 <[^>]*> f060 9d85 lw a0,101\(a1\)
-0+50028a <[^>]*> f060 6d05 li a1,101
-0+50028e <[^>]*> f400 35a0 sll a1,16
-0+500292 <[^>]*> f060 9d85 lw a0,101\(a1\)
-0+500296 <[^>]*> f060 6d05 li a1,101
-0+50029a <[^>]*> f400 35a0 sll a1,16
-0+50029e <[^>]*> f328 9d90 lw a0,17200\(a1\)
-0+5002a2 <[^>]*> f060 6d05 li a1,101
-0+5002a6 <[^>]*> f400 35a0 sll a1,16
-0+5002aa <[^>]*> f728 9d80 lw a0,18208\(a1\)
-0+5002ae <[^>]*> f060 6d16 li a1,118
-0+5002b2 <[^>]*> f400 35a0 sll a1,16
-0+5002b6 <[^>]*> f02b 9d80 lw a0,22560\(a1\)
-0+5002ba <[^>]*> f060 6d16 li a1,118
-0+5002be <[^>]*> f400 35a0 sll a1,16
-0+5002c2 <[^>]*> f40b 9d89 lw a0,23561\(a1\)
-0+5002c6 <[^>]*> f060 6d16 li a1,118
-0+5002ca <[^>]*> f400 35a0 sll a1,16
-0+5002ce <[^>]*> f42a 9d90 lw a0,21552\(a1\)
-0+5002d2 <[^>]*> f060 6d16 li a1,118
-0+5002d6 <[^>]*> f400 35a0 sll a1,16
-0+5002da <[^>]*> f40b 9d88 lw a0,23560\(a1\)
-0+5002de <[^>]*> 6d00 li a1,0
-0+5002e0 <[^>]*> f400 35a0 sll a1,16
-0+5002e4 <[^>]*> f000 9d81 lw a0,1\(a1\)
-0+5002e8 <[^>]*> f060 6d05 li a1,101
-0+5002ec <[^>]*> f400 35a0 sll a1,16
-0+5002f0 <[^>]*> f328 9d81 lw a0,17185\(a1\)
-0+5002f4 <[^>]*> f060 6d05 li a1,101
-0+5002f8 <[^>]*> f400 35a0 sll a1,16
-0+5002fc <[^>]*> f328 9d85 lw a0,17189\(a1\)
-0+500300 <[^>]*> f060 6d05 li a1,101
-0+500304 <[^>]*> f400 35a0 sll a1,16
-0+500308 <[^>]*> f328 9d91 lw a0,17201\(a1\)
-0+50030c <[^>]*> f060 6d05 li a1,101
-0+500310 <[^>]*> f400 35a0 sll a1,16
-0+500314 <[^>]*> f728 9d81 lw a0,18209\(a1\)
-0+500318 <[^>]*> f060 6d16 li a1,118
-0+50031c <[^>]*> f400 35a0 sll a1,16
-0+500320 <[^>]*> f02b 9d81 lw a0,22561\(a1\)
-0+500324 <[^>]*> f060 6d16 li a1,118
-0+500328 <[^>]*> f400 35a0 sll a1,16
-0+50032c <[^>]*> f40b 9d8a lw a0,23562\(a1\)
-0+500330 <[^>]*> f060 6d16 li a1,118
-0+500334 <[^>]*> f400 35a0 sll a1,16
-0+500338 <[^>]*> f42a 9d91 lw a0,21553\(a1\)
-0+50033c <[^>]*> f060 6d16 li a1,118
-0+500340 <[^>]*> f400 35a0 sll a1,16
-0+500344 <[^>]*> f40b 9d89 lw a0,23561\(a1\)
-0+500348 <[^>]*> 6d01 li a1,1
-0+50034a <[^>]*> f400 35a0 sll a1,16
-0+50034e <[^>]*> f010 9d80 lw a0,-32768\(a1\)
-0+500352 <[^>]*> f060 6d06 li a1,102
-0+500356 <[^>]*> f400 35a0 sll a1,16
-0+50035a <[^>]*> f338 9d80 lw a0,-15584\(a1\)
-0+50035e <[^>]*> f060 6d06 li a1,102
-0+500362 <[^>]*> f400 35a0 sll a1,16
-0+500366 <[^>]*> f338 9d84 lw a0,-15580\(a1\)
-0+50036a <[^>]*> f060 6d06 li a1,102
-0+50036e <[^>]*> f400 35a0 sll a1,16
-0+500372 <[^>]*> f338 9d90 lw a0,-15568\(a1\)
-0+500376 <[^>]*> f060 6d06 li a1,102
-0+50037a <[^>]*> f400 35a0 sll a1,16
-0+50037e <[^>]*> f738 9d80 lw a0,-14560\(a1\)
-0+500382 <[^>]*> f060 6d17 li a1,119
-0+500386 <[^>]*> f400 35a0 sll a1,16
-0+50038a <[^>]*> f03b 9d80 lw a0,-10208\(a1\)
-0+50038e <[^>]*> f060 6d17 li a1,119
-0+500392 <[^>]*> f400 35a0 sll a1,16
-0+500396 <[^>]*> f41b 9d89 lw a0,-9207\(a1\)
-0+50039a <[^>]*> f060 6d17 li a1,119
-0+50039e <[^>]*> f400 35a0 sll a1,16
-0+5003a2 <[^>]*> f43a 9d90 lw a0,-11216\(a1\)
-0+5003a6 <[^>]*> f060 6d17 li a1,119
-0+5003aa <[^>]*> f400 35a0 sll a1,16
-0+5003ae <[^>]*> f41b 9d88 lw a0,-9208\(a1\)
-0+5003b2 <[^>]*> 6d00 li a1,0
-0+5003b4 <[^>]*> f400 35a0 sll a1,16
-0+5003b8 <[^>]*> f010 9d80 lw a0,-32768\(a1\)
-0+5003bc <[^>]*> f060 6d05 li a1,101
-0+5003c0 <[^>]*> f400 35a0 sll a1,16
-0+5003c4 <[^>]*> f338 9d80 lw a0,-15584\(a1\)
-0+5003c8 <[^>]*> f060 6d05 li a1,101
-0+5003cc <[^>]*> f400 35a0 sll a1,16
-0+5003d0 <[^>]*> f338 9d84 lw a0,-15580\(a1\)
-0+5003d4 <[^>]*> f060 6d05 li a1,101
-0+5003d8 <[^>]*> f400 35a0 sll a1,16
-0+5003dc <[^>]*> f338 9d90 lw a0,-15568\(a1\)
-0+5003e0 <[^>]*> f060 6d05 li a1,101
-0+5003e4 <[^>]*> f400 35a0 sll a1,16
-0+5003e8 <[^>]*> f738 9d80 lw a0,-14560\(a1\)
-0+5003ec <[^>]*> f060 6d16 li a1,118
-0+5003f0 <[^>]*> f400 35a0 sll a1,16
-0+5003f4 <[^>]*> f03b 9d80 lw a0,-10208\(a1\)
-0+5003f8 <[^>]*> f060 6d16 li a1,118
-0+5003fc <[^>]*> f400 35a0 sll a1,16
-0+500400 <[^>]*> f41b 9d89 lw a0,-9207\(a1\)
-0+500404 <[^>]*> f060 6d16 li a1,118
-0+500408 <[^>]*> f400 35a0 sll a1,16
-0+50040c <[^>]*> f43a 9d90 lw a0,-11216\(a1\)
-0+500410 <[^>]*> f060 6d16 li a1,118
-0+500414 <[^>]*> f400 35a0 sll a1,16
-0+500418 <[^>]*> f41b 9d88 lw a0,-9208\(a1\)
-0+50041c <[^>]*> 6d01 li a1,1
-0+50041e <[^>]*> f400 35a0 sll a1,16
-0+500422 <[^>]*> 9d80 lw a0,0\(a1\)
-0+500424 <[^>]*> f060 6d06 li a1,102
-0+500428 <[^>]*> f400 35a0 sll a1,16
-0+50042c <[^>]*> f328 9d80 lw a0,17184\(a1\)
-0+500430 <[^>]*> f060 6d06 li a1,102
-0+500434 <[^>]*> f400 35a0 sll a1,16
-0+500438 <[^>]*> f328 9d84 lw a0,17188\(a1\)
-0+50043c <[^>]*> f060 6d06 li a1,102
-0+500440 <[^>]*> f400 35a0 sll a1,16
-0+500444 <[^>]*> f328 9d90 lw a0,17200\(a1\)
-0+500448 <[^>]*> f060 6d06 li a1,102
-0+50044c <[^>]*> f400 35a0 sll a1,16
-0+500450 <[^>]*> f728 9d80 lw a0,18208\(a1\)
-0+500454 <[^>]*> f060 6d17 li a1,119
-0+500458 <[^>]*> f400 35a0 sll a1,16
-0+50045c <[^>]*> f02b 9d80 lw a0,22560\(a1\)
-0+500460 <[^>]*> f060 6d17 li a1,119
-0+500464 <[^>]*> f400 35a0 sll a1,16
-0+500468 <[^>]*> f40b 9d89 lw a0,23561\(a1\)
-0+50046c <[^>]*> f060 6d17 li a1,119
-0+500470 <[^>]*> f400 35a0 sll a1,16
-0+500474 <[^>]*> f42a 9d90 lw a0,21552\(a1\)
-0+500478 <[^>]*> f060 6d17 li a1,119
-0+50047c <[^>]*> f400 35a0 sll a1,16
-0+500480 <[^>]*> f40b 9d88 lw a0,23560\(a1\)
-0+500484 <[^>]*> 6d02 li a1,2
-0+500486 <[^>]*> f400 35a0 sll a1,16
-0+50048a <[^>]*> f5b4 9d85 lw a0,-23131\(a1\)
-0+50048e <[^>]*> f060 6d07 li a1,103
-0+500492 <[^>]*> f400 35a0 sll a1,16
-0+500496 <[^>]*> f0dd 9d85 lw a0,-5947\(a1\)
-0+50049a <[^>]*> f060 6d07 li a1,103
-0+50049e <[^>]*> f400 35a0 sll a1,16
-0+5004a2 <[^>]*> f0dd 9d89 lw a0,-5943\(a1\)
-0+5004a6 <[^>]*> f060 6d07 li a1,103
-0+5004aa <[^>]*> f400 35a0 sll a1,16
-0+5004ae <[^>]*> f0dd 9d95 lw a0,-5931\(a1\)
-0+5004b2 <[^>]*> f060 6d07 li a1,103
-0+5004b6 <[^>]*> f400 35a0 sll a1,16
-0+5004ba <[^>]*> f4dd 9d85 lw a0,-4923\(a1\)
-0+5004be <[^>]*> f060 6d18 li a1,120
-0+5004c2 <[^>]*> f400 35a0 sll a1,16
-0+5004c6 <[^>]*> f5df 9d85 lw a0,-571\(a1\)
-0+5004ca <[^>]*> f060 6d18 li a1,120
-0+5004ce <[^>]*> f400 35a0 sll a1,16
-0+5004d2 <[^>]*> f1a0 9d8e lw a0,430\(a1\)
-0+5004d6 <[^>]*> f060 6d18 li a1,120
-0+5004da <[^>]*> f400 35a0 sll a1,16
-0+5004de <[^>]*> f1df 9d95 lw a0,-1579\(a1\)
-0+5004e2 <[^>]*> f060 6d18 li a1,120
-0+5004e6 <[^>]*> f400 35a0 sll a1,16
-0+5004ea <[^>]*> f1a0 9d8d lw a0,429\(a1\)
-0+5004ee <[^>]*> 6500 nop
+0*500000 <[^>]*>:
+ *500000: 6c00 li a0,0
+ *500002: f400 3480 sll a0,16
+ *500006: 4c00 addiu a0,0
+ *500008: f060 6c05 li a0,101
+ *50000c: f400 3480 sll a0,16
+ *500010: f328 4c00 addiu a0,17184
+ *500014: f060 6c05 li a0,101
+ *500018: f400 3480 sll a0,16
+ *50001c: f328 4c04 addiu a0,17188
+ *500020: f060 6c05 li a0,101
+ *500024: f400 3480 sll a0,16
+ *500028: f328 4c10 addiu a0,17200
+ *50002c: f060 6c05 li a0,101
+ *500030: f400 3480 sll a0,16
+ *500034: f728 4c00 addiu a0,18208
+ *500038: f060 6c16 li a0,118
+ *50003c: f400 3480 sll a0,16
+ *500040: f02b 4c00 addiu a0,22560
+ *500044: f060 6c16 li a0,118
+ *500048: f400 3480 sll a0,16
+ *50004c: f40b 4c08 addiu a0,23560
+ *500050: f060 6c16 li a0,118
+ *500054: f400 3480 sll a0,16
+ *500058: f42a 4c10 addiu a0,21552
+ *50005c: f060 6c16 li a0,118
+ *500060: f400 3480 sll a0,16
+ *500064: f40b 4c09 addiu a0,23561
+ *500068: 6c00 li a0,0
+ *50006a: f400 3480 sll a0,16
+ *50006e: 4c01 addiu a0,1
+ *500070: f060 6c05 li a0,101
+ *500074: f400 3480 sll a0,16
+ *500078: f328 4c01 addiu a0,17185
+ *50007c: f060 6c05 li a0,101
+ *500080: f400 3480 sll a0,16
+ *500084: f328 4c05 addiu a0,17189
+ *500088: f060 6c05 li a0,101
+ *50008c: f400 3480 sll a0,16
+ *500090: f328 4c11 addiu a0,17201
+ *500094: f060 6c05 li a0,101
+ *500098: f400 3480 sll a0,16
+ *50009c: f728 4c01 addiu a0,18209
+ *5000a0: f060 6c16 li a0,118
+ *5000a4: f400 3480 sll a0,16
+ *5000a8: f02b 4c01 addiu a0,22561
+ *5000ac: f060 6c16 li a0,118
+ *5000b0: f400 3480 sll a0,16
+ *5000b4: f40b 4c09 addiu a0,23561
+ *5000b8: f060 6c16 li a0,118
+ *5000bc: f400 3480 sll a0,16
+ *5000c0: f42a 4c11 addiu a0,21553
+ *5000c4: f060 6c16 li a0,118
+ *5000c8: f400 3480 sll a0,16
+ *5000cc: f40b 4c0a addiu a0,23562
+ *5000d0: 6c01 li a0,1
+ *5000d2: f400 3480 sll a0,16
+ *5000d6: f010 4c00 addiu a0,-32768
+ *5000da: f060 6c06 li a0,102
+ *5000de: f400 3480 sll a0,16
+ *5000e2: f338 4c00 addiu a0,-15584
+ *5000e6: f060 6c06 li a0,102
+ *5000ea: f400 3480 sll a0,16
+ *5000ee: f338 4c04 addiu a0,-15580
+ *5000f2: f060 6c06 li a0,102
+ *5000f6: f400 3480 sll a0,16
+ *5000fa: f338 4c10 addiu a0,-15568
+ *5000fe: f060 6c06 li a0,102
+ *500102: f400 3480 sll a0,16
+ *500106: f738 4c00 addiu a0,-14560
+ *50010a: f060 6c17 li a0,119
+ *50010e: f400 3480 sll a0,16
+ *500112: f03b 4c00 addiu a0,-10208
+ *500116: f060 6c17 li a0,119
+ *50011a: f400 3480 sll a0,16
+ *50011e: f41b 4c08 addiu a0,-9208
+ *500122: f060 6c17 li a0,119
+ *500126: f400 3480 sll a0,16
+ *50012a: f43a 4c10 addiu a0,-11216
+ *50012e: f060 6c17 li a0,119
+ *500132: f400 3480 sll a0,16
+ *500136: f41b 4c09 addiu a0,-9207
+ *50013a: 6c00 li a0,0
+ *50013c: f400 3480 sll a0,16
+ *500140: f010 4c00 addiu a0,-32768
+ *500144: f060 6c05 li a0,101
+ *500148: f400 3480 sll a0,16
+ *50014c: f338 4c00 addiu a0,-15584
+ *500150: f060 6c05 li a0,101
+ *500154: f400 3480 sll a0,16
+ *500158: f338 4c04 addiu a0,-15580
+ *50015c: f060 6c05 li a0,101
+ *500160: f400 3480 sll a0,16
+ *500164: f338 4c10 addiu a0,-15568
+ *500168: f060 6c05 li a0,101
+ *50016c: f400 3480 sll a0,16
+ *500170: f738 4c00 addiu a0,-14560
+ *500174: f060 6c16 li a0,118
+ *500178: f400 3480 sll a0,16
+ *50017c: f03b 4c00 addiu a0,-10208
+ *500180: f060 6c16 li a0,118
+ *500184: f400 3480 sll a0,16
+ *500188: f41b 4c08 addiu a0,-9208
+ *50018c: f060 6c16 li a0,118
+ *500190: f400 3480 sll a0,16
+ *500194: f43a 4c10 addiu a0,-11216
+ *500198: f060 6c16 li a0,118
+ *50019c: f400 3480 sll a0,16
+ *5001a0: f41b 4c09 addiu a0,-9207
+ *5001a4: 6c01 li a0,1
+ *5001a6: f400 3480 sll a0,16
+ *5001aa: 4c00 addiu a0,0
+ *5001ac: f060 6c06 li a0,102
+ *5001b0: f400 3480 sll a0,16
+ *5001b4: f328 4c00 addiu a0,17184
+ *5001b8: f060 6c06 li a0,102
+ *5001bc: f400 3480 sll a0,16
+ *5001c0: f328 4c04 addiu a0,17188
+ *5001c4: f060 6c06 li a0,102
+ *5001c8: f400 3480 sll a0,16
+ *5001cc: f328 4c10 addiu a0,17200
+ *5001d0: f060 6c06 li a0,102
+ *5001d4: f400 3480 sll a0,16
+ *5001d8: f728 4c00 addiu a0,18208
+ *5001dc: f060 6c17 li a0,119
+ *5001e0: f400 3480 sll a0,16
+ *5001e4: f02b 4c00 addiu a0,22560
+ *5001e8: f060 6c17 li a0,119
+ *5001ec: f400 3480 sll a0,16
+ *5001f0: f40b 4c08 addiu a0,23560
+ *5001f4: f060 6c17 li a0,119
+ *5001f8: f400 3480 sll a0,16
+ *5001fc: f42a 4c10 addiu a0,21552
+ *500200: f060 6c17 li a0,119
+ *500204: f400 3480 sll a0,16
+ *500208: f40b 4c09 addiu a0,23561
+ *50020c: 6c02 li a0,2
+ *50020e: f400 3480 sll a0,16
+ *500212: f5b4 4c05 addiu a0,-23131
+ *500216: f060 6c07 li a0,103
+ *50021a: f400 3480 sll a0,16
+ *50021e: f0dd 4c05 addiu a0,-5947
+ *500222: f060 6c07 li a0,103
+ *500226: f400 3480 sll a0,16
+ *50022a: f0dd 4c09 addiu a0,-5943
+ *50022e: f060 6c07 li a0,103
+ *500232: f400 3480 sll a0,16
+ *500236: f0dd 4c15 addiu a0,-5931
+ *50023a: f060 6c07 li a0,103
+ *50023e: f400 3480 sll a0,16
+ *500242: f4dd 4c05 addiu a0,-4923
+ *500246: f060 6c18 li a0,120
+ *50024a: f400 3480 sll a0,16
+ *50024e: f5df 4c05 addiu a0,-571
+ *500252: f060 6c18 li a0,120
+ *500256: f400 3480 sll a0,16
+ *50025a: f1a0 4c0d addiu a0,429
+ *50025e: f060 6c18 li a0,120
+ *500262: f400 3480 sll a0,16
+ *500266: f1df 4c15 addiu a0,-1579
+ *50026a: f060 6c18 li a0,120
+ *50026e: f400 3480 sll a0,16
+ *500272: f1a0 4c0e addiu a0,430
+ *500276: 6d00 li a1,0
+ *500278: f400 35a0 sll a1,16
+ *50027c: 9d80 lw a0,0\(a1\)
+ *50027e: f060 6d05 li a1,101
+ *500282: f400 35a0 sll a1,16
+ *500286: f328 9d80 lw a0,17184\(a1\)
+ *50028a: f060 6d05 li a1,101
+ *50028e: f400 35a0 sll a1,16
+ *500292: f328 9d84 lw a0,17188\(a1\)
+ *500296: f060 6d05 li a1,101
+ *50029a: f400 35a0 sll a1,16
+ *50029e: f328 9d90 lw a0,17200\(a1\)
+ *5002a2: f060 6d05 li a1,101
+ *5002a6: f400 35a0 sll a1,16
+ *5002aa: f728 9d80 lw a0,18208\(a1\)
+ *5002ae: f060 6d16 li a1,118
+ *5002b2: f400 35a0 sll a1,16
+ *5002b6: f02b 9d80 lw a0,22560\(a1\)
+ *5002ba: f060 6d16 li a1,118
+ *5002be: f400 35a0 sll a1,16
+ *5002c2: f40b 9d88 lw a0,23560\(a1\)
+ *5002c6: f060 6d16 li a1,118
+ *5002ca: f400 35a0 sll a1,16
+ *5002ce: f42a 9d90 lw a0,21552\(a1\)
+ *5002d2: f060 6d16 li a1,118
+ *5002d6: f400 35a0 sll a1,16
+ *5002da: f40b 9d89 lw a0,23561\(a1\)
+ *5002de: 6d00 li a1,0
+ *5002e0: f400 35a0 sll a1,16
+ *5002e4: f000 9d81 lw a0,1\(a1\)
+ *5002e8: f060 6d05 li a1,101
+ *5002ec: f400 35a0 sll a1,16
+ *5002f0: f328 9d81 lw a0,17185\(a1\)
+ *5002f4: f060 6d05 li a1,101
+ *5002f8: f400 35a0 sll a1,16
+ *5002fc: f328 9d85 lw a0,17189\(a1\)
+ *500300: f060 6d05 li a1,101
+ *500304: f400 35a0 sll a1,16
+ *500308: f328 9d91 lw a0,17201\(a1\)
+ *50030c: f060 6d05 li a1,101
+ *500310: f400 35a0 sll a1,16
+ *500314: f728 9d81 lw a0,18209\(a1\)
+ *500318: f060 6d16 li a1,118
+ *50031c: f400 35a0 sll a1,16
+ *500320: f02b 9d81 lw a0,22561\(a1\)
+ *500324: f060 6d16 li a1,118
+ *500328: f400 35a0 sll a1,16
+ *50032c: f40b 9d89 lw a0,23561\(a1\)
+ *500330: f060 6d16 li a1,118
+ *500334: f400 35a0 sll a1,16
+ *500338: f42a 9d91 lw a0,21553\(a1\)
+ *50033c: f060 6d16 li a1,118
+ *500340: f400 35a0 sll a1,16
+ *500344: f40b 9d8a lw a0,23562\(a1\)
+ *500348: 6d01 li a1,1
+ *50034a: f400 35a0 sll a1,16
+ *50034e: f010 9d80 lw a0,-32768\(a1\)
+ *500352: f060 6d06 li a1,102
+ *500356: f400 35a0 sll a1,16
+ *50035a: f338 9d80 lw a0,-15584\(a1\)
+ *50035e: f060 6d06 li a1,102
+ *500362: f400 35a0 sll a1,16
+ *500366: f338 9d84 lw a0,-15580\(a1\)
+ *50036a: f060 6d06 li a1,102
+ *50036e: f400 35a0 sll a1,16
+ *500372: f338 9d90 lw a0,-15568\(a1\)
+ *500376: f060 6d06 li a1,102
+ *50037a: f400 35a0 sll a1,16
+ *50037e: f738 9d80 lw a0,-14560\(a1\)
+ *500382: f060 6d17 li a1,119
+ *500386: f400 35a0 sll a1,16
+ *50038a: f03b 9d80 lw a0,-10208\(a1\)
+ *50038e: f060 6d17 li a1,119
+ *500392: f400 35a0 sll a1,16
+ *500396: f41b 9d88 lw a0,-9208\(a1\)
+ *50039a: f060 6d17 li a1,119
+ *50039e: f400 35a0 sll a1,16
+ *5003a2: f43a 9d90 lw a0,-11216\(a1\)
+ *5003a6: f060 6d17 li a1,119
+ *5003aa: f400 35a0 sll a1,16
+ *5003ae: f41b 9d89 lw a0,-9207\(a1\)
+ *5003b2: 6d00 li a1,0
+ *5003b4: f400 35a0 sll a1,16
+ *5003b8: f010 9d80 lw a0,-32768\(a1\)
+ *5003bc: f060 6d05 li a1,101
+ *5003c0: f400 35a0 sll a1,16
+ *5003c4: f338 9d80 lw a0,-15584\(a1\)
+ *5003c8: f060 6d05 li a1,101
+ *5003cc: f400 35a0 sll a1,16
+ *5003d0: f338 9d84 lw a0,-15580\(a1\)
+ *5003d4: f060 6d05 li a1,101
+ *5003d8: f400 35a0 sll a1,16
+ *5003dc: f338 9d90 lw a0,-15568\(a1\)
+ *5003e0: f060 6d05 li a1,101
+ *5003e4: f400 35a0 sll a1,16
+ *5003e8: f738 9d80 lw a0,-14560\(a1\)
+ *5003ec: f060 6d16 li a1,118
+ *5003f0: f400 35a0 sll a1,16
+ *5003f4: f03b 9d80 lw a0,-10208\(a1\)
+ *5003f8: f060 6d16 li a1,118
+ *5003fc: f400 35a0 sll a1,16
+ *500400: f41b 9d88 lw a0,-9208\(a1\)
+ *500404: f060 6d16 li a1,118
+ *500408: f400 35a0 sll a1,16
+ *50040c: f43a 9d90 lw a0,-11216\(a1\)
+ *500410: f060 6d16 li a1,118
+ *500414: f400 35a0 sll a1,16
+ *500418: f41b 9d89 lw a0,-9207\(a1\)
+ *50041c: 6d01 li a1,1
+ *50041e: f400 35a0 sll a1,16
+ *500422: 9d80 lw a0,0\(a1\)
+ *500424: f060 6d06 li a1,102
+ *500428: f400 35a0 sll a1,16
+ *50042c: f328 9d80 lw a0,17184\(a1\)
+ *500430: f060 6d06 li a1,102
+ *500434: f400 35a0 sll a1,16
+ *500438: f328 9d84 lw a0,17188\(a1\)
+ *50043c: f060 6d06 li a1,102
+ *500440: f400 35a0 sll a1,16
+ *500444: f328 9d90 lw a0,17200\(a1\)
+ *500448: f060 6d06 li a1,102
+ *50044c: f400 35a0 sll a1,16
+ *500450: f728 9d80 lw a0,18208\(a1\)
+ *500454: f060 6d17 li a1,119
+ *500458: f400 35a0 sll a1,16
+ *50045c: f02b 9d80 lw a0,22560\(a1\)
+ *500460: f060 6d17 li a1,119
+ *500464: f400 35a0 sll a1,16
+ *500468: f40b 9d88 lw a0,23560\(a1\)
+ *50046c: f060 6d17 li a1,119
+ *500470: f400 35a0 sll a1,16
+ *500474: f42a 9d90 lw a0,21552\(a1\)
+ *500478: f060 6d17 li a1,119
+ *50047c: f400 35a0 sll a1,16
+ *500480: f40b 9d89 lw a0,23561\(a1\)
+ *500484: 6d02 li a1,2
+ *500486: f400 35a0 sll a1,16
+ *50048a: f5b4 9d85 lw a0,-23131\(a1\)
+ *50048e: f060 6d07 li a1,103
+ *500492: f400 35a0 sll a1,16
+ *500496: f0dd 9d85 lw a0,-5947\(a1\)
+ *50049a: f060 6d07 li a1,103
+ *50049e: f400 35a0 sll a1,16
+ *5004a2: f0dd 9d89 lw a0,-5943\(a1\)
+ *5004a6: f060 6d07 li a1,103
+ *5004aa: f400 35a0 sll a1,16
+ *5004ae: f0dd 9d95 lw a0,-5931\(a1\)
+ *5004b2: f060 6d07 li a1,103
+ *5004b6: f400 35a0 sll a1,16
+ *5004ba: f4dd 9d85 lw a0,-4923\(a1\)
+ *5004be: f060 6d18 li a1,120
+ *5004c2: f400 35a0 sll a1,16
+ *5004c6: f5df 9d85 lw a0,-571\(a1\)
+ *5004ca: f060 6d18 li a1,120
+ *5004ce: f400 35a0 sll a1,16
+ *5004d2: f1a0 9d8d lw a0,429\(a1\)
+ *5004d6: f060 6d18 li a1,120
+ *5004da: f400 35a0 sll a1,16
+ *5004de: f1df 9d95 lw a0,-1579\(a1\)
+ *5004e2: f060 6d18 li a1,120
+ *5004e6: f400 35a0 sll a1,16
+ *5004ea: f1a0 9d8e lw a0,430\(a1\)
+ *5004ee: 6500 nop
#pass
diff --git a/ld/testsuite/ld-mips-elf/mips16-hilo.s b/ld/testsuite/ld-mips-elf/mips16-hilo.s
index 79ac2fb..8b13789 100644
--- a/ld/testsuite/ld-mips-elf/mips16-hilo.s
+++ b/ld/testsuite/ld-mips-elf/mips16-hilo.s
@@ -1,14 +1 @@
- .data
- .globl big_external_data_label
-big_external_data_label:
- .fill 1000
-# align section end to 16-byte boundary for easier testing on multiple targets
- .p2align 4
-
- .globl small_external_data_label
-small_external_data_label:
- .fill 1
-
-# align section end to 16-byte boundary for easier testing on multiple targets
- .p2align 4
diff --git a/ld/testsuite/ld-mips-elf/mips16e2-hilo-srec.d b/ld/testsuite/ld-mips-elf/mips16e2-hilo-srec.d
new file mode 100644
index 0000000..12a2d28
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/mips16e2-hilo-srec.d
@@ -0,0 +1,8 @@
+#name: MIPS16e2 R_MIPS16_HI16 and R_MIPS16_LO16 relocs srec
+#source: ../../../gas/testsuite/gas/mips/mips-hilo.s
+#source: mips-hilo.s
+#as: -mips16 -mmips16e2 -march=mips64r2
+#objdump: -mmips:16 -j .sec1 -D
+#ld: --oformat=srec -Tmips-hilo.ld -e 0x500000 -N
+#notarget: mips*el-ps2-elf*
+#dump: mips16e2-hilo.d
diff --git a/ld/testsuite/ld-mips-elf/mips16e2-hilo.d b/ld/testsuite/ld-mips-elf/mips16e2-hilo.d
new file mode 100644
index 0000000..5aa1624
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/mips16e2-hilo.d
@@ -0,0 +1,230 @@
+#name: MIPS16e2 R_MIPS16_HI16 and R_MIPS16_LO16 relocs
+#source: ../../../gas/testsuite/gas/mips/mips-hilo.s
+#source: mips-hilo.s
+#as: -mips16 -mmips16e2 -march=mips64r2
+#objdump: -d
+#ld: -Tmips-hilo.ld -e 0x500000 -N
+#notarget: mips*el-ps2-elf*
+
+.*: file format (:?elf.*mips.*|srec)
+
+Disassembly of section \.(:?text|sec1):
+
+0*500000 <[^>]*>:
+ *500000: f000 6c20 lui a0,0x0
+ *500004: 4c00 addiu a0,0
+ *500006: f060 6c25 lui a0,0x65
+ *50000a: f328 4c00 addiu a0,17184
+ *50000e: f060 6c25 lui a0,0x65
+ *500012: f328 4c04 addiu a0,17188
+ *500016: f060 6c25 lui a0,0x65
+ *50001a: f328 4c10 addiu a0,17200
+ *50001e: f060 6c25 lui a0,0x65
+ *500022: f728 4c00 addiu a0,18208
+ *500026: f060 6c36 lui a0,0x76
+ *50002a: f02b 4c00 addiu a0,22560
+ *50002e: f060 6c36 lui a0,0x76
+ *500032: f40b 4c08 addiu a0,23560
+ *500036: f060 6c36 lui a0,0x76
+ *50003a: f42a 4c10 addiu a0,21552
+ *50003e: f060 6c36 lui a0,0x76
+ *500042: f40b 4c09 addiu a0,23561
+ *500046: f000 6c20 lui a0,0x0
+ *50004a: 4c01 addiu a0,1
+ *50004c: f060 6c25 lui a0,0x65
+ *500050: f328 4c01 addiu a0,17185
+ *500054: f060 6c25 lui a0,0x65
+ *500058: f328 4c05 addiu a0,17189
+ *50005c: f060 6c25 lui a0,0x65
+ *500060: f328 4c11 addiu a0,17201
+ *500064: f060 6c25 lui a0,0x65
+ *500068: f728 4c01 addiu a0,18209
+ *50006c: f060 6c36 lui a0,0x76
+ *500070: f02b 4c01 addiu a0,22561
+ *500074: f060 6c36 lui a0,0x76
+ *500078: f40b 4c09 addiu a0,23561
+ *50007c: f060 6c36 lui a0,0x76
+ *500080: f42a 4c11 addiu a0,21553
+ *500084: f060 6c36 lui a0,0x76
+ *500088: f40b 4c0a addiu a0,23562
+ *50008c: f000 6c21 lui a0,0x1
+ *500090: f010 4c00 addiu a0,-32768
+ *500094: f060 6c26 lui a0,0x66
+ *500098: f338 4c00 addiu a0,-15584
+ *50009c: f060 6c26 lui a0,0x66
+ *5000a0: f338 4c04 addiu a0,-15580
+ *5000a4: f060 6c26 lui a0,0x66
+ *5000a8: f338 4c10 addiu a0,-15568
+ *5000ac: f060 6c26 lui a0,0x66
+ *5000b0: f738 4c00 addiu a0,-14560
+ *5000b4: f060 6c37 lui a0,0x77
+ *5000b8: f03b 4c00 addiu a0,-10208
+ *5000bc: f060 6c37 lui a0,0x77
+ *5000c0: f41b 4c08 addiu a0,-9208
+ *5000c4: f060 6c37 lui a0,0x77
+ *5000c8: f43a 4c10 addiu a0,-11216
+ *5000cc: f060 6c37 lui a0,0x77
+ *5000d0: f41b 4c09 addiu a0,-9207
+ *5000d4: f000 6c20 lui a0,0x0
+ *5000d8: f010 4c00 addiu a0,-32768
+ *5000dc: f060 6c25 lui a0,0x65
+ *5000e0: f338 4c00 addiu a0,-15584
+ *5000e4: f060 6c25 lui a0,0x65
+ *5000e8: f338 4c04 addiu a0,-15580
+ *5000ec: f060 6c25 lui a0,0x65
+ *5000f0: f338 4c10 addiu a0,-15568
+ *5000f4: f060 6c25 lui a0,0x65
+ *5000f8: f738 4c00 addiu a0,-14560
+ *5000fc: f060 6c36 lui a0,0x76
+ *500100: f03b 4c00 addiu a0,-10208
+ *500104: f060 6c36 lui a0,0x76
+ *500108: f41b 4c08 addiu a0,-9208
+ *50010c: f060 6c36 lui a0,0x76
+ *500110: f43a 4c10 addiu a0,-11216
+ *500114: f060 6c36 lui a0,0x76
+ *500118: f41b 4c09 addiu a0,-9207
+ *50011c: f000 6c21 lui a0,0x1
+ *500120: 4c00 addiu a0,0
+ *500122: f060 6c26 lui a0,0x66
+ *500126: f328 4c00 addiu a0,17184
+ *50012a: f060 6c26 lui a0,0x66
+ *50012e: f328 4c04 addiu a0,17188
+ *500132: f060 6c26 lui a0,0x66
+ *500136: f328 4c10 addiu a0,17200
+ *50013a: f060 6c26 lui a0,0x66
+ *50013e: f728 4c00 addiu a0,18208
+ *500142: f060 6c37 lui a0,0x77
+ *500146: f02b 4c00 addiu a0,22560
+ *50014a: f060 6c37 lui a0,0x77
+ *50014e: f40b 4c08 addiu a0,23560
+ *500152: f060 6c37 lui a0,0x77
+ *500156: f42a 4c10 addiu a0,21552
+ *50015a: f060 6c37 lui a0,0x77
+ *50015e: f40b 4c09 addiu a0,23561
+ *500162: f000 6c22 lui a0,0x2
+ *500166: f5b4 4c05 addiu a0,-23131
+ *50016a: f060 6c27 lui a0,0x67
+ *50016e: f0dd 4c05 addiu a0,-5947
+ *500172: f060 6c27 lui a0,0x67
+ *500176: f0dd 4c09 addiu a0,-5943
+ *50017a: f060 6c27 lui a0,0x67
+ *50017e: f0dd 4c15 addiu a0,-5931
+ *500182: f060 6c27 lui a0,0x67
+ *500186: f4dd 4c05 addiu a0,-4923
+ *50018a: f060 6c38 lui a0,0x78
+ *50018e: f5df 4c05 addiu a0,-571
+ *500192: f060 6c38 lui a0,0x78
+ *500196: f1a0 4c0d addiu a0,429
+ *50019a: f060 6c38 lui a0,0x78
+ *50019e: f1df 4c15 addiu a0,-1579
+ *5001a2: f060 6c38 lui a0,0x78
+ *5001a6: f1a0 4c0e addiu a0,430
+ *5001aa: f000 6d20 lui a1,0x0
+ *5001ae: 9d80 lw a0,0\(a1\)
+ *5001b0: f060 6d25 lui a1,0x65
+ *5001b4: f328 9d80 lw a0,17184\(a1\)
+ *5001b8: f060 6d25 lui a1,0x65
+ *5001bc: f328 9d84 lw a0,17188\(a1\)
+ *5001c0: f060 6d25 lui a1,0x65
+ *5001c4: f328 9d90 lw a0,17200\(a1\)
+ *5001c8: f060 6d25 lui a1,0x65
+ *5001cc: f728 9d80 lw a0,18208\(a1\)
+ *5001d0: f060 6d36 lui a1,0x76
+ *5001d4: f02b 9d80 lw a0,22560\(a1\)
+ *5001d8: f060 6d36 lui a1,0x76
+ *5001dc: f40b 9d88 lw a0,23560\(a1\)
+ *5001e0: f060 6d36 lui a1,0x76
+ *5001e4: f42a 9d90 lw a0,21552\(a1\)
+ *5001e8: f060 6d36 lui a1,0x76
+ *5001ec: f40b 9d89 lw a0,23561\(a1\)
+ *5001f0: f000 6d20 lui a1,0x0
+ *5001f4: f000 9d81 lw a0,1\(a1\)
+ *5001f8: f060 6d25 lui a1,0x65
+ *5001fc: f328 9d81 lw a0,17185\(a1\)
+ *500200: f060 6d25 lui a1,0x65
+ *500204: f328 9d85 lw a0,17189\(a1\)
+ *500208: f060 6d25 lui a1,0x65
+ *50020c: f328 9d91 lw a0,17201\(a1\)
+ *500210: f060 6d25 lui a1,0x65
+ *500214: f728 9d81 lw a0,18209\(a1\)
+ *500218: f060 6d36 lui a1,0x76
+ *50021c: f02b 9d81 lw a0,22561\(a1\)
+ *500220: f060 6d36 lui a1,0x76
+ *500224: f40b 9d89 lw a0,23561\(a1\)
+ *500228: f060 6d36 lui a1,0x76
+ *50022c: f42a 9d91 lw a0,21553\(a1\)
+ *500230: f060 6d36 lui a1,0x76
+ *500234: f40b 9d8a lw a0,23562\(a1\)
+ *500238: f000 6d21 lui a1,0x1
+ *50023c: f010 9d80 lw a0,-32768\(a1\)
+ *500240: f060 6d26 lui a1,0x66
+ *500244: f338 9d80 lw a0,-15584\(a1\)
+ *500248: f060 6d26 lui a1,0x66
+ *50024c: f338 9d84 lw a0,-15580\(a1\)
+ *500250: f060 6d26 lui a1,0x66
+ *500254: f338 9d90 lw a0,-15568\(a1\)
+ *500258: f060 6d26 lui a1,0x66
+ *50025c: f738 9d80 lw a0,-14560\(a1\)
+ *500260: f060 6d37 lui a1,0x77
+ *500264: f03b 9d80 lw a0,-10208\(a1\)
+ *500268: f060 6d37 lui a1,0x77
+ *50026c: f41b 9d88 lw a0,-9208\(a1\)
+ *500270: f060 6d37 lui a1,0x77
+ *500274: f43a 9d90 lw a0,-11216\(a1\)
+ *500278: f060 6d37 lui a1,0x77
+ *50027c: f41b 9d89 lw a0,-9207\(a1\)
+ *500280: f000 6d20 lui a1,0x0
+ *500284: f010 9d80 lw a0,-32768\(a1\)
+ *500288: f060 6d25 lui a1,0x65
+ *50028c: f338 9d80 lw a0,-15584\(a1\)
+ *500290: f060 6d25 lui a1,0x65
+ *500294: f338 9d84 lw a0,-15580\(a1\)
+ *500298: f060 6d25 lui a1,0x65
+ *50029c: f338 9d90 lw a0,-15568\(a1\)
+ *5002a0: f060 6d25 lui a1,0x65
+ *5002a4: f738 9d80 lw a0,-14560\(a1\)
+ *5002a8: f060 6d36 lui a1,0x76
+ *5002ac: f03b 9d80 lw a0,-10208\(a1\)
+ *5002b0: f060 6d36 lui a1,0x76
+ *5002b4: f41b 9d88 lw a0,-9208\(a1\)
+ *5002b8: f060 6d36 lui a1,0x76
+ *5002bc: f43a 9d90 lw a0,-11216\(a1\)
+ *5002c0: f060 6d36 lui a1,0x76
+ *5002c4: f41b 9d89 lw a0,-9207\(a1\)
+ *5002c8: f000 6d21 lui a1,0x1
+ *5002cc: 9d80 lw a0,0\(a1\)
+ *5002ce: f060 6d26 lui a1,0x66
+ *5002d2: f328 9d80 lw a0,17184\(a1\)
+ *5002d6: f060 6d26 lui a1,0x66
+ *5002da: f328 9d84 lw a0,17188\(a1\)
+ *5002de: f060 6d26 lui a1,0x66
+ *5002e2: f328 9d90 lw a0,17200\(a1\)
+ *5002e6: f060 6d26 lui a1,0x66
+ *5002ea: f728 9d80 lw a0,18208\(a1\)
+ *5002ee: f060 6d37 lui a1,0x77
+ *5002f2: f02b 9d80 lw a0,22560\(a1\)
+ *5002f6: f060 6d37 lui a1,0x77
+ *5002fa: f40b 9d88 lw a0,23560\(a1\)
+ *5002fe: f060 6d37 lui a1,0x77
+ *500302: f42a 9d90 lw a0,21552\(a1\)
+ *500306: f060 6d37 lui a1,0x77
+ *50030a: f40b 9d89 lw a0,23561\(a1\)
+ *50030e: f000 6d22 lui a1,0x2
+ *500312: f5b4 9d85 lw a0,-23131\(a1\)
+ *500316: f060 6d27 lui a1,0x67
+ *50031a: f0dd 9d85 lw a0,-5947\(a1\)
+ *50031e: f060 6d27 lui a1,0x67
+ *500322: f0dd 9d89 lw a0,-5943\(a1\)
+ *500326: f060 6d27 lui a1,0x67
+ *50032a: f0dd 9d95 lw a0,-5931\(a1\)
+ *50032e: f060 6d27 lui a1,0x67
+ *500332: f4dd 9d85 lw a0,-4923\(a1\)
+ *500336: f060 6d38 lui a1,0x78
+ *50033a: f5df 9d85 lw a0,-571\(a1\)
+ *50033e: f060 6d38 lui a1,0x78
+ *500342: f1a0 9d8d lw a0,429\(a1\)
+ *500346: f060 6d38 lui a1,0x78
+ *50034a: f1df 9d95 lw a0,-1579\(a1\)
+ *50034e: f060 6d38 lui a1,0x78
+ *500352: f1a0 9d8e lw a0,430\(a1\)
+ \.\.\.
diff --git a/ld/testsuite/ld-mips-elf/pcrel-hilo-srec.d b/ld/testsuite/ld-mips-elf/pcrel-hilo-srec.d
new file mode 100644
index 0000000..e9b0956
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/pcrel-hilo-srec.d
@@ -0,0 +1,6 @@
+#name: MIPSr6 PCHI16/PCLO16 relocations srec
+#as: -mno-pdr
+#ld: -e 0 --defsym=baz=0xfedcba98 -T pcrel-hilo.ld --oformat=srec
+#objdump: -m mips:isa64r6 -D -j .sec1
+#source: ../../../gas/testsuite/gas/mips/pcrel-hilo.s
+#dump: pcrel-hilo.d
diff --git a/ld/testsuite/ld-mips-elf/pcrel-hilo.d b/ld/testsuite/ld-mips-elf/pcrel-hilo.d
new file mode 100644
index 0000000..ae5d052
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/pcrel-hilo.d
@@ -0,0 +1,42 @@
+#name: MIPSr6 PCHI16/PCLO16 relocations
+#as: -mno-pdr
+#ld: -e 0 --defsym=baz=0xfedcba98 -T pcrel-hilo.ld
+#objdump: -m mips:isa64r6 -d
+#source: ../../../gas/testsuite/gas/mips/pcrel-hilo.s
+
+.*: +file format (?:.*mips.*|srec)
+
+Disassembly of section \.(?:text|sec1):
+
+0*10000000 <[^>]*>:
+ *10000000: ec9e2456 auipc a0,0x2456
+ *10000004: 3c05fedd lui a1,0xfedd
+ *10000008: ecde2456 auipc a2,0x2456
+ *1000000c: ecfe2457 auipc a3,0x2457
+ *10000010: 24847fec addiu a0,a0,32748
+ *10000014: 24a5ba98 addiu a1,a1,-17768
+ *10000018: 24c67ff0 addiu a2,a2,32752
+ *1000001c: 24e7ffe4 addiu a3,a3,-28
+ *10000020: ec9e2456 auipc a0,0x2456
+ *10000024: 3c05fedd lui a1,0xfedd
+ *10000028: ecde2456 auipc a2,0x2456
+ *1000002c: ecfe2457 auipc a3,0x2457
+ \.\.\.
+ *10030030: 24847fec addiu a0,a0,32748
+ *10030034: 24a5ba98 addiu a1,a1,-17768
+ *10030038: 24c67ff0 addiu a2,a2,32752
+ *1003003c: 24e7ffe4 addiu a3,a3,-28
+ *10030040: 24107fec li s0,32748
+ *10030044: 2411ba98 li s1,-17768
+ *10030048: 24127ff0 li s2,32752
+ *1003004c: 2413ffe4 li s3,-28
+ *10030050: ec9e2456 auipc a0,0x2456
+ *10030054: 3c05fedd lui a1,0xfedd
+ *10030058: ecde2456 auipc a2,0x2456
+ *1003005c: ecfe2457 auipc a3,0x2457
+ *10030060: 00902021 addu a0,a0,s0
+ *10030064: 00b12821 addu a1,a1,s1
+ *10030068: 00d23021 addu a2,a2,s2
+ *1003006c: 00f33821 addu a3,a3,s3
+ *10030070: d81f0000 jrc ra
+ \.\.\.
diff --git a/ld/testsuite/ld-mips-elf/pcrel-hilo.ld b/ld/testsuite/ld-mips-elf/pcrel-hilo.ld
new file mode 100644
index 0000000..77d361d
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/pcrel-hilo.ld
@@ -0,0 +1,14 @@
+MEMORY
+{
+ text (rx) : ORIGIN = 0x10000000, LENGTH = 0x40000
+ data (w) : ORIGIN = 0x34560000, LENGTH = 0x40000
+}
+SECTIONS
+{
+ .text : { *(.text) } >text
+ .data : { *(.data) } >data
+ .symtab : { *(.symtab) }
+ .strtab : { *(.strtab) }
+ .shstrtab : { *(.shstrtab) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/ld/testsuite/ld-mips-elf/pic-and-nonpic-1-r6.s b/ld/testsuite/ld-mips-elf/pic-and-nonpic-1-r6.s
deleted file mode 100644
index e69de29..0000000
--- a/ld/testsuite/ld-mips-elf/pic-and-nonpic-1-r6.s
+++ /dev/null
diff --git a/ld/testsuite/ld-mips-elf/pr19977-micromips.d b/ld/testsuite/ld-mips-elf/pr19977-micromips.d
new file mode 100644
index 0000000..021b29c
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/pr19977-micromips.d
@@ -0,0 +1,25 @@
+#name: pr19977 microMIPS
+#source: ../../../gas/testsuite/gas/mips/pr19977.s
+#as: -mmicromips -march=mips64r2
+#objdump: -d
+#ld: -Tpr19977.ld -e 0 -N
+#notarget: mips*el-ps2-elf*
+
+.*: file format elf.*mips.*
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000: 3060 1122 li v1,4386
+10000004: 0063 8000 sll v1,v1,0x10
+10000008: 3063 2988 addiu v1,v1,10632
+1000000c: 3060 1122 li v1,4386
+10000010: 0063 8000 sll v1,v1,0x10
+10000014: 3063 1988 addiu v1,v1,6536
+10000018: 3060 1122 li v1,4386
+1000001c: 0063 8000 sll v1,v1,0x10
+10000020: 3063 a988 addiu v1,v1,-22136
+10000024: 3060 1122 li v1,4386
+10000028: 0063 8000 sll v1,v1,0x10
+1000002c: 3063 9988 addiu v1,v1,-26232
+#pass
diff --git a/ld/testsuite/ld-mips-elf/pr19977-mips16.d b/ld/testsuite/ld-mips-elf/pr19977-mips16.d
new file mode 100644
index 0000000..c927357
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/pr19977-mips16.d
@@ -0,0 +1,24 @@
+#name: pr19977 MIPS16
+#source: ../../../gas/testsuite/gas/mips/pr19977.s
+#as: -mips16 -march=mips3
+#objdump: -d
+#ld: -Tpr19977.ld -e 0 -N
+
+.*: file format elf.*mips.*
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000: f122 6b02 li v1,4386
+10000004: f400 3360 sll v1,16
+10000008: f185 4b08 addiu v1,10632
+1000000c: f122 6b02 li v1,4386
+10000010: f400 3360 sll v1,16
+10000014: f183 4b08 addiu v1,6536
+10000018: f122 6b02 li v1,4386
+1000001c: f400 3360 sll v1,16
+10000020: f195 4b08 addiu v1,-22136
+10000024: f122 6b02 li v1,4386
+10000028: f400 3360 sll v1,16
+1000002c: f193 4b08 addiu v1,-26232
+#pass
diff --git a/ld/testsuite/ld-mips-elf/pr19977-r-micromips.d b/ld/testsuite/ld-mips-elf/pr19977-r-micromips.d
new file mode 100644
index 0000000..db99b97
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/pr19977-r-micromips.d
@@ -0,0 +1,8 @@
+#name: pr19977 microMIPS -r
+#source: pr19977-r.s
+#source: ../../../gas/testsuite/gas/mips/pr19977.s
+#as: -mmicromips -march=mips64r2
+#objdump: -dr
+#ld: -r
+#notarget: mips*el-ps2-elf*
+#dump: pr19977-r.d
diff --git a/ld/testsuite/ld-mips-elf/pr19977-r-mips16.d b/ld/testsuite/ld-mips-elf/pr19977-r-mips16.d
new file mode 100644
index 0000000..dafa793
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/pr19977-r-mips16.d
@@ -0,0 +1,7 @@
+#name: pr19977 MIPS16 -r
+#source: pr19977-r.s
+#source: ../../../gas/testsuite/gas/mips/pr19977.s
+#as: -mips16 -march=mips3
+#objdump: -dr
+#ld: -r
+#dump: pr19977-r.d
diff --git a/ld/testsuite/ld-mips-elf/pr19977-r.d b/ld/testsuite/ld-mips-elf/pr19977-r.d
new file mode 100644
index 0000000..166194b
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/pr19977-r.d
@@ -0,0 +1,32 @@
+#name: pr19977 MIPS -r
+#source: pr19977-r.s
+#source: ../../../gas/testsuite/gas/mips/pr19977.s
+#objdump: -dr
+#ld: -r
+
+.*
+
+Disassembly of section \.text:
+
+0+ <foo>:
+ 0: .* li v1,4387
+ 0: R_(|MICRO)MIPS(|16)_TLS_TPREL_HI16 \$loc0
+ 4: .* sll .*
+ 8: .* addiu v1(|,v1),-26232
+ 8: R_(|MICRO)MIPS(|16)_TLS_TPREL_LO16 \$loc0
+ c: .* li v1,4387
+ c: R_(|MICRO)MIPS(|16)_TLS_DTPREL_HI16 \$loc0
+ 10: .* sll .*
+ 14: .* addiu v1(|,v1),-26232
+ 14: R_(|MICRO)MIPS(|16)_TLS_DTPREL_LO16 \$loc0
+ 18: .* li v1,4387
+ 18: R_(|MICRO)MIPS(|16)_TLS_TPREL_HI16 \.tdata
+ 1c: .* sll .*
+ 20: .* addiu v1(|,v1),-30328
+ 20: R_(|MICRO)MIPS(|16)_TLS_TPREL_LO16 \.tdata
+ 24: .* li v1,4387
+ 24: R_(|MICRO)MIPS(|16)_TLS_DTPREL_HI16 \.tdata
+ 28: .* sll .*
+ 2c: .* addiu v1(|,v1),-30328
+ 2c: R_(|MICRO)MIPS(|16)_TLS_DTPREL_LO16 \.tdata
+#pass
diff --git a/ld/testsuite/ld-mips-elf/pr19977-r.s b/ld/testsuite/ld-mips-elf/pr19977-r.s
new file mode 100644
index 0000000..4a46b30
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/pr19977-r.s
@@ -0,0 +1,2 @@
+ .section .tdata,"awT",%progbits
+ .space 28672
diff --git a/ld/testsuite/ld-mips-elf/pr19977.d b/ld/testsuite/ld-mips-elf/pr19977.d
new file mode 100644
index 0000000..145f697
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/pr19977.d
@@ -0,0 +1,23 @@
+#name: pr19977 MIPS
+#source: ../../../gas/testsuite/gas/mips/pr19977.s
+#objdump: -d
+#ld: -Tpr19977.ld -e 0 -N
+
+.*: file format elf.*mips.*
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000: 24031122 li v1,4386
+10000004: 00031c00 sll v1,v1,0x10
+10000008: 24632988 addiu v1,v1,10632
+1000000c: 24031122 li v1,4386
+10000010: 00031c00 sll v1,v1,0x10
+10000014: 24631988 addiu v1,v1,6536
+10000018: 24031122 li v1,4386
+1000001c: 00031c00 sll v1,v1,0x10
+10000020: 2463a988 addiu v1,v1,-22136
+10000024: 24031122 li v1,4386
+10000028: 00031c00 sll v1,v1,0x10
+1000002c: 24639988 addiu v1,v1,-26232
+#pass
diff --git a/ld/testsuite/ld-mips-elf/pr19977.ld b/ld/testsuite/ld-mips-elf/pr19977.ld
new file mode 100644
index 0000000..0b2f7c1
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/pr19977.ld
@@ -0,0 +1,14 @@
+MEMORY
+{
+ text (rx) : ORIGIN = 0x10000000, LENGTH = 0x40000
+ data (w) : ORIGIN = 0x34560000, LENGTH = 0x40000
+}
+SECTIONS
+{
+ .text : { *(.text) } >text
+ .tdata : { *(.tdata) } >data
+ .symtab : { *(.symtab) }
+ .strtab : { *(.strtab) }
+ .shstrtab : { *(.shstrtab) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/ld/testsuite/ld-plugin/lto-binutils.exp b/ld/testsuite/ld-plugin/lto-binutils.exp
new file mode 100644
index 0000000..5b4e0a1
--- /dev/null
+++ b/ld/testsuite/ld-plugin/lto-binutils.exp
@@ -0,0 +1,358 @@
+# Expect script for binutils tests with LTO
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+#
+
+# Make sure that binutils can correctly handle LTO IR in ELF.
+
+if { !([istarget *-*-linux*]
+ || [istarget arm*-*-uclinuxfdpiceabi]
+ || [istarget *-*-nacl*]
+ || [istarget *-*-gnu*]) || [istarget *ecoff] } then {
+ return
+}
+
+# Check to see if the C and C++ compilers work
+if { ![check_compiler_available] || [which $CXX_FOR_TARGET] == 0 } {
+ return
+}
+
+# These tests require plugin and LTO.
+if { ![check_plugin_api_available]
+ || ![check_lto_available] } {
+ return
+}
+
+set lto_fat ""
+set lto_no_fat ""
+if { [check_lto_fat_available] } {
+ set lto_fat "-ffat-lto-objects"
+ set lto_no_fat "-fno-fat-lto-objects"
+ set no_lto "-fno-lto"
+}
+
+# List contains test-items:
+# 0:program name
+# 1:program options
+# 2:input file
+# 3:output file
+# 4:action list (optional)
+#
+proc run_lto_binutils_test { lto_tests } {
+ global srcdir
+ global subdir
+ global nm
+ global objcopy
+ global objdump
+ global READELF
+ global strip
+ global plug_opt
+
+ foreach testitem $lto_tests {
+ set prog_name [lindex $testitem 0]
+ set prog_options [lindex $testitem 1]
+ set input tmpdir/[lindex $testitem 2]
+ set output tmpdir/[lindex $testitem 3]
+ set actions [lindex $testitem 4]
+ set objfiles {}
+ set is_unresolved 0
+ set failed 0
+
+# eval set prog \$$prog_name
+ switch -- $prog_name {
+ objcopy
+ {
+ set prog $objcopy
+ set prog_output "$output"
+ }
+ strip
+ {
+ set prog $strip
+ set prog_output "-o $output"
+ }
+ default
+ {
+ perror "Unrecognized action $action"
+ set is_unresolved 1
+ break
+ }
+ }
+
+ # Don't leave previous output around
+ if { $output ne "tmpdir/" } {
+ remote_file host delete $output
+ }
+
+ append prog_options " $plug_opt"
+
+ set cmd_options "$prog_options $prog_output $input"
+ set test_name "$prog_name $cmd_options"
+
+ set cmd "$prog $cmd_options"
+ send_log "$cmd\n"
+ set got [remote_exec host "$cmd"]
+ if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
+ send_log "$got\n"
+ fail "$test_name"
+ continue
+ }
+
+ if { $failed == 0 } {
+ foreach actionlist $actions {
+ set action [lindex $actionlist 0]
+ set progopts [lindex $actionlist 1]
+
+ # There are actions where we run regexp_diff on the
+ # output, and there are other actions (presumably).
+ # Handling of the former look the same.
+ set dump_prog ""
+ switch -- $action {
+ objdump
+ { set dump_prog $objdump }
+ nm
+ { set dump_prog $nm }
+ readelf
+ { set dump_prog $READELF }
+ default
+ {
+ perror "Unrecognized action $action"
+ set is_unresolved 1
+ break
+ }
+ }
+
+ if { $dump_prog != "" } {
+ set dumpfile [lindex $actionlist 2]
+ set binary $dump_prog
+
+ # Ensure consistent sorting of symbols
+ if {[info exists env(LC_ALL)]} {
+ set old_lc_all $env(LC_ALL)
+ }
+ set env(LC_ALL) "C"
+ set cmd "$binary $progopts $output > tmpdir/dump.out"
+ send_log "$cmd\n"
+ catch "exec $cmd" comp_output
+ if {[info exists old_lc_all]} {
+ set env(LC_ALL) $old_lc_all
+ } else {
+ unset env(LC_ALL)
+ }
+ set comp_output [prune_warnings $comp_output]
+
+ if ![string match "" $comp_output] then {
+ send_log "$comp_output\n"
+ set failed 1
+ break
+ }
+
+ if { [regexp_diff "tmpdir/dump.out" "$srcdir/$subdir/$dumpfile"] } then {
+ verbose -log "output is [file_contents "tmpdir/dump.out"]" 2
+ set failed 1
+ break
+ }
+ }
+ }
+ }
+
+ if { $failed } {
+ fail $test_name
+ } elseif { $is_unresolved } {
+ unresolved $test_name
+ } else {
+ pass $test_name
+ }
+ }
+}
+
+run_cc_link_tests [list \
+ [list \
+ "Build strip-1a.o" \
+ "" \
+ "-O2 -flto $lto_no_fat" \
+ { strip-1a.c } \
+ ] \
+ [list \
+ "Build libstrip-1a.a" \
+ "$plug_opt" \
+ "-O2 -flto $lto_no_fat" \
+ { strip-1a.c } \
+ {} \
+ "libstrip-1a.a" \
+ ] \
+ [list \
+ "Build strip-1a-fat.o" \
+ "" \
+ "-O2 -flto $lto_fat" \
+ { strip-1a-fat.c } \
+ ] \
+ [list \
+ "Build libstrip-1a-fat.a" \
+ "$plug_opt" \
+ "-O2 -flto $lto_fat" \
+ { strip-1a-fat.c } \
+ {} \
+ "libstrip-1a-fat.a" \
+ ] \
+]
+
+run_lto_binutils_test [list \
+ [list \
+ "strip" \
+ "--strip-unneeded" \
+ "libstrip-1a.a" \
+ "libstrip-1a-s.a" \
+ ] \
+ [list \
+ "strip" \
+ "--strip-unneeded" \
+ "strip-1a.o" \
+ "strip-1a-s.o" \
+ ] \
+ [list \
+ "strip" \
+ "--strip-unneeded -R .gnu.*lto_* -N __gnu_lto_v1" \
+ "libstrip-1a-fat.a" \
+ "libstrip-1a-fat-s.a" \
+ {{readelf -SW strip-1a-fat.rd}} \
+ ] \
+ [list \
+ "strip" \
+ "--strip-unneeded -R .gnu.*lto_* -N __gnu_lto_v1" \
+ "strip-1a-fat.o" \
+ "strip-1a-fat-s.o" \
+ {{readelf -SW strip-1a-fat.rd}} \
+ ] \
+ [list \
+ "strip" \
+ "--strip-unneeded -R .gnu.debuglto_*" \
+ "libstrip-1a-fat.a" \
+ "libstrip-1b-fat-s.a" \
+ {{readelf -SW strip-1b-fat.rd}} \
+ ] \
+ [list \
+ "strip" \
+ "--strip-unneeded -R .gnu.debuglto_*" \
+ "strip-1a-fat.o" \
+ "strip-1b-fat-s.o" \
+ {{readelf -SW strip-1b-fat.rd}} \
+ ] \
+]
+
+if { [check_lto_fat_available] } {
+ run_lto_binutils_test [list \
+ [list \
+ "strip" \
+ "-R .gnu.*lto_* -N __gnu_lto_v1" \
+ "strip-1a.o" \
+ "strip-1a-s-all.o" \
+ {{nm -n strip-1a-s-all.nd}} \
+ ] \
+ [list \
+ "strip" \
+ "-R .gnu.*lto_* -N __gnu_lto_v1" \
+ "libstrip-1a.a" \
+ "libstrip-1a-s-all.a" \
+ {{nm -n strip-1a-s-all.nd}} \
+ ] \
+ ]
+}
+
+run_cc_link_tests [list \
+ [list \
+ "Build strip-1a (strip-1a.o)" \
+ "" \
+ "-O2 -flto $lto_no_fat" \
+ { strip-1b.c } \
+ {} \
+ "libstrip-1a" \
+ "C" \
+ "tmpdir/strip-1a.o" \
+ ] \
+ [list \
+ "Build strip-1b (strip-1a-s.o)" \
+ "" \
+ "-O2 -flto $lto_no_fat" \
+ { strip-1b.c } \
+ {} \
+ "libstrip-1b" \
+ "C" \
+ "tmpdir/strip-1a-s.o" \
+ ] \
+ [list \
+ "Build strip-1c (libstrip-1a.a)" \
+ "" \
+ "-O2 -flto $lto_no_fat" \
+ { strip-1b.c } \
+ {} \
+ "libstrip-1c" \
+ "C" \
+ "tmpdir/libstrip-1a.a" \
+ ] \
+ [list \
+ "Build strip-1d (libstrip-1a-s.a)" \
+ "" \
+ "-O2 -flto $lto_no_fat" \
+ { strip-1b.c } \
+ {} \
+ "libstrip-1d" \
+ "C" \
+ "tmpdir/libstrip-1a-s.a" \
+ ] \
+ [list \
+ "Build strip-1e (strip-1a-fat-s.o)" \
+ "" \
+ "-O2 -flto $lto_fat" \
+ { strip-1b-fat.c } \
+ {} \
+ "libstrip-1e" \
+ "C" \
+ "tmpdir/strip-1a-fat-s.o" \
+ ] \
+ [list \
+ "Build strip-1f (libstrip-1a-fat-s.a)" \
+ "" \
+ "-O2 -flto $lto_fat" \
+ { strip-1b-fat.c } \
+ {} \
+ "libstrip-1f" \
+ "C" \
+ "tmpdir/libstrip-1a-fat-s.a" \
+ ] \
+ [list \
+ "Build strip-1g (strip-1b-fat-s.o)" \
+ "" \
+ "-O2 -flto $lto_fat" \
+ { strip-1b-fat.c } \
+ {} \
+ "libstrip-1g" \
+ "C" \
+ "tmpdir/strip-1b-fat-s.o" \
+ ] \
+ [list \
+ "Build strip-1h (libstrip-1b-fat-s.a)" \
+ "" \
+ "-O2 -flto $lto_fat" \
+ { strip-1b-fat.c } \
+ {} \
+ "libstrip-1h" \
+ "C" \
+ "tmpdir/libstrip-1b-fat-s.a" \
+ ] \
+]
diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp
index 9349190..d68e5f4 100644
--- a/ld/testsuite/ld-plugin/lto.exp
+++ b/ld/testsuite/ld-plugin/lto.exp
@@ -51,6 +51,11 @@ if { [check_lto_fat_available] } {
set no_lto "-fno-lto"
}
+set as_gsframe ""
+if { [gas_sframe_check] } {
+ set as_gsframe "-Wa,--gsframe"
+}
+
# Simple LTO tests and generate input files for complex LTO tests.
set lto_link_tests [list \
[list "LTO 1" \
@@ -76,10 +81,10 @@ set lto_link_tests [list \
"" "-flto $lto_fat" \
{lto-4a.c} {} ""] \
[list "Compile 4b" \
- "" "-O2" \
+ "" "-O2 $as_gsframe" \
{lto-4b.c} {} ""] \
[list "Compile 4c" \
- "" "-O2" \
+ "" "-O2 $as_gsframe" \
{lto-4c.c} {} ""] \
[list "Compile 5a" \
"" "-flto $lto_fat" \
@@ -1158,9 +1163,8 @@ remote_exec host "mv" "tmpdir/dump tmpdir/lto-5.o"
run_dump_test "lto-10r"
remote_exec host "mv" "tmpdir/dump tmpdir/lto-10.o"
set testname "nm mixed object"
-set lto_plugin [string trim [run_host_cmd "$CC_FOR_TARGET" "-print-prog-name=liblto_plugin.so"]]
-if { [ regexp "liblto_plugin.so" $lto_plugin ] } {
- set exec_output [run_host_cmd "$NM" "--plugin $lto_plugin tmpdir/lto-10.o"]
+if { $plug_opt != "" } {
+ set exec_output [run_host_cmd "$NM" "$plug_opt tmpdir/lto-10.o"]
if { [ regexp "(D|T) main" $exec_output ] } {
pass $testname
} else {
@@ -1212,6 +1216,38 @@ if { [is_elf_format] } {
if { [is_elf_format] && [check_lto_shared_available] } {
run_ld_link_exec_tests $lto_run_elf_shared_tests
+ if { [check_lto_fat_available] } {
+ run_cc_link_tests [list \
+ [list \
+ "Build libpr32846a.a" \
+ "$plug_opt" "-fPIC -O2 -flto $lto_no_fat" \
+ {pr32846a.c pr32846b.c} {} "libpr32846a.a" \
+ ] \
+ [list \
+ "Build libpr32846b.a" \
+ "$plug_opt" "-fPIC -O2 -flto $lto_no_fat" \
+ {pr32846a.c pr32846b.c pr32846c.c} {} "libpr32846b.a" \
+ ] \
+ [list \
+ "Build pr32846d.o" \
+ "$plug_opt" "-fPIC -O2 -flto $lto_no_fat" \
+ {pr32846d.c} {} \
+ ] \
+ [list \
+ "Build pr32846e.o" \
+ "$plug_opt" "-fPIC -O2 -flto $lto_no_fat" \
+ {pr32846e.c} {} \
+ ] \
+ [list \
+ "Build pr32846" \
+ "-shared -fPIC -O2 -flto $lto_no_fat -Wl,--no-undefined \
+ tmpdir/pr32846d.o tmpdir/libpr32846a.a \
+ tmpdir/libpr32846b.a tmpdir/pr32846e.o" \
+ "-O2 -fPIC -flto $lto_no_fat" \
+ {dummy.c} {} "pr32846" \
+ ] \
+ ] \
+ }
}
proc pr20103 {cflags libs} {
diff --git a/ld/testsuite/ld-plugin/pr25618a.h b/ld/testsuite/ld-plugin/pr25618a.h
index 9bf857c..04be194 100644
--- a/ld/testsuite/ld-plugin/pr25618a.h
+++ b/ld/testsuite/ld-plugin/pr25618a.h
@@ -1,2 +1 @@
-#pragma once
__attribute__((visibility("default"))) int bar();
diff --git a/ld/testsuite/ld-plugin/pr25618b.h b/ld/testsuite/ld-plugin/pr25618b.h
index cd80074..65e72a0 100644
--- a/ld/testsuite/ld-plugin/pr25618b.h
+++ b/ld/testsuite/ld-plugin/pr25618b.h
@@ -1,2 +1 @@
-#pragma once
__attribute__((visibility("default"))) int foo();
diff --git a/ld/testsuite/ld-plugin/pr32846a.c b/ld/testsuite/ld-plugin/pr32846a.c
new file mode 100644
index 0000000..8c16171
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr32846a.c
@@ -0,0 +1,6 @@
+extern void mkdir_p (void);
+void
+mkdir_parents (void)
+{
+ mkdir_p ();
+}
diff --git a/ld/testsuite/ld-plugin/pr32846b.c b/ld/testsuite/ld-plugin/pr32846b.c
new file mode 100644
index 0000000..9776a37
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr32846b.c
@@ -0,0 +1,4 @@
+void
+hash_new (void)
+{
+}
diff --git a/ld/testsuite/ld-plugin/pr32846c.c b/ld/testsuite/ld-plugin/pr32846c.c
new file mode 100644
index 0000000..f87cffb
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr32846c.c
@@ -0,0 +1,6 @@
+extern void hash_new (void);
+void
+kmod_new (void)
+{
+ hash_new();
+}
diff --git a/ld/testsuite/ld-plugin/pr32846d.c b/ld/testsuite/ld-plugin/pr32846d.c
new file mode 100644
index 0000000..c6f4102
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr32846d.c
@@ -0,0 +1,12 @@
+extern void kmod_new (void);
+extern void mkdir_parents (void);
+void
+do_lsmod (void)
+{
+ kmod_new ();
+}
+void
+do_static_nodes (void)
+{
+ mkdir_parents();
+}
diff --git a/ld/testsuite/ld-plugin/pr32846e.c b/ld/testsuite/ld-plugin/pr32846e.c
new file mode 100644
index 0000000..c4e5e56
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr32846e.c
@@ -0,0 +1,4 @@
+void
+mkdir_p (void)
+{
+}
diff --git a/ld/testsuite/ld-plugin/strip-1a-fat.c b/ld/testsuite/ld-plugin/strip-1a-fat.c
new file mode 100644
index 0000000..03b2a5c
--- /dev/null
+++ b/ld/testsuite/ld-plugin/strip-1a-fat.c
@@ -0,0 +1 @@
+#include "strip-1a.c"
diff --git a/ld/testsuite/ld-plugin/strip-1a-fat.rd b/ld/testsuite/ld-plugin/strip-1a-fat.rd
new file mode 100644
index 0000000..aefe1c5
--- /dev/null
+++ b/ld/testsuite/ld-plugin/strip-1a-fat.rd
@@ -0,0 +1,6 @@
+#failif
+#...
+Section Headers:
+#...
+ \[[ 0-9]+\] \.gnu.lto_.*
+#...
diff --git a/ld/testsuite/ld-plugin/strip-1a-s-all.nd b/ld/testsuite/ld-plugin/strip-1a-s-all.nd
new file mode 100644
index 0000000..612ba6a
--- /dev/null
+++ b/ld/testsuite/ld-plugin/strip-1a-s-all.nd
@@ -0,0 +1,3 @@
+#...
+[0-9a-f]* C _?__gnu_lto_slim
+#pass
diff --git a/ld/testsuite/ld-plugin/strip-1a.c b/ld/testsuite/ld-plugin/strip-1a.c
new file mode 100644
index 0000000..d84af20
--- /dev/null
+++ b/ld/testsuite/ld-plugin/strip-1a.c
@@ -0,0 +1,4 @@
+extern void foo2(void);
+extern void foo3(void);
+void foo1(void) { foo3(); }
+int main(void) { foo2(); }
diff --git a/ld/testsuite/ld-plugin/strip-1b-fat.c b/ld/testsuite/ld-plugin/strip-1b-fat.c
new file mode 100644
index 0000000..1a2e4d2
--- /dev/null
+++ b/ld/testsuite/ld-plugin/strip-1b-fat.c
@@ -0,0 +1 @@
+#include "strip-1b.c"
diff --git a/ld/testsuite/ld-plugin/strip-1b-fat.rd b/ld/testsuite/ld-plugin/strip-1b-fat.rd
new file mode 100644
index 0000000..e3a266f
--- /dev/null
+++ b/ld/testsuite/ld-plugin/strip-1b-fat.rd
@@ -0,0 +1,5 @@
+#...
+Section Headers:
+#...
+ \[[ 0-9]+\] \.gnu.lto_.*
+#pass
diff --git a/ld/testsuite/ld-plugin/strip-1b.c b/ld/testsuite/ld-plugin/strip-1b.c
new file mode 100644
index 0000000..967872a
--- /dev/null
+++ b/ld/testsuite/ld-plugin/strip-1b.c
@@ -0,0 +1,3 @@
+extern void foo1(void);
+void foo2(void) { foo1(); }
+void foo3(void) {}
diff --git a/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp b/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp
index 9cb847d..70c9aa7 100644
--- a/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp
+++ b/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp
@@ -227,6 +227,17 @@ if [istarget "riscv*-*-*"] {
run_dump_test "data-reloc-rv64-addr32-pic"
run_dump_test "data-reloc-rv64-undef32-pic"
+ run_dump_test "property-zicfilp-unlabeled"
+ run_dump_test "property-zicfiss"
+ run_dump_test "property-combine-and-1"
+ run_dump_test "property-combine-and-2"
+ run_dump_test "property-combine-and-3"
+
+ run_dump_test "zicfilp-unlabeled-plt"
+
+ run_dump_test "pie-bind-locally-rv32"
+ run_dump_test "pie-bind-locally-rv64"
+
# IFUNC testcases.
# Check IFUNC by single type relocs.
run_dump_test_ifunc "ifunc-reloc-call-01" rv32 exe
diff --git a/ld/testsuite/ld-riscv-elf/pie-bind-locally-a.s b/ld/testsuite/ld-riscv-elf/pie-bind-locally-a.s
new file mode 100644
index 0000000..c1ff19b
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/pie-bind-locally-a.s
@@ -0,0 +1,5 @@
+ .text
+ .global _start
+_start:
+ .option pic
+ la a0, _start
diff --git a/ld/testsuite/ld-riscv-elf/pie-bind-locally-b.s b/ld/testsuite/ld-riscv-elf/pie-bind-locally-b.s
new file mode 100644
index 0000000..e5f16cd
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/pie-bind-locally-b.s
@@ -0,0 +1,8 @@
+ .section .data.rel,"aw",%progbits
+ .type q, %object
+q:
+.ifdef __64_bit__
+ .quad _start
+.else
+ .word _start
+.endif
diff --git a/ld/testsuite/ld-riscv-elf/pie-bind-locally-rv32.d b/ld/testsuite/ld-riscv-elf/pie-bind-locally-rv32.d
new file mode 100644
index 0000000..0133995
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/pie-bind-locally-rv32.d
@@ -0,0 +1,10 @@
+#source: pie-bind-locally-a.s
+#source: pie-bind-locally-b.s
+#as: -march=rv32i -mabi=ilp32
+#ld: -m[riscv_choose_ilp32_emul] -pie
+#readelf: -Wr
+
+Relocation section '\.rela\.dyn' at offset .* contains 2 entries:
+[ ]+Offset[ ]+Info[ ]+Type[ ]+.*
+[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_RISCV_RELATIVE[ ].*
+[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_RISCV_RELATIVE[ ].*
diff --git a/ld/testsuite/ld-riscv-elf/pie-bind-locally-rv64.d b/ld/testsuite/ld-riscv-elf/pie-bind-locally-rv64.d
new file mode 100644
index 0000000..6ae627a
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/pie-bind-locally-rv64.d
@@ -0,0 +1,10 @@
+#source: pie-bind-locally-a.s
+#source: pie-bind-locally-b.s
+#as: -march=rv64i -mabi=lp64 -defsym __64_bit__=1
+#ld: -m[riscv_choose_lp64_emul] -pie
+#readelf: -Wr
+
+Relocation section '\.rela\.dyn' at offset .* contains 2 entries:
+[ ]+Offset[ ]+Info[ ]+Type[ ]+.*
+[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_RISCV_RELATIVE[ ].*
+[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_RISCV_RELATIVE[ ].*
diff --git a/ld/testsuite/ld-riscv-elf/property-combine-and-1.d b/ld/testsuite/ld-riscv-elf/property-combine-and-1.d
new file mode 100644
index 0000000..571620f
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/property-combine-and-1.d
@@ -0,0 +1,6 @@
+#name: RISC-V GNU Property (multiple inputs, combine section) - 1
+#source: property1.s
+#source: property2.s
+#as: -march=rv64g
+#ld: -shared -melf64lriscv
+#readelf: -n
diff --git a/ld/testsuite/ld-riscv-elf/property-combine-and-2.d b/ld/testsuite/ld-riscv-elf/property-combine-and-2.d
new file mode 100644
index 0000000..23482af
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/property-combine-and-2.d
@@ -0,0 +1,11 @@
+#name: RISC-V GNU Property (multiple inputs, combine section) - 2
+#source: property1.s
+#source: property3.s
+#as: -march=rv64g
+#ld: -shared -melf64lriscv
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+[ ]+GNU[ ]+0x00000010[ ]+NT_GNU_PROPERTY_TYPE_0
+[ ]+Properties: RISC-V AND feature: CFI_LP_UNLABELED
diff --git a/ld/testsuite/ld-riscv-elf/property-combine-and-3.d b/ld/testsuite/ld-riscv-elf/property-combine-and-3.d
new file mode 100644
index 0000000..b57a0f7
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/property-combine-and-3.d
@@ -0,0 +1,11 @@
+#name: RISC-V GNU Property (multiple inputs, combine section) - 3
+#source: property1.s
+#source: property4.s
+#as: -march=rv64g
+#ld: -shared -melf64lriscv
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+[ ]+GNU[ ]+0x00000010[ ]+NT_GNU_PROPERTY_TYPE_0
+[ ]+Properties: RISC-V AND feature: CFI_SS
diff --git a/ld/testsuite/ld-riscv-elf/property-zicfilp-unlabeled.d b/ld/testsuite/ld-riscv-elf/property-zicfilp-unlabeled.d
new file mode 100644
index 0000000..48d60d6
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/property-zicfilp-unlabeled.d
@@ -0,0 +1,10 @@
+#name: GNU Property (single input, CFI_LP_UNLABELED)
+#source: property-zicfilp-unlabeled.s
+#as: -march=rv64g
+#ld: -shared -melf64lriscv
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+[ ]+GNU[ ]+0x00000010[ ]+NT_GNU_PROPERTY_TYPE_0
+[ ]+Properties: RISC-V AND feature: CFI_LP_UNLABELED
diff --git a/ld/testsuite/ld-riscv-elf/property-zicfilp-unlabeled.s b/ld/testsuite/ld-riscv-elf/property-zicfilp-unlabeled.s
new file mode 100644
index 0000000..b0192c0
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/property-zicfilp-unlabeled.s
@@ -0,0 +1,21 @@
+ .text
+ .globl _start
+ .type _start,@function
+_start:
+ ret
+
+ .section ".note.gnu.property", "a"
+ .p2align 3
+ .long 1f - 0f /* name length */
+ .long 5f - 2f /* data length */
+ .long 5 /* note type */
+0: .asciz "GNU" /* vendor name */
+1:
+ .p2align 3
+2: .long 0xc0000000 /* pr_type. */
+ .long 4f - 3f /* pr_datasz. */
+3:
+ .long 0x1 /* GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED. */
+4:
+ .p2align 3
+5:
diff --git a/ld/testsuite/ld-riscv-elf/property-zicfiss.d b/ld/testsuite/ld-riscv-elf/property-zicfiss.d
new file mode 100644
index 0000000..0dec1a1
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/property-zicfiss.d
@@ -0,0 +1,10 @@
+#name: GNU Property (single input, CFI_SS)
+#source: property-zicfiss.s
+#as: -march=rv64g
+#ld: -shared -melf64lriscv
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+[ ]+GNU[ ]+0x00000010[ ]+NT_GNU_PROPERTY_TYPE_0
+[ ]+Properties: RISC-V AND feature: CFI_SS
diff --git a/ld/testsuite/ld-riscv-elf/property-zicfiss.s b/ld/testsuite/ld-riscv-elf/property-zicfiss.s
new file mode 100644
index 0000000..21342ef
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/property-zicfiss.s
@@ -0,0 +1,21 @@
+ .text
+ .globl _start
+ .type _start,@function
+_start:
+ ret
+
+ .section ".note.gnu.property", "a"
+ .p2align 3
+ .long 1f - 0f /* name length */
+ .long 5f - 2f /* data length */
+ .long 5 /* note type */
+0: .asciz "GNU" /* vendor name */
+1:
+ .p2align 3
+2: .long 0xc0000000 /* pr_type. */
+ .long 4f - 3f /* pr_datasz. */
+3:
+ .long 0x2 /* GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS. */
+4:
+ .p2align 3
+5:
diff --git a/ld/testsuite/ld-riscv-elf/property1.s b/ld/testsuite/ld-riscv-elf/property1.s
new file mode 100644
index 0000000..622bbcb
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/property1.s
@@ -0,0 +1,21 @@
+ .text
+ .globl _start
+ .type _start,@function
+_start:
+ ret
+
+ .section ".note.gnu.property", "a"
+ .p2align 3
+ .long 1f - 0f /* name length */
+ .long 5f - 2f /* data length */
+ .long 5 /* note type */
+0: .asciz "GNU" /* vendor name */
+1:
+ .p2align 3
+2: .long 0xc0000000 /* pr_type. */
+ .long 4f - 3f /* pr_datasz. */
+3:
+ .long 0x3 /* CFI_LP_UNLABELED and CFI_SS. */
+4:
+ .p2align 3
+5:
diff --git a/ld/testsuite/ld-riscv-elf/property2.s b/ld/testsuite/ld-riscv-elf/property2.s
new file mode 100644
index 0000000..4d1610c
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/property2.s
@@ -0,0 +1,5 @@
+ .text
+ .globl foo
+ .type foo,@function
+foo:
+ ret
diff --git a/ld/testsuite/ld-riscv-elf/property3.s b/ld/testsuite/ld-riscv-elf/property3.s
new file mode 100644
index 0000000..61518fb
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/property3.s
@@ -0,0 +1,21 @@
+ .text
+ .globl _start
+ .type _start,@function
+bar:
+ ret
+
+ .section ".note.gnu.property", "a"
+ .p2align 3
+ .long 1f - 0f /* name length */
+ .long 5f - 2f /* data length */
+ .long 5 /* note type */
+0: .asciz "GNU" /* vendor name */
+1:
+ .p2align 3
+2: .long 0xc0000000 /* pr_type. */
+ .long 4f - 3f /* pr_datasz. */
+3:
+ .long 0x1 /* CFI_LP_UNLABELED. */
+4:
+ .p2align 3
+5:
diff --git a/ld/testsuite/ld-riscv-elf/property4.s b/ld/testsuite/ld-riscv-elf/property4.s
new file mode 100644
index 0000000..54098a5
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/property4.s
@@ -0,0 +1,21 @@
+ .text
+ .globl _start
+ .type _start,@function
+zoo:
+ ret
+
+ .section ".note.gnu.property", "a"
+ .p2align 3
+ .long 1f - 0f /* name length */
+ .long 5f - 2f /* data length */
+ .long 5 /* note type */
+0: .asciz "GNU" /* vendor name */
+1:
+ .p2align 3
+2: .long 0xc0000000 /* pr_type. */
+ .long 4f - 3f /* pr_datasz. */
+3:
+ .long 0x2 /* CFI_LP_SS. */
+4:
+ .p2align 3
+5:
diff --git a/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.d b/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.d
new file mode 100644
index 0000000..bb888d1
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.d
@@ -0,0 +1,35 @@
+#name: Unlabled landing pad PLT
+#source: zicfilp-unlabeled-plt.s
+#ld: -shared -melf64lriscv
+#objdump: -dr -j .plt
+#as: -march=rv64gc_zicfilp
+
+[^:]*: *file format elf64-.*riscv
+
+Disassembly of section \.plt:
+
+[0-9a-f]+ <\.plt>:
+.*:[ ]+[0-9a-f]+[ ]+lpad[ ]+0x0
+.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+t2,0x[0-9a-f]+
+.*:[ ]+[0-9a-f]+[ ]+sub[ ]+t1,t1,t3
+.*:[ ]+[0-9a-f]+[ ]+ld[ ]+t3,[0-9]+\(t2\) # [0-9a-f]+ <\.got\.plt>
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+t1,t1,-64
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+t0,t2,[0-9]+
+.*:[ ]+[0-9a-f]+[ ]+srli[ ]+t1,t1,0x1
+.*:[ ]+[0-9a-f]+[ ]+ld[ ]+t0,8\(t0\)
+.*:[ ]+[0-9a-f]+[ ]+jr[ ]+t3
+.*:[ ]+[0-9a-f]+[ ]+nop
+.*:[ ]+[0-9a-f]+[ ]+nop
+.*:[ ]+[0-9a-f]+[ ]+nop
+
+[0-9a-f]+ <foo@plt>:
+.*:[ ]+[0-9a-f]+[ ]+lpad[ ]+0x0
+.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+t3,0x[0-9a-f]+
+.*:[ ]+[0-9a-f]+[ ]+ld[ ]+t3,[0-9]+\(t3\) # [0-9a-f]+ <foo>
+.*:[ ]+[0-9a-f]+[ ]+jalr[ ]+t1,t3
+
+[0-9a-f]+ <bar@plt>:
+.*:[ ]+[0-9a-f]+[ ]+lpad[ ]+0x0
+.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+t3,0x1
+.*:[ ]+[0-9a-f]+[ ]+ld[ ]+t3,[0-9]+\(t3\) # [0-9a-f]+ <bar>
+.*:[ ]+[0-9a-f]+[ ]+jalr[ ]+t1,t3
diff --git a/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.s b/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.s
new file mode 100644
index 0000000..628fca8
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.s
@@ -0,0 +1,21 @@
+ .text
+ .globl _start
+ .type _start,@function
+_start:
+ call foo
+ call bar
+ .section ".note.gnu.property", "a"
+ .p2align 3
+ .long 1f - 0f /* name length */
+ .long 5f - 2f /* data length */
+ .long 5 /* note type */
+0: .asciz "GNU" /* vendor name */
+1:
+ .p2align 3
+2: .long 0xc0000000 /* pr_type. */
+ .long 4f - 3f /* pr_datasz. */
+3:
+ .long 0x1 /* CFI_LP. */
+4:
+ .p2align 3
+5:
diff --git a/ld/testsuite/ld-s390/pr32969_64-1.dd b/ld/testsuite/ld-s390/pr32969_64-1.dd
new file mode 100644
index 0000000..fce262f
--- /dev/null
+++ b/ld/testsuite/ld-s390/pr32969_64-1.dd
@@ -0,0 +1,15 @@
+tmpdir/pr32969_64-1: file format elf64-s390
+
+Disassembly of section .text:
+
+.* <_start>:
+.*: c0 10 00 00 00 0e [ ]*larl %r1,10000cc <foo>
+.*: c4 18 00 00 08 1d [ ]*lgrl %r1,10010f0 <_GLOBAL_OFFSET_TABLE_\+0x20>
+
+.* <b>:
+.*: c4 18 00 00 08 1a [ ]*lgrl %r1,10010f0 <_GLOBAL_OFFSET_TABLE_\+0x20>
+#?.* 07 07 [ ]*nopr %r7
+
+.* <c>:
+.* c4 18 00 00 08 16 [ ]*lgrl %r1,10010f0 <_GLOBAL_OFFSET_TABLE_\+0x20>
+#?.* 07 07 [ ]*nopr %r7
diff --git a/ld/testsuite/ld-s390/pr32969_64-2.dd b/ld/testsuite/ld-s390/pr32969_64-2.dd
new file mode 100644
index 0000000..88c770e
--- /dev/null
+++ b/ld/testsuite/ld-s390/pr32969_64-2.dd
@@ -0,0 +1,15 @@
+tmpdir/pr32969_64-2: file format elf64-s390
+
+Disassembly of section .text:
+
+.* <_start>:
+.*: c0 10 00 00 00 0e [ ]*larl %r1,10000cc <foo>
+.*: c0 10 00 00 00 0c [ ]*larl %r1,10000ce <bar>
+
+.* <c>:
+.*: c0 10 00 00 00 09 [ ]*larl %r1,10000ce <bar>
+#?.* 07 07 [ ]*nopr %r7
+
+.* <b>:
+.* c0 10 00 00 00 05 [ ]*larl %r1,10000ce <bar>
+#?.* 07 07 [ ]*nopr %r7
diff --git a/ld/testsuite/ld-s390/pr32969a.s b/ld/testsuite/ld-s390/pr32969a.s
new file mode 100644
index 0000000..baee6ca
--- /dev/null
+++ b/ld/testsuite/ld-s390/pr32969a.s
@@ -0,0 +1,14 @@
+ .text
+ .globl _start
+ .type _start,@function
+_start:
+ lgrl %r1,foo@GOTENT
+ lgrl %r1,bar@GOTENT
+
+ .section .rodata,"a",@progbits
+ .align 1
+ .globl foo
+ .type foo,@object
+foo:
+ .byte 0xa
+ .size foo, .-foo
diff --git a/ld/testsuite/ld-s390/pr32969b.s b/ld/testsuite/ld-s390/pr32969b.s
new file mode 100644
index 0000000..54ee369
--- /dev/null
+++ b/ld/testsuite/ld-s390/pr32969b.s
@@ -0,0 +1,10 @@
+b:
+ lgrl %r1,bar@GOTENT
+
+ .section .rodata,"aG",@progbits,bar_group,comdat
+ .align 1
+ .globl bar
+ .type bar,@object
+bar:
+ .byte 0xb
+ .size bar, .-bar
diff --git a/ld/testsuite/ld-s390/pr32969c.s b/ld/testsuite/ld-s390/pr32969c.s
new file mode 100644
index 0000000..02cf584
--- /dev/null
+++ b/ld/testsuite/ld-s390/pr32969c.s
@@ -0,0 +1,10 @@
+c:
+ lgrl %r1,bar@GOTENT
+
+ .section .rodata,"aG",@progbits,bar_group,comdat
+ .align 2
+ .globl bar
+ .type bar,@object
+bar:
+ .byte 0xc
+ .size bar, .-bar
diff --git a/ld/testsuite/ld-s390/s390.exp b/ld/testsuite/ld-s390/s390.exp
index d91eeac..452811d 100644
--- a/ld/testsuite/ld-s390/s390.exp
+++ b/ld/testsuite/ld-s390/s390.exp
@@ -125,20 +125,30 @@ set s390xtests {
"-m elf64_s390 tmpdir/libpltlib_64.so" "" "-m64" {plt_64-1.s}
{{objdump "-dzrj.plt" plt_64-1.pd} {readelf "-wf" plt_64-1_eh.wf}}
"plt_64-1_eh"}
+ {"PR32969-1: do not rewrite load of misaligned COMDAT symbol address"
+ "-m elf64_s390" "" "-m64" {pr32969a.s pr32969b.s pr32969c.s}
+ {{objdump "-dzrj.text" pr32969_64-1.dd}}
+ "pr32969_64-1"}
+ {"PR32969-2: rewrite load of aligned COMDAT symbol address"
+ "-m elf64_s390" "" "-m64" {pr32969a.s pr32969c.s pr32969b.s}
+ {{objdump "-dzrj.text" pr32969_64-2.dd}}
+ "pr32969_64-2"}
}
-if [istarget "s390-*-*"] {
+if { [istarget "s390-*-*"] || [istarget "s390x-*-*"] } {
run_ld_link_tests $s390tests
+
+ run_dump_test "pr26918-1"
+ run_dump_test "reloccheck-1"
+ run_dump_test "reloctlsle-1"
+
}
if [istarget "s390x-*-*"] {
- run_ld_link_tests $s390tests
run_ld_link_tests $s390xtests
-}
-set test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]]
-foreach t $test_list {
- # We need to strip the ".d", but can leave the dirname.
- verbose [file rootname $t]
- run_dump_test [file rootname $t]
+ if { ![skip_sframe_tests] } {
+ run_dump_test "sframe-simple-1"
+ run_dump_test "sframe-plt-1"
+ }
}
diff --git a/ld/testsuite/ld-s390/sframe-bar.s b/ld/testsuite/ld-s390/sframe-bar.s
new file mode 100644
index 0000000..f707569
--- /dev/null
+++ b/ld/testsuite/ld-s390/sframe-bar.s
@@ -0,0 +1,21 @@
+ .text
+ .globl bar
+ .type bar, @function
+bar:
+ .cfi_startproc
+ stmg %r14,%r15,112(%r15)
+ .cfi_rel_offset %r14, 112
+ .cfi_rel_offset %r15, 120
+ lay %r15,-160(%r15)
+ .cfi_adjust_cfa_offset 160
+ clgfi %r2,1000
+ jle .Lreturn
+ brasl %r14,foo@PLT
+.Lreturn:
+ lay %r15,160(%r15)
+ .cfi_adjust_cfa_offset -160
+ lg %r14,112(%r15)
+ .cfi_restore %r14
+ br %r14
+ .cfi_endproc
+ .size bar, .-bar
diff --git a/ld/testsuite/ld-s390/sframe-foo.s b/ld/testsuite/ld-s390/sframe-foo.s
new file mode 100644
index 0000000..75657e9
--- /dev/null
+++ b/ld/testsuite/ld-s390/sframe-foo.s
@@ -0,0 +1,9 @@
+ .text
+ .globl foo
+ .type foo, @function
+foo:
+ .cfi_startproc
+ msgfi %r2,42
+ br %r14
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/ld/testsuite/ld-s390/sframe-plt-1.d b/ld/testsuite/ld-s390/sframe-plt-1.d
new file mode 100644
index 0000000..db09030
--- /dev/null
+++ b/ld/testsuite/ld-s390/sframe-plt-1.d
@@ -0,0 +1,29 @@
+#as: --gsframe
+#source: sframe-foo.s
+#source: sframe-bar.s
+#objdump: --sframe=.sframe
+#ld: -shared --no-rosegment
+#name: SFrame for plt0 and pltN
+
+.*: +file format .*
+
+Contents of the SFrame section .sframe:
+ Header :
+
+ Version: SFRAME_VERSION_2
+ Flags: SFRAME_F_FDE_SORTED,
+ SFRAME_F_FDE_FUNC_START_PCREL
+ Num FDEs: 4
+ Num FREs: 8
+
+ Function Index :
+
+ func idx \[0\]: pc = 0x1e8, size = 32 bytes
+ STARTPC +CFA +FP +RA +
+ 0+1e8 +sp\+160 +u +u +
+
+ func idx \[1\]: pc = 0x208, size = 32 bytes
+ STARTPC\[m\] +CFA +FP +RA +
+ 0+0 +sp\+160 +u +u +
+
+#...
diff --git a/ld/testsuite/ld-s390/sframe-simple-1.d b/ld/testsuite/ld-s390/sframe-simple-1.d
new file mode 100644
index 0000000..1c1bf32
--- /dev/null
+++ b/ld/testsuite/ld-s390/sframe-simple-1.d
@@ -0,0 +1,32 @@
+#as: --gsframe
+#source: sframe-foo.s
+#source: sframe-bar.s
+#objdump: --sframe=.sframe
+#ld: -shared --no-rosegment
+#name: SFrame simple link
+
+.*: +file format .*
+
+Contents of the SFrame section .sframe:
+ Header :
+
+ Version: SFRAME_VERSION_2
+ Flags: SFRAME_F_FDE_SORTED,
+ SFRAME_F_FDE_FUNC_START_PCREL
+ Num FDEs: 4
+ Num FREs: 8
+
+ Function Index :
+
+#...
+ func idx \[2\]: pc = 0x228, size = 8 bytes
+ STARTPC +CFA +FP +RA +
+ 0+228 +sp\+160 +u +u +
+
+ func idx \[3\]: pc = 0x230, size = 42 bytes
+ STARTPC +CFA +FP +RA +
+ 0+230 +sp\+160 +u +u +
+ 0+236 +sp\+160 +u +c-48 +
+ 0+23c +sp\+320 +u +c-48 +
+ 0+252 +sp\+160 +u +c-48 +
+ 0+258 +sp\+160 +u +u +
diff --git a/ld/testsuite/ld-tic6x/discard-unwind.ld b/ld/testsuite/ld-tic6x/discard-unwind.ld
index 00582c1..172e2a8 100644
--- a/ld/testsuite/ld-tic6x/discard-unwind.ld
+++ b/ld/testsuite/ld-tic6x/discard-unwind.ld
@@ -11,5 +11,5 @@ SECTIONS
*(.c6xabi.extab*)
} =0
/DISCARD/ : { *(.c6xabi.exidx*) }
- .c6xabi.attribues 0 : { *(.c6xabi.atttributes) }
+ .c6xabi.attributes 0 : { *(.c6xabi.attributes) }
}
diff --git a/ld/testsuite/ld-tic6x/unwind.ld b/ld/testsuite/ld-tic6x/unwind.ld
index a4f8722..01ba9b6 100644
--- a/ld/testsuite/ld-tic6x/unwind.ld
+++ b/ld/testsuite/ld-tic6x/unwind.ld
@@ -16,5 +16,5 @@ SECTIONS
.got : { *(.got) *(.got.plt)}
. = 0x12340000;
.far : { *(.far) }
- .c6xabi.attribues 0 : { *(.c6xabi.atttributes) }
+ .c6xabi.attributes 0 : { *(.c6xabi.attributes) }
}
diff --git a/ld/testsuite/ld-x86-64/dwarf4.s b/ld/testsuite/ld-x86-64/dwarf4.s
new file mode 100644
index 0000000..7f1a90d
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/dwarf4.s
@@ -0,0 +1,346 @@
+/* Assembly outputs of
+
+extern void bar();
+
+void foo(int p) {
+ int local = p;
+ bar();
+ local = 123;
+ bar();
+ local = 456;
+}
+
+compiled by GCC 14.2.1 with -O2 -g -dA -gdwarf-4. */
+
+ .file "dwarf4.c"
+ .text
+.Ltext0:
+ .file 1 "dwarf4.c"
+ .p2align 4
+ .globl foo
+ .type foo, @function
+foo:
+.LVL0:
+ # DEBUG p => di
+.LFB0:
+ # dwarf4.c:3:17
+ .loc 1 3 17 view -0
+ .cfi_startproc
+# BLOCK 2, count:1073741824 (estimated locally) seq:0
+# PRED: ENTRY [always] count:1073741824 (estimated locally, freq 1.0000) (FALLTHRU)
+ # dwarf4.c:4:3
+ .loc 1 4 3 view .LVU1
+ # DEBUG local => di
+ # dwarf4.c:5:3
+ .loc 1 5 3 view .LVU2
+ # dwarf4.c:3:17
+ .loc 1 3 17 is_stmt 0 view .LVU3
+ subq $8, %rsp
+ .cfi_def_cfa_offset 16
+ # dwarf4.c:5:3
+ .loc 1 5 3 view .LVU4
+ xorl %eax, %eax
+ call bar
+.LVL1:
+ # DEBUG local => entry_value#0
+ # DEBUG p => entry_value#0
+ # dwarf4.c:6:3
+ .loc 1 6 3 is_stmt 1 view .LVU5
+ # DEBUG local => 0x7b
+ # dwarf4.c:7:3
+ .loc 1 7 3 view .LVU6
+ xorl %eax, %eax
+ # dwarf4.c:9:1
+ .loc 1 9 1 is_stmt 0 view .LVU7
+ addq $8, %rsp
+ .cfi_def_cfa_offset 8
+# SUCC: EXIT [always] count:1073741824 (estimated locally, freq 1.0000) (ABNORMAL,SIBCALL)
+ # dwarf4.c:7:3
+ .loc 1 7 3 view .LVU8
+ jmp bar
+.LVL2:
+ .cfi_endproc
+.LFE0:
+ .size foo, .-foo
+.Letext0:
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .long 0x9e # Length of Compilation Unit Info
+ .value 0x4 # DWARF version number
+ .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
+ .byte 0x8 # Pointer Size (in bytes)
+ .uleb128 0x1 # (DIE (0xb) DW_TAG_compile_unit)
+ .long .LASF0 # DW_AT_producer: "GNU C17 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee] -mtune=generic -march=x86-64 -g -gdwarf-4 -O2"
+ .byte 0xc # DW_AT_language
+ .long .LASF1 # DW_AT_name: "dwarf4.c"
+ .long .LASF2 # DW_AT_comp_dir: "."
+ .quad .Ltext0 # DW_AT_low_pc
+ .quad .Letext0-.Ltext0 # DW_AT_high_pc
+ .long .Ldebug_line0 # DW_AT_stmt_list
+ .uleb128 0x2 # (DIE (0x2d) DW_TAG_subprogram)
+ # DW_AT_external
+ .ascii "bar\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (dwarf4.c)
+ .byte 0x1 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ # DW_AT_declaration
+ .long 0x3b # DW_AT_sibling
+ .uleb128 0x3 # (DIE (0x39) DW_TAG_unspecified_parameters)
+ .byte 0 # end of children of DIE 0x2d
+ .uleb128 0x4 # (DIE (0x3b) DW_TAG_subprogram)
+ # DW_AT_external
+ .ascii "foo\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (dwarf4.c)
+ .byte 0x3 # DW_AT_decl_line
+ .byte 0x6 # DW_AT_decl_column
+ # DW_AT_prototyped
+ .quad .LFB0 # DW_AT_low_pc
+ .quad .LFE0-.LFB0 # DW_AT_high_pc
+ .uleb128 0x1 # DW_AT_frame_base
+ .byte 0x9c # DW_OP_call_frame_cfa
+ # DW_AT_GNU_all_call_sites
+ .long 0x9a # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x59) DW_TAG_formal_parameter)
+ .ascii "p\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (dwarf4.c)
+ .byte 0x3 # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x9a # DW_AT_type
+ .long .LLST0 # DW_AT_location
+ .long .LVUS0 # DW_AT_GNU_locviews
+ .uleb128 0x6 # (DIE (0x6b) DW_TAG_variable)
+ .long .LASF3 # DW_AT_name: "local"
+ .byte 0x1 # DW_AT_decl_file (dwarf4.c)
+ .byte 0x4 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x9a # DW_AT_type
+ .long .LLST1 # DW_AT_location
+ .long .LVUS1 # DW_AT_GNU_locviews
+ .uleb128 0x7 # (DIE (0x7f) DW_TAG_GNU_call_site)
+ .quad .LVL1 # DW_AT_low_pc
+ .long 0x2d # DW_AT_abstract_origin
+ .uleb128 0x8 # (DIE (0x8c) DW_TAG_GNU_call_site)
+ .quad .LVL2 # DW_AT_low_pc
+ # DW_AT_GNU_tail_call
+ .long 0x2d # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x3b
+ .uleb128 0x9 # (DIE (0x9a) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .ascii "int\0" # DW_AT_name
+ .byte 0 # end of children of DIE 0xb
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .uleb128 0x1 # (abbrev code)
+ .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x25 # (DW_AT_producer)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x13 # (DW_AT_language)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x1b # (DW_AT_comp_dir)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x10 # (DW_AT_stmt_list)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x2 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x3 # (abbrev code)
+ .uleb128 0x18 # (TAG: DW_TAG_unspecified_parameters)
+ .byte 0 # DW_children_no
+ .byte 0
+ .byte 0
+ .uleb128 0x4 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x27 # (DW_AT_prototyped)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x40 # (DW_AT_frame_base)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x5 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x2137 # (DW_AT_GNU_locviews)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x6 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x2137 # (DW_AT_GNU_locviews)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x7 # (abbrev code)
+ .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
+ .byte 0 # DW_children_no
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x8 # (abbrev code)
+ .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
+ .byte 0 # DW_children_no
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2115 # (DW_AT_GNU_tail_call)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x9 # (abbrev code)
+ .uleb128 0x24 # (TAG: DW_TAG_base_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_loc,"",@progbits
+.Ldebug_loc0:
+.LVUS0:
+ .uleb128 0 # View list begin (*.LVUS0)
+ .uleb128 .LVU5 # View list end (*.LVUS0)
+ .uleb128 .LVU5 # View list begin (*.LVUS0)
+ .uleb128 0 # View list end (*.LVUS0)
+.LLST0:
+ .quad .LVL0-.Ltext0 # Location list begin address (*.LLST0)
+ .quad .LVL1-1-.Ltext0 # Location list end address (*.LLST0)
+ .value 0x1 # Location expression size
+ .byte 0x55 # DW_OP_reg5
+ .quad .LVL1-1-.Ltext0 # Location list begin address (*.LLST0)
+ .quad .LFE0-.Ltext0 # Location list end address (*.LLST0)
+ .value 0x4 # Location expression size
+ .byte 0xf3 # DW_OP_GNU_entry_value
+ .uleb128 0x1
+ .byte 0x55 # DW_OP_reg5
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST0)
+ .quad 0 # Location list terminator end (*.LLST0)
+.LVUS1:
+ .uleb128 .LVU2 # View list begin (*.LVUS1)
+ .uleb128 .LVU5 # View list end (*.LVUS1)
+ .uleb128 .LVU5 # View list begin (*.LVUS1)
+ .uleb128 .LVU6 # View list end (*.LVUS1)
+ .uleb128 .LVU6 # View list begin (*.LVUS1)
+ .uleb128 0 # View list end (*.LVUS1)
+.LLST1:
+ .quad .LVL0-.Ltext0 # Location list begin address (*.LLST1)
+ .quad .LVL1-1-.Ltext0 # Location list end address (*.LLST1)
+ .value 0x1 # Location expression size
+ .byte 0x55 # DW_OP_reg5
+ .quad .LVL1-1-.Ltext0 # Location list begin address (*.LLST1)
+ .quad .LVL1-.Ltext0 # Location list end address (*.LLST1)
+ .value 0x4 # Location expression size
+ .byte 0xf3 # DW_OP_GNU_entry_value
+ .uleb128 0x1
+ .byte 0x55 # DW_OP_reg5
+ .byte 0x9f # DW_OP_stack_value
+ .quad .LVL1-.Ltext0 # Location list begin address (*.LLST1)
+ .quad .LFE0-.Ltext0 # Location list end address (*.LLST1)
+ .value 0x3 # Location expression size
+ .byte 0x8 # DW_OP_const1u
+ .byte 0x7b
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST1)
+ .quad 0 # Location list terminator end (*.LLST1)
+ .section .debug_aranges,"",@progbits
+ .long 0x2c # Length of Address Ranges Info
+ .value 0x2 # DWARF aranges version
+ .long .Ldebug_info0 # Offset of Compilation Unit Info
+ .byte 0x8 # Size of Address
+ .byte 0 # Size of Segment Descriptor
+ .value 0 # Pad to 16 byte boundary
+ .value 0
+ .quad .Ltext0 # Address
+ .quad .Letext0-.Ltext0 # Length
+ .quad 0
+ .quad 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF0:
+ .string "GNU C17 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee] -mtune=generic -march=x86-64 -g -gdwarf-4 -O2"
+.LASF1:
+ .string "dwarf4.c"
+.LASF3:
+ .string "local"
+.LASF2:
+ .string "."
+ .ident "GCC: (GNU) 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee]"
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/dwarf5a.s b/ld/testsuite/ld-x86-64/dwarf5a.s
new file mode 100644
index 0000000..eefaaf4
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/dwarf5a.s
@@ -0,0 +1,400 @@
+/* Assembly outputs of
+
+extern void foo(int);
+
+int global;
+
+int main() {
+ int local = global;
+ foo(1);
+ local = 123;
+ foo(2);
+ local = 456;
+ return 0;
+}
+
+compiled by GCC 14.2.1 with -O2 -g -dA -gdwarf-5. */
+
+ .file "dwarf5a.c"
+ .text
+.Ltext0:
+ .file 0 "." "dwarf5a.c"
+ .section .text.startup,"ax",@progbits
+ .p2align 4
+ .globl main
+ .type main, @function
+main:
+.LFB0:
+ .file 1 "dwarf5a.c"
+ # dwarf5a.c:5:12
+ .loc 1 5 12 view -0
+ .cfi_startproc
+# BLOCK 2, count:1073741824 (estimated locally) seq:0
+# PRED: ENTRY [always] count:1073741824 (estimated locally, freq 1.0000) (FALLTHRU)
+ # dwarf5a.c:6:3
+ .loc 1 6 3 view .LVU1
+.LVL0:
+ # DEBUG local => [`global']
+ # dwarf5a.c:7:3
+ .loc 1 7 3 view .LVU2
+ # dwarf5a.c:5:12
+ .loc 1 5 12 is_stmt 0 view .LVU3
+ subq $8, %rsp
+ .cfi_def_cfa_offset 16
+ # dwarf5a.c:7:3
+ .loc 1 7 3 view .LVU4
+ movl $1, %edi
+ call foo
+.LVL1:
+ # DEBUG local RESET
+ # dwarf5a.c:8:3
+ .loc 1 8 3 is_stmt 1 view .LVU5
+ # DEBUG local => 0x7b
+ # dwarf5a.c:9:3
+ .loc 1 9 3 view .LVU6
+ movl $2, %edi
+ call foo
+.LVL2:
+ # dwarf5a.c:10:3
+ .loc 1 10 3 view .LVU7
+ # DEBUG local => 0x1c8
+ # dwarf5a.c:11:3
+ .loc 1 11 3 view .LVU8
+ # dwarf5a.c:12:1
+ .loc 1 12 1 is_stmt 0 view .LVU9
+ xorl %eax, %eax
+ addq $8, %rsp
+ .cfi_def_cfa_offset 8
+# SUCC: EXIT [always] count:1073741824 (estimated locally, freq 1.0000)
+ ret
+ .cfi_endproc
+.LFE0:
+ .size main, .-main
+ .globl global
+ .bss
+ .align 4
+ .type global, @object
+ .size global, 4
+global:
+ .zero 4
+ .text
+.Letext0:
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .long 0xb3 # Length of Compilation Unit Info
+ .value 0x5 # DWARF version number
+ .byte 0x1 # DW_UT_compile
+ .byte 0x8 # Pointer Size (in bytes)
+ .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
+ .uleb128 0x2 # (DIE (0xc) DW_TAG_compile_unit)
+ .long .LASF4 # DW_AT_producer: "GNU C17 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee] -mtune=generic -march=x86-64 -g -gdwarf-5 -O2"
+ .byte 0x1d # DW_AT_language
+ .long .LASF0 # DW_AT_name: "dwarf5a.c"
+ .long .LASF1 # DW_AT_comp_dir: "."
+ .long .LLRL1 # DW_AT_ranges
+ .quad 0 # DW_AT_low_pc
+ .long .Ldebug_line0 # DW_AT_stmt_list
+ .uleb128 0x3 # (DIE (0x2a) DW_TAG_variable)
+ .long .LASF2 # DW_AT_name: "global"
+ .byte 0x1 # DW_AT_decl_file (dwarf5a.c)
+ .byte 0x3 # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long 0x40 # DW_AT_type
+ # DW_AT_external
+ .uleb128 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad global
+ .uleb128 0x4 # (DIE (0x40) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .ascii "int\0" # DW_AT_name
+ .uleb128 0x5 # (DIE (0x47) DW_TAG_subprogram)
+ # DW_AT_external
+ .ascii "foo\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (dwarf5a.c)
+ .byte 0x1 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ # DW_AT_prototyped
+ # DW_AT_declaration
+ .long 0x59 # DW_AT_sibling
+ .uleb128 0x6 # (DIE (0x53) DW_TAG_formal_parameter)
+ .long 0x40 # DW_AT_type
+ .byte 0 # end of children of DIE 0x47
+ .uleb128 0x7 # (DIE (0x59) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF5 # DW_AT_name: "main"
+ .byte 0x1 # DW_AT_decl_file (dwarf5a.c)
+ .byte 0x5 # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long 0x40 # DW_AT_type
+ .quad .LFB0 # DW_AT_low_pc
+ .quad .LFE0-.LFB0 # DW_AT_high_pc
+ .uleb128 0x1 # DW_AT_frame_base
+ .byte 0x9c # DW_OP_call_frame_cfa
+ # DW_AT_call_all_calls
+ .uleb128 0x8 # (DIE (0x77) DW_TAG_variable)
+ .long .LASF3 # DW_AT_name: "local"
+ .byte 0x1 # DW_AT_decl_file (dwarf5a.c)
+ .byte 0x6 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x40 # DW_AT_type
+ .long .LLST0 # DW_AT_location
+ .long .LVUS0 # DW_AT_GNU_locviews
+ .uleb128 0x9 # (DIE (0x8b) DW_TAG_call_site)
+ .quad .LVL1 # DW_AT_call_return_pc
+ .long 0x47 # DW_AT_call_origin
+ .long 0xa2 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x9c) DW_TAG_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x1 # DW_AT_call_value
+ .byte 0x31 # DW_OP_lit1
+ .byte 0 # end of children of DIE 0x8b
+ .uleb128 0xa # (DIE (0xa2) DW_TAG_call_site)
+ .quad .LVL2 # DW_AT_call_return_pc
+ .long 0x47 # DW_AT_call_origin
+ .uleb128 0x1 # (DIE (0xaf) DW_TAG_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x1 # DW_AT_call_value
+ .byte 0x32 # DW_OP_lit2
+ .byte 0 # end of children of DIE 0xa2
+ .byte 0 # end of children of DIE 0x59
+ .byte 0 # end of children of DIE 0xc
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .uleb128 0x1 # (abbrev code)
+ .uleb128 0x49 # (TAG: DW_TAG_call_site_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x7e # (DW_AT_call_value)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .byte 0
+ .byte 0
+ .uleb128 0x2 # (abbrev code)
+ .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x25 # (DW_AT_producer)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x13 # (DW_AT_language)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x1f # (DW_FORM_line_strp)
+ .uleb128 0x1b # (DW_AT_comp_dir)
+ .uleb128 0x1f # (DW_FORM_line_strp)
+ .uleb128 0x55 # (DW_AT_ranges)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x10 # (DW_AT_stmt_list)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x3 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .byte 0
+ .byte 0
+ .uleb128 0x4 # (abbrev code)
+ .uleb128 0x24 # (TAG: DW_TAG_base_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .byte 0
+ .byte 0
+ .uleb128 0x5 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x27 # (DW_AT_prototyped)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x6 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x7 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x40 # (DW_AT_frame_base)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x7a # (DW_AT_call_all_calls)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x8 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x2137 # (DW_AT_GNU_locviews)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x9 # (abbrev code)
+ .uleb128 0x48 # (TAG: DW_TAG_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x7d # (DW_AT_call_return_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x7f # (DW_AT_call_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0xa # (abbrev code)
+ .uleb128 0x48 # (TAG: DW_TAG_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x7d # (DW_AT_call_return_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x7f # (DW_AT_call_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_loclists,"",@progbits
+ .long .Ldebug_loc3-.Ldebug_loc2 # Length of Location Lists
+.Ldebug_loc2:
+ .value 0x5 # DWARF version number
+ .byte 0x8 # Address Size
+ .byte 0 # Segment Size
+ .long 0 # Offset Entry Count
+.Ldebug_loc0:
+.LVUS0:
+ .uleb128 .LVU2 # View list begin (*.LVUS0)
+ .uleb128 .LVU5 # View list end (*.LVUS0)
+ .uleb128 .LVU6 # View list begin (*.LVUS0)
+ .uleb128 .LVU8 # View list end (*.LVUS0)
+ .uleb128 .LVU8 # View list begin (*.LVUS0)
+ .uleb128 0 # View list end (*.LVUS0)
+.LLST0:
+ .byte 0x6 # DW_LLE_base_address (*.LLST0)
+ .quad .LVL0 # Base address (*.LLST0)
+ .byte 0x4 # DW_LLE_offset_pair (*.LLST0)
+ .uleb128 .LVL0-.LVL0 # Location list begin address (*.LLST0)
+ .uleb128 .LVL1-1-.LVL0 # Location list end address (*.LLST0)
+ .uleb128 0x9 # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad global
+ .byte 0x4 # DW_LLE_offset_pair (*.LLST0)
+ .uleb128 .LVL1-.LVL0 # Location list begin address (*.LLST0)
+ .uleb128 .LVL2-.LVL0 # Location list end address (*.LLST0)
+ .uleb128 0x3 # Location expression size
+ .byte 0x8 # DW_OP_const1u
+ .byte 0x7b
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0x4 # DW_LLE_offset_pair (*.LLST0)
+ .uleb128 .LVL2-.LVL0 # Location list begin address (*.LLST0)
+ .uleb128 .LFE0-.LVL0 # Location list end address (*.LLST0)
+ .uleb128 0x4 # Location expression size
+ .byte 0xa # DW_OP_const2u
+ .value 0x1c8
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST0)
+.Ldebug_loc3:
+ .section .debug_aranges,"",@progbits
+ .long 0x2c # Length of Address Ranges Info
+ .value 0x2 # DWARF aranges version
+ .long .Ldebug_info0 # Offset of Compilation Unit Info
+ .byte 0x8 # Size of Address
+ .byte 0 # Size of Segment Descriptor
+ .value 0 # Pad to 16 byte boundary
+ .value 0
+ .quad .LFB0 # Address
+ .quad .LFE0-.LFB0 # Length
+ .quad 0
+ .quad 0
+ .section .debug_rnglists,"",@progbits
+.Ldebug_ranges0:
+ .long .Ldebug_ranges3-.Ldebug_ranges2 # Length of Range Lists
+.Ldebug_ranges2:
+ .value 0x5 # DWARF version number
+ .byte 0x8 # Address Size
+ .byte 0 # Segment Size
+ .long 0 # Offset Entry Count
+.LLRL1:
+ .byte 0x7 # DW_RLE_start_length (*.LLRL1)
+ .quad .LFB0 # Range begin address (*.LLRL1)
+ .uleb128 .LFE0-.LFB0 # Range length (*.LLRL1)
+ .byte 0 # DW_RLE_end_of_list (*.LLRL1)
+.Ldebug_ranges3:
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF3:
+ .string "local"
+.LASF4:
+ .string "GNU C17 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee] -mtune=generic -march=x86-64 -g -gdwarf-5 -O2"
+.LASF2:
+ .string "global"
+.LASF5:
+ .string "main"
+ .section .debug_line_str,"MS",@progbits,1
+.LASF0:
+ .string "dwarf5a.c"
+.LASF1:
+ .string "."
+ .ident "GCC: (GNU) 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee]"
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/dwarf5b.s b/ld/testsuite/ld-x86-64/dwarf5b.s
new file mode 100644
index 0000000..4d34469
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/dwarf5b.s
@@ -0,0 +1,345 @@
+/* Assembly outputs of
+
+extern void foo(int);
+
+extern int global;
+
+void
+bar (void)
+{
+ int local = global;
+ foo(local);
+ local = 123;
+ foo(local);
+ local = 456;
+}
+
+compiled by GCC 14.2.1 with -O2 -g -dA -gdwarf-5. */
+
+ .file "dwarf5b.c"
+ .text
+.Ltext0:
+ .file 0 "." "dwarf5b.c"
+ .p2align 4
+ .globl bar
+ .type bar, @function
+bar:
+.LFB0:
+ .file 1 "dwarf5b.c"
+ # dwarf5b.c:7:1
+ .loc 1 7 1 view -0
+ .cfi_startproc
+# BLOCK 2, count:1073741824 (estimated locally) seq:0
+# PRED: ENTRY [always] count:1073741824 (estimated locally, freq 1.0000) (FALLTHRU)
+ # dwarf5b.c:8:3
+ .loc 1 8 3 view .LVU1
+.LVL0:
+ # DEBUG local => [`global']
+ # dwarf5b.c:9:3
+ .loc 1 9 3 view .LVU2
+ # dwarf5b.c:7:1
+ .loc 1 7 1 is_stmt 0 view .LVU3
+ subq $8, %rsp
+ .cfi_def_cfa_offset 16
+ # dwarf5b.c:9:3
+ .loc 1 9 3 view .LVU4
+ movl global(%rip), %edi
+ call foo
+.LVL1:
+ # DEBUG local RESET
+ # dwarf5b.c:10:3
+ .loc 1 10 3 is_stmt 1 view .LVU5
+ # DEBUG local => 0x7b
+ # dwarf5b.c:11:3
+ .loc 1 11 3 view .LVU6
+ movl $123, %edi
+ # dwarf5b.c:13:1
+ .loc 1 13 1 is_stmt 0 view .LVU7
+ addq $8, %rsp
+ .cfi_def_cfa_offset 8
+# SUCC: EXIT [always] count:1073741824 (estimated locally, freq 1.0000) (ABNORMAL,SIBCALL)
+ # dwarf5b.c:11:3
+ .loc 1 11 3 view .LVU8
+ jmp foo
+.LVL2:
+ .cfi_endproc
+.LFE0:
+ .size bar, .-bar
+.Letext0:
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .long 0xa0 # Length of Compilation Unit Info
+ .value 0x5 # DWARF version number
+ .byte 0x1 # DW_UT_compile
+ .byte 0x8 # Pointer Size (in bytes)
+ .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
+ .uleb128 0x1 # (DIE (0xc) DW_TAG_compile_unit)
+ .long .LASF4 # DW_AT_producer: "GNU C17 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee] -mtune=generic -march=x86-64 -g -gdwarf-5 -O2"
+ .byte 0x1d # DW_AT_language
+ .long .LASF0 # DW_AT_name: "dwarf5b.c"
+ .long .LASF1 # DW_AT_comp_dir: "."
+ .quad .Ltext0 # DW_AT_low_pc
+ .quad .Letext0-.Ltext0 # DW_AT_high_pc
+ .long .Ldebug_line0 # DW_AT_stmt_list
+ .uleb128 0x2 # (DIE (0x2e) DW_TAG_variable)
+ .long .LASF2 # DW_AT_name: "global"
+ .byte 0x1 # DW_AT_decl_file (dwarf5b.c)
+ .byte 0x3 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x3a # DW_AT_type
+ # DW_AT_external
+ # DW_AT_declaration
+ .uleb128 0x3 # (DIE (0x3a) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .ascii "int\0" # DW_AT_name
+ .uleb128 0x4 # (DIE (0x41) DW_TAG_subprogram)
+ # DW_AT_external
+ .ascii "foo\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (dwarf5b.c)
+ .byte 0x1 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ # DW_AT_prototyped
+ # DW_AT_declaration
+ .long 0x53 # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x4d) DW_TAG_formal_parameter)
+ .long 0x3a # DW_AT_type
+ .byte 0 # end of children of DIE 0x41
+ .uleb128 0x6 # (DIE (0x53) DW_TAG_subprogram)
+ # DW_AT_external
+ .ascii "bar\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (dwarf5b.c)
+ .byte 0x6 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_decl_column
+ # DW_AT_prototyped
+ .quad .LFB0 # DW_AT_low_pc
+ .quad .LFE0-.LFB0 # DW_AT_high_pc
+ .uleb128 0x1 # DW_AT_frame_base
+ .byte 0x9c # DW_OP_call_frame_cfa
+ # DW_AT_call_all_calls
+ .uleb128 0x7 # (DIE (0x6d) DW_TAG_variable)
+ .long .LASF3 # DW_AT_name: "local"
+ .byte 0x1 # DW_AT_decl_file (dwarf5b.c)
+ .byte 0x8 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x3a # DW_AT_type
+ .long .LLST0 # DW_AT_location
+ .long .LVUS0 # DW_AT_GNU_locviews
+ .uleb128 0x8 # (DIE (0x81) DW_TAG_call_site)
+ .quad .LVL1 # DW_AT_call_return_pc
+ .long 0x41 # DW_AT_call_origin
+ .uleb128 0x9 # (DIE (0x8e) DW_TAG_call_site)
+ .quad .LVL2 # DW_AT_call_return_pc
+ # DW_AT_call_tail_call
+ .long 0x41 # DW_AT_call_origin
+ .uleb128 0xa # (DIE (0x9b) DW_TAG_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x2 # DW_AT_call_value
+ .byte 0x8 # DW_OP_const1u
+ .byte 0x7b
+ .byte 0 # end of children of DIE 0x8e
+ .byte 0 # end of children of DIE 0x53
+ .byte 0 # end of children of DIE 0xc
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .uleb128 0x1 # (abbrev code)
+ .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x25 # (DW_AT_producer)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x13 # (DW_AT_language)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x1f # (DW_FORM_line_strp)
+ .uleb128 0x1b # (DW_AT_comp_dir)
+ .uleb128 0x1f # (DW_FORM_line_strp)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x10 # (DW_AT_stmt_list)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x2 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x3 # (abbrev code)
+ .uleb128 0x24 # (TAG: DW_TAG_base_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .byte 0
+ .byte 0
+ .uleb128 0x4 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x27 # (DW_AT_prototyped)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x5 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x6 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x27 # (DW_AT_prototyped)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x40 # (DW_AT_frame_base)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x7a # (DW_AT_call_all_calls)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x7 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x2137 # (DW_AT_GNU_locviews)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x8 # (abbrev code)
+ .uleb128 0x48 # (TAG: DW_TAG_call_site)
+ .byte 0 # DW_children_no
+ .uleb128 0x7d # (DW_AT_call_return_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x7f # (DW_AT_call_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x9 # (abbrev code)
+ .uleb128 0x48 # (TAG: DW_TAG_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x7d # (DW_AT_call_return_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x82 # (DW_AT_call_tail_call)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x7f # (DW_AT_call_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0xa # (abbrev code)
+ .uleb128 0x49 # (TAG: DW_TAG_call_site_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x7e # (DW_AT_call_value)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_loclists,"",@progbits
+ .long .Ldebug_loc3-.Ldebug_loc2 # Length of Location Lists
+.Ldebug_loc2:
+ .value 0x5 # DWARF version number
+ .byte 0x8 # Address Size
+ .byte 0 # Segment Size
+ .long 0 # Offset Entry Count
+.Ldebug_loc0:
+.LVUS0:
+ .uleb128 .LVU6 # View list begin (*.LVUS0)
+ .uleb128 0 # View list end (*.LVUS0)
+.LLST0:
+ .byte 0x4 # DW_LLE_offset_pair (*.LLST0)
+ .uleb128 .LVL1-.Ltext0 # Location list begin address (*.LLST0)
+ .uleb128 .LFE0-.Ltext0 # Location list end address (*.LLST0)
+ .uleb128 0x3 # Location expression size
+ .byte 0x8 # DW_OP_const1u
+ .byte 0x7b
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST0)
+.Ldebug_loc3:
+ .section .debug_aranges,"",@progbits
+ .long 0x2c # Length of Address Ranges Info
+ .value 0x2 # DWARF aranges version
+ .long .Ldebug_info0 # Offset of Compilation Unit Info
+ .byte 0x8 # Size of Address
+ .byte 0 # Size of Segment Descriptor
+ .value 0 # Pad to 16 byte boundary
+ .value 0
+ .quad .Ltext0 # Address
+ .quad .Letext0-.Ltext0 # Length
+ .quad 0
+ .quad 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF3:
+ .string "local"
+.LASF4:
+ .string "GNU C17 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee] -mtune=generic -march=x86-64 -g -gdwarf-5 -O2"
+.LASF2:
+ .string "global"
+ .section .debug_line_str,"MS",@progbits,1
+.LASF1:
+ .string "."
+.LASF0:
+ .string "dwarf5b.c"
+ .ident "GCC: (GNU) 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee]"
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/pr32809.d b/ld/testsuite/ld-x86-64/pr32809.d
new file mode 100644
index 0000000..3affc23
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr32809.d
@@ -0,0 +1,71 @@
+#source: dwarf5a.s
+#source: dwarf4.s
+#source: dwarf5b.s
+#as: --64
+#ld: -r -m elf_x86_64
+#readelf: --wide --debug-dump=loc
+
+Contents of the .*ebug_loc section:
+
+ Offset Begin End Expression
+
+ 00000000 v000000000000000 v000000000000000 location view pair
+ 00000002 v000000000000000 v000000000000000 location view pair
+
+ 00000004 v000000000000000 v000000000000000 views at 00000000 for:
+ 0000000000000000 000000000000000a \(DW_OP_reg5 \(rdi\)\)
+ 00000017 v000000000000000 v000000000000000 views at 00000002 for:
+ 000000000000000a 0000000000000016 \(DW_OP_GNU_entry_value: \(DW_OP_reg5 \(rdi\)\); DW_OP_stack_value\)
+ 0000002d <End of list>
+
+ 0000003d v000000000000002 v000000000000000 location view pair
+ 0000003f v000000000000000 v000000000000001 location view pair
+ 00000041 v000000000000001 v000000000000000 location view pair
+
+ 00000043 v000000000000002 v000000000000000 views at 0000003d for:
+ 0000000000000000 000000000000000a \(DW_OP_reg5 \(rdi\)\)
+ 00000056 v000000000000000 v000000000000001 views at 0000003f for:
+ 000000000000000a 000000000000000b \(DW_OP_GNU_entry_value: \(DW_OP_reg5 \(rdi\)\); DW_OP_stack_value\)
+ 0000006c v000000000000001 v000000000000000 views at 00000041 for:
+ 000000000000000b 0000000000000016 \(DW_OP_const1u: 123; DW_OP_stack_value\)
+ 00000081 <End of list>
+
+Contents of the .*ebug_loclists section:
+
+Table at Offset 0
+ Length: 0x34
+ DWARF version: 5
+ Address size: 8
+ Segment size: 0
+ Offset entries: 0
+
+ Offset Begin End Expression
+
+ 0000000c v000000000000002 v000000000000000 location view pair
+ 0000000e v000000000000001 v000000000000001 location view pair
+ 00000010 v000000000000001 v000000000000000 location view pair
+
+ 00000012 0000000000000000 \(base address\)
+ 0000001b v000000000000002 v000000000000000 views at 0000000c for:
+ 0000000000000000 000000000000000d \(DW_OP_addr: 0\)
+ 00000028 v000000000000001 v000000000000001 views at 0000000e for:
+ 000000000000000e 0000000000000018 \(DW_OP_const1u: 123; DW_OP_stack_value\)
+ 0000002f v000000000000001 v000000000000000 views at 00000010 for:
+ 0000000000000018 000000000000001f \(DW_OP_const2u: 456; DW_OP_stack_value\)
+ 00000037 <End of list>
+Table at Offset 0x38
+ Length: 0x12
+ DWARF version: 5
+ Address size: 8
+ Segment size: 0
+ Offset entries: 0
+
+ Offset Begin End Expression
+
+ 00000044 v000000000000001 v000000000000000 location view pair
+
+ 00000046 v000000000000001 v000000000000000 views at 00000044 for:
+ 000000000000002f 000000000000003d \(DW_OP_const1u: 123; DW_OP_stack_value\)
+ 0000004d <End of list>
+
+#pass
diff --git a/ld/testsuite/ld-x86-64/sframe-ibt-plt-1.d b/ld/testsuite/ld-x86-64/sframe-ibt-plt-1.d
index f868242..45bf99a 100644
--- a/ld/testsuite/ld-x86-64/sframe-ibt-plt-1.d
+++ b/ld/testsuite/ld-x86-64/sframe-ibt-plt-1.d
@@ -10,7 +10,8 @@ Contents of the SFrame section .sframe:
Header :
Version: SFRAME_VERSION_2
- Flags: SFRAME_F_FDE_SORTED
+ Flags: SFRAME_F_FDE_SORTED,
+ SFRAME_F_FDE_FUNC_START_PCREL
CFA fixed RA offset: \-8
#...
diff --git a/ld/testsuite/ld-x86-64/sframe-plt-1.d b/ld/testsuite/ld-x86-64/sframe-plt-1.d
index 2918ccb..d23540e 100644
--- a/ld/testsuite/ld-x86-64/sframe-plt-1.d
+++ b/ld/testsuite/ld-x86-64/sframe-plt-1.d
@@ -11,7 +11,8 @@ Contents of the SFrame section .sframe:
Header :
Version: SFRAME_VERSION_2
- Flags: SFRAME_F_FDE_SORTED
+ Flags: SFRAME_F_FDE_SORTED,
+ SFRAME_F_FDE_FUNC_START_PCREL
CFA fixed RA offset: \-8
#...
diff --git a/ld/testsuite/ld-x86-64/sframe-pltgot-1.d b/ld/testsuite/ld-x86-64/sframe-pltgot-1.d
index 6c47770..e2255b0 100644
--- a/ld/testsuite/ld-x86-64/sframe-pltgot-1.d
+++ b/ld/testsuite/ld-x86-64/sframe-pltgot-1.d
@@ -10,7 +10,8 @@ Contents of the SFrame section .sframe:
Header :
Version: SFRAME_VERSION_2
- Flags: SFRAME_F_FDE_SORTED
+ Flags: SFRAME_F_FDE_SORTED,
+ SFRAME_F_FDE_FUNC_START_PCREL
CFA fixed RA offset: \-8
#...
diff --git a/ld/testsuite/ld-x86-64/sframe-pltgot-2.d b/ld/testsuite/ld-x86-64/sframe-pltgot-2.d
index 141be29..52e712b 100644
--- a/ld/testsuite/ld-x86-64/sframe-pltgot-2.d
+++ b/ld/testsuite/ld-x86-64/sframe-pltgot-2.d
@@ -10,7 +10,8 @@ Contents of the SFrame section .sframe:
Header :
Version: SFRAME_VERSION_2
- Flags: SFRAME_F_FDE_SORTED
+ Flags: SFRAME_F_FDE_SORTED,
+ SFRAME_F_FDE_FUNC_START_PCREL
CFA fixed RA offset: \-8
#...
diff --git a/ld/testsuite/ld-x86-64/sframe-reloc-1.d b/ld/testsuite/ld-x86-64/sframe-reloc-1.d
new file mode 100644
index 0000000..19725e8
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/sframe-reloc-1.d
@@ -0,0 +1,35 @@
+#as: --gsframe
+#source: sframe-foo.s
+#source: sframe-bar.s
+#objdump: --sframe=.sframe
+#ld: -r --no-rosegment
+#name: SFrame simple link - relocatable
+
+.*: +file format .*
+
+Contents of the SFrame section .sframe:
+ Header :
+
+ Version: SFRAME_VERSION_2
+ Flags: SFRAME_F_FDE_SORTED,
+ SFRAME_F_FDE_FUNC_START_PCREL
+ CFA fixed RA offset: \-8
+ Num FDEs: 2
+ Num FREs: 8
+
+ Function Index :
+
+
+ func idx \[0\]: pc = 0x0, size = 53 bytes
+ STARTPC +CFA +FP +RA +
+ 0+0000 +sp\+8 +u +f +
+ 0+0001 +sp\+16 +c-16 +f +
+ 0+0004 +fp\+16 +c-16 +f +
+ 0+0034 +sp\+8 +c-16 +f +
+
+ func idx \[1\]: pc = 0x35, size = 37 bytes
+ STARTPC +CFA +FP +RA +
+ 0+0035 +sp\+8 +u +f +
+ 0+0036 +sp\+16 +c-16 +f +
+ 0+0039 +fp\+16 +c-16 +f +
+ 0+0059 +sp\+8 +c-16 +f +
diff --git a/ld/testsuite/ld-x86-64/sframe-reloc-2a.s b/ld/testsuite/ld-x86-64/sframe-reloc-2a.s
new file mode 100644
index 0000000..8cd8694
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/sframe-reloc-2a.s
@@ -0,0 +1,7 @@
+ .section sect, "axG", @progbits, sectgroup, comdat
+ .global _start
+_start:
+ .cfi_startproc
+ call foo
+ .cfi_endproc
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/sframe-reloc-2b.s b/ld/testsuite/ld-x86-64/sframe-reloc-2b.s
new file mode 100644
index 0000000..9484636
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/sframe-reloc-2b.s
@@ -0,0 +1,31 @@
+ .section sect, "axG", @progbits, sectgroup, comdat
+ .cfi_startproc
+# Test intention is that LSDA must be provided by the discarded FDE.
+# DW_EH_PE_udata8 = 4
+# DW_EH_PE_udata4 = 3
+ .ifdef ELF64
+ .cfi_lsda 4, lsda
+ .else
+ .cfi_lsda 3, lsda
+ .endif
+ .skip 16
+ .cfi_endproc
+
+ .text
+ .globl foo
+ .type foo, @function
+foo:
+ .cfi_startproc
+ pushq %rbp
+ .cfi_def_cfa_offset 16
+ .cfi_offset 6, -16
+ movq %rsp, %rbp
+ .cfi_def_cfa_register 6
+ popq %rbp
+ .cfi_def_cfa 7, 8
+ ret
+ .cfi_endproc
+
+ .section .gcc_except_table, "a", @progbits
+lsda:
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/sframe-simple-1.d b/ld/testsuite/ld-x86-64/sframe-simple-1.d
index 3effdbf..bb4142f 100644
--- a/ld/testsuite/ld-x86-64/sframe-simple-1.d
+++ b/ld/testsuite/ld-x86-64/sframe-simple-1.d
@@ -11,7 +11,8 @@ Contents of the SFrame section .sframe:
Header :
Version: SFRAME_VERSION_2
- Flags: SFRAME_F_FDE_SORTED
+ Flags: SFRAME_F_FDE_SORTED,
+ SFRAME_F_FDE_FUNC_START_PCREL
CFA fixed RA offset: \-8
#...
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index 52c4d5e..3d873a7 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -563,13 +563,36 @@ run_dump_test "pr32591-3"
run_dump_test "pr32591-3-x32"
run_dump_test "pr32591-4"
run_dump_test "pr32591-4-x32"
+run_dump_test "pr32809"
if { ![skip_sframe_tests] } {
run_dump_test "sframe-simple-1"
+ run_dump_test "sframe-reloc-1"
run_dump_test "sframe-plt-1"
run_dump_test "sframe-ibt-plt-1"
run_dump_test "sframe-pltgot-1"
run_dump_test "sframe-pltgot-2"
+
+ run_ld_link_tests [list \
+ [list \
+ "Build sframe-reloc-2.o" \
+ "-m elf_x86_64 -r" \
+ "" \
+ "--64 --gsframe" \
+ {sframe-reloc-2a.s sframe-reloc-2b.s} \
+ "" \
+ "sframe-reloc-2.o" \
+ ] \
+ [list \
+ "Build sframe-reloc-2" \
+ "-m elf_x86_64 tmpdir/sframe-reloc-2.o" \
+ "" \
+ "--64 --gsframe" \
+ {dummy.s} \
+ "" \
+ "sframe-reloc-2" \
+ ] \
+ ]
}
if ![istarget "x86_64-*-linux*"] {
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index 9615271..22d2f98 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -860,14 +860,15 @@ proc run_ld_link_exec_tests { ldtests args } {
}
# List contains test-items with 3 items followed by 2 lists, one item and
-# one optional item:
+# 2 optional items:
# 0:name
-# 1:ld or ar options
+# 1:leading ld or ar options
# 2:compile options
# 3:filenames of source files
# 4:action and options.
# 5:name of output file
# 6:language (optional)
+# 7:trailing ld options (optional), placed after object files
#
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
@@ -899,6 +900,7 @@ proc run_cc_link_tests { ldtests } {
set actions [lindex $testitem 4]
set binfile tmpdir/[lindex $testitem 5]
set lang [lindex $testitem 6]
+ set trailing_ldflags [lindex $testitem 7]
set objfiles {}
set is_unresolved 0
set failed 0
@@ -927,6 +929,7 @@ proc run_cc_link_tests { ldtests } {
#verbose -log "actions is $actions"
#verbose -log "binfile is $binfile"
#verbose -log "lang is $lang"
+ #verbose -log "trailing_ldflags is $trailing_ldflags"
foreach actionlist $actions {
set action [lindex $actionlist 0]
@@ -1006,7 +1009,7 @@ proc run_cc_link_tests { ldtests } {
untested $testname
continue
}
- ld_link $cc_cmd $binfile "-L$srcdir/$subdir $ldflags $objfiles"
+ ld_link $cc_cmd $binfile "-L$srcdir/$subdir $ldflags $objfiles $trailing_ldflags"
set ld_output "$exec_output"
if { $check_ld(source) == "regexp" } then {
@@ -1665,36 +1668,6 @@ proc skip_ctf_tests { } {
return 1
}
-# Check if the assembler supports SFrame.
-
-proc check_as_sframe { } {
- global check_as_sframe_result
- global as
- if [info exists check_as_sframe_result] {
- return $check_as_sframe_result
- }
-
- # SFrame generation needs CFI support
- if { ![check_as_cfi] } {
- set check_as_sframe_result 0;
- return 0
- }
-
- set as_file "tmpdir/check_as_sframe.s"
- set as_fh [open $as_file w 0666]
- puts $as_fh "# Generated file. DO NOT EDIT"
- puts $as_fh "\t.cfi_sections \".sframe\""
- puts $as_fh "\t.cfi_startproc"
- puts $as_fh "\t.cfi_endproc"
- close $as_fh
- remote_download host $as_file
- verbose -log "Checking SFrame:"
- set success [ld_assemble $as $as_file "/dev/null"]
- #remote_file host delete $as_file
- set check_as_sframe_result $success
- return $success
-}
-
proc skip_sframe_tests { } {
# FIXME TODO
# global enable_libsframe
@@ -1703,7 +1676,7 @@ proc skip_sframe_tests { } {
# return 1
# }
- if [check_as_sframe] {
+ if [gas_sframe_check] {
return 0
}