aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog1019
-rw-r--r--ld/Makefile.am1
-rw-r--r--ld/NEWS10
-rw-r--r--ld/config.in6
-rwxr-xr-xld/configure51
-rw-r--r--ld/configure.ac38
-rw-r--r--ld/configure.tgt6
-rw-r--r--ld/emulparams/arcelf.sh1
-rw-r--r--ld/emulparams/arcv2elf.sh3
-rw-r--r--ld/emulparams/arcv2elfx.sh3
-rw-r--r--ld/emultempl/avrelf.em24
-rw-r--r--ld/emultempl/elf32.em77
-rw-r--r--ld/emultempl/m68hc1xelf.em38
-rw-r--r--ld/emultempl/mipself.em15
-rw-r--r--ld/emultempl/msp430.em653
-rw-r--r--ld/emultempl/ppc64elf.em2
-rw-r--r--ld/emultempl/xtensaelf.em2
-rw-r--r--ld/ld.h3
-rw-r--r--ld/ld.texinfo61
-rw-r--r--ld/ldgram.y99
-rw-r--r--ld/ldlang.c177
-rw-r--r--ld/ldlang.h14
-rw-r--r--ld/ldmain.c27
-rw-r--r--ld/lexsup.c4
-rw-r--r--ld/po/bg.po1529
-rw-r--r--ld/po/da.po329
-rw-r--r--ld/po/de.po2214
-rw-r--r--ld/po/es.po1
-rw-r--r--ld/po/fi.po1154
-rw-r--r--ld/po/fr.po1
-rw-r--r--ld/po/id.po1154
-rw-r--r--ld/po/it.po1
-rw-r--r--ld/po/ja.po1
-rw-r--r--ld/po/pt_BR.po2950
-rw-r--r--ld/po/ru.po2197
-rw-r--r--ld/po/tr.po1
-rw-r--r--ld/po/uk.po1620
-rw-r--r--ld/po/vi.po383
-rw-r--r--ld/po/zh_CN.po1
-rw-r--r--ld/po/zh_TW.po1
-rw-r--r--ld/scripttempl/avr.sc4
-rw-r--r--ld/scripttempl/elfarc.sc6
-rw-r--r--ld/scripttempl/elfarcv2.sc5
-rw-r--r--ld/scripttempl/pe.sc22
-rw-r--r--ld/scripttempl/pep.sc30
-rw-r--r--ld/testsuite/config/default.exp11
-rw-r--r--ld/testsuite/ld-aarch64/dt_textrel.d3
-rw-r--r--ld/testsuite/ld-aarch64/erratum843419.d2
-rw-r--r--ld/testsuite/ld-aarch64/gc-plt-relocs.d2
-rw-r--r--ld/testsuite/ld-aarch64/ifunc-1-local.d2
-rw-r--r--ld/testsuite/ld-aarch64/ifunc-1.d2
-rw-r--r--ld/testsuite/ld-aarch64/ifunc-2-local.d2
-rw-r--r--ld/testsuite/ld-aarch64/ifunc-2.d2
-rw-r--r--ld/testsuite/ld-aarch64/ifunc-21.d2
-rw-r--r--ld/testsuite/ld-aarch64/ifunc-3a.d2
-rw-r--r--ld/testsuite/ld-aarch64/relasz.d2
-rw-r--r--ld/testsuite/ld-aarch64/tls-small-ld.d2
-rw-r--r--ld/testsuite/ld-aarch64/tls-tiny-ld.d2
-rw-r--r--ld/testsuite/ld-alpha/alpha.exp7
-rw-r--r--ld/testsuite/ld-arc/arc.exp5
-rw-r--r--ld/testsuite/ld-arc/jli-overflow.d4
-rw-r--r--ld/testsuite/ld-arc/jli-overflow.err3
-rw-r--r--ld/testsuite/ld-arc/jli-overflow.s1050
-rw-r--r--ld/testsuite/ld-arc/jli-script.ld20
-rw-r--r--ld/testsuite/ld-arc/jli-simple.dd26
-rw-r--r--ld/testsuite/ld-arc/jli-simple.rd10
-rw-r--r--ld/testsuite/ld-arc/jli-simple.s24
-rw-r--r--ld/testsuite/ld-arc/nps-1b.err2
-rw-r--r--ld/testsuite/ld-arc/tls_gd-01.d4
-rw-r--r--ld/testsuite/ld-arc/tls_ie-01.d4
-rw-r--r--ld/testsuite/ld-arm/arm-elf.exp142
-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/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/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-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-4.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/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-gc-71.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-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-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-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-legdx-16.d2
-rw-r--r--ld/testsuite/ld-cris/tls-legdx-17.d2
-rw-r--r--ld/testsuite/ld-cris/tls-local-54.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-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/weakhiddso.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/audit.exp3
-rw-r--r--ld/testsuite/ld-elf/binutils.exp26
-rw-r--r--ld/testsuite/ld-elf/comm-data2.ld1
-rw-r--r--ld/testsuite/ld-elf/eh3.d12
-rw-r--r--ld/testsuite/ld-elf/eh4.d4
-rw-r--r--ld/testsuite/ld-elf/elf.exp2
-rw-r--r--ld/testsuite/ld-elf/globalaudit.rd3
-rw-r--r--ld/testsuite/ld-elf/linkinfo1a.d2
-rw-r--r--ld/testsuite/ld-elf/linkinfo1b.d2
-rw-r--r--ld/testsuite/ld-elf/note-3.l2
-rw-r--r--ld/testsuite/ld-elf/note-3.t1
-rw-r--r--ld/testsuite/ld-elf/orphan-11.d9
-rw-r--r--ld/testsuite/ld-elf/orphan-11.ld16
-rw-r--r--ld/testsuite/ld-elf/orphan-11.s11
-rw-r--r--ld/testsuite/ld-elf/orphan-12.d9
-rw-r--r--ld/testsuite/ld-elf/orphan-12.s8
-rw-r--r--ld/testsuite/ld-elf/pr19617a.d2
-rw-r--r--ld/testsuite/ld-elf/pr20828-v.ld1
-rw-r--r--ld/testsuite/ld-elf/pr20828.ld1
-rw-r--r--ld/testsuite/ld-elf/pr21233.ld1
-rw-r--r--ld/testsuite/ld-elf/pr21384.ld1
-rw-r--r--ld/testsuite/ld-elf/pr21562a.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562b.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562c.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562d.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562e.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562f.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562g.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562h.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562i.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562j.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562k.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562l.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562m.d2
-rw-r--r--ld/testsuite/ld-elf/pr21562n.d2
-rw-r--r--ld/testsuite/ld-elf/pr21884.d11
-rw-r--r--ld/testsuite/ld-elf/pr21884.t7
-rw-r--r--ld/testsuite/ld-elf/pr21884a.s5
-rw-r--r--ld/testsuite/ld-elf/pr21884b.s5
-rw-r--r--ld/testsuite/ld-elf/pr21903.s11
-rw-r--r--ld/testsuite/ld-elf/pr21903a.d8
-rw-r--r--ld/testsuite/ld-elf/pr21903b.d8
-rw-r--r--ld/testsuite/ld-elf/pr21903c.d3
-rw-r--r--ld/testsuite/ld-elf/pr21903d.d4
-rw-r--r--ld/testsuite/ld-elf/pr21903e.d3
-rw-r--r--ld/testsuite/ld-elf/pr21904.d6
-rw-r--r--ld/testsuite/ld-elf/pr21904.s5
-rw-r--r--ld/testsuite/ld-elf/pr21964-1a.c12
-rw-r--r--ld/testsuite/ld-elf/pr21964-1b.c12
-rw-r--r--ld/testsuite/ld-elf/pr21964-1c.c29
-rw-r--r--ld/testsuite/ld-elf/pr21964-2a.c12
-rw-r--r--ld/testsuite/ld-elf/pr21964-2b.c12
-rw-r--r--ld/testsuite/ld-elf/pr21964-2c.c32
-rw-r--r--ld/testsuite/ld-elf/pr22150.vd2
-rw-r--r--ld/testsuite/ld-elf/pr22150.ver6
-rw-r--r--ld/testsuite/ld-elf/pr22150a.s6
-rw-r--r--ld/testsuite/ld-elf/pr22150b.s13
-rw-r--r--ld/testsuite/ld-elf/provide-hidden-1.ld1
-rw-r--r--ld/testsuite/ld-elf/provide-hidden-2.ld1
-rw-r--r--ld/testsuite/ld-elf/provide-hidden-s.ld1
-rw-r--r--ld/testsuite/ld-elf/readelf.exp2
-rw-r--r--ld/testsuite/ld-elf/shared.exp41
-rw-r--r--ld/testsuite/ld-elf/sizeofa.d2
-rw-r--r--ld/testsuite/ld-elf/sizeofb.d4
-rw-r--r--ld/testsuite/ld-elf/stab.d6
-rw-r--r--ld/testsuite/ld-elf/startofa.d4
-rw-r--r--ld/testsuite/ld-elf/startofb.d4
-rw-r--r--ld/testsuite/ld-elfcomm/elfcomm.exp2
-rw-r--r--ld/testsuite/ld-elfvsb/elfvsb.exp2
-rw-r--r--ld/testsuite/ld-elfvsb/hidden2.d2
-rw-r--r--ld/testsuite/ld-frv/fdpic-pie-1.d2
-rw-r--r--ld/testsuite/ld-frv/fdpic-pie-2.d2
-rw-r--r--ld/testsuite/ld-frv/fdpic-pie-6.d2
-rw-r--r--ld/testsuite/ld-frv/fdpic-pie-7.d2
-rw-r--r--ld/testsuite/ld-frv/fdpic-pie-8.d2
-rw-r--r--ld/testsuite/ld-frv/fdpic-shared-2.d2
-rw-r--r--ld/testsuite/ld-frv/fdpic-shared-5.d2
-rw-r--r--ld/testsuite/ld-frv/fdpic-shared-6.d2
-rw-r--r--ld/testsuite/ld-frv/fdpic-shared-8.d2
-rw-r--r--ld/testsuite/ld-frv/fdpic-shared-local-2.d2
-rw-r--r--ld/testsuite/ld-frv/fdpic-shared-local-8.d2
-rw-r--r--ld/testsuite/ld-frv/tls-dynamic-2.d2
-rw-r--r--ld/testsuite/ld-gc/pr19161.d2
-rw-r--r--ld/testsuite/ld-gc/pr20022.d2
-rw-r--r--ld/testsuite/ld-gc/start.d2
-rw-r--r--ld/testsuite/ld-i386/i386.exp161
-rw-r--r--ld/testsuite/ld-i386/ibt-plt-1.d4
-rw-r--r--ld/testsuite/ld-i386/ibt-plt-2a.d4
-rw-r--r--ld/testsuite/ld-i386/ibt-plt-2b.d49
-rw-r--r--ld/testsuite/ld-i386/ibt-plt-2c.d4
-rw-r--r--ld/testsuite/ld-i386/ibt-plt-2d.d49
-rw-r--r--ld/testsuite/ld-i386/ibt-plt-3a.d4
-rw-r--r--ld/testsuite/ld-i386/ibt-plt-3b.d48
-rw-r--r--ld/testsuite/ld-i386/ibt-plt-3c.d4
-rw-r--r--ld/testsuite/ld-i386/ibt-plt-3d.d49
-rw-r--r--ld/testsuite/ld-i386/pie1-nacl.d18
-rw-r--r--ld/testsuite/ld-i386/pie1.d17
-rw-r--r--ld/testsuite/ld-i386/pie1.s5
-rw-r--r--ld/testsuite/ld-i386/plt-pic2.dd16
-rw-r--r--ld/testsuite/ld-i386/pr19636-1d.d6
-rw-r--r--ld/testsuite/ld-i386/pr19636-2b.d2
-rw-r--r--ld/testsuite/ld-i386/pr19636-2c.d10
-rw-r--r--ld/testsuite/ld-i386/pr20830.d2
-rw-r--r--ld/testsuite/ld-i386/pr21884-nacl.d10
-rw-r--r--ld/testsuite/ld-i386/pr21884-nacl.t11
-rw-r--r--ld/testsuite/ld-i386/pr21884.d10
-rw-r--r--ld/testsuite/ld-i386/pr21884.t11
-rw-r--r--ld/testsuite/ld-i386/pr21997-1a.S35
-rw-r--r--ld/testsuite/ld-i386/pr21997-1b.c16
-rw-r--r--ld/testsuite/ld-i386/pr21997-1c.S51
-rw-r--r--ld/testsuite/ld-i386/pr22001-1a.c13
-rw-r--r--ld/testsuite/ld-i386/pr22001-1b.c14
-rw-r--r--ld/testsuite/ld-i386/pr22001-1c.S51
-rw-r--r--ld/testsuite/ld-i386/pr22115-1.s7
-rw-r--r--ld/testsuite/ld-i386/pr22115-1a.d13
-rw-r--r--ld/testsuite/ld-i386/pr22115-1b.d6
-rw-r--r--ld/testsuite/ld-i386/pr22115-1c.d13
-rw-r--r--ld/testsuite/ld-i386/pr22115-1d.d6
-rw-r--r--ld/testsuite/ld-i386/pr22135.d12
-rw-r--r--ld/testsuite/ld-i386/pr22135.s11
-rw-r--r--ld/testsuite/ld-i386/protected7.d13
-rw-r--r--ld/testsuite/ld-i386/protected7.s31
-rw-r--r--ld/testsuite/ld-ia64/ia64.exp5
-rw-r--r--ld/testsuite/ld-ia64/merge1.d2
-rw-r--r--ld/testsuite/ld-ia64/merge2.d2
-rw-r--r--ld/testsuite/ld-ia64/merge3.d2
-rw-r--r--ld/testsuite/ld-ia64/merge4.d2
-rw-r--r--ld/testsuite/ld-ia64/merge5.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-1-local-x86.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-1-x86.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-2-i386-now.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-2-x86-64.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-3a-x86.d2
-rw-r--r--ld/testsuite/ld-ifunc/pr17154-i386-now.d2
-rw-r--r--ld/testsuite/ld-ifunc/pr17154-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/pr17154-x86-64-now.d2
-rw-r--r--ld/testsuite/ld-ifunc/pr17154-x86-64.d2
-rw-r--r--ld/testsuite/ld-m68k/got-1.d2
-rw-r--r--ld/testsuite/ld-m68k/got-multigot-12-13-14-34-35-ok.d2
-rw-r--r--ld/testsuite/ld-m68k/got-multigot-14-ok.d2
-rw-r--r--ld/testsuite/ld-m68k/got-multigot-15-er.d2
-rw-r--r--ld/testsuite/ld-m68k/got-negative-12-13-14-34-ok.d2
-rw-r--r--ld/testsuite/ld-m68k/got-negative-12-13-14-35-er.d2
-rw-r--r--ld/testsuite/ld-m68k/got-negative-14-ok.d2
-rw-r--r--ld/testsuite/ld-m68k/got-negative-15-er.d2
-rw-r--r--ld/testsuite/ld-m68k/got-single-12-ok.d2
-rw-r--r--ld/testsuite/ld-m68k/got-single-13-er.d2
-rw-r--r--ld/testsuite/ld-m68k/got-xgot-12-13-14-15-34-35-ok.d2
-rw-r--r--ld/testsuite/ld-m68k/got-xgot-15-ok.d2
-rw-r--r--ld/testsuite/ld-m68k/m68k.exp7
-rw-r--r--ld/testsuite/ld-m68k/tls-gd-1.d2
-rw-r--r--ld/testsuite/ld-m68k/tls-gd-2.d2
-rw-r--r--ld/testsuite/ld-m68k/tls-gd-ie-1.d2
-rw-r--r--ld/testsuite/ld-m68k/tls-ie-1.d2
-rw-r--r--ld/testsuite/ld-m68k/tls-ld-1.d2
-rw-r--r--ld/testsuite/ld-m68k/tls-ld-2.d2
-rw-r--r--ld/testsuite/ld-metag/metag.exp8
-rw-r--r--ld/testsuite/ld-mips-elf/bal-jalx-addend-micromips-n32.d6
-rw-r--r--ld/testsuite/ld-mips-elf/bal-jalx-addend-micromips-n64.d6
-rw-r--r--ld/testsuite/ld-mips-elf/bal-jalx-addend-micromips.d22
-rw-r--r--ld/testsuite/ld-mips-elf/bal-jalx-local-micromips-n32.d6
-rw-r--r--ld/testsuite/ld-mips-elf/bal-jalx-local-micromips-n64.d6
-rw-r--r--ld/testsuite/ld-mips-elf/bal-jalx-local-micromips.d20
-rw-r--r--ld/testsuite/ld-mips-elf/bal-jalx-pic-ignore-micromips-n32.d6
-rw-r--r--ld/testsuite/ld-mips-elf/bal-jalx-pic-ignore-micromips-n64.d6
-rw-r--r--ld/testsuite/ld-mips-elf/bal-jalx-pic-ignore-micromips.d22
-rw-r--r--ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n32.d6
-rw-r--r--ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n64.d6
-rw-r--r--ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips.d6
-rw-r--r--ld/testsuite/ld-mips-elf/binary.d8
-rw-r--r--ld/testsuite/ld-mips-elf/binary.ld5
-rw-r--r--ld/testsuite/ld-mips-elf/binary.s2
-rw-r--r--ld/testsuite/ld-mips-elf/mips-elf.exp24
-rw-r--r--ld/testsuite/ld-mmix/pr20125.d21
-rw-r--r--ld/testsuite/ld-mmix/pr20125.s2
-rw-r--r--ld/testsuite/ld-msp430-elf/main-bss-lower.d3
-rw-r--r--ld/testsuite/ld-msp430-elf/main-bss-upper.d3
-rw-r--r--ld/testsuite/ld-msp430-elf/main-const-lower.d3
-rw-r--r--ld/testsuite/ld-msp430-elf/main-const-upper.d3
-rw-r--r--ld/testsuite/ld-msp430-elf/main-text-lower.d3
-rw-r--r--ld/testsuite/ld-msp430-elf/main-text-upper.d6
-rw-r--r--ld/testsuite/ld-msp430-elf/main-var-lower.d3
-rw-r--r--ld/testsuite/ld-msp430-elf/main-var-upper.d3
-rw-r--r--ld/testsuite/ld-msp430-elf/main-with-data-bss-unique-sec.s78
-rw-r--r--ld/testsuite/ld-msp430-elf/main-with-data-bss.s74
-rw-r--r--ld/testsuite/ld-msp430-elf/main-with-text-rodata-unique-sec.s59
-rw-r--r--ld/testsuite/ld-msp430-elf/main-with-text-rodata.s59
-rw-r--r--ld/testsuite/ld-msp430-elf/msp430-elf.exp141
-rw-r--r--ld/testsuite/ld-msp430-elf/msp430-no-lower.ld54
-rw-r--r--ld/testsuite/ld-msp430-elf/msp430-tiny-ram.ld49
-rw-r--r--ld/testsuite/ld-msp430-elf/msp430-tiny-rom.ld48
-rw-r--r--ld/testsuite/ld-msp430-elf/msp430.ld78
-rw-r--r--ld/testsuite/ld-powerpc/ambiguousv1.d4
-rw-r--r--ld/testsuite/ld-powerpc/ambiguousv1b.d9
-rw-r--r--ld/testsuite/ld-powerpc/ambiguousv2.d4
-rw-r--r--ld/testsuite/ld-powerpc/ambiguousv2b.d9
-rw-r--r--ld/testsuite/ld-powerpc/elfv2so.d30
-rw-r--r--ld/testsuite/ld-powerpc/powerpc.exp95
-rw-r--r--ld/testsuite/ld-powerpc/ppc476-shared.d4
-rw-r--r--ld/testsuite/ld-powerpc/ppc476-shared.lnk2
-rw-r--r--ld/testsuite/ld-powerpc/ppc476-shared2.d12
-rw-r--r--ld/testsuite/ld-powerpc/relbrlt.d2
-rw-r--r--ld/testsuite/ld-powerpc/tls.d40
-rw-r--r--ld/testsuite/ld-powerpc/tls.s31
-rw-r--r--ld/testsuite/ld-powerpc/tls32.s34
-rw-r--r--ld/testsuite/ld-powerpc/tlsexe.d34
-rw-r--r--ld/testsuite/ld-powerpc/tlsexetoc.d16
-rw-r--r--ld/testsuite/ld-powerpc/tlsld.d16
-rw-r--r--ld/testsuite/ld-powerpc/tlsmark.d16
-rw-r--r--ld/testsuite/ld-powerpc/tlsopt1_32.d2
-rw-r--r--ld/testsuite/ld-powerpc/tlsopt1_32.s2
-rw-r--r--ld/testsuite/ld-powerpc/tlsopt2_32.d4
-rw-r--r--ld/testsuite/ld-powerpc/tlsopt2_32.s4
-rw-r--r--ld/testsuite/ld-powerpc/tlsopt3_32.d4
-rw-r--r--ld/testsuite/ld-powerpc/tlsopt3_32.s4
-rw-r--r--ld/testsuite/ld-powerpc/tlsopt4.d20
-rw-r--r--ld/testsuite/ld-powerpc/tlsopt4_32.s10
-rw-r--r--ld/testsuite/ld-powerpc/tlsopt5.d14
-rw-r--r--ld/testsuite/ld-powerpc/tlsopt5.s2
-rw-r--r--ld/testsuite/ld-powerpc/tlsopt5.wf28
-rw-r--r--ld/testsuite/ld-powerpc/tlsopt5_32.d53
-rw-r--r--ld/testsuite/ld-powerpc/tlsopt5_32.s18
-rw-r--r--ld/testsuite/ld-powerpc/tlstoc.d24
-rw-r--r--ld/testsuite/ld-s390/s390.exp15
-rw-r--r--ld/testsuite/ld-scripts/align.exp5
-rw-r--r--ld/testsuite/ld-scripts/align3.d3
-rw-r--r--ld/testsuite/ld-scripts/align3.t10
-rw-r--r--ld/testsuite/ld-scripts/align4.d3
-rw-r--r--ld/testsuite/ld-scripts/align4.t10
-rw-r--r--ld/testsuite/ld-scripts/align5.d7
-rw-r--r--ld/testsuite/ld-scripts/align5.t12
-rw-r--r--ld/testsuite/ld-scripts/assign-loc.d2
-rw-r--r--ld/testsuite/ld-scripts/cross1.t1
-rw-r--r--ld/testsuite/ld-scripts/data.exp1
-rw-r--r--ld/testsuite/ld-scripts/defined2.d1
-rw-r--r--ld/testsuite/ld-scripts/defined3.d2
-rw-r--r--ld/testsuite/ld-scripts/defined4.d2
-rw-r--r--ld/testsuite/ld-scripts/defined5.d2
-rw-r--r--ld/testsuite/ld-scripts/exclude-file-5.d5
-rw-r--r--ld/testsuite/ld-scripts/exclude-file-5.map8
-rw-r--r--ld/testsuite/ld-scripts/exclude-file-5.t11
-rw-r--r--ld/testsuite/ld-scripts/exclude-file-6.d5
-rw-r--r--ld/testsuite/ld-scripts/exclude-file-6.map8
-rw-r--r--ld/testsuite/ld-scripts/exclude-file-6.t11
-rw-r--r--ld/testsuite/ld-scripts/exclude-file-7.d5
-rw-r--r--ld/testsuite/ld-scripts/exclude-file-7.map8
-rw-r--r--ld/testsuite/ld-scripts/exclude-file-7.t11
-rw-r--r--ld/testsuite/ld-scripts/expr2.d2
-rw-r--r--ld/testsuite/ld-scripts/fill.d33
-rw-r--r--ld/testsuite/ld-scripts/fill16.d43
-rw-r--r--ld/testsuite/ld-scripts/fill16_0.s6
-rw-r--r--ld/testsuite/ld-scripts/fill16_1.s6
-rw-r--r--ld/testsuite/ld-scripts/fill16_2.s6
-rw-r--r--ld/testsuite/ld-scripts/provide.exp2
-rw-r--r--ld/testsuite/ld-scripts/sane1.d2
-rw-r--r--ld/testsuite/ld-scripts/size.exp2
-rw-r--r--ld/testsuite/ld-selective/selective.exp3
-rw-r--r--ld/testsuite/ld-sh/sh-vxworks.exp14
-rw-r--r--ld/testsuite/ld-sh/shared-2.d2
-rw-r--r--ld/testsuite/ld-sh/tlsbin-2.d2
-rw-r--r--ld/testsuite/ld-sh/tlspic-2.d2
-rw-r--r--ld/testsuite/ld-shared/shared.exp2
-rw-r--r--ld/testsuite/ld-sparc/sparc.exp31
-rw-r--r--ld/testsuite/ld-tic6x/tic6x.exp26
-rw-r--r--ld/testsuite/ld-undefined/fundef.s31
-rw-r--r--ld/testsuite/ld-undefined/undefined.exp256
-rw-r--r--ld/testsuite/ld-unique/pr21529.d5
-rw-r--r--ld/testsuite/ld-unique/pr21529.ld5
-rw-r--r--ld/testsuite/ld-vax-elf/vax-elf.exp8
-rw-r--r--ld/testsuite/ld-x86-64/bnd-branch-1-now.d2
-rw-r--r--ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d2
-rw-r--r--ld/testsuite/ld-x86-64/bnd-ifunc-1.d2
-rw-r--r--ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d2
-rw-r--r--ld/testsuite/ld-x86-64/bnd-ifunc-2.d2
-rw-r--r--ld/testsuite/ld-x86-64/bnd-plt-1-now.d2
-rw-r--r--ld/testsuite/ld-x86-64/bnd-plt-1.d2
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-1-x32.d10
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-1.d2
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d10
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-2a.d2
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-2b-x32.d39
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-2b.d43
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d10
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-2c.d2
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-2d-x32.d39
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-2d.d43
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d10
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-3a.d2
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-3b-x32.d38
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-3b.d42
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d10
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-3c.d2
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-3d-x32.d39
-rw-r--r--ld/testsuite/ld-x86-64/ibt-plt-3d.d43
-rw-r--r--ld/testsuite/ld-x86-64/ilp32-11.d2
-rw-r--r--ld/testsuite/ld-x86-64/ilp32-4-nacl.d2
-rw-r--r--ld/testsuite/ld-x86-64/ilp32-4.d2
-rw-r--r--ld/testsuite/ld-x86-64/load1c-nacl.d2
-rw-r--r--ld/testsuite/ld-x86-64/load1c.d2
-rw-r--r--ld/testsuite/ld-x86-64/load1d-nacl.d2
-rw-r--r--ld/testsuite/ld-x86-64/load1d.d2
-rw-r--r--ld/testsuite/ld-x86-64/mpx.exp24
-rw-r--r--ld/testsuite/ld-x86-64/pie2.d2
-rw-r--r--ld/testsuite/ld-x86-64/pie3-nacl.d14
-rw-r--r--ld/testsuite/ld-x86-64/pie3.d13
-rw-r--r--ld/testsuite/ld-x86-64/pie3.s5
-rw-r--r--ld/testsuite/ld-x86-64/plt-main-bnd.dd2
-rw-r--r--ld/testsuite/ld-x86-64/pr14207.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr17618.d1
-rw-r--r--ld/testsuite/ld-x86-64/pr19162.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-2a.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-2b.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-4a.d3
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-4c.d3
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-4e.d4
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-5d.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-6a.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-7a.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-7c.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr19636-2d-nacl.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr19636-2d.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr19719.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr19807-2a.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr19969.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr20253-1d.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr20253-1f.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr20253-1j.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr20253-1l.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr20830a-now.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr20830a.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr20830b-now.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr20830b.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr21038a-now.d8
-rw-r--r--ld/testsuite/ld-x86-64/pr21038a.d8
-rw-r--r--ld/testsuite/ld-x86-64/pr21038b-now.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr21038b.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr21038c-now.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr21038c.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr21884-nacl.d10
-rw-r--r--ld/testsuite/ld-x86-64/pr21884-nacl.t11
-rw-r--r--ld/testsuite/ld-x86-64/pr21884.d10
-rw-r--r--ld/testsuite/ld-x86-64/pr21884.t11
-rw-r--r--ld/testsuite/ld-x86-64/pr21997-1a.S24
-rw-r--r--ld/testsuite/ld-x86-64/pr21997-1a.err2
-rw-r--r--ld/testsuite/ld-x86-64/pr21997-1b.c13
-rw-r--r--ld/testsuite/ld-x86-64/pr21997-1b.err2
-rw-r--r--ld/testsuite/ld-x86-64/pr21997-1c.c13
-rw-r--r--ld/testsuite/ld-x86-64/pr22001-1a.c13
-rw-r--r--ld/testsuite/ld-x86-64/pr22001-1a.err2
-rw-r--r--ld/testsuite/ld-x86-64/pr22001-1b.c13
-rw-r--r--ld/testsuite/ld-x86-64/pr22001-1b.err2
-rw-r--r--ld/testsuite/ld-x86-64/pr22001-1c.c12
-rw-r--r--ld/testsuite/ld-x86-64/pr22048.d25
-rw-r--r--ld/testsuite/ld-x86-64/pr22048a.s4
-rw-r--r--ld/testsuite/ld-x86-64/pr22048b.s8
-rw-r--r--ld/testsuite/ld-x86-64/pr22064a.S33
-rw-r--r--ld/testsuite/ld-x86-64/pr22064b.c14
-rw-r--r--ld/testsuite/ld-x86-64/pr22071.d8
-rw-r--r--ld/testsuite/ld-x86-64/pr22071.s78
-rw-r--r--ld/testsuite/ld-x86-64/pr22115-1.s7
-rw-r--r--ld/testsuite/ld-x86-64/pr22115-1a-x32.d13
-rw-r--r--ld/testsuite/ld-x86-64/pr22115-1a.d13
-rw-r--r--ld/testsuite/ld-x86-64/pr22115-1b-x32.d6
-rw-r--r--ld/testsuite/ld-x86-64/pr22115-1b.d6
-rw-r--r--ld/testsuite/ld-x86-64/pr22115-1c-x32.d13
-rw-r--r--ld/testsuite/ld-x86-64/pr22115-1c.d13
-rw-r--r--ld/testsuite/ld-x86-64/pr22115-1d-x32.d6
-rw-r--r--ld/testsuite/ld-x86-64/pr22115-1d.d6
-rw-r--r--ld/testsuite/ld-x86-64/pr22135.d12
-rw-r--r--ld/testsuite/ld-x86-64/pr22135.s11
-rw-r--r--ld/testsuite/ld-x86-64/protected8.d13
-rw-r--r--ld/testsuite/ld-x86-64/protected8.s31
-rw-r--r--ld/testsuite/ld-x86-64/tls.exp41
-rw-r--r--ld/testsuite/ld-x86-64/x86-64.exp211
-rw-r--r--ld/testsuite/ld-xtensa/xtensa.exp6
-rw-r--r--ld/testsuite/lib/ld-lib.exp2
524 files changed, 18313 insertions, 3745 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 166d80f..b15d726 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,1022 @@
+2017-09-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/22150
+ * testsuite/ld-elf/pr22150.vd: New file.
+ * testsuite/ld-elf/pr22150.ver: Likewise.
+ * testsuite/ld-elf/pr22150a.s: Likewise.
+ * testsuite/ld-elf/pr22150b.s: Likewise.
+ * testsuite/ld-elf/shared.exp: Run PR ld/22150 tests.
+
+2017-09-21 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-powerpc/tlsopt5.wf: Update for reduced alignment.
+
+2017-09-19 Maciej W. Rozycki <macro@imgtec.com>
+
+ * configure.tgt <mips64el-*-openbsd*, mips64-*-openbsd*>: New
+ targets.
+
+2017-09-15 Alan Modra <amodra@gmail.com>
+
+ PR 22118
+ * testsuite/ld-aarch64/erratum843419.d: Correct regexp.
+
+2017-09-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/22139
+ * testsuite/ld-elf/globalaudit.rd: Allow additional bits in
+ DT_FLAGS_1.
+
+2017-09-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/22135
+ * testsuite/ld-i386/i386.exp: Run pr22135.
+ * testsuite/ld-x86-64/x86-64.exp: Likewise.
+ * testsuite/ld-i386/pr22135.d: New file.
+ * testsuite/ld-i386/pr22135.s: Likewise.
+ * testsuite/ld-x86-64/pr22135.d: Likewise.
+ * testsuite/ld-x86-64/pr22135.s: Likewise.
+
+2017-09-09 Alan Modra <amodra@gmail.com>
+
+ * ld.texinfo (--plt-align): Describe new behaviour of option.
+ * emultempl/ppc64elf.em (params): Default plt_stub_align to 5.
+ * testsuite/ld-powerpc/powerpc.exp: Pass --no-plt-align for
+ selected tests.
+ * testsuite/ld-powerpc/relbrlt.d: Pass --no-plt-align.
+ * testsuite/ld-powerpc/elfv2so.d: Adjust expected output.
+
+2017-09-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/22115
+ * ld-i386/i386.exp: Run PR ld/22115 tests,
+ * ld/testsuite/ld-x86-64/x86-64.exp: Likewise.
+ * testsuite/ld-i386/pr22115-1.s: New file.
+ * testsuite/ld-i386/pr22115-1a.d: Likewise.
+ * testsuite/ld-i386/pr22115-1b.d: Likewise.
+ * testsuite/ld-i386/pr22115-1c.d: Likewise.
+ * testsuite/ld-i386/pr22115-1d.d: Likewise.
+ * testsuite/ld-x86-64/pr22115-1.s: Likewise.
+ * testsuite/ld-x86-64/pr22115-1a-x32.d: Likewise.
+ * testsuite/ld-x86-64/pr22115-1a.d: Likewise.
+ * testsuite/ld-x86-64/pr22115-1b-x32.d: Likewise.
+ * testsuite/ld-x86-64/pr22115-1b.d: Likewise.
+ * testsuite/ld-x86-64/pr22115-1c-x32.d: Likewise.
+ * testsuite/ld-x86-64/pr22115-1c.d: Likewise.
+ * testsuite/ld-x86-64/pr22115-1d-x32.d: Likewise.
+ * testsuite/ld-x86-64/pr22115-1d.d: Likewise.
+
+2017-09-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/ld-x86-64/pr19609-2a.d: Updated.
+ * testsuite/ld-x86-64/pr19609-2b.d: Likewise.
+ * testsuite/ld-x86-64/pr19609-4a.d: Likewise.
+ * testsuite/ld-x86-64/pr19609-4c.d: Likewise.
+
+2017-09-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/ld-x86-64/pr19609-5d.d: Updated.
+ * testsuite/ld-x86-64/pr19609-7a.d: Likewise.
+ * testsuite/ld-x86-64/pr19609-7c.d: Likewise.
+
+2017-09-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/ld-x86-64/pr19609-4e.d: Updated.
+ * testsuite/ld-x86-64/pr19609-6a.d: Likewise.
+
+2017-09-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/22071
+ * testsuite/ld-x86-64/pr22071.d: New file.
+ * testsuite/ld-x86-64/pr22071.s: Likewise.
+ * testsuite/ld-x86-64/x86-64.exp: Run pr22071.
+
+2017-09-02 Alan Modra <amodra@gmail.com>
+
+ * ldlang.h (lang_input_statement_type): Expand comments.
+ (LANG_FOR_EACH_INPUT_STATEMENT): Rewrite without casts.
+ * ldlang.c (lang_for_each_input_file): Likewise.
+ (load_symbols): Set usrdata for archives.
+ (find_rescan_insertion): New function.
+ (lang_process): Trim off and reinsert entries added to file chain
+ when rescanning archives for LTO.
+ * ldmain.c (add_archive_element): Set my_archive input_statement
+ next pointer to last element added.
+
+2017-09-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/22064
+ * testsuite/ld-x86-64/pr22064a.S: New file.
+ * testsuite/ld-x86-64/pr22064b.c: Likewise.
+ * testsuite/ld-x86-64/x86-64.exp: Run PR ld/22064 test.
+
+2017-09-02 Alan Modra <amodra@gmail.com>
+
+ * emultempl/msp430.em (eval_upper_either_sections): Make base_sec_name
+ a const char*.
+ (eval_lower_either_sections): Likewise.
+ (msp430_elf_after_allocation): Likewise, and don't needlessly concat
+ and free. Warning fix.
+
+2017-09-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/22061
+ * testsuite/ld-i386/ibt-plt-1.d: Updated.
+ * testsuite/ld-i386/ibt-plt-2a.d: Likewise.
+ * testsuite/ld-i386/ibt-plt-2c.d: Likewise.
+ * testsuite/ld-i386/ibt-plt-3a.d: Likewise.
+ * testsuite/ld-i386/ibt-plt-3c.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-1-x32.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-2a-x32.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-2c-x32.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-3a-x32.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-3c-x32.d: Likewise.
+ * testsuite/ld-i386/ibt-plt-2b.d: Pass --hash-style=sysv to ld
+ and dump unwind information.
+ * testsuite/ld-i386/ibt-plt-2d.d: Likewise.
+ * testsuite/ld-i386/ibt-plt-3b.d: Likewise.
+ * testsuite/ld-i386/ibt-plt-3d.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-2b-x32.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-2b.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-2d-x32.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-2d.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-3b-x32.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-3b.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-3d-x32.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-3d.d: Likewise.
+
+2017-08-31 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/22048
+ * testsuite/ld-x86-64/pr22048.d: New file.
+ * testsuite/ld-x86-64/pr22048a.s: Likewise.
+ * testsuite/ld-x86-64/pr22048b.s: Likewise.
+ * testsuite/ld-x86-64/x86-64.exp: Run pr22048.
+
+2017-08-31 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-elf/eh3.d: Update.
+ * testsuite/ld-elf/eh4.d: Update.
+
+2017-08-30 Maciej W. Rozycki <macro@imgtec.com>
+
+ * testsuite/ld-elf/orphan-11.ld: Also discard `.MIPS.options'
+ sections.
+
+2017-08-30 Maciej W. Rozycki <macro@imgtec.com>
+
+ * testsuite/ld-mips-elf/bal-jalx-addend-micromips.d: New test.
+ * testsuite/ld-mips-elf/bal-jalx-addend-micromips-n32.d: New
+ test.
+ * testsuite/ld-mips-elf/bal-jalx-addend-micromips-n64.d: New
+ test.
+ * testsuite/ld-mips-elf/bal-jalx-local-micromips.d: New test.
+ * testsuite/ld-mips-elf/bal-jalx-local-micromips-n32.d: New
+ test.
+ * testsuite/ld-mips-elf/bal-jalx-local-micromips-n64.d: New
+ test.
+ * testsuite/ld-mips-elf/bal-jalx-pic-micromips.d: New test.
+ * testsuite/ld-mips-elf/bal-jalx-pic-micromips-n32.d: New test.
+ * testsuite/ld-mips-elf/bal-jalx-pic-micromips-n64.d: New test.
+ * testsuite/ld-mips-elf/bal-jalx-pic-ignore-micromips.d: New
+ test.
+ * testsuite/ld-mips-elf/bal-jalx-pic-ignore-micromips-n32.d: New
+ test.
+ * testsuite/ld-mips-elf/bal-jalx-pic-ignore-micromips-n64.d: New
+ test.
+ * testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.
+
+2017-08-30 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-powerpc/tls.s: Add calls with tls markers.
+ * testsuite/ld-powerpc/tls32.s: Likewise.
+ * testsuite/ld-powerpc/powerpc.exp: Run tls marker tests.
+ * testsuite/ld-powerpc/tls.d: Adjust for TPREL16_HA/LO optimization.
+ * testsuite/ld-powerpc/tlsexe.d: Likewise.
+ * testsuite/ld-powerpc/tlsexetoc.d: Likewise.
+ * testsuite/ld-powerpc/tlsld.d: Likewise.
+ * testsuite/ld-powerpc/tlsmark.d: Likewise.
+ * testsuite/ld-powerpc/tlsopt4.d: Likewise.
+ * testsuite/ld-powerpc/tlstoc.d: Likewise.
+
+2017-08-30 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-powerpc/tls.d: Update.
+ * testsuite/ld-powerpc/tlsexe.d: Update.
+ * testsuite/ld-powerpc/tlsexetoc.d: Update.
+ * testsuite/ld-powerpc/tlsld.d: Update.
+ * testsuite/ld-powerpc/tlsmark.d: Update.
+ * testsuite/ld-powerpc/tlsopt4.d: Update.
+ * testsuite/ld-powerpc/tlstoc.d: Update.
+
+2017-08-30 Hans-Peter Nilsson <hp@axis.com>
+
+ * testsuite/ld-cris/dso-pltdis1.d: Run ld with --hash-style=sysv.
+ * testsuite/ld-cris/dso-pltdis2.d,
+ testsuite/ld-cris/dso12-pltdis.d, testsuite/ld-cris/expdyn1.d,
+ testsuite/ld-cris/expdyn5.d, testsuite/ld-cris/expdyn6.d,
+ testsuite/ld-cris/expdyn7.d, testsuite/ld-cris/gotplt1.d,
+ testsuite/ld-cris/gotplt2.d, testsuite/ld-cris/gotplt3.d,
+ testsuite/ld-cris/hiddef1.d, testsuite/ld-cris/libdso-11.d,
+ testsuite/ld-cris/libdso-12.d, testsuite/ld-cris/libdso-12b.d,
+ testsuite/ld-cris/libdso-12c.d, testsuite/ld-cris/libdso-13.d,
+ testsuite/ld-cris/libdso-13b.d, testsuite/ld-cris/libdso-14.d,
+ testsuite/ld-cris/libdso-15.d, testsuite/ld-cris/libdso-15b.d,
+ testsuite/ld-cris/libdso-1b.d, testsuite/ld-cris/libdso-1c.d,
+ testsuite/ld-cris/libdso-1d.d, testsuite/ld-cris/libdso-4.d,
+ testsuite/ld-cris/pr16044.d, testsuite/ld-cris/pv32-1.d,
+ testsuite/ld-cris/tls-dso-dtpoffd2.d,
+ testsuite/ld-cris/tls-dso-dtpoffd4.d,
+ testsuite/ld-cris/tls-dso-tpoffgotcomm1.d,
+ testsuite/ld-cris/tls-dso-x1x2-1.d, testsuite/ld-cris/tls-gc-71.d,
+ testsuite/ld-cris/tls-ie-78.d, testsuite/ld-cris/tls-js1.d,
+ testsuite/ld-cris/tls-ldgdex-14.d,
+ testsuite/ld-cris/tls-ldgdex-15.d,
+ testsuite/ld-cris/tls-legdx-16.d,
+ testsuite/ld-cris/tls-legdx-17.d,
+ testsuite/ld-cris/tls-local-63.d,
+ testsuite/ld-cris/tls-local-64.d, testsuite/ld-cris/tls-ok-30.d,
+ testsuite/ld-cris/tls-ok-32.d, testsuite/ld-cris/tls-ok-34.d,
+ testsuite/ld-cris/tls-und-38.d, testsuite/ld-cris/tls-und-42.d,
+ testsuite/ld-cris/tls-und-46.d, testsuite/ld-cris/tls-und-50.d,
+ testsuite/ld-cris/weakref2.d, testsuite/ld-cris/weakref3.d,
+ testsuite/ld-cris/weakref4.d: Likewise.
+
+2017-08-29 Jozef Lawrynowicz <jozef.l@somniumtech.com>
+
+ * emultempl/msp430.em (change_output_section): New function.
+ (move_prefixed_section): New function.
+ (add_region_prefix): New function.
+ (msp430_elf_after_open): New function.
+ (gld${EMULATION_NAME}_add_options): Implement.
+ (gld${EMULATION_NAME}_list_options): Implement.
+ (gld${EMULATION_NAME}_handle_option): Implement.
+ * ld.texinfo: Document new options.
+ * testsuite/ld-msp430-elf/main-bss-lower.d: New.
+ * testsuite/ld-msp430-elf/main-bss-upper.d: New.
+ * testsuite/ld-msp430-elf/main-const-lower.d: New.
+ * testsuite/ld-msp430-elf/main-const-upper.d: New.
+ * testsuite/ld-msp430-elf/main-text-lower.d: New.
+ * testsuite/ld-msp430-elf/main-text-upper.d: New.
+ * testsuite/ld-msp430-elf/main-var-lower.d: New.
+ * testsuite/ld-msp430-elf/main-var-upper.d: New.
+ * testsuite/ld-msp430-elf/main-with-data-bss-unique-sec.s: New.
+ * testsuite/ld-msp430-elf/main-with-data-bss.s: New.
+ * testsuite/ld-msp430-elf/main-with-text-rodata-unique-sec.s: New.
+ * testsuite/ld-msp430-elf/main-with-text-rodata.s: New.
+ * testsuite/ld-msp430-elf/msp430-elf.exp: New.
+ * testsuite/ld-msp430-elf/msp430-no-lower.ld: New.
+ * testsuite/ld-msp430-elf/msp430.ld: New.
+ * emultempl/msp430.em (data_statement_size): New.
+ (eval_upper_either_sections): New.
+ (eval_lower_either_sections): New.
+ (intermediate_relax_sections): New.
+ (msp430_elf_after_allocation): New.
+ * emultempl/msp430.em (gld${EMULATION_NAME}_place_orphan): Always
+ place sections in the lower region.
+
+2017-08-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/21997
+ * testsuite/ld-i386/i386.exp: Run PR ld/21997 tests.
+ * testsuite/ld-x86-64/x86-64.exp: Likewise.
+ * testsuite/ld-i386/pr21997-1a.S: New file.
+ * testsuite/ld-i386/pr21997-1b.c: Likewise.
+ * testsuite/ld-i386/pr21997-1c.S: Likewise.
+ * testsuite/ld-x86-64/pr21997-1a.S: Likewise.
+ * testsuite/ld-x86-64/pr21997-1a.err: Likewise.
+ * testsuite/ld-x86-64/pr21997-1b.c: Likewise.
+ * testsuite/ld-x86-64/pr21997-1b.err: Likewise.
+ * testsuite/ld-x86-64/pr21997-1c.c: Likewise.
+
+2017-08-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/ld-elf/pr21903c.d: Remove '\' before --.
+ * testsuite/ld-elf/pr21903d.d: Likewise.
+ * testsuite/ld-elf/pr21903e.d: Likewise.
+ * testsuite/lib/ld-lib.exp (run_dump_test): Add "--" after
+ regexp.
+
+2017-08-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/ld-i386/i386.exp (undefined_weak): Replace regexp
+ with string match.
+ * testsuite/ld-x86-64/x86-64.exp (undefined_weak): Likewise.
+
+2017-08-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/ld-x86-64/x86-64.exp: Run pr22001-1b on x32.
+
+2017-08-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/22001
+ * testsuite/ld-i386/i386.exp: Run -z nocopyreloc tests.
+ * testsuite/ld-x86-64/x86-64.exp: Likewise.
+ * testsuite/ld-i386/pr22001-1a.c: New file.
+ * testsuite/ld-i386/pr22001-1b.c: Likewise.
+ * testsuite/ld-i386/pr22001-1c.S: Likewise.
+ * testsuite/ld-x86-64/pr22001-1a.c: Likewise.
+ * testsuite/ld-x86-64/pr22001-1a.err: Likewise.
+ * testsuite/ld-x86-64/pr22001-1b.c: Likewise.
+ * testsuite/ld-x86-64/pr22001-1b.err: Likewise.
+ * testsuite/ld-x86-64/pr22001-1c.c: Likewise.
+
+2017-08-17 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ PR 21961
+ * ldlang.c (lang_discard_section_p): New function.
+ (lang_add_section): Checks moved out into new function, which is
+ now called.
+ (lang_place_orphans): Call lang_discard_section_p instead of
+ duplicating some of the checks from lang_add_section.
+ * testsuite/ld-elf/orphan-11.d: New file.
+ * testsuite/ld-elf/orphan-11.ld: New file.
+ * testsuite/ld-elf/orphan-11.s: New file.
+ * testsuite/ld-elf/orphan-12.d: New file.
+ * testsuite/ld-elf/orphan-12.s: New file.
+
+2017-08-24 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-undefined/fundef.s: New test.
+ * testsuite/ld-undefined/undefined.exp: Test that undefined
+ symbols in shared libraries are made dynamic.
+
+2017-08-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/ld-elf/pr21903c.d: Add '\' before --.
+ * testsuite/ld-elf/pr21903d.d: Likewise.
+ * testsuite/ld-elf/pr21903e.d: Likewise.
+
+2017-08-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/ld-x86-64/pie2.d: Updated.
+ * testsuite/ld-x86-64/pr19719.d: Likewise.
+ * testsuite/ld-x86-64/pr19807-2a.d: Likewise.
+ * testsuite/ld-x86-64/pr19969.d: Likewise.
+
+2017-08-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/ld-i386/i386.exp: Run protected7.
+ * testsuite/ld-i386/protected7.d: New file.
+ * testsuite/ld-i386/protected7.s: Likewise.
+ * testsuite/ld-x86-64/protected8.d: Likewise.
+ * testsuite/ld-x86-64/protected8.s: Likewise.
+ * testsuite/ld-x86-64/x86-64.exp: Run protected8.
+
+2017-08-23 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-gc/pr19161.d: Don't xfail hppa.
+
+2017-08-22 H.J. Lu <hongjiu.lu@intel.com>
+ Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-elf/pr21964-1a.c (foo): Renamed to ...
+ (foo1): This.
+ * testsuite/ld-elf/pr21964-1b.c: Rewrite.
+ * testsuite/ld-elf/pr21964-1c.c: New file.
+ * testsuite/ld-elf/pr21964-2c.c: Likewise.
+ * testsuite/ld-elf/pr21964-2a.c (foo): Renamed to ...
+ (foo1): This.
+ * testsuite/ld-elf/pr21964-2b.c: Rewrite.
+ * testsuite/ld-elf/shared.exp: Update PR ld/21964 tests.
+
+2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
+ Alan Modra <amodra@gmail.com>
+
+ PR ld/21964
+ * testsuite/ld-elf/pr21562a.d: Update for changed start/stop symbols.
+ * testsuite/ld-elf/pr21562b.d: Likewise.
+ * testsuite/ld-elf/pr21562c.d: Likewise.
+ * testsuite/ld-elf/pr21562d.d: Likewise.
+ * testsuite/ld-elf/pr21562e.d: Likewise.
+ * testsuite/ld-elf/pr21562f.d: Likewise.
+ * testsuite/ld-elf/pr21562g.d: Likewise.
+ * testsuite/ld-elf/pr21562h.d: Likewise.
+ * testsuite/ld-elf/pr21562i.d: Likewise.
+ * testsuite/ld-elf/pr21562j.d: Likewise.
+ * testsuite/ld-elf/pr21562k.d: Likewise.
+ * testsuite/ld-elf/pr21562l.d: Likewise.
+ * testsuite/ld-elf/pr21562m.d: Likewise.
+ * testsuite/ld-elf/pr21562n.d: Likewise.
+ * testsuite/ld-elf/sizeofa.d: Likewise.
+ * testsuite/ld-elf/sizeofb.d: Likewise.
+ * testsuite/ld-elf/startofa.d: Likewise.
+ * testsuite/ld-elf/startofb.d: Likewise.
+ * testsuite/ld-gc/pr20022.d: Likewise.
+ * testsuite/ld-gc/start.d: Likewise.
+ * testsuite/ld-elf/pr21964-1a.c: New file.
+ * testsuite/ld-elf/pr21964-1b.c: New file.
+ * testsuite/ld-elf/pr21964-2a.c: New file.
+ * testsuite/ld-elf/pr21964-2b.c: New file.
+ * testsuite/ld-elf/shared.exp: Run PR ld/21964 tests.
+
+2017-08-21 Hans-Peter Nilsson <hp@bitrange.com>
+
+ PR ld/20125
+ * testsuite/ld-mmix/pr20125.d, testsuite/ld-mmix/pr20125.s: New
+ test.
+
+2017-08-20 A. Wilcox <awilfox@adelielinux.org>
+
+ PR ld/21976
+ * testsuite/ld-x86-64/plt-main-bnd.dd: Accept '_' in symbol
+ name.
+
+2017-08-17 Nick Clifton <nickc@redhat.com>
+
+ * po/pt_BR.po: New Brazilian Portuguese translation.
+ * configure.ac (ALL_LINGUAS): Add pt_BR.
+ * configure: Regenerate.
+
+2017-08-14 Alan Modra <amodra@gmail.com>
+
+ PR 21441
+ * testsuite/ld-x86-64/pr21038a.d: Adjust.
+ * testsuite/ld-x86-64/pr21038a-now.d: Adjust.
+
+2017-08-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/ld-i386/i386.exp: Run pr21884-nacl.
+ * testsuite/ld-x86-64/x86-64.exp: Likewise.
+ * testsuite/ld-i386/pr21884.d: Don't run on nacl targets.
+ * testsuite/ld-x86-64/pr21884.d: Likewise.
+ * testsuite/ld-i386/pr21884.t: Revert the last change.
+ * testsuite/ld-x86-64/pr21884.t: Likewise.
+ * testsuite/ld-i386/pr21884-nacl.d: New file.
+ * testsuite/ld-i386/pr21884-nacl.t: Likewise.
+ * testsuite/ld-x86-64/pr21884-nacl.d: Likewise.
+ * testsuite/ld-x86-64/pr21884-nacl.t: Likewise.
+
+2017-08-13 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-i386/pr21884.t: Remove unneeded format, arch and entry.
+ * testsuite/ld-x86-64/pr21884.t: Likewise.
+
+2017-08-11 Nick Clifton <nickc@redhat.com>
+
+ * emultempl/elf32.em (handle_option): Accept the -z globalaudit
+ command line option.
+ * lexsup.c (elf_static_list_options): Add -z globalaudit.
+ * ld.texinfo: Document the support for the new command line
+ option.
+ * NEWS: Mention the new feature.
+ * testsuite/ld-elf/audit.exp: Add a test of the -z globalaudit
+ command line option.
+ * testsuite/ld-elf/globalaudit.rd: New file: Expected output from
+ readelf.
+
+2017-08-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/21884
+ * testsuite/ld-i386/i386.exp: Run pr21884.
+ * testsuite/ld-x86-64/x86-64.exp: Likewise.
+ * testsuite/ld-i386/pr21884.d: New file.
+ * testsuite/ld-i386/pr21884.t: Likewise.
+ * testsuite/ld-x86-64/pr21884.d: Likewise.
+ * testsuite/ld-x86-64/pr21884.t: Likewise.
+
+2017-08-10 Nick Clifton <nickc@redhat.com>
+
+ * scripttempl/pep.sc: Enclose __CTOR_LIST__, ___CTOR_LIST__,
+ __DTOR_LIST__ and ___DTOR_LIST__ in PROVIDE statements so that
+ they can be overrridden by crt input files.
+ * scripttempl/pe.sc: Likewise.
+
+2017-08-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/config/default.exp (LD_CLASS): Check .libs/ld-new
+ for linker first.
+
+2017-08-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/config/default.exp (LD_CLASS): New. Set to "64bit"
+ for 64-bit ELF linker.
+ * testsuite/ld-x86-64/pr17618.d (#notarget): Removed.
+ * testsuite/ld-x86-64/x86-64.exp: Run pr17618 only for 64-bit
+ linker.
+
+2017-08-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/21924
+ * testsuite/ld-i386/i386.exp: Require GCC 5 or above for
+ "weakundef1 with PIE" test.
+ * testsuite/ld-x86-64/tls.exp: Require GCC 5 or above for
+ "tlsdesc1" and "tlsdesc1 with PIE" tests.
+
+2017-08-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ * configure.ac (TESTBFDLIB): Add a ',' after -Wl,--rpath.
+ * configure: Regenerated.
+
+2017-08-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/21923
+ * configure.ac (TESTBFDLIB): Replace --rpath with -Wl,--rpath
+ for --disable-static.
+ * configure: Regenerated.
+
+2017-08-08 Romain Geissler <romain.geissler@gmail.com>
+ Alan Modra <amodra@gmail.com>
+
+ * configure.ac: Add --enable-default-hash-style option.
+ * ldmain.c (main): Set link_info.emit_hash to DEFAULT_EMIT_SYSV_HASH.
+ Set link_info.emit_gnu_hash to DEFAULT_EMIT_GNU_HASH.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+
+2017-08-08 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-aarch64/ifunc-1-local.d: Run ld with --hash-style=sysv.
+ * testsuite/ld-aarch64/ifunc-2-local.d: Likewise.
+ * testsuite/ld-aarch64/ifunc-3a.d: Likewise.
+ * testsuite/ld-frv/fdpic-pie-1.d: Likewise.
+ * testsuite/ld-frv/fdpic-pie-2.d: Likewise.
+ * testsuite/ld-frv/fdpic-pie-7.d: Likewise.
+ * testsuite/ld-frv/fdpic-pie-8.d: Likewise.
+ * testsuite/ld-arm/arm-elf.exp: Add --hash-style=sysv to "Using
+ Thumb lib by another lib" test's ld options.
+ * testsuite/ld-elf/note-3.l: Match .gnu.hash.
+ * testsuite/ld-elf/note-3.t: Add .gnu.hash output section.
+
+2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/ld-elf/pr21903.s (start): Removed.
+ (_start): Likewise.
+ (__start): Likewise.
+ (main): Likewise.
+ (bar): New.
+
+2017-08-07 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-alpha/alpha.exp: Add --hash-style=sysv to various
+ test's ld options.
+ * testsuite/ld-arm/arm-elf.exp: Likewise.
+ * testsuite/ld-elf/elf.exp: Likewise.
+ * testsuite/ld-elf/readelf.exp: Likewise.
+ * testsuite/ld-elfvsb/elfvsb.exp: Likewise.
+ * testsuite/ld-i386/i386.exp: Likewise.
+ * testsuite/ld-ia64/ia64.exp: Likewise.
+ * testsuite/ld-m68k/m68k.exp: Likewise.
+ * testsuite/ld-metag/metag.exp: Likewise.
+ * testsuite/ld-powerpc/powerpc.exp: Likewise.
+ * testsuite/ld-s390/s390.exp: Likewise.
+ * testsuite/ld-sh/sh-vxworks.exp: Likewise.
+ * testsuite/ld-shared/shared.exp: Likewise.
+ * testsuite/ld-sparc/sparc.exp: Likewise.
+ * testsuite/ld-tic6x/tic6x.exp: Likewise.
+ * testsuite/ld-vax-elf/vax-elf.exp: Likewise.
+ * testsuite/ld-x86-64/mpx.exp: Likewise.
+ * testsuite/ld-x86-64/x86-64.exp: Likewise.
+ * testsuite/ld-xtensa/xtensa.exp: Likewise.
+
+ * testsuite/ld-elf/comm-data2.ld: Add .gnu.hash output section.
+ * testsuite/ld-elf/pr20828-v.ld: Likewise.
+ * testsuite/ld-elf/pr20828.ld: Likewise.
+ * testsuite/ld-elf/pr21233.ld: Likewise.
+ * testsuite/ld-elf/pr21384.ld: Likewise.
+ * testsuite/ld-elf/provide-hidden-1.ld: Likewise.
+ * testsuite/ld-elf/provide-hidden-2.ld: Likewise.
+ * testsuite/ld-elf/provide-hidden-s.ld: Likewise.
+ * testsuite/ld-scripts/cross1.t: Likewise.
+
+ * testsuite/ld-elf/stab.d: Adjust allowed section indices.
+
+ * testsuite/ld-i386/pie1.d: Don't match addresses.
+ * testsuite/ld-i386/plt-pic2.dd: Likewise.
+ * testsuite/ld-i386/pr19636-1d.d: Likewise.
+ * testsuite/ld-i386/pr19636-2c.d: Likewise.
+ * testsuite/ld-powerpc/elfv2so.d: Likewise.
+ * testsuite/ld-powerpc/tlsopt5.d: Likewise.
+ * testsuite/ld-powerpc/tlsopt5.wf: Likewise.
+ * testsuite/ld-powerpc/tlsopt5_32.d: Likewise.
+
+ * testsuite/ld-i386/pr19636-2b.d: Don't match _start.
+
+ * testsuite/ld-powerpc/ambiguousv1.d: Relax symbol count, index
+ and address match.
+ * testsuite/ld-powerpc/ambiguousv1b.d: Likewise.
+ * testsuite/ld-powerpc/ambiguousv2.d: Likewise.
+ * testsuite/ld-powerpc/ambiguousv2b.d: Likewise.
+
+ * testsuite/ld-aarch64/gc-plt-relocs.d: Run ld with --hash-style=sysv.
+ * testsuite/ld-aarch64/ifunc-1.d: Likewise.
+ * testsuite/ld-aarch64/ifunc-2.d: Likewise.
+ * testsuite/ld-aarch64/ifunc-21.d: Likewise.
+ * testsuite/ld-aarch64/relasz.d: Likewise.
+ * testsuite/ld-aarch64/tls-small-ld.d: Likewise.
+ * testsuite/ld-aarch64/tls-tiny-ld.d: Likewise.
+ * testsuite/ld-arc/tls_gd-01.d: Likewise.
+ * testsuite/ld-cris/libdso-10.d: Likewise.
+ * testsuite/ld-cris/libdso-2.d: Likewise.
+ * testsuite/ld-cris/pic-gc-72.d: Likewise.
+ * testsuite/ld-cris/pic-gc-73.d: Likewise.
+ * testsuite/ld-cris/tls-gd-1.d: Likewise.
+ * testsuite/ld-cris/tls-gd-1h.d: Likewise.
+ * testsuite/ld-cris/tls-gd-2.d: Likewise.
+ * testsuite/ld-cris/tls-gd-2h.d: Likewise.
+ * testsuite/ld-cris/tls-ie-10.d: Likewise.
+ * testsuite/ld-cris/tls-ie-11.d: Likewise.
+ * testsuite/ld-cris/tls-ie-8.d: Likewise.
+ * testsuite/ld-cris/tls-ie-9.d: Likewise.
+ * testsuite/ld-cris/tls-ld-4.d: Likewise.
+ * testsuite/ld-cris/tls-ld-5.d: Likewise.
+ * testsuite/ld-cris/tls-ld-6.d: Likewise.
+ * testsuite/ld-cris/tls-ld-7.d: Likewise.
+ * testsuite/ld-cris/tls-ldgd-14.d: Likewise.
+ * testsuite/ld-cris/tls-ldgd-15.d: Likewise.
+ * testsuite/ld-cris/tls-ldgdx-14.d: Likewise.
+ * testsuite/ld-cris/tls-ldgdx-15.d: Likewise.
+ * testsuite/ld-cris/tls-local-54.d: Likewise.
+ * testsuite/ld-cris/tls-local-60.d: Likewise.
+ * testsuite/ld-cris/tls-local-61.d: Likewise.
+ * testsuite/ld-cris/weakhiddso.d: Likewise.
+ * testsuite/ld-elf/linkinfo1a.d: Likewise.
+ * testsuite/ld-elf/linkinfo1b.d: Likewise.
+ * testsuite/ld-elf/pr19617a.d: Likewise.
+ * testsuite/ld-elfvsb/hidden2.d: Likewise.
+ * testsuite/ld-frv/fdpic-pie-6.d: Likewise.
+ * testsuite/ld-frv/fdpic-shared-2.d: Likewise.
+ * testsuite/ld-frv/fdpic-shared-5.d: Likewise.
+ * testsuite/ld-frv/fdpic-shared-6.d: Likewise.
+ * testsuite/ld-frv/fdpic-shared-8.d: Likewise.
+ * testsuite/ld-frv/fdpic-shared-local-2.d: Likewise.
+ * testsuite/ld-frv/fdpic-shared-local-8.d: Likewise.
+ * testsuite/ld-frv/tls-dynamic-2.d: Likewise.
+ * testsuite/ld-i386/ibt-plt-1.d: Likewise.
+ * testsuite/ld-i386/ibt-plt-2a.d: Likewise.
+ * testsuite/ld-i386/ibt-plt-2c.d: Likewise.
+ * testsuite/ld-i386/ibt-plt-3a.d: Likewise.
+ * testsuite/ld-i386/ibt-plt-3c.d: Likewise.
+ * testsuite/ld-i386/pr20830.d: Likewise.
+ * testsuite/ld-ia64/merge1.d: Likewise.
+ * testsuite/ld-ia64/merge2.d: Likewise.
+ * testsuite/ld-ia64/merge3.d: Likewise.
+ * testsuite/ld-ia64/merge4.d: Likewise.
+ * testsuite/ld-ia64/merge5.d: Likewise.
+ * testsuite/ld-ifunc/ifunc-1-local-x86.d: Likewise.
+ * testsuite/ld-ifunc/ifunc-1-x86.d: Likewise.
+ * testsuite/ld-ifunc/ifunc-2-i386-now.d: Likewise.
+ * testsuite/ld-ifunc/ifunc-2-local-i386-now.d: Likewise.
+ * testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d: Likewise.
+ * testsuite/ld-ifunc/ifunc-2-local-x86-64.d: Likewise.
+ * testsuite/ld-ifunc/ifunc-2-x86-64-now.d: Likewise.
+ * testsuite/ld-ifunc/ifunc-2-x86-64.d: Likewise.
+ * testsuite/ld-ifunc/ifunc-3a-x86.d: Likewise.
+ * testsuite/ld-ifunc/pr17154-i386-now.d: Likewise.
+ * testsuite/ld-ifunc/pr17154-i386.d: Likewise.
+ * testsuite/ld-ifunc/pr17154-x86-64-now.d: Likewise.
+ * testsuite/ld-ifunc/pr17154-x86-64.d: Likewise.
+ * testsuite/ld-m68k/got-1.d: Likewise.
+ * testsuite/ld-m68k/got-multigot-12-13-14-34-35-ok.d: Likewise.
+ * testsuite/ld-m68k/got-multigot-14-ok.d: Likewise.
+ * testsuite/ld-m68k/got-multigot-15-er.d: Likewise.
+ * testsuite/ld-m68k/got-negative-12-13-14-34-ok.d: Likewise.
+ * testsuite/ld-m68k/got-negative-12-13-14-35-er.d: Likewise.
+ * testsuite/ld-m68k/got-negative-14-ok.d: Likewise.
+ * testsuite/ld-m68k/got-negative-15-er.d: Likewise.
+ * testsuite/ld-m68k/got-single-12-ok.d: Likewise.
+ * testsuite/ld-m68k/got-single-13-er.d: Likewise.
+ * testsuite/ld-m68k/got-xgot-12-13-14-15-34-35-ok.d: Likewise.
+ * testsuite/ld-m68k/got-xgot-15-ok.d: Likewise.
+ * testsuite/ld-m68k/tls-gd-1.d: Likewise.
+ * testsuite/ld-m68k/tls-gd-2.d: Likewise.
+ * testsuite/ld-m68k/tls-gd-ie-1.d: Likewise.
+ * testsuite/ld-m68k/tls-ie-1.d: Likewise.
+ * testsuite/ld-m68k/tls-ld-1.d: Likewise.
+ * testsuite/ld-m68k/tls-ld-2.d: Likewise.
+ * testsuite/ld-sh/shared-2.d: Likewise.
+ * testsuite/ld-sh/tlsbin-2.d: Likewise.
+ * testsuite/ld-sh/tlspic-2.d: Likewise.
+ * testsuite/ld-x86-64/bnd-branch-1-now.d: Likewise.
+ * testsuite/ld-x86-64/bnd-ifunc-1-now.d: Likewise.
+ * testsuite/ld-x86-64/bnd-ifunc-1.d: Likewise.
+ * testsuite/ld-x86-64/bnd-ifunc-2-now.d: Likewise.
+ * testsuite/ld-x86-64/bnd-ifunc-2.d: Likewise.
+ * testsuite/ld-x86-64/bnd-plt-1-now.d: Likewise.
+ * testsuite/ld-x86-64/bnd-plt-1.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-1-x32.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-1.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-2a-x32.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-2a.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-2c-x32.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-2c.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-3a-x32.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-3a.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-3c-x32.d: Likewise.
+ * testsuite/ld-x86-64/ibt-plt-3c.d: Likewise.
+ * testsuite/ld-x86-64/ilp32-4-nacl.d: Likewise.
+ * testsuite/ld-x86-64/ilp32-4.d: Likewise.
+ * testsuite/ld-x86-64/load1c-nacl.d: Likewise.
+ * testsuite/ld-x86-64/load1c.d: Likewise.
+ * testsuite/ld-x86-64/load1d-nacl.d: Likewise.
+ * testsuite/ld-x86-64/load1d.d: Likewise.
+ * testsuite/ld-x86-64/pie3-nacl.d: Likewise.
+ * testsuite/ld-x86-64/pie3.d: Likewise.
+ * testsuite/ld-x86-64/pr14207.d: Likewise.
+ * testsuite/ld-x86-64/pr19162.d: Likewise.
+ * testsuite/ld-x86-64/pr19636-2d-nacl.d: Likewise.
+ * testsuite/ld-x86-64/pr19636-2d.d: Likewise.
+ * testsuite/ld-x86-64/pr20253-1d.d: Likewise.
+ * testsuite/ld-x86-64/pr20253-1f.d: Likewise.
+ * testsuite/ld-x86-64/pr20253-1j.d: Likewise.
+ * testsuite/ld-x86-64/pr20253-1l.d: Likewise.
+ * testsuite/ld-x86-64/pr20830a-now.d: Likewise.
+ * testsuite/ld-x86-64/pr20830a.d: Likewise.
+ * testsuite/ld-x86-64/pr20830b-now.d: Likewise.
+ * testsuite/ld-x86-64/pr20830b.d: Likewise.
+ * testsuite/ld-x86-64/pr21038a-now.d: Likewise.
+ * testsuite/ld-x86-64/pr21038a.d: Likewise.
+ * testsuite/ld-x86-64/pr21038b-now.d: Likewise.
+ * testsuite/ld-x86-64/pr21038b.d: Likewise.
+ * testsuite/ld-x86-64/pr21038c-now.d: Likewise.
+ * testsuite/ld-x86-64/pr21038c.d: Likewise.
+
+2017-08-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/21903:
+ * ld.h (command_line): Remove inhibit_common_definition.
+ * ldgram.y: Replace command_line.inhibit_common_definition with
+ link_info.inhibit_common_definition.
+ * ldlang.c (lang_common): Likewise.
+ * lexsup.c (parse_args): Likewise.
+ * ldmain.c (main): Only allow --no-define-common with -shared.
+ * testsuite/ld-elf/pr21903.s: New file.
+ * testsuite/ld-elf/pr21903a.d: Likewise.
+ * testsuite/ld-elf/pr21903b.d: Likewise.
+ * testsuite/ld-elf/pr21903c.d: Likewise.
+ * testsuite/ld-elf/pr21903d.d: Likewise.
+ * testsuite/ld-elf/pr21903e.d: Likewise.
+
+2017-08-05 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-unique/pr21529.d: Don't xfail hppa.
+
+2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/21904
+ * testsuite/ld-elf/pr21904.d: New file.
+ * testsuite/ld-elf/pr21904.s: Likewise.
+
+2017-08-03 Nick Clifton <nickc@redhat.com>
+
+ PR ld/21884
+ * testsuite/ld-elf/pr21884.d: Add AVR, HPPA, IA64, M68HC1x and
+ SCORE to list of targets not supporting file format changes during
+ linking.
+ * testsuite/ld-unique/pr21529.d: Likewise.
+ * emultempl/avrelf.em (_before_allocation): Skip for non-ELF
+ output formats.
+ (avr_elf_create_output_section_statements): Fail if the output
+ format is not ELF.
+ (avr_finish): Do not access the ELF header in non-ELF format
+ output bfds.
+ * emultempl/m68hc1xelf.em (_before_allocation): Skip for non-ELF
+ output formats.
+ (m68hc11elf_create_output_section_statements): Fail if the putput
+ format is not ELF.
+ (m68hc11elf_after_allocation): Skip for non-ELF output formats.
+
+2017-08-03 Alan Modra <amodra@gmail.com>
+
+ PR ld/21884
+ * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Revert
+ last change. Rename iself to elfinput. Expand comments. Condition
+ ELF checks on having both input and output ELF files. Extract..
+ (elf_orphan_compatible): ..this new function.
+
+2017-08-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/21884
+ * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Check
+ ELF section header only for ELF output.
+ * testsuite/ld-elf/pr21884.d: New test.
+ * testsuite/ld-elf/pr21884.t: Likewise.
+ * testsuite/ld-elf/pr21884a.s: Likewise.
+ * testsuite/ld-elf/pr21884b.s: Likewise.
+
+2017-08-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * emultempl/elf32.em (_place_orphan): Revert the last change.
+
+2017-08-02 Max Filippov <jcmvbkbc@gmail.com>
+
+ * emultempl/xtensaelf.em (xtensa_wild_group_interleave_callback):
+ Only check for by_name sorting.
+
+2017-08-02 Nick Clifton <nickc@redhat.com>
+
+ PR 21884
+ * emultempl/elf32.em (_place_orphan): Skip non-ELF binaries when
+ looking for sections to merge.
+
+2017-07-31 Alan Modra <amodra@gmail.com>
+
+ * ld.texinfo (plt-localentry): Revise.
+
+2017-07-29 Alan Modra <amodra@gmail.com>
+
+ * ld.texinfo (plt-localentry): Document.
+
+2017-07-28 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * ldgram.y (ldgram_had_keep): Make static.
+ (ldgram_vers_current_lang): Likewise.
+ (filename_spec): New rule.
+ (input_section_spec_no_keep): Use filename_spec.
+ (wildcard_maybe_exclude): New rule.
+ (wildcard_spec): Rename to...
+ (section_name_spec): ...this.
+ (section_NAME_list): Rename to...
+ (section_name_list): ...this.
+ (section_name_spec): Simplifiy and use wildcard_maybe_exclude.
+ * ldlang.c (placed_commons): Delete.
+ (lang_add_wild): No longer set placed_commons.
+ (print_wild_statement): Use full names for SORT specifiers.
+ * testsuite/ld-scripts/align.exp: Run new tests.
+ * testsuite/ld-scripts/align3.d: New file.
+ * testsuite/ld-scripts/align3.t: New file.
+ * testsuite/ld-scripts/align4.d: New file.
+ * testsuite/ld-scripts/align4.t: New file.
+ * testsuite/ld-scripts/align5.d: New file.
+ * testsuite/ld-scripts/align5.t: New file.
+ * testsuite/ld-scripts/exclude-file-5.d: New file.
+ * testsuite/ld-scripts/exclude-file-5.map: New file.
+ * testsuite/ld-scripts/exclude-file-5.t: New file.
+ * testsuite/ld-scripts/exclude-file-6.d: New file.
+ * testsuite/ld-scripts/exclude-file-6.map: New file.
+ * testsuite/ld-scripts/exclude-file-6.t: New file.
+ * NEWS: Mention the changes.
+
+2017-07-27 Georg-Johann Lay <gjl@gcc.gnu.org>
+
+ PR ld/21849
+ * scripttempl/avr.sc: Split .progmemx.* from .progmem.* and locate
+ former at a higher address.
+
+2017-07-25 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-powerpc/tlsopt5.s: Add cfi.
+ * testsuite/ld-powerpc/tlsopt5.d: Update.
+ * testsuite/ld-powerpc/tlsopt5.wf: New file.
+ * testsuite/ld-powerpc/powerpc.exp: Perform new tlsopt5 test.
+
+2017-07-24 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * testsuite/ld-arc/jli-overflow.d: Force testing for little
+ endian.
+ * testsuite/ld-arc/tls_gd-01.d: Fix string to match bigendian
+ systems.
+ * testsuite/ld-arc/tls_ie-01.d: Fix test for bigendian systems.
+
+2017-07-19 Maciej W. Rozycki <macro@imgtec.com>
+
+ * testsuite/ld-scripts/fill.d: Adjust `xfail' entries. Add
+ `notarget' entries. Update comments.
+ * testsuite/ld-scripts/fill16.d: New test.
+ * testsuite/ld-scripts/fill16_0.s: New test source.
+ * testsuite/ld-scripts/fill16_1.s: New test source.
+ * testsuite/ld-scripts/fill16_2.s: New test source.
+ * testsuite/ld-scripts/data.exp: Run the new test.
+
+2017-07-19 Claudiu Zissulescu <claziss@synopsys.com>
+ John Eric Martin <John.Martin@emmicro-us.com>
+
+ * emulparams/arcelf.sh (JLI_START_TABLE): Define.
+ * scripttempl/elfarc.sc: Handle jlitab section.
+ * scripttempl/elfarcv2.sc: Likewise.
+ * testsuite/ld-arc/arc.exp: Add JLI test.
+ * testsuite/ld-arc/jli-script.ld: New file.
+ * testsuite/ld-arc/jli-simple.dd: Likewise.
+ * testsuite/ld-arc/jli-simple.rd: Likewise.
+ * testsuite/ld-arc/jli-simple.s: Likewise.
+ * testsuite/ld-arc/jli-overflow.s: Likewise.
+ * testsuite/ld-arc/jli-overflow.d: Likewise.
+ * testsuite/ld-arc/jli-overflow.err: Likewise.
+
+2017-07-19 Tristan Gingold <gingold@adacore.com>
+
+ * ldmain.c (main): Remove display of data size.
+
+2017-07-18 Maciej W. Rozycki <macro@imgtec.com>
+
+ PR ld/16656
+ * testsuite/ld-elf/binutils.exp (binutils_test): Make the
+ expectation for `.got' in GNU_RELRO segment target-specific.
+ Handle `.got.plt' separately.
+
+2017-07-18 Maciej W. Rozycki <macro@imgtec.com>
+
+ PR ld/16656
+ * testsuite/ld-elf/binutils.exp (binutils_test): Make the
+ expectation for `.dynamic' in GNU_RELRO segment target-specific.
+
+2017-07-18 Nick Clifton <nickc@redhat.com>
+
+ PR 21775
+ * ld.texinfo: Fix spelling typos.
+ * testsuite/ld-elfcomm/elfcomm.exp: Likewise.
+
+2017-07-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/ld-i386/i386.exp: Run pie1 and pie1-nacl.
+ * testsuite/ld-i386/pie1-nacl.d: New file.
+ * testsuite/ld-i386/pie1.d: Likewise.
+ * testsuite/ld-i386/pie1.s: Likewise.
+
+2017-07-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/21782
+ * testsuite/ld-x86-64/pie3-nacl.d: New file.
+ * testsuite/ld-x86-64/pie3.d: Likewise.
+ * testsuite/ld-x86-64/pie3.s: Likewise.
+ * testsuite/ld-x86-64/x86-64.exp: Run pie3 and pie3-nacl.
+
+2017-07-14 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-powerpc/powerpc.exp: Add -shared to tlsop5 tests.
+ * testsuite/ld-powerpc/tlsopt5.d: Adjust.
+ * testsuite/ld-powerpc/tlsopt1_32.s: Use r30 as GOT pointer.
+ * testsuite/ld-powerpc/tlsopt2_32.s: Likewise.
+ * testsuite/ld-powerpc/tlsopt3_32.s: Likewise.
+ * testsuite/ld-powerpc/tlsopt4_32.s: Likewise.
+ * testsuite/ld-powerpc/tlsopt5_32.s: Rewrite.
+ * testsuite/ld-powerpc/tlsopt1_32.d: Adjust.
+ * testsuite/ld-powerpc/tlsopt2_32.d: Adjust.
+ * testsuite/ld-powerpc/tlsopt3_32.d: Adjust.
+ * testsuite/ld-powerpc/tlsopt5_32.d: Adjust.
+
+2016-07-14 Maciej W. Rozycki <macro@imgtec.com>
+
+ * testsuite/ld-unique/pr21529.ld: New test linker script.
+ * testsuite/ld-unique/pr21529.d: Use it.
+
+2017-07-12 Alan Modra <amodra@gmail.com>
+
+ * po/bg.po: Update from translationproject.org/latest/ld/.
+ * po/da.po: Likewise.
+ * po/es.po: Likewise.
+ * po/fi.po: Likewise.
+ * po/fr.po: Likewise.
+ * po/id.po: Likewise.
+ * po/it.po: Likewise.
+ * po/ja.po: Likewise.
+ * po/tr.po: Likewise.
+ * po/uk.po: Likewise.
+ * po/vi.po: Likewise.
+ * po/zh_CN.po: Likewise.
+ * po/zh_TW.po: Likewise.
+ * po/de.po: New file from translationproject.org.
+ * po/ru.po: Likewise.
+ * configure.ac (ALL_LINGUAS): Add de, ru. Sort.
+ * configure: Regenerate.
+
+2017-07-12 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-scripts/align.exp: Exclude powerpc*-*-aix*.
+ * testsuite/ld-scripts/assign-loc.d: Likewise.
+ * testsuite/ld-scripts/defined3.d: Likewise.
+ * testsuite/ld-scripts/defined4.d: Likewise.
+ * testsuite/ld-scripts/defined5.d: Likewise.
+ * testsuite/ld-scripts/expr2.d: Likewise.
+ * testsuite/ld-scripts/provide.exp: Likewise.
+ * testsuite/ld-scripts/sane1.d: Likewise.
+ * testsuite/ld-scripts/size.exp: Likewise.
+ * testsuite/ld-scripts/defined2.d: Don't xfail rs6000-*-aix*.
+
+2017-07-12 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-arc/nps-1b.err: Update.
+ * testsuite/ld-x86-64/ilp32-11.d: Update.
+
+2017-07-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/ld-selective/selective.exp: Support single digit
+ GCC version.
+
+2017-07-11 Jiong Wang <jiong.wang@arm.com>
+
+ * testsuite/ld-aarch64/dt_textrel.d: Use "#pass" instead of ".*" to
+ filter out remaining lines.
+
+2017-07-07 Maciej W. Rozycki <macro@imgtec.com>
+
+ * emultempl/mipself.em (mips_before_allocation): Avoid ELF
+ processing if not MIPS ELF.
+ * testsuite/ld-mips-elf/binary.d: New test.
+ * testsuite/ld-mips-elf/binary.ld: New test linker script.
+ * testsuite/ld-mips-elf/binary.s: New test source.
+ * testsuite/ld-mips-elf/mips-elf.exp: Run the new test.
+
+2017-07-07 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-powerpc/ppc476-shared.lnk: Align .bss.
+ * testsuite/ld-powerpc/ppc476-shared.d: Adjust.
+ * testsuite/ld-powerpc/ppc476-shared2.d: Adjust.
+
+2017-07-07 Alan Modra <amodra@gmail.com>
+
+ * Makefile.am (eelf64_s390.c): Depend on emultempl/s390.em.
+
2017-07-04 Tristan Gingold <gingold@adacore.com>
* configure: Regenerate.
diff --git a/ld/Makefile.am b/ld/Makefile.am
index fcd4c36..625347f 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -1938,6 +1938,7 @@ eelf64_ia64_vms.c: $(srcdir)/emulparams/elf64_ia64_vms.sh \
$(srcdir)/scripttempl/ia64vms.sc ${GEN_DEPENDS}
eelf64_s390.c: $(srcdir)/emulparams/elf64_s390.sh \
+ $(srcdir)/emultempl/s390.em \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \
diff --git a/ld/NEWS b/ld/NEWS
index 1f5060c..bb5a62b 100644
--- a/ld/NEWS
+++ b/ld/NEWS
@@ -1,4 +1,14 @@
-*- text -*-
+* Add -z globalaudit command line option to force audit libraries to be run
+ for every dynamic object loaded by an executable - provided that the loader
+ supports this functionality.
+
+* Tighten linker script grammar around file name specifiers to prevent the use
+ of SORT_BY_ALIGNMENT and SORT_BY_INIT_PRIORITY on filenames. These would
+ previously be accepted but had no effect.
+
+* The EXCLUDE_FILE directive can now be placed within any SORT_* directive
+ within input section lists.
Changes in 2.29:
diff --git a/ld/config.in b/ld/config.in
index 5d91380..a846743 100644
--- a/ld/config.in
+++ b/ld/config.in
@@ -7,6 +7,12 @@
#endif
#define __CONFIG_H__ 1
+/* Define to 1 if you want to emit gnu hash in the ELF linker by default. */
+#undef DEFAULT_EMIT_GNU_HASH
+
+/* Define to 1 if you want to emit sysv hash in the ELF linker by default. */
+#undef DEFAULT_EMIT_SYSV_HASH
+
/* Define if you want compressed debug sections by default. */
#undef DEFAULT_FLAG_COMPRESS_DEBUG
diff --git a/ld/configure b/ld/configure
index 6f4b203..eb6c237 100755
--- a/ld/configure
+++ b/ld/configure
@@ -790,6 +790,7 @@ enable_got
enable_compressed_debug_sections
enable_new_dtags
enable_relro
+enable_default_hash_style
enable_werror
enable_build_warnings
enable_nls
@@ -1450,6 +1451,8 @@ Optional Features:
compress debug sections by default]
--enable-new-dtags set DT_RUNPATH instead of DT_RPATH by default]
--enable-relro enable -z relro in ELF linker by default
+ --enable-default-hash-style={sysv,gnu,both}
+ use this default hash style
--enable-werror treat compile warnings as errors
--enable-build-warnings enable build-time compiler warnings
--disable-nls do not use Native Language Support
@@ -11722,7 +11725,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11725 "configure"
+#line 11728 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11828,7 +11831,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11831 "configure"
+#line 11834 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15564,6 +15567,34 @@ if test "${enable_relro+set}" = set; then :
esac
fi
+# Decide which "--hash-style" to use by default
+# Provide a configure time option to override our default.
+# Check whether --enable-default-hash-style was given.
+if test "${enable_default_hash_style+set}" = set; then :
+ enableval=$enable_default_hash_style; case "${enable_default_hash_style}" in
+ sysv | gnu | both) ;;
+ *) as_fn_error "bad value ${enable_default_hash_style} for enable-default-hash-style option" "$LINENO" 5 ;;
+esac
+else
+ case "${target}" in
+ # Enable gnu hash only on GNU targets, but not mips
+ mips*-*-*) enable_default_hash_style=sysv ;;
+ *-*-gnu* | *-*-linux* | *-*-nacl*) enable_default_hash_style=both ;;
+ *) enable_default_hash_style=sysv ;;
+esac
+fi
+
+
+case "${enable_default_hash_style}" in
+ sysv | both) ac_default_emit_sysv_hash=1 ;;
+ *) ac_default_emit_sysv_hash=0 ;;
+esac
+
+case "${enable_default_hash_style}" in
+ gnu | both) ac_default_emit_gnu_hash=1 ;;
+ *) ac_default_emit_gnu_hash=0 ;;
+esac
+
# Set the 'development' global.
. $srcdir/../bfd/development.sh
@@ -15766,7 +15797,7 @@ fi
# host-specific stuff:
-ALL_LINGUAS="fr sv tr es da vi zh_CN zh_TW ga fi id bg it uk sr"
+ALL_LINGUAS="bg da de es fi fr ga id it ru sr sv tr uk vi zh_CN zh_TW pt_BR"
# If we haven't got the data from the intl directory,
# assume NLS is disabled.
USE_NLS=no
@@ -17228,6 +17259,18 @@ _ACEOF
+cat >>confdefs.h <<_ACEOF
+#define DEFAULT_EMIT_SYSV_HASH $ac_default_emit_sysv_hash
+_ACEOF
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define DEFAULT_EMIT_GNU_HASH $ac_default_emit_gnu_hash
+_ACEOF
+
+
+
@@ -17255,7 +17298,7 @@ EMULATION_LIBPATH=$all_libpath
if test x${enable_static} = xno; then
- TESTBFDLIB="--rpath ../bfd/.libs ../bfd/.libs/libbfd.so"
+ TESTBFDLIB="-Wl,--rpath,../bfd/.libs ../bfd/.libs/libbfd.so"
else
TESTBFDLIB="../bfd/.libs/libbfd.a"
fi
diff --git a/ld/configure.ac b/ld/configure.ac
index 4e2dc86..02b23e1 100644
--- a/ld/configure.ac
+++ b/ld/configure.ac
@@ -177,6 +177,32 @@ AC_ARG_ENABLE(relro,
no) ac_default_ld_z_relro=0 ;;
esac])dnl
+# Decide which "--hash-style" to use by default
+# Provide a configure time option to override our default.
+AC_ARG_ENABLE([default-hash-style],
+AS_HELP_STRING([--enable-default-hash-style={sysv,gnu,both}],
+ [use this default hash style]),
+[case "${enable_default_hash_style}" in
+ sysv | gnu | both) ;;
+ *) AC_MSG_ERROR([bad value ${enable_default_hash_style} for enable-default-hash-style option]) ;;
+esac],
+[case "${target}" in
+ # Enable gnu hash only on GNU targets, but not mips
+ mips*-*-*) enable_default_hash_style=sysv ;;
+ *-*-gnu* | *-*-linux* | *-*-nacl*) enable_default_hash_style=both ;;
+ *) enable_default_hash_style=sysv ;;
+esac])
+
+case "${enable_default_hash_style}" in
+ sysv | both) ac_default_emit_sysv_hash=1 ;;
+ *) ac_default_emit_sysv_hash=0 ;;
+esac
+
+case "${enable_default_hash_style}" in
+ gnu | both) ac_default_emit_gnu_hash=1 ;;
+ *) ac_default_emit_gnu_hash=0 ;;
+esac
+
AM_BINUTILS_WARNINGS
AM_LC_MESSAGES
@@ -201,7 +227,7 @@ fi
# host-specific stuff:
-ALL_LINGUAS="fr sv tr es da vi zh_CN zh_TW ga fi id bg it uk sr"
+ALL_LINGUAS="bg da de es fi fr ga id it ru sr sv tr uk vi zh_CN zh_TW pt_BR"
ZW_GNU_GETTEXT_SISTER_DIR
AM_PO_SUBDIRS
@@ -408,6 +434,14 @@ AC_DEFINE_UNQUOTED(DEFAULT_LD_Z_RELRO,
$ac_default_ld_z_relro,
[Define to 1 if you want to enable -z relro in ELF linker by default.])
+AC_DEFINE_UNQUOTED([DEFAULT_EMIT_SYSV_HASH],
+ [$ac_default_emit_sysv_hash],
+ [Define to 1 if you want to emit sysv hash in the ELF linker by default.])
+
+AC_DEFINE_UNQUOTED([DEFAULT_EMIT_GNU_HASH],
+ [$ac_default_emit_gnu_hash],
+ [Define to 1 if you want to emit gnu hash in the ELF linker by default.])
+
AC_SUBST(elf_list_options)
AC_SUBST(elf_shlib_list_options)
AC_SUBST(elf_plt_unwind_list_options)
@@ -436,7 +470,7 @@ EMULATION_LIBPATH=$all_libpath
AC_SUBST(EMULATION_LIBPATH)
if test x${enable_static} = xno; then
- TESTBFDLIB="--rpath ../bfd/.libs ../bfd/.libs/libbfd.so"
+ TESTBFDLIB="-Wl,--rpath,../bfd/.libs ../bfd/.libs/libbfd.so"
else
TESTBFDLIB="../bfd/.libs/libbfd.a"
fi
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 47c719c..3193844 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -504,6 +504,12 @@ mips*el-*-netbsd*) targ_emul=elf32ltsmip
mips*-*-netbsd*) targ_emul=elf32btsmip
targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip"
;;
+mips64el-*-openbsd*) targ_emul=elf64ltsmip
+ targ_extra_emuls=elf64btsmip
+ ;;
+mips64-*-openbsd*) targ_emul=elf64btsmip
+ targ_extra_emuls=elf64ltsmip
+ ;;
mips*vr4300el-*-elf*) targ_emul=elf32l4300 ;;
mips*vr4300-*-elf*) targ_emul=elf32b4300 ;;
mips*vr4100el-*-elf*) targ_emul=elf32l4300 ;;
diff --git a/ld/emulparams/arcelf.sh b/ld/emulparams/arcelf.sh
index 9b52e2c..21c5c82 100644
--- a/ld/emulparams/arcelf.sh
+++ b/ld/emulparams/arcelf.sh
@@ -16,6 +16,7 @@ ARCH=arc
MACHINE=
ENTRY=__start
SDATA_START_SYMBOLS='__SDATA_BEGIN__ = . + 0x100;'
+JLI_START_TABLE='__JLI_TABLE__ = .;'
OTHER_SECTIONS="/DISCARD/ : { *(.__arc_profile_*) }"
EMBEDDED=yes
diff --git a/ld/emulparams/arcv2elf.sh b/ld/emulparams/arcv2elf.sh
index e21882b..feedbe8 100644
--- a/ld/emulparams/arcv2elf.sh
+++ b/ld/emulparams/arcv2elf.sh
@@ -22,5 +22,6 @@ LITTLE_OUTPUT_FORMAT="elf32-littlearc"
BIG_OUTPUT_FORMAT="elf32-bigarc"
TEXT_START_ADDR=0x100
ENTRY=__start
-SDATA_START_SYMBOLS='__SDATA_BEGIN__ = .;'
+SDATA_START_SYMBOLS='__SDATA_BEGIN__ = . + 0x100;'
+JLI_START_TABLE='__JLI_TABLE__ = .;'
OTHER_SECTIONS="/DISCARD/ : { *(.__arc_profile_*) }"
diff --git a/ld/emulparams/arcv2elfx.sh b/ld/emulparams/arcv2elfx.sh
index 7a4f284..8a56509 100644
--- a/ld/emulparams/arcv2elfx.sh
+++ b/ld/emulparams/arcv2elfx.sh
@@ -18,6 +18,7 @@ LITTLE_OUTPUT_FORMAT="elf32-littlearc"
BIG_OUTPUT_FORMAT="elf32-bigarc"
TEXT_START_ADDR=0x100
ENTRY=__start
-SDATA_START_SYMBOLS='__SDATA_BEGIN__ = .;'
+SDATA_START_SYMBOLS='__SDATA_BEGIN__ = . + 0x100;'
+JLI_START_TABLE='__JLI_TABLE__ = .;'
OTHER_SECTIONS="/DISCARD/ : { *(.__arc_profile_*) }"
EMBEDDED=yes
diff --git a/ld/emultempl/avrelf.em b/ld/emultempl/avrelf.em
index 2072124..acb478f 100644
--- a/ld/emultempl/avrelf.em
+++ b/ld/emultempl/avrelf.em
@@ -71,6 +71,12 @@ avr_elf_${EMULATION_NAME}_before_allocation (void)
gld${EMULATION_NAME}_before_allocation ();
+ if (bfd_get_flavour (link_info.output_bfd) != bfd_target_elf_flavour)
+ {
+ avr_no_stubs = TRUE;
+ return;
+ }
+
/* We only need stubs for avr6, avrxmega6, and avrxmega7. */
if (strcmp ("${EMULATION_NAME}","avr6")
&& strcmp ("${EMULATION_NAME}","avrxmega6")
@@ -108,6 +114,12 @@ avr_elf_create_output_section_statements (void)
{
flagword flags;
+ if (bfd_get_flavour (link_info.output_bfd) != bfd_target_elf_flavour)
+ {
+ einfo ("%X%P: changing output format whilst linking is not supported\n");
+ return;
+ }
+
stub_file = lang_add_input_file ("linker stubs",
lang_input_file_is_fake_enum,
NULL);
@@ -204,10 +216,14 @@ avr_finish (void)
}
abfd = link_info.output_bfd;
- if (avr_link_relax)
- elf_elfheader (abfd)->e_flags |= EF_AVR_LINKRELAX_PREPARED;
- else
- elf_elfheader (abfd)->e_flags &= ~EF_AVR_LINKRELAX_PREPARED;
+
+ if (bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour)
+ {
+ if (avr_link_relax)
+ elf_elfheader (abfd)->e_flags |= EF_AVR_LINKRELAX_PREPARED;
+ else
+ elf_elfheader (abfd)->e_flags &= ~EF_AVR_LINKRELAX_PREPARED;
+ }
finish_default ();
}
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
index d2551b6..748f56b 100644
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -2008,6 +2008,29 @@ output_rel_find (asection *sec, int isdyn)
return last;
}
+/* Return whether IN is suitable to be part of OUT. */
+
+static bfd_boolean
+elf_orphan_compatible (asection *in, asection *out)
+{
+ /* Non-zero sh_info implies a section with SHF_INFO_LINK with
+ unknown semantics for the generic linker, or a SHT_REL/SHT_RELA
+ section where sh_info specifies a symbol table. (We won't see
+ SHT_GROUP, SHT_SYMTAB or SHT_DYNSYM sections here.) We clearly
+ can't merge SHT_REL/SHT_RELA using differing symbol tables, and
+ shouldn't merge sections with differing unknown semantics. */
+ if (elf_section_data (out)->this_hdr.sh_info
+ != elf_section_data (in)->this_hdr.sh_info)
+ return FALSE;
+ /* We can't merge two sections with differing SHF_EXCLUDE when doing
+ a relocatable link. */
+ if (bfd_link_relocatable (&link_info)
+ && ((elf_section_flags (out) ^ elf_section_flags (in)) & SHF_EXCLUDE) != 0)
+ return FALSE;
+ return _bfd_elf_match_sections_by_type (link_info.output_bfd, out,
+ in->owner, in);
+}
+
/* Place an orphan section. We use this to put random SHF_ALLOC
sections in the right segment. */
@@ -2064,8 +2087,9 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
lang_output_section_statement_type *os;
lang_output_section_statement_type *match_by_name = NULL;
int isdyn = 0;
- int iself = s->owner->xvec->flavour == bfd_target_elf_flavour;
- unsigned int sh_type = iself ? elf_section_type (s) : SHT_NULL;
+ int elfinput = s->owner->xvec->flavour == bfd_target_elf_flavour;
+ int elfoutput = link_info.output_bfd->xvec->flavour == bfd_target_elf_flavour;
+ unsigned int sh_type = elfinput ? elf_section_type (s) : SHT_NULL;
flagword flags;
asection *nexts;
@@ -2073,7 +2097,7 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
&& link_info.combreloc
&& (s->flags & SEC_ALLOC))
{
- if (iself)
+ if (elfinput)
switch (sh_type)
{
case SHT_RELA:
@@ -2095,6 +2119,8 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
}
if (!bfd_link_relocatable (&link_info)
+ && elfinput
+ && elfoutput
&& (s->flags & SEC_ALLOC) != 0
&& (elf_section_flags (s) & SHF_GNU_MBIND) != 0)
{
@@ -2135,7 +2161,10 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
secname = ".mbind.text";
}
- /* Look through the script to see where to place this section. */
+ /* Look through the script to see where to place this section. The
+ script includes entries added by previous lang_insert_orphan
+ calls, so this loop puts multiple compatible orphans of the same
+ name into a single output section. */
if (constraint == 0)
for (os = lang_output_section_find (secname);
os != NULL;
@@ -2145,29 +2174,19 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
lang_insert_orphan to create a new output section. */
constraint = SPECIAL;
- /* SEC_EXCLUDE is cleared when doing a relocatable link. But
- we can't merge 2 input sections with the same name when only
- one of them has SHF_EXCLUDE. Don't merge 2 sections with
- different sh_info. */
+ /* Check to see if we already have an output section statement
+ with this name, and its bfd section has compatible flags.
+ If the section already exists but does not have any flags
+ set, then it has been created by the linker, possibly as a
+ result of a --section-start command line switch. */
if (os->bfd_section != NULL
- && (elf_section_data (os->bfd_section)->this_hdr.sh_info
- == elf_section_data (s)->this_hdr.sh_info)
&& (os->bfd_section->flags == 0
- || ((!bfd_link_relocatable (&link_info)
- || (iself && (((elf_section_flags (s)
- ^ elf_section_flags (os->bfd_section))
- & SHF_EXCLUDE) == 0)))
- && ((s->flags ^ os->bfd_section->flags)
+ || (((s->flags ^ os->bfd_section->flags)
& (SEC_LOAD | SEC_ALLOC)) == 0
- && _bfd_elf_match_sections_by_type (link_info.output_bfd,
- os->bfd_section,
- s->owner, s))))
+ && (!elfinput
+ || !elfoutput
+ || elf_orphan_compatible (s, os->bfd_section)))))
{
- /* We already have an output section statement with this
- name, and its bfd section has compatible flags.
- If the section already exists but does not have any flags
- set, then it has been created by the linker, probably as a
- result of a --section-start command line switch. */
lang_add_section (&os->children, s, NULL, os);
return os;
}
@@ -2243,8 +2262,8 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
else if ((flags & SEC_ALLOC) == 0)
;
else if ((flags & SEC_LOAD) != 0
- && ((iself && sh_type == SHT_NOTE)
- || (!iself && CONST_STRNEQ (secname, ".note"))))
+ && ((elfinput && sh_type == SHT_NOTE)
+ || (!elfinput && CONST_STRNEQ (secname, ".note"))))
place = &hold[orphan_interp];
else if ((flags & (SEC_LOAD | SEC_HAS_CONTENTS | SEC_THREAD_LOCAL)) == 0)
place = &hold[orphan_bss];
@@ -2254,8 +2273,8 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
place = &hold[orphan_tdata];
else if ((flags & SEC_READONLY) == 0)
place = &hold[orphan_data];
- else if (((iself && (sh_type == SHT_RELA || sh_type == SHT_REL))
- || (!iself && CONST_STRNEQ (secname, ".rel")))
+ else if (((elfinput && (sh_type == SHT_RELA || sh_type == SHT_REL))
+ || (!elfinput && CONST_STRNEQ (secname, ".rel")))
&& (flags & SEC_LOAD) != 0)
place = &hold[orphan_rel];
else if ((flags & SEC_CODE) == 0)
@@ -2657,6 +2676,10 @@ fragment <<EOF
link_info.noexecstack = TRUE;
link_info.execstack = FALSE;
}
+ else if (strcmp (optarg, "globalaudit") == 0)
+ {
+ link_info.flags_1 |= DF_1_GLOBAUDIT;
+ }
EOF
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
diff --git a/ld/emultempl/m68hc1xelf.em b/ld/emultempl/m68hc1xelf.em
index bfe88d6..f7337da 100644
--- a/ld/emultempl/m68hc1xelf.em
+++ b/ld/emultempl/m68hc1xelf.em
@@ -66,6 +66,9 @@ m68hc11_elf_${EMULATION_NAME}_before_allocation (void)
gld${EMULATION_NAME}_before_allocation ();
+ if (bfd_get_flavour (link_info.output_bfd) != bfd_target_elf_flavour)
+ return;
+
/* If generating a relocatable output file, then we don't
have to generate the trampolines. */
if (bfd_link_relocatable (&link_info))
@@ -141,6 +144,12 @@ m68hc11_elf_${EMULATION_NAME}_before_allocation (void)
static void
m68hc11elf_create_output_section_statements (void)
{
+ if (bfd_get_flavour (link_info.output_bfd) != bfd_target_elf_flavour)
+ {
+ einfo ("%X%P: changing output format whilst linking is not supported\n");
+ return;
+ }
+
stub_file = lang_add_input_file ("linker stubs",
lang_input_file_is_fake_enum,
NULL);
@@ -286,22 +295,25 @@ m68hc11elf_add_stub_section (const char *stub_sec_name,
static void
m68hc11elf_after_allocation (void)
{
- /* Now build the linker stubs. */
- if (stub_file->the_bfd->sections != NULL)
+ if (bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour)
{
- /* Call again the trampoline analyzer to initialize the trampoline
- stubs with the correct symbol addresses. Since there could have
- been relaxation, the symbol addresses that were found during
- first call may no longer be correct. */
- if (!elf32_m68hc11_size_stubs (link_info.output_bfd,
- stub_file->the_bfd,
- &link_info, 0))
+ /* Now build the linker stubs. */
+ if (stub_file->the_bfd->sections != NULL)
{
- einfo ("%X%P: can not size stub section: %E\n");
- return;
+ /* Call again the trampoline analyzer to initialize the trampoline
+ stubs with the correct symbol addresses. Since there could have
+ been relaxation, the symbol addresses that were found during
+ first call may no longer be correct. */
+ if (!elf32_m68hc11_size_stubs (link_info.output_bfd,
+ stub_file->the_bfd,
+ &link_info, 0))
+ {
+ einfo ("%X%P: can not size stub section: %E\n");
+ return;
+ }
+ if (!elf32_m68hc11_build_stubs (link_info.output_bfd, &link_info))
+ einfo ("%X%P: can not build stubs: %E\n");
}
- if (!elf32_m68hc11_build_stubs (link_info.output_bfd, &link_info))
- einfo ("%X%P: can not build stubs: %E\n");
}
gld${EMULATION_NAME}_after_allocation ();
diff --git a/ld/emultempl/mipself.em b/ld/emultempl/mipself.em
index cd68707..d541fef 100644
--- a/ld/emultempl/mipself.em
+++ b/ld/emultempl/mipself.em
@@ -214,13 +214,16 @@ mips_create_output_section_statements (void)
static void
mips_before_allocation (void)
{
- flagword flags;
+ if (is_mips_elf (link_info.output_bfd))
+ {
+ flagword flags;
- flags = elf_elfheader (link_info.output_bfd)->e_flags;
- if (!bfd_link_pic (&link_info)
- && !link_info.nocopyreloc
- && (flags & (EF_MIPS_PIC | EF_MIPS_CPIC)) == EF_MIPS_CPIC)
- _bfd_mips_elf_use_plts_and_copy_relocs (&link_info);
+ flags = elf_elfheader (link_info.output_bfd)->e_flags;
+ if (!bfd_link_pic (&link_info)
+ && !link_info.nocopyreloc
+ && (flags & (EF_MIPS_PIC | EF_MIPS_CPIC)) == EF_MIPS_CPIC)
+ _bfd_mips_elf_use_plts_and_copy_relocs (&link_info);
+ }
gld${EMULATION_NAME}_before_allocation ();
}
diff --git a/ld/emultempl/msp430.em b/ld/emultempl/msp430.em
index 949fea0..a956a2f 100644
--- a/ld/emultempl/msp430.em
+++ b/ld/emultempl/msp430.em
@@ -32,6 +32,7 @@ fragment <<EOF
#include "bfdlink.h"
#include "ld.h"
+#include "getopt.h"
#include "ldmain.h"
#include "ldmisc.h"
#include "ldexp.h"
@@ -39,6 +40,29 @@ fragment <<EOF
#include "ldfile.h"
#include "ldemul.h"
#include "libiberty.h"
+#include <ldgram.h>
+
+enum regions
+{
+ REGION_NONE = 0,
+ REGION_LOWER,
+ REGION_UPPER,
+ REGION_EITHER = 3,
+};
+
+enum either_placement_stage
+{
+ LOWER_TO_UPPER,
+ UPPER_TO_LOWER,
+};
+
+enum { ROM, RAM };
+
+static int data_region = REGION_NONE;
+static int code_region = REGION_NONE;
+static bfd_boolean disable_sec_transformation = FALSE;
+
+#define MAX_PREFIX_LENGTH 7
EOF
@@ -124,6 +148,32 @@ fi
if test x"$LDEMUL_PLACE_ORPHAN" != xgld"$EMULATION_NAME"_place_orphan; then
fragment <<EOF
+static unsigned int
+data_statement_size (lang_data_statement_type *d)
+{
+ unsigned int size = 0;
+ switch (d->type)
+ {
+ case QUAD:
+ case SQUAD:
+ size = QUAD_SIZE;
+ break;
+ case LONG:
+ size = LONG_SIZE;
+ break;
+ case SHORT:
+ size = SHORT_SIZE;
+ break;
+ case BYTE:
+ size = BYTE_SIZE;
+ break;
+ default:
+ einfo ("%P: error: unhandled data_statement size\n");
+ FAIL ();
+ }
+ return size;
+}
+
/* Helper function for place_orphan that computes the size
of sections already mapped to the given statement. */
@@ -143,12 +193,17 @@ scan_children (lang_statement_union_type * l)
case lang_constructors_statement_enum:
case lang_assignment_statement_enum:
+ case lang_padding_statement_enum:
break;
case lang_wild_statement_enum:
amount += scan_children (l->wild_statement.children.head);
break;
+ case lang_data_statement_enum:
+ amount += data_statement_size (&l->data_statement);
+ break;
+
default:
fprintf (stderr, "msp430 orphan placer: unhandled lang type %d\n", l->header.type);
break;
@@ -174,7 +229,6 @@ gld${EMULATION_NAME}_place_orphan (asection * s,
char * buf = NULL;
lang_output_section_statement_type * lower;
lang_output_section_statement_type * upper;
- lang_output_section_statement_type * os;
if ((s->flags & SEC_ALLOC) == 0)
return NULL;
@@ -211,62 +265,571 @@ gld${EMULATION_NAME}_place_orphan (asection * s,
/* Find the corresponding lower and upper sections. */
lower = lang_output_section_find (lower_name);
upper = lang_output_section_find (upper_name);
- /* If the upper section does not exist, try again without the suffix. */
- if (upper == NULL)
- upper = lang_output_section_find (name);
- if (lower == NULL)
+ if (lower == NULL && upper == NULL)
+ {
+ einfo ("%P: error: no section named %s or %s in linker script\n",
+ lower_name, upper_name);
+ goto end;
+ }
+ else if (lower == NULL)
{
- os = upper;
- if (upper == NULL)
- {
- einfo ("%P: error: no section named %s or %s in linker script\n", lower_name, upper_name);
+ lower = lang_output_section_find (name);
+ if (lower == NULL)
+ {
+ einfo ("%P: error: no section named %s in linker script\n", name);
goto end;
}
}
- else if (upper == NULL)
- os = lower;
- else if (lower->region == NULL)
- os = lower;
- /* If the section is too big for the region containing
- the lower section then do not even try to use it. */
- else if (lower->region->length < s->size)
- os = upper;
+
+ /* Always place orphaned sections in lower. Optimal placement of either
+ sections is performed later, once section sizes have been finalized. */
+ lang_add_section (& lower->children, s, NULL, lower);
+ end:
+ free (upper_name);
+ free (lower_name);
+ if (buf)
+ free (buf);
+ return lower;
+}
+EOF
+fi
+
+fragment <<EOF
+
+static bfd_boolean
+change_output_section (lang_statement_union_type ** head,
+ asection *s,
+ lang_output_section_statement_type * new_output_section)
+{
+ asection *is;
+ lang_statement_union_type * prev = NULL;
+ lang_statement_union_type * curr;
+
+ curr = *head;
+ while (curr != NULL)
+ {
+ switch (curr->header.type)
+ {
+ case lang_input_section_enum:
+ is = curr->input_section.section;
+ if (is == s)
+ {
+ s->output_section = NULL;
+ lang_add_section (& (new_output_section->children), s, NULL,
+ new_output_section);
+ /* Remove the section from the old output section. */
+ if (prev == NULL)
+ *head = curr->header.next;
+ else
+ prev->header.next = curr->header.next;
+ return TRUE;
+ }
+ break;
+ case lang_wild_statement_enum:
+ if (change_output_section (&(curr->wild_statement.children.head),
+ s, new_output_section))
+ return TRUE;
+ break;
+ default:
+ break;
+ }
+ prev = curr;
+ curr = curr->header.next;
+ }
+ return FALSE;
+}
+
+static void
+move_prefixed_section (asection *s, char *new_name,
+ lang_output_section_statement_type * new_output_sec)
+{
+ s->name = new_name;
+ if (s->output_section == NULL)
+ lang_add_section (& (new_output_sec->children), s, NULL, new_output_sec);
else
{
- bfd_size_type amount = 0;
- struct lang_output_section_statement_struct * p;
+ lang_output_section_statement_type * curr_output_sec
+ = lang_output_section_find (s->output_section->name);
+ change_output_section (&(curr_output_sec->children.head), s,
+ new_output_sec);
+ }
+}
+
+static void
+add_region_prefix (bfd *abfd, asection *s,
+ ATTRIBUTE_UNUSED void *unused)
+{
+ const char *curr_name = bfd_get_section_name (abfd, s);
+ char * base_name;
+ char * new_input_sec_name = NULL;
+ char * new_output_sec_name = NULL;
+ int region = REGION_NONE;
+
+ if (strncmp (curr_name, ".text", 5) == 0)
+ {
+ region = code_region;
+ base_name = concat (".text", NULL);
+ }
+ else if (strncmp (curr_name, ".data", 5) == 0)
+ {
+ region = data_region;
+ base_name = concat (".data", NULL);
+ }
+ else if (strncmp (curr_name, ".bss", 4) == 0)
+ {
+ region = data_region;
+ base_name = concat (".bss", NULL);
+ }
+ else if (strncmp (curr_name, ".rodata", 7) == 0)
+ {
+ region = data_region;
+ base_name = concat (".rodata", NULL);
+ }
+ else
+ return;
+
+ switch (region)
+ {
+ case REGION_NONE:
+ break;
+ case REGION_UPPER:
+ new_input_sec_name = concat (".upper", curr_name, NULL);
+ new_output_sec_name = concat (".upper", base_name, NULL);
+ lang_output_section_statement_type * upper
+ = lang_output_section_find (new_output_sec_name);
+ if (upper != NULL)
+ {
+ move_prefixed_section (s, new_input_sec_name, upper);
+ }
+ else
+ einfo ("%P: error: no section named %s in linker script\n",
+ new_output_sec_name);
+ break;
+ case REGION_LOWER:
+ new_input_sec_name = concat (".lower", curr_name, NULL);
+ new_output_sec_name = concat (".lower", base_name, NULL);
+ lang_output_section_statement_type * lower
+ = lang_output_section_find (new_output_sec_name);
+ if (lower != NULL)
+ {
+ move_prefixed_section (s, new_input_sec_name, lower);
+ }
+ else
+ einfo ("%P: error: no section named %s in linker script\n",
+ new_output_sec_name);
+ break;
+ case REGION_EITHER:
+ s->name = concat (".either", curr_name, NULL);
+ break;
+ default:
+ /* Unreachable. */
+ FAIL ();
+ break;
+ }
+ free (base_name);
+ if (new_input_sec_name)
+ {
+ free (new_input_sec_name);
+ free (new_output_sec_name);
+ }
+}
+
+static void
+msp430_elf_after_open (void)
+{
+ bfd *abfd;
+
+ gld${EMULATION_NAME}_after_open ();
- amount += scan_children (lower->children.head);
+ /* If neither --code-region or --data-region have been passed, do not
+ transform sections names. */
+ if ((code_region == REGION_NONE && data_region == REGION_NONE)
+ || disable_sec_transformation)
+ return;
+
+ for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link.next)
+ bfd_map_over_sections (abfd, add_region_prefix, NULL);
+}
+
+#define OPTION_CODE_REGION 321
+#define OPTION_DATA_REGION (OPTION_CODE_REGION + 1)
+#define OPTION_DISABLE_TRANS (OPTION_CODE_REGION + 2)
+
+static void
+gld${EMULATION_NAME}_add_options
+ (int ns, char **shortopts, int nl, struct option **longopts,
+ int nrl ATTRIBUTE_UNUSED, struct option **really_longopts ATTRIBUTE_UNUSED)
+{
+ static const char xtra_short[] = { };
- /* Also check forwards for other statements assigned to the same region. */
- for (p = lower->next; p != NULL; p = p->next)
- if (p->region == lower->region)
- amount += scan_children (p->children.head);
+ static const struct option xtra_long[] =
+ {
+ { "code-region", required_argument, NULL, OPTION_CODE_REGION },
+ { "data-region", required_argument, NULL, OPTION_DATA_REGION },
+ { "disable-sec-transformation", no_argument, NULL,
+ OPTION_DISABLE_TRANS },
+ { NULL, no_argument, NULL, 0 }
+ };
+
+ *shortopts = (char *) xrealloc (*shortopts, ns + sizeof (xtra_short));
+ memcpy (*shortopts + ns, &xtra_short, sizeof (xtra_short));
+ *longopts = (struct option *)
+ xrealloc (*longopts, nl * sizeof (struct option) + sizeof (xtra_long));
+ memcpy (*longopts + nl, &xtra_long, sizeof (xtra_long));
+}
- /* Scan backwards as well. */
- for (p = lower->prev; p != NULL; p = p->prev)
- if (p->region == lower->region)
- amount += scan_children (p->children.head);
+static void
+gld${EMULATION_NAME}_list_options (FILE * file)
+{
+ fprintf (file, _("\
+ --code-region={either,lower,upper,none}\n\
+ \tTransform .text* sections to {either,lower,upper,none}.text* sections.\n\
+ --data-region={either,lower,upper,none}\n\
+ \tTransform .data*, .rodata* and .bss* sections to\n\
+ {either,lower,upper,none}.{bss,data,rodata}* sections\n\
+ --disable-sec-transformation\n\
+ \tDisable transformation of .{text,data,bss,rodata}* sections to\n\
+ \tadd the {either,lower,upper,none} prefixes\n"));
+}
- if (amount + s->size >= lower->region->length)
- os = upper;
+static bfd_boolean
+gld${EMULATION_NAME}_handle_option (int optc)
+{
+ switch (optc)
+ {
+ case OPTION_CODE_REGION:
+ if (strcmp (optarg, "upper") == 0)
+ code_region = REGION_UPPER;
+ else if (strcmp (optarg, "lower") == 0)
+ code_region = REGION_LOWER;
+ else if (strcmp (optarg, "either") == 0)
+ code_region = REGION_EITHER;
+ else if (strcmp (optarg, "none") == 0)
+ code_region = REGION_NONE;
+ else if (strlen (optarg) == 0)
+ {
+ einfo (_("%P: --code-region requires an argument: \
+ {upper,lower,either,none}\n"));
+ return FALSE;
+ }
+ else
+ {
+ einfo (_("%P: error: unrecognized argument to --code-region= option: \
+ \"%s\"\n"), optarg);
+ return FALSE;
+ }
+ break;
+
+ case OPTION_DATA_REGION:
+ if (strcmp (optarg, "upper") == 0)
+ data_region = REGION_UPPER;
+ else if (strcmp (optarg, "lower") == 0)
+ data_region = REGION_LOWER;
+ else if (strcmp (optarg, "either") == 0)
+ data_region = REGION_EITHER;
+ else if (strcmp (optarg, "none") == 0)
+ data_region = REGION_NONE;
+ else if (strlen (optarg) == 0)
+ {
+ einfo (_("%P: --data-region requires an argument: \
+ {upper,lower,either,none}\n"));
+ return FALSE;
+ }
else
- os = lower;
+ {
+ einfo (_("%P: error: unrecognized argument to --data-region= option: \
+ \"%s\"\n"), optarg);
+ return FALSE;
+ }
+ break;
+
+ case OPTION_DISABLE_TRANS:
+ disable_sec_transformation = TRUE;
+ break;
+
+ default:
+ return FALSE;
}
+ return TRUE;
+}
+
+static void
+eval_upper_either_sections (bfd *abfd, asection *s, void *data)
+{
+ const char * base_sec_name;
+ const char * curr_name;
+ char * either_name;
+ int curr_region;
+
+ lang_output_section_statement_type * lower;
+ lang_output_section_statement_type * upper;
+ static bfd_size_type *lower_size = 0;
+ static bfd_size_type *upper_size = 0;
+ static bfd_size_type lower_size_rom = 0;
+ static bfd_size_type lower_size_ram = 0;
+ static bfd_size_type upper_size_rom = 0;
+ static bfd_size_type upper_size_ram = 0;
- lang_add_section (& os->children, s, NULL, os);
+ if ((s->flags & SEC_ALLOC) == 0)
+ return;
+ if (bfd_link_relocatable (&link_info))
+ return;
+
+ base_sec_name = (const char *) data;
+ curr_name = bfd_get_section_name (abfd, s);
+
+ /* Only concerned with .either input sections in the upper output section. */
+ either_name = concat (".either", base_sec_name, NULL);
+ if (strncmp (curr_name, either_name, strlen (either_name)) != 0
+ || strncmp (s->output_section->name, ".upper", 6) != 0)
+ goto end;
+
+ lower = lang_output_section_find (concat (".lower", base_sec_name, NULL));
+ upper = lang_output_section_find (concat (".upper", base_sec_name, NULL));
+
+ if (upper == NULL || upper->region == NULL)
+ goto end;
+ else if (lower == NULL)
+ lower = lang_output_section_find (base_sec_name);
+ if (lower == NULL || lower->region == NULL)
+ goto end;
+
+ if (strcmp (base_sec_name, ".text") == 0
+ || strcmp (base_sec_name, ".rodata") == 0)
+ curr_region = ROM;
+ else
+ curr_region = RAM;
+
+ if (curr_region == ROM)
+ {
+ if (lower_size_rom == 0)
+ {
+ lower_size_rom = lower->region->current - lower->region->origin;
+ upper_size_rom = upper->region->current - upper->region->origin;
+ }
+ lower_size = &lower_size_rom;
+ upper_size = &upper_size_rom;
+ }
+ else if (curr_region == RAM)
+ {
+ if (lower_size_ram == 0)
+ {
+ lower_size_ram = lower->region->current - lower->region->origin;
+ upper_size_ram = upper->region->current - upper->region->origin;
+ }
+ lower_size = &lower_size_ram;
+ upper_size = &upper_size_ram;
+ }
+
+ /* Move sections in the upper region that would fit in the lower
+ region to the lower region. */
+ if (*lower_size + s->size < lower->region->length)
+ {
+ if (change_output_section (&(upper->children.head), s, lower))
+ {
+ *upper_size -= s->size;
+ *lower_size += s->size;
+ }
+ }
end:
- free (upper_name);
- free (lower_name);
- if (buf)
- free (buf);
- return os;
+ free (either_name);
}
-EOF
-fi
-fragment <<EOF
+static void
+eval_lower_either_sections (bfd *abfd, asection *s, void *data)
+{
+ const char * base_sec_name;
+ const char * curr_name;
+ char * either_name;
+ int curr_region;
+ lang_output_section_statement_type * output_sec;
+ lang_output_section_statement_type * lower;
+ lang_output_section_statement_type * upper;
+
+ static bfd_size_type *lower_size = 0;
+ static bfd_size_type lower_size_rom = 0;
+ static bfd_size_type lower_size_ram = 0;
+
+ if ((s->flags & SEC_ALLOC) == 0)
+ return;
+ if (bfd_link_relocatable (&link_info))
+ return;
+
+ base_sec_name = (const char *) data;
+ curr_name = bfd_get_section_name (abfd, s);
+
+ /* Only concerned with .either input sections in the lower or "default"
+ output section i.e. not in the upper output section. */
+ either_name = concat (".either", base_sec_name, NULL);
+ if (strncmp (curr_name, either_name, strlen (either_name)) != 0
+ || strncmp (s->output_section->name, ".upper", 6) == 0)
+ return;
+
+ if (strcmp (base_sec_name, ".text") == 0
+ || strcmp (base_sec_name, ".rodata") == 0)
+ curr_region = ROM;
+ else
+ curr_region = RAM;
+
+ output_sec = lang_output_section_find (s->output_section->name);
+
+ /* If the output_section doesn't exist, this has already been reported in
+ place_orphan, so don't need to warn again. */
+ if (output_sec == NULL || output_sec->region == NULL)
+ goto end;
+
+ /* lower and output_sec might be the same, but in some cases an .either
+ section can end up in base_sec_name if it hasn't been placed by
+ place_orphan. */
+ lower = lang_output_section_find (concat (".lower", base_sec_name, NULL));
+ upper = lang_output_section_find (concat (".upper", base_sec_name, NULL));
+ if (upper == NULL)
+ goto end;
+
+ if (curr_region == ROM)
+ {
+ if (lower_size_rom == 0)
+ {
+ /* Get the size of other items in the lower region that aren't the
+ sections to be moved around. */
+ lower_size_rom
+ = (output_sec->region->current - output_sec->region->origin)
+ - scan_children (output_sec->children.head);
+ if (output_sec != lower && lower != NULL)
+ lower_size_rom -= scan_children (lower->children.head);
+ }
+ lower_size = &lower_size_rom;
+ }
+ else if (curr_region == RAM)
+ {
+ if (lower_size_ram == 0)
+ {
+ lower_size_ram
+ = (output_sec->region->current - output_sec->region->origin)
+ - scan_children (output_sec->children.head);
+ if (output_sec != lower && lower != NULL)
+ lower_size_ram -= scan_children (lower->children.head);
+ }
+ lower_size = &lower_size_ram;
+ }
+ /* Move sections that cause the lower region to overflow to the upper region. */
+ if (*lower_size + s->size > output_sec->region->length)
+ change_output_section (&(output_sec->children.head), s, upper);
+ else
+ *lower_size += s->size;
+ end:
+ free (either_name);
+}
+
+/* This function is similar to lang_relax_sections, but without the size
+ evaluation code that is always executed after relaxation. */
+static void
+intermediate_relax_sections (void)
+{
+ int i = link_info.relax_pass;
+
+ /* The backend can use it to determine the current pass. */
+ link_info.relax_pass = 0;
+
+ while (i--)
+ {
+ bfd_boolean relax_again;
+
+ link_info.relax_trip = -1;
+ do
+ {
+ link_info.relax_trip++;
+
+ lang_do_assignments (lang_assigning_phase_enum);
+
+ lang_reset_memory_regions ();
+
+ relax_again = FALSE;
+ lang_size_sections (&relax_again, FALSE);
+ }
+ while (relax_again);
+
+ link_info.relax_pass++;
+ }
+}
+
+static void
+msp430_elf_after_allocation (void)
+{
+ int relax_count = 0;
+ unsigned int i;
+ /* Go over each section twice, once to place either sections that don't fit
+ in lower into upper, and then again to move any sections in upper that
+ fit in lower into lower. */
+ for (i = 0; i < 8; i++)
+ {
+ int placement_stage = (i < 4) ? LOWER_TO_UPPER : UPPER_TO_LOWER;
+ const char * base_sec_name;
+ lang_output_section_statement_type * upper;
+
+ switch (i % 4)
+ {
+ default:
+ case 0:
+ base_sec_name = ".text";
+ break;
+ case 1:
+ base_sec_name = ".data";
+ break;
+ case 2:
+ base_sec_name = ".bss";
+ break;
+ case 3:
+ base_sec_name = ".rodata";
+ break;
+ }
+ upper = lang_output_section_find (concat (".upper", base_sec_name, NULL));
+ if (upper != NULL)
+ {
+ /* Can't just use one iteration over the all the sections to make
+ both lower->upper and upper->lower transformations because the
+ iterator encounters upper sections before all lower sections have
+ been examined. */
+ bfd *abfd;
+
+ if (placement_stage == LOWER_TO_UPPER)
+ {
+ /* Perform relaxation and get the final size of sections
+ before trying to fit .either sections in the correct
+ ouput sections. */
+ if (relax_count == 0)
+ {
+ intermediate_relax_sections ();
+ relax_count++;
+ }
+ for (abfd = link_info.input_bfds; abfd != NULL;
+ abfd = abfd->link.next)
+ {
+ bfd_map_over_sections (abfd, eval_lower_either_sections,
+ (void *) base_sec_name);
+ }
+ }
+ else if (placement_stage == UPPER_TO_LOWER)
+ {
+ /* Relax again before moving upper->lower. */
+ if (relax_count == 1)
+ {
+ intermediate_relax_sections ();
+ relax_count++;
+ }
+ for (abfd = link_info.input_bfds; abfd != NULL;
+ abfd = abfd->link.next)
+ {
+ bfd_map_over_sections (abfd, eval_upper_either_sections,
+ (void *) base_sec_name);
+ }
+ }
+
+ }
+ }
+ gld${EMULATION_NAME}_after_allocation ();
+}
struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
{
@@ -274,8 +837,8 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
${LDEMUL_SYSLIB-syslib_default},
${LDEMUL_HLL-hll_default},
${LDEMUL_AFTER_PARSE-after_parse_default},
- ${LDEMUL_AFTER_OPEN-after_open_default},
- ${LDEMUL_AFTER_ALLOCATION-after_allocation_default},
+ msp430_elf_after_open,
+ msp430_elf_after_allocation,
${LDEMUL_SET_OUTPUT_ARCH-set_output_arch_default},
${LDEMUL_CHOOSE_TARGET-ldemul_default_target},
${LDEMUL_BEFORE_ALLOCATION-before_allocation_default},
@@ -288,10 +851,10 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
${LDEMUL_PLACE_ORPHAN-gld${EMULATION_NAME}_place_orphan},
${LDEMUL_SET_SYMBOLS-NULL},
${LDEMUL_PARSE_ARGS-NULL},
- ${LDEMUL_ADD_OPTIONS-NULL},
- ${LDEMUL_HANDLE_OPTION-NULL},
+ gld${EMULATION_NAME}_add_options,
+ gld${EMULATION_NAME}_handle_option,
${LDEMUL_UNRECOGNIZED_FILE-NULL},
- ${LDEMUL_LIST_OPTIONS-NULL},
+ gld${EMULATION_NAME}_list_options,
${LDEMUL_RECOGNIZED_FILE-NULL},
${LDEMUL_FIND_POTENTIAL_LIBRARIES-NULL},
${LDEMUL_NEW_VERS_PATTERN-NULL},
diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em
index 58cb798..cf75957 100644
--- a/ld/emultempl/ppc64elf.em
+++ b/ld/emultempl/ppc64elf.em
@@ -37,7 +37,7 @@ static struct ppc64_elf_params params = { NULL,
&ppc_add_stub_section,
&ppc_layout_sections_again,
1, -1, 0,
- ${DEFAULT_PLT_STATIC_CHAIN-0}, -1, 0,
+ ${DEFAULT_PLT_STATIC_CHAIN-0}, -1, 5,
-1, 0, -1, -1, 0};
/* Fake input file for stubs. */
diff --git a/ld/emultempl/xtensaelf.em b/ld/emultempl/xtensaelf.em
index 1447d52..3827d91 100644
--- a/ld/emultempl/xtensaelf.em
+++ b/ld/emultempl/xtensaelf.em
@@ -1432,7 +1432,7 @@ xtensa_wild_group_interleave_callback (lang_statement_union_type *statement)
struct wildcard_list *l;
for (l = w->section_list; l != NULL; l = l->next)
{
- if (l->spec.sorted != none)
+ if (l->spec.sorted == by_name)
{
no_reorder = TRUE;
break;
diff --git a/ld/ld.h b/ld/ld.h
index 162e156..c6fa124 100644
--- a/ld/ld.h
+++ b/ld/ld.h
@@ -132,9 +132,6 @@ typedef struct
/* 1 => assign space to common symbols even if `relocatable_output'. */
bfd_boolean force_common_definition;
- /* 1 => do not assign addresses to common symbols. */
- bfd_boolean inhibit_common_definition;
-
/* If TRUE, build MIPS embedded PIC relocation tables in the output
file. */
bfd_boolean embedded_relocs;
diff --git a/ld/ld.texinfo b/ld/ld.texinfo
index bb5f719..90a745a 100644
--- a/ld/ld.texinfo
+++ b/ld/ld.texinfo
@@ -1136,6 +1136,14 @@ This option is only meaningful when building a shared object. It makes
the symbols defined by this shared object available for symbol resolution
of subsequently loaded libraries.
+@item globalaudit
+This option is only meaningful when building a dynamic executable.
+This option marks the executable as requiring global auditing by
+setting the @code{DF_1_GLOBAUDIT} bit in the @code{DT_FLAGS_1} dynamic
+tag. Global auditing requires that any auditing library defined via
+the @option{--depaudit} or @option{-P} command line options be run for
+all dynamic objects loaded by the application.
+
@item initfirst
This option is only meaningful when building a shared object.
It marks the object so that its runtime initialization will occur
@@ -7252,6 +7260,29 @@ Denotes a portion of RAM located above @samp{.bss} section.
The last two sections are used by gcc.
@end table
+@table @option
+@cindex MSP430 Options
+@kindex --code-region
+@item --code-region=[either,lower,upper,none]
+This will transform .text* sections to [either,lower,upper].text* sections. The
+argument passed to GCC for -mcode-region is propagated to the linker
+using this option.
+
+@kindex --data-region
+@item --data-region=[either,lower,upper,none]
+This will transform .data*, .bss* and .rodata* sections to
+[either,lower,upper].[data,bss,rodata]* sections. The argument passed to GCC
+for -mdata-region is propagated to the linker using this option.
+
+@kindex --disable-sec-transformation
+@item --disable-sec-transformation
+Prevent the transformation of sections as specified by the @code{--code-region}
+and @code{--data-region} options.
+This is useful if you are compiling and linking using a single call to the GCC
+wrapper, and want to compile the source files using -m[code,data]-region but
+not transform the sections for prebuilt libraries and objects.
+@end table
+
@ifclear GENERIC
@lowersections
@end ifclear
@@ -7572,10 +7603,12 @@ off this feature.
@item --plt-align
@itemx --no-plt-align
Use these options to control whether individual PLT call stubs are
-padded so that they don't cross a 32-byte boundary, or to the
-specified power of two boundary when using @code{--plt-align=}. Note
-that this isn't alignment in the usual sense. By default PLT call
-stubs are packed tightly.
+aligned to a 32-byte boundary, or to the specified power of two
+boundary when using @code{--plt-align=}. A negative value may be
+specified to pad PLT call stubs so that they do not cross the
+specified power of two boundary (or the minimum number of boundaries
+if a PLT stub is so large that it must cross a boundary). By default
+PLT call stubs are aligned to 32-byte boundaries.
@cindex PowerPC64 PLT call stub static chain
@kindex --plt-static-chain
@@ -7600,6 +7633,24 @@ barrier in the call stub, or use LD_BIND_NOW=1. By default, @code{ld}
looks for calls to commonly used functions that create threads, and if
seen, adds the necessary barriers. Use these options to change the
default behaviour.
+
+@cindex PowerPC64 ELFv2 PLT localentry optimization
+@kindex --plt-localentry
+@kindex --no-plt-localentry
+@item --plt-localentry
+@itemx --no-localentry
+ELFv2 functions with localentry:0 are those with a single entry point,
+ie. global entry == local entry, and that have no requirement on r2
+(the TOC/GOT pointer) or r12, and guarantee r2 is unchanged on return.
+Such an external function can be called via the PLT without saving r2
+or restoring it on return, avoiding a common load-hit-store for small
+functions. The optimization is attractive, with up to 40% reduction
+in execution time for a small function, but can result in symbol
+interposition failures. Also, minor changes in a shared library,
+including system libraries, can cause a function that was localentry:0
+to become localentry:8. This will result in a dynamic loader
+complaint and failure to run. The option is experimental, use with
+care. @option{--no-plt-localentry} is the default.
@end table
@ifclear GENERIC
@@ -7888,7 +7939,7 @@ application will behave unexpectedly.
@code{PRIVATE}: Put the symbol in the DLL's export table, but do not put
it into the static import library used to resolve imports at link time. The
symbol can still be imported using the @code{LoadLibrary/GetProcAddress}
-API at runtime or by by using the GNU ld extension of linking directly to
+API at runtime or by using the GNU ld extension of linking directly to
the DLL without an import library.
See ld/deffilep.y in the binutils sources for the full specification of
diff --git a/ld/ldgram.y b/ld/ldgram.y
index 4c1efdc..e2998f1 100644
--- a/ld/ldgram.y
+++ b/ld/ldgram.y
@@ -48,8 +48,8 @@
static enum section_type sectype;
static lang_memory_region_type *region;
-bfd_boolean ldgram_had_keep = FALSE;
-char *ldgram_vers_current_lang = NULL;
+static bfd_boolean ldgram_had_keep = FALSE;
+static char *ldgram_vers_current_lang = NULL;
#define ERROR_NAME_MAX 20
static char *error_names[ERROR_NAME_MAX];
@@ -92,13 +92,13 @@ static int error_index;
%type <etree> opt_exp_without_type opt_subalign opt_align
%type <fill> fill_opt fill_exp
%type <name_list> exclude_name_list
-%type <wildcard_list> section_NAME_list
+%type <wildcard_list> section_name_list
%type <flag_info_list> sect_flag_list
%type <flag_info> sect_flags
%type <name> memspec_opt casesymlist
%type <name> memspec_at_opt
%type <cname> wildcard_name
-%type <wildcard> wildcard_spec
+%type <wildcard> section_name_spec filename_spec wildcard_maybe_exclude
%token <bigint> INT
%token <name> NAME LNAME
%type <integer> length
@@ -339,7 +339,7 @@ ifile_p1:
| FORCE_GROUP_ALLOCATION
{ command_line.force_group_allocation = TRUE ; }
| INHIBIT_COMMON_ALLOCATION
- { command_line.inhibit_common_definition = TRUE ; }
+ { link_info.inhibit_common_definition = TRUE ; }
| INPUT '(' input_list ')'
| GROUP
{ lang_enter_group (); }
@@ -447,7 +447,7 @@ wildcard_name:
}
;
-wildcard_spec:
+wildcard_maybe_exclude:
wildcard_name
{
$$.name = $1;
@@ -462,68 +462,63 @@ wildcard_spec:
$$.exclude_name_list = $3;
$$.section_flag_list = NULL;
}
- | SORT_BY_NAME '(' wildcard_name ')'
+ ;
+
+filename_spec:
+ wildcard_maybe_exclude
+ | SORT_BY_NAME '(' wildcard_maybe_exclude ')'
{
- $$.name = $3;
+ $$ = $3;
$$.sorted = by_name;
- $$.exclude_name_list = NULL;
- $$.section_flag_list = NULL;
}
- | SORT_BY_ALIGNMENT '(' wildcard_name ')'
+ | SORT_NONE '(' wildcard_maybe_exclude ')'
+ {
+ $$ = $3;
+ $$.sorted = by_none;
+ }
+ ;
+
+section_name_spec:
+ wildcard_maybe_exclude
+ | SORT_BY_NAME '(' wildcard_maybe_exclude ')'
{
- $$.name = $3;
+ $$ = $3;
+ $$.sorted = by_name;
+ }
+ | SORT_BY_ALIGNMENT '(' wildcard_maybe_exclude ')'
+ {
+ $$ = $3;
$$.sorted = by_alignment;
- $$.exclude_name_list = NULL;
- $$.section_flag_list = NULL;
}
- | SORT_NONE '(' wildcard_name ')'
+ | SORT_NONE '(' wildcard_maybe_exclude ')'
{
- $$.name = $3;
+ $$ = $3;
$$.sorted = by_none;
- $$.exclude_name_list = NULL;
- $$.section_flag_list = NULL;
}
- | SORT_BY_NAME '(' SORT_BY_ALIGNMENT '(' wildcard_name ')' ')'
+ | SORT_BY_NAME '(' SORT_BY_ALIGNMENT '(' wildcard_maybe_exclude ')' ')'
{
- $$.name = $5;
+ $$ = $5;
$$.sorted = by_name_alignment;
- $$.exclude_name_list = NULL;
- $$.section_flag_list = NULL;
}
- | SORT_BY_NAME '(' SORT_BY_NAME '(' wildcard_name ')' ')'
+ | SORT_BY_NAME '(' SORT_BY_NAME '(' wildcard_maybe_exclude ')' ')'
{
- $$.name = $5;
+ $$ = $5;
$$.sorted = by_name;
- $$.exclude_name_list = NULL;
- $$.section_flag_list = NULL;
}
- | SORT_BY_ALIGNMENT '(' SORT_BY_NAME '(' wildcard_name ')' ')'
+ | SORT_BY_ALIGNMENT '(' SORT_BY_NAME '(' wildcard_maybe_exclude ')' ')'
{
- $$.name = $5;
+ $$ = $5;
$$.sorted = by_alignment_name;
- $$.exclude_name_list = NULL;
- $$.section_flag_list = NULL;
}
- | SORT_BY_ALIGNMENT '(' SORT_BY_ALIGNMENT '(' wildcard_name ')' ')'
+ | SORT_BY_ALIGNMENT '(' SORT_BY_ALIGNMENT '(' wildcard_maybe_exclude ')' ')'
{
- $$.name = $5;
+ $$ = $5;
$$.sorted = by_alignment;
- $$.exclude_name_list = NULL;
- $$.section_flag_list = NULL;
}
- | SORT_BY_NAME '(' EXCLUDE_FILE '(' exclude_name_list ')' wildcard_name ')'
+ | SORT_BY_INIT_PRIORITY '(' wildcard_maybe_exclude ')'
{
- $$.name = $7;
- $$.sorted = by_name;
- $$.exclude_name_list = $5;
- $$.section_flag_list = NULL;
- }
- | SORT_BY_INIT_PRIORITY '(' wildcard_name ')'
- {
- $$.name = $3;
+ $$ = $3;
$$.sorted = by_init_priority;
- $$.exclude_name_list = NULL;
- $$.section_flag_list = NULL;
}
;
@@ -598,8 +593,8 @@ exclude_name_list:
}
;
-section_NAME_list:
- section_NAME_list opt_comma wildcard_spec
+section_name_list:
+ section_name_list opt_comma section_name_spec
{
struct wildcard_list *tmp;
tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
@@ -608,7 +603,7 @@ section_NAME_list:
$$ = tmp;
}
|
- wildcard_spec
+ section_name_spec
{
struct wildcard_list *tmp;
tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
@@ -637,11 +632,11 @@ input_section_spec_no_keep:
tmp.section_flag_list = $1;
lang_add_wild (&tmp, NULL, ldgram_had_keep);
}
- | '[' section_NAME_list ']'
+ | '[' section_name_list ']'
{
lang_add_wild (NULL, $2, ldgram_had_keep);
}
- | sect_flags '[' section_NAME_list ']'
+ | sect_flags '[' section_name_list ']'
{
struct wildcard_spec tmp;
tmp.name = NULL;
@@ -650,11 +645,11 @@ input_section_spec_no_keep:
tmp.section_flag_list = $1;
lang_add_wild (&tmp, $3, ldgram_had_keep);
}
- | wildcard_spec '(' section_NAME_list ')'
+ | filename_spec '(' section_name_list ')'
{
lang_add_wild (&$1, $3, ldgram_had_keep);
}
- | sect_flags wildcard_spec '(' section_NAME_list ')'
+ | sect_flags filename_spec '(' section_name_list ')'
{
$2.section_flag_list = $1;
lang_add_wild (&$2, $4, ldgram_had_keep);
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 726bc8e..4cb7e3f 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -61,7 +61,6 @@ static struct obstack map_obstack;
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
static const char *entry_symbol_default = "start";
-static bfd_boolean placed_commons = FALSE;
static bfd_boolean map_head_is_link_order = FALSE;
static lang_output_section_statement_type *default_common_section;
static bfd_boolean map_option_f;
@@ -2274,6 +2273,34 @@ section_already_linked (bfd *abfd, asection *sec, void *data)
bfd_section_already_linked (abfd, sec, &link_info);
}
+
+/* Returns true if SECTION is one we know will be discarded based on its
+ section flags, otherwise returns false. */
+
+static bfd_boolean
+lang_discard_section_p (asection *section)
+{
+ bfd_boolean discard;
+ flagword flags = section->flags;
+
+ /* Discard sections marked with SEC_EXCLUDE. */
+ discard = (flags & SEC_EXCLUDE) != 0;
+
+ /* Discard the group descriptor sections when we're finally placing the
+ sections from within the group. */
+ if ((flags & SEC_GROUP) != 0
+ && link_info.resolve_section_groups)
+ discard = TRUE;
+
+ /* Discard debugging sections if we are stripping debugging
+ information. */
+ if ((link_info.strip == strip_debugger || link_info.strip == strip_all)
+ && (flags & SEC_DEBUGGING) != 0)
+ discard = TRUE;
+
+ return discard;
+}
+
/* The wild routines.
These expand statements like *(.text) and foo.o to a list of
@@ -2295,26 +2322,14 @@ lang_add_section (lang_statement_list_type *ptr,
lang_input_section_type *new_section;
bfd *abfd = link_info.output_bfd;
- /* Discard sections marked with SEC_EXCLUDE. */
- discard = (flags & SEC_EXCLUDE) != 0;
+ /* Is this section one we know should be discarded? */
+ discard = lang_discard_section_p (section);
/* Discard input sections which are assigned to a section named
DISCARD_SECTION_NAME. */
if (strcmp (output->name, DISCARD_SECTION_NAME) == 0)
discard = TRUE;
- /* Discard the group descriptor sections when we're finally placing the
- sections from within the group. */
- if ((section->flags & SEC_GROUP) == SEC_GROUP
- && link_info.resolve_section_groups)
- discard = TRUE;
-
- /* Discard debugging sections if we are stripping debugging
- information. */
- if ((link_info.strip == strip_debugger || link_info.strip == strip_all)
- && (flags & SEC_DEBUGGING) != 0)
- discard = TRUE;
-
if (discard)
{
if (section->output_section == NULL)
@@ -2819,6 +2834,7 @@ load_symbols (lang_input_statement_type *entry,
case bfd_archive:
check_excluded_libs (entry->the_bfd);
+ entry->the_bfd->usrdata = entry;
if (entry->flags.whole_archive)
{
bfd *member = NULL;
@@ -4414,7 +4430,7 @@ print_wild_statement (lang_wild_statement_type *w,
}
if (w->filenames_sorted)
- minfo ("SORT(");
+ minfo ("SORT_BY_NAME(");
if (w->filename != NULL)
minfo ("%s", w->filename);
else
@@ -4425,8 +4441,44 @@ print_wild_statement (lang_wild_statement_type *w,
minfo ("(");
for (sec = w->section_list; sec; sec = sec->next)
{
- if (sec->spec.sorted)
- minfo ("SORT(");
+ int closing_paren = 0;
+
+ switch (sec->spec.sorted)
+ {
+ case none:
+ break;
+
+ case by_name:
+ minfo ("SORT_BY_NAME(");
+ closing_paren = 1;
+ break;
+
+ case by_alignment:
+ minfo ("SORT_BY_ALIGNMENT(");
+ closing_paren = 1;
+ break;
+
+ case by_name_alignment:
+ minfo ("SORT_BY_NAME(SORT_BY_ALIGNMENT(");
+ closing_paren = 2;
+ break;
+
+ case by_alignment_name:
+ minfo ("SORT_BY_ALIGNMENT(SORT_BY_NAME(");
+ closing_paren = 2;
+ break;
+
+ case by_none:
+ minfo ("SORT_NONE(");
+ closing_paren = 1;
+ break;
+
+ case by_init_priority:
+ minfo ("SORT_BY_INIT_PRIORITY(");
+ closing_paren = 1;
+ break;
+ }
+
if (sec->spec.exclude_name_list != NULL)
{
name_list *tmp;
@@ -4439,8 +4491,8 @@ print_wild_statement (lang_wild_statement_type *w,
minfo ("%s", sec->spec.name);
else
minfo ("*");
- if (sec->spec.sorted)
- minfo (")");
+ for (;closing_paren > 0; closing_paren--)
+ minfo (")");
if (sec->next)
minfo (" ");
}
@@ -6225,7 +6277,7 @@ lang_check (void)
static void
lang_common (void)
{
- if (command_line.inhibit_common_definition)
+ if (link_info.inhibit_common_definition)
return;
if (bfd_link_relocatable (&link_info)
&& !command_line.force_common_definition)
@@ -6411,7 +6463,7 @@ lang_place_orphans (void)
if (file->flags.just_syms)
bfd_link_just_syms (file->the_bfd, s, &link_info);
- else if ((s->flags & SEC_EXCLUDE) != 0)
+ else if (lang_discard_section_p (s))
s->output_section = bfd_abs_section_ptr;
else if (strcmp (s->name, "COMMON") == 0)
{
@@ -6492,9 +6544,9 @@ lang_for_each_input_file (void (*func) (lang_input_statement_type *))
{
lang_input_statement_type *f;
- for (f = (lang_input_statement_type *) input_file_chain.head;
+ for (f = &input_file_chain.head->input_statement;
f != NULL;
- f = (lang_input_statement_type *) f->next_real_file)
+ f = &f->next_real_file->input_statement)
func (f);
}
@@ -6891,6 +6943,51 @@ find_replacements_insert_point (void)
return lastobject;
}
+/* Find where to insert ADD, an archive element or shared library
+ added during a rescan. */
+
+static lang_statement_union_type **
+find_rescan_insertion (lang_input_statement_type *add)
+{
+ bfd *add_bfd = add->the_bfd;
+ lang_input_statement_type *f;
+ lang_input_statement_type *last_loaded = NULL;
+ lang_input_statement_type *before = NULL;
+ lang_statement_union_type **iter = NULL;
+
+ if (add_bfd->my_archive != NULL)
+ add_bfd = add_bfd->my_archive;
+
+ /* First look through the input file chain, to find an object file
+ before the one we've rescanned. Normal object files always
+ appear on both the input file chain and the file chain, so this
+ lets us get quickly to somewhere near the correct place on the
+ file chain if it is full of archive elements. Archives don't
+ appear on the file chain, but if an element has been extracted
+ then their input_statement->next points at it. */
+ for (f = &input_file_chain.head->input_statement;
+ f != NULL;
+ f = &f->next_real_file->input_statement)
+ {
+ if (f->the_bfd == add_bfd)
+ {
+ before = last_loaded;
+ if (f->next != NULL)
+ return &f->next->input_statement.next;
+ }
+ if (f->the_bfd != NULL && f->next != NULL)
+ last_loaded = f;
+ }
+
+ for (iter = before ? &before->next : &file_chain.head->input_statement.next;
+ *iter != NULL;
+ iter = &(*iter)->input_statement.next)
+ if ((*iter)->input_statement.the_bfd->my_archive == NULL)
+ break;
+
+ return iter;
+}
+
/* Insert SRCLIST into DESTLIST after given element by chaining
on FIELD as the next-pointer. (Counterintuitively does not need
a pointer to the actual after-node itself, just its chain field.) */
@@ -7061,7 +7158,36 @@ lang_process (void)
lang_list_insert_after (&file_chain, &files, &file_chain.head);
/* Rescan archives in case new undefined symbols have appeared. */
+ files = file_chain;
open_input_bfds (statement_list.head, OPEN_BFD_RESCAN);
+ lang_list_remove_tail (&file_chain, &files);
+ while (files.head != NULL)
+ {
+ lang_statement_union_type **insert;
+ lang_statement_union_type **iter, *temp;
+ bfd *my_arch;
+
+ insert = find_rescan_insertion (&files.head->input_statement);
+ /* All elements from an archive can be added at once. */
+ iter = &files.head->input_statement.next;
+ my_arch = files.head->input_statement.the_bfd->my_archive;
+ if (my_arch != NULL)
+ for (; *iter != NULL; iter = &(*iter)->input_statement.next)
+ if ((*iter)->input_statement.the_bfd->my_archive != my_arch)
+ break;
+ temp = *insert;
+ *insert = files.head;
+ files.head = *iter;
+ *iter = temp;
+ if (my_arch != NULL)
+ {
+ lang_input_statement_type *parent = my_arch->usrdata;
+ if (parent != NULL)
+ parent->next = (lang_statement_union_type *)
+ ((char *) iter
+ - offsetof (lang_input_statement_type, next));
+ }
+ }
}
}
#endif /* ENABLE_PLUGINS */
@@ -7238,9 +7364,6 @@ lang_add_wild (struct wildcard_spec *filespec,
curr != NULL;
section_list = curr, curr = next)
{
- if (curr->spec.name != NULL && strcmp (curr->spec.name, "COMMON") == 0)
- placed_commons = TRUE;
-
next = curr->next;
curr->next = section_list;
}
diff --git a/ld/ldlang.h b/ld/ldlang.h
index a833672..86ef342 100644
--- a/ld/ldlang.h
+++ b/ld/ldlang.h
@@ -307,10 +307,14 @@ typedef struct lang_input_statement_struct
struct flag_info *section_flag_list;
/* Point to the next file - whatever it is, wanders up and down
- archives */
+ archive elements. If this input_statement is for an archive, it
+ won't be on file_chain (which uses this list pointer), but if
+ any elements have been extracted from the archive, it will point
+ to the input_statement for the last such element. */
union lang_statement_union *next;
- /* Point to the next file, but skips archive contents. */
+ /* Point to the next file, but skips archive contents. Used by
+ input_file_chain. */
union lang_statement_union *next_real_file;
const char *target;
@@ -582,9 +586,9 @@ extern asection *section_for_dot
#define LANG_FOR_EACH_INPUT_STATEMENT(statement) \
lang_input_statement_type *statement; \
- for (statement = (lang_input_statement_type *) file_chain.head; \
- statement != (lang_input_statement_type *) NULL; \
- statement = (lang_input_statement_type *) statement->next) \
+ for (statement = &file_chain.head->input_statement; \
+ statement != NULL; \
+ statement = &statement->next->input_statement)
#define lang_output_section_find(NAME) \
lang_output_section_statement_lookup (NAME, 0, FALSE)
diff --git a/ld/ldmain.c b/ld/ldmain.c
index ee5ab11..d223587 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -50,12 +50,6 @@
#include <string.h>
-#ifdef HAVE_SBRK
-#if !HAVE_DECL_SBRK
-extern void *sbrk ();
-#endif
-#endif
-
#ifndef TARGET_SYSTEM_ROOT
#define TARGET_SYSTEM_ROOT ""
#endif
@@ -198,9 +192,6 @@ main (int argc, char **argv)
{
char *emulation;
long start_time = get_run_time ();
-#ifdef HAVE_SBRK
- char *start_sbrk = (char *) sbrk (0);
-#endif
#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
setlocale (LC_MESSAGES, "");
@@ -282,7 +273,8 @@ main (int argc, char **argv)
link_info.keep_memory = TRUE;
link_info.combreloc = TRUE;
link_info.strip_discarded = TRUE;
- link_info.emit_hash = TRUE;
+ link_info.emit_hash = DEFAULT_EMIT_SYSV_HASH;
+ link_info.emit_gnu_hash = DEFAULT_EMIT_GNU_HASH;
link_info.callbacks = &link_callbacks;
link_info.input_bfds_tail = &link_info.input_bfds;
/* SVR4 linkers seem to set DT_INIT and DT_FINI based on magic _init
@@ -404,6 +396,9 @@ main (int argc, char **argv)
if (argc == 2 && version_printed)
xexit (0);
+ if (link_info.inhibit_common_definition && !bfd_link_dll (&link_info))
+ einfo (_("%P%F: --no-define-common may not be used without -shared\n"));
+
if (!lang_has_input_file)
{
if (version_printed || command_line.print_output_format)
@@ -539,18 +534,11 @@ main (int argc, char **argv)
if (config.stats)
{
-#ifdef HAVE_SBRK
- char *lim = (char *) sbrk (0);
-#endif
long run_time = get_run_time () - start_time;
fflush (stdout);
fprintf (stderr, _("%s: total time in link: %ld.%06ld\n"),
program_name, run_time / 1000000, run_time % 1000000);
-#ifdef HAVE_SBRK
- fprintf (stderr, _("%s: data size %ld\n"), program_name,
- (long) (lim - start_sbrk));
-#endif
fflush (stderr);
}
@@ -805,6 +793,7 @@ add_archive_element (struct bfd_link_info *info,
bfd **subsbfd ATTRIBUTE_UNUSED)
{
lang_input_statement_type *input;
+ lang_input_statement_type *parent;
lang_input_statement_type orig_input;
input = (lang_input_statement_type *)
@@ -814,6 +803,10 @@ add_archive_element (struct bfd_link_info *info,
input->local_sym_name = abfd->filename;
input->the_bfd = abfd;
+ parent = abfd->my_archive->usrdata;
+ if (parent != NULL && !parent->flags.reload)
+ parent->next = (lang_statement_union_type *) input;
+
/* Save the original data for trace files/tries below, as plugins
(if enabled) may possibly alter it to point to a replacement
BFD, but we still want to output the original BFD filename. */
diff --git a/ld/lexsup.c b/ld/lexsup.c
index 08106bc..1adb302 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -908,7 +908,7 @@ parse_args (unsigned argc, char **argv)
input_flags.dynamic = FALSE;
break;
case OPTION_NO_DEFINE_COMMON:
- command_line.inhibit_common_definition = TRUE;
+ link_info.inhibit_common_definition = TRUE;
break;
case OPTION_NO_DEMANGLE:
demangling = FALSE;
@@ -1828,6 +1828,8 @@ elf_static_list_options (FILE *file)
-z execstack Mark executable as requiring executable stack\n"));
fprintf (file, _("\
-z noexecstack Mark executable as not requiring executable stack\n"));
+ fprintf (file, _("\
+ -z globalaudit Mark executable requiring global auditing\n"));
}
static void
diff --git a/ld/po/bg.po b/ld/po/bg.po
index 30bba27..bb0b042 100644
--- a/ld/po/bg.po
+++ b/ld/po/bg.po
@@ -1,214 +1,210 @@
# Translation of binutils ld to Bulgarian
# Copyright (C) 2010, 2011, 2012, 2014 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
-# Roumen Petrov <transl@roumenpetrov.info>, 2010,2011,2012,2014.
+# Roumen Petrov <transl@roumenpetrov.info>, 2010-2017.
#
# Abbreviations:
# BFD - Binary Format Description
# IR - Intermediate Representation
msgid ""
msgstr ""
-"Project-Id-Version: ld 2.24.90\n"
+"Project-Id-Version: ld 2.28.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2014-02-10 09:42+1030\n"
-"PO-Revision-Date: 2014-10-19 18:11+0300\n"
+"POT-Creation-Date: 2017-07-03 16:56+0200\n"
+"PO-Revision-Date: 2017-07-06 23:00+0300\n"
"Last-Translator: Румен Петров <transl@roumenpetrov.info>\n"
"Language-Team: Bulgarian <dict@ludost.net>\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: emultempl/armcoff.em:73
+#: emultempl/armcoff.em:72
#, c-format
msgid " --support-old-code Support interworking with old code\n"
msgstr " --support-old-code Поддръжка на работоÑпоÑобноÑÑ‚ Ñ Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐµÐ½ код\n"
-#: emultempl/armcoff.em:74
+#: emultempl/armcoff.em:73
#, c-format
msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
msgstr " --thumb-entry=<знак> УÑтановÑва входÑща точка да е отбелÑÐ·Ð°Ð½Ð¸Ñ <знак>\n"
-#: emultempl/armcoff.em:122
+#: emultempl/armcoff.em:121
#, c-format
msgid "Errors encountered processing file %s"
msgstr "Открити Ñа грешки при обработване на файл %s"
-#: emultempl/armcoff.em:192 emultempl/pe.em:1827
+#: emultempl/armcoff.em:191 emultempl/pe.em:2062
msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
msgstr "%P: предупреждение: '--thumb-entry %s' прегазва '-e %s'\n"
-#: emultempl/armcoff.em:197 emultempl/pe.em:1832
+#: emultempl/armcoff.em:196 emultempl/pe.em:2067
msgid "%P: warning: cannot find thumb start symbol %s\n"
msgstr "%P: предупреждение: не е намерен, като начален, отбелÑÐ·Ð°Ð½Ð¸Ñ Ð·Ð½Ð°Ðº %s\n"
-#: emultempl/pe.em:425
+#: emultempl/pe.em:430
#, c-format
msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
msgstr " --base_file <базов_файл> Създаване на базов файл за премеÑтваеми DLLs\n"
-#: emultempl/pe.em:426
+#: emultempl/pe.em:431
#, c-format
msgid " --dll Set image base to the default for DLLs\n"
msgstr " --dll УÑтановÑва Ð±Ð°Ð·Ð¾Ð²Ð¸Ñ Ð°Ð´Ñ€ÐµÑ Ð½Ð° Ð¿Ð¾Ð´Ñ€Ð°Ð·Ð±Ð¸Ñ€Ð°Ñ‰Ð¸Ñ Ñе за DLLs\n"
-#: emultempl/pe.em:427
+#: emultempl/pe.em:432
#, c-format
msgid " --file-alignment <size> Set file alignment\n"
msgstr " --file-alignment <размер> УÑтановÑва подравнÑване за файла\n"
-#: emultempl/pe.em:428
+#: emultempl/pe.em:433
#, c-format
msgid " --heap <size> Set initial size of the heap\n"
msgstr " --heap <размер> УÑтановÑва Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€ на динамичната памет\n"
-#: emultempl/pe.em:429
+#: emultempl/pe.em:434
#, c-format
msgid " --image-base <address> Set start address of the executable\n"
msgstr " --image-base <адреÑ> УÑтановÑва начален Ð°Ð´Ñ€ÐµÑ Ð½Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ Ñ„Ð°Ð¹Ð»\n"
-#: emultempl/pe.em:430
+#: emultempl/pe.em:435
#, c-format
msgid " --major-image-version <number> Set version number of the executable\n"
msgstr " --major-image-version <чиÑло> УÑтановÑва номер на верÑÐ¸Ñ Ð½Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ Ñ„Ð°Ð¹Ð»\n"
-#: emultempl/pe.em:431
+#: emultempl/pe.em:436
#, c-format
msgid " --major-os-version <number> Set minimum required OS version\n"
msgstr " --major-os-version <чиÑло> УÑтановÑва необходима минимална верÑÐ¸Ñ Ð½Ð° ОС\n"
-#: emultempl/pe.em:432
+#: emultempl/pe.em:437
#, c-format
msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n"
msgstr " --major-subsystem-version <чиÑло> УÑтановÑва необходима минимална подверÑÐ¸Ñ Ð½Ð° ОС\n"
-#: emultempl/pe.em:433
+#: emultempl/pe.em:438
#, c-format
msgid " --minor-image-version <number> Set revision number of the executable\n"
msgstr " --minor-image-version <чиÑло> УÑтановÑва номер на изданието на Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ Ñ„Ð°Ð¹Ð»\n"
-#: emultempl/pe.em:434
+#: emultempl/pe.em:439
#, c-format
msgid " --minor-os-version <number> Set minimum required OS revision\n"
msgstr " --minor-os-version <чиÑло> УÑтановÑва необходимо минимално издание на ОС\n"
-#: emultempl/pe.em:435
+#: emultempl/pe.em:440
#, c-format
msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
msgstr " --minor-subsystem-version <чиÑло> УÑтановÑва необходимо минимално подиздание на ОС\n"
-#: emultempl/pe.em:436
+#: emultempl/pe.em:441
#, c-format
msgid " --section-alignment <size> Set section alignment\n"
msgstr " --section-alignment <размер> УÑтановÑва подравнÑване на раздел\n"
-#: emultempl/pe.em:437
+#: emultempl/pe.em:442
#, c-format
msgid " --stack <size> Set size of the initial stack\n"
msgstr " --stack <размер> УÑтановÑва размера на Ð¿ÑŠÑ€Ð²Ð¾Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ñтек\n"
-#: emultempl/pe.em:438
+#: emultempl/pe.em:443
#, c-format
msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
msgstr " --subsystem <име>[:<верÑиÑ>] УÑтановÑва необходима подÑиÑтема [и верÑиÑ] на ОС\n"
-#: emultempl/pe.em:439
+#: emultempl/pe.em:444
#, c-format
msgid " --support-old-code Support interworking with old code\n"
msgstr " --support-old-code Поддръжка на работоÑпоÑобноÑÑ‚ Ñ Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐµÐ½ код\n"
-#: emultempl/pe.em:440
+#: emultempl/pe.em:445
#, c-format
msgid " --[no-]leading-underscore Set explicit symbol underscore prefix mode\n"
msgstr " --[no-]leading-underscore Изрично уÑтановÑва режим Ñ Ð¿Ð¾Ð´Ñ‡ÐµÑ€Ñ‚Ð°Ð²ÐºÐ° като предÑтавка за име\n"
-#: emultempl/pe.em:441
+#: emultempl/pe.em:446
#, c-format
msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
msgstr " --thumb-entry=<знак> УÑтановÑване на входÑща точка да е отбелÑÐ·Ð°Ð½Ð¸Ñ <знак>\n"
-#: emultempl/pe.em:442
+#: emultempl/pe.em:447
#, c-format
-msgid " --insert-timestamp Use a real timestamp rather than zero.\n"
-msgstr " --insert-timestamp Използва иÑтинÑка времева отметка вмеÑто нула.\n"
+msgid " --[no-]insert-timestamp Use a real timestamp rather than zero (default).\n"
+msgstr " --[no-]insert-timestamp Използва иÑтинÑка времева отметка вмеÑто нула (по подразбиране).\n"
-#: emultempl/pe.em:443
+#: emultempl/pe.em:448
#, c-format
msgid " This makes binaries non-deterministic\n"
msgstr " Това прави двоичните файлове неопределÑеми\n"
-#: emultempl/pe.em:445
+#: emultempl/pe.em:450
#, c-format
msgid " --add-stdcall-alias Export symbols with and without @nn\n"
msgstr " --add-stdcall-alias ИзнаÑÑне на имена Ñ Ð¸ без @nn\n"
-#: emultempl/pe.em:446
+#: emultempl/pe.em:451
#, c-format
msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
msgstr " --disable-stdcall-fixup Без Ñвързване на _име към _име@nn\n"
-#: emultempl/pe.em:447
+#: emultempl/pe.em:452
#, c-format
msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
msgstr " --enable-stdcall-fixup Свързва _име ÑÑŠÑ _име@nn без предупреждениÑ\n"
-#: emultempl/pe.em:448
+#: emultempl/pe.em:453
#, c-format
msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
msgstr " --exclude-symbols име,име,... Изключва имена от автоматичното изнаÑÑне\n"
-#: emultempl/pe.em:449
+#: emultempl/pe.em:454
#, c-format
msgid " --exclude-all-symbols Exclude all symbols from automatic export\n"
msgstr " --exclude-all-symbols Изключва вÑички имена от автоматичното изнаÑÑне\n"
-#: emultempl/pe.em:450
+#: emultempl/pe.em:455
#, c-format
msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n"
msgstr " --exclude-libs библ.,библ.,... Изключва библиотеки от автоматичното изнаÑÑне\n"
-#: emultempl/pe.em:451
+#: emultempl/pe.em:456
#, c-format
msgid " --exclude-modules-for-implib mod,mod,...\n"
msgstr " --exclude-modules-for-implib модул,модул,...\n"
-#: emultempl/pe.em:452
+#: emultempl/pe.em:457
#, c-format
msgid " Exclude objects, archive members from auto\n"
msgstr " Изключва обекти, библиотечни обекти от автоматично\n"
-#: emultempl/pe.em:453
+#: emultempl/pe.em:458
#, c-format
msgid " export, place into import library instead.\n"
msgstr " изнаÑÑне, в замÑна поÑтавÑне в библиотека за внаÑÑне.\n"
-#: emultempl/pe.em:454
+#: emultempl/pe.em:459
#, c-format
msgid " --export-all-symbols Automatically export all globals to DLL\n"
msgstr " --export-all-symbols Ðвтоматично изнаÑÑне на вÑички общи в DLL\n"
-#: emultempl/pe.em:455
+#: emultempl/pe.em:460
#, c-format
msgid " --kill-at Remove @nn from exported symbols\n"
msgstr " --kill-at Премахва @nn от изнеÑените имена\n"
-#: emultempl/pe.em:456
-#, c-format
-msgid " --out-implib <file> Generate import library\n"
-msgstr " --out-implib <файл> Създава библиотека за внаÑÑне\n"
-
-#: emultempl/pe.em:457
+#: emultempl/pe.em:461
#, c-format
msgid " --output-def <file> Generate a .DEF file for the built DLL\n"
-msgstr " --output-def <файл> Генерира DEF-файл за Ñъздадената DLL\n"
+msgstr " --output-def <файл> Произвежда DEF-файл за Ñъздадената DLL\n"
-#: emultempl/pe.em:458
+#: emultempl/pe.em:462
#, c-format
-msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
-msgstr " --warn-duplicate-exports ÐŸÑ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð° повторени екÑпорти.\n"
+msgid " --warn-duplicate-exports Warn about duplicate exports\n"
+msgstr " --warn-duplicate-exports ÐŸÑ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð° повторени изнаÑÑниÑ\n"
-#: emultempl/pe.em:459
+#: emultempl/pe.em:463
#, c-format
msgid ""
" --compat-implib Create backward compatible import libs;\n"
@@ -217,21 +213,22 @@ msgstr ""
" --compat-implib Създава ÑъвмеÑтими Ñ Ð¿Ñ€ÐµÐ´Ð¸ библиотеки за внÑÑÑне;\n"
" Ñъщо така Ñъздава __imp_<ИМЕ>.\n"
-#: emultempl/pe.em:461
+#: emultempl/pe.em:465
#, c-format
msgid ""
-" --enable-auto-image-base Automatically choose image base for DLLs\n"
-" unless user specifies one\n"
+" --enable-auto-image-base[=<address>] Automatically choose image base for DLLs\n"
+" (optionally starting with address) unless\n"
+" specifically set with --image-base\n"
msgstr ""
-" --enable-auto-image-base Ðвтоматично избира база на образа за DLLs,\n"
-" оÑвен ако Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ð½Ðµ Ñ Ð·Ð°Ð´Ð°Ð´Ðµ\n"
+" --enable-auto-image-base[=<адреÑ>] Ðвтоматично избира база на образа за DLLs,\n"
+" по избор започвайки от <адреÑ>, оÑвен ако не е зададен Ñ --image-base\n"
-#: emultempl/pe.em:463
+#: emultempl/pe.em:468
#, c-format
msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n"
msgstr " --disable-auto-image-base Да не Ñе избира автоматично база на образа. (по подразбиране)\n"
-#: emultempl/pe.em:464
+#: emultempl/pe.em:469
#, c-format
msgid ""
" --dll-search-prefix=<string> When linking dynamically to a dll without\n"
@@ -243,7 +240,7 @@ msgstr ""
" предпочете <низ><базовоиме>.dll пред\n"
" lib<базовоиме>.dll \n"
-#: emultempl/pe.em:467
+#: emultempl/pe.em:472
#, c-format
msgid ""
" --enable-auto-import Do sophisticated linking of _sym to\n"
@@ -252,12 +249,12 @@ msgstr ""
" --enable-auto-import \"Изтънчено\" Ñвързване на _sym ÑÑŠÑ\n"
" __imp_sym при отпратки за данни\n"
-#: emultempl/pe.em:469
+#: emultempl/pe.em:474
#, c-format
msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n"
msgstr " --disable-auto-import Да не Ñе внаÑÑÑ‚ автоматично данни от DLL-ли\n"
-#: emultempl/pe.em:470
+#: emultempl/pe.em:475
#, c-format
msgid ""
" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n"
@@ -268,7 +265,7 @@ msgstr ""
" внаÑÑÐ½Ð¸Ñ Ñ Ð´Ð¾Ð±Ð°Ð²Ñне на лъже-премеÑтваниÑ,\n"
" определÑни по време на работа.\n"
-#: emultempl/pe.em:473
+#: emultempl/pe.em:478
#, c-format
msgid ""
" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n"
@@ -277,7 +274,7 @@ msgstr ""
" --disable-runtime-pseudo-reloc Без лъже-премеÑтваниÑ, по време на работа,\n"
" за автоматично внеÑени данни.\n"
-#: emultempl/pe.em:475
+#: emultempl/pe.em:480
#, c-format
msgid ""
" --enable-extra-pe-debug Enable verbose debug output when building\n"
@@ -286,7 +283,7 @@ msgstr ""
" --enable-extra-pe-debug Разрешава извеждане на подробна Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ Ñъздаване\n"
" или Ñвързване на DLL-ли (Ñъотв. ÑамовнаÑÑне)\n"
-#: emultempl/pe.em:478
+#: emultempl/pe.em:483
#, c-format
msgid ""
" --large-address-aware Executable supports virtual addresses\n"
@@ -295,7 +292,7 @@ msgstr ""
" --large-address-aware Програмата поддържа виртуални адреÑи\n"
" по-голÑми от 2 гигабайта\n"
-#: emultempl/pe.em:480
+#: emultempl/pe.em:485
#, c-format
msgid ""
" --disable-large-address-aware Executable does not support virtual\n"
@@ -304,7 +301,7 @@ msgstr ""
" --disable-large-address-aware Програмата не поддържа виртуални\n"
" адреÑи по-голÑми от 2 гигабайта\n"
-#: emultempl/pe.em:482
+#: emultempl/pe.em:487
#, c-format
msgid ""
" --enable-long-section-names Use long COFF section names even in\n"
@@ -313,7 +310,7 @@ msgstr ""
" --enable-long-section-names Използване на дълги имена за COFF\n"
" раздели, дори в изпълними файлове\n"
-#: emultempl/pe.em:484
+#: emultempl/pe.em:489
#, c-format
msgid ""
" --disable-long-section-names Never use long COFF section names, even\n"
@@ -322,7 +319,7 @@ msgstr ""
" --disable-long-section-names Да не Ñе използват дълги имена на COFF\n"
" раздели, дори в обектни файлове\n"
-#: emultempl/pe.em:486
+#: emultempl/pe.em:491
#, c-format
msgid ""
" --dynamicbase\t\t\t Image base address may be relocated using\n"
@@ -331,22 +328,22 @@ msgstr ""
" --dynamicbase\t\t\t БазовиÑÑ‚ Ð°Ð´Ñ€ÐµÑ Ð½Ð° образа може да бъде премеÑтен\n"
"\t\t\t\t като Ñе използва Ñлучаен адреÑ\n"
-#: emultempl/pe.em:488
+#: emultempl/pe.em:493
#, c-format
msgid " --forceinteg\t\t Code integrity checks are enforced\n"
msgstr " --forceinteg\t\t Ðалагане на проверка за цÑлоÑтноÑÑ‚ на кода\n"
-#: emultempl/pe.em:489
+#: emultempl/pe.em:494
#, c-format
msgid " --nxcompat\t\t Image is compatible with data execution prevention\n"
msgstr " --nxcompat\t\t Образа е ÑъвмеÑтим Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‚Ñване на изпълнение на данни\n"
-#: emultempl/pe.em:490
+#: emultempl/pe.em:495
#, c-format
msgid " --no-isolation\t\t Image understands isolation but do not isolate the image\n"
msgstr " --no-isolation\t\t Образа поддържа изолиране, но да не Ñе изолира\n"
-#: emultempl/pe.em:491
+#: emultempl/pe.em:496
#, c-format
msgid ""
" --no-seh\t\t\t Image does not use SEH. No SE handler may\n"
@@ -355,73 +352,78 @@ msgstr ""
" --no-seh\t\t\t Образа не използва SEH. Ðе може да Ñе извиква\n"
"\t\t\t\t SE подръжка в този образ\n"
-#: emultempl/pe.em:493
+#: emultempl/pe.em:498
#, c-format
msgid " --no-bind\t\t\t Do not bind this image\n"
msgstr " --no-bind\t\t\t Образ без таблица за Ñвързване\n"
-#: emultempl/pe.em:494
+#: emultempl/pe.em:499
#, c-format
msgid " --wdmdriver\t\t Driver uses the WDM model\n"
msgstr " --wdmdriver\t\t Използване на WDM модел за driver\n"
-#: emultempl/pe.em:495
+#: emultempl/pe.em:500
#, c-format
msgid " --tsaware Image is Terminal Server aware\n"
msgstr " --tsaware Образа поддържа \"Terminal Server\"\n"
-#: emultempl/pe.em:624
+#: emultempl/pe.em:501
+#, c-format
+msgid " --build-id[=STYLE] Generate build ID\n"
+msgstr ""
+
+#: emultempl/pe.em:629
msgid "%P: warning: bad version number in -subsystem option\n"
msgstr "%P: предупреждение: неправилен номер на верÑÐ¸Ñ Ð·Ð° командата -subsystem\n"
-#: emultempl/pe.em:649
+#: emultempl/pe.em:654
msgid "%P%F: invalid subsystem type %s\n"
msgstr "%P%F: неправилен тип на подÑиÑтема %s\n"
-#: emultempl/pe.em:670
+#: emultempl/pe.em:675
msgid "%P%F: invalid hex number for PE parameter '%s'\n"
msgstr "%P%F: неправилно шеÑнайÑетично чиÑло за \"PE\" параметър '%s'\n"
-#: emultempl/pe.em:687
+#: emultempl/pe.em:692
msgid "%P%F: strange hex info for PE parameter '%s'\n"
msgstr "%P%F: неизвеÑтни шеÑтнайÑетични данни за PE параметър '%s'\n"
-#: emultempl/pe.em:702
+#: emultempl/pe.em:708
msgid "%F%P: cannot open base file %s\n"
msgstr "%F%P: не може да Ñе отвори оÑновен файл %s\n"
-#: emultempl/pe.em:981
+#: emultempl/pe.em:1004
msgid "%P: warning, file alignment > section alignment.\n"
msgstr "%P: предупреждение, подравнÑване за файл > подравнÑване за раздел.\n"
-#: emultempl/pe.em:994
+#: emultempl/pe.em:1017
msgid "%P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?\n"
msgstr "%P: предупреждение: --export-dynamic не Ñе поддържа при PE резултат, може би --export-all-symbols?\n"
-#: emultempl/pe.em:1070 emultempl/pe.em:1097
+#: emultempl/pe.em:1069
#, c-format
msgid "Warning: resolving %s by linking to %s\n"
msgstr "Предупрежение: разрешаване на %s ÑÑŠÑ Ñвързване към %s\n"
-#: emultempl/pe.em:1075 emultempl/pe.em:1102
+#: emultempl/pe.em:1074
msgid "Use --enable-stdcall-fixup to disable these warnings\n"
msgstr "Да Ñе използва --enable-stdcall-fixup, за да Ñе забранÑÑ‚ тези предупреждениÑ\n"
-#: emultempl/pe.em:1076 emultempl/pe.em:1103
+#: emultempl/pe.em:1075
msgid "Use --disable-stdcall-fixup to disable these fixups\n"
msgstr "Да Ñе използва --disable-stdcall-fixup, за да Ñе забранÑÑ‚ тези предупреждениÑ\n"
-#: emultempl/pe.em:1122
+#: emultempl/pe.em:1143
#, c-format
msgid "%C: Cannot get section contents - auto-import exception\n"
msgstr "%C: Ðе можа да Ñе вземе Ñъдържанието на раздел - изключение при автоматично внаÑÑне\n"
-#: emultempl/pe.em:1162
+#: emultempl/pe.em:1206
#, c-format
msgid "Info: resolving %s by linking to %s (auto-import)\n"
msgstr "ИнформациÑ: разрешаване на %s ÑÑŠÑ Ñвързване към %s (Ñамо-внаÑÑне)\n"
-#: emultempl/pe.em:1169
+#: emultempl/pe.em:1213
msgid ""
"%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line.\n"
"This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.\n"
@@ -429,43 +431,47 @@ msgstr ""
"%P: предупр.: Ñамо-внаÑÑне е активирано без да Ñе зададе --enable-auto-import на ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´.\n"
"Това работи, оÑвен ако не е Ñвързано Ñ ÐºÐ¾Ð½Ñтантни Ñтруктури за данни, които указват към имена от Ñамо-внаÑÑни DLL-ли.\n"
-#: emultempl/pe.em:1176 emultempl/pe.em:1383 emultempl/pe.em:1590 ldcref.c:503
-#: ldcref.c:601 ldmain.c:1183 ldmisc.c:300 pe-dll.c:710 pe-dll.c:1276
-#: pe-dll.c:1371
+#: emultempl/pe.em:1223 emultempl/pe.em:1618 emultempl/pe.em:1825 ldcref.c:517
+#: ldcref.c:628 ldmain.c:1193 ldmisc.c:302 pe-dll.c:722 pe-dll.c:1301
+#: pe-dll.c:1396
msgid "%B%F: could not read symbols: %E\n"
msgstr "%B%F: не могат да Ñе прочетат имената: %E\n"
-#: emultempl/pe.em:1258
+#: emultempl/pe.em:1337
+msgid "%P: warning: .buildid section discarded, --build-id ignored.\n"
+msgstr ""
+
+#: emultempl/pe.em:1487
msgid "%F%P: cannot perform PE operations on non PE output file '%B'.\n"
msgstr "%F%P: не може да Ñе извърши \"PE\"-операции на изходен файл '%B', който не е \"PE\".\n"
-#: emultempl/pe.em:1633
+#: emultempl/pe.em:1868
#, c-format
msgid "Errors encountered processing file %s\n"
msgstr "Открити Ñа грешки при обработката на файл %s\n"
-#: emultempl/pe.em:1656
+#: emultempl/pe.em:1891
#, c-format
msgid "Errors encountered processing file %s for interworking\n"
msgstr "Открити Ñа грешки при обработката на файл %s за ÑъвмеÑтна работа\n"
-#: emultempl/pe.em:1718 ldexp.c:631 ldlang.c:3451 ldmain.c:1128
+#: emultempl/pe.em:1953 ldexp.c:740 ldlang.c:3396 ldmain.c:1160
msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
msgstr "%P%F: bfd_link_hash_lookup не уÑпÑ: %E\n"
-#: ldcref.c:167
+#: ldcref.c:170
msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
msgstr "%X%P: bfd_hash_table_init, за cref таблица, не уÑпÑ: %E\n"
-#: ldcref.c:173
+#: ldcref.c:176
msgid "%X%P: cref_hash_lookup failed: %E\n"
msgstr "%X%P: cref_hash_lookup не уÑпÑ: %E\n"
-#: ldcref.c:183
+#: ldcref.c:186
msgid "%X%P: cref alloc failed: %E\n"
msgstr "%X%P: пропадна заделÑне(на памет) за cref: %E\n"
-#: ldcref.c:365
+#: ldcref.c:371
#, c-format
msgid ""
"\n"
@@ -476,25 +482,25 @@ msgstr ""
"Таблица на кръÑтоÑани връзки\n"
"\n"
-#: ldcref.c:366
+#: ldcref.c:372
msgid "Symbol"
msgstr "Име"
-#: ldcref.c:374
+#: ldcref.c:380
#, c-format
msgid "File\n"
msgstr "Файл\n"
-#: ldcref.c:378
+#: ldcref.c:384
#, c-format
msgid "No symbols\n"
msgstr "Без имена\n"
-#: ldcref.c:545
+#: ldcref.c:565
msgid "%P: symbol `%T' missing from main hash table\n"
msgstr "%P: име '%T' липÑва в главната хеш-таблица\n"
-#: ldcref.c:663 ldcref.c:670 ldmain.c:1217 ldmain.c:1224
+#: ldcref.c:690 ldcref.c:697 ldmain.c:1255 ldmain.c:1262
msgid "%B%F: could not read relocs: %E\n"
msgstr "%B%F: не могат да Ñе прочетат \"премеÑтваниÑта\": %E\n"
@@ -502,27 +508,31 @@ msgstr "%B%F: не могат да Ñе прочетат \"премеÑтванÐ
#. in OUTSECNAME. This reloc is from a section which is
#. mapped into a section from which references to OUTSECNAME
#. are prohibited. We must report an error.
-#: ldcref.c:697
+#: ldcref.c:724
msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
msgstr "%X%C: забранено е кръÑтоÑана отпратка от %s към '%T' в %s\n"
-#: ldctor.c:85
+#: ldctor.c:83
msgid "%P%X: Different relocs used in set %s\n"
msgstr "%P%X: Различни \"премеÑтваниÑта\" Ñе използват в множеÑтвото %s\n"
-#: ldctor.c:103
+#: ldctor.c:101
msgid "%P%X: Different object file formats composing set %s\n"
msgstr "%P%X: Различни формати на обектни файлове в набора %s\n"
-#: ldctor.c:281 ldctor.c:295
+#: ldctor.c:279 ldctor.c:300
msgid "%P%X: %s does not support reloc %s for set %s\n"
msgstr "%P%X: %s не Ñе поддържа премеÑтване %s за набор %s\n"
-#: ldctor.c:316
+#: ldctor.c:295
+msgid "%P%X: Special section %s does not support reloc %s for set %s\n"
+msgstr "%P%X: Раздел %s не поддържа премеÑтване %s за набор %s\n"
+
+#: ldctor.c:321
msgid "%P%X: Unsupported size %d for set %s\n"
msgstr "%P%X: Ðеподдържан размер %d за множеÑтвото %s\n"
-#: ldctor.c:339
+#: ldctor.c:344
msgid ""
"\n"
"Set Symbol\n"
@@ -532,96 +542,108 @@ msgstr ""
"МножеÑтво Име\n"
"\n"
-#: ldemul.c:265
+#: ldemul.c:263
#, c-format
msgid "%S SYSLIB ignored\n"
msgstr "%S SYSLIB е изоÑтавен\n"
-#: ldemul.c:271
+#: ldemul.c:269
#, c-format
msgid "%S HLL ignored\n"
msgstr "%S HLL е изоÑтавен\n"
-#: ldemul.c:291
+#: ldemul.c:289
msgid "%P: unrecognised emulation mode: %s\n"
msgstr "%P: неразпознат режим за подражаване: %s\n"
-#: ldemul.c:292
+#: ldemul.c:290
msgid "Supported emulations: "
msgstr "Поддържани подражаваниÑ: "
-#: ldemul.c:334
+#: ldemul.c:332
#, c-format
msgid " no emulation specific options.\n"
msgstr " без оÑобени възможноÑти за подражаване.\n"
-#: ldexp.c:346
+#: ldexp.c:286
+msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
+msgstr "%P%F: bfd_hash_allocate не уÑÐ¿Ñ Ð´Ð° Ñъздаде име %s\n"
+
+#: ldexp.c:318
+msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
+msgstr "%P%F: bfd_hash_lookup не уÑÐ¿Ñ Ð´Ð° Ñъздаде име %s\n"
+
+#: ldexp.c:470
msgid "%P: warning: address of `%s' isn't multiple of maximum page size\n"
msgstr "%P: предупреждение: адреÑа на '%s' не е кратен на макÑÐ¸Ð¼Ð°Ð»Ð½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€ на Ñтраница\n"
-#: ldexp.c:439
+#: ldexp.c:548
#, c-format
msgid "%F%S %% by zero\n"
msgstr "%F%S %% на нула\n"
-#: ldexp.c:449
+#: ldexp.c:557
#, c-format
msgid "%F%S / by zero\n"
msgstr "%F%S / на нула\n"
-#: ldexp.c:643
+#: ldexp.c:752
#, c-format
msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
msgstr "%X%S: неразгадано име '%s' е указано в израза\n"
-#: ldexp.c:658
+#: ldexp.c:767
#, c-format
msgid "%F%S: undefined symbol `%s' referenced in expression\n"
msgstr "%F%S: неопределено име '%s' е указано в израза\n"
-#: ldexp.c:680 ldexp.c:698 ldexp.c:726
+#: ldexp.c:789 ldexp.c:807 ldexp.c:835
#, c-format
msgid "%F%S: undefined section `%s' referenced in expression\n"
msgstr "%F%S: в израза е указан неопределен раздел '%s'\n"
-#: ldexp.c:756 ldexp.c:771
+#: ldexp.c:867 ldexp.c:883
#, c-format
msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
msgstr "%F%S: неопределен MEMORY регион '%s' е указан в израза\n"
-#: ldexp.c:783
+#: ldexp.c:895
#, c-format
msgid "%F%S: unknown constant `%s' referenced in expression\n"
msgstr "%F%S: непозната конÑтанта '%s' е указана в израза\n"
-#: ldexp.c:931
+#: ldexp.c:1056
#, c-format
msgid "%F%S can not PROVIDE assignment to location counter\n"
msgstr "%F%S не може да Ñе приÑвои на броÑч за меÑтоположение\n"
-#: ldexp.c:957
+#: ldexp.c:1089
#, c-format
msgid "%F%S invalid assignment to location counter\n"
msgstr "%F%S неправилно приÑвоÑване на броÑч за меÑтоположение\n"
-#: ldexp.c:961
+#: ldexp.c:1093
#, c-format
msgid "%F%S assignment to location counter invalid outside of SECTIONS\n"
msgstr "%F%S неправилно приÑвоÑване на броÑч за меÑтоположение извън РÐЗДЕЛИ\n"
-#: ldexp.c:980
+#: ldexp.c:1112
msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
msgstr "%F%S не може да Ñе върне обратно броÑч на меÑтоположение (от %V към %V)\n"
-#: ldexp.c:1035
+#: ldexp.c:1171
msgid "%P%F:%s: hash creation failed\n"
msgstr "%P%F:%s: пропадна Ñъздаването на хеш\n"
-#: ldexp.c:1368 ldexp.c:1394 ldexp.c:1454
+#: ldexp.c:1529 ldexp.c:1555 ldexp.c:1615
#, c-format
msgid "%F%S: nonconstant expression for %s\n"
msgstr "%F%S: не е конÑтантен изразът за %s\n"
+#: ldexp.c:1641 ldlang.c:1235 ldlang.c:3170
+msgid "%P%F: can not create hash table: %E\n"
+msgstr "%P%F: н може да Ñе Ñъздаде хеш-таблицата: %E\n"
+
#: ldfile.c:132
#, c-format
msgid "attempt to open %s failed\n"
@@ -636,78 +658,73 @@ msgstr "опита да Ñе отвори %s уÑпÑ\n"
msgid "%F%P: invalid BFD target `%s'\n"
msgstr "%F%P: неправилна BFD цел '%s'\n"
-#: ldfile.c:257 ldfile.c:286
+#: ldfile.c:265 ldfile.c:295
msgid "%P: skipping incompatible %s when searching for %s\n"
msgstr "%P: пропуÑкане на неÑъвмеÑтим %s при Ñ‚ÑŠÑ€Ñене на %s\n"
-#: ldfile.c:270
+#: ldfile.c:278
msgid "%F%P: attempted static link of dynamic object `%s'\n"
msgstr "%F%P: опитано Ñтатично Ñвързване на динамичен обект '%s'\n"
-#: ldfile.c:408
+#: ldfile.c:405
msgid "%P: cannot find %s (%s): %E\n"
msgstr "%P: не Ñе намира %s в %s: %E\n"
-#: ldfile.c:411
+#: ldfile.c:408
msgid "%P: cannot find %s: %E\n"
msgstr "%P: не Ñе намира %s: %E\n"
-#: ldfile.c:446
+#: ldfile.c:443
msgid "%P: cannot find %s inside %s\n"
msgstr "%P: не Ñе намера %s в %s\n"
-#: ldfile.c:449
+#: ldfile.c:446
msgid "%P: cannot find %s\n"
msgstr "%P: не Ñе намира %s\n"
-#: ldfile.c:471
+#: ldfile.c:468
#, c-format
msgid "cannot find script file %s\n"
msgstr "не Ñе намира \"Ñкрипт\"-файл %s\n"
-#: ldfile.c:473
+#: ldfile.c:470
#, c-format
msgid "opened script file %s\n"
msgstr "отворен \"Ñкрипт\"-файл %s\n"
-#: ldfile.c:604
+#: ldfile.c:601
msgid "%P%F: cannot open linker script file %s: %E\n"
msgstr "%P%F: не може да Ñе отвори \"Ñкрипт\"-файл при Ñвързване %s: %E\n"
-#: ldfile.c:669
+#: ldfile.c:666
msgid "%P%F: cannot represent machine `%s'\n"
msgstr "%P%F: не може да Ñе предÑтави машина '%s'\n"
-#: ldlang.c:1194 ldlang.c:1232 ldlang.c:3154
-msgid "%P%F: can not create hash table: %E\n"
-msgstr "%P%F: н може да Ñе Ñъздаде хеш-таблицата: %E\n"
-
-#: ldlang.c:1288
+#: ldlang.c:1319
msgid "%P:%S: warning: redeclaration of memory region `%s'\n"
msgstr "%P:%S: предупреждение: повторно определение за регион памет '%s'\n"
-#: ldlang.c:1294
+#: ldlang.c:1325
msgid "%P:%S: warning: memory region `%s' not declared\n"
msgstr "%P: %S: предупр.: региона за памет '%s' не е обÑвен\n"
-#: ldlang.c:1329
+#: ldlang.c:1362
msgid "%F%P:%S: error: alias for default memory region\n"
msgstr "%F%P:%S: грешка: Ñиноним за регион памет по подразбиране\n"
-#: ldlang.c:1340
+#: ldlang.c:1373
msgid "%F%P:%S: error: redefinition of memory region alias `%s'\n"
msgstr "%F%P:%S: грешка: повторен определение на Ñиноним за регион памет '%s'\n"
-#: ldlang.c:1347
+#: ldlang.c:1380
msgid "%F%P:%S: error: memory region `%s' for alias `%s' does not exist\n"
msgstr "%F%P:%S: грешка: региона памет '%s' за Ñинонима '%s' не ÑъщеÑтвува\n"
-#: ldlang.c:1406 ldlang.c:1445
+#: ldlang.c:1439 ldlang.c:1478
msgid "%P%F: failed creating section `%s': %E\n"
msgstr "%P%F: пропадна Ñъздаването на раздел '%s': %E\n"
-#: ldlang.c:2000
-#, c-format
+#: ldlang.c:1999
msgid ""
"\n"
"As-needed library included to satisfy reference by file (symbol)\n"
@@ -717,7 +734,7 @@ msgstr ""
"Библиотека \"при нужда\" е включена, за да удовлетвори отпратка от файл (име)\n"
"\n"
-#: ldlang.c:2068
+#: ldlang.c:2065
#, c-format
msgid ""
"\n"
@@ -728,7 +745,7 @@ msgstr ""
"Отхвърлени входни раздели\n"
"\n"
-#: ldlang.c:2076
+#: ldlang.c:2073
msgid ""
"\n"
"Memory Configuration\n"
@@ -738,23 +755,23 @@ msgstr ""
"ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ð° паметта\n"
"\n"
-#: ldlang.c:2078
+#: ldlang.c:2075
msgid "Name"
msgstr "Име"
-#: ldlang.c:2078
+#: ldlang.c:2075
msgid "Origin"
msgstr "Произход"
-#: ldlang.c:2078
+#: ldlang.c:2075
msgid "Length"
msgstr "Дължина"
-#: ldlang.c:2078
+#: ldlang.c:2075
msgid "Attributes"
msgstr "Ðтрибути"
-#: ldlang.c:2118
+#: ldlang.c:2115
#, c-format
msgid ""
"\n"
@@ -770,173 +787,181 @@ msgid "%P%F: Illegal use of `%s' section\n"
msgstr "%P%F: Ðеправилно използване на раздел '%s'\n"
#: ldlang.c:2177
-msgid "%P%F: output format %s cannot represent section called %s\n"
-msgstr "%P%F: в Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ %s, не може да Ñе предÑтави раздел именуван %s\n"
+msgid "%P%F: output format %s cannot represent section called %s: %E\n"
+msgstr "%P%F: в Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ %s не може да Ñе предÑтави раздел именуван %s: %E\n"
-#: ldlang.c:2739
+#: ldlang.c:2757
msgid "%B: file not recognized: %E\n"
msgstr "%B: файлът не е разпознат: %E\n"
-#: ldlang.c:2740
+#: ldlang.c:2758
msgid "%B: matching formats:"
msgstr "%B: Ñъвпадащи формати:"
-#: ldlang.c:2747
+#: ldlang.c:2765
msgid "%F%B: file not recognized: %E\n"
msgstr "%F%B: файлът не е разпознат: %E\n"
-#: ldlang.c:2821
+#: ldlang.c:2837
msgid "%F%B: member %B in archive is not an object\n"
msgstr "%F%B: членът, на архива %B, не е обект\n"
-#: ldlang.c:2836 ldlang.c:2850
+#: ldlang.c:2852 ldlang.c:2866
msgid "%F%B: error adding symbols: %E\n"
msgstr "%F%B: грешка при добавÑне на имената: %E\n"
-#: ldlang.c:3124
+#: ldlang.c:3140
msgid "%P: warning: could not find any targets that match endianness requirement\n"
msgstr "%P: предупреждение: не може да Ñе открие резултат, който да Ð¾Ñ‚Ð³Ð¾Ð²Ð°Ñ€Ñ Ð½Ð° изиÑкваниÑта за подредба(на байтовете)\n"
-#: ldlang.c:3138
+#: ldlang.c:3154
msgid "%P%F: target %s not found\n"
msgstr "%P%F: целта %s не е намерена\n"
-#: ldlang.c:3140
+#: ldlang.c:3156
msgid "%P%F: cannot open output file %s: %E\n"
msgstr "%P%F: не може да Ñе отвори входÑщ файл %s: %E\n"
-#: ldlang.c:3146
+#: ldlang.c:3162
msgid "%P%F:%s: can not make object file: %E\n"
msgstr "%P%F:%s: не може да Ñе Ñъздаде обектен файл: %E\n"
-#: ldlang.c:3150
+#: ldlang.c:3166
msgid "%P%F:%s: can not set architecture: %E\n"
msgstr "%P%F:%s: не може да Ñе зададе архитектура: %E\n"
-#: ldlang.c:3322
+#: ldlang.c:3325
msgid "%P: warning: %s contains output sections; did you forget -T?\n"
msgstr "%P: предупр.: %s Ñъдържа изходÑщ раздел; забравен -T?\n"
-#: ldlang.c:3372
-msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
-msgstr "%P%F: bfd_hash_allocate не уÑÐ¿Ñ Ð´Ð° Ñъздаде име %s\n"
+#: ldlang.c:3465
+msgid "%P%X: required symbol `%s' not defined\n"
+msgstr "%P%X: не е определено задължителното име '%s'\n"
-#: ldlang.c:3402
-msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
-msgstr "%P%F: bfd_hash_lookup не уÑÐ¿Ñ Ð´Ð° Ñъздаде име %s\n"
-
-#: ldlang.c:3759
+#: ldlang.c:3755
msgid "%F%P: %s not found for insert\n"
msgstr "%F%P: %s не е намерен(за добавÑне)\n"
-#: ldlang.c:3974
+#: ldlang.c:3998
msgid " load address 0x%V"
msgstr " Ð°Ð´Ñ€ÐµÑ Ð½Ð° зареждане 0x%V"
-#: ldlang.c:4201
+#: ldlang.c:4234
msgid "%W (size before relaxing)\n"
msgstr "%W (размер преди намалÑване)\n"
-#: ldlang.c:4292
+#: ldlang.c:4327
#, c-format
msgid "Address of section %s set to "
msgstr "ÐдреÑÑŠÑ‚ на раздел %s е уÑтановен на "
-#: ldlang.c:4445
+#: ldlang.c:4489
#, c-format
msgid "Fail with %d\n"
msgstr "Ðе уÑÐ¿Ñ Ð¿Ñ€Ð¸ %d\n"
-#: ldlang.c:4733
-msgid "%X%P: section %s loaded at [%V,%V] overlaps section %s loaded at [%V,%V]\n"
-msgstr "%X%P: раздел %s зареден в [%V,%V] припокрива раздел %s зареден в [%V,%V]\n"
+#: ldlang.c:4759
+msgid "%X%P: section %s VMA wraps around address space\n"
+msgstr "%X%P: раздел %s VMA обгръща адреÑното проÑтранÑтво\n"
+
+#: ldlang.c:4765
+msgid "%X%P: section %s LMA wraps around address space\n"
+msgstr "%X%P: раздел %s LMA обгръща адреÑното проÑтранÑтво\n"
+
+#: ldlang.c:4816
+msgid "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"
+msgstr "%X%P: раздел %s LMA [%V,%V] припокрива раздел %s LMA [%V,%V]\n"
-#: ldlang.c:4749
+#: ldlang.c:4859
+msgid "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"
+msgstr "%X%P: раздел %s VMA [%V,%V] припокрива раздел %s VMA [%V,%V]\n"
+
+#: ldlang.c:4880
msgid "%X%P: region `%s' overflowed by %ld bytes\n"
-msgstr "%X%P: регионът '%s' е препълнен Ñ %ld байта\n"
+msgstr "%X%P: регион '%s' е препълнен Ñ %ld байта\n"
-#: ldlang.c:4772
+#: ldlang.c:4902
msgid "%X%P: address 0x%v of %B section `%s' is not within region `%s'\n"
-msgstr "%X%P: адреÑÑŠÑ‚ 0x%v от %B, раздел '%s', не е в регион '%s'\n"
+msgstr "%X%P: Ð°Ð´Ñ€ÐµÑ 0x%v от %B, раздел '%s', не е в регион '%s'\n"
-#: ldlang.c:4783
+#: ldlang.c:4913
msgid "%X%P: %B section `%s' will not fit in region `%s'\n"
msgstr "%X%P: %B раздел '%s' не Ñе побира в регион '%s'\n"
-#: ldlang.c:4840
+#: ldlang.c:4970
#, c-format
msgid "%F%S: non constant or forward reference address expression for section %s\n"
msgstr "%F%S: адреÑÐ½Ð¸Ñ Ð¸Ð·Ñ€Ð°Ð· не е конÑтантен или отпратка за по нататък при раздел %s\n"
-#: ldlang.c:4865
+#: ldlang.c:4995
msgid "%P%X: Internal error on COFF shared library section %s\n"
msgstr "%P%X: Вътрешна грешка при раздел от COFF Ñподелена библиотека %s\n"
-#: ldlang.c:4923
+#: ldlang.c:5053
msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
msgstr "%P%F: грешка: без зададени региони памет за заредим раздел '%s'\n"
-#: ldlang.c:4928
+#: ldlang.c:5058
msgid "%P: warning: no memory region specified for loadable section `%s'\n"
msgstr "%P: предупреждение: без зададени региони памет за заредим раздел '%s'\n"
-#: ldlang.c:4951
+#: ldlang.c:5081
msgid "%P: warning: changing start of section %s by %lu bytes\n"
msgstr "%P: предупреждение: промÑна на началото на раздел %s Ñ %lu байта\n"
-#: ldlang.c:5040
+#: ldlang.c:5170
msgid "%P: warning: dot moved backwards before `%s'\n"
msgstr "%P: предупреждение: точката е премеÑтена назад преди '%s'\n"
-#: ldlang.c:5212
+#: ldlang.c:5345
msgid "%P%F: can't relax section: %E\n"
msgstr "%P%F: не може да Ñе намали раздел: %E\n"
-#: ldlang.c:5557
+#: ldlang.c:5697
msgid "%F%P: invalid data statement\n"
msgstr "%F%P: неправилен Ñегмент за данни\n"
-#: ldlang.c:5590
+#: ldlang.c:5730
msgid "%F%P: invalid reloc statement\n"
msgstr "%F%P: неправилен Ñегмент за премеÑтване\n"
-#: ldlang.c:5802
+#: ldlang.c:6064
msgid "%P%F: gc-sections requires either an entry or an undefined symbol\n"
msgstr "%P%F: gc-раздели изиÑкват или вход или неопределено име\n"
-#: ldlang.c:5827
+#: ldlang.c:6089
msgid "%P%F:%s: can't set start address\n"
msgstr "%P%F:%s: не може да Ñе уÑтанови начален адреÑ\n"
-#: ldlang.c:5840 ldlang.c:5859
+#: ldlang.c:6102 ldlang.c:6121
msgid "%P%F: can't set start address\n"
msgstr "%P%F: не може да Ñе уÑтанови начален адреÑ\n"
-#: ldlang.c:5852
+#: ldlang.c:6114
msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
msgstr "%P: предупреждение: не е намерено входно име %s; по подразбиране - %V\n"
-#: ldlang.c:5864
+#: ldlang.c:6126
msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
msgstr "%P: предупреждение: не е намерен входно име %s; без начален адреÑ\n"
-#: ldlang.c:5916
+#: ldlang.c:6180
msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"
msgstr "%P%F: Свързване Ñ Ð¿Ñ€ÐµÐ¼ÐµÑÑ‚Ð²Ð°Ð½Ð¸Ñ Ð¾Ñ‚ формат %s (%B) към формат %s (%B) не Ñе поддържа\n"
-#: ldlang.c:5926
+#: ldlang.c:6190
msgid "%P%X: %s architecture of input file `%B' is incompatible with %s output\n"
msgstr "%P%X: %s архитектурата на входен файл '%B' е неÑъвмеÑтима Ñ %s изход\n"
-#: ldlang.c:5948
+#: ldlang.c:6212
msgid "%P%X: failed to merge target specific data of file %B\n"
msgstr "%P%X: пропадна Ñливането, на Ñпецифични за резултата данни, от файл %B\n"
-#: ldlang.c:6019
+#: ldlang.c:6283
msgid "%P%F: Could not define common symbol `%T': %E\n"
msgstr "%P%F: Ðе може да Ñе определÑÑ‚ общите имена '%T': %E\n"
-#: ldlang.c:6031
+#: ldlang.c:6295
msgid ""
"\n"
"Allocating common symbols\n"
@@ -944,7 +969,7 @@ msgstr ""
"\n"
"ЗаделÑне на общи имена\n"
-#: ldlang.c:6032
+#: ldlang.c:6296
msgid ""
"Common symbol size file\n"
"\n"
@@ -952,163 +977,170 @@ msgstr ""
"Общо име размер файл\n"
"\n"
-#: ldlang.c:6178
-msgid "%P%F: invalid syntax in flags\n"
-msgstr "%P%F: неправилен ÑинтакÑÐ¸Ñ Ð¿Ñ€Ð¸ флаговете\n"
+#: ldlang.c:6479
+msgid "%P%F: invalid character %c (%d) in flags\n"
+msgstr "%P%F: неправилен знак %c (%d) при флаговете\n"
-#: ldlang.c:6304
+#: ldlang.c:6606
msgid "%F%P:%S: error: align with input and explicit align specified\n"
msgstr "%F%P:%S: грешка: зададено е подравнÑване Ñ Ð²Ñ…Ð¾Ð´Ð° и изрично подравнÑване\n"
-#: ldlang.c:6645
+#: ldlang.c:7006
msgid "%P%F: Failed to create hash table\n"
msgstr "%P%F: Ðе уÑÐ¿Ñ Ñъздаването на хеш-таблица\n"
-#: ldlang.c:6668
+#: ldlang.c:7029
msgid "%P%F: %s: plugin reported error after all symbols read\n"
msgstr "%P%F: %s: приÑтавката рапортува грешка, Ñлед прочитане на вÑички имена\n"
-#: ldlang.c:6991
+#: ldlang.c:7404
msgid "%P%F: multiple STARTUP files\n"
msgstr "%P%F: многократни STARTUP файлове\n"
-#: ldlang.c:7037
+#: ldlang.c:7450
msgid "%X%P:%S: section has both a load address and a load region\n"
msgstr "%X%P:%S: раздел едновременно Ñ Ð°Ð´Ñ€ÐµÑ Ð¸ регион за зареждане\n"
-#: ldlang.c:7162
+#: ldlang.c:7565
msgid "%X%P:%S: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
msgstr "%X%P:%S: не Ñе поддържат PHDRS и FILEHDR, ако липÑват в предишни PT_LOAD заглавиÑ\n"
-#: ldlang.c:7235
+#: ldlang.c:7638
msgid "%F%P: no sections assigned to phdrs\n"
msgstr "%F%P: към phdrs не Ñа приÑвоени раздели\n"
-#: ldlang.c:7273
+#: ldlang.c:7676
msgid "%F%P: bfd_record_phdr failed: %E\n"
msgstr "%F%P: bfd_record_phdr не уÑпÑ: %E\n"
-#: ldlang.c:7293
+#: ldlang.c:7696
msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
msgstr "%X%P: раздел '%s' е приÑвоен към неÑъщеÑтвуващ phdr `%s'\n"
-#: ldlang.c:7705
+#: ldlang.c:8118
msgid "%X%P: unknown language `%s' in version information\n"
msgstr "%X%P: непознат език '%s' при Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° верÑиÑ\n"
-#: ldlang.c:7850
+#: ldlang.c:8263
msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
msgstr "%X%P: безименна отметка за верÑÐ¸Ñ Ð½Ðµ може да Ñе ÑмеÑва Ñ Ð´Ñ€ÑƒÐ³Ð¸ отметки за верÑии\n"
-#: ldlang.c:7859
+#: ldlang.c:8272
msgid "%X%P: duplicate version tag `%s'\n"
msgstr "%X%P: повторена отметка за верÑÐ¸Ñ '%s'\n"
-#: ldlang.c:7880 ldlang.c:7889 ldlang.c:7907 ldlang.c:7917
+#: ldlang.c:8293 ldlang.c:8302 ldlang.c:8320 ldlang.c:8330
msgid "%X%P: duplicate expression `%s' in version information\n"
msgstr "%X%P: повторен израз '%s'при Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° верÑиÑ\n"
-#: ldlang.c:7957
+#: ldlang.c:8370
msgid "%X%P: unable to find version dependency `%s'\n"
msgstr "%X%P: не може да Ñе намери завиÑимоÑÑ‚ за верÑÐ¸Ñ '%s'\n"
-#: ldlang.c:7980
+#: ldlang.c:8393
msgid "%X%P: unable to read .exports section contents\n"
msgstr "%X%P: не може да Ñе прочете Ñъдържанието на раздел .exports\n"
-#: ldlang.c:8104
+#: ldlang.c:8431
+msgid "%F%P: invalid origin for memory region %s\n"
+msgstr ""
+
+#: ldlang.c:8440
+msgid "%F%P: invalid length for memory region %s\n"
+msgstr "%F%P: неправилен размер за регион памет %s\n"
+
+#: ldlang.c:8550
msgid "%X%P: unknown feature `%s'\n"
msgstr "%X%P: непозната възможноÑÑ‚ '%s'\n"
-#: ldmain.c:246
+#: ldmain.c:250
msgid "%X%P: can't set BFD default target to `%s': %E\n"
msgstr "%X%P: цел по подразбиране на BFD, не можа да Ñе уÑтанови на '%s': %E\n"
-#: ldmain.c:336
+#: ldmain.c:349
msgid "built in linker script"
msgstr "вграден Ñкрипт за Ñвързване"
-#: ldmain.c:346
+#: ldmain.c:359
msgid "using external linker script:"
msgstr "използване на външен Ñкрипт за Ñвързване:"
-#: ldmain.c:348
+#: ldmain.c:361
msgid "using internal linker script:"
msgstr "използване на вътрешен Ñкрипт за Ñвързване:"
-#: ldmain.c:385
+#: ldmain.c:411
msgid "%P%F: no input files\n"
msgstr "%P%F: без входни файлове\n"
-#: ldmain.c:389
+#: ldmain.c:415
msgid "%P: mode %s\n"
msgstr "%P: режим %s\n"
-#: ldmain.c:405
+#: ldmain.c:431
msgid "%P%F: cannot open map file %s: %E\n"
msgstr "%P%F: не можа да Ñе отвори файл Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð·ÑÐ²Ð°Ð½Ð¸Ñ %s: %E\n"
-#: ldmain.c:437
+#: ldmain.c:480
msgid "%P: link errors found, deleting executable `%s'\n"
msgstr "%P: грешка при Ñвързване, изтриване на Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ Ñ„Ð°Ð¹Ð» '%s'\n"
-#: ldmain.c:446
+#: ldmain.c:489
msgid "%F%B: final close failed: %E\n"
msgstr "%F%B: пропадна заключителното затварÑне: %E\n"
-#: ldmain.c:472
-msgid "%X%P: unable to open for source of copy `%s'\n"
-msgstr "%X%P: не можа да Ñе отвори източника на копието '%s'\n"
+#: ldmain.c:516
+msgid "%P%F: unable to open for source of copy `%s'\n"
+msgstr "%P%F: не можа да Ñе отвори източника на копието '%s'\n"
-#: ldmain.c:475
-msgid "%X%P: unable to open for destination of copy `%s'\n"
-msgstr "%X%P: не можа да Ñе отвори целта на копието '%s'\n"
+#: ldmain.c:519
+msgid "%P%F: unable to open for destination of copy `%s'\n"
+msgstr "%P%F: не можа да Ñе отвори целта на копието '%s'\n"
-#: ldmain.c:482
+#: ldmain.c:526
msgid "%P: Error writing file `%s'\n"
msgstr "%P: Грешка при Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° файла '%s'\n"
-#: ldmain.c:487 pe-dll.c:1761
+#: ldmain.c:531 pe-dll.c:1786
#, c-format
msgid "%P: Error closing file `%s'\n"
msgstr "%P: Грешка при затварÑне на файла '%s'\n"
-#: ldmain.c:504
+#: ldmain.c:548
#, c-format
msgid "%s: total time in link: %ld.%06ld\n"
msgstr "%s: общо време за Ñвързване: %ld.%06ld\n"
-#: ldmain.c:507
+#: ldmain.c:551
#, c-format
msgid "%s: data size %ld\n"
msgstr "%s: размер на данни %ld\n"
-#: ldmain.c:591
+#: ldmain.c:635
msgid "%P%F: missing argument to -m\n"
msgstr "%P%F: липÑва аргумент за -m\n"
-#: ldmain.c:639 ldmain.c:656 ldmain.c:676 ldmain.c:708
+#: ldmain.c:685 ldmain.c:702 ldmain.c:722 ldmain.c:754
msgid "%P%F: bfd_hash_table_init failed: %E\n"
msgstr "%P%F: bfd_hash_table_init не уÑпÑ: %E\n"
-#: ldmain.c:643 ldmain.c:660 ldmain.c:680
+#: ldmain.c:689 ldmain.c:706 ldmain.c:726
msgid "%P%F: bfd_hash_lookup failed: %E\n"
msgstr "%P%F: bfd_hash_lookup не уÑпÑ: %E\n"
-#: ldmain.c:694
+#: ldmain.c:740
msgid "%X%P: error: duplicate retain-symbols-file\n"
msgstr "%X%P: грешка: повторен retain-symbols-file\n"
-#: ldmain.c:738
+#: ldmain.c:784
msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
msgstr "%P%F: bfd_hash_lookup не уÑÐ¿Ñ Ð¿Ñ€Ð¸ вмъкване: %E\n"
-#: ldmain.c:743
+#: ldmain.c:789
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
msgstr "%P: '-retain-symbols-file' Ð¾Ñ‚Ð¼ÐµÐ½Ñ '-s' и '-S'\n"
-#: ldmain.c:844
-#, c-format
+#: ldmain.c:883
msgid ""
"Archive member included to satisfy reference by file (symbol)\n"
"\n"
@@ -1116,164 +1148,164 @@ msgstr ""
"Включен е член на архива, за да удовлетвори отпратка от файл(име)\n"
"\n"
-#: ldmain.c:951
+#: ldmain.c:989
msgid "%X%C: multiple definition of `%T'\n"
msgstr "%X%C: многократни Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð·Ð° '%T'\n"
-#: ldmain.c:954
+#: ldmain.c:992
msgid "%D: first defined here\n"
msgstr "%D: първото определение тук\n"
-#: ldmain.c:958
+#: ldmain.c:996
msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
msgstr "%P: ЗабранÑва намалÑването: не работи Ñ Ð¼Ð½Ð¾Ð³Ð¾ÐºÑ€Ð°Ñ‚Ð½Ð¸ определениÑ\n"
-#: ldmain.c:1012
+#: ldmain.c:1048
msgid "%B: warning: definition of `%T' overriding common\n"
msgstr "%B: предупр.: определението за '%T' припокрива общ\n"
-#: ldmain.c:1015
+#: ldmain.c:1051
msgid "%B: warning: common is here\n"
msgstr "%B: предупр.: Ð¾Ð±Ñ‰Ð¸Ñ Ðµ тук\n"
-#: ldmain.c:1022
+#: ldmain.c:1058
msgid "%B: warning: common of `%T' overridden by definition\n"
msgstr "%B: предупр.: Ð¾Ð±Ñ‰Ð¸Ñ Ð½Ð° '%T' е припокрит от определение\n"
-#: ldmain.c:1025
+#: ldmain.c:1061
msgid "%B: warning: defined here\n"
msgstr "%B: предупр.: определено тук\n"
-#: ldmain.c:1032
+#: ldmain.c:1068
msgid "%B: warning: common of `%T' overridden by larger common\n"
msgstr "B: предупр.: Ð¾Ð±Ñ‰Ð¸Ñ Ð½Ð° '%T' е припокрит от по-голÑм общ\n"
-#: ldmain.c:1035
+#: ldmain.c:1071
msgid "%B: warning: larger common is here\n"
msgstr "%B: предупр.: по-големиÑÑ‚ общ е тук\n"
-#: ldmain.c:1039
+#: ldmain.c:1075
msgid "%B: warning: common of `%T' overriding smaller common\n"
msgstr "%B: предупр.: Ð¾Ð±Ñ‰Ð¸Ñ Ð½Ð° '%T' припокрива по-малък общ\n"
-#: ldmain.c:1042
+#: ldmain.c:1078
msgid "%B: warning: smaller common is here\n"
msgstr "%B: предупр.: тук е по-малкиÑÑ‚ общ\n"
-#: ldmain.c:1046
+#: ldmain.c:1082
msgid "%B: warning: multiple common of `%T'\n"
msgstr "%B: предупр.: многократeн общ за '%T'\n"
-#: ldmain.c:1048
+#: ldmain.c:1084
msgid "%B: warning: previous common is here\n"
msgstr "%B: предупр.: тук е предишниÑÑ‚ общ\n"
-#: ldmain.c:1068 ldmain.c:1106
+#: ldmain.c:1102 ldmain.c:1138
msgid "%P: warning: global constructor %s used\n"
msgstr "%P: предупр.: използван общ конÑтруктор %s\n"
-#: ldmain.c:1116
+#: ldmain.c:1148
msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
msgstr "%P%F: BFD грешка: BFD_RELOC_CTOR неподдържан\n"
#. We found a reloc for the symbol we are looking for.
-#: ldmain.c:1170 ldmain.c:1172 ldmain.c:1174 ldmain.c:1192 ldmain.c:1237
+#: ldmain.c:1220 ldmain.c:1222 ldmain.c:1224 ldmain.c:1232 ldmain.c:1275
msgid "warning: "
msgstr "предупр.: "
-#: ldmain.c:1290
+#: ldmain.c:1328
msgid "%X%C: undefined reference to `%T'\n"
msgstr "%X%C: неопределена отпратка към '%T'\n"
-#: ldmain.c:1293
+#: ldmain.c:1331
msgid "%C: warning: undefined reference to `%T'\n"
msgstr "%C: предупр.: неопределена отпратка към '%T'\n"
-#: ldmain.c:1299
+#: ldmain.c:1337
msgid "%X%D: more undefined references to `%T' follow\n"
msgstr "%X%D: Ñледват още неопределени отпратки към '%T'\n"
-#: ldmain.c:1302
+#: ldmain.c:1340
msgid "%D: warning: more undefined references to `%T' follow\n"
msgstr "%D: предупр.: Ñледват още неопределени отпратки към '%T'\n"
-#: ldmain.c:1313
+#: ldmain.c:1351
msgid "%X%B: undefined reference to `%T'\n"
msgstr "%X%B: неопределена отпратка към '%T'\n"
-#: ldmain.c:1316
+#: ldmain.c:1354
msgid "%B: warning: undefined reference to `%T'\n"
msgstr "%B: предупр.: неопределена отпратка към '%T'\n"
-#: ldmain.c:1322
+#: ldmain.c:1360
msgid "%X%B: more undefined references to `%T' follow\n"
msgstr "%X%B: още неопределени отпратки към '%T' Ñледват\n"
-#: ldmain.c:1325
+#: ldmain.c:1363
msgid "%B: warning: more undefined references to `%T' follow\n"
msgstr "%B: предупр.: още неопределени отпратки към '%T' Ñледват\n"
-#: ldmain.c:1364
+#: ldmain.c:1400
msgid " additional relocation overflows omitted from the output\n"
msgstr " допълнителен излишък за премеÑÑ‚Ð²Ð°Ð½Ð¸Ñ Ð¸Ð·Ð¿ÑƒÑнат в резултата\n"
-#: ldmain.c:1377
+#: ldmain.c:1413
msgid " relocation truncated to fit: %s against undefined symbol `%T'"
msgstr " премеÑтването отрÑзано, за да Ñъвпадне: %s Ñрещу неопределеното име '%T'"
-#: ldmain.c:1382
+#: ldmain.c:1419
msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"
msgstr " премеÑтването отрÑзано, за да Ñъвпадне: %s Ñрещу име '%T' определено в раздел %A от %B"
-#: ldmain.c:1394
+#: ldmain.c:1432
msgid " relocation truncated to fit: %s against `%T'"
msgstr " премеÑтването отрÑзано, за да Ñъвпадне: %s Ñрещу '%T'"
-#: ldmain.c:1411
+#: ldmain.c:1448
msgid "%X%H: dangerous relocation: %s\n"
msgstr "%X%H: опаÑно премеÑтване: %s\n"
-#: ldmain.c:1426
+#: ldmain.c:1462
msgid "%X%H: reloc refers to symbol `%T' which is not being output\n"
msgstr "%X%H: премеÑтването указва към име '%T', което не е изходÑщо\n"
-#: ldmisc.c:154
+#: ldmisc.c:153
#, c-format
msgid "no symbol"
msgstr "без имена"
-#: ldmisc.c:339
+#: ldmisc.c:341
msgid "%B: In function `%T':\n"
msgstr "%B: Във Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ '%T':\n"
-#: ldmisc.c:474
+#: ldmisc.c:476
msgid "%F%P: internal error %s %d\n"
msgstr "%F%P: вътрешна грешка %s %d\n"
-#: ldmisc.c:538
-msgid "%P: internal error: aborting at %s line %d in %s\n"
-msgstr "%P: вътрешна грешка: прекратÑване в %s ред %d от %s\n"
-
-#: ldmisc.c:541
-msgid "%P: internal error: aborting at %s line %d\n"
-msgstr "%P: вътрешна грешка: прекратÑване в %s ред %d\n"
+#: ldmisc.c:540
+msgid "%P: internal error: aborting at %s:%d in %s\n"
+msgstr "%P: вътрешна грешка: прекратÑване на %s:%d от %s\n"
#: ldmisc.c:543
+msgid "%P: internal error: aborting at %s:%d\n"
+msgstr "%P: вътрешна грешка: прекратÑване на %s:%d\n"
+
+#: ldmisc.c:545
msgid "%P%F: please report this bug\n"
msgstr "%P%F: молÑ, рапортувайте този проблем\n"
#. Output for noisy == 2 is intended to follow the GNU standards.
-#: ldver.c:39
+#: ldver.c:37
#, c-format
msgid "GNU ld %s\n"
msgstr "ГÐУ ld %s\n"
-#: ldver.c:43
+#: ldver.c:41
#, c-format
-msgid "Copyright 2014 Free Software Foundation, Inc.\n"
-msgstr "ÐвторÑко право: 2014 Free Software Foundation, Inc.\n"
+msgid "Copyright (C) 2017 Free Software Foundation, Inc.\n"
+msgstr "ÐвторÑко право: 2017 Ð¤Ð¾Ð½Ð´Ð°Ñ†Ð¸Ñ Ð·Ð° Ñвободен Ñофтуер\n"
-#: ldver.c:44
+#: ldver.c:42
#, c-format
msgid ""
"This program is free software; you may redistribute it under the terms of\n"
@@ -1284,324 +1316,344 @@ msgstr ""
"на Ð’Ñеобщ Публичен Лиценз ГÐУ верÑÐ¸Ñ 3 или по ваш избор, Ñледваща верÑиÑ.\n"
"Тази програма е без гаранции.\n"
-#: ldver.c:54
+#: ldver.c:52
#, c-format
msgid " Supported emulations:\n"
msgstr " Поддържани подражаваниÑ:\n"
-#: ldwrite.c:62 ldwrite.c:208
+#: ldwrite.c:60 ldwrite.c:206
msgid "%P%F: bfd_new_link_order failed\n"
msgstr "%P%F: пропадна bfd_new_link_order\n"
-#: ldwrite.c:366
+#: ldwrite.c:364
msgid "%F%P: cannot create split section name for %s\n"
msgstr "%F%P: при разцепване на раздел, не можа да Ñе Ñъздаде име за %s\n"
-#: ldwrite.c:378
+#: ldwrite.c:376
msgid "%F%P: clone section failed: %E\n"
msgstr "%F%P: пропадна копирането на раздел: %E\n"
-#: ldwrite.c:419
+#: ldwrite.c:414
#, c-format
msgid "%8x something else\n"
msgstr "%8x други\n"
-#: ldwrite.c:589
+#: ldwrite.c:584
msgid "%F%P: final link failed: %E\n"
msgstr "%F%P: пропадна заключителното Ñвързване: %E\n"
-#: lexsup.c:104 lexsup.c:261
+#: lexsup.c:102 lexsup.c:276
msgid "KEYWORD"
msgstr "КЛЮЧ"
-#: lexsup.c:104
+#: lexsup.c:102
msgid "Shared library control for HP/UX compatibility"
msgstr "Управление на Ñподелени библиотеки за ÑъвмеÑтимоÑÑ‚ Ñ HP/UX"
-#: lexsup.c:107
+#: lexsup.c:105
msgid "ARCH"
msgstr "ÐРХИТЕКТУРÐ"
-#: lexsup.c:107
+#: lexsup.c:105
msgid "Set architecture"
msgstr "Задава архитектура"
-#: lexsup.c:109 lexsup.c:380
+#: lexsup.c:107 lexsup.c:398
msgid "TARGET"
msgstr "РЕЗУЛТÐТ"
-#: lexsup.c:109
+#: lexsup.c:107
msgid "Specify target for following input files"
msgstr "Задава вида на резултата за Ñледващите входни файлове"
-#: lexsup.c:112 lexsup.c:163 lexsup.c:190 lexsup.c:203 lexsup.c:205
-#: lexsup.c:334 lexsup.c:396 lexsup.c:463 lexsup.c:476
+#: lexsup.c:110 lexsup.c:167 lexsup.c:171 lexsup.c:202 lexsup.c:215
+#: lexsup.c:217 lexsup.c:352 lexsup.c:416 lexsup.c:483 lexsup.c:496
msgid "FILE"
msgstr "ФÐЙЛ"
-#: lexsup.c:112
+#: lexsup.c:110
msgid "Read MRI format linker script"
msgstr "Използва Ñкрипт за Ñвързване в MRI формат"
-#: lexsup.c:114
+#: lexsup.c:112
msgid "Force common symbols to be defined"
msgstr "Принудително определÑне на общи имена"
-#: lexsup.c:118 lexsup.c:440 lexsup.c:442 lexsup.c:444 lexsup.c:446
-#: lexsup.c:448 lexsup.c:450
+#: lexsup.c:117
+msgid "Force group members out of groups"
+msgstr ""
+
+#: lexsup.c:119 lexsup.c:460 lexsup.c:462 lexsup.c:464 lexsup.c:466
+#: lexsup.c:468 lexsup.c:470
msgid "ADDRESS"
msgstr "ÐДРЕС"
-#: lexsup.c:118
+#: lexsup.c:119
msgid "Set start address"
msgstr "Задава начален адреÑ"
-#: lexsup.c:120
+#: lexsup.c:121
msgid "Export all dynamic symbols"
msgstr "ИзнаÑÑне на вÑички динамични имена"
-#: lexsup.c:122
+#: lexsup.c:123
msgid "Undo the effect of --export-dynamic"
msgstr "ÐžÑ‚Ð¼ÐµÐ½Ñ Ð´ÐµÐ¹Ñтвието на --export-dynamic"
-#: lexsup.c:124
+#: lexsup.c:125
msgid "Link big-endian objects"
msgstr "Свързване на обекти ÑÑŠÑ Ñтарши байт първи"
-#: lexsup.c:126
+#: lexsup.c:127
msgid "Link little-endian objects"
msgstr "Свързване на обекти ÑÑŠÑ Ð¼Ð»Ð°Ð´ÑˆÐ¸ байт първи"
-#: lexsup.c:128 lexsup.c:131
+#: lexsup.c:129 lexsup.c:132
msgid "SHLIB"
msgstr "СПОД_БИБЛ"
-#: lexsup.c:128
+#: lexsup.c:129
msgid "Auxiliary filter for shared object symbol table"
msgstr "Допълнителен филтър за таблицата Ñ Ð¸Ð¼ÐµÐ½Ð° на Ñподелени обекти"
-#: lexsup.c:131
+#: lexsup.c:132
msgid "Filter for shared object symbol table"
msgstr "Филтър за таблицата Ñ Ð¸Ð¼ÐµÐ½Ð° на Ñподелени обекти"
-#: lexsup.c:134
+#: lexsup.c:135
msgid "Ignored"
msgstr "Пренебрегнат"
-#: lexsup.c:136
+#: lexsup.c:137
msgid "SIZE"
msgstr "РÐЗМЕР"
-#: lexsup.c:136
+#: lexsup.c:137
msgid "Small data size (if no size, same as --shared)"
msgstr "Данни Ñ Ð¿Ð¾-малък размер (без размер е като --shared)"
-#: lexsup.c:139
+#: lexsup.c:140
msgid "FILENAME"
msgstr "ИМЕ_ФÐЙЛ"
-#: lexsup.c:139
+#: lexsup.c:140
msgid "Set internal name of shared library"
msgstr "Ð—Ð°Ð´Ð°Ð²Ñ Ð²ÑŠÑ‚Ñ€ÐµÑˆÐ½Ð¾ име на Ñподелена библиотека"
-#: lexsup.c:141
+#: lexsup.c:142
msgid "PROGRAM"
msgstr "ПРОГРÐÐœÐ"
-#: lexsup.c:141
+#: lexsup.c:142
msgid "Set PROGRAM as the dynamic linker to use"
msgstr "Задава ПРОГРÐМРза използване при динамично Ñвързване"
-#: lexsup.c:144
+#: lexsup.c:145
+msgid "Produce an executable with no program interpreter header"
+msgstr ""
+
+#: lexsup.c:148
msgid "LIBNAME"
msgstr "БИБЛ_ИМЕ"
-#: lexsup.c:144
+#: lexsup.c:148
msgid "Search for library LIBNAME"
msgstr "ТърÑене на библиотека БИБЛ_ИМЕ"
-#: lexsup.c:146
+#: lexsup.c:150
msgid "DIRECTORY"
msgstr "ДИРЕКТОРИЯ"
-#: lexsup.c:146
+#: lexsup.c:150
msgid "Add DIRECTORY to library search path"
msgstr "Ð”Ð¾Ð±Ð°Ð²Ñ Ð”Ð˜Ð Ð•ÐšÐ¢ÐžÐ Ð˜Ð¯ към Ð¿ÑŠÑ‚Ñ Ð·Ð° Ñ‚ÑŠÑ€Ñене на библиотеки"
-#: lexsup.c:149
+#: lexsup.c:153
msgid "Override the default sysroot location"
msgstr "Припокрива Ð¿Ð¾Ð´Ñ€Ð°Ð·Ð±Ð¸Ñ€Ð°Ñ‰Ð¸Ñ Ñе systoot"
-#: lexsup.c:151
+#: lexsup.c:155
msgid "EMULATION"
msgstr "ПОДРÐЖÐÐ’ÐÐЕ"
-#: lexsup.c:151
+#: lexsup.c:155
msgid "Set emulation"
msgstr "Задава подражаване"
-#: lexsup.c:153
+#: lexsup.c:157
msgid "Print map file on standard output"
msgstr "Извежда на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´ файл Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð·ÑваниÑта"
-#: lexsup.c:155
+#: lexsup.c:159
msgid "Do not page align data"
msgstr "Да не Ñе подравнÑват данните на Ñтраници"
-#: lexsup.c:157
+#: lexsup.c:161
msgid "Do not page align data, do not make text readonly"
msgstr "Да не Ñе подравнÑват данните на Ñтраници, кода да не е Ñамо за четене"
-#: lexsup.c:160
+#: lexsup.c:164
msgid "Page align data, make text readonly"
msgstr "ПодравнÑват данните на Ñтраници, кода да е Ñамо за четене"
-#: lexsup.c:163
+#: lexsup.c:167
msgid "Set output file name"
msgstr "Задава име на файл за извеждане"
-#: lexsup.c:165
+#: lexsup.c:169
msgid "Optimize output file"
msgstr "Оптимизиране на Ð¸Ð·Ð²ÐµÐ¶Ð´Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»"
-#: lexsup.c:168
+#: lexsup.c:171
+msgid "Generate import library"
+msgstr "Създаване на Ñподелена библиотека за внаÑÑне"
+
+#: lexsup.c:174
msgid "PLUGIN"
msgstr "ПРИСТÐВКÐ"
-#: lexsup.c:168
+#: lexsup.c:174
msgid "Load named plugin"
msgstr "Зарежда именувана приÑтавка"
-#: lexsup.c:170
+#: lexsup.c:176
msgid "ARG"
msgstr "ÐРГ"
-#: lexsup.c:170
+#: lexsup.c:176
msgid "Send arg to last-loaded plugin"
msgstr "Изпраща арг. към поÑледно заредената приÑтавка"
-#: lexsup.c:172 lexsup.c:175
+#: lexsup.c:178 lexsup.c:181
msgid "Ignored for GCC LTO option compatibility"
msgstr "Пренебрегнато за ÑъвмеÑтимоÑÑ‚ Ñ GCC LTO възможноÑÑ‚"
-#: lexsup.c:179
+#: lexsup.c:185
msgid "Ignored for GCC linker option compatibility"
msgstr "Пренебрегнато за ÑъвмеÑтимоÑÑ‚ Ñ Ð“ÐУ програмата за Ñвързване"
-#: lexsup.c:182
+#: lexsup.c:188 lexsup.c:191
+msgid "Ignored for gold option compatibility"
+msgstr "Пренебрегнато за ÑъвмеÑтимоÑÑ‚ Ñ gold"
+
+#: lexsup.c:194
msgid "Ignored for SVR4 compatibility"
msgstr "Пренебрегнат за ÑъвмеÑтимоÑÑ‚ ÑÑŠÑ SVR4"
-#: lexsup.c:186
+#: lexsup.c:198
msgid "Generate relocatable output"
msgstr "Създаване на премеÑтваем резултат"
-#: lexsup.c:190
+#: lexsup.c:202
msgid "Just link symbols (if directory, same as --rpath)"
msgstr "Само Ñвързване на имената (ако е директориÑ, Ñъщо като --rpath)"
-#: lexsup.c:193
+#: lexsup.c:205
msgid "Strip all symbols"
msgstr "Премахване на вÑички имена"
-#: lexsup.c:195
+#: lexsup.c:207
msgid "Strip debugging symbols"
msgstr "Премахване на имена за траÑиране"
-#: lexsup.c:197
+#: lexsup.c:209
msgid "Strip symbols in discarded sections"
msgstr "Премахване на имена в отхвърлени раздели"
-#: lexsup.c:199
+#: lexsup.c:211
msgid "Do not strip symbols in discarded sections"
msgstr "Без премахване на имена в отхвърлени раздели"
-#: lexsup.c:201
+#: lexsup.c:213
msgid "Trace file opens"
msgstr "ПроÑледÑване на отварÑните файлове"
-#: lexsup.c:203
+#: lexsup.c:215
msgid "Read linker script"
msgstr "Използва Ñкрипт за Ñвързване"
-#: lexsup.c:205
+#: lexsup.c:217
msgid "Read default linker script"
msgstr "Използва Ñкрипт за Ñвързване по подразбиране"
-#: lexsup.c:209 lexsup.c:227 lexsup.c:311 lexsup.c:332 lexsup.c:433
-#: lexsup.c:466 lexsup.c:505 lexsup.c:508
+#: lexsup.c:221 lexsup.c:224 lexsup.c:242 lexsup.c:326 lexsup.c:350
+#: lexsup.c:453 lexsup.c:486 lexsup.c:525 lexsup.c:528
msgid "SYMBOL"
msgstr "ИМЕ"
-#: lexsup.c:209
+#: lexsup.c:221
msgid "Start with undefined reference to SYMBOL"
msgstr "Ðачало Ñ Ð½ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð° отпратка към ИМЕ"
-#: lexsup.c:212
+#: lexsup.c:224
+msgid "Require SYMBOL be defined in the final output"
+msgstr "ИзиÑква ИМЕ да бъде определено е Ð·Ð°ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÐµÐ»Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´ÐµÐ½ файл"
+
+#: lexsup.c:227
msgid "[=SECTION]"
msgstr "[=РÐЗДЕЛ]"
-#: lexsup.c:213
+#: lexsup.c:228
msgid "Don't merge input [SECTION | orphan] sections"
msgstr "Без Ñливане на входÑщи [РÐЗДЕЛ | оÑиротÑл] раздели"
-#: lexsup.c:215
+#: lexsup.c:230
msgid "Build global constructor/destructor tables"
msgstr "Изграждане на общи конÑтрутор/деÑтруктор таблици"
-#: lexsup.c:217
+#: lexsup.c:232
msgid "Print version information"
msgstr "Извеждане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° верÑиÑ"
-#: lexsup.c:219
+#: lexsup.c:234
msgid "Print version and emulation information"
msgstr "Извеждане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° верÑÐ¸Ñ Ð¸ подражаване"
-#: lexsup.c:221
+#: lexsup.c:236
msgid "Discard all local symbols"
msgstr "ОтхвърлÑне на вÑички меÑтни имена"
-#: lexsup.c:223
+#: lexsup.c:238
msgid "Discard temporary local symbols (default)"
msgstr "ОтхвърлÑне на временни меÑтни имена (по подразбиране)"
-#: lexsup.c:225
+#: lexsup.c:240
msgid "Don't discard any local symbols"
msgstr "Без отхвърлÑне на меÑтни имена"
-#: lexsup.c:227
+#: lexsup.c:242
msgid "Trace mentions of SYMBOL"
msgstr "ПроÑледÑване на поÑочваниÑта на ИМЕ"
-#: lexsup.c:229 lexsup.c:398 lexsup.c:400
+#: lexsup.c:244 lexsup.c:418 lexsup.c:420
msgid "PATH"
msgstr "ПЪТ"
-#: lexsup.c:229
+#: lexsup.c:244
msgid "Default search path for Solaris compatibility"
msgstr "Път за Ñ‚ÑŠÑ€Ñене по подразбиране за ÑъвмеÑтимоÑÑ‚ ÑÑŠÑ Ð¡Ð¾Ð»Ð°Ñ€Ð¸Ñ"
-#: lexsup.c:232
+#: lexsup.c:247
msgid "Start a group"
msgstr "Ðачало на група"
-#: lexsup.c:234
+#: lexsup.c:249
msgid "End a group"
msgstr "Край на група"
-#: lexsup.c:238
+#: lexsup.c:253
msgid "Accept input files whose architecture cannot be determined"
msgstr "Приемане на входÑщи файлове, чиÑто архитектура не може да Ñе определи"
-#: lexsup.c:242
+#: lexsup.c:257
msgid "Reject input files whose architecture is unknown"
msgstr "Игнориране на входни файлове Ñ Ð½ÐµÐ¿Ð¾Ð·Ð½Ð°Ñ‚Ð° архитектура"
-#: lexsup.c:254
+#: lexsup.c:269
msgid "Only set DT_NEEDED for following dynamic libs if used"
msgstr "УÑтановÑва Ñе DT_NEEDED за Ñледните динамични библ., Ñамо ако Ñе използва"
-#: lexsup.c:257
+#: lexsup.c:272
msgid ""
"Always set DT_NEEDED for dynamic libraries mentioned on\n"
" the command line"
@@ -1609,171 +1661,175 @@ msgstr ""
"Винаги Ñе уÑтановÑва DT_NEEDED за динамичните библиотеки\n"
" поÑочени на ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´"
-#: lexsup.c:261
+#: lexsup.c:276
msgid "Ignored for SunOS compatibility"
msgstr "Пренебрегнат(ÑъвмеÑтимоÑÑ‚ ÑÑŠÑ SunOS)"
-#: lexsup.c:263
+#: lexsup.c:278
msgid "Link against shared libraries"
msgstr "Свързване ÑÑŠÑ Ñподелени библиотеки"
-#: lexsup.c:269
+#: lexsup.c:284
msgid "Do not link against shared libraries"
msgstr "Без Ñвързване ÑÑŠÑ Ñподелени библиотеки"
-#: lexsup.c:277
+#: lexsup.c:292
msgid "Bind global references locally"
msgstr "Привързване на общи препратки като меÑтни"
-#: lexsup.c:279
+#: lexsup.c:294
msgid "Bind global function references locally"
msgstr "Привързване на общи препратки за функции като меÑтни"
-#: lexsup.c:281
+#: lexsup.c:296
msgid "Check section addresses for overlaps (default)"
msgstr "Проверка за припокриване на адреÑите на раздели (по подразбиране)"
-#: lexsup.c:284
+#: lexsup.c:299
msgid "Do not check section addresses for overlaps"
msgstr "Без проверка за припокриване за адреÑите на раздели"
-#: lexsup.c:288
+#: lexsup.c:303
msgid "Copy DT_NEEDED links mentioned inside DSOs that follow"
msgstr "Копиране на DT_NEEDED връзки Ñпоменати в DSO-то, което Ñледва"
-#: lexsup.c:292
+#: lexsup.c:307
msgid "Do not copy DT_NEEDED links mentioned inside DSOs that follow"
msgstr "Да не Ñе копират DT_NEEDED връзки Ñпоменати в DSO-то, което Ñледва"
-#: lexsup.c:296
+#: lexsup.c:311
msgid "Output cross reference table"
msgstr "Извежда таблица Ñ ÐºÑ€ÑŠÑтоÑани отпратки"
-#: lexsup.c:298
+#: lexsup.c:313
msgid "SYMBOL=EXPRESSION"
msgstr "ИМЕ=ИЗРÐЗ"
-#: lexsup.c:298
+#: lexsup.c:313
msgid "Define a symbol"
msgstr "Задаване на име"
-#: lexsup.c:300
+#: lexsup.c:315
msgid "[=STYLE]"
msgstr "[=ÐÐЧИÐ]"
-#: lexsup.c:300
+#: lexsup.c:315
msgid "Demangle symbol names [using STYLE]"
msgstr "Декориране на имена [използвайки ÐÐЧИÐ]"
-#: lexsup.c:303
+#: lexsup.c:318
msgid "Generate embedded relocs"
msgstr "Създаване на вградени премеÑтваниÑ"
-#: lexsup.c:305
+#: lexsup.c:320
msgid "Treat warnings as errors"
msgstr "Третиране на Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ°Ñ‚Ð¾ грешки"
-#: lexsup.c:308
+#: lexsup.c:323
msgid "Do not treat warnings as errors (default)"
msgstr "Да не Ñе третиране Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ°Ñ‚Ð¾ грешки (по подразбиране)"
-#: lexsup.c:311
+#: lexsup.c:326
msgid "Call SYMBOL at unload-time"
msgstr "Извикване на ИМЕ по време разтоварване"
-#: lexsup.c:313
+#: lexsup.c:328
msgid "Force generation of file with .exe suffix"
msgstr "Принудително Ñъздаване на файл Ñ Ð½Ð°Ñтавка .exe "
-#: lexsup.c:315
+#: lexsup.c:330
msgid "Remove unused sections (on some targets)"
msgstr "Изтриване на неизползвани раздели (за нÑкои резултати)"
-#: lexsup.c:318
+#: lexsup.c:333
msgid "Don't remove unused sections (default)"
msgstr "Без изтриване на неизползвани раздели (по подразбиране)"
-#: lexsup.c:321
+#: lexsup.c:336
msgid "List removed unused sections on stderr"
msgstr "Извеждане, на изхода за грешки, на изтритите неизползвани раздели"
-#: lexsup.c:324
+#: lexsup.c:339
msgid "Do not list removed unused sections"
msgstr "Без извеждане на изтритите неизползвани раздели"
-#: lexsup.c:327
+#: lexsup.c:342
+msgid "Keep exported symbols when removing unused sections"
+msgstr ""
+
+#: lexsup.c:345
msgid "Set default hash table size close to <NUMBER>"
msgstr "УÑтановÑва размер по подразбиране на таблицат за хеш близък до <ЧИСЛО>"
-#: lexsup.c:330
+#: lexsup.c:348
msgid "Print option help"
msgstr "Извеждане на помощ за опците"
-#: lexsup.c:332
+#: lexsup.c:350
msgid "Call SYMBOL at load-time"
msgstr "Извикване на ИМЕ по време на зареждане"
-#: lexsup.c:334
+#: lexsup.c:352
msgid "Write a map file"
msgstr "ЗапиÑване на файл Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð·ÑваниÑ"
-#: lexsup.c:336
+#: lexsup.c:354
msgid "Do not define Common storage"
msgstr "Без определÑне на Ð°Ð´Ñ€ÐµÑ Ð·Ð° общи имена"
-#: lexsup.c:338
+#: lexsup.c:356
msgid "Do not demangle symbol names"
msgstr "Без Ð´ÐµÐºÐ¾Ñ€Ð°Ñ†Ð¸Ñ Ð·Ð° имената"
-#: lexsup.c:340
+#: lexsup.c:358
msgid "Use less memory and more disk I/O"
msgstr "Използване на по-малко памет и повече диÑкови операции"
-#: lexsup.c:342
+#: lexsup.c:360
msgid "Do not allow unresolved references in object files"
msgstr "ÐепозволÑва неÑвързани отпратки при обектни файлове"
-#: lexsup.c:345
+#: lexsup.c:363
msgid "Allow unresolved references in shared libraries"
msgstr "ПозволÑва неÑвързани отпратки при Ñподелени библиотеки"
-#: lexsup.c:349
+#: lexsup.c:367
msgid "Do not allow unresolved references in shared libs"
msgstr "ÐепозволÑва неÑвързани отпратки при Ñподелени библиотеки"
-#: lexsup.c:353
+#: lexsup.c:371
msgid "Allow multiple definitions"
msgstr "ПозволÑва повтарÑне на определениÑ"
-#: lexsup.c:355
+#: lexsup.c:373
msgid "Disallow undefined version"
msgstr "ÐепозволÑва неопределена верÑиÑ"
-#: lexsup.c:357
+#: lexsup.c:375
msgid "Create default symbol version"
msgstr "Създаване на подразбираща Ñе верÑÐ¸Ñ Ð·Ð° име"
-#: lexsup.c:360
+#: lexsup.c:378
msgid "Create default symbol version for imported symbols"
msgstr "Създаване на подразбираща Ñе верÑÐ¸Ñ Ð·Ð° име при внеÑените имена"
-#: lexsup.c:363
+#: lexsup.c:381
msgid "Don't warn about mismatched input files"
msgstr "Без предупреждениe за неÑъответÑтващи входÑщи файлове"
-#: lexsup.c:366
+#: lexsup.c:384
msgid "Don't warn on finding an incompatible library"
msgstr "Без Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ откриване на неÑъвмеÑтими библиотеки"
-#: lexsup.c:369
+#: lexsup.c:387
msgid "Turn off --whole-archive"
msgstr "Изключване на --whole-archive"
-#: lexsup.c:371
+#: lexsup.c:389
msgid "Create an output file even if errors occur"
msgstr "Създаване на изходен файл, дори при грешки"
-#: lexsup.c:376
+#: lexsup.c:394
msgid ""
"Only use library directories specified on\n"
" the command line"
@@ -1781,139 +1837,143 @@ msgstr ""
"Използване Ñамо на директорите за библиотеки\n"
" зададени на ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´"
-#: lexsup.c:380
+#: lexsup.c:398
msgid "Specify target of output file"
msgstr "Задаване на целта за резултата"
-#: lexsup.c:383
+#: lexsup.c:401
msgid "Print default output format"
msgstr "Извежда Ð¿Ð¾Ð´Ñ€Ð°Ð·Ð±Ð¸Ñ€Ð°Ñ‰Ð¸Ñ Ñе изходÑщ формат"
-#: lexsup.c:385
+#: lexsup.c:403
+msgid "Print current sysroot"
+msgstr "Извежда Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ sysroot"
+
+#: lexsup.c:405
msgid "Ignored for Linux compatibility"
-msgstr "Пренебрегнат(ÑъвмеÑтимоÑÑ‚ Ñ Ð»Ð¸Ð½ÑƒÐºÑ)"
+msgstr "Пренебрегнат за ÑъвмеÑтимоÑÑ‚ Ñ Ð›Ð¸Ð½ÑƒÐºÑ"
-#: lexsup.c:388
+#: lexsup.c:408
msgid "Reduce memory overheads, possibly taking much longer"
msgstr "ÐамалÑване на използваната памет, възможно е Ñвързването да протече по-дълго"
-#: lexsup.c:391
+#: lexsup.c:411
msgid "Reduce code size by using target specific optimizations"
msgstr "ÐамалÑване на размера на кода Ñ Ð¸Ð·Ð¿Ð¾Ð»Ð·Ð²Ð°Ð½Ðµ на Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ…Ð°Ñ€Ð°ÐºÑ‚ÐµÑ€Ð½Ð° за целта"
-#: lexsup.c:393
+#: lexsup.c:413
msgid "Do not use relaxation techniques to reduce code size"
msgstr "Да не Ñе използват намалÑващи похвати, за да Ñе ограничи размера на кода"
-#: lexsup.c:396
+#: lexsup.c:416
msgid "Keep only symbols listed in FILE"
msgstr "Запазване Ñамо на имената изброени във ФÐЙЛ"
-#: lexsup.c:398
+#: lexsup.c:418
msgid "Set runtime shared library search path"
msgstr "Задава път за Ñ‚ÑŠÑ€Ñене на Ñподелена библиотека по време на изпълнение"
-#: lexsup.c:400
+#: lexsup.c:420
msgid "Set link time shared library search path"
msgstr "Задава път за Ñ‚ÑŠÑ€Ñене на Ñподелена библиотека по време на Ñвързване"
-#: lexsup.c:403
+#: lexsup.c:423
msgid "Create a shared library"
msgstr "Създаване на Ñподелена библиотека"
-#: lexsup.c:407
+#: lexsup.c:427
msgid "Create a position independent executable"
msgstr "Създаване на позиционно незавиÑим изпълним файл"
-#: lexsup.c:411
+#: lexsup.c:431
msgid "[=ascending|descending]"
msgstr "[=възходÑщ|низходÑщ]"
-#: lexsup.c:412
+#: lexsup.c:432
msgid "Sort common symbols by alignment [in specified order]"
msgstr "Подреждане на общите имена по подравнÑване [в Ð·Ð°Ð´Ð°Ð´ÐµÐ½Ð¸Ñ Ñ€ÐµÐ´]"
-#: lexsup.c:417
+#: lexsup.c:437
msgid "name|alignment"
msgstr "име|подравнÑване"
-#: lexsup.c:418
+#: lexsup.c:438
msgid "Sort sections by name or maximum alignment"
msgstr "Подреждане на раздели по име или макÑимално подравнÑваме"
-#: lexsup.c:420
+#: lexsup.c:440
msgid "COUNT"
msgstr "БРОЙ"
-#: lexsup.c:420
+#: lexsup.c:440
msgid "How many tags to reserve in .dynamic section"
msgstr "Колко отметки да Ñе заделÑÑ‚ за раздел .dynamic"
-#: lexsup.c:423
+#: lexsup.c:443
msgid "[=SIZE]"
msgstr "[=РÐЗМЕР]"
-#: lexsup.c:423
+#: lexsup.c:443
msgid "Split output sections every SIZE octets"
msgstr "РазделÑне на резултатните раздели на вÑеки РÐЗМЕР оÑморки"
-#: lexsup.c:426
+#: lexsup.c:446
msgid "[=COUNT]"
msgstr "[=БРОЙ]"
-#: lexsup.c:426
+#: lexsup.c:446
msgid "Split output sections every COUNT relocs"
msgstr "РазделÑне на резултатните раздели на вÑеки БРОЙ премеÑтваниÑ"
-#: lexsup.c:429
+#: lexsup.c:449
msgid "Print memory usage statistics"
msgstr "Извеждане на ÑтатиÑтика за изполване на паметта"
-#: lexsup.c:431
+#: lexsup.c:451
msgid "Display target specific options"
msgstr "Извеждане на опции, Ñпецифични за целта"
-#: lexsup.c:433
+#: lexsup.c:453
msgid "Do task level linking"
msgstr "Свързване на ниво задача"
-#: lexsup.c:435
+#: lexsup.c:455
msgid "Use same format as native linker"
msgstr "Използване на ÑÑŠÑ‰Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ като Ñтандартната програма за Ñвързване"
-#: lexsup.c:437
+#: lexsup.c:457
msgid "SECTION=ADDRESS"
msgstr "РÐЗДЕЛ=ÐДРЕС"
-#: lexsup.c:437
+#: lexsup.c:457
msgid "Set address of named section"
msgstr "Задаване на Ð°Ð´Ñ€ÐµÑ Ð½Ð° именуван раздел"
-#: lexsup.c:440
+#: lexsup.c:460
msgid "Set address of .bss section"
msgstr "Задаване на Ð°Ð´Ñ€ÐµÑ Ð½Ð° раздел .bss"
-#: lexsup.c:442
+#: lexsup.c:462
msgid "Set address of .data section"
msgstr "Задаване на Ð°Ð´Ñ€ÐµÑ Ð½Ð° раздел .data"
-#: lexsup.c:444
+#: lexsup.c:464
msgid "Set address of .text section"
msgstr "Задаване на Ð°Ð´Ñ€ÐµÑ Ð½Ð° раздел .text"
-#: lexsup.c:446
+#: lexsup.c:466
msgid "Set address of text segment"
msgstr "Задаване Ð°Ð´Ñ€ÐµÑ Ð½Ð° раздел .text"
-#: lexsup.c:448
+#: lexsup.c:468
msgid "Set address of rodata segment"
msgstr "Задаване Ð°Ð´Ñ€ÐµÑ Ð½Ð° раздел .rodata"
-#: lexsup.c:450
+#: lexsup.c:470
msgid "Set address of ldata segment"
msgstr "Задаване Ð°Ð´Ñ€ÐµÑ Ð½Ð° раздел .ldata"
-#: lexsup.c:453
+#: lexsup.c:473
msgid ""
"How to handle unresolved symbols. <method> is:\n"
" ignore-all, report-all, ignore-in-object-files,\n"
@@ -1923,119 +1983,143 @@ msgstr ""
" ignore-all, report-all, ignore-in-object-files,\n"
" ignore-in-shared-libs"
-#: lexsup.c:458
+#: lexsup.c:478
msgid "[=NUMBER]"
msgstr "[=ЧИСЛО]"
-#: lexsup.c:459
+#: lexsup.c:479
msgid "Output lots of information during link"
msgstr "Извеждане, при Ñвързване, на допълнителна информациÑ"
-#: lexsup.c:463
+#: lexsup.c:483
msgid "Read version information script"
msgstr "Използва Ñкрипт Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° верÑии"
-#: lexsup.c:466
+#: lexsup.c:486
msgid ""
"Take export symbols list from .exports, using\n"
" SYMBOL as the version."
msgstr ""
-"Използване на ÑпиÑък Ñ Ð¸Ð¼ÐµÐ½Ð° за екÑпорт от .exports, използвайки\n"
+"Използване на ÑпиÑък Ñ Ð¸Ð¼ÐµÐ½Ð° за Ð¸Ð·Ð½Ð¾Ñ Ð¾Ñ‚ .exports, използвайки\n"
" ИМЕ като верÑиÑ."
-#: lexsup.c:470
+#: lexsup.c:490
msgid "Add data symbols to dynamic list"
msgstr "ДобавÑне на имената на данните към динамичен ÑпиÑък"
-#: lexsup.c:472
+#: lexsup.c:492
msgid "Use C++ operator new/delete dynamic list"
msgstr "Използване на динамичен ÑпиÑък за C++ оператори new/delete"
-#: lexsup.c:474
+#: lexsup.c:494
msgid "Use C++ typeinfo dynamic list"
msgstr "Използване на динамичен ÑпиÑък за \"C++ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° тип\""
-#: lexsup.c:476
+#: lexsup.c:496
msgid "Read dynamic list"
msgstr "Използва динамичен ÑпиÑък"
-#: lexsup.c:478
+#: lexsup.c:498
msgid "Warn about duplicate common symbols"
msgstr "Предупреждение при повторени общи имена"
-#: lexsup.c:480
+#: lexsup.c:500
msgid "Warn if global constructors/destructors are seen"
msgstr "Предупреждение, ако Ñе Ñрещнат общи конÑтрутори/деÑтруктори"
-#: lexsup.c:483
+#: lexsup.c:503
msgid "Warn if the multiple GP values are used"
msgstr "Предупреждение за използване на нÑколко GP ÑтойноÑти"
-#: lexsup.c:485
+#: lexsup.c:505
msgid "Warn only once per undefined symbol"
msgstr "Еднократно предупреждение за неопределено име"
-#: lexsup.c:487
+#: lexsup.c:507
msgid "Warn if start of section changes due to alignment"
msgstr "Предупреждение, ако началото на раздел Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð·Ð°Ñ€Ð°Ð´Ð¸ подравнÑване"
-#: lexsup.c:490
+#: lexsup.c:510
msgid "Warn if shared object has DT_TEXTREL"
msgstr "Предупреждение, ако Ñподелен обект Ñъдържа DT_TEXTREL"
-#: lexsup.c:493
+#: lexsup.c:513
msgid "Warn if an object has alternate ELF machine code"
msgstr "Предупреждение ако обекта е Ñ Ð´Ñ€ÑƒÐ³ ELF ELF код за машина"
-#: lexsup.c:497
+#: lexsup.c:517
msgid "Report unresolved symbols as warnings"
msgstr "Рапортуване като предупреждениÑ, на неÑвързани имена"
-#: lexsup.c:500
+#: lexsup.c:520
msgid "Report unresolved symbols as errors"
msgstr "Рапортуване, като грешки, на неÑвързани имена"
-#: lexsup.c:502
+#: lexsup.c:522
msgid "Include all objects from following archives"
msgstr "Включване на вÑички обекти от Ñледните архиви"
-#: lexsup.c:505
+#: lexsup.c:525
msgid "Use wrapper functions for SYMBOL"
msgstr "Използване на 'обвиващи' функции за ИМЕ"
-#: lexsup.c:509
+#: lexsup.c:529
msgid "Unresolved SYMBOL will not cause an error or warning"
msgstr "Ðеизползвано ИМЕ нÑма да причини грешка или предупреждение"
-#: lexsup.c:659
+#: lexsup.c:531
+msgid "Push state of flags governing input file handling"
+msgstr ""
+
+#: lexsup.c:534
+msgid "Pop state of flags governing input file handling"
+msgstr ""
+
+#: lexsup.c:537
+msgid "Report target memory usage"
+msgstr ""
+
+#: lexsup.c:539
+msgid "=MODE"
+msgstr ""
+
+#: lexsup.c:539
+msgid "Control how orphan sections are handled."
+msgstr ""
+
+#: lexsup.c:705
+msgid "%P: %s: missing argument\n"
+msgstr "%P: %s: липÑва аргумент\n"
+
+#: lexsup.c:710
msgid "%P: unrecognized option '%s'\n"
msgstr "%P: неразпозната Ð¾Ð¿Ñ†Ð¸Ñ '%s'\n"
-#: lexsup.c:663
+#: lexsup.c:715
msgid "%P%F: use the --help option for usage information\n"
msgstr "%P%F: за Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° употреба Ñе използва Ð¾Ð¿Ñ†Ð¸Ñ --help \n"
-#: lexsup.c:681
+#: lexsup.c:734
msgid "%P%F: unrecognized -a option `%s'\n"
msgstr "%P%F: неразпозната Ð¾Ð¿Ñ†Ð¸Ñ -a '%s'\n"
-#: lexsup.c:694
+#: lexsup.c:747
msgid "%P%F: unrecognized -assert option `%s'\n"
msgstr "%P%F: неразпозната Ð¾Ð¿Ñ†Ð¸Ñ -assert '%s'\n"
-#: lexsup.c:735
+#: lexsup.c:791
msgid "%F%P: unknown demangling style `%s'\n"
msgstr "%F%P: непознат начин за декориране на имена '%s'\n"
-#: lexsup.c:801 lexsup.c:1239
+#: lexsup.c:861 lexsup.c:1330
msgid "%P%F: invalid number `%s'\n"
msgstr "%P%F: неправилно чиÑло '%s'\n"
-#: lexsup.c:899
+#: lexsup.c:962
msgid "%P%F: bad --unresolved-symbols option: %s\n"
msgstr "%P%F: грешна Ð¾Ð¿Ñ†Ð¸Ñ --unresolved-symbols: %s\n"
-#: lexsup.c:968
+#: lexsup.c:1039
msgid "%P%F: bad -plugin-opt option\n"
msgstr "%P%F: грешна Ð¾Ð¿Ñ†Ð¸Ñ -plugin-opt\n"
@@ -2047,242 +2131,517 @@ msgstr "%P%F: грешна Ð¾Ð¿Ñ†Ð¸Ñ -plugin-opt\n"
#. 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:985
-msgid "%P%F: bad -rpath option\n"
-msgstr "%P%F: грешна Ð¾Ð¿Ñ†Ð¸Ñ -rpath\n"
+#: lexsup.c:1056
+msgid "%P%F: unrecognised option: %s\n"
+msgstr "%P%F: неразпозната Ð¾Ð¿Ñ†Ð¸Ñ '%s'\n"
+
+#: lexsup.c:1059 lexsup.c:1299
+msgid "%P%F: -r and %s may not be used together\n"
+msgstr "%P%F: не може да Ñе използват заедно -r и %s\n"
+
+#: lexsup.c:1166
+msgid "%P%F: -r and -shared may not be used together\n"
+msgstr "%P%F: -r и -shared не може да Ñе използват заедно\n"
-#: lexsup.c:1099
+#: lexsup.c:1177
msgid "%P%F: -shared not supported\n"
msgstr "%P%F: -shared не Ñе поддържа\n"
-#: lexsup.c:1108
+#: lexsup.c:1183
+msgid "%P%F: -r and -pie may not be used together\n"
+msgstr "%P%F: не може да Ñе използват заедно -r и -pie\n"
+
+#: lexsup.c:1188
msgid "%P%F: -pie not supported\n"
msgstr "%P%F: -pie не Ñе поддържа\n"
-#: lexsup.c:1116
+#: lexsup.c:1194
+msgid "%P: SONAME must not be empty string; keeping previous one\n"
+msgstr "%P: SONAME не може да е празен низ - запазване на предишното\n"
+
+#: lexsup.c:1200
msgid "descending"
msgstr "низходÑщ"
-#: lexsup.c:1118
+#: lexsup.c:1202
msgid "ascending"
msgstr "възходÑщ"
-#: lexsup.c:1121
+#: lexsup.c:1205
msgid "%P%F: invalid common section sorting option: %s\n"
msgstr "%P%F: неправилна обща Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° подреждане на : %s\n"
-#: lexsup.c:1125
+#: lexsup.c:1209
msgid "name"
msgstr "име"
-#: lexsup.c:1127
+#: lexsup.c:1211
msgid "alignment"
msgstr "подравнÑване"
-#: lexsup.c:1130
+#: lexsup.c:1214
msgid "%P%F: invalid section sorting option: %s\n"
msgstr "%P%F: неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° подреждане на раздел: %s\n"
-#: lexsup.c:1164
+#: lexsup.c:1248
msgid "%P%F: invalid argument to option \"--section-start\"\n"
msgstr "%P%F: неправилен аргумент за опциÑта \"--section-start\"\n"
-#: lexsup.c:1171
+#: lexsup.c:1255
msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
msgstr "%P%F: липÑват аргументи за опциÑта \"--section-start\"\n"
-#: lexsup.c:1414
+#: lexsup.c:1505
msgid "%P%F: group ended before it began (--help for usage)\n"
msgstr "%P%F: групата завърши преди да е започната (--help за употреба)\n"
-#: lexsup.c:1442
+#: lexsup.c:1533
msgid "%P%X: --hash-size needs a numeric argument\n"
msgstr "%P%X: --hash-size изиÑква чиÑло за аргумент\n"
-#: lexsup.c:1473
-msgid "%P%F: -r and -shared may not be used together\n"
-msgstr "%P%F: -r и -shared не може да Ñе използват заедно\n"
+#: lexsup.c:1545
+msgid "%P%F: no state pushed before popping\n"
+msgstr ""
-#: lexsup.c:1516
+#: lexsup.c:1568
+msgid "%P%F: invalid argument to option \"--orphan-handling\"\n"
+msgstr "%P%F: неправилен аргумент за опциÑта \"--orphan-handling\"\n"
+
+#: lexsup.c:1576
+msgid "%P: SONAME must not be empty string; ignored\n"
+msgstr "%P: SONAME не може да е празен низ - пренебрегнато\n"
+
+#: lexsup.c:1644
msgid "%P%F: -F may not be used without -shared\n"
msgstr "%P%F: -F не може да Ñе използва без -shared\n"
-#: lexsup.c:1518
+#: lexsup.c:1646
msgid "%P%F: -f may not be used without -shared\n"
msgstr "%P%F: -f не може да Ñе използва без -shared\n"
-#: lexsup.c:1562 lexsup.c:1575
+#: lexsup.c:1687 lexsup.c:1700
msgid "%P%F: invalid hex number `%s'\n"
msgstr "%P%F: неправилно шеÑÑ‚. чиÑло '%s'\n"
-#: lexsup.c:1611
+#: lexsup.c:1730
+#, c-format
+msgid " --audit=AUDITLIB Specify a library to use for auditing\n"
+msgstr ""
+
+#: lexsup.c:1732
+#, c-format
+msgid " -Bgroup Selects group name lookup rules for DSO\n"
+msgstr ""
+
+#: lexsup.c:1734
+#, c-format
+msgid " --disable-new-dtags Disable new dynamic tags\n"
+msgstr ""
+
+#: lexsup.c:1736
+#, c-format
+msgid " --enable-new-dtags Enable new dynamic tags\n"
+msgstr ""
+
+#: lexsup.c:1738
+#, c-format
+msgid " --eh-frame-hdr Create .eh_frame_hdr section\n"
+msgstr ""
+
+#: lexsup.c:1740
+#, c-format
+msgid " --no-eh-frame-hdr Do not create .eh_frame_hdr section\n"
+msgstr ""
+
+#: lexsup.c:1742
+#, c-format
+msgid " --exclude-libs=LIBS Make all symbols in LIBS hidden\n"
+msgstr ""
+
+#: lexsup.c:1744
+#, c-format
+msgid " --hash-style=STYLE Set hash style to sysv, gnu or both\n"
+msgstr ""
+
+#: lexsup.c:1746
+#, c-format
+msgid ""
+" -P AUDITLIB, --depaudit=AUDITLIB\n"
+"\t\t\t Specify a library to use for auditing dependencies\n"
+msgstr ""
+
+#: lexsup.c:1749
+#, c-format
+msgid " -z combreloc Merge dynamic relocs into one section and sort\n"
+msgstr ""
+
+#: lexsup.c:1751
+#, c-format
+msgid " -z nocombreloc Don't merge dynamic relocs into one section\n"
+msgstr ""
+
+#: lexsup.c:1753
+#, c-format
+msgid ""
+" -z global Make symbols in DSO available for subsequently\n"
+"\t\t\t loaded objects\n"
+msgstr ""
+
+#: lexsup.c:1756
+#, c-format
+msgid " -z initfirst Mark DSO to be initialized first at runtime\n"
+msgstr ""
+
+#: lexsup.c:1758
+#, c-format
+msgid " -z interpose Mark object to interpose all DSOs but executable\n"
+msgstr ""
+
+#: lexsup.c:1760
+#, c-format
+msgid " -z lazy Mark object lazy runtime binding (default)\n"
+msgstr ""
+
+#: lexsup.c:1762
+#, c-format
+msgid " -z loadfltr Mark object requiring immediate process\n"
+msgstr ""
+
+#: lexsup.c:1764
+#, c-format
+msgid " -z nocopyreloc Don't create copy relocs\n"
+msgstr ""
+
+#: lexsup.c:1766
+#, c-format
+msgid " -z nodefaultlib Mark object not to use default search paths\n"
+msgstr ""
+
+#: lexsup.c:1768
+#, c-format
+msgid " -z nodelete Mark DSO non-deletable at runtime\n"
+msgstr ""
+
+#: lexsup.c:1770
+#, c-format
+msgid " -z nodlopen Mark DSO not available to dlopen\n"
+msgstr ""
+
+#: lexsup.c:1772
+#, c-format
+msgid " -z nodump Mark DSO not available to dldump\n"
+msgstr ""
+
+#: lexsup.c:1774
+#, c-format
+msgid " -z now Mark object non-lazy runtime binding\n"
+msgstr ""
+
+#: lexsup.c:1776
+#, c-format
+msgid ""
+" -z origin Mark object requiring immediate $ORIGIN\n"
+"\t\t\t\tprocessing at runtime\n"
+msgstr ""
+
+#: lexsup.c:1780
+#, c-format
+msgid " -z relro Create RELRO program header (default)\n"
+msgstr ""
+
+#: lexsup.c:1782
+#, c-format
+msgid " -z norelro Don't create RELRO program header\n"
+msgstr ""
+
+#: lexsup.c:1785
+#, c-format
+msgid " -z relro Create RELRO program header\n"
+msgstr ""
+
+#: lexsup.c:1787
+#, c-format
+msgid " -z norelro Don't create RELRO program header (default)\n"
+msgstr ""
+
+#: lexsup.c:1790
+#, c-format
+msgid " -z common Generate common symbols with STT_COMMON type\n"
+msgstr ""
+
+#: lexsup.c:1792
+#, c-format
+msgid " -z nocommon Generate common symbols with STT_OBJECT type\n"
+msgstr ""
+
+#: lexsup.c:1794
+#, c-format
+msgid " -z stack-size=SIZE Set size of stack segment\n"
+msgstr " -z --stack <размер> УÑтановÑва размера на чаÑта за Ñтек\n"
+
+#: lexsup.c:1796
+#, c-format
+msgid " -z text Treat DT_TEXTREL in shared object as error\n"
+msgstr ""
+
+#: lexsup.c:1798
+#, c-format
+msgid " -z notext Don't treat DT_TEXTREL in shared object as error\n"
+msgstr ""
+
+#: lexsup.c:1800
+#, c-format
+msgid " -z textoff Don't treat DT_TEXTREL in shared object as error\n"
+msgstr ""
+
+#: lexsup.c:1807
+#, c-format
+msgid " --build-id[=STYLE] Generate build ID note\n"
+msgstr ""
+
+#: lexsup.c:1809
+#, c-format
+msgid ""
+" --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]\n"
+" Compress DWARF debug sections using zlib\n"
+msgstr ""
+
+#: lexsup.c:1813
+#, c-format
+msgid " Default: zlib-gabi\n"
+msgstr " По подразбиране: zlib-gabi\n"
+
+#: lexsup.c:1816
+#, c-format
+msgid " Default: none\n"
+msgstr " По подразбиране: none\n"
+
+#: lexsup.c:1819
+#, c-format
+msgid " -z common-page-size=SIZE Set common page size to SIZE\n"
+msgstr ""
+
+#: lexsup.c:1821
+#, c-format
+msgid " -z max-page-size=SIZE Set maximum page size to SIZE\n"
+msgstr ""
+
+#: lexsup.c:1823
+#, c-format
+msgid " -z defs Report unresolved symbols in object files.\n"
+msgstr ""
+
+#: lexsup.c:1825
+#, c-format
+msgid " -z muldefs Allow multiple definitions\n"
+msgstr ""
+
+#: lexsup.c:1827
+#, c-format
+msgid " -z execstack Mark executable as requiring executable stack\n"
+msgstr ""
+
+#: lexsup.c:1829
+#, c-format
+msgid " -z noexecstack Mark executable as not requiring executable stack\n"
+msgstr ""
+
+#: lexsup.c:1836
+#, c-format
+msgid ""
+" --ld-generated-unwind-info Generate exception handling info for PLT\n"
+" --no-ld-generated-unwind-info\n"
+" Don't generate exception handling info for PLT\n"
+msgstr ""
+
+#: lexsup.c:1848
+#, c-format
+msgid "ELF emulations:\n"
+msgstr ""
+
+#: lexsup.c:1866
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "Употреба: %s [опции] файл...\n"
-#: lexsup.c:1613
+#: lexsup.c:1868
#, c-format
msgid "Options:\n"
msgstr "Команди:\n"
-#: lexsup.c:1691
+#: lexsup.c:1946
#, c-format
msgid " @FILE"
msgstr " @ФÐЙЛ"
-#: lexsup.c:1694
+#: lexsup.c:1949
#, c-format
msgid "Read options from FILE\n"
msgstr "Използва опции от ФÐЙЛ\n"
#. Note: Various tools (such as libtool) depend upon the
#. format of the listings below - do not change them.
-#: lexsup.c:1699
+#: lexsup.c:1954
#, c-format
msgid "%s: supported targets:"
msgstr "%s: поддържани цели:"
-#: lexsup.c:1707
+#: lexsup.c:1962
#, c-format
msgid "%s: supported emulations: "
msgstr "%s: поддържани емулации: "
-#: lexsup.c:1712
+#: lexsup.c:1967
#, c-format
msgid "%s: emulation specific options:\n"
msgstr "%s: Ñпецифични опции при емулациÑ:\n"
-#: lexsup.c:1717
+#: lexsup.c:1974
#, c-format
msgid "Report bugs to %s\n"
msgstr "Подавайте доклади за грешки на %s\n"
-#: mri.c:294
+#: mri.c:295
msgid "%P%F: unknown format type %s\n"
msgstr "%P%F: непознат формат %s\n"
-#: pe-dll.c:430
-#, c-format
-msgid "%XUnsupported PEI architecture: %s\n"
-msgstr "%XÐеподдържна PEI архитектура: %s\n"
+#: pe-dll.c:442
+msgid "%P%X: Unsupported PEI architecture: %s\n"
+msgstr "%P%X: Ðеподдържaна PEI архитектура: %s\n"
+
+#: pe-dll.c:811
+msgid "%P%X: Cannot export %s: invalid export name\n"
+msgstr "%P%X: Ðе може да Ñе изнеÑе %s: неправилно име за изнаÑÑне\n"
-#: pe-dll.c:799
+#: pe-dll.c:863
#, c-format
-msgid "%XCannot export %s: invalid export name\n"
-msgstr "%XÐе може да Ñе изнеÑе %s: неправилно име за екÑпорт\n"
+msgid "%P%X: Error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
+msgstr "%P%X: Грешка, повторен EXPORT Ñ Ð½Ð¾Ð¼ÐµÑ€Ð°: %s (%d Ñ/у %d)\n"
-#: pe-dll.c:851
+#: pe-dll.c:870
#, c-format
-msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
-msgstr "%XГрешка, повторен EXPORT Ñ Ð½Ð¾Ð¼ÐµÑ€Ð°: %s (%d Ñ/у %d)\n"
+msgid "%P: Warning, duplicate EXPORT: %s\n"
+msgstr "%P: Предупреждение, повторен EXPORT: %s\n"
-#: pe-dll.c:858
+#: pe-dll.c:980
#, c-format
-msgid "Warning, duplicate EXPORT: %s\n"
-msgstr "Предупреждение, повторен EXPORT: %s\n"
+msgid "%P%X: Cannot export %s: symbol not defined\n"
+msgstr "%P%%X: Ðе може да Ñе изнеÑе %s: името е неопределено\n"
-#: pe-dll.c:961
+#: pe-dll.c:986
#, c-format
-msgid "%XCannot export %s: symbol not defined\n"
-msgstr "%XÐе може да Ñе изнеÑе %s: името не е определено\n"
+msgid "%P%X: Cannot export %s: symbol wrong type (%d vs %d)\n"
+msgstr "%P%X: Ðе може да Ñе изнеÑе %s: име ÑÑŠÑ Ñгрешен тип (%d Ñ/у %d)\n"
-#: pe-dll.c:967
+#: pe-dll.c:993
#, c-format
-msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
-msgstr "%XÐе може да Ñе изнеÑе %s: име ÑÑŠÑ Ñгрешен тип (%d Ñ/у %d)\n"
+msgid "%P%X: Cannot export %s: symbol not found\n"
+msgstr "%P%X: Ðе може да Ñе изнеÑе %s: името не е намерено\n"
-#: pe-dll.c:974
+#: pe-dll.c:1107
#, c-format
-msgid "%XCannot export %s: symbol not found\n"
-msgstr "%XÐе може да Ñе изнеÑе %s: името липÑва\n"
+msgid "%P%X: Error: ordinal used twice: %d (%s vs %s)\n"
+msgstr "%P%X: Грешка, номера е използван два пъти: %d (%s Ñ/у %s)\n"
-#: pe-dll.c:1088
+#: pe-dll.c:1143
#, c-format
-msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
-msgstr "%XГрешка, номера е използван два пъти: %d (%s Ñ/у %s)\n"
+msgid "%P%X: Error: export ordinal too large: %d\n"
+msgstr "%P%X: Грешка: номера е твърде голÑм: %d\n"
-#: pe-dll.c:1478
+#: pe-dll.c:1503
#, c-format
-msgid "%XError: %d-bit reloc in dll\n"
-msgstr "%XГрешка: %d-битово премеÑтване в dll\n"
+msgid "%P%X: Error: %d-bit reloc in dll\n"
+msgstr "%P%X: Грешка: %d-битово премеÑтване в dll\n"
-#: pe-dll.c:1606
+#: pe-dll.c:1631
#, c-format
-msgid "%s: Can't open output def file %s\n"
-msgstr "%s: Ðе може да Ñе отвори за извеждане def-файл %s\n"
+msgid "%P: Can't open output def file %s\n"
+msgstr "%P: Ðе може да Ñе отвори, за извеждане, def-файл %s\n"
-#: pe-dll.c:1757
+#: pe-dll.c:1782
#, c-format
msgid "; no contents available\n"
msgstr "; липÑва Ñъдържание\n"
-#: pe-dll.c:2684
-msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
-msgstr "%C: променливата '%T' не може да Ñе внеÑе автоматично. Да Ñе прочете документациÑта на ld --enable-auto-import за повече информациÑ.\n"
+#: pe-dll.c:2701
+msgid "%P%X%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
+msgstr "%P%X%C: променливата '%T' не може да Ñе внеÑе автоматично. Да Ñе прочете в документациÑта на ld за повече ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð½Ð¾Ñно --enable-auto-import.\n"
-#: pe-dll.c:2714
+#: pe-dll.c:2729
#, c-format
-msgid "%XCan't open .lib file: %s\n"
-msgstr "%XÐе може да Ñе отвори lib-файл: %s\n"
+msgid "%P%X: Can't open .lib file: %s\n"
+msgstr "%P%X: Ðе може да Ñе отвори lib-файл: %s\n"
-#: pe-dll.c:2720
+#: pe-dll.c:2735
#, c-format
msgid "Creating library file: %s\n"
msgstr "Създаване на библиотека: %s\n"
-#: pe-dll.c:2749
-#, c-format
-msgid "%Xbfd_openr %s: %E\n"
-msgstr "%Xbfd_openr %s: %E\n"
+#: pe-dll.c:2764
+msgid "%P%X: bfd_openr %s: %E\n"
+msgstr "%P%X: bfd_openr %s: %E\n"
-#: pe-dll.c:2761
-#, c-format
-msgid "%X%s(%s): can't find member in non-archive file"
-msgstr "%X%s(%s): не е намерена член в файл, който не е архив"
+#: pe-dll.c:2776
+msgid "%P%X: %s(%s): can't find member in non-archive file"
+msgstr "%P%X: %s(%s): не е намерена чаÑтта във файл, който не е архив"
-#: pe-dll.c:2773
-#, c-format
-msgid "%X%s(%s): can't find member in archive"
-msgstr "%X%s(%s): не е намерен член в архива"
+#: pe-dll.c:2788
+msgid "%P%X: %s(%s): can't find member in archive"
+msgstr "%P%X: %s(%s): не е намерен чаÑтта в архива"
-#: pe-dll.c:3356
-#, c-format
-msgid "%XError: can't use long section names on this arch\n"
-msgstr "%XError: на тази архитектура не може да Ñе използват дълги имена за раздели\n"
+#: pe-dll.c:3414
+msgid "%P%X: Error: can't use long section names on this arch\n"
+msgstr "%P%X: Грешка: за тази архитектура не може да Ñе използват дълги имена за раздели\n"
-#: plugin.c:185 plugin.c:218
+#: plugin.c:231 plugin.c:277
msgid "<no plugin>"
msgstr "<без приÑтавка>"
-#: plugin.c:199 plugin.c:814
+#: plugin.c:246 plugin.c:1017
msgid "%P%F: %s: error loading plugin: %s\n"
msgstr "%P%F: %s: грешка при зареждане на приÑтавка: %s\n"
-#: plugin.c:257
+#: plugin.c:253
+msgid "%P: %s: duplicated plugin\n"
+msgstr "%P: %s: повторение на приÑтавка\n"
+
+#: plugin.c:339
#, c-format
msgid "could not create dummy IR bfd: %F%E\n"
msgstr "не може да Ñе Ñъздаде измиÑлен IR bfd: %F%E\n"
-#: plugin.c:350
+#: plugin.c:427
msgid "%P%F: %s: non-ELF symbol in ELF BFD!\n"
msgstr "%P%F: %s: не е ELF име при ELF BFD!\n"
-#: plugin.c:354
+#: plugin.c:431
msgid "%P%F: unknown ELF symbol visibility: %d!\n"
msgstr "%P%F: непозната видимоÑÑ‚ на ELF име: %d!\n"
-#: plugin.c:591
+#: plugin.c:542
+msgid "%P%F: unsupported input file size: %s (%ld bytes)\n"
+msgstr "%P%X: неподдържан размер на входен файл %s (%ld байта)\n"
+
+#: plugin.c:786
msgid "%P: %B: symbol `%s' definition: %d, visibility: %d, resolution: %d\n"
msgstr "%P: %B: име '%s' определение: %d, видимоÑÑ‚: %d, решение: %d\n"
-#: plugin.c:821
+#: plugin.c:1024
msgid "%P%F: %s: plugin error: %d\n"
msgstr "%P%F: %s: грешка в приÑтавка: %d\n"
-#: plugin.c:871
+#: plugin.c:1083
+msgid "%P%F: plugin_strdup failed to allocate memory: %s\n"
+msgstr ""
+
+#: plugin.c:1115
+msgid "%P%F: plugin failed to allocate memory for input: %s\n"
+msgstr ""
+
+#: plugin.c:1148
msgid "%P%F: %s: plugin reported error claiming file\n"
msgstr "%P%F: %s: приÑтавката рапортува грешка, при твърдениÑта за файла\n"
-#: plugin.c:936
+#: plugin.c:1258
msgid "%P: %s: error in plugin cleanup: %d (ignored)\n"
msgstr "%P: %s: грешка при почиÑтване на приÑтавка: %d (пренебрегната)\n"
diff --git a/ld/po/da.po b/ld/po/da.po
index 119d348..66f8f11 100644
--- a/ld/po/da.po
+++ b/ld/po/da.po
@@ -11,6 +11,7 @@ msgstr ""
"PO-Revision-Date: 2011-01-10 01:31+0100\n"
"Last-Translator: Keld Simonsen <keld@keldix.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -21,7 +22,7 @@ msgid " --support-old-code Support interworking with old code\n"
msgstr " --support-old-code Understøttelse samvirken med gammel kode\n"
#: emultempl/armcoff.em:74
-#, fuzzy, c-format
+#, c-format
msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
msgstr ""
" --thumb-entry=<sym> Indstil indgangspunktet til at være tommelsymbolet\n"
@@ -37,7 +38,6 @@ msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
msgstr "%P: advarsel: \"--thumb-entry %s\" tilsidesætter \"-e %s\"\n"
#: emultempl/armcoff.em:195 emultempl/pe.em:1817
-#, fuzzy
msgid "%P: warning: cannot find thumb start symbol %s\n"
msgstr "%P: advarsel: kan ikke finde tommelstartsymbol %s\n"
@@ -160,14 +160,14 @@ msgstr " --enable-stdcall-fixup Lænk _sym til _sym@nn uden advarsle
msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
msgstr ""
" --exclude-symbols sym,sym,... Udelad symboler fra automatisk\n"
-" export\n"
+" eksport\n"
#: emultempl/pe.em:440
-#, fuzzy, c-format
+#, c-format
msgid " --exclude-all-symbols Exclude all symbols from automatic export\n"
msgstr ""
-" --exclude-symbols sym,sym,... Udelad symboler fra automatisk\n"
-" export\n"
+" --exclude-all-symbols Udelad alle symboler fra automatisk\n"
+" eksport\n"
#: emultempl/pe.em:441
#, c-format
@@ -182,18 +182,14 @@ msgid " --exclude-modules-for-implib mod,mod,...\n"
msgstr ""
#: emultempl/pe.em:443
-#, fuzzy, c-format
+#, c-format
msgid " Exclude objects, archive members from auto\n"
msgstr ""
-" --dll Sæt billedbase til standard for\n"
-" DLL'er\n"
#: emultempl/pe.em:444
-#, fuzzy, c-format
+#, c-format
msgid " export, place into import library instead.\n"
msgstr ""
-" --dll Sæt billedbase til standard for\n"
-" DLL'er\n"
#: emultempl/pe.em:445
#, c-format
@@ -248,7 +244,7 @@ msgstr ""
" (standard).\n"
#: emultempl/pe.em:455
-#, fuzzy, c-format
+#, c-format
msgid ""
" --dll-search-prefix=<string> When linking dynamically to a dll without\n"
" an importlib, use <string><basename>.dll\n"
@@ -259,7 +255,7 @@ msgstr ""
" lænkning uden et importbibliotek\n"
#: emultempl/pe.em:458
-#, fuzzy, c-format
+#, c-format
msgid ""
" --enable-auto-import Do sophistcated linking of _sym to\n"
" __imp_sym for DATA references\n"
@@ -275,24 +271,19 @@ msgstr ""
" automatisk\n"
#: emultempl/pe.em:461
-#, fuzzy, c-format
+#, c-format
msgid ""
" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n"
" adding pseudo-relocations resolved at\n"
" runtime.\n"
msgstr ""
-" --dll-search-prefix=<streng> Brug <streng><basenavn>.dll i stedet\n"
-" for lib<basenavn>.dll ved dynamisk\n"
-" lænkning uden et importbibliotek\n"
#: emultempl/pe.em:464
-#, fuzzy, c-format
+#, c-format
msgid ""
" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n"
" auto-imported DATA.\n"
msgstr ""
-" --enable-auto-import Udfør sofistikeret lænkning af _sym til\n"
-" __imp_sym for DATA-referencer\n"
#: emultempl/pe.em:466
#, c-format
@@ -305,31 +296,25 @@ msgstr ""
" (især automatisk import)\n"
#: emultempl/pe.em:469
-#, fuzzy, c-format
+#, c-format
msgid ""
" --large-address-aware Executable supports virtual addresses\n"
" greater than 2 gigabytes\n"
msgstr ""
-" --enable-auto-image-base Vælg automatisk billedbase for DLL'er\n"
-" med mindre brugeren ikke angiver én\n"
#: emultempl/pe.em:471
-#, fuzzy, c-format
+#, c-format
msgid ""
" --enable-long-section-names Use long COFF section names even in\n"
" executable image files\n"
msgstr ""
-" --enable-auto-image-base Vælg automatisk billedbase for DLL'er\n"
-" med mindre brugeren ikke angiver én\n"
#: emultempl/pe.em:473
-#, fuzzy, c-format
+#, c-format
msgid ""
" --disable-long-section-names Never use long COFF section names, even\n"
" in object files\n"
msgstr ""
-" --enable-auto-image-base Vælg automatisk billedbase for DLL'er\n"
-" med mindre brugeren ikke angiver én\n"
#: emultempl/pe.em:475
#, c-format
@@ -582,7 +567,7 @@ msgstr "%X%S: uløseligt symbol \"%s\" refereredes i udtrykket\n"
#: ldexp.c:564
#, c-format
msgid "%F%S: undefined symbol `%s' referenced in expression\n"
-msgstr "%F%S: udefinerede symbol \"%s\" refereredes i udtrykket\n"
+msgstr "%F%S: udefineret symbol \"%s\" refereredes i udtrykket\n"
#: ldexp.c:585 ldexp.c:602 ldexp.c:629
#, c-format
@@ -590,9 +575,9 @@ msgid "%F%S: undefined section `%s' referenced in expression\n"
msgstr "%F%S: udefineret sektion '%s' refereredes i udtrykket\n"
#: ldexp.c:656 ldexp.c:670
-#, fuzzy, c-format
+#, c-format
msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
-msgstr "%F%S: udefinerede symbol \"%s\" refereredes i udtrykket\n"
+msgstr "%F%S: udefineret MEMORY region \"%s\" refereredes i udtrykket\n"
#: ldexp.c:681
#, c-format
@@ -692,14 +677,12 @@ msgid "%P%F: can not create hash table: %E\n"
msgstr "%P%F: kan ikke oprette hashtabel: %E\n"
#: ldlang.c:1253
-#, fuzzy
msgid "%P:%S: warning: redeclaration of memory region `%s'\n"
-msgstr "%P: advarsel: intet hukommelsesområde angivet for sektionen \"%s\"\n"
+msgstr "%P:%S: advarsel: repeteret erklæring af hukommelsesområde \"%s\"\n"
#: ldlang.c:1259
-#, fuzzy
msgid "%P:%S: warning: memory region `%s' not declared\n"
-msgstr "%P: advarsel: intet hukommelsesområde angivet for sektionen \"%s\"\n"
+msgstr "%P:%S: advarsel: hukommelsesområde \"%s\" er ikke erklæret\n"
#: ldlang.c:1293
msgid "%F%P:%S: error: alias for default memory region\n"
@@ -714,9 +697,8 @@ msgid "%F%P:%S: error: memory region `%s' for alias `%s' does not exist\n"
msgstr ""
#: ldlang.c:1363 ldlang.c:1402
-#, fuzzy
msgid "%P%F: failed creating section `%s': %E\n"
-msgstr "%P%F: kan ikke forenkle sektion: %E\n"
+msgstr "%P%F: mislykkedes med at oprette sektion '%s': %E\n"
#: ldlang.c:1958
#, c-format
@@ -812,24 +794,20 @@ msgid "%P%F:%s: can not set architecture: %E\n"
msgstr "%P%F:%s: kan ikke sætte arkitektur: %E\n"
#: ldlang.c:3185
-#, fuzzy
msgid "%P: warning: %s contains output sections; did you forget -T?\n"
-msgstr "%P: advarsel: ændrer start på sektionen %s med %u byte\n"
+msgstr ""
#: ldlang.c:3215
-#, fuzzy
msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
-msgstr "%P%F: bfd_hash_lookup mislykkedes: %E\n"
+msgstr ""
#: ldlang.c:3233
-#, fuzzy
msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
-msgstr "%P%F: bfd_hash_lookup mislykkedes: %E\n"
+msgstr ""
#: ldlang.c:3688
-#, fuzzy
msgid "%F%P: %s not found for insert\n"
-msgstr "%F%P: kan ikke finde %s\n"
+msgstr ""
#: ldlang.c:3903
msgid " load address 0x%V"
@@ -842,60 +820,53 @@ msgstr "%W (størrelse inden forenkling)\n"
#: ldlang.c:4270
#, c-format
msgid "Address of section %s set to "
-msgstr "Adressen på sektionen %s sat til "
+msgstr "Adressen på sektion %s sat til "
#: ldlang.c:4423
#, c-format
msgid "Fail with %d\n"
-msgstr "Mislykkes med %d\n"
+msgstr "Mislykkedes med %d\n"
#: ldlang.c:4710
-#, fuzzy
msgid "%X%P: section %s loaded at [%V,%V] overlaps section %s loaded at [%V,%V]\n"
-msgstr "%X%P: sektionen %s [%V -> %V] overlapper med sektionen %s [%V -> %V]\n"
+msgstr ""
#: ldlang.c:4726
msgid "%X%P: region `%s' overflowed by %ld bytes\n"
msgstr ""
#: ldlang.c:4749
-#, fuzzy
msgid "%X%P: address 0x%v of %B section `%s' is not within region `%s'\n"
-msgstr "%X%P: adressen 0x%v i %B-sektionen %s er ikke inden for området %s\n"
+msgstr "%X%P: adressen 0x%v i %B-sektionen '%s' er ikke inden for området '%s'\n"
#: ldlang.c:4760
-#, fuzzy
msgid "%X%P: %B section `%s' will not fit in region `%s'\n"
-msgstr "%X%P: adressen 0x%v i %B-sektionen %s er ikke inden for området %s\n"
+msgstr ""
#: ldlang.c:4816
-#, fuzzy, c-format
+#, c-format
msgid "%F%S: non constant or forward reference address expression for section %s\n"
-msgstr "%F%S: ikke-konstant adresseudtryk for sektionen %s\n"
+msgstr "%F%S: ikke-konstant eller fremadrettet reference adresseudtryk for sektionen %s\n"
#: ldlang.c:4841
msgid "%P%X: Internal error on COFF shared library section %s\n"
msgstr "%P%X: Intern fejl i delt COFF-bibliotek sektion %s\n"
#: ldlang.c:4900
-#, fuzzy
msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
-msgstr "%P: advarsel: intet hukommelsesområde angivet for sektionen \"%s\"\n"
+msgstr "%P%F: fejl: intet hukommelsesområde angivet for indlæsbar sektion \"%s\"\n"
#: ldlang.c:4905
-#, fuzzy
msgid "%P: warning: no memory region specified for loadable section `%s'\n"
-msgstr "%P: advarsel: intet hukommelsesområde angivet for sektionen \"%s\"\n"
+msgstr "%P: advarsel: intet hukommelsesområde angivet for indlæsbar sektion \"%s\"\n"
#: ldlang.c:4927
-#, fuzzy
msgid "%P: warning: changing start of section %s by %lu bytes\n"
-msgstr "%P: advarsel: ændrer start på sektionen %s med %u byte\n"
+msgstr "%P: advarsel: ændrer start på sektion %s med %u byte\n"
#: ldlang.c:5004
-#, fuzzy
msgid "%P: warning: dot moved backwards before `%s'\n"
-msgstr "%P: advarsel: intet hukommelsesområde angivet for sektionen \"%s\"\n"
+msgstr ""
#: ldlang.c:5170
msgid "%P%F: can't relax section: %E\n"
@@ -934,19 +905,16 @@ msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format
msgstr "%P%F: Relokérbar lænkning med omlænkninger fra formatet %s (%B) til formatet %s (%B) understøttes ikke\n"
#: ldlang.c:5770
-#, fuzzy
msgid "%P%X: %s architecture of input file `%B' is incompatible with %s output\n"
-msgstr "%P: advarsel: %s-arkitekturen i inddatafilen \"%B\" er inkompatibel med %s-uddata\n"
+msgstr "%P%X: %s-arkitekturen i inddatafilen \"%B\" er inkompatibel med %s-uddata\n"
#: ldlang.c:5792
-#, fuzzy
msgid "%P%X: failed to merge target specific data of file %B\n"
-msgstr "%E%X: mislykkedes at sammenslå målspecifik data i filen %B\n"
+msgstr "%P%X: mislykkedes at sammenflette målspecifikke data i filen %B\n"
#: ldlang.c:5863
-#, fuzzy
msgid "%P%F: Could not define common symbol `%T': %E\n"
-msgstr "%B%F: kunne ikke læse symboler: %E\n"
+msgstr ""
#: ldlang.c:5875
msgid ""
@@ -977,9 +945,8 @@ msgid "%P%F: %s: plugin reported error after all symbols read\n"
msgstr ""
#: ldlang.c:6717
-#, fuzzy
msgid "%P%F: multiple STARTUP files\n"
-msgstr "%P%Fflere samtidige STARTUP-filer\n"
+msgstr "%P%F: flere STARTUP-filer\n"
#: ldlang.c:6765
msgid "%X%P:%S: section has both a load address and a load region\n"
@@ -990,9 +957,8 @@ msgid "%X%P:%S: PHDRS and FILEHDR are not supported when prior PT_LOAD headers l
msgstr ""
#: ldlang.c:7022
-#, fuzzy
msgid "%F%P: no sections assigned to phdrs\n"
-msgstr "%X%P: sektionen \"%s\" er tildelt til ikke-eksisterende phvd \"%s\"\n"
+msgstr ""
#: ldlang.c:7060
msgid "%F%P: bfd_record_phdr failed: %E\n"
@@ -1197,7 +1163,7 @@ msgstr "%P%F: Fejl i BFD-bagende: BFD_RELOC_CTOR understøttes ikke\n"
#. We found a reloc for the symbol we are looking for.
#: ldmain.c:1170 ldmain.c:1172 ldmain.c:1174 ldmain.c:1192 ldmain.c:1237
msgid "warning: "
-msgstr ""
+msgstr "advarsel: "
#: ldmain.c:1273
msgid "%F%P: bfd_hash_table_init failed: %E\n"
@@ -1208,73 +1174,61 @@ msgid "%F%P: bfd_hash_lookup failed: %E\n"
msgstr "%F%P: bfd_hash_lookup mislykkedes: %E\n"
#: ldmain.c:1301
-#, fuzzy
msgid "%X%C: undefined reference to `%T'\n"
-msgstr "%C: udefineret reference til \"%T\"\n"
+msgstr "%X%C: udefineret reference til \"%T\"\n"
#: ldmain.c:1304
-#, fuzzy
msgid "%C: warning: undefined reference to `%T'\n"
-msgstr "%C: udefineret reference til \"%T\"\n"
+msgstr "%C: advarsel: udefineret reference til \"%T\"\n"
#: ldmain.c:1310
-#, fuzzy
msgid "%X%D: more undefined references to `%T' follow\n"
-msgstr "%D: flere udefinerede referencer til \"%T\" følger\n"
+msgstr "%C%D: flere udefinerede referencer til \"%T\" følger\n"
#: ldmain.c:1313
-#, fuzzy
msgid "%D: warning: more undefined references to `%T' follow\n"
-msgstr "%D: flere udefinerede referencer til \"%T\" følger\n"
+msgstr "%D: advarsel: flere udefinerede referencer til \"%T\" følger\n"
#: ldmain.c:1324
-#, fuzzy
msgid "%X%B: undefined reference to `%T'\n"
msgstr "%B: udefineret reference til \"%T\"\n"
#: ldmain.c:1327
-#, fuzzy
msgid "%B: warning: undefined reference to `%T'\n"
-msgstr "%B: udefineret reference til \"%T\"\n"
+msgstr "%B: advarsel: udefineret reference til \"%T\"\n"
#: ldmain.c:1333
-#, fuzzy
msgid "%X%B: more undefined references to `%T' follow\n"
-msgstr "%B: flere udefinerede referencer til \"%T\" følger\n"
+msgstr "%X%B: flere udefinerede referencer til \"%T\" følger\n"
#: ldmain.c:1336
-#, fuzzy
msgid "%B: warning: more undefined references to `%T' follow\n"
-msgstr "%B: flere udefinerede referencer til \"%T\" følger\n"
+msgstr "%B: advarsel: flere udefinerede referencer til \"%T\" følger\n"
#: ldmain.c:1375
msgid " additional relocation overflows omitted from the output\n"
msgstr ""
#: ldmain.c:1388
-#, fuzzy
msgid " relocation truncated to fit: %s against undefined symbol `%T'"
-msgstr " relokering trunkeret til at passe til: %s %T"
+msgstr " relokering trunkeret til at passe til: %s til udefineret symbol '%T'"
#: ldmain.c:1393
-#, fuzzy
msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"
-msgstr " relokering trunkeret til at passe til: %s %T"
+msgstr ""
#: ldmain.c:1405
-#, fuzzy
msgid " relocation truncated to fit: %s against `%T'"
-msgstr " relokering trunkeret til at passe til: %s %T"
+msgstr " relokering trunkeret til at passe: '%s' til '%T'"
#: ldmain.c:1422
-#, fuzzy, c-format
+#, c-format
msgid "%X%C: dangerous relocation: %s\n"
-msgstr "farlig relokering: %s\n"
+msgstr "%X%C: farlig relokering: %s\n"
#: ldmain.c:1437
-#, fuzzy
msgid "%X%C: reloc refers to symbol `%T' which is not being output\n"
-msgstr " relokering refererer til symbol \"%T\" som ikke skrives ud\n"
+msgstr "%X%C: relokering refererer til symbol \"%T\" som ikke skrives ud\n"
#: ldmisc.c:149
#, c-format
@@ -1308,25 +1262,25 @@ msgstr "%P%F: rapportér denne fejl\n"
#. Output for noisy == 2 is intended to follow the GNU standards.
#: ldver.c:39
-#, fuzzy, c-format
+#, c-format
msgid "GNU ld %s\n"
-msgstr "GNU ld version %s\n"
+msgstr "GNU ld %s\n"
#: ldver.c:43
-#, fuzzy, c-format
+#, c-format
msgid "Copyright 2010 Free Software Foundation, Inc.\n"
-msgstr "Copyright 2002 Free Software Foundation, Inc.\n"
+msgstr "Copyright 2010 Free Software Foundation, Inc.\n"
#: ldver.c:44
-#, fuzzy, c-format
+#, c-format
msgid ""
"This program is free software; you may redistribute it under the terms of\n"
"the GNU General Public License version 3 or (at your option) a later version.\n"
"This program has absolutely no warranty.\n"
msgstr ""
"Dette program er frit programmel. Du kan videredistribuere det under\n"
-"betingelserne i GNU General Public License. Dette program har ingen som\n"
-"helst garanti.\n"
+"betingelserne i GNU General Public License version 3 eller (hvis du ønsker det)\n"
+"en senere version. Dette program har ingen som helst garanti.\n"
#: ldver.c:54
#, c-format
@@ -1338,9 +1292,8 @@ msgid "%P%F: bfd_new_link_order failed\n"
msgstr "%P%F: bfd_new_link_order mislykkedes\n"
#: ldwrite.c:365
-#, fuzzy
msgid "%F%P: cannot create split section name for %s\n"
-msgstr "%P%F: kan ikke oprette hashtabel over lænker: %E\n"
+msgstr ""
#: ldwrite.c:377
msgid "%F%P: clone section failed: %E\n"
@@ -1497,9 +1450,8 @@ msgid "Do not page align data, do not make text readonly"
msgstr "Justér ikke data efter lige sider, gør ikke teksten kun læsbar"
#: lexsup.c:275
-#, fuzzy
msgid "Page align data, make text readonly"
-msgstr "Justér ikke data efter lige sider, gør ikke teksten kun læsbar"
+msgstr "Justér data efter lige sider, gør ikke teksten kun læsbar"
#: lexsup.c:278
msgid "Set output file name"
@@ -1518,9 +1470,8 @@ msgid "Load named plugin"
msgstr ""
#: lexsup.c:285
-#, fuzzy
msgid "ARG"
-msgstr "MÅL"
+msgstr "ARG"
#: lexsup.c:285
msgid "Send arg to last-loaded plugin"
@@ -1531,9 +1482,8 @@ msgid "Ignored for SVR4 compatibility"
msgstr "Ignoreret for kompatibilitet med SVR4"
#: lexsup.c:292
-#, fuzzy
msgid "Generate relocatable output"
-msgstr "Generér relokérbar uddata"
+msgstr "Generér relokérbart uddata"
#: lexsup.c:296
msgid "Just link symbols (if directory, same as --rpath)"
@@ -1548,14 +1498,12 @@ msgid "Strip debugging symbols"
msgstr "Fjern fejlsøgningssymboler"
#: lexsup.c:303
-#, fuzzy
msgid "Strip symbols in discarded sections"
-msgstr "Tillad udefinerede symboler i delte objekter"
+msgstr ""
#: lexsup.c:305
-#, fuzzy
msgid "Do not strip symbols in discarded sections"
-msgstr "Tillad udefinerede symboler i delte objekter"
+msgstr ""
#: lexsup.c:307
msgid "Trace file opens"
@@ -1566,9 +1514,8 @@ msgid "Read linker script"
msgstr "Læs lænkerskript"
#: lexsup.c:311
-#, fuzzy
msgid "Read default linker script"
-msgstr "Læs lænkerskript"
+msgstr "Læs forvalgt lænkerskript"
#: lexsup.c:315 lexsup.c:333 lexsup.c:418 lexsup.c:439 lexsup.c:538
#: lexsup.c:566 lexsup.c:605
@@ -1666,9 +1613,8 @@ msgid "Bind global references locally"
msgstr "Bind globale referencer lokalt"
#: lexsup.c:386
-#, fuzzy
msgid "Bind global function references locally"
-msgstr "Bind globale referencer lokalt"
+msgstr "Bind globale funktionsreferencer lokalt"
#: lexsup.c:388
msgid "Check section addresses for overlaps (default)"
@@ -1715,9 +1661,8 @@ msgid "Treat warnings as errors"
msgstr "Behandl advarsler som fejl"
#: lexsup.c:415
-#, fuzzy
msgid "Do not treat warnings as errors (default)"
-msgstr "Behandl advarsler som fejl"
+msgstr "Behandl ikke advarsler som fejl (forvalgt)"
#: lexsup.c:418
msgid "Call SYMBOL at unload-time"
@@ -1736,14 +1681,12 @@ msgid "Don't remove unused sections (default)"
msgstr "Fjern ikke ubrugte sektioner (standard)"
#: lexsup.c:428
-#, fuzzy
msgid "List removed unused sections on stderr"
-msgstr "Fjern ubrugte sektioner (på visse mål)"
+msgstr ""
#: lexsup.c:431
-#, fuzzy
msgid "Do not list removed unused sections"
-msgstr "Fjern ikke ubrugte sektioner (standard)"
+msgstr ""
#: lexsup.c:434
msgid "Set default hash table size close to <NUMBER>"
@@ -1778,22 +1721,20 @@ msgid "Do not allow unresolved references in object files"
msgstr ""
#: lexsup.c:452
-#, fuzzy
msgid "Allow unresolved references in shared libaries"
-msgstr "Tillad udefinerede symboler i delte objekter"
+msgstr "Tillad uløste referencer i delte biblioteker"
#: lexsup.c:456
msgid "Do not allow unresolved references in shared libs"
-msgstr ""
+msgstr "Tillad ikke uløste referencer i delte biblioteker"
#: lexsup.c:460
msgid "Allow multiple definitions"
msgstr "Tillad flere definitioner"
#: lexsup.c:462
-#, fuzzy
msgid "Disallow undefined version"
-msgstr "Tillad ingen udefinerede symboler"
+msgstr "Forbyd udefineret version"
#: lexsup.c:464
msgid "Create default symbol version"
@@ -1821,13 +1762,12 @@ msgid "Create an output file even if errors occur"
msgstr "Opret en uddatafil også hvis fejl forekommer"
#: lexsup.c:483
-#, fuzzy
msgid ""
"Only use library directories specified on\n"
" the command line"
msgstr ""
"Brug kun bibliotekskataloger som angives\n"
-"\t\t\t\tpå kommandolinjen"
+" på kommandolinjen"
#: lexsup.c:487
msgid "Specify target of output file"
@@ -1842,9 +1782,8 @@ msgid "Reduce memory overheads, possibly taking much longer"
msgstr ""
#: lexsup.c:496
-#, fuzzy
msgid "Reduce code size by using target specific optimizations"
-msgstr "Vis målspecifikke flag"
+msgstr ""
#: lexsup.c:498
msgid "Do not use relaxation techniques to reduce code size"
@@ -1875,9 +1814,8 @@ msgid "[=ascending|descending]"
msgstr ""
#: lexsup.c:517
-#, fuzzy
msgid "Sort common symbols by alignment [in specified order]"
-msgstr "Sortér fælles symboler efter størrelse"
+msgstr ""
#: lexsup.c:522
msgid "name|alignment"
@@ -1948,9 +1886,8 @@ msgid "Set address of .text section"
msgstr "Sæt adresse på .text-sektion"
#: lexsup.c:551
-#, fuzzy
msgid "Set address of text segment"
-msgstr "Sæt adresse på .text-sektion"
+msgstr "Sæt adresse på .text-segment"
#: lexsup.c:554
msgid ""
@@ -1968,13 +1905,12 @@ msgid "Read version information script"
msgstr "Læs skript med versionsinformation"
#: lexsup.c:566
-#, fuzzy
msgid ""
"Take export symbols list from .exports, using\n"
" SYMBOL as the version."
msgstr ""
"Tag liste med eksportsymboler fra .exports og\n"
-"\t\t\t\tbrug SYMBOL som version."
+" brug SYMBOL som version."
#: lexsup.c:570
msgid "Add data symbols to dynamic list"
@@ -2061,19 +1997,16 @@ msgid "%P%F: invalid number `%s'\n"
msgstr "%P%F: ugyldigt tal \"%s\"\n"
#: lexsup.c:996
-#, fuzzy
msgid "%P%F: bad --unresolved-symbols option: %s\n"
-msgstr "%P%F: ukendt -assert-flag \"%s\"\n"
+msgstr ""
#: lexsup.c:1059
-#, fuzzy
msgid "%P%F: bad -plugin option\n"
-msgstr "%P%F: ukendt -rpath-flag\n"
+msgstr ""
#: lexsup.c:1063
-#, fuzzy
msgid "%P%F: bad -plugin-opt option\n"
-msgstr "%P%F: ukendt -rpath-flag\n"
+msgstr ""
#. This can happen if the user put "-rpath,a" on the command
#. line. (Or something similar. The comma is important).
@@ -2092,9 +2025,8 @@ msgid "%P%F: -shared not supported\n"
msgstr "%P%F: -shared understøttes ikke\n"
#: lexsup.c:1203
-#, fuzzy
msgid "%P%F: -pie not supported\n"
-msgstr "%P%F: -shared understøttes ikke\n"
+msgstr "%P%F: -pie understøttes ikke\n"
#: lexsup.c:1211
msgid "descending"
@@ -2105,12 +2037,10 @@ msgid "ascending"
msgstr ""
#: lexsup.c:1216
-#, fuzzy
msgid "%P%F: invalid common section sorting option: %s\n"
-msgstr "%P%F: ugyldigt argument til flaget \"--section-start\"\n"
+msgstr ""
#: lexsup.c:1220
-#, fuzzy
msgid "name"
msgstr "Navn"
@@ -2119,9 +2049,8 @@ msgid "alignment"
msgstr ""
#: lexsup.c:1225
-#, fuzzy
msgid "%P%F: invalid section sorting option: %s\n"
-msgstr "%P%F: ukendt -assert-flag \"%s\"\n"
+msgstr ""
#: lexsup.c:1259
msgid "%P%F: invalid argument to option \"--section-start\"\n"
@@ -2158,9 +2087,9 @@ msgid "Options:\n"
msgstr "Alternativer:\n"
#: lexsup.c:1707
-#, fuzzy, c-format
+#, c-format
msgid " @FILE"
-msgstr "FIL"
+msgstr "@FIL"
#: lexsup.c:1710
#, c-format
@@ -2201,9 +2130,9 @@ msgid "%XUnsupported PEI architecture: %s\n"
msgstr "%XPEI-arkitekturen understøttes ikke: %s\n"
#: pe-dll.c:788
-#, fuzzy, c-format
+#, c-format
msgid "%XCannot export %s: invalid export name\n"
-msgstr "%XKan ikke eksportere %s: symbol er ikke defineret\n"
+msgstr "%XKan ikke eksportere %s: ugyldigt eksportnavn\n"
#: pe-dll.c:844
#, c-format
@@ -2297,83 +2226,9 @@ msgid "%P%X: %s: hash table failure adding symbol %s"
msgstr ""
#: plugin.c:833
-#, fuzzy
msgid "%P%X: %s: can't find IR symbol '%s'"
-msgstr "%P: advarsel: kan ikke finde tommelstartsymbol %s\n"
+msgstr ""
#: plugin.c:836
msgid "%P%x: %s: bad IR symbol type %d"
msgstr ""
-
-#~ msgid " --support-old-code Support interworking with old code\n"
-#~ msgstr " --support-old-code Understøt samvirke med gammel kode\n"
-
-#~ msgid "%B%F: could not read symbols; %E\n"
-#~ msgstr "%B%F: kunne ikke læse symboler; %E\n"
-
-#~ msgid "%F%P: %s uses undefined section %s\n"
-#~ msgstr "%F%P: %s bruger udefineret sektion %s\n"
-
-#~ msgid "%F%P: %s forward reference of section %s\n"
-#~ msgstr "%F%P: %s fremadreference af sektionen %s\n"
-
-#~ msgid "%F%S non constant expression for %s\n"
-#~ msgstr "%F%S ikke-konstant udtryk for %s\n"
-
-#~ msgid "%F%P: cannot open %s for %s: %E\n"
-#~ msgstr "%F%P: kan ikke åbne %s for %s: %E\n"
-
-#~ msgid "%F%P: cannot open %s: %E\n"
-#~ msgstr "%F%P: kan ikke åbne %s: %E\n"
-
-#~ msgid "%P%F: unknown architecture: %s\n"
-#~ msgstr "%P%F: ukendt arkitektur: %s\n"
-
-#~ msgid "%P%F: target architecture respecified\n"
-#~ msgstr "%P%F: målarkitekturen specificeredes igen\n"
-
-#~ msgid "%P: %B: warning: ignoring duplicate section `%s'\n"
-#~ msgstr "%P: %B: advarsel: ignorerer dublet-sektion \"%s\"\n"
-
-#~ msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n"
-#~ msgstr "%P: %B: advarsel: ignorerer dobbelt \"%s\"-sektionssymbol \"%s\"\n"
-
-#~ msgid "%P: %B: warning: duplicate section `%s' has different size\n"
-#~ msgstr "%P: %B: advarsel: dublet-sektion \"%s\" har anden størrelse\n"
-
-#~ msgid "%X%P: region %s is full (%B section %s)\n"
-#~ msgstr "%X%P: området %s er fuldt (%B-sektion %s)\n"
-
-#~ msgid "%P: no [COMMON] command, defaulting to .bss\n"
-#~ msgstr "%P: ingen [COMMON]-kommando, bruger standardalternativet .bss\n"
-
-#~ msgid "%P%F: -r and --mpc860c0 may not be used together\n"
-#~ msgstr "%P%F: -r og --mpc860c0 kan ikke bruges sammen\n"
-
-#~ msgid "%P%F: --relax and -r may not be used together\n"
-#~ msgstr "%P%F: --relax og -r kan ikke bruges sammen\n"
-
-#~ msgid "%P%X: generated"
-#~ msgstr "%P%X: genereret"
-
-#~ msgid "%B%F: could not read symbols\n"
-#~ msgstr "%B%F: kunne ikke læse symboler\n"
-
-#~ msgid "Relax branches on certain targets"
-#~ msgstr "Forenkl greninger på visse mål"
-
-#~ msgid "[=WORDS]"
-#~ msgstr "[=ORD]"
-
-#~ msgid ""
-#~ "Modify problematic branches in last WORDS (1-10,\n"
-#~ "\t\t\t\tdefault 5) words of a page"
-#~ msgstr ""
-#~ "Ændr problematiske greninger i sidste ORD (1-10,\n"
-#~ "\t\t\t\tstandardværdi 5) ord på en side"
-
-#~ msgid "%P%F: may not nest groups (--help for usage)\n"
-#~ msgstr "%P%F: må ikke neste grupper (--help for brug)\n"
-
-#~ msgid "%P%F: invalid argument to option \"mpc860c0\"\n"
-#~ msgstr "%P%F: ugyldigt argument til flaget \"mpc860c0\"\n"
diff --git a/ld/po/de.po b/ld/po/de.po
new file mode 100644
index 0000000..91b9654
--- /dev/null
+++ b/ld/po/de.po
@@ -0,0 +1,2214 @@
+# German translation of binutils ld.
+# Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+# This file is distributed under the same license as the binutils package.
+# Mario Blättermann <mario.blaettermann@gmail.com>, 2014.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ld 2.23.90\n"
+"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
+"POT-Creation-Date: 2011-10-25 11:20+0100\n"
+"PO-Revision-Date: 2014-05-12 21:11+0100\n"
+"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"Language: de\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.5.4\n"
+
+#: emultempl/armcoff.em:73
+#, c-format
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code Interaktion mit altem Code unterstützen\n"
+
+#: emultempl/armcoff.em:74
+#, c-format
+msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
+msgstr ""
+
+#: emultempl/armcoff.em:122
+#, c-format
+msgid "Errors encountered processing file %s"
+msgstr "Bei der Verarbeitung der Datei %s sind Fehler aufgetreten"
+
+#: emultempl/armcoff.em:192 emultempl/pe.em:1812
+msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
+msgstr "%P: Warnung: »--thumb-entry %s« setzt »-e %s« außer Kraft\n"
+
+#: emultempl/armcoff.em:197 emultempl/pe.em:1817
+msgid "%P: warning: cannot find thumb start symbol %s\n"
+msgstr ""
+
+#: emultempl/pe.em:419
+#, c-format
+msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
+msgstr ""
+
+#: emultempl/pe.em:420
+#, c-format
+msgid " --dll Set image base to the default for DLLs\n"
+msgstr ""
+
+#: emultempl/pe.em:421
+#, c-format
+msgid " --file-alignment <size> Set file alignment\n"
+msgstr ""
+
+#: emultempl/pe.em:422
+#, c-format
+msgid " --heap <size> Set initial size of the heap\n"
+msgstr ""
+
+#: emultempl/pe.em:423
+#, c-format
+msgid " --image-base <address> Set start address of the executable\n"
+msgstr " --image-base <Adresse> Startadresse der ausführbaren Datei setzen\n"
+
+#: emultempl/pe.em:424
+#, c-format
+msgid " --major-image-version <number> Set version number of the executable\n"
+msgstr ""
+" --major-image-version <Nummer> legt die Versionsnummer der ausführbaren\n"
+" Datei fest\n"
+
+#: emultempl/pe.em:425
+#, c-format
+msgid " --major-os-version <number> Set minimum required OS version\n"
+msgstr ""
+" --major-os-version <Nummer> legt die minimal erforderliche\n"
+" OS-Version fest\n"
+
+#: emultempl/pe.em:426
+#, c-format
+msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n"
+msgstr ""
+" --major-subsystem-version <Nummer> legt die minimal erforderliche\n"
+" OS-Subsystem-Version fest\n"
+
+#: emultempl/pe.em:427
+#, c-format
+msgid " --minor-image-version <number> Set revision number of the executable\n"
+msgstr ""
+" --minor-image-version <Nummer> legt die Revisionsnummer der ausführbaren\n"
+" Datei fest\n"
+
+#: emultempl/pe.em:428
+#, c-format
+msgid " --minor-os-version <number> Set minimum required OS revision\n"
+msgstr ""
+" --minor-os-version <Nummer> legt die minimal erforderliche Revisionsnummer\n"
+" des Betriebssystems fest\n"
+
+#: emultempl/pe.em:429
+#, c-format
+msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
+msgstr ""
+" --minor-subsystem-version <Nummer> legt die minimal erforderliche\n"
+" OS-Subsystem-Revision fest\n"
+
+#: emultempl/pe.em:430
+#, c-format
+msgid " --section-alignment <size> Set section alignment\n"
+msgstr ""
+
+#: emultempl/pe.em:431
+#, c-format
+msgid " --stack <size> Set size of the initial stack\n"
+msgstr ""
+
+#: emultempl/pe.em:432
+#, c-format
+msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
+msgstr " --subsystem <Name>[:<Version>] legt das benötigte OS-Subsystem [und Version] fest\n"
+
+#: emultempl/pe.em:433
+#, c-format
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code Interaktion mit altem Code unterstützen\n"
+
+#: emultempl/pe.em:434
+#, c-format
+msgid " --[no-]leading-underscore Set explicit symbol underscore prefix mode\n"
+msgstr ""
+
+#: emultempl/pe.em:435
+#, c-format
+msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
+msgstr ""
+
+#: emultempl/pe.em:437
+#, c-format
+msgid " --add-stdcall-alias Export symbols with and without @nn\n"
+msgstr " --add-stdcall-alias exportiert Symbole mit und ohne @nn\n"
+
+#: emultempl/pe.em:438
+#, c-format
+msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
+msgstr " --disable-stdcall-fixup verlinkt _sym nicht zu _sym@nn\n"
+
+#: emultempl/pe.em:439
+#, c-format
+msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
+msgstr " --enable-stdcall-fixup verlinkt _sym zu _sym@nn ohne Warnungen\n"
+
+#: emultempl/pe.em:440
+#, c-format
+msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
+msgstr " --exclude-symbols sym,sym,... schließt Symbole vom automatischen Export aus\n"
+
+#: emultempl/pe.em:441
+#, c-format
+msgid " --exclude-all-symbols Exclude all symbols from automatic export\n"
+msgstr " --exclude-all-symbols Keine Symbole automatisch exportieren\n"
+
+#: emultempl/pe.em:442
+#, c-format
+msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n"
+msgstr " --exclude-libs lib,lib,... Bibliotheken nicht automatisch exportieren\n"
+
+#: emultempl/pe.em:443
+#, c-format
+msgid " --exclude-modules-for-implib mod,mod,...\n"
+msgstr " --exclude-modules-for-implib mod,mod,...\n"
+
+#: emultempl/pe.em:444
+#, c-format
+msgid " Exclude objects, archive members from auto\n"
+msgstr " schließt Objekte, Archivelemente vom auto-\n"
+
+#: emultempl/pe.em:445
+#, c-format
+msgid " export, place into import library instead.\n"
+msgstr ""
+" matischen Export aus und platziert diese stattdessen\n"
+" in der Importbibliothek.\n"
+
+#: emultempl/pe.em:446
+#, c-format
+msgid " --export-all-symbols Automatically export all globals to DLL\n"
+msgstr ""
+
+#: emultempl/pe.em:447
+#, c-format
+msgid " --kill-at Remove @nn from exported symbols\n"
+msgstr " --kill-at @nn aus den exportierten Symbolen entfernen\n"
+
+#: emultempl/pe.em:448
+#, c-format
+msgid " --out-implib <file> Generate import library\n"
+msgstr " --out-implib <Datei> erstellt eine Importbibliothek\n"
+
+#: emultempl/pe.em:449
+#, c-format
+msgid " --output-def <file> Generate a .DEF file for the built DLL\n"
+msgstr " --output-def <Datei> eine .DEF-Datei für die gebaute DLL generieren\n"
+
+#: emultempl/pe.em:450
+#, c-format
+msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
+msgstr " --warn-duplicate-exports warnt bei doppelten Exporten.\n"
+
+#: emultempl/pe.em:451
+#, c-format
+msgid ""
+" --compat-implib Create backward compatible import libs;\n"
+" create __imp_<SYMBOL> as well.\n"
+msgstr ""
+" --compat-implib erstellt abwärtskompatible Importbibliotheken;\n"
+" erstellt __imp_<SYMBOL> ebenfalls.\n"
+
+#: emultempl/pe.em:453
+#, c-format
+msgid ""
+" --enable-auto-image-base Automatically choose image base for DLLs\n"
+" unless user specifies one\n"
+msgstr ""
+
+#: emultempl/pe.em:455
+#, c-format
+msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n"
+msgstr ""
+
+#: emultempl/pe.em:456
+#, c-format
+msgid ""
+" --dll-search-prefix=<string> When linking dynamically to a dll without\n"
+" an importlib, use <string><basename>.dll\n"
+" in preference to lib<basename>.dll \n"
+msgstr ""
+
+#: emultempl/pe.em:459
+#, c-format
+msgid ""
+" --enable-auto-import Do sophisticated linking of _sym to\n"
+" __imp_sym for DATA references\n"
+msgstr ""
+
+#: emultempl/pe.em:461
+#, c-format
+msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n"
+msgstr " --disable-auto-import importiert nicht automatisch DATA-Objekte aus DLLs\n"
+
+#: emultempl/pe.em:462
+#, c-format
+msgid ""
+" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n"
+" adding pseudo-relocations resolved at\n"
+" runtime.\n"
+msgstr ""
+
+#: emultempl/pe.em:465
+#, c-format
+msgid ""
+" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n"
+" auto-imported DATA.\n"
+msgstr ""
+
+#: emultempl/pe.em:467
+#, c-format
+msgid ""
+" --enable-extra-pe-debug Enable verbose debug output when building\n"
+" or linking to DLLs (esp. auto-import)\n"
+msgstr ""
+
+#: emultempl/pe.em:470
+#, c-format
+msgid ""
+" --large-address-aware Executable supports virtual addresses\n"
+" greater than 2 gigabytes\n"
+msgstr ""
+" --large-address-aware ausführbare Datei unterstützt virtuelle Adressen\n"
+" größer als 2 Gigabyte\n"
+
+#: emultempl/pe.em:472
+#, c-format
+msgid ""
+" --enable-long-section-names Use long COFF section names even in\n"
+" executable image files\n"
+msgstr ""
+
+#: emultempl/pe.em:474
+#, c-format
+msgid ""
+" --disable-long-section-names Never use long COFF section names, even\n"
+" in object files\n"
+msgstr ""
+
+#: emultempl/pe.em:476
+#, c-format
+msgid ""
+" --dynamicbase\t\t\t Image base address may be relocated using\n"
+"\t\t\t\t address space layout randomization (ASLR)\n"
+msgstr ""
+
+#: emultempl/pe.em:478
+#, c-format
+msgid " --forceinteg\t\t Code integrity checks are enforced\n"
+msgstr " --forceinteg\t\t erzwingt Code-Integritätsprüfungen\n"
+
+#: emultempl/pe.em:479
+#, c-format
+msgid " --nxcompat\t\t Image is compatible with data execution prevention\n"
+msgstr ""
+
+#: emultempl/pe.em:480
+#, c-format
+msgid " --no-isolation\t\t Image understands isolation but do not isolate the image\n"
+msgstr ""
+
+#: emultempl/pe.em:481
+#, c-format
+msgid ""
+" --no-seh\t\t\t Image does not use SEH. No SE handler may\n"
+"\t\t\t\t be called in this image\n"
+msgstr ""
+
+#: emultempl/pe.em:483
+#, c-format
+msgid " --no-bind\t\t\t Do not bind this image\n"
+msgstr ""
+
+#: emultempl/pe.em:484
+#, c-format
+msgid " --wdmdriver\t\t Driver uses the WDM model\n"
+msgstr " --wdmdriver\t\t Treiber nutzt das WDM-Modell\n"
+
+#: emultempl/pe.em:485
+#, c-format
+msgid " --tsaware Image is Terminal Server aware\n"
+msgstr ""
+
+#: emultempl/pe.em:614
+msgid "%P: warning: bad version number in -subsystem option\n"
+msgstr "%P: Warnung: falsche Versionsnummer in der Option -subsystem\n"
+
+#: emultempl/pe.em:639
+msgid "%P%F: invalid subsystem type %s\n"
+msgstr "%P%F: unzulässiger Subsystem-Typ %s\n"
+
+#: emultempl/pe.em:660
+msgid "%P%F: invalid hex number for PE parameter '%s'\n"
+msgstr "%P%F: ungültige Hexadezimalzahl für PE-Parameter »%s«\n"
+
+#: emultempl/pe.em:677
+msgid "%P%F: strange hex info for PE parameter '%s'\n"
+msgstr ""
+
+#: emultempl/pe.em:692
+msgid "%F%P: cannot open base file %s\n"
+msgstr "%F%P: Basisdatei %s kann nicht geöffnet werden\n"
+
+#: emultempl/pe.em:965
+msgid "%P: warning, file alignment > section alignment.\n"
+msgstr ""
+
+#: emultempl/pe.em:978
+msgid "%P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?\n"
+msgstr "%P: Warnung: --export-dynamic wird für PE-Ziele nicht unterstützt, meinten Sie --export-all-symbols?\n"
+
+#: emultempl/pe.em:1054 emultempl/pe.em:1081
+#, c-format
+msgid "Warning: resolving %s by linking to %s\n"
+msgstr ""
+
+#: emultempl/pe.em:1059 emultempl/pe.em:1086
+msgid "Use --enable-stdcall-fixup to disable these warnings\n"
+msgstr "Verwenden Sie --enable-stdcall-fixup, um diese Warnungen zu deaktivieren.\n"
+
+#: emultempl/pe.em:1060 emultempl/pe.em:1087
+msgid "Use --disable-stdcall-fixup to disable these fixups\n"
+msgstr ""
+
+#: emultempl/pe.em:1106
+#, c-format
+msgid "%C: Cannot get section contents - auto-import exception\n"
+msgstr ""
+
+#: emultempl/pe.em:1146
+#, c-format
+msgid "Info: resolving %s by linking to %s (auto-import)\n"
+msgstr ""
+
+#: emultempl/pe.em:1153
+msgid ""
+"%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line.\n"
+"This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.\n"
+msgstr ""
+
+#: emultempl/pe.em:1160 emultempl/pe.em:1366 emultempl/pe.em:1573 ldcref.c:490
+#: ldcref.c:588 ldmain.c:1158 ldmisc.c:290 pe-dll.c:706 pe-dll.c:1254
+#: pe-dll.c:1349
+msgid "%B%F: could not read symbols: %E\n"
+msgstr "%B%F: Symbole können nicht gelesen werden: %E\n"
+
+#: emultempl/pe.em:1242
+msgid "%F%P: cannot perform PE operations on non PE output file '%B'.\n"
+msgstr ""
+
+#: emultempl/pe.em:1616
+#, c-format
+msgid "Errors encountered processing file %s\n"
+msgstr "Bei der Verarbeitung der Datei %s sind Fehler aufgetreten\n"
+
+#: emultempl/pe.em:1639
+#, c-format
+msgid "Errors encountered processing file %s for interworking\n"
+msgstr ""
+
+#: emultempl/pe.em:1701 ldexp.c:581 ldlang.c:3458 ldlang.c:6992 ldlang.c:7023
+#: ldmain.c:1103
+msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
+msgstr "%P%F: bfd_link_hash_lookup fehlgeschlagen: %E\n"
+
+#: ldcref.c:168
+msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
+msgstr ""
+
+#: ldcref.c:174
+msgid "%X%P: cref_hash_lookup failed: %E\n"
+msgstr "%X%P: cref_hash_lookup fehlgeschlagen: %E\n"
+
+#: ldcref.c:184
+msgid "%X%P: cref alloc failed: %E\n"
+msgstr ""
+
+#: ldcref.c:366
+#, c-format
+msgid ""
+"\n"
+"Cross Reference Table\n"
+"\n"
+msgstr ""
+"\n"
+"Querverweistabelle\n"
+"\n"
+
+#: ldcref.c:367
+msgid "Symbol"
+msgstr "Symbol"
+
+#: ldcref.c:375
+#, c-format
+msgid "File\n"
+msgstr "Datei\n"
+
+#: ldcref.c:379
+#, c-format
+msgid "No symbols\n"
+msgstr "Keine Symbole\n"
+
+#: ldcref.c:532
+msgid "%P: symbol `%T' missing from main hash table\n"
+msgstr ""
+
+#: ldcref.c:650 ldcref.c:657 ldmain.c:1192 ldmain.c:1199
+msgid "%B%F: could not read relocs: %E\n"
+msgstr ""
+
+#. We found a reloc for the symbol. The symbol is defined
+#. in OUTSECNAME. This reloc is from a section which is
+#. mapped into a section from which references to OUTSECNAME
+#. are prohibited. We must report an error.
+#: ldcref.c:684
+msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
+msgstr "%X%C: verbotener Querverweis %s auf »%T« in %s\n"
+
+#: ldctor.c:85
+msgid "%P%X: Different relocs used in set %s\n"
+msgstr ""
+
+#: ldctor.c:103
+msgid "%P%X: Different object file formats composing set %s\n"
+msgstr "%P%X: Verschiedene Objektdateiformate im Satz %s\n"
+
+#: ldctor.c:281 ldctor.c:295
+msgid "%P%X: %s does not support reloc %s for set %s\n"
+msgstr ""
+
+#: ldctor.c:316
+msgid "%P%X: Unsupported size %d for set %s\n"
+msgstr "%P%X: Nicht unterstützte Größe %d, um %s zu setzen\n"
+
+#: ldctor.c:337
+msgid ""
+"\n"
+"Set Symbol\n"
+"\n"
+msgstr ""
+"\n"
+"Symbol setzen\n"
+"\n"
+
+#: ldemul.c:265
+#, c-format
+msgid "%S SYSLIB ignored\n"
+msgstr "%S SYSLIB ignoriert\n"
+
+#: ldemul.c:271
+#, c-format
+msgid "%S HLL ignored\n"
+msgstr "%S HLL ignoriert\n"
+
+#: ldemul.c:291
+msgid "%P: unrecognised emulation mode: %s\n"
+msgstr "%P: Nicht erkannter Emulationsmodus: %s\n"
+
+#: ldemul.c:292
+msgid "Supported emulations: "
+msgstr "Unterstützte Emulationen:"
+
+#: ldemul.c:334
+#, c-format
+msgid " no emulation specific options.\n"
+msgstr " keine emulationsspezifischen Optionen.\n"
+
+#: ldexp.c:314
+msgid "%P: warning: address of `%s' isn't multiple of maximum page size\n"
+msgstr "%P: Warnung: Adresse von »%s« ist kein Vielfaches der maximalen Seitengröße\n"
+
+#: ldexp.c:407
+#, c-format
+msgid "%F%S %% by zero\n"
+msgstr "%F%S %% durch Null\n"
+
+#: ldexp.c:417
+#, c-format
+msgid "%F%S / by zero\n"
+msgstr "%F%S / durch Null\n"
+
+#: ldexp.c:591
+#, c-format
+msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
+msgstr "%X%S: nicht auflösbares Symbol »%s« im Ausdruck referenziert\n"
+
+#: ldexp.c:605
+#, c-format
+msgid "%F%S: undefined symbol `%s' referenced in expression\n"
+msgstr "%F%S: unbekanntes Symbol »%s« im Ausdruck referenziert\n"
+
+#: ldexp.c:626 ldexp.c:643 ldexp.c:670
+#, c-format
+msgid "%F%S: undefined section `%s' referenced in expression\n"
+msgstr "%F%S: unbekannter Abschnitt »%s« im Ausdruck referenziert\n"
+
+#: ldexp.c:697 ldexp.c:711
+#, c-format
+msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
+msgstr ""
+
+#: ldexp.c:722
+#, c-format
+msgid "%F%S: unknown constant `%s' referenced in expression\n"
+msgstr "%F%S: unbekannte Konstante »%s« im Ausdruck referenziert\n"
+
+#: ldexp.c:787
+#, c-format
+msgid "%F%S can not PROVIDE assignment to location counter\n"
+msgstr ""
+
+#: ldexp.c:805
+#, c-format
+msgid "%F%S invalid assignment to location counter\n"
+msgstr ""
+
+#: ldexp.c:808
+#, c-format
+msgid "%F%S assignment to location counter invalid outside of SECTION\n"
+msgstr ""
+
+#: ldexp.c:821
+msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
+msgstr ""
+
+#: ldexp.c:882
+msgid "%P%F:%s: hash creation failed\n"
+msgstr "%P%F:%s: Hash-Erzeugung fehlgeschlagen\n"
+
+#: ldexp.c:1191 ldexp.c:1216 ldexp.c:1276
+#, c-format
+msgid "%F%S: nonconstant expression for %s\n"
+msgstr ""
+
+#: ldfile.c:142
+#, c-format
+msgid "attempt to open %s failed\n"
+msgstr "Öffnen von %s ist fehlgeschlagen\n"
+
+#: ldfile.c:144
+#, c-format
+msgid "attempt to open %s succeeded\n"
+msgstr "Öffnen von %s war erfolgreich\n"
+
+#: ldfile.c:150
+msgid "%F%P: invalid BFD target `%s'\n"
+msgstr "%F%P: unzulässiges BFD-Ziel »%s«\n"
+
+#: ldfile.c:267 ldfile.c:296
+msgid "%P: skipping incompatible %s when searching for %s\n"
+msgstr "%P: inkompatibles %s wird bei der Suche nach %s übersprungen\n"
+
+#: ldfile.c:280
+msgid "%F%P: attempted static link of dynamic object `%s'\n"
+msgstr "%F%P: Versuch, das dynamische Objekt »%s« statisch zu linken\n"
+
+#: ldfile.c:426
+msgid "%P: cannot find %s (%s): %E\n"
+msgstr "%P: %s kann nicht gefunden werden (%s): %E\n"
+
+#: ldfile.c:429
+msgid "%P: cannot find %s: %E\n"
+msgstr "%P: %s kann nicht gefunden werden: %E\n"
+
+#: ldfile.c:464
+msgid "%P: cannot find %s inside %s\n"
+msgstr "%P: %s kann nicht innerhalb von %s gefunden werden\n"
+
+#: ldfile.c:467
+msgid "%P: cannot find %s\n"
+msgstr "%P: %s kann nicht gefunden werden\n"
+
+#: ldfile.c:486 ldfile.c:504
+#, c-format
+msgid "cannot find script file %s\n"
+msgstr "Skriptdatei %s kann nicht gefunden werden\n"
+
+#: ldfile.c:488 ldfile.c:506
+#, c-format
+msgid "opened script file %s\n"
+msgstr "Skriptdatei %s wurde geöffnet\n"
+
+#: ldfile.c:636
+msgid "%P%F: cannot open linker script file %s: %E\n"
+msgstr "%P%F: Linker-Skriptdatei %s kann nicht geöffnet werden: %E\n"
+
+#: ldfile.c:701
+msgid "%P%F: cannot represent machine `%s'\n"
+msgstr ""
+
+#: ldlang.c:1221 ldlang.c:1263 ldlang.c:3143
+msgid "%P%F: can not create hash table: %E\n"
+msgstr "%P%F: Hash-Tabelle konnte nicht erzeugt werden: %E\n"
+
+#: ldlang.c:1314
+msgid "%P:%S: warning: redeclaration of memory region `%s'\n"
+msgstr "%P:%S: Warnung: Neudeklaration des Speicherbereichs »%s«\n"
+
+#: ldlang.c:1320
+msgid "%P:%S: warning: memory region `%s' not declared\n"
+msgstr "%P:%S: Warnung: Speicherbereich »%s« nicht deklariert\n"
+
+#: ldlang.c:1354
+msgid "%F%P:%S: error: alias for default memory region\n"
+msgstr ""
+
+#: ldlang.c:1365
+msgid "%F%P:%S: error: redefinition of memory region alias `%s'\n"
+msgstr ""
+
+#: ldlang.c:1372
+msgid "%F%P:%S: error: memory region `%s' for alias `%s' does not exist\n"
+msgstr ""
+
+#: ldlang.c:1424 ldlang.c:1463
+msgid "%P%F: failed creating section `%s': %E\n"
+msgstr ""
+
+#: ldlang.c:2025
+#, c-format
+msgid ""
+"\n"
+"Discarded input sections\n"
+"\n"
+msgstr ""
+
+#: ldlang.c:2033
+msgid ""
+"\n"
+"Memory Configuration\n"
+"\n"
+msgstr ""
+"\n"
+"Speicherkonfiguration\n"
+"\n"
+
+#: ldlang.c:2035
+msgid "Name"
+msgstr "Name"
+
+#: ldlang.c:2035
+msgid "Origin"
+msgstr "Ursprung"
+
+#: ldlang.c:2035
+msgid "Length"
+msgstr "Länge"
+
+#: ldlang.c:2035
+msgid "Attributes"
+msgstr "Attribute"
+
+#: ldlang.c:2075
+#, c-format
+msgid ""
+"\n"
+"Linker script and memory map\n"
+"\n"
+msgstr ""
+
+#: ldlang.c:2141
+msgid "%P%F: Illegal use of `%s' section\n"
+msgstr ""
+
+#: ldlang.c:2150
+msgid "%P%F: output format %s cannot represent section called %s\n"
+msgstr ""
+
+#: ldlang.c:2728
+msgid "%B: file not recognized: %E\n"
+msgstr "%B: Datei nicht erkannt: %E\n"
+
+#: ldlang.c:2729
+msgid "%B: matching formats:"
+msgstr "%B: Passende Formate:"
+
+#: ldlang.c:2736
+msgid "%F%B: file not recognized: %E\n"
+msgstr "%F%B: Datei nicht erkannt: %E\n"
+
+#: ldlang.c:2810
+msgid "%F%B: member %B in archive is not an object\n"
+msgstr "%F%B: Element %B im Archiv ist kein Objekt\n"
+
+#: ldlang.c:2825 ldlang.c:2839
+msgid "%F%B: could not read symbols: %E\n"
+msgstr "%F%B: Symbole können nicht gelesen werden: %E\n"
+
+#: ldlang.c:3113
+msgid "%P: warning: could not find any targets that match endianness requirement\n"
+msgstr "%P: Warnung: Es können keine Ziele gefunden werden, die der geforderten Bytereihenfolge entsprechen.\n"
+
+#: ldlang.c:3127
+msgid "%P%F: target %s not found\n"
+msgstr "%P%F: Ziel %s nicht gefunden\n"
+
+#: ldlang.c:3129
+msgid "%P%F: cannot open output file %s: %E\n"
+msgstr "%P%F: Ausgabedatei %s kann nicht geöffnet werden: %E\n"
+
+#: ldlang.c:3135
+msgid "%P%F:%s: can not make object file: %E\n"
+msgstr "%P%F:%s: Objektdatei kann nicht erstellt werden: %E\n"
+
+#: ldlang.c:3139
+msgid "%P%F:%s: can not set architecture: %E\n"
+msgstr "%P%F:%s: Architektur kann nicht gesetzt werden: %E\n"
+
+#: ldlang.c:3309
+msgid "%P: warning: %s contains output sections; did you forget -T?\n"
+msgstr ""
+
+#: ldlang.c:3350
+msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
+msgstr "%P%F: bfd_hash_lookup schlug beim Erzeugen des Symbols %s fehl\n"
+
+#: ldlang.c:3368
+msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
+msgstr "%P%F: bfd_hash_allocate fehlgeschlagen beim Erzeugen des Symbols %s\n"
+
+#: ldlang.c:3764
+msgid "%F%P: %s not found for insert\n"
+msgstr "%F%P: %s zum Einfügen nicht gefunden\n"
+
+#: ldlang.c:3979
+msgid " load address 0x%V"
+msgstr ""
+
+#: ldlang.c:4254
+msgid "%W (size before relaxing)\n"
+msgstr ""
+
+#: ldlang.c:4345
+#, c-format
+msgid "Address of section %s set to "
+msgstr "Adresse des Abschnitts %s gesetzt auf "
+
+#: ldlang.c:4498
+#, c-format
+msgid "Fail with %d\n"
+msgstr "Fehlschlag mit %d\n"
+
+#: ldlang.c:4785
+msgid "%X%P: section %s loaded at [%V,%V] overlaps section %s loaded at [%V,%V]\n"
+msgstr ""
+
+#: ldlang.c:4801
+msgid "%X%P: region `%s' overflowed by %ld bytes\n"
+msgstr ""
+
+#: ldlang.c:4824
+msgid "%X%P: address 0x%v of %B section `%s' is not within region `%s'\n"
+msgstr ""
+
+#: ldlang.c:4835
+msgid "%X%P: %B section `%s' will not fit in region `%s'\n"
+msgstr ""
+
+#: ldlang.c:4892
+#, c-format
+msgid "%F%S: non constant or forward reference address expression for section %s\n"
+msgstr ""
+
+#: ldlang.c:4917
+msgid "%P%X: Internal error on COFF shared library section %s\n"
+msgstr ""
+
+#: ldlang.c:4974
+msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
+msgstr ""
+
+#: ldlang.c:4979
+msgid "%P: warning: no memory region specified for loadable section `%s'\n"
+msgstr ""
+
+#: ldlang.c:5001
+msgid "%P: warning: changing start of section %s by %lu bytes\n"
+msgstr ""
+
+#: ldlang.c:5078
+msgid "%P: warning: dot moved backwards before `%s'\n"
+msgstr ""
+
+#: ldlang.c:5244
+msgid "%P%F: can't relax section: %E\n"
+msgstr ""
+
+#: ldlang.c:5573
+msgid "%F%P: invalid data statement\n"
+msgstr "%F%P: ungültige data-Anweisung\n"
+
+#: ldlang.c:5606
+msgid "%F%P: invalid reloc statement\n"
+msgstr "%F%P: ungültige reloc-Anweisung\n"
+
+#: ldlang.c:5725
+msgid "%P%F: gc-sections requires either an entry or an undefined symbol\n"
+msgstr ""
+
+#: ldlang.c:5750
+msgid "%P%F:%s: can't set start address\n"
+msgstr "%P%F:%s: Startadresse kann nicht gesetzt werden\n"
+
+#: ldlang.c:5763 ldlang.c:5782
+msgid "%P%F: can't set start address\n"
+msgstr "%P%F: Startadresse kann nicht gesetzt werden\n"
+
+#: ldlang.c:5775
+msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
+msgstr ""
+
+#: ldlang.c:5787
+msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
+msgstr ""
+
+#: ldlang.c:5842
+msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"
+msgstr ""
+
+#: ldlang.c:5852
+msgid "%P%X: %s architecture of input file `%B' is incompatible with %s output\n"
+msgstr "%P%X: %s-Architektur der Eingabedatei »%B« ist inkompatibel zur Ausgabe %s\n"
+
+#: ldlang.c:5874
+msgid "%P%X: failed to merge target specific data of file %B\n"
+msgstr "%P%X: zielspezifische Daten der Datei %B können nicht zusammengeführt werden\n"
+
+#: ldlang.c:5945
+msgid "%P%F: Could not define common symbol `%T': %E\n"
+msgstr ""
+
+#: ldlang.c:5957
+msgid ""
+"\n"
+"Allocating common symbols\n"
+msgstr ""
+
+#: ldlang.c:5958
+msgid ""
+"Common symbol size file\n"
+"\n"
+msgstr ""
+
+#: ldlang.c:6104
+msgid "%P%F: invalid syntax in flags\n"
+msgstr "%P%F: ungültige Syntax in Flags\n"
+
+#: ldlang.c:6566
+msgid "%P%F: Failed to create hash table\n"
+msgstr "%P%F: Hash-Tabelle konnte nicht erzeugt werden\n"
+
+#: ldlang.c:6589
+msgid "%P%F: %s: plugin reported error after all symbols read\n"
+msgstr "%P%F: %s: Plugin meldete Fehler nach dem Lesen aller Symbole\n"
+
+#: ldlang.c:6905
+msgid "%P%F: multiple STARTUP files\n"
+msgstr "%P%F: mehrere STARTUP-Dateien\n"
+
+#: ldlang.c:6951
+msgid "%X%P:%S: section has both a load address and a load region\n"
+msgstr ""
+
+#: ldlang.c:7138
+msgid "%X%P:%S: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
+msgstr ""
+
+#: ldlang.c:7210
+msgid "%F%P: no sections assigned to phdrs\n"
+msgstr ""
+
+#: ldlang.c:7248
+msgid "%F%P: bfd_record_phdr failed: %E\n"
+msgstr "%F%P: bfd_record_phdr fehlgeschlagen: %E\n"
+
+#: ldlang.c:7268
+msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
+msgstr ""
+
+#: ldlang.c:7677
+msgid "%X%P: unknown language `%s' in version information\n"
+msgstr "%X%P: unbekannte Sprache »%s« in Versionsinformation\n"
+
+#: ldlang.c:7822
+msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
+msgstr ""
+
+#: ldlang.c:7831
+msgid "%X%P: duplicate version tag `%s'\n"
+msgstr "%X%P: doppelte Versionskennzeichnung »%s«\n"
+
+#: ldlang.c:7852 ldlang.c:7861 ldlang.c:7879 ldlang.c:7889
+msgid "%X%P: duplicate expression `%s' in version information\n"
+msgstr "%X%P: doppelter Ausdruck »%s« in Versionsinformation\n"
+
+#: ldlang.c:7929
+msgid "%X%P: unable to find version dependency `%s'\n"
+msgstr ""
+
+#: ldlang.c:7952
+msgid "%X%P: unable to read .exports section contents\n"
+msgstr ""
+
+#: ldlang.c:8076
+msgid "%X%P: unknown feature `%s'\n"
+msgstr "%X%P: unbekanntes Funktionsmerkmal »%s«\n"
+
+#: ldmain.c:239
+msgid "%X%P: can't set BFD default target to `%s': %E\n"
+msgstr "%X%P: BFD-Standardziel kann nicht auf »%s« gesetzt werden: %E\n"
+
+#: ldmain.c:303 lexsup.c:1071
+msgid "%P%F: %s: error loading plugin\n"
+msgstr "%P%F: %s: Fehler beim Laden des Plugins\n"
+
+#: ldmain.c:340
+msgid "using external linker script:"
+msgstr "Externes Linker-Skript wird verwendet:"
+
+#: ldmain.c:342
+msgid "using internal linker script:"
+msgstr "Internes Linker-Skript wird verwendet:"
+
+#: ldmain.c:379
+msgid "%P%F: no input files\n"
+msgstr "%P%F: keine Eingabedateien\n"
+
+#: ldmain.c:383
+msgid "%P: mode %s\n"
+msgstr "%P: Modus %s\n"
+
+#: ldmain.c:399
+msgid "%P%F: cannot open map file %s: %E\n"
+msgstr ""
+
+#: ldmain.c:431
+msgid "%P: link errors found, deleting executable `%s'\n"
+msgstr ""
+
+#: ldmain.c:440
+msgid "%F%B: final close failed: %E\n"
+msgstr "%F%B: finales Schließen fehlgeschlagen: %E\n"
+
+#: ldmain.c:466
+msgid "%X%P: unable to open for source of copy `%s'\n"
+msgstr "%X%P: kann nicht als Quelle der Kopie »%s« geöffnet werden\n"
+
+#: ldmain.c:469
+msgid "%X%P: unable to open for destination of copy `%s'\n"
+msgstr "%X%P: kann nicht als Ziel der Kopie »%s« geöffnet werden\n"
+
+#: ldmain.c:476
+msgid "%P: Error writing file `%s'\n"
+msgstr "%P: Fehler beim Schreiben der Datei »%s«\n"
+
+#: ldmain.c:481 pe-dll.c:1739
+#, c-format
+msgid "%P: Error closing file `%s'\n"
+msgstr "%P: Fehler beim Schließen der Datei »%s«\n"
+
+#: ldmain.c:498
+#, c-format
+msgid "%s: total time in link: %ld.%06ld\n"
+msgstr ""
+
+#: ldmain.c:501
+#, c-format
+msgid "%s: data size %ld\n"
+msgstr "%s: Datengröße %ld\n"
+
+#: ldmain.c:585
+msgid "%P%F: missing argument to -m\n"
+msgstr "%P%F: Argument zu -m fehlt\n"
+
+#: ldmain.c:633 ldmain.c:653 ldmain.c:685
+msgid "%P%F: bfd_hash_table_init failed: %E\n"
+msgstr "%P%F: bfd_hash_table_init fehlgeschlagen: %E\n"
+
+#: ldmain.c:637 ldmain.c:657
+msgid "%P%F: bfd_hash_lookup failed: %E\n"
+msgstr "%P%F: bfd_hash_lookup fehlgeschlagen: %E\n"
+
+#: ldmain.c:671
+msgid "%X%P: error: duplicate retain-symbols-file\n"
+msgstr ""
+
+#: ldmain.c:715
+msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
+msgstr "%P%F: bfd_hash_lookup zum Einfügen fehlgeschlagen: %E\n"
+
+#: ldmain.c:720
+msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
+msgstr "%P: »-retain-symbols-file« setzt »-s« und »-S« außer Kraft\n"
+
+#: ldmain.c:820
+#, c-format
+msgid ""
+"Archive member included because of file (symbol)\n"
+"\n"
+msgstr ""
+
+#: ldmain.c:926
+msgid "%X%C: multiple definition of `%T'\n"
+msgstr "%X%C: Mehrfachdefinition von »%T«\n"
+
+#: ldmain.c:929
+msgid "%D: first defined here\n"
+msgstr "%D: hier zuerst definiert\n"
+
+#: ldmain.c:933
+msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
+msgstr ""
+
+#: ldmain.c:987
+msgid "%B: warning: definition of `%T' overriding common\n"
+msgstr ""
+
+#: ldmain.c:990
+msgid "%B: warning: common is here\n"
+msgstr ""
+
+#: ldmain.c:997
+msgid "%B: warning: common of `%T' overridden by definition\n"
+msgstr ""
+
+#: ldmain.c:1000
+msgid "%B: warning: defined here\n"
+msgstr ""
+
+#: ldmain.c:1007
+msgid "%B: warning: common of `%T' overridden by larger common\n"
+msgstr ""
+
+#: ldmain.c:1010
+msgid "%B: warning: larger common is here\n"
+msgstr ""
+
+#: ldmain.c:1014
+msgid "%B: warning: common of `%T' overriding smaller common\n"
+msgstr ""
+
+#: ldmain.c:1017
+msgid "%B: warning: smaller common is here\n"
+msgstr ""
+
+#: ldmain.c:1021
+msgid "%B: warning: multiple common of `%T'\n"
+msgstr ""
+
+#: ldmain.c:1023
+msgid "%B: warning: previous common is here\n"
+msgstr ""
+
+#: ldmain.c:1043 ldmain.c:1081
+msgid "%P: warning: global constructor %s used\n"
+msgstr ""
+
+#: ldmain.c:1091
+msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
+msgstr "%P%F: Fehler im BFD-Backend: BFD_RELOC_CTOR wird nicht unterstützt\n"
+
+#. We found a reloc for the symbol we are looking for.
+#: ldmain.c:1145 ldmain.c:1147 ldmain.c:1149 ldmain.c:1167 ldmain.c:1212
+msgid "warning: "
+msgstr "Warnung:"
+
+#: ldmain.c:1248
+msgid "%F%P: bfd_hash_table_init failed: %E\n"
+msgstr "%F%P: bfd_hash_table_init fehlgeschlagen: %E\n"
+
+#: ldmain.c:1255
+msgid "%F%P: bfd_hash_lookup failed: %E\n"
+msgstr "%F%P: bfd_hash_lookup fehlgeschlagen: %E\n"
+
+#: ldmain.c:1276
+msgid "%X%C: undefined reference to `%T'\n"
+msgstr "%X%C: Warnung: undefinierter Verweis auf »%T«\n"
+
+#: ldmain.c:1279
+msgid "%C: warning: undefined reference to `%T'\n"
+msgstr "%C: Warnung: undefinierter Verweis auf »%T«\n"
+
+#: ldmain.c:1285
+msgid "%X%D: more undefined references to `%T' follow\n"
+msgstr "%X%D: Warnung: weitere undefinierte Verweise auf »%T« folgen\n"
+
+#: ldmain.c:1288
+msgid "%D: warning: more undefined references to `%T' follow\n"
+msgstr "%D: Warnung: weitere undefinierte Verweise auf »%T« folgen\n"
+
+#: ldmain.c:1299
+msgid "%X%B: undefined reference to `%T'\n"
+msgstr "%X%B: Warnung: undefinierter Verweis auf »%T«\n"
+
+#: ldmain.c:1302
+msgid "%B: warning: undefined reference to `%T'\n"
+msgstr "%B: Warnung: undefinierter Verweis auf »%T«\n"
+
+#: ldmain.c:1308
+msgid "%X%B: more undefined references to `%T' follow\n"
+msgstr "%X%B: Warnung: weitere undefinierte Verweise auf »%T« folgen\n"
+
+#: ldmain.c:1311
+msgid "%B: warning: more undefined references to `%T' follow\n"
+msgstr "%B: Warnung: weitere undefinierte Verweise auf »%T« folgen\n"
+
+#: ldmain.c:1350
+msgid " additional relocation overflows omitted from the output\n"
+msgstr ""
+
+#: ldmain.c:1363
+msgid " relocation truncated to fit: %s against undefined symbol `%T'"
+msgstr ""
+
+#: ldmain.c:1368
+msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"
+msgstr ""
+
+#: ldmain.c:1380
+msgid " relocation truncated to fit: %s against `%T'"
+msgstr ""
+
+#: ldmain.c:1397
+msgid "%X%H: dangerous relocation: %s\n"
+msgstr ""
+
+#: ldmain.c:1412
+msgid "%X%H: reloc refers to symbol `%T' which is not being output\n"
+msgstr ""
+
+#: ldmisc.c:151
+#, c-format
+msgid "no symbol"
+msgstr "kein Symbol"
+
+#: ldmisc.c:248
+#, c-format
+msgid "built in linker script:%u"
+msgstr ""
+
+#: ldmisc.c:329
+msgid "%B: In function `%T':\n"
+msgstr "%B: In Funktion »%T«:\n"
+
+#: ldmisc.c:464
+msgid "%F%P: internal error %s %d\n"
+msgstr "%F%P: interner Fehler %s %d\n"
+
+#: ldmisc.c:513
+msgid "%P: internal error: aborting at %s line %d in %s\n"
+msgstr "%P: interner Fehler: Abbruch bei %s Zeile %d in %s\n"
+
+#: ldmisc.c:516
+msgid "%P: internal error: aborting at %s line %d\n"
+msgstr "%P: interner Fehler: Abbruch bei %s Zeile %d\n"
+
+#: ldmisc.c:518
+msgid "%P%F: please report this bug\n"
+msgstr "%P%F: Bitte melden Sie diesen Fehler\n"
+
+#. Output for noisy == 2 is intended to follow the GNU standards.
+#: ldver.c:39
+#, c-format
+msgid "GNU ld %s\n"
+msgstr "GNU ld %s\n"
+
+#: ldver.c:43
+#, c-format
+msgid "Copyright 2011 Free Software Foundation, Inc.\n"
+msgstr "Copyright 2011 Free Software Foundation, Inc.\n"
+
+#: ldver.c:44
+#, c-format
+msgid ""
+"This program is free software; you may redistribute it under the terms of\n"
+"the GNU General Public License version 3 or (at your option) a later version.\n"
+"This program has absolutely no warranty.\n"
+msgstr ""
+"Dieses Programm ist freie Software: Sie können es unter den Bedingungen der\n"
+"GNU General Public License weitergeben, entweder in Version 3 oder (nach Ihrer Wahl)\n"
+"jeder neueren Version.\n"
+"Dieses Programm wird ohne jegliche Gewährleistung geliefert.\n"
+
+#: ldver.c:54
+#, c-format
+msgid " Supported emulations:\n"
+msgstr " Unterstützte Emulationen:\n"
+
+#: ldwrite.c:62 ldwrite.c:207
+msgid "%P%F: bfd_new_link_order failed\n"
+msgstr "%P%F: bfd_new_link_order fehlgeschlagen\n"
+
+#: ldwrite.c:365
+msgid "%F%P: cannot create split section name for %s\n"
+msgstr ""
+
+#: ldwrite.c:377
+msgid "%F%P: clone section failed: %E\n"
+msgstr ""
+
+#: ldwrite.c:418
+#, c-format
+msgid "%8x something else\n"
+msgstr ""
+
+#: ldwrite.c:588
+msgid "%F%P: final link failed: %E\n"
+msgstr ""
+
+#: lexsup.c:220 lexsup.c:374
+msgid "KEYWORD"
+msgstr "SCHLÃœSSELWORT"
+
+#: lexsup.c:220
+msgid "Shared library control for HP/UX compatibility"
+msgstr "Steuerung gemeinsam genutzter Bibliotheken für HP/UX-Kompatibilität"
+
+#: lexsup.c:223
+msgid "ARCH"
+msgstr "ARCH"
+
+#: lexsup.c:223
+msgid "Set architecture"
+msgstr "Architektur festlegen"
+
+#: lexsup.c:225 lexsup.c:493
+msgid "TARGET"
+msgstr "ZIEL"
+
+#: lexsup.c:225
+msgid "Specify target for following input files"
+msgstr "Ziel für die folgenden Eingabedateien festlegen"
+
+#: lexsup.c:228 lexsup.c:279 lexsup.c:303 lexsup.c:316 lexsup.c:318
+#: lexsup.c:447 lexsup.c:509 lexsup.c:572 lexsup.c:585
+msgid "FILE"
+msgstr "DATEI"
+
+#: lexsup.c:228
+msgid "Read MRI format linker script"
+msgstr ""
+
+#: lexsup.c:230
+msgid "Force common symbols to be defined"
+msgstr ""
+
+#: lexsup.c:234 lexsup.c:553 lexsup.c:555 lexsup.c:557 lexsup.c:559
+msgid "ADDRESS"
+msgstr "ADRESSE"
+
+#: lexsup.c:234
+msgid "Set start address"
+msgstr "Startadresse festlegen"
+
+#: lexsup.c:236
+msgid "Export all dynamic symbols"
+msgstr "Alle dynamischen Symbole exportieren"
+
+#: lexsup.c:238
+msgid "Undo the effect of --export-dynamic"
+msgstr "Den Effekt von --export-dynamic rückgängig machen"
+
+#: lexsup.c:240
+msgid "Link big-endian objects"
+msgstr "Big-Endian-Objekte verlinken"
+
+#: lexsup.c:242
+msgid "Link little-endian objects"
+msgstr "Little-Endian-Objekte verlinken"
+
+#: lexsup.c:244 lexsup.c:247
+msgid "SHLIB"
+msgstr "SHLIB"
+
+#: lexsup.c:244
+msgid "Auxiliary filter for shared object symbol table"
+msgstr ""
+
+#: lexsup.c:247
+msgid "Filter for shared object symbol table"
+msgstr ""
+
+#: lexsup.c:250
+msgid "Ignored"
+msgstr "Ignoriert"
+
+#: lexsup.c:252
+msgid "SIZE"
+msgstr "GRÖSSE"
+
+#: lexsup.c:252
+msgid "Small data size (if no size, same as --shared)"
+msgstr ""
+
+#: lexsup.c:255
+msgid "FILENAME"
+msgstr "DATEINAME"
+
+#: lexsup.c:255
+msgid "Set internal name of shared library"
+msgstr "Internen Namen der gemeinsam genutzten Bibliothek festlegen"
+
+#: lexsup.c:257
+msgid "PROGRAM"
+msgstr "PROGRAMM"
+
+#: lexsup.c:257
+msgid "Set PROGRAM as the dynamic linker to use"
+msgstr "PROGRAMM als zu verwendenden dynamischen Linker festlegen"
+
+#: lexsup.c:260
+msgid "LIBNAME"
+msgstr "BIBNAME"
+
+#: lexsup.c:260
+msgid "Search for library LIBNAME"
+msgstr "Nach der Bibliothek BIBNAME suchen"
+
+#: lexsup.c:262
+msgid "DIRECTORY"
+msgstr "VERZEICHNIS"
+
+#: lexsup.c:262
+msgid "Add DIRECTORY to library search path"
+msgstr "VERZEICHNIS zum Suchpfad für Bibliotheken hinzufügen"
+
+#: lexsup.c:265
+msgid "Override the default sysroot location"
+msgstr ""
+
+#: lexsup.c:267
+msgid "EMULATION"
+msgstr "EMULATION"
+
+#: lexsup.c:267
+msgid "Set emulation"
+msgstr "Emulation setzen"
+
+#: lexsup.c:269
+msgid "Print map file on standard output"
+msgstr ""
+
+#: lexsup.c:271
+msgid "Do not page align data"
+msgstr ""
+
+#: lexsup.c:273
+msgid "Do not page align data, do not make text readonly"
+msgstr ""
+
+#: lexsup.c:276
+msgid "Page align data, make text readonly"
+msgstr ""
+
+#: lexsup.c:279
+msgid "Set output file name"
+msgstr "Name der Ausgabedatei festlegen"
+
+#: lexsup.c:281
+msgid "Optimize output file"
+msgstr "Ausgabedatei optimieren"
+
+#: lexsup.c:284
+msgid "PLUGIN"
+msgstr "PLUGIN"
+
+#: lexsup.c:284
+msgid "Load named plugin"
+msgstr "Benanntes Plugin laden"
+
+#: lexsup.c:286
+msgid "ARG"
+msgstr "ARG"
+
+#: lexsup.c:286
+msgid "Send arg to last-loaded plugin"
+msgstr "Argument an zuletzt geladenes Plugin senden"
+
+#: lexsup.c:288 lexsup.c:291
+msgid "Ignored for GCC LTO option compatibility"
+msgstr ""
+
+#: lexsup.c:295
+msgid "Ignored for SVR4 compatibility"
+msgstr "Ignoriert für SVR4-Kompatibilität"
+
+#: lexsup.c:299
+msgid "Generate relocatable output"
+msgstr ""
+
+#: lexsup.c:303
+msgid "Just link symbols (if directory, same as --rpath)"
+msgstr "Symbole nur linken (falls Verzeichnis, gleichbedeutend mit --rpath)"
+
+#: lexsup.c:306
+msgid "Strip all symbols"
+msgstr ""
+
+#: lexsup.c:308
+msgid "Strip debugging symbols"
+msgstr ""
+
+#: lexsup.c:310
+msgid "Strip symbols in discarded sections"
+msgstr ""
+
+#: lexsup.c:312
+msgid "Do not strip symbols in discarded sections"
+msgstr ""
+
+#: lexsup.c:314
+msgid "Trace file opens"
+msgstr "Dateiöffnungen verfolgen"
+
+#: lexsup.c:316
+msgid "Read linker script"
+msgstr "Linker-Skript lesen"
+
+#: lexsup.c:318
+msgid "Read default linker script"
+msgstr "Vorgebenes Linker-Skript lesen"
+
+#: lexsup.c:322 lexsup.c:340 lexsup.c:424 lexsup.c:445 lexsup.c:546
+#: lexsup.c:575 lexsup.c:614
+msgid "SYMBOL"
+msgstr "SYMBOL"
+
+#: lexsup.c:322
+msgid "Start with undefined reference to SYMBOL"
+msgstr ""
+
+#: lexsup.c:325
+msgid "[=SECTION]"
+msgstr ""
+
+#: lexsup.c:326
+msgid "Don't merge input [SECTION | orphan] sections"
+msgstr ""
+
+#: lexsup.c:328
+msgid "Build global constructor/destructor tables"
+msgstr ""
+
+#: lexsup.c:330
+msgid "Print version information"
+msgstr "Versionsinformationen ausgeben"
+
+#: lexsup.c:332
+msgid "Print version and emulation information"
+msgstr "Versions- und Emulationsinformationen ausgeben"
+
+#: lexsup.c:334
+msgid "Discard all local symbols"
+msgstr "Alle lokalen Symbole verwerfen"
+
+#: lexsup.c:336
+msgid "Discard temporary local symbols (default)"
+msgstr "Temporäre lokale Symbole verwerfen (Vorgabe)"
+
+#: lexsup.c:338
+msgid "Don't discard any local symbols"
+msgstr "Lokale Symbole niemals verwerfen"
+
+#: lexsup.c:340
+msgid "Trace mentions of SYMBOL"
+msgstr ""
+
+#: lexsup.c:342 lexsup.c:511 lexsup.c:513
+msgid "PATH"
+msgstr "PFAD"
+
+#: lexsup.c:342
+msgid "Default search path for Solaris compatibility"
+msgstr "Vorgegebener Suchpfad für Solaris-Kompatibilität"
+
+#: lexsup.c:345
+msgid "Start a group"
+msgstr "Gruppe starten"
+
+#: lexsup.c:347
+msgid "End a group"
+msgstr "Gruppe beenden"
+
+#: lexsup.c:351
+msgid "Accept input files whose architecture cannot be determined"
+msgstr "Eingabedateien akzeptieren, deren Architektur nicht ermittelt werden kann"
+
+#: lexsup.c:355
+msgid "Reject input files whose architecture is unknown"
+msgstr "Eingabedateien abweisen, deren Architektur unbekannt ist"
+
+#: lexsup.c:367
+msgid "Only set DT_NEEDED for following dynamic libs if used"
+msgstr ""
+
+#: lexsup.c:370
+msgid ""
+"Always set DT_NEEDED for dynamic libraries mentioned on\n"
+" the command line"
+msgstr ""
+
+#: lexsup.c:374
+msgid "Ignored for SunOS compatibility"
+msgstr "Ignoriert wegen SunOS-Kompatibilität"
+
+#: lexsup.c:376
+msgid "Link against shared libraries"
+msgstr ""
+
+#: lexsup.c:382
+msgid "Do not link against shared libraries"
+msgstr ""
+
+#: lexsup.c:390
+msgid "Bind global references locally"
+msgstr ""
+
+#: lexsup.c:392
+msgid "Bind global function references locally"
+msgstr ""
+
+#: lexsup.c:394
+msgid "Check section addresses for overlaps (default)"
+msgstr ""
+
+#: lexsup.c:397
+msgid "Do not check section addresses for overlaps"
+msgstr "Abschnittsadressen nicht auf Überlappungen prüfen"
+
+#: lexsup.c:401
+msgid "Copy DT_NEEDED links mentioned inside DSOs that follow"
+msgstr ""
+
+#: lexsup.c:405
+msgid "Do not copy DT_NEEDED links mentioned inside DSOs that follow"
+msgstr ""
+
+#: lexsup.c:409
+msgid "Output cross reference table"
+msgstr "Querverweis-Tabelle ausgeben"
+
+#: lexsup.c:411
+msgid "SYMBOL=EXPRESSION"
+msgstr "SYMBOL=AUSDRUCK"
+
+#: lexsup.c:411
+msgid "Define a symbol"
+msgstr "Ein Symbol definieren"
+
+#: lexsup.c:413
+msgid "[=STYLE]"
+msgstr "[=STIL]"
+
+#: lexsup.c:413
+msgid "Demangle symbol names [using STYLE]"
+msgstr ""
+
+#: lexsup.c:416
+msgid "Generate embedded relocs"
+msgstr ""
+
+#: lexsup.c:418
+msgid "Treat warnings as errors"
+msgstr "Warnungen als Fehler auffassen"
+
+#: lexsup.c:421
+msgid "Do not treat warnings as errors (default)"
+msgstr "Warnungen nicht als Fehler auffassen (Vorgabe)"
+
+#: lexsup.c:424
+msgid "Call SYMBOL at unload-time"
+msgstr ""
+
+#: lexsup.c:426
+msgid "Force generation of file with .exe suffix"
+msgstr "Erzeugung der Datei mit Endung .exe erzwingen"
+
+#: lexsup.c:428
+msgid "Remove unused sections (on some targets)"
+msgstr "Ungenutzte Abschnitte entfernen (in einigen Zielen)"
+
+#: lexsup.c:431
+msgid "Don't remove unused sections (default)"
+msgstr "Ungenutzte Abschnitte nicht entfernen (Vorgabe)"
+
+#: lexsup.c:434
+msgid "List removed unused sections on stderr"
+msgstr ""
+
+#: lexsup.c:437
+msgid "Do not list removed unused sections"
+msgstr ""
+
+#: lexsup.c:440
+msgid "Set default hash table size close to <NUMBER>"
+msgstr ""
+
+#: lexsup.c:443
+msgid "Print option help"
+msgstr "Hilfe zu Optionen ausgeben"
+
+#: lexsup.c:445
+msgid "Call SYMBOL at load-time"
+msgstr ""
+
+#: lexsup.c:447
+msgid "Write a map file"
+msgstr ""
+
+#: lexsup.c:449
+msgid "Do not define Common storage"
+msgstr ""
+
+#: lexsup.c:451
+msgid "Do not demangle symbol names"
+msgstr ""
+
+#: lexsup.c:453
+msgid "Use less memory and more disk I/O"
+msgstr ""
+
+#: lexsup.c:455
+msgid "Do not allow unresolved references in object files"
+msgstr "Keine unaufgelösten Referenzen in Objektdateien erlauben"
+
+#: lexsup.c:458
+msgid "Allow unresolved references in shared libraries"
+msgstr ""
+
+#: lexsup.c:462
+msgid "Do not allow unresolved references in shared libs"
+msgstr ""
+
+#: lexsup.c:466
+msgid "Allow multiple definitions"
+msgstr "Mehrfachdefinitionen erlauben"
+
+#: lexsup.c:468
+msgid "Disallow undefined version"
+msgstr "Keine undefinierten Versionen erlauben"
+
+#: lexsup.c:470
+msgid "Create default symbol version"
+msgstr ""
+
+#: lexsup.c:473
+msgid "Create default symbol version for imported symbols"
+msgstr ""
+
+#: lexsup.c:476
+msgid "Don't warn about mismatched input files"
+msgstr ""
+
+#: lexsup.c:479
+msgid "Don't warn on finding an incompatible library"
+msgstr ""
+
+#: lexsup.c:482
+msgid "Turn off --whole-archive"
+msgstr "--whole-archive abschalten"
+
+#: lexsup.c:484
+msgid "Create an output file even if errors occur"
+msgstr "Ausgabedateien auch dann erzeugen, wenn Fehler aufgetreten sind"
+
+#: lexsup.c:489
+msgid ""
+"Only use library directories specified on\n"
+" the command line"
+msgstr ""
+
+#: lexsup.c:493
+msgid "Specify target of output file"
+msgstr "-"
+
+#: lexsup.c:496
+msgid "Print default output format"
+msgstr "Vorgegebenes Ausgabeformat ausgeben"
+
+#: lexsup.c:498
+msgid "Ignored for Linux compatibility"
+msgstr "wird für Linux-Kompatibilität ignoriert"
+
+#: lexsup.c:501
+msgid "Reduce memory overheads, possibly taking much longer"
+msgstr ""
+
+#: lexsup.c:504
+msgid "Reduce code size by using target specific optimizations"
+msgstr "Codegröße durch zielspezifische Optionen verringern"
+
+#: lexsup.c:506
+msgid "Do not use relaxation techniques to reduce code size"
+msgstr ""
+
+#: lexsup.c:509
+msgid "Keep only symbols listed in FILE"
+msgstr ""
+
+#: lexsup.c:511
+msgid "Set runtime shared library search path"
+msgstr ""
+
+#: lexsup.c:513
+msgid "Set link time shared library search path"
+msgstr ""
+
+#: lexsup.c:516
+msgid "Create a shared library"
+msgstr "Eine Laufzeitbibliothek erzeugen"
+
+#: lexsup.c:520
+msgid "Create a position independent executable"
+msgstr ""
+
+#: lexsup.c:524
+msgid "[=ascending|descending]"
+msgstr "[=ascending|descending]"
+
+#: lexsup.c:525
+msgid "Sort common symbols by alignment [in specified order]"
+msgstr ""
+
+#: lexsup.c:530
+msgid "name|alignment"
+msgstr ""
+
+#: lexsup.c:531
+msgid "Sort sections by name or maximum alignment"
+msgstr ""
+
+#: lexsup.c:533
+msgid "COUNT"
+msgstr "ANZAHL"
+
+#: lexsup.c:533
+msgid "How many tags to reserve in .dynamic section"
+msgstr ""
+
+#: lexsup.c:536
+msgid "[=SIZE]"
+msgstr "[=GRÖSSE]"
+
+#: lexsup.c:536
+msgid "Split output sections every SIZE octets"
+msgstr ""
+
+#: lexsup.c:539
+msgid "[=COUNT]"
+msgstr "[=ANZAHL]"
+
+#: lexsup.c:539
+msgid "Split output sections every COUNT relocs"
+msgstr ""
+
+#: lexsup.c:542
+msgid "Print memory usage statistics"
+msgstr "Statistiken zur Speichernutzung ausgeben"
+
+#: lexsup.c:544
+msgid "Display target specific options"
+msgstr "Ziel-spezifische Optionen anzeigen"
+
+#: lexsup.c:546
+msgid "Do task level linking"
+msgstr ""
+
+#: lexsup.c:548
+msgid "Use same format as native linker"
+msgstr "Gleiches Format wie der native Linker verwenden"
+
+#: lexsup.c:550
+msgid "SECTION=ADDRESS"
+msgstr "ABSCHNITT=ADRESSE"
+
+#: lexsup.c:550
+msgid "Set address of named section"
+msgstr ""
+
+#: lexsup.c:553
+msgid "Set address of .bss section"
+msgstr ""
+
+#: lexsup.c:555
+msgid "Set address of .data section"
+msgstr ""
+
+#: lexsup.c:557
+msgid "Set address of .text section"
+msgstr ""
+
+#: lexsup.c:559
+msgid "Set address of text segment"
+msgstr ""
+
+#: lexsup.c:562
+msgid ""
+"How to handle unresolved symbols. <method> is:\n"
+" ignore-all, report-all, ignore-in-object-files,\n"
+" ignore-in-shared-libs"
+msgstr ""
+
+#: lexsup.c:567
+msgid "[=NUMBER]"
+msgstr "[=ZAHL]"
+
+#: lexsup.c:568
+msgid "Output lots of information during link"
+msgstr ""
+
+#: lexsup.c:572
+msgid "Read version information script"
+msgstr "Versionsinformationsskript lesen"
+
+#: lexsup.c:575
+msgid ""
+"Take export symbols list from .exports, using\n"
+" SYMBOL as the version."
+msgstr ""
+
+#: lexsup.c:579
+msgid "Add data symbols to dynamic list"
+msgstr "Datensymbole zur dynamischen Liste hinzufügen"
+
+#: lexsup.c:581
+msgid "Use C++ operator new/delete dynamic list"
+msgstr ""
+
+#: lexsup.c:583
+msgid "Use C++ typeinfo dynamic list"
+msgstr ""
+
+#: lexsup.c:585
+msgid "Read dynamic list"
+msgstr "Dynamische Liste lesen"
+
+#: lexsup.c:587
+msgid "Warn about duplicate common symbols"
+msgstr ""
+
+#: lexsup.c:589
+msgid "Warn if global constructors/destructors are seen"
+msgstr ""
+
+#: lexsup.c:592
+msgid "Warn if the multiple GP values are used"
+msgstr ""
+
+#: lexsup.c:594
+msgid "Warn only once per undefined symbol"
+msgstr ""
+
+#: lexsup.c:596
+msgid "Warn if start of section changes due to alignment"
+msgstr ""
+
+#: lexsup.c:599
+msgid "Warn if shared object has DT_TEXTREL"
+msgstr ""
+
+#: lexsup.c:602
+msgid "Warn if an object has alternate ELF machine code"
+msgstr ""
+
+#: lexsup.c:606
+msgid "Report unresolved symbols as warnings"
+msgstr "Nicht aufgelöste Symbole als Warnungen melden"
+
+#: lexsup.c:609
+msgid "Report unresolved symbols as errors"
+msgstr "Nicht aufgelöste Symbole als Fehler melden"
+
+#: lexsup.c:611
+msgid "Include all objects from following archives"
+msgstr "Alle Objekte aus den folgenden Archiven einschließen"
+
+#: lexsup.c:614
+msgid "Use wrapper functions for SYMBOL"
+msgstr ""
+
+#: lexsup.c:763
+msgid "%P: unrecognized option '%s'\n"
+msgstr "%P: unbekannte Option »%s«\n"
+
+#: lexsup.c:767
+msgid "%P%F: use the --help option for usage information\n"
+msgstr "%P%F: Benutzen Sie die Option --help für Informationen zum Aufruf\n"
+
+#: lexsup.c:785
+msgid "%P%F: unrecognized -a option `%s'\n"
+msgstr "%P%F: nicht erkannte -a-Option »%s«\n"
+
+#: lexsup.c:798
+msgid "%P%F: unrecognized -assert option `%s'\n"
+msgstr "%P%F: nicht erkannte -assert-Option »%s«\n"
+
+#: lexsup.c:841
+msgid "%F%P: unknown demangling style `%s'"
+msgstr ""
+
+#: lexsup.c:907 lexsup.c:1341
+msgid "%P%F: invalid number `%s'\n"
+msgstr "%P%F: ungültige Zahl »%s«\n"
+
+#: lexsup.c:1005
+msgid "%P%F: bad --unresolved-symbols option: %s\n"
+msgstr ""
+
+#: lexsup.c:1076
+msgid "%P%F: bad -plugin-opt option\n"
+msgstr "%P%F: fehlerhafte -plugin-opt-Option\n"
+
+#. This can happen if the user put "-rpath,a" on the command
+#. line. (Or something similar. The comma is important).
+#. Getopt becomes confused and thinks that this is a -r option
+#. but it cannot parse the text after the -r so it refuses to
+#. increment the optind counter. Detect this case and issue
+#. 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:1093
+msgid "%P%F: bad -rpath option\n"
+msgstr "%P%F: fehlerhafte -rpath-Option\n"
+
+#: lexsup.c:1207
+msgid "%P%F: -shared not supported\n"
+msgstr "%P%F: -shared nicht unterstützt\n"
+
+#: lexsup.c:1216
+msgid "%P%F: -pie not supported\n"
+msgstr "%P%F: -pie nicht unterstützt\n"
+
+#: lexsup.c:1224
+msgid "descending"
+msgstr "absteigend"
+
+#: lexsup.c:1226
+msgid "ascending"
+msgstr "aufsteigend"
+
+#: lexsup.c:1229
+msgid "%P%F: invalid common section sorting option: %s\n"
+msgstr ""
+
+#: lexsup.c:1233
+msgid "name"
+msgstr "Name"
+
+#: lexsup.c:1235
+msgid "alignment"
+msgstr "Ausrichtung"
+
+#: lexsup.c:1238
+msgid "%P%F: invalid section sorting option: %s\n"
+msgstr ""
+
+#: lexsup.c:1272
+msgid "%P%F: invalid argument to option \"--section-start\"\n"
+msgstr "%P%F: ungültiges Argument zur Option »--section-start«\n"
+
+#: lexsup.c:1279
+msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
+msgstr "%P%F: fehlend(e) Argument(e) zur Option »--section-start«\n"
+
+#: lexsup.c:1513
+msgid "%P%F: group ended before it began (--help for usage)\n"
+msgstr "%P%F: Gruppe endete, bevor sie begann (--help für Aufruf-Info)\n"
+
+#: lexsup.c:1541
+msgid "%P%X: --hash-size needs a numeric argument\n"
+msgstr "%P%X: --hash-size benötigt ein numerisches Argument\n"
+
+#: lexsup.c:1572
+msgid "%P%F: -r and -shared may not be used together\n"
+msgstr "%P%F: -r and -shared dürfen nicht zusammen verwendet werden\n"
+
+#: lexsup.c:1615
+msgid "%P%F: -F may not be used without -shared\n"
+msgstr "%P%F: -F darf nicht ohne -shared verwendet werden\n"
+
+#: lexsup.c:1617
+msgid "%P%F: -f may not be used without -shared\n"
+msgstr "%P%F: -f darf nicht ohne -shared verwendet werden\n"
+
+#: lexsup.c:1661 lexsup.c:1674
+msgid "%P%F: invalid hex number `%s'\n"
+msgstr "%P%F: ungültige Hexadezimalzahl »%s«\n"
+
+#: lexsup.c:1710
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Aufruf: %s [Optionen] Datei …\n"
+
+#: lexsup.c:1712
+#, c-format
+msgid "Options:\n"
+msgstr "Optionen:\n"
+
+#: lexsup.c:1790
+#, c-format
+msgid " @FILE"
+msgstr " @DATEI"
+
+#: lexsup.c:1793
+#, c-format
+msgid "Read options from FILE\n"
+msgstr "Optionen aus DATEI lesen\n"
+
+#. Note: Various tools (such as libtool) depend upon the
+#. format of the listings below - do not change them.
+#: lexsup.c:1798
+#, c-format
+msgid "%s: supported targets:"
+msgstr "%s: Unterstützte Ziele:"
+
+#: lexsup.c:1806
+#, c-format
+msgid "%s: supported emulations: "
+msgstr "%s: Unterstützte Emulationen:"
+
+#: lexsup.c:1811
+#, c-format
+msgid "%s: emulation specific options:\n"
+msgstr "%s: Emulationsspezifische Optionen:\n"
+
+#: lexsup.c:1816
+#, c-format
+msgid "Report bugs to %s\n"
+msgstr ""
+"Melden Sie Fehler an: %s\n"
+"Ãœbersetzungsfehler melden Sie bitte an:\n"
+"<translation-team-de@lists.sourceforge.net>\n"
+
+#: mri.c:294
+msgid "%P%F: unknown format type %s\n"
+msgstr "%P%F: unbekannter Format-Typ %s\n"
+
+#: pe-dll.c:431
+#, c-format
+msgid "%XUnsupported PEI architecture: %s\n"
+msgstr "%XNicht unterstützte PEI-Architektur: %s\n"
+
+#: pe-dll.c:788
+#, c-format
+msgid "%XCannot export %s: invalid export name\n"
+msgstr "%X%s kann nicht exportiert werden: ungültiger Export-Name\n"
+
+#: pe-dll.c:845
+#, c-format
+msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
+msgstr ""
+
+#: pe-dll.c:852
+#, c-format
+msgid "Warning, duplicate EXPORT: %s\n"
+msgstr "Warnung, doppelter EXPORT: %s\n"
+
+#: pe-dll.c:939
+#, c-format
+msgid "%XCannot export %s: symbol not defined\n"
+msgstr "%X%s kann nicht exportiert werden: Symbol nicht definiert\n"
+
+#: pe-dll.c:945
+#, c-format
+msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
+msgstr "%X%s kann nicht exportiert werden: Symbol des falschen Typs (%d vs %d)\n"
+
+#: pe-dll.c:952
+#, c-format
+msgid "%XCannot export %s: symbol not found\n"
+msgstr "%X%s kann nicht exportiert werden: Symbol nicht gefunden\n"
+
+#: pe-dll.c:1066
+#, c-format
+msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
+msgstr ""
+
+#: pe-dll.c:1456
+#, c-format
+msgid "%XError: %d-bit reloc in dll\n"
+msgstr ""
+
+#: pe-dll.c:1584
+#, c-format
+msgid "%s: Can't open output def file %s\n"
+msgstr ""
+
+#: pe-dll.c:1735
+#, c-format
+msgid "; no contents available\n"
+msgstr "; kein Inhalt verfügbar\n"
+
+#: pe-dll.c:2662
+msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
+msgstr ""
+
+#: pe-dll.c:2692
+#, c-format
+msgid "%XCan't open .lib file: %s\n"
+msgstr "%X .lib-Datei kann nicht geöffnet werden: %s\n"
+
+#: pe-dll.c:2697
+#, c-format
+msgid "Creating library file: %s\n"
+msgstr "Bibliotheksdatei wird erzeugt: %s\n"
+
+#: pe-dll.c:2726
+#, c-format
+msgid "%Xbfd_openr %s: %E\n"
+msgstr "%Xbfd_openr %s: %E\n"
+
+#: pe-dll.c:2738
+#, c-format
+msgid "%X%s(%s): can't find member in non-archive file"
+msgstr ""
+
+#: pe-dll.c:2750
+#, c-format
+msgid "%X%s(%s): can't find member in archive"
+msgstr "%X%s(%s): Element kann im Archiv nicht gefunden werden"
+
+#: pe-dll.c:3189
+#, c-format
+msgid "%XError: can't use long section names on this arch\n"
+msgstr ""
+
+#: plugin.c:177 plugin.c:211
+msgid "<no plugin>"
+msgstr "<kein Plugin>"
+
+#: plugin.c:250
+#, c-format
+msgid "could not create dummy IR bfd: %F%E\n"
+msgstr ""
+
+#: plugin.c:343
+msgid "%P%F: %s: non-ELF symbol in ELF BFD!\n"
+msgstr "%P%F: %s: nicht-ELF-Symbol in ELF-BFD!\n"
+
+#: plugin.c:347
+msgid "%P%F: unknown ELF symbol visibility: %d!\n"
+msgstr ""
+
+#: plugin.c:586
+msgid "%P: %B: symbol `%s' definition: %d, visibility: %d, resolution: %d\n"
+msgstr ""
+
+#: plugin.c:863
+msgid "%P%F: %s: plugin reported error claiming file\n"
+msgstr ""
+
+#: plugin.c:934
+msgid "%P: %s: error in plugin cleanup (ignored)\n"
+msgstr "%P: %s: Fehler beim Aufräumen des Plugins (ignoriert)\n"
diff --git a/ld/po/es.po b/ld/po/es.po
index 4c662e9..1625820 100644
--- a/ld/po/es.po
+++ b/ld/po/es.po
@@ -12,6 +12,7 @@ msgstr ""
"Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
"Language-Team: Spanish <es@li.org>\n"
"Language: es\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff --git a/ld/po/fi.po b/ld/po/fi.po
index e63c228..8a7a96d 100644
--- a/ld/po/fi.po
+++ b/ld/po/fi.po
@@ -1,18 +1,19 @@
# Finnish messages for ld
-# Copyright © 2009, 2011, 2012 Free Software Foundation, Inc.
+# Copyright © 2009, 2011, 2012, 2014 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
# Jorma Karvonen <karvjorm@users.sf.net>, 2007-2009.
-# Jorma Karvonen <karvonen.jorma@gmail.com>, 2009-2012.
+# Jorma Karvonen <karvonen.jorma@gmail.com>, 2009-2012, 2014.
#
msgid ""
msgstr ""
-"Project-Id-Version: ld 2.22.90\n"
+"Project-Id-Version: ld 2.24.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2011-10-25 11:20+0100\n"
-"PO-Revision-Date: 2012-07-28 16:38+0200\n"
+"POT-Creation-Date: 2014-02-10 09:42+1030\n"
+"PO-Revision-Date: 2014-10-15 10:02+0300\n"
"Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
"Language: fi\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -36,172 +37,182 @@ msgstr " --thumb-entry=<sym> Aseta tulokohta Thumb-symboliksi <sym>\n"
msgid "Errors encountered processing file %s"
msgstr "Löydettiin virheitä käsiteltäessä tiedostoa %s"
-#: emultempl/armcoff.em:192 emultempl/pe.em:1812
+#: emultempl/armcoff.em:192 emultempl/pe.em:1827
msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
msgstr "%P: varoitus: ’--thumb-entry %s’ korvaa argumentin ’-e %s’\n"
-#: emultempl/armcoff.em:197 emultempl/pe.em:1817
+#: emultempl/armcoff.em:197 emultempl/pe.em:1832
msgid "%P: warning: cannot find thumb start symbol %s\n"
msgstr "%P: varoitus: thumb-aloitussymbolia â€%s†ei löydy\n"
-#: emultempl/pe.em:419
+#: emultempl/pe.em:425
#, c-format
msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
msgstr " --base_file <kantatiedosto> Tuota uudelleensijoitettavien DLL:ien kantatiedosto\n"
-#: emultempl/pe.em:420
+#: emultempl/pe.em:426
#, c-format
msgid " --dll Set image base to the default for DLLs\n"
msgstr " --dll Aseta vedoskanta DLL:ien oletukseksi\n"
-#: emultempl/pe.em:421
+#: emultempl/pe.em:427
#, c-format
msgid " --file-alignment <size> Set file alignment\n"
msgstr " --file-alignment <koko> Aseta tiedostotasaus\n"
-#: emultempl/pe.em:422
+#: emultempl/pe.em:428
#, c-format
msgid " --heap <size> Set initial size of the heap\n"
msgstr " --heap <koko> Aseta keon aloituskoko\n"
-#: emultempl/pe.em:423
+#: emultempl/pe.em:429
#, c-format
msgid " --image-base <address> Set start address of the executable\n"
msgstr " --image-base <osoite> Aseta suoritettavien tiedostojen aloitusosoite\n"
-#: emultempl/pe.em:424
+#: emultempl/pe.em:430
#, c-format
msgid " --major-image-version <number> Set version number of the executable\n"
msgstr " --major-image-version <numero> Aseta suoritettavien tiedostojen versionumero\n"
-#: emultempl/pe.em:425
+#: emultempl/pe.em:431
#, c-format
msgid " --major-os-version <number> Set minimum required OS version\n"
msgstr " --major-os-version <numero> Aseta pienin vaadittu käyttöjärjestelmäversio\n"
-#: emultempl/pe.em:426
+#: emultempl/pe.em:432
#, c-format
msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n"
msgstr " --major-subsystem-version <numero> Aseta pienin vaadittu käyttöjärjestelmän alijärjestelmän versio\n"
-#: emultempl/pe.em:427
+#: emultempl/pe.em:433
#, c-format
msgid " --minor-image-version <number> Set revision number of the executable\n"
msgstr " --minor-image-version <numero> Asettaa suoritettavan tiedoston revisionumeron\n"
-#: emultempl/pe.em:428
+#: emultempl/pe.em:434
#, c-format
msgid " --minor-os-version <number> Set minimum required OS revision\n"
msgstr " --minor-os-version <numero> Aseta pienin vaadittu käyttöjärjestelmän revisionumero\n"
-#: emultempl/pe.em:429
+#: emultempl/pe.em:435
#, c-format
msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
msgstr " --minor-subsystem-version <numero> Aseta pienin vaadittu käyttöjärjestelmän alijärjestelmän revisionumero\n"
-#: emultempl/pe.em:430
+#: emultempl/pe.em:436
#, c-format
msgid " --section-alignment <size> Set section alignment\n"
msgstr " --section-alignment <koko> Aseta lohkotasaus\n"
-#: emultempl/pe.em:431
+#: emultempl/pe.em:437
#, c-format
msgid " --stack <size> Set size of the initial stack\n"
msgstr " --stack <koko> Aseta pinon aloituskoko\n"
-#: emultempl/pe.em:432
+#: emultempl/pe.em:438
#, c-format
msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
msgstr " --subsystem <nimi>[:<versio>] Aseta vaadittu käyttöjärjestelmän alijärjestelmä [& versio]\n"
-#: emultempl/pe.em:433
+#: emultempl/pe.em:439
#, c-format
msgid " --support-old-code Support interworking with old code\n"
msgstr " --support-old-code Tue yhteistoimivuutta vanhan koodin kanssa\n"
-#: emultempl/pe.em:434
+#: emultempl/pe.em:440
#, c-format
msgid " --[no-]leading-underscore Set explicit symbol underscore prefix mode\n"
msgstr " --[no-]leading-underscore Aseta eksplisiittinen symbolin alaviivaetuliitetila\n"
-#: emultempl/pe.em:435
+#: emultempl/pe.em:441
#, c-format
msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
msgstr " --thumb-entry=<symboli> Aseta tulokohdaksi â€Thumb <symboli>â€\n"
-#: emultempl/pe.em:437
+#: emultempl/pe.em:442
+#, c-format
+msgid " --insert-timestamp Use a real timestamp rather than zero.\n"
+msgstr " --insert-timestamp Käytä mieluimmin oikeaa aikaleimaa kuin nollaa.\n"
+
+#: emultempl/pe.em:443
+#, c-format
+msgid " This makes binaries non-deterministic\n"
+msgstr " Tämä tekee binaaritiedostoista ei-deterministisiä\n"
+
+#: emultempl/pe.em:445
#, c-format
msgid " --add-stdcall-alias Export symbols with and without @nn\n"
msgstr " --add-stdcall-alias Vie symbolit ilman @nn:ää ja sen kanssa\n"
-#: emultempl/pe.em:438
+#: emultempl/pe.em:446
#, c-format
msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
msgstr " --disable-stdcall-fixup Älä linkitä symbolia _sym symboliin _sym@nn\n"
-#: emultempl/pe.em:439
+#: emultempl/pe.em:447
#, c-format
msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
msgstr " --enable-stdcall-fixup Linkitä symboli _sym symboliin _sym@nn ilman varoituksia\n"
-#: emultempl/pe.em:440
+#: emultempl/pe.em:448
#, c-format
msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
msgstr " --exclude-symbols sym,sym,... Jätä symbolit pois automaattisesta viennistä\n"
-#: emultempl/pe.em:441
+#: emultempl/pe.em:449
#, c-format
msgid " --exclude-all-symbols Exclude all symbols from automatic export\n"
msgstr " --exclude-all-symbols Jätä kaikki symbolit pois automaattisesta viennistä\n"
-#: emultempl/pe.em:442
+#: emultempl/pe.em:450
#, c-format
msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n"
msgstr " --exclude-libs lib,lib,... Jätä kirjastot pois automaattisesta viennistä\n"
-#: emultempl/pe.em:443
+#: emultempl/pe.em:451
#, c-format
msgid " --exclude-modules-for-implib mod,mod,...\n"
msgstr " --exclude-modules-for-implib moduli,moduli,...\n"
# Tämä teksti jatkuu seuraavassa merkkijonossa
-#: emultempl/pe.em:444
+#: emultempl/pe.em:452
#, c-format
msgid " Exclude objects, archive members from auto\n"
msgstr " Jätä pois objektit, arkistojäsenet automaattisesta\n"
# Tämä teksti on jatkoa edelliselle merkkijonolle
-#: emultempl/pe.em:445
+#: emultempl/pe.em:453
#, c-format
msgid " export, place into import library instead.\n"
msgstr " viennistä, sijoita ne sen sijaan tuontikirjastoon.\n"
-#: emultempl/pe.em:446
+#: emultempl/pe.em:454
#, c-format
msgid " --export-all-symbols Automatically export all globals to DLL\n"
msgstr " --export-all-symbols Vie kaikki yleismuuttujat automaattisesti DLL:ään\n"
-#: emultempl/pe.em:447
+#: emultempl/pe.em:455
#, c-format
msgid " --kill-at Remove @nn from exported symbols\n"
msgstr " --kill-at Poista @nn viedyistä symboleista\n"
-#: emultempl/pe.em:448
+#: emultempl/pe.em:456
#, c-format
msgid " --out-implib <file> Generate import library\n"
msgstr " --out-implib <tiedosto> Tuota tuontikirjasto\n"
-#: emultempl/pe.em:449
+#: emultempl/pe.em:457
#, c-format
msgid " --output-def <file> Generate a .DEF file for the built DLL\n"
msgstr " --output-def <tiedosto> Tuota .DEF-tiedosto DLL:n rakentamiseen\n"
-#: emultempl/pe.em:450
+#: emultempl/pe.em:458
#, c-format
msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
msgstr " --warn-duplicate-exports Varoita kaksoiskappalevienneistä.\n"
-#: emultempl/pe.em:451
+#: emultempl/pe.em:459
#, c-format
msgid ""
" --compat-implib Create backward compatible import libs;\n"
@@ -210,7 +221,7 @@ msgstr ""
" --compat-implib Luo taaksepäin yhteensopivat tuontikirjastot;\n"
" luo myös __imp_<SYMBOLI>.\n"
-#: emultempl/pe.em:453
+#: emultempl/pe.em:461
#, c-format
msgid ""
" --enable-auto-image-base Automatically choose image base for DLLs\n"
@@ -219,12 +230,12 @@ msgstr ""
" --enable-auto-image-base Valitse automaattisesti vedoskanta DLL:ille\n"
" jollei käyttäjä määrittele sellaista\n"
-#: emultempl/pe.em:455
+#: emultempl/pe.em:463
#, c-format
msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n"
msgstr " --disable-auto-image-base Älä valitse automaattisesti vedoskantaa. (oletus)\n"
-#: emultempl/pe.em:456
+#: emultempl/pe.em:464
#, c-format
msgid ""
" --dll-search-prefix=<string> When linking dynamically to a dll without\n"
@@ -235,7 +246,7 @@ msgstr ""
" tuontikirjastoa, käytä â€<merkkijono><kantanimi>.dllâ€\n"
" mieluimmin kuin â€lib<kantanimi>.dll†\n"
-#: emultempl/pe.em:459
+#: emultempl/pe.em:467
#, c-format
msgid ""
" --enable-auto-import Do sophisticated linking of _sym to\n"
@@ -244,12 +255,12 @@ msgstr ""
" --enable-auto-import Linkitä symboli _sym edistyksellisesti\n"
" DATA-viitteille symboliin __imp_sym\n"
-#: emultempl/pe.em:461
+#: emultempl/pe.em:469
#, c-format
msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n"
msgstr " --disable-auto-import Älä tuo DATA-alkioita DLL:stä automaattisesti\n"
-#: emultempl/pe.em:462
+#: emultempl/pe.em:470
#, c-format
msgid ""
" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n"
@@ -260,7 +271,7 @@ msgstr ""
" lisäämällä ajoaikaisesti ratkaistavia vale-\n"
" uudelleensijoitusalkioita.\n"
-#: emultempl/pe.em:465
+#: emultempl/pe.em:473
#, c-format
msgid ""
" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n"
@@ -269,7 +280,7 @@ msgstr ""
" --disable-runtime-pseudo-reloc Älä lisää ajoaikaisia vale-uudelleensijoitusalkioita\n"
" automaattisesti tuotuun DATA:an.\n"
-#: emultempl/pe.em:467
+#: emultempl/pe.em:475
#, c-format
msgid ""
" --enable-extra-pe-debug Enable verbose debug output when building\n"
@@ -278,7 +289,7 @@ msgstr ""
" --enable-extra-pe-debug Salli lavea vianjäljitystulostus kun muodostetaan\n"
" tai linkitetään DLL:ään (erityisesti automaattisessa tuonnissa)\n"
-#: emultempl/pe.em:470
+#: emultempl/pe.em:478
#, c-format
msgid ""
" --large-address-aware Executable supports virtual addresses\n"
@@ -287,7 +298,16 @@ msgstr ""
" --large-address-aware Suoritettava tiedosto tukee virtuaaliosoitteita,\n"
" jotka ovat suurempia kuin 2 gigatavua\n"
-#: emultempl/pe.em:472
+#: emultempl/pe.em:480
+#, c-format
+msgid ""
+" --disable-large-address-aware Executable does not support virtual\n"
+" addresses greater than 2 gigabytes\n"
+msgstr ""
+" --disable-large-address-aware Suoritettava tiedosto ei tue virtuaaliosoitteita,\n"
+" jotka ovat suurempia kuin 2 gigatavua\n"
+
+#: emultempl/pe.em:482
#, c-format
msgid ""
" --enable-long-section-names Use long COFF section names even in\n"
@@ -296,7 +316,7 @@ msgstr ""
" --enable-long-section-names Käytä pitkiä COFF-lohkonimiä myös suoritettavissa\n"
" vedostiedostoissa\n"
-#: emultempl/pe.em:474
+#: emultempl/pe.em:484
#, c-format
msgid ""
" --disable-long-section-names Never use long COFF section names, even\n"
@@ -305,7 +325,7 @@ msgstr ""
" --disable-long-section-names Älä koskaan käytä pitkiä COFF-lohkonimiä, ei edes\n"
" objektitiedostoissa\n"
-#: emultempl/pe.em:476
+#: emultempl/pe.em:486
#, c-format
msgid ""
" --dynamicbase\t\t\t Image base address may be relocated using\n"
@@ -314,23 +334,23 @@ msgstr ""
" --dynamicbase\t\t\t Vedoksen perusosoite voidaan sijoittaa uudelleen\n"
"\t\t\t\t käyttäen osoitetilan asettelun satunnaislukuhajautusta (ASLR)\n"
-#: emultempl/pe.em:478
+#: emultempl/pe.em:488
#, c-format
msgid " --forceinteg\t\t Code integrity checks are enforced\n"
msgstr " --forceinteg\t\t Koodin eheystarkistukset ovat valvottuja\n"
-#: emultempl/pe.em:479
+#: emultempl/pe.em:489
#, c-format
msgid " --nxcompat\t\t Image is compatible with data execution prevention\n"
msgstr " --nxcompat\t\t Vedos on yhteneväinen datasuorituseston kanssa\n"
-#: emultempl/pe.em:480
+#: emultempl/pe.em:490
#, c-format
msgid " --no-isolation\t\t Image understands isolation but do not isolate the image\n"
msgstr " --no-isolation\t\t Vedos ymmärtää eristyksen, mutta ei eristä vedosta\n"
# SEH on lyhenne sanoista "SE Handler"
-#: emultempl/pe.em:481
+#: emultempl/pe.em:491
#, c-format
msgid ""
" --no-seh\t\t\t Image does not use SEH. No SE handler may\n"
@@ -339,74 +359,74 @@ msgstr ""
" --no-seh\t\t\t Vedos ei käytä SE-käsittelijää. SE-käsittelijää ei\n"
"\t\t\t\t saa kutsua tässä vedoksessa\n"
-#: emultempl/pe.em:483
+#: emultempl/pe.em:493
#, c-format
msgid " --no-bind\t\t\t Do not bind this image\n"
msgstr " --no-bind\t\t\t Älä sido tätä vedosta\n"
-#: emultempl/pe.em:484
+#: emultempl/pe.em:494
#, c-format
msgid " --wdmdriver\t\t Driver uses the WDM model\n"
msgstr " --wdmdriver\t\t Ajuri käyttää WDM-mallia\n"
-#: emultempl/pe.em:485
+#: emultempl/pe.em:495
#, c-format
msgid " --tsaware Image is Terminal Server aware\n"
msgstr " --tsaware Vedos on tietoinen pääteikkunapalvelimesta\n"
-#: emultempl/pe.em:614
+#: emultempl/pe.em:624
msgid "%P: warning: bad version number in -subsystem option\n"
msgstr "%P: varoitus: virheellinen versionumero â€-subsystemâ€-valitsimessa\n"
-#: emultempl/pe.em:639
+#: emultempl/pe.em:649
msgid "%P%F: invalid subsystem type %s\n"
msgstr "%P%F: Virheellinen alijärjestelmätyyppi %s\n"
-#: emultempl/pe.em:660
+#: emultempl/pe.em:670
msgid "%P%F: invalid hex number for PE parameter '%s'\n"
msgstr "%P%F: virheellinen heksadesimaalinumero PE-parametrille ’%s’\n"
-#: emultempl/pe.em:677
+#: emultempl/pe.em:687
msgid "%P%F: strange hex info for PE parameter '%s'\n"
msgstr "%P%F: outo heksadesimaalinumerotieto PE-parameterílle ’%s’\n"
-#: emultempl/pe.em:692
+#: emultempl/pe.em:702
msgid "%F%P: cannot open base file %s\n"
-msgstr "%F%P: Ei voi avata kantatiedostoa %s\n"
+msgstr "%F%P: kantatiedoston %s avaaminen epäonnistui\n"
-#: emultempl/pe.em:965
+#: emultempl/pe.em:981
msgid "%P: warning, file alignment > section alignment.\n"
msgstr "%P: varoitus, tiedostotasaus > lohkotasaus.\n"
-#: emultempl/pe.em:978
+#: emultempl/pe.em:994
msgid "%P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?\n"
msgstr "%P: varoitus: --export-dynamic ei tueta PE-kohteille, tarkoititko --export-all-symbols?\n"
-#: emultempl/pe.em:1054 emultempl/pe.em:1081
+#: emultempl/pe.em:1070 emultempl/pe.em:1097
#, c-format
msgid "Warning: resolving %s by linking to %s\n"
msgstr "Varoitus: ratkaistaan %s linkittämällä kohteeseen %s\n"
# enable -> disable ???
-#: emultempl/pe.em:1059 emultempl/pe.em:1086
+#: emultempl/pe.em:1075 emultempl/pe.em:1102
msgid "Use --enable-stdcall-fixup to disable these warnings\n"
msgstr "Käytä --enable-stdcall-fixup poistamaan nämä varoitukset käytöstä\n"
-#: emultempl/pe.em:1060 emultempl/pe.em:1087
+#: emultempl/pe.em:1076 emultempl/pe.em:1103
msgid "Use --disable-stdcall-fixup to disable these fixups\n"
msgstr "Käytä --disable-stdcall-fixup poistamaan nämä korjaukset käytöstä\n"
-#: emultempl/pe.em:1106
+#: emultempl/pe.em:1122
#, c-format
msgid "%C: Cannot get section contents - auto-import exception\n"
msgstr "%C: Lohkosisältöä ei saada - automaattituonnin poikkeus\n"
-#: emultempl/pe.em:1146
+#: emultempl/pe.em:1162
#, c-format
msgid "Info: resolving %s by linking to %s (auto-import)\n"
msgstr "Tieto: ratkaistaan %s linkittämällä kohteeseen %s (automaattituonti)\n"
-#: emultempl/pe.em:1153
+#: emultempl/pe.em:1169
msgid ""
"%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line.\n"
"This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.\n"
@@ -414,44 +434,43 @@ msgstr ""
"%P: varoitus: automaattinen tuonti on aktivoitu määrittelemättä â€--enable-auto-importâ€-argumenttia komentorivillä.\n"
"Tämän pitäisi toimia ellei se sisällä vakiodatarakenteita, jotka viittaavat automaattisesti tuotujen DLL:ien symboleihin.\n"
-#: emultempl/pe.em:1160 emultempl/pe.em:1366 emultempl/pe.em:1573 ldcref.c:490
-#: ldcref.c:588 ldmain.c:1158 ldmisc.c:290 pe-dll.c:706 pe-dll.c:1254
-#: pe-dll.c:1349
+#: emultempl/pe.em:1176 emultempl/pe.em:1383 emultempl/pe.em:1590 ldcref.c:503
+#: ldcref.c:601 ldmain.c:1183 ldmisc.c:300 pe-dll.c:710 pe-dll.c:1276
+#: pe-dll.c:1371
msgid "%B%F: could not read symbols: %E\n"
-msgstr "%B%F: ei voinut lukea symboleja: %E\n"
+msgstr "%B%F: symbolien lukeminen epäonnistui: %E\n"
-#: emultempl/pe.em:1242
+#: emultempl/pe.em:1258
msgid "%F%P: cannot perform PE operations on non PE output file '%B'.\n"
-msgstr "%F%P: ei voi suorittaa PE-toimintoja ei-PE-tulostetiedostossa ’%B’.\n"
+msgstr "%F%P: PE-toimintojen suorittaminen ei-PE-tulostetiedostossa ’%B’ epäonnistui.\n"
-#: emultempl/pe.em:1616
+#: emultempl/pe.em:1633
#, c-format
msgid "Errors encountered processing file %s\n"
msgstr "Tiedostoa %s käsitellessä syntyi virheitä\n"
-#: emultempl/pe.em:1639
+#: emultempl/pe.em:1656
#, c-format
msgid "Errors encountered processing file %s for interworking\n"
msgstr "Virheitä syntyi käsiteltäessä tiedostoa %s yhteistoimivuutta varten\n"
-#: emultempl/pe.em:1701 ldexp.c:581 ldlang.c:3458 ldlang.c:6992 ldlang.c:7023
-#: ldmain.c:1103
+#: emultempl/pe.em:1718 ldexp.c:631 ldlang.c:3451 ldmain.c:1128
msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
msgstr "%P%F: bfd_link_hash_lookup epäonnistui: %E\n"
-#: ldcref.c:168
+#: ldcref.c:167
msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
msgstr "%X%P: ristiviitetaulun bfd_hash_table_init epäonnistui: %E\n"
-#: ldcref.c:174
+#: ldcref.c:173
msgid "%X%P: cref_hash_lookup failed: %E\n"
msgstr "%X%P: cref_hash_lookup epäonnistui: %E\n"
-#: ldcref.c:184
+#: ldcref.c:183
msgid "%X%P: cref alloc failed: %E\n"
msgstr "%X%P: ristiviitemuistinvaraus epäonnistui: %E\n"
-#: ldcref.c:366
+#: ldcref.c:365
#, c-format
msgid ""
"\n"
@@ -462,33 +481,33 @@ msgstr ""
"Ristiviitetaulu\n"
"\n"
-#: ldcref.c:367
+#: ldcref.c:366
msgid "Symbol"
msgstr "Symboli"
-#: ldcref.c:375
+#: ldcref.c:374
#, c-format
msgid "File\n"
msgstr "Tiedosto\n"
-#: ldcref.c:379
+#: ldcref.c:378
#, c-format
msgid "No symbols\n"
msgstr "Ei symboleja\n"
-#: ldcref.c:532
+#: ldcref.c:545
msgid "%P: symbol `%T' missing from main hash table\n"
msgstr "%P: puuttuu symboli â€%T†pää-hash-taulusta\n"
-#: ldcref.c:650 ldcref.c:657 ldmain.c:1192 ldmain.c:1199
+#: ldcref.c:663 ldcref.c:670 ldmain.c:1217 ldmain.c:1224
msgid "%B%F: could not read relocs: %E\n"
-msgstr "%B%F: ei voitu lukea reloc-alkioita: %E\n"
+msgstr "%B%F: reloc-alkioiden lukeminen epäonnistui: %E\n"
#. We found a reloc for the symbol. The symbol is defined
#. in OUTSECNAME. This reloc is from a section which is
#. mapped into a section from which references to OUTSECNAME
#. are prohibited. We must report an error.
-#: ldcref.c:684
+#: ldcref.c:697
msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
msgstr "%X%C: kielletyt ristiviitteet lohkosta %s lohkoon â€%T†kohteessa %s\n"
@@ -508,7 +527,7 @@ msgstr "%P%X: %s ei tue reloc-alkiota %s joukolle %s\n"
msgid "%P%X: Unsupported size %d for set %s\n"
msgstr "%P%X: Kokoa %d ei tueta joukolle %s\n"
-#: ldctor.c:337
+#: ldctor.c:339
msgid ""
"\n"
"Set Symbol\n"
@@ -541,159 +560,170 @@ msgstr "Tuetut emuloinnit: "
msgid " no emulation specific options.\n"
msgstr " ei emulointikohtaisia valitsimia.\n"
-#: ldexp.c:314
+#: ldexp.c:346
msgid "%P: warning: address of `%s' isn't multiple of maximum page size\n"
msgstr "%P: varoitus: â€%sâ€:n osoite ei ole enimmäissivukoon monikerta\n"
-#: ldexp.c:407
+#: ldexp.c:439
#, c-format
msgid "%F%S %% by zero\n"
msgstr "%F%S %% nollalla\n"
-#: ldexp.c:417
+#: ldexp.c:449
#, c-format
msgid "%F%S / by zero\n"
msgstr "%F%S / nollalla\n"
-#: ldexp.c:591
+#: ldexp.c:643
#, c-format
msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
msgstr "%X%S: lausekkeessa viitattu ratkaisemattomaan symboliin â€%sâ€\n"
-#: ldexp.c:605
+#: ldexp.c:658
#, c-format
msgid "%F%S: undefined symbol `%s' referenced in expression\n"
msgstr "%F%S: lausekkeessa viitattu ratkaisemattomaan symboliin â€%sâ€\n"
-#: ldexp.c:626 ldexp.c:643 ldexp.c:670
+#: ldexp.c:680 ldexp.c:698 ldexp.c:726
#, c-format
msgid "%F%S: undefined section `%s' referenced in expression\n"
msgstr "%F%S: lausekkeessa viitattu määrittelemättömään lohkoon â€%sâ€\n"
-#: ldexp.c:697 ldexp.c:711
+#: ldexp.c:756 ldexp.c:771
#, c-format
msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
msgstr "%F%S: lausekkeessa viitattu määrittelemättömään MEMORY-alueeseen â€%sâ€\n"
-#: ldexp.c:722
+#: ldexp.c:783
#, c-format
msgid "%F%S: unknown constant `%s' referenced in expression\n"
msgstr "%F%S: lausekkeessa viitattu tuntemattomaan vakioon â€%sâ€\n"
-#: ldexp.c:787
+#: ldexp.c:931
#, c-format
msgid "%F%S can not PROVIDE assignment to location counter\n"
msgstr "%F%S ei voi ANTAA sijoitusta sijoituslaskuriin\n"
-#: ldexp.c:805
+#: ldexp.c:957
#, c-format
msgid "%F%S invalid assignment to location counter\n"
msgstr "%F%S virheellinen sijoitus sijoituslaskuriin\n"
-#: ldexp.c:808
+#: ldexp.c:961
#, c-format
-msgid "%F%S assignment to location counter invalid outside of SECTION\n"
-msgstr "%F%S sijoitus sijoituslaskuriin virheellinen SECTION-lohkon ulkopuolella\n"
+msgid "%F%S assignment to location counter invalid outside of SECTIONS\n"
+msgstr "%F%S sijoitus sijoituslaskuriin virheellinen SECTION-lohkojen ulkopuolella\n"
-#: ldexp.c:821
+#: ldexp.c:980
msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
msgstr "%F%S ei voi siirtää sijoituslaskuria taaksepäin (arvosta %V arvoon %V)\n"
-#: ldexp.c:882
+#: ldexp.c:1035
msgid "%P%F:%s: hash creation failed\n"
msgstr "%P%F:%s: hash-luonti ei onnistunut\n"
-#: ldexp.c:1191 ldexp.c:1216 ldexp.c:1276
+#: ldexp.c:1368 ldexp.c:1394 ldexp.c:1454
#, c-format
msgid "%F%S: nonconstant expression for %s\n"
msgstr "%F%S: ei-vakio lauseke kohteelle %s\n"
-#: ldfile.c:142
+#: ldfile.c:132
#, c-format
msgid "attempt to open %s failed\n"
msgstr "yritys avata %s ei onnistunut\n"
-#: ldfile.c:144
+#: ldfile.c:134
#, c-format
msgid "attempt to open %s succeeded\n"
msgstr "yritettiin avata %s menestyksellisesti\n"
# Binary File Descriptor
-#: ldfile.c:150
+#: ldfile.c:140
msgid "%F%P: invalid BFD target `%s'\n"
msgstr "%F%P: virheellinen BFD-kohde â€%sâ€\n"
-#: ldfile.c:267 ldfile.c:296
+#: ldfile.c:257 ldfile.c:286
msgid "%P: skipping incompatible %s when searching for %s\n"
msgstr "%P: hypättiin ei-yhteensopivan kohteen %s yli kun haettiin kohdetta %s\n"
-#: ldfile.c:280
+#: ldfile.c:270
msgid "%F%P: attempted static link of dynamic object `%s'\n"
msgstr "%F%P: yritettiin dynaamisen objektin â€%s†staattista linkkiä\n"
-#: ldfile.c:426
+#: ldfile.c:408
msgid "%P: cannot find %s (%s): %E\n"
-msgstr "%P: ei voi löytää kohdetta %s (%s): %E\n"
+msgstr "%P: kohteen %s (%s) löytäminen epäonnistui: %E\n"
-#: ldfile.c:429
+#: ldfile.c:411
msgid "%P: cannot find %s: %E\n"
-msgstr "%P: ei voi löytää kohdetta %s: %E\n"
+msgstr "%P: kohteen %s löytäminen epäonnistui: %E\n"
-#: ldfile.c:464
+#: ldfile.c:446
msgid "%P: cannot find %s inside %s\n"
-msgstr "%P: kohdetta %s ei löydy kohteen %s sisältä\n"
+msgstr "%P: kohteen %s löytäminen kohteen %s sisältä epäonnistui\n"
-#: ldfile.c:467
+#: ldfile.c:449
msgid "%P: cannot find %s\n"
-msgstr "%P: ei löydy kohdetta %s\n"
+msgstr "%P: kohteen %s löytäminen epäonnistui\n"
-#: ldfile.c:486 ldfile.c:504
+#: ldfile.c:471
#, c-format
msgid "cannot find script file %s\n"
-msgstr "ei löydy skriptitiedostoa %s\n"
+msgstr "skriptitiedoston %s löytäminen epäonnistui\n"
-#: ldfile.c:488 ldfile.c:506
+#: ldfile.c:473
#, c-format
msgid "opened script file %s\n"
msgstr "avattiin skriptitiedosto %s\n"
-#: ldfile.c:636
+#: ldfile.c:604
msgid "%P%F: cannot open linker script file %s: %E\n"
-msgstr "%P%F: ei voi avata linkkerin skriptitiedostoa %s: %E\n"
+msgstr "%P%F: linkkerin skriptitiedoston %s avaaminen epäonnistui: %E\n"
-#: ldfile.c:701
+#: ldfile.c:669
msgid "%P%F: cannot represent machine `%s'\n"
-msgstr "%P%F: ei voi edustaa konetta â€%sâ€\n"
+msgstr "%P%F: koneen â€%s†edustaminen epäonnistui\n"
-#: ldlang.c:1221 ldlang.c:1263 ldlang.c:3143
+#: ldlang.c:1194 ldlang.c:1232 ldlang.c:3154
msgid "%P%F: can not create hash table: %E\n"
-msgstr "%P%F: ei voida luoda hash-taulua: %E\n"
+msgstr "%P%F: hash-taulun luominen epäonnistui: %E\n"
-#: ldlang.c:1314
+#: ldlang.c:1288
msgid "%P:%S: warning: redeclaration of memory region `%s'\n"
msgstr "%P:%S: varoitus: uudelleenesitelty muistialue â€%sâ€\n"
-#: ldlang.c:1320
+#: ldlang.c:1294
msgid "%P:%S: warning: memory region `%s' not declared\n"
msgstr "%P:%S: varoitus: muistialuetta â€%s†ei ole esitelty\n"
-#: ldlang.c:1354
+#: ldlang.c:1329
msgid "%F%P:%S: error: alias for default memory region\n"
msgstr "%F%P:%S: virhe: alias oletusmuistialueelle\n"
-#: ldlang.c:1365
+#: ldlang.c:1340
msgid "%F%P:%S: error: redefinition of memory region alias `%s'\n"
msgstr "%F%P:%S: virhe: uudelleenmäärittely muistialuealiakselle â€%sâ€\n"
-#: ldlang.c:1372
+#: ldlang.c:1347
msgid "%F%P:%S: error: memory region `%s' for alias `%s' does not exist\n"
msgstr "%F%P:%S: virhe: muistialuetta â€%s†aliakselle â€%s†ei ole olemassa\n"
-#: ldlang.c:1424 ldlang.c:1463
+#: ldlang.c:1406 ldlang.c:1445
msgid "%P%F: failed creating section `%s': %E\n"
msgstr "%P%F: ei onnistuttu luomaan lohkoa â€%sâ€: %E\n"
-#: ldlang.c:2025
+#: ldlang.c:2000
+#, c-format
+msgid ""
+"\n"
+"As-needed library included to satisfy reference by file (symbol)\n"
+"\n"
+msgstr ""
+"\n"
+"Kun-tarpeellinen kirjasto sisällytetty tyydyttämään tiedostoviite (symboli)\n"
+"\n"
+
+#: ldlang.c:2068
#, c-format
msgid ""
"\n"
@@ -704,7 +734,7 @@ msgstr ""
"Hylätyt syötelohkot\n"
"\n"
-#: ldlang.c:2033
+#: ldlang.c:2076
msgid ""
"\n"
"Memory Configuration\n"
@@ -714,23 +744,23 @@ msgstr ""
"Muistiasetukset\n"
"\n"
-#: ldlang.c:2035
+#: ldlang.c:2078
msgid "Name"
msgstr "Nimi"
-#: ldlang.c:2035
+#: ldlang.c:2078
msgid "Origin"
msgstr "Alkupiste"
-#: ldlang.c:2035
+#: ldlang.c:2078
msgid "Length"
msgstr "Pituus"
-#: ldlang.c:2035
+#: ldlang.c:2078
msgid "Attributes"
msgstr "Attribuutit"
-#: ldlang.c:2075
+#: ldlang.c:2118
#, c-format
msgid ""
"\n"
@@ -741,181 +771,181 @@ msgstr ""
"Linkitysskripti ja muistikartta\n"
"\n"
-#: ldlang.c:2141
+#: ldlang.c:2168
msgid "%P%F: Illegal use of `%s' section\n"
msgstr "%P%F: â€%sâ€-lohkon virheellinen käyttö\n"
-#: ldlang.c:2150
+#: ldlang.c:2177
msgid "%P%F: output format %s cannot represent section called %s\n"
msgstr "%P%F: tulostemuoto %s ei voi edustaa lohkoa, jonka nimi on %s\n"
-#: ldlang.c:2728
+#: ldlang.c:2739
msgid "%B: file not recognized: %E\n"
msgstr "%B: tiedostoa ei ole tunnistettu: %E\n"
-#: ldlang.c:2729
+#: ldlang.c:2740
msgid "%B: matching formats:"
msgstr "%B: täsmäävät muodot:"
-#: ldlang.c:2736
+#: ldlang.c:2747
msgid "%F%B: file not recognized: %E\n"
msgstr "%F%B: tiedostoa ei ole tunnistettu: %E\n"
-#: ldlang.c:2810
+#: ldlang.c:2821
msgid "%F%B: member %B in archive is not an object\n"
msgstr "%F%B: arkiston jäsen %B ei ole objekti\n"
-#: ldlang.c:2825 ldlang.c:2839
-msgid "%F%B: could not read symbols: %E\n"
-msgstr "%F%B: ei voitu lukea symboleja: %E\n"
+#: ldlang.c:2836 ldlang.c:2850
+msgid "%F%B: error adding symbols: %E\n"
+msgstr "%F%B: virhe lisättäessä symboleja: %E\n"
-#: ldlang.c:3113
+#: ldlang.c:3124
msgid "%P: warning: could not find any targets that match endianness requirement\n"
msgstr "%P: varoitus: ei löytynyt yhtään kohdetta, joka olisi täsmännyt tavujärjestysvaatimuksen kanssa\n"
# Binary File Descriptor -kohde
-#: ldlang.c:3127
+#: ldlang.c:3138
msgid "%P%F: target %s not found\n"
msgstr "%P%F: bfd-kohdetta %s ei löytynyt\n"
-#: ldlang.c:3129
+#: ldlang.c:3140
msgid "%P%F: cannot open output file %s: %E\n"
-msgstr "%P%F: ei voi avata tulostetiedostoa %s: %E\n"
+msgstr "%P%F: tulostetiedoston %s avaaminen epäonnistui: %E\n"
-#: ldlang.c:3135
+#: ldlang.c:3146
msgid "%P%F:%s: can not make object file: %E\n"
-msgstr "%P%F:%s: ei voi tehdä objektitiedostoa: %E\n"
+msgstr "%P%F:%s: objektitiedoston tekeminen epäonnistui: %E\n"
-#: ldlang.c:3139
+#: ldlang.c:3150
msgid "%P%F:%s: can not set architecture: %E\n"
-msgstr "%P%F:%s: ei voi asettaa arkkitehtuuria: %E\n"
+msgstr "%P%F:%s: arkkitehtuurin asettaminen epäonnistui: %E\n"
-#: ldlang.c:3309
+#: ldlang.c:3322
msgid "%P: warning: %s contains output sections; did you forget -T?\n"
msgstr "%P: varoitus: %s sisältää tulostelohkoja; unohditko valitsimen -T?\n"
-#: ldlang.c:3350
-msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
-msgstr "%P%F: bfd_hash_lookup ei onnistunut luomaan symbolia %s\n"
-
-#: ldlang.c:3368
+#: ldlang.c:3372
msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
msgstr "%P%F: bfd_hash_allocate ei onnistunut luomaan symbolia %s\n"
-#: ldlang.c:3764
+#: ldlang.c:3402
+msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
+msgstr "%P%F: bfd_hash_lookup ei onnistunut luomaan symbolia %s\n"
+
+#: ldlang.c:3759
msgid "%F%P: %s not found for insert\n"
msgstr "%F%P: kohdetta %s ei löydy sijoitusta varten\n"
-#: ldlang.c:3979
+#: ldlang.c:3974
msgid " load address 0x%V"
msgstr " latausosoite 0x%V"
# Kun käskykohdemuuttuja on sen lukualueen ulkopuolella, joka sallitaan kullekin käskykentälle, assembler voi muuntaa koodin käyttämään toiminnallisesti samanlaista käskyä tai käskysekvenssiä. Tämä prosessi tunnetaan nimellä relaxation. Tätä tehdään tyypillisesti haarautumiskäskyissä, koska haarautumiskohteen etäisyyttä ei tunneta ennen linkitystä. Tavallaan tällä tavalla kumotaan lukualueen rajoitteet (constraints). Siksi olen suomentanut sen termillä avartaminen.
-#: ldlang.c:4254
+#: ldlang.c:4201
msgid "%W (size before relaxing)\n"
msgstr "%W (koko ennen avartamista)\n"
-#: ldlang.c:4345
+#: ldlang.c:4292
#, c-format
msgid "Address of section %s set to "
msgstr "Lohkon %s osoitteeksi asetetaan "
-#: ldlang.c:4498
+#: ldlang.c:4445
#, c-format
msgid "Fail with %d\n"
msgstr "Ei onnistuttu kohteella %d\n"
-#: ldlang.c:4785
+#: ldlang.c:4733
msgid "%X%P: section %s loaded at [%V,%V] overlaps section %s loaded at [%V,%V]\n"
msgstr "%X%P: lohko %s, joka on ladattu osoitteesta [%V,%V] menee päällekkäin lohkon %s, joka on ladattu osoitteesta [%V,%V]\n"
-#: ldlang.c:4801
+#: ldlang.c:4749
msgid "%X%P: region `%s' overflowed by %ld bytes\n"
msgstr "%X%P: alueen â€%s†ylitys on %ld tavua\n"
-#: ldlang.c:4824
+#: ldlang.c:4772
msgid "%X%P: address 0x%v of %B section `%s' is not within region `%s'\n"
msgstr "%X%P: osoite 0x%v kohteen %B lohkossa â€%s†ei ole alueen â€%s†sisällä\n"
-#: ldlang.c:4835
+#: ldlang.c:4783
msgid "%X%P: %B section `%s' will not fit in region `%s'\n"
msgstr "%X%P: kohteen %B lohko â€%s†ei mahdu alueen â€%s†sisälle\n"
-#: ldlang.c:4892
+#: ldlang.c:4840
#, c-format
msgid "%F%S: non constant or forward reference address expression for section %s\n"
msgstr "%F%S: ei-vakio tai edelleenviiteosoitelauseke lohkolle %s\n"
-#: ldlang.c:4917
+#: ldlang.c:4865
msgid "%P%X: Internal error on COFF shared library section %s\n"
msgstr "%P%X: Sisäinen virhe COFF-tiedoston jaetussa kirjastolohkossa %s\n"
-#: ldlang.c:4974
+#: ldlang.c:4923
msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
msgstr "%P%F: virhe: ladattavalle lohkolle â€%s†ei ole määritelty muistialuetta\n"
-#: ldlang.c:4979
+#: ldlang.c:4928
msgid "%P: warning: no memory region specified for loadable section `%s'\n"
msgstr "%P: varoitus: ladattavalle lohkolle â€%s†ei ole määritelty muistialuetta\n"
-#: ldlang.c:5001
+#: ldlang.c:4951
msgid "%P: warning: changing start of section %s by %lu bytes\n"
msgstr "%P: varoitus: vaihdetaan lohkon %s alkua %lu tavulla\n"
-#: ldlang.c:5078
+#: ldlang.c:5040
msgid "%P: warning: dot moved backwards before `%s'\n"
msgstr "%P: varoitus: pistettä siirretty taaksepäin ennen kohdetta â€%sâ€\n"
# Kun käskyoperandi on sen lukualueen ulkopuolella, joka sallitaan kullekin käskykentälle, assembler voi muuntaa koodin käyttämään toiminnallisesti samanlaista käskyä tai käskysekvenssiä. Tämä prosessi tunnetaan nimellä relaxation. Tätä tehdään tyypillisesti haarautumiskäskyissä, koska haarautumiskohteen etäisyyttä ei tunneta ennen linkitystä. Tavallaan tällä tavalla kumotaan lukualueen rajoitteet (constraints). Siksi olen suomentanut sen termillä avartaminen.
-#: ldlang.c:5244
+#: ldlang.c:5212
msgid "%P%F: can't relax section: %E\n"
-msgstr "%P%F: ei voi avartaa lohkoa: %E\n"
+msgstr "%P%F: lohkon avartaminen epäonnistui: %E\n"
-#: ldlang.c:5573
+#: ldlang.c:5557
msgid "%F%P: invalid data statement\n"
msgstr "%F%P: virheellinen data-lause\n"
-#: ldlang.c:5606
+#: ldlang.c:5590
msgid "%F%P: invalid reloc statement\n"
msgstr "%F%P: virheellinen reloc-lause\n"
-#: ldlang.c:5725
+#: ldlang.c:5802
msgid "%P%F: gc-sections requires either an entry or an undefined symbol\n"
msgstr "%P%F: gc-lohkot vaativat joko alkion tai määrittelemättömän symbolin\n"
-#: ldlang.c:5750
+#: ldlang.c:5827
msgid "%P%F:%s: can't set start address\n"
-msgstr "%P%F:%s: ei voi asettaa aloitusosoitetta\n"
+msgstr "%P%F:%s: aloitusosoitteen asettaminen epäonnistui\n"
-#: ldlang.c:5763 ldlang.c:5782
+#: ldlang.c:5840 ldlang.c:5859
msgid "%P%F: can't set start address\n"
-msgstr "%P%F: ei voi asettaa aloitusosoitetta\n"
+msgstr "%P%F: aloitusosoitteen asettaminen epäonnistui\n"
-#: ldlang.c:5775
+#: ldlang.c:5852
msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
msgstr "%P: varoitus: tulosymbolia %s ei löydy, asetaan oletukseksi %V\n"
-#: ldlang.c:5787
+#: ldlang.c:5864
msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
msgstr "%P: varoitus: tulosymbolia %s ei löydy, ei aseta aloitusosoitetta\n"
-#: ldlang.c:5842
+#: ldlang.c:5916
msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"
msgstr "%P%F: Uudelleensijoituslinkitystä uudelleensijoituksilla muodosta %s (%B) muotoon %s (%B) ei tueta\n"
-#: ldlang.c:5852
+#: ldlang.c:5926
msgid "%P%X: %s architecture of input file `%B' is incompatible with %s output\n"
msgstr "%P%X: %s syötetiedoston â€%B†arkkitehtuuri ei täsmää tulosteen %s kanssa\n"
-#: ldlang.c:5874
+#: ldlang.c:5948
msgid "%P%X: failed to merge target specific data of file %B\n"
msgstr "%P%X: ei onnistuttu yhdistää kohdekohtaista tiedostodataa %B\n"
-#: ldlang.c:5945
+#: ldlang.c:6019
msgid "%P%F: Could not define common symbol `%T': %E\n"
-msgstr "%B%F: Ei voitu määritellä yhteissymbolia â€%Tâ€: %E\n"
+msgstr "%B%F: Yhteissymbolin â€%T†määritteleminen epäonnistui: %E\n"
-#: ldlang.c:5957
+#: ldlang.c:6031
msgid ""
"\n"
"Allocating common symbols\n"
@@ -923,7 +953,7 @@ msgstr ""
"\n"
"Varataan muistia yhteissymboleille\n"
-#: ldlang.c:5958
+#: ldlang.c:6032
msgid ""
"Common symbol size file\n"
"\n"
@@ -931,325 +961,316 @@ msgstr ""
"Yhteissymboli koko tiedosto\n"
"\n"
-#: ldlang.c:6104
+#: ldlang.c:6178
msgid "%P%F: invalid syntax in flags\n"
msgstr "%P%F: virheellinen syntaksi lipussa\n"
-#: ldlang.c:6566
+#: ldlang.c:6304
+msgid "%F%P:%S: error: align with input and explicit align specified\n"
+msgstr "%F%P:%S: virhe: tasaa syötteellä ja eksplisiittisesti tasausmääritettynä\n"
+
+#: ldlang.c:6645
msgid "%P%F: Failed to create hash table\n"
msgstr "%P%F: ei onnistuttu luomaan hash-taulua\n"
-#: ldlang.c:6589
+#: ldlang.c:6668
msgid "%P%F: %s: plugin reported error after all symbols read\n"
msgstr "%P%F: %s: lisäosa ilmoitti virheestä kaikkien symbolien lukemisen jälkeen\n"
-#: ldlang.c:6905
+#: ldlang.c:6991
msgid "%P%F: multiple STARTUP files\n"
msgstr "%P%F: useita STARTUP-tiedostoja\n"
-#: ldlang.c:6951
+#: ldlang.c:7037
msgid "%X%P:%S: section has both a load address and a load region\n"
msgstr "%X%P:%S: lohkossa on sekä latausosoite että latausalue\n"
-#: ldlang.c:7138
+#: ldlang.c:7162
msgid "%X%P:%S: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
msgstr "%X%P:%S: PHDRS ja FILEHDR eivät ole tuettuja, kun edeltävät PT_LOAD-otsakkeet puuttuvat niistä\n"
-#: ldlang.c:7210
+#: ldlang.c:7235
msgid "%F%P: no sections assigned to phdrs\n"
msgstr "%F%P: kohteeseen â€phdrs†ei ole liitetty lohkoja\n"
-#: ldlang.c:7248
+#: ldlang.c:7273
msgid "%F%P: bfd_record_phdr failed: %E\n"
msgstr "%F%P: bfd_record_phdr ei onnistunut: %E\n"
-#: ldlang.c:7268
+#: ldlang.c:7293
msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
msgstr "%X%P: lohko â€%s†liitetty phdr-kohteeseen â€%sâ€, joka ei ole olemassa\n"
-#: ldlang.c:7677
+#: ldlang.c:7705
msgid "%X%P: unknown language `%s' in version information\n"
msgstr "%X%P: tuntematon kieli â€%s†versiotiedoissa\n"
-#: ldlang.c:7822
+#: ldlang.c:7850
msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
-msgstr "%X%P: nimetöntä versiotunnistetta ei voi yhdistää muihin versiotunnisteisiin\n"
+msgstr "%X%P: nimettömän versiotunnisteen yhdistäminen muihin versiotunnisteisiin epäonnistui\n"
-#: ldlang.c:7831
+#: ldlang.c:7859
msgid "%X%P: duplicate version tag `%s'\n"
msgstr "%X%P: kaksoiskappaleversiotunniste â€%sâ€\n"
-#: ldlang.c:7852 ldlang.c:7861 ldlang.c:7879 ldlang.c:7889
+#: ldlang.c:7880 ldlang.c:7889 ldlang.c:7907 ldlang.c:7917
msgid "%X%P: duplicate expression `%s' in version information\n"
msgstr "%X%P: kaksoiskappalelauseke â€%s†versiotiedoissa\n"
-#: ldlang.c:7929
+#: ldlang.c:7957
msgid "%X%P: unable to find version dependency `%s'\n"
-msgstr "%X%P: ei voi löytää versioriippuvuutta â€%sâ€\n"
+msgstr "%X%P: versioriippuvuuden â€%s†löytäminen epäonnistui\n"
-#: ldlang.c:7952
+#: ldlang.c:7980
msgid "%X%P: unable to read .exports section contents\n"
-msgstr "%X%P: ei voi lukea .exports-lohkon sisältöä\n"
+msgstr "%X%P: .exports-lohkon sisällön lukeminen epäonnistui\n"
-#: ldlang.c:8076
+#: ldlang.c:8104
msgid "%X%P: unknown feature `%s'\n"
msgstr "%P%F: tuntematon toiminto â€%sâ€\n"
# Binary File Descriptor
-#: ldmain.c:239
+#: ldmain.c:246
msgid "%X%P: can't set BFD default target to `%s': %E\n"
-msgstr "%X%P: ei voi asettaa BFD-oletuskohteeksi arvoa â€%sâ€: %E\n"
+msgstr "%X%P: BFD-oletuskohteen asettaminen arvoksi â€%s†epäonnistui: %E\n"
-#: ldmain.c:303 lexsup.c:1071
-msgid "%P%F: %s: error loading plugin\n"
-msgstr "%P%F: %s: virhe ladattaessa lisäosaa\n"
+#: ldmain.c:336
+msgid "built in linker script"
+msgstr "sisäänrakennettu linkitysskripti"
-#: ldmain.c:340
+#: ldmain.c:346
msgid "using external linker script:"
msgstr "käytetään ulkoista linkitysskriptiä:"
-#: ldmain.c:342
+#: ldmain.c:348
msgid "using internal linker script:"
msgstr "käytetään sisäistä linkitysskriptiä:"
-#: ldmain.c:379
+#: ldmain.c:385
msgid "%P%F: no input files\n"
msgstr "%P%F: ei syötetiedostoja\n"
-#: ldmain.c:383
+#: ldmain.c:389
msgid "%P: mode %s\n"
msgstr "%P: tila %s\n"
-#: ldmain.c:399
+#: ldmain.c:405
msgid "%P%F: cannot open map file %s: %E\n"
-msgstr "%P%F: ei voi avata map-tiedostoa %s: %E\n"
+msgstr "%P%F: map-tiedoston %s avaaminen epäonnistui: %E\n"
-#: ldmain.c:431
+#: ldmain.c:437
msgid "%P: link errors found, deleting executable `%s'\n"
msgstr "%P: linkitysvirheitä löytyi, poistetaan suoritettava tiedosto â€%sâ€\n"
-#: ldmain.c:440
+#: ldmain.c:446
msgid "%F%B: final close failed: %E\n"
msgstr "%F%B: loppusulkeminen ei onnistunut: %E\n"
-#: ldmain.c:466
+#: ldmain.c:472
msgid "%X%P: unable to open for source of copy `%s'\n"
-msgstr "%X%P: ei voitu avata kopion â€%s†lähdekoodia\n"
+msgstr "%X%P: kopion â€%s†lähdekoodin avaaminen epäonnistui\n"
-#: ldmain.c:469
+#: ldmain.c:475
msgid "%X%P: unable to open for destination of copy `%s'\n"
-msgstr "%X%P: ei voitu avata kopion â€%s†kohdetta\n"
+msgstr "%X%P: kopion â€%s†kohteen avaaminen epäonnistui\n"
-#: ldmain.c:476
+#: ldmain.c:482
msgid "%P: Error writing file `%s'\n"
msgstr "%P: Virhe kirjoitettaessa tiedostoa â€%sâ€\n"
-#: ldmain.c:481 pe-dll.c:1739
+#: ldmain.c:487 pe-dll.c:1761
#, c-format
msgid "%P: Error closing file `%s'\n"
msgstr "%P: Virhe suljettaessa tiedostoa â€%sâ€\n"
-#: ldmain.c:498
+#: ldmain.c:504
#, c-format
msgid "%s: total time in link: %ld.%06ld\n"
msgstr "%s: kokonaisaika linkityksessä: %ld.%06ld\n"
-#: ldmain.c:501
+#: ldmain.c:507
#, c-format
msgid "%s: data size %ld\n"
msgstr "%s: data-koko %ld\n"
-#: ldmain.c:585
+#: ldmain.c:591
msgid "%P%F: missing argument to -m\n"
msgstr "%P%F: puuttuva argumentti kohteelle -m\n"
-#: ldmain.c:633 ldmain.c:653 ldmain.c:685
+#: ldmain.c:639 ldmain.c:656 ldmain.c:676 ldmain.c:708
msgid "%P%F: bfd_hash_table_init failed: %E\n"
msgstr "%P%F: bfd_hash_table_init ei onnistunut: %E\n"
-#: ldmain.c:637 ldmain.c:657
+#: ldmain.c:643 ldmain.c:660 ldmain.c:680
msgid "%P%F: bfd_hash_lookup failed: %E\n"
msgstr "%P%F: bfd_hash_lookup ei onnistunut: %E\n"
-#: ldmain.c:671
+#: ldmain.c:694
msgid "%X%P: error: duplicate retain-symbols-file\n"
msgstr "%X%P: virhe: retain-symbols-file-kaksoiskappale\n"
-#: ldmain.c:715
+#: ldmain.c:738
msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
msgstr "%P%F: bfd_hash_lookup-lisäys ei onnistunut: %E\n"
-#: ldmain.c:720
+#: ldmain.c:743
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
msgstr "%P: â€-retain-symbols-file†korvaa argumentit â€-s†ja â€-Sâ€\n"
-#: ldmain.c:820
+#: ldmain.c:844
#, c-format
msgid ""
-"Archive member included because of file (symbol)\n"
+"Archive member included to satisfy reference by file (symbol)\n"
"\n"
msgstr ""
-"Arkistojäsen sisällytetty tiedoston vuoksi (symboli)\n"
+"Arkistojäsen sisällytetty tyydyttämään tiedostoviitettä (symboli)\n"
"\n"
-#: ldmain.c:926
+#: ldmain.c:951
msgid "%X%C: multiple definition of `%T'\n"
msgstr "%X%C: useita â€%Tâ€-määrittelyjä\n"
-#: ldmain.c:929
+#: ldmain.c:954
msgid "%D: first defined here\n"
msgstr "%D: ensimmäinen määritelty täällä\n"
# Kun käskyoperandi on sen lukualueen ulkopuolella, joka sallitaan kullekin käskykentälle, assembler voi muuntaa koodin käyttämään toiminnallisesti samanlaista käskyä tai käskysekvenssiä. Tämä prosessi tunnetaan nimellä relaxation. Tätä tehdään tyypillisesti haarautumiskäskyissä, koska haarautumiskohteen etäisyyttä ei tunneta ennen linkitystä. Tavallaan tällä tavalla kumotaan lukualueen rajoitteet (constraints). Siksi olen suomentanut sen termillä avartaminen.
-#: ldmain.c:933
+#: ldmain.c:958
msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
msgstr "%P: Otetaan avartaminen pois käytöstä: se ei toimi kun määrittelyjä on useita\n"
-#: ldmain.c:987
+#: ldmain.c:1012
msgid "%B: warning: definition of `%T' overriding common\n"
msgstr "%B: varoitus: â€%Tâ€-määrittely korvaa yhteisen\n"
-#: ldmain.c:990
+#: ldmain.c:1015
msgid "%B: warning: common is here\n"
msgstr "%B: varoitus: yhteinen on täällä\n"
-#: ldmain.c:997
+#: ldmain.c:1022
msgid "%B: warning: common of `%T' overridden by definition\n"
msgstr "%B: varoitus: â€%Tâ€-yhteinen korvattu määrittelyllä\n"
-#: ldmain.c:1000
+#: ldmain.c:1025
msgid "%B: warning: defined here\n"
msgstr "%B: varoitus: määritelty täällä\n"
-#: ldmain.c:1007
+#: ldmain.c:1032
msgid "%B: warning: common of `%T' overridden by larger common\n"
msgstr "%B: varoitus: â€%Tâ€-yhteinen korvattu laajemmalla yhteisellä\n"
-#: ldmain.c:1010
+#: ldmain.c:1035
msgid "%B: warning: larger common is here\n"
msgstr "%B: varoitus: laajempi yhteinen on täällä\n"
-#: ldmain.c:1014
+#: ldmain.c:1039
msgid "%B: warning: common of `%T' overriding smaller common\n"
msgstr "%B: varoitus: â€%Tâ€-yhteinen korvaa pienemmän yhteisen\n"
-#: ldmain.c:1017
+#: ldmain.c:1042
msgid "%B: warning: smaller common is here\n"
msgstr "%B: varoitus: pienempi yhteinen on täällä\n"
-#: ldmain.c:1021
+#: ldmain.c:1046
msgid "%B: warning: multiple common of `%T'\n"
msgstr "%B: varoitus: useita â€%Tâ€-yhteisiä\n"
-#: ldmain.c:1023
+#: ldmain.c:1048
msgid "%B: warning: previous common is here\n"
msgstr "%B: varoitus: edellinen yhteinen on täällä\n"
-#: ldmain.c:1043 ldmain.c:1081
+#: ldmain.c:1068 ldmain.c:1106
msgid "%P: warning: global constructor %s used\n"
msgstr "%P: varoitus: yleiskonstruktoria %s käytetty\n"
# Binary File Descriptor
-#: ldmain.c:1091
+#: ldmain.c:1116
msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
msgstr "%P%F: BFD-taustavirhe: kohdetta BFD_RELOC_CTOR ei ole tuettu\n"
#. We found a reloc for the symbol we are looking for.
-#: ldmain.c:1145 ldmain.c:1147 ldmain.c:1149 ldmain.c:1167 ldmain.c:1212
+#: ldmain.c:1170 ldmain.c:1172 ldmain.c:1174 ldmain.c:1192 ldmain.c:1237
msgid "warning: "
msgstr "varoitus: "
-#: ldmain.c:1248
-msgid "%F%P: bfd_hash_table_init failed: %E\n"
-msgstr "%F%P: bfd_hash_table_init ei onnistunut: %E\n"
-
-#: ldmain.c:1255
-msgid "%F%P: bfd_hash_lookup failed: %E\n"
-msgstr "%F%P: bfd_hash_lookup ei onnistunut: %E\n"
-
-#: ldmain.c:1276
+#: ldmain.c:1290
msgid "%X%C: undefined reference to `%T'\n"
msgstr "%X%C: määrittelemätön viite kohteeseen â€%Tâ€\n"
-#: ldmain.c:1279
+#: ldmain.c:1293
msgid "%C: warning: undefined reference to `%T'\n"
msgstr "%C: varoitus: määrittelemätön viite kohteeseen â€%Tâ€\n"
-#: ldmain.c:1285
+#: ldmain.c:1299
msgid "%X%D: more undefined references to `%T' follow\n"
msgstr "%X%D: lisää määrittelemättömiä viitteitä kohteeseen â€%T†seuraa\n"
-#: ldmain.c:1288
+#: ldmain.c:1302
msgid "%D: warning: more undefined references to `%T' follow\n"
msgstr "%D: varoitus: lisää määrittelemättömiä viitteitä kohteeseen â€%T†seuraa\n"
-#: ldmain.c:1299
+#: ldmain.c:1313
msgid "%X%B: undefined reference to `%T'\n"
msgstr "%X%B: määrittelemätön viite kohteeseen â€%Tâ€\n"
-#: ldmain.c:1302
+#: ldmain.c:1316
msgid "%B: warning: undefined reference to `%T'\n"
msgstr "%B: varoitus: määrittelemätön viite kohteeseen â€%Tâ€\n"
-#: ldmain.c:1308
+#: ldmain.c:1322
msgid "%X%B: more undefined references to `%T' follow\n"
msgstr "%X%B: lisää määrittelemättömiä viitteitä kohteeseen â€%T†seuraa\n"
-#: ldmain.c:1311
+#: ldmain.c:1325
msgid "%B: warning: more undefined references to `%T' follow\n"
msgstr "%B: varoitus: lisää määrittelemättömiä viitteitä kohteeseen â€%T†seuraa\n"
-#: ldmain.c:1350
+#: ldmain.c:1364
msgid " additional relocation overflows omitted from the output\n"
msgstr " lisäuudelleensijoituskorvauksia ei lisätä tulosteeseen\n"
-#: ldmain.c:1363
+#: ldmain.c:1377
msgid " relocation truncated to fit: %s against undefined symbol `%T'"
msgstr " uudelleensijoituksia typistetty sopimaan: %s vastaan määrittelemätön symboli â€%Tâ€"
-#: ldmain.c:1368
+#: ldmain.c:1382
msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"
msgstr " uudelleensijoituksia typistetty sopimaan: %s vastaan symboli â€%T†määritelty %A-lohkossa %B:ssä"
-#: ldmain.c:1380
+#: ldmain.c:1394
msgid " relocation truncated to fit: %s against `%T'"
msgstr " uudelleensijoituksia typistetty sopimaan: %s vastaan â€%Tâ€"
-#: ldmain.c:1397
+#: ldmain.c:1411
msgid "%X%H: dangerous relocation: %s\n"
msgstr "%X%H: vaarallinen uudelleensijoitus: %s\n"
-#: ldmain.c:1412
+#: ldmain.c:1426
msgid "%X%H: reloc refers to symbol `%T' which is not being output\n"
msgstr "%X%H: reloc viitaa symboliin â€%Tâ€, jota ei tulosteta\n"
-#: ldmisc.c:151
+#: ldmisc.c:154
#, c-format
msgid "no symbol"
msgstr "ei symbolia"
-#: ldmisc.c:248
-#, c-format
-msgid "built in linker script:%u"
-msgstr "sisäänrakennettu linkitysskripti:%u"
-
-#: ldmisc.c:329
+#: ldmisc.c:339
msgid "%B: In function `%T':\n"
msgstr "%B: Funktiossa â€%Tâ€:\n"
-#: ldmisc.c:464
+#: ldmisc.c:474
msgid "%F%P: internal error %s %d\n"
msgstr "%F%P: sisäinen virhe %s %d\n"
-#: ldmisc.c:513
+#: ldmisc.c:538
msgid "%P: internal error: aborting at %s line %d in %s\n"
msgstr "%P: sisäinen virhe: hylätään %s rivillä %d kohteessa %s\n"
-#: ldmisc.c:516
+#: ldmisc.c:541
msgid "%P: internal error: aborting at %s line %d\n"
msgstr "%P: sisäinen virhe: hylätään %s rivillä %d\n"
-#: ldmisc.c:518
+#: ldmisc.c:543
msgid "%P%F: please report this bug\n"
msgstr "%P%F: ilmoita tästä virheestä\n"
@@ -1261,8 +1282,8 @@ msgstr "GNU ld-versio %s\n"
#: ldver.c:43
#, c-format
-msgid "Copyright 2011 Free Software Foundation, Inc.\n"
-msgstr "Copyright 2011 Free Software Foundation, Inc.\n"
+msgid "Copyright 2014 Free Software Foundation, Inc.\n"
+msgstr "Copyright 2014 Free Software Foundation, Inc.\n"
#: ldver.c:44
#, c-format
@@ -1280,314 +1301,319 @@ msgstr ""
msgid " Supported emulations:\n"
msgstr " Tuetut emuloinnit:\n"
-#: ldwrite.c:62 ldwrite.c:207
+#: ldwrite.c:62 ldwrite.c:208
msgid "%P%F: bfd_new_link_order failed\n"
msgstr "%P%F: bfd_new_link_order ei onnistunut\n"
-#: ldwrite.c:365
+#: ldwrite.c:366
msgid "%F%P: cannot create split section name for %s\n"
-msgstr "%F%P: ei voi luoda jaettua lohkonimeä kohteelle %s\n"
+msgstr "%F%P: jaetun lohkonimen luominen kohteelle %s epäonnistui\n"
-#: ldwrite.c:377
+#: ldwrite.c:378
msgid "%F%P: clone section failed: %E\n"
msgstr "%F%P: kloonilohko ei onnistunut: %E\n"
-#: ldwrite.c:418
+#: ldwrite.c:419
#, c-format
msgid "%8x something else\n"
msgstr "%8x jotain muuta\n"
-#: ldwrite.c:588
+#: ldwrite.c:589
msgid "%F%P: final link failed: %E\n"
msgstr "%F%P: loppulinkitys ei onnistunut: %E\n"
-#: lexsup.c:220 lexsup.c:374
+#: lexsup.c:104 lexsup.c:261
msgid "KEYWORD"
msgstr "AVAINSANA"
-#: lexsup.c:220
+#: lexsup.c:104
msgid "Shared library control for HP/UX compatibility"
msgstr "Jaettu kirjasto-ohjain HP/UX-yhteensopivuutta varten"
-#: lexsup.c:223
+#: lexsup.c:107
msgid "ARCH"
msgstr "ARKISTO"
-#: lexsup.c:223
+#: lexsup.c:107
msgid "Set architecture"
msgstr "Aseta arkkitehtuuri"
-#: lexsup.c:225 lexsup.c:493
+#: lexsup.c:109 lexsup.c:380
msgid "TARGET"
msgstr "KOHDE"
-#: lexsup.c:225
+#: lexsup.c:109
msgid "Specify target for following input files"
msgstr "Määrittele kohde seuraaville syötetiedostoille"
-#: lexsup.c:228 lexsup.c:279 lexsup.c:303 lexsup.c:316 lexsup.c:318
-#: lexsup.c:447 lexsup.c:509 lexsup.c:572 lexsup.c:585
+#: lexsup.c:112 lexsup.c:163 lexsup.c:190 lexsup.c:203 lexsup.c:205
+#: lexsup.c:334 lexsup.c:396 lexsup.c:463 lexsup.c:476
msgid "FILE"
msgstr "TIEDOSTO"
-#: lexsup.c:228
+#: lexsup.c:112
msgid "Read MRI format linker script"
msgstr "Lue MRI-muotoinen linkitysskripti"
-#: lexsup.c:230
+#: lexsup.c:114
msgid "Force common symbols to be defined"
msgstr "Pakota yhteissymbolit määriteltäviksi"
-#: lexsup.c:234 lexsup.c:553 lexsup.c:555 lexsup.c:557 lexsup.c:559
+#: lexsup.c:118 lexsup.c:440 lexsup.c:442 lexsup.c:444 lexsup.c:446
+#: lexsup.c:448 lexsup.c:450
msgid "ADDRESS"
msgstr "OSOITE"
-#: lexsup.c:234
+#: lexsup.c:118
msgid "Set start address"
msgstr "Aseta alkuosoite"
-#: lexsup.c:236
+#: lexsup.c:120
msgid "Export all dynamic symbols"
msgstr "Vie kaikki dynaamiset symbolit"
-#: lexsup.c:238
+#: lexsup.c:122
msgid "Undo the effect of --export-dynamic"
msgstr "Peru valitsimen --export-dynamic vaikutus"
-#: lexsup.c:240
+#: lexsup.c:124
msgid "Link big-endian objects"
msgstr "Linkitä big-endian-objektit"
-#: lexsup.c:242
+#: lexsup.c:126
msgid "Link little-endian objects"
msgstr "Linkitä little-endian-objektit"
-#: lexsup.c:244 lexsup.c:247
+#: lexsup.c:128 lexsup.c:131
msgid "SHLIB"
msgstr "SHLIB"
-#: lexsup.c:244
+#: lexsup.c:128
msgid "Auxiliary filter for shared object symbol table"
msgstr "Lisäsuodatin jaetulle objektisymbolitaululle"
-#: lexsup.c:247
+#: lexsup.c:131
msgid "Filter for shared object symbol table"
msgstr "Suodatin jaetulle objektisymbolitaululle"
-#: lexsup.c:250
+#: lexsup.c:134
msgid "Ignored"
msgstr "Ei oteta huomioon"
-#: lexsup.c:252
+#: lexsup.c:136
msgid "SIZE"
msgstr "KOKO"
-#: lexsup.c:252
+#: lexsup.c:136
msgid "Small data size (if no size, same as --shared)"
msgstr "Pieni datakoko (jos kokoa ei ole, sama kuin --shared)"
-#: lexsup.c:255
+#: lexsup.c:139
msgid "FILENAME"
msgstr "TIEDOSTONIMI"
-#: lexsup.c:255
+#: lexsup.c:139
msgid "Set internal name of shared library"
msgstr "Aseta jaetun kirjaston sisäinen nimi"
-#: lexsup.c:257
+#: lexsup.c:141
msgid "PROGRAM"
msgstr "OHJELMA"
-#: lexsup.c:257
+#: lexsup.c:141
msgid "Set PROGRAM as the dynamic linker to use"
msgstr "Aseta OHJELMA dynaamisena linkkerinä käytettäväksi"
-#: lexsup.c:260
+#: lexsup.c:144
msgid "LIBNAME"
msgstr "KIRJASTONIMI"
-#: lexsup.c:260
+#: lexsup.c:144
msgid "Search for library LIBNAME"
msgstr "Haku kirjastolle KIRJASTONIMI"
-#: lexsup.c:262
+#: lexsup.c:146
msgid "DIRECTORY"
msgstr "HAKEMISTO"
-#: lexsup.c:262
+#: lexsup.c:146
msgid "Add DIRECTORY to library search path"
msgstr "Lisää HAKEMISTO kirjaston hakupolkuun"
-#: lexsup.c:265
+#: lexsup.c:149
msgid "Override the default sysroot location"
msgstr "Korvaa oletus sysroot-sijainti"
-#: lexsup.c:267
+#: lexsup.c:151
msgid "EMULATION"
msgstr "EMULOINTI"
-#: lexsup.c:267
+#: lexsup.c:151
msgid "Set emulation"
msgstr "Aseta emulointi"
-#: lexsup.c:269
+#: lexsup.c:153
msgid "Print map file on standard output"
msgstr "Tulosta map-tiedosto vakiotulosteessa"
-#: lexsup.c:271
+#: lexsup.c:155
msgid "Do not page align data"
msgstr "Älä sivuta tasausdataa"
-#: lexsup.c:273
+#: lexsup.c:157
msgid "Do not page align data, do not make text readonly"
msgstr "Älä sivuta tasausdataa, älä tee tekstistä kirjoitussuojattua"
-#: lexsup.c:276
+#: lexsup.c:160
msgid "Page align data, make text readonly"
msgstr "Sivuta tasausdataa, tee tekstistä kirjoitussuojattua"
-#: lexsup.c:279
+#: lexsup.c:163
msgid "Set output file name"
msgstr "Aseta tulostetiedoston nimi"
-#: lexsup.c:281
+#: lexsup.c:165
msgid "Optimize output file"
msgstr "Optimoi tulostetiedosto"
-#: lexsup.c:284
+#: lexsup.c:168
msgid "PLUGIN"
msgstr "LISÄOSA"
-#: lexsup.c:284
+#: lexsup.c:168
msgid "Load named plugin"
msgstr "Lataa lisätty lisäosa"
-#: lexsup.c:286
+#: lexsup.c:170
msgid "ARG"
msgstr "ARGUMENTTI"
-#: lexsup.c:286
+#: lexsup.c:170
msgid "Send arg to last-loaded plugin"
msgstr "Lähetä argumentti viimeksiladattuun lisäosaan"
-#: lexsup.c:288 lexsup.c:291
+#: lexsup.c:172 lexsup.c:175
msgid "Ignored for GCC LTO option compatibility"
msgstr "Ei oteta huomioon GCC LTO -valitsinyhteensopivuutta"
-#: lexsup.c:295
+#: lexsup.c:179
+msgid "Ignored for GCC linker option compatibility"
+msgstr "Ei oteta huomioon GCC-linkitysvalitsinyhteensopivuutta"
+
+#: lexsup.c:182
msgid "Ignored for SVR4 compatibility"
msgstr "Ei oteta huomioon SVR4-yhteensopivuutta"
-#: lexsup.c:299
+#: lexsup.c:186
msgid "Generate relocatable output"
msgstr "Tuota uudelleensijoitettava tuloste"
-#: lexsup.c:303
+#: lexsup.c:190
msgid "Just link symbols (if directory, same as --rpath)"
msgstr "Linkitä vain symbolit (jos hakemisto, sama kuin --rpath)"
-#: lexsup.c:306
+#: lexsup.c:193
msgid "Strip all symbols"
msgstr "Riisu kaikki symbolit"
-#: lexsup.c:308
+#: lexsup.c:195
msgid "Strip debugging symbols"
msgstr "Riisu vianjäljityssymbolit"
-#: lexsup.c:310
+#: lexsup.c:197
msgid "Strip symbols in discarded sections"
msgstr "Riisu symbolit hylätyissä lohkoissa"
-#: lexsup.c:312
+#: lexsup.c:199
msgid "Do not strip symbols in discarded sections"
msgstr "Älä riisu symboleja hylätyistä lohkoista"
-#: lexsup.c:314
+#: lexsup.c:201
msgid "Trace file opens"
msgstr "Jäljitä tiedoston avaukset"
-#: lexsup.c:316
+#: lexsup.c:203
msgid "Read linker script"
msgstr "Lue linkitysskripti"
-#: lexsup.c:318
+#: lexsup.c:205
msgid "Read default linker script"
msgstr "Lue oletus linkitysskripti"
-#: lexsup.c:322 lexsup.c:340 lexsup.c:424 lexsup.c:445 lexsup.c:546
-#: lexsup.c:575 lexsup.c:614
+#: lexsup.c:209 lexsup.c:227 lexsup.c:311 lexsup.c:332 lexsup.c:433
+#: lexsup.c:466 lexsup.c:505 lexsup.c:508
msgid "SYMBOL"
msgstr "SYMBOLI"
-#: lexsup.c:322
+#: lexsup.c:209
msgid "Start with undefined reference to SYMBOL"
msgstr "Aloita määrittelemättömällä viitteellä kohteeseen SYMBOLI"
-#: lexsup.c:325
+#: lexsup.c:212
msgid "[=SECTION]"
msgstr "[=LOHKO]"
-#: lexsup.c:326
+#: lexsup.c:213
msgid "Don't merge input [SECTION | orphan] sections"
msgstr "Älä yhdistä syöte[LOHKO | orpo]lohkoja"
-#: lexsup.c:328
+#: lexsup.c:215
msgid "Build global constructor/destructor tables"
msgstr "Muodosta yleiset konstruktori/destruktoritaulut"
-#: lexsup.c:330
+#: lexsup.c:217
msgid "Print version information"
msgstr "Tulosta versiotiedot"
-#: lexsup.c:332
+#: lexsup.c:219
msgid "Print version and emulation information"
msgstr "Tulosta versio- ja emulointitiedot"
-#: lexsup.c:334
+#: lexsup.c:221
msgid "Discard all local symbols"
msgstr "Hylkää kaikki paikalliset symbolit"
-#: lexsup.c:336
+#: lexsup.c:223
msgid "Discard temporary local symbols (default)"
msgstr "Hylkää tilapäiset paikalliset symbolit (oletus)"
-#: lexsup.c:338
+#: lexsup.c:225
msgid "Don't discard any local symbols"
msgstr "Älä hylkää mitään paikallisia symboleja"
-#: lexsup.c:340
+#: lexsup.c:227
msgid "Trace mentions of SYMBOL"
msgstr "Jäljitä SYMBOLIn maininnat"
-#: lexsup.c:342 lexsup.c:511 lexsup.c:513
+#: lexsup.c:229 lexsup.c:398 lexsup.c:400
msgid "PATH"
msgstr "POLKU"
-#: lexsup.c:342
+#: lexsup.c:229
msgid "Default search path for Solaris compatibility"
msgstr "Oletushakupolku Solaris-yhteensopivuutta varten"
-#: lexsup.c:345
+#: lexsup.c:232
msgid "Start a group"
msgstr "Käynnistä ryhmä"
-#: lexsup.c:347
+#: lexsup.c:234
msgid "End a group"
msgstr "Lopeta ryhmä"
-#: lexsup.c:351
+#: lexsup.c:238
msgid "Accept input files whose architecture cannot be determined"
-msgstr "Hyväksy syötetiedostot, joiden arkkitehtuuria ei voida määritellä"
+msgstr "Hyväksy syötetiedostot, joiden arkkitehtuurin määriteleminen epäonnistui"
-#: lexsup.c:355
+#: lexsup.c:242
msgid "Reject input files whose architecture is unknown"
msgstr "Hylkää syötetiedostot, joiden arkkitehtuuri on tuntematon"
-#: lexsup.c:367
+#: lexsup.c:254
msgid "Only set DT_NEEDED for following dynamic libs if used"
msgstr "Aseta DT_NEEDED vain seuraavissa dynaamisissa kirjastoissa, jos niitä käytetään"
-#: lexsup.c:370
+#: lexsup.c:257
msgid ""
"Always set DT_NEEDED for dynamic libraries mentioned on\n"
" the command line"
@@ -1595,171 +1621,171 @@ msgstr ""
"Aseta aina DT_NEEDED dynaamisille kirjastoille, jotka on\n"
" määritelty komentorivillä"
-#: lexsup.c:374
+#: lexsup.c:261
msgid "Ignored for SunOS compatibility"
msgstr "Ei oteta huomioon SunOS-yhteensopivuutta"
-#: lexsup.c:376
+#: lexsup.c:263
msgid "Link against shared libraries"
msgstr "Linkitä käyttäen jaettuja kirjastoja"
-#: lexsup.c:382
+#: lexsup.c:269
msgid "Do not link against shared libraries"
msgstr "Älä linkitä käyttäen jaettuja kirjastoja"
-#: lexsup.c:390
+#: lexsup.c:277
msgid "Bind global references locally"
msgstr "Sido yleisviitteet paikallisesti"
-#: lexsup.c:392
+#: lexsup.c:279
msgid "Bind global function references locally"
msgstr "Sido yleisfunktioviitteet paikallisesti"
-#: lexsup.c:394
+#: lexsup.c:281
msgid "Check section addresses for overlaps (default)"
msgstr "Tarkista lohko-osoitteet päällekkäisyyksien varalta (oletus)"
-#: lexsup.c:397
+#: lexsup.c:284
msgid "Do not check section addresses for overlaps"
msgstr "Älä tarkista lohko-osoitteita päällekkäisyyksien varalta"
-#: lexsup.c:401
+#: lexsup.c:288
msgid "Copy DT_NEEDED links mentioned inside DSOs that follow"
msgstr "Kopioi DT_NEEDED-linkit, jotka on mainittu seuraavien DSO-kohteiden sisällä"
-#: lexsup.c:405
+#: lexsup.c:292
msgid "Do not copy DT_NEEDED links mentioned inside DSOs that follow"
msgstr "Älä kopioi DT_NEEDED-linkkejä, jotka on mainittu seuraavien DSO-kohteiden sisällä"
-#: lexsup.c:409
+#: lexsup.c:296
msgid "Output cross reference table"
msgstr "Tulosteristiviitetaulu"
-#: lexsup.c:411
+#: lexsup.c:298
msgid "SYMBOL=EXPRESSION"
msgstr "SYMBOLI=LAUSEKE"
-#: lexsup.c:411
+#: lexsup.c:298
msgid "Define a symbol"
msgstr "Määrittele symboli"
-#: lexsup.c:413
+#: lexsup.c:300
msgid "[=STYLE]"
msgstr "[=TYYLI]"
-#: lexsup.c:413
+#: lexsup.c:300
msgid "Demangle symbol names [using STYLE]"
msgstr "Eheytä symbolinnimet [käyttäen TYYLIä]"
-#: lexsup.c:416
+#: lexsup.c:303
msgid "Generate embedded relocs"
msgstr "Tuota upotettuja relocs-lohkoja"
-#: lexsup.c:418
+#: lexsup.c:305
msgid "Treat warnings as errors"
msgstr "Kohtele varoituksia virheinä"
-#: lexsup.c:421
+#: lexsup.c:308
msgid "Do not treat warnings as errors (default)"
msgstr "Älä kohtele varoituksia virheinä (oletus)"
-#: lexsup.c:424
+#: lexsup.c:311
msgid "Call SYMBOL at unload-time"
msgstr "Kutsu SYMBOLIa vapautushetkellä"
-#: lexsup.c:426
+#: lexsup.c:313
msgid "Force generation of file with .exe suffix"
msgstr "Pakota .exe-suffiksitiedoston luominen"
-#: lexsup.c:428
+#: lexsup.c:315
msgid "Remove unused sections (on some targets)"
msgstr "Poista käyttämättömät lohkot (joissakin kohteissa)"
-#: lexsup.c:431
+#: lexsup.c:318
msgid "Don't remove unused sections (default)"
msgstr "Älä poista käyttämättömiä lohkoja (oletus)"
-#: lexsup.c:434
+#: lexsup.c:321
msgid "List removed unused sections on stderr"
msgstr "Luettele poistetut käyttämättömät lohkot vakiovirheessä"
-#: lexsup.c:437
+#: lexsup.c:324
msgid "Do not list removed unused sections"
msgstr "Älä luettele poistettuja käyttämättömiä lohkoja"
-#: lexsup.c:440
+#: lexsup.c:327
msgid "Set default hash table size close to <NUMBER>"
msgstr "Aseta oletus-hash-taulukoko lähelle <NUMERO>"
-#: lexsup.c:443
+#: lexsup.c:330
msgid "Print option help"
msgstr "Tulosta valitsinopaste"
-#: lexsup.c:445
+#: lexsup.c:332
msgid "Call SYMBOL at load-time"
msgstr "Kutsu SYMBOLIa lataushetkellä"
-#: lexsup.c:447
+#: lexsup.c:334
msgid "Write a map file"
msgstr "Kirjoita map-tiedosto"
-#: lexsup.c:449
+#: lexsup.c:336
msgid "Do not define Common storage"
msgstr "Älä määrittele Yhteinen-varastoa"
-#: lexsup.c:451
+#: lexsup.c:338
msgid "Do not demangle symbol names"
msgstr "Älä eheytä symbolinimiä"
-#: lexsup.c:453
+#: lexsup.c:340
msgid "Use less memory and more disk I/O"
msgstr "Käytä vähemmän muistia ja enemmän levyn I/O-toimintoja"
-#: lexsup.c:455
+#: lexsup.c:342
msgid "Do not allow unresolved references in object files"
msgstr "Älä salli ratkaisemattomia viitteitä objektitiedostoissa"
-#: lexsup.c:458
+#: lexsup.c:345
msgid "Allow unresolved references in shared libraries"
msgstr "Salli ratkaisemattomia viitteitä jaetuissa kirjastoissa"
-#: lexsup.c:462
+#: lexsup.c:349
msgid "Do not allow unresolved references in shared libs"
msgstr "Älä salli ratkaisemattomia viitteitä jaetuissa kirjastoissa"
-#: lexsup.c:466
+#: lexsup.c:353
msgid "Allow multiple definitions"
msgstr "Salli useita määrittelyjä"
-#: lexsup.c:468
+#: lexsup.c:355
msgid "Disallow undefined version"
msgstr "Älä salli määrittelemätöntä versiota"
-#: lexsup.c:470
+#: lexsup.c:357
msgid "Create default symbol version"
msgstr "Luo oletussymboliversio"
-#: lexsup.c:473
+#: lexsup.c:360
msgid "Create default symbol version for imported symbols"
msgstr "Luo oletussymboliversio tuontisymboleille"
-#: lexsup.c:476
+#: lexsup.c:363
msgid "Don't warn about mismatched input files"
msgstr "Älä varoita täsmäämättömistä syötetiedostoista"
-#: lexsup.c:479
+#: lexsup.c:366
msgid "Don't warn on finding an incompatible library"
msgstr "Älä varoita yhteensopimattoman kirjaston löytymisestä"
-#: lexsup.c:482
+#: lexsup.c:369
msgid "Turn off --whole-archive"
msgstr "Käännä pois --whole-archive"
-#: lexsup.c:484
+#: lexsup.c:371
msgid "Create an output file even if errors occur"
msgstr "Luo tulostetiedosto myös silloin kun syntyy virheitä"
-#: lexsup.c:489
+#: lexsup.c:376
msgid ""
"Only use library directories specified on\n"
" the command line"
@@ -1767,132 +1793,140 @@ msgstr ""
"Käytä vain kirjastohakemistoja, jotka on määritelty\n"
" komentorivillä"
-#: lexsup.c:493
+#: lexsup.c:380
msgid "Specify target of output file"
msgstr "Määrittele tulostetiedoston kohde"
-#: lexsup.c:496
+#: lexsup.c:383
msgid "Print default output format"
msgstr "Tulostuksen oletustulostusmuoto"
-#: lexsup.c:498
+#: lexsup.c:385
msgid "Ignored for Linux compatibility"
msgstr "Ei oteta huomioon Linux-yhteensopivuutta"
-#: lexsup.c:501
+#: lexsup.c:388
msgid "Reduce memory overheads, possibly taking much longer"
msgstr "Pienennä muistiyleisrasite, mahdollisesti ottamalla paljon pitemmän"
-#: lexsup.c:504
+#: lexsup.c:391
msgid "Reduce code size by using target specific optimizations"
msgstr "Pienennä koodikokoa käyttämällä kohdekohtaisia optimointeja"
# Kun käskyoperandi on sen lukualueen ulkopuolella, joka sallitaan kullekin käskykentälle, assembler voi muuntaa koodin käyttämään toiminnallisesti samanlaista käskyä tai käskysekvenssiä. Tämä prosessi tunnetaan nimellä relaxation. Tätä tehdään tyypillisesti haarautumiskäskyissä, koska haarautumiskohteen etäisyyttä ei tunneta ennen linkitystä. Tavallaan tällä tavalla kumotaan lukualueen rajoitteet (constraints). Siksi olen suomentanut sen termillä avartaminen.
-#: lexsup.c:506
+#: lexsup.c:393
msgid "Do not use relaxation techniques to reduce code size"
msgstr "Älä käytä avartamistekniikoita koodikoon pienentämiseksi"
-#: lexsup.c:509
+#: lexsup.c:396
msgid "Keep only symbols listed in FILE"
msgstr "Pidä vain symbolit, jotka on lueteltu TIEDOSTOssa"
-#: lexsup.c:511
+#: lexsup.c:398
msgid "Set runtime shared library search path"
msgstr "Aseta ajoaikaisen jaetun kirjaston hakupolku"
-#: lexsup.c:513
+#: lexsup.c:400
msgid "Set link time shared library search path"
msgstr "Aseta linkkausaikaisen jaetun kirjaston hakupolku"
-#: lexsup.c:516
+#: lexsup.c:403
msgid "Create a shared library"
msgstr "Luo jaettu kirjasto"
-#: lexsup.c:520
+#: lexsup.c:407
msgid "Create a position independent executable"
msgstr "Luo paikkariippumaton suoritettava tiedosto"
-#: lexsup.c:524
+#: lexsup.c:411
msgid "[=ascending|descending]"
msgstr "[=nouseva|laskeva]"
-#: lexsup.c:525
+#: lexsup.c:412
msgid "Sort common symbols by alignment [in specified order]"
msgstr "Lajittele yhteissymbolit [määritellyn järjestyksen] mukaan"
-#: lexsup.c:530
+#: lexsup.c:417
msgid "name|alignment"
msgstr "nimi|tasaus"
-#: lexsup.c:531
+#: lexsup.c:418
msgid "Sort sections by name or maximum alignment"
msgstr "Lajittele lohkot nimen tai maksimitasauksen mukaan"
-#: lexsup.c:533
+#: lexsup.c:420
msgid "COUNT"
msgstr "LUKUMÄÄRÄ"
-#: lexsup.c:533
+#: lexsup.c:420
msgid "How many tags to reserve in .dynamic section"
msgstr "Kuinka monta tunnistetta â€.dynamicâ€-lohkon varaamiseen"
-#: lexsup.c:536
+#: lexsup.c:423
msgid "[=SIZE]"
msgstr "[=KOKO]"
-#: lexsup.c:536
+#: lexsup.c:423
msgid "Split output sections every SIZE octets"
msgstr "Halkaise tulostelohkot kaikkiin KOKO-oktetteihin"
-#: lexsup.c:539
+#: lexsup.c:426
msgid "[=COUNT]"
msgstr "[=LUKUMÄÄRÄ]"
-#: lexsup.c:539
+#: lexsup.c:426
msgid "Split output sections every COUNT relocs"
msgstr "Halkaise tulostelohkot kaikkiin COUNT-reloc-alkioihin"
-#: lexsup.c:542
+#: lexsup.c:429
msgid "Print memory usage statistics"
msgstr "Tulosta muistikäyttötilastot"
-#: lexsup.c:544
+#: lexsup.c:431
msgid "Display target specific options"
msgstr "Näytä kohdekohtaiset valitsimet"
-#: lexsup.c:546
+#: lexsup.c:433
msgid "Do task level linking"
msgstr "Tee tehtävätason linkitystä"
-#: lexsup.c:548
+#: lexsup.c:435
msgid "Use same format as native linker"
msgstr "Käytä samaa muotoa kuin kotoperäinen linkkeri"
-#: lexsup.c:550
+#: lexsup.c:437
msgid "SECTION=ADDRESS"
msgstr "LOHKO=OSOITE"
-#: lexsup.c:550
+#: lexsup.c:437
msgid "Set address of named section"
msgstr "Aseta nimetyn lohkon osoite"
-#: lexsup.c:553
+#: lexsup.c:440
msgid "Set address of .bss section"
msgstr "Aseta â€.bssâ€-lohkon osoite"
-#: lexsup.c:555
+#: lexsup.c:442
msgid "Set address of .data section"
msgstr "Aseta â€.dataâ€-lohkon osoite"
-#: lexsup.c:557
+#: lexsup.c:444
msgid "Set address of .text section"
msgstr "Aseta â€.textâ€-lohkon osoite"
-#: lexsup.c:559
+#: lexsup.c:446
msgid "Set address of text segment"
msgstr "Aseta text-lohkon osoite"
-#: lexsup.c:562
+#: lexsup.c:448
+msgid "Set address of rodata segment"
+msgstr "Aseta rodata-segmentin osoite"
+
+#: lexsup.c:450
+msgid "Set address of ldata segment"
+msgstr "Aseta ldata-segmentin osoite"
+
+#: lexsup.c:453
msgid ""
"How to handle unresolved symbols. <method> is:\n"
" ignore-all, report-all, ignore-in-object-files,\n"
@@ -1902,19 +1936,19 @@ msgstr ""
" ei-oteta-huomioon-kaikissa, raportoi-kaikki, ei-oteta-huomioon-objektitiedostoista,\n"
" ei-oteta-huomioon-jaetuissa-kirjastoissa"
-#: lexsup.c:567
+#: lexsup.c:458
msgid "[=NUMBER]"
msgstr "[=NUMERO]"
-#: lexsup.c:568
+#: lexsup.c:459
msgid "Output lots of information during link"
msgstr "Tulosta paljon tietoja linkityksen aikana"
-#: lexsup.c:572
+#: lexsup.c:463
msgid "Read version information script"
msgstr "Lue versiotietoskripti"
-#: lexsup.c:575
+#: lexsup.c:466
msgid ""
"Take export symbols list from .exports, using\n"
" SYMBOL as the version."
@@ -1922,95 +1956,99 @@ msgstr ""
"Ota vientisymbolit â€.exportsâ€-luettelosta, käytä\n"
" SYMBOLIa versiona."
-#: lexsup.c:579
+#: lexsup.c:470
msgid "Add data symbols to dynamic list"
msgstr "Lisää datasymboleja dynaamiseen luetteloon"
-#: lexsup.c:581
+#: lexsup.c:472
msgid "Use C++ operator new/delete dynamic list"
msgstr "Käytä C++-operaattoria â€new/delete†dynaamiseen luetteloon"
-#: lexsup.c:583
+#: lexsup.c:474
msgid "Use C++ typeinfo dynamic list"
msgstr "Käytä C++ typeinfo-luokkaa dynaamiseen luetteloon"
-#: lexsup.c:585
+#: lexsup.c:476
msgid "Read dynamic list"
msgstr "Lue dynaamista luetteloa"
-#: lexsup.c:587
+#: lexsup.c:478
msgid "Warn about duplicate common symbols"
msgstr "Varoita yhteissymbolien kaksoiskappaleista"
-#: lexsup.c:589
+#: lexsup.c:480
msgid "Warn if global constructors/destructors are seen"
msgstr "Varoita, jos nähdään yleisiä konstruktoreja/destruktoreja"
-#: lexsup.c:592
+#: lexsup.c:483
msgid "Warn if the multiple GP values are used"
msgstr "Varoita, jos käytetään useita GP-arvoja"
-#: lexsup.c:594
+#: lexsup.c:485
msgid "Warn only once per undefined symbol"
msgstr "Varoita vain kerran määrittämättömästä symbolista"
-#: lexsup.c:596
+#: lexsup.c:487
msgid "Warn if start of section changes due to alignment"
msgstr "Varoita, jos lohkon alku muuttuu tasauksen vuoksi"
-#: lexsup.c:599
+#: lexsup.c:490
msgid "Warn if shared object has DT_TEXTREL"
msgstr "Varoita, jos jaetuilla objekteilla on DT_TEXTREL"
-#: lexsup.c:602
+#: lexsup.c:493
msgid "Warn if an object has alternate ELF machine code"
msgstr "Varoita, jos objektissa on vaihtoehtoisen ELF-koneen koodia"
-#: lexsup.c:606
+#: lexsup.c:497
msgid "Report unresolved symbols as warnings"
msgstr "Raportoi ratkaisemattomat symbolit varoituksina"
-#: lexsup.c:609
+#: lexsup.c:500
msgid "Report unresolved symbols as errors"
msgstr "Raportoi ratkaisemattomat symbolit virheinä"
-#: lexsup.c:611
+#: lexsup.c:502
msgid "Include all objects from following archives"
msgstr "Sisällytä kaikki objektit seuraavista arkistoista"
-#: lexsup.c:614
+#: lexsup.c:505
msgid "Use wrapper functions for SYMBOL"
msgstr "Käytä wrapper-toimintoja SYMBOLille"
-#: lexsup.c:763
+#: lexsup.c:509
+msgid "Unresolved SYMBOL will not cause an error or warning"
+msgstr "Ratkaisematon SYMBOLi ei aiheuta virhettä tai varoitusta"
+
+#: lexsup.c:659
msgid "%P: unrecognized option '%s'\n"
msgstr "%P: tunnistamaton valitsin ’%s’\n"
-#: lexsup.c:767
+#: lexsup.c:663
msgid "%P%F: use the --help option for usage information\n"
msgstr "%P%F: käytä â€--helpâ€-valitsinta käyttötietojen saamiseksi\n"
-#: lexsup.c:785
+#: lexsup.c:681
msgid "%P%F: unrecognized -a option `%s'\n"
msgstr "%P%F: tunnistamaton â€-aâ€-valitsin â€%sâ€\n"
-#: lexsup.c:798
+#: lexsup.c:694
msgid "%P%F: unrecognized -assert option `%s'\n"
msgstr "%P%F: tunnistamaton â€-assertâ€-valitsin â€%sâ€\n"
-#: lexsup.c:841
-msgid "%F%P: unknown demangling style `%s'"
-msgstr "%F%P: tuntematon eheytystyyli â€%sâ€"
+#: lexsup.c:735
+msgid "%F%P: unknown demangling style `%s'\n"
+msgstr "%F%P: tuntematon eheytystyyli â€%sâ€\n"
-#: lexsup.c:907 lexsup.c:1341
+#: lexsup.c:801 lexsup.c:1239
msgid "%P%F: invalid number `%s'\n"
msgstr "%P%F: virheellinen numero â€%sâ€\n"
-#: lexsup.c:1005
+#: lexsup.c:899
msgid "%P%F: bad --unresolved-symbols option: %s\n"
msgstr "%P%F: virheellinen â€--unresolved-symbolsâ€-valitsin: %s\n"
-#: lexsup.c:1076
+#: lexsup.c:968
msgid "%P%F: bad -plugin-opt option\n"
msgstr "%P%F: virheellinen â€-plugin-optâ€-valitsin\n"
@@ -2022,112 +2060,112 @@ msgstr "%P%F: virheellinen â€-plugin-optâ€-valitsin\n"
#. 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:1093
+#: lexsup.c:985
msgid "%P%F: bad -rpath option\n"
msgstr "%P%F: virheellinen â€-rpathâ€-valitsin\n"
-#: lexsup.c:1207
+#: lexsup.c:1099
msgid "%P%F: -shared not supported\n"
msgstr "%P%F: â€-shared†ei ole tuettu\n"
-#: lexsup.c:1216
+#: lexsup.c:1108
msgid "%P%F: -pie not supported\n"
msgstr "%P%F: â€-pie†ei ole tuettu\n"
-#: lexsup.c:1224
+#: lexsup.c:1116
msgid "descending"
msgstr "laskeva"
-#: lexsup.c:1226
+#: lexsup.c:1118
msgid "ascending"
msgstr "nouseva"
-#: lexsup.c:1229
+#: lexsup.c:1121
msgid "%P%F: invalid common section sorting option: %s\n"
msgstr "%P%F: virheellinen yhteisen lohkon lajitteluvalitsin: %s\n"
-#: lexsup.c:1233
+#: lexsup.c:1125
msgid "name"
msgstr "nimi"
-#: lexsup.c:1235
+#: lexsup.c:1127
msgid "alignment"
msgstr "tasaus"
-#: lexsup.c:1238
+#: lexsup.c:1130
msgid "%P%F: invalid section sorting option: %s\n"
msgstr "%P%F: virheellinen lohkolajitteluvalitsin: %s\n"
-#: lexsup.c:1272
+#: lexsup.c:1164
msgid "%P%F: invalid argument to option \"--section-start\"\n"
msgstr "%P%F: virheellinen argumentti valitsimelle â€--section-startâ€\n"
-#: lexsup.c:1279
+#: lexsup.c:1171
msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
msgstr "%P%F: argumentteja puuttuu valitsimelle â€--section-startâ€\n"
-#: lexsup.c:1513
+#: lexsup.c:1414
msgid "%P%F: group ended before it began (--help for usage)\n"
msgstr "%P%F: ryhmä loppui ennen alkamista (--help opasteeksi)\n"
-#: lexsup.c:1541
+#: lexsup.c:1442
msgid "%P%X: --hash-size needs a numeric argument\n"
msgstr "%P%X: â€--hash-size†tarvitsee numeerisen argumentin\n"
-#: lexsup.c:1572
+#: lexsup.c:1473
msgid "%P%F: -r and -shared may not be used together\n"
msgstr "%P%F: argumentteja -r ja -shared ei saa käyttää yhdessä\n"
-#: lexsup.c:1615
+#: lexsup.c:1516
msgid "%P%F: -F may not be used without -shared\n"
msgstr "%P%F: argumenttia -F ei saa käyttää ilman argumenttia -shared\n"
-#: lexsup.c:1617
+#: lexsup.c:1518
msgid "%P%F: -f may not be used without -shared\n"
msgstr "%P%F: argumenttia -f ei saa käyttää ilman argumenttia -shared\n"
-#: lexsup.c:1661 lexsup.c:1674
+#: lexsup.c:1562 lexsup.c:1575
msgid "%P%F: invalid hex number `%s'\n"
msgstr "%P%F: virheellinen heksadesimaalinumero â€%sâ€\n"
-#: lexsup.c:1710
+#: lexsup.c:1611
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "Käyttö: %s [valitsimet] tiedosto...\n"
-#: lexsup.c:1712
+#: lexsup.c:1613
#, c-format
msgid "Options:\n"
msgstr "Valitsimet:\n"
-#: lexsup.c:1790
+#: lexsup.c:1691
#, c-format
msgid " @FILE"
msgstr " @TIEDOSTO"
-#: lexsup.c:1793
+#: lexsup.c:1694
#, c-format
msgid "Read options from FILE\n"
msgstr "Lue valitsimet tiedostosta TIEDOSTO\n"
#. Note: Various tools (such as libtool) depend upon the
#. format of the listings below - do not change them.
-#: lexsup.c:1798
+#: lexsup.c:1699
#, c-format
msgid "%s: supported targets:"
msgstr "%s: tuetut kohteet:"
-#: lexsup.c:1806
+#: lexsup.c:1707
#, c-format
msgid "%s: supported emulations: "
msgstr "%s: tuetut emuloinnit: "
-#: lexsup.c:1811
+#: lexsup.c:1712
#, c-format
msgid "%s: emulation specific options:\n"
msgstr "%s: emulointikohtaiset valitsimet:\n"
-#: lexsup.c:1816
+#: lexsup.c:1717
#, c-format
msgid "Report bugs to %s\n"
msgstr ""
@@ -2138,123 +2176,137 @@ msgstr ""
msgid "%P%F: unknown format type %s\n"
msgstr "%P%F: tuntematon muototyyppi %s\n"
-#: pe-dll.c:431
+#: pe-dll.c:430
#, c-format
msgid "%XUnsupported PEI architecture: %s\n"
msgstr "%XEi-tuettu PEI-arkkitehtuuri: %s\n"
-#: pe-dll.c:788
+#: pe-dll.c:799
#, c-format
msgid "%XCannot export %s: invalid export name\n"
-msgstr "%XEi voi viedä %s: virheellinen vientinimi\n"
+msgstr "%XKohteen %s vienti epäonnistui: virheellinen vientinimi\n"
-#: pe-dll.c:845
+#: pe-dll.c:851
#, c-format
msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
msgstr "%XVirhe, EXPORT-kaksoiskappale järjestysnumeroilla: %s (%d vs %d)\n"
-#: pe-dll.c:852
+#: pe-dll.c:858
#, c-format
msgid "Warning, duplicate EXPORT: %s\n"
msgstr "Varoitus, EXPORT-kaksoiskappale: %s\n"
-#: pe-dll.c:939
+#: pe-dll.c:961
#, c-format
msgid "%XCannot export %s: symbol not defined\n"
-msgstr "%XEi voi viedä symbolia %s: symbolia ei ole määritelty\n"
+msgstr "%XSymbolin %s vienti epäonnistui: symbolia ei ole määritelty\n"
-#: pe-dll.c:945
+#: pe-dll.c:967
#, c-format
msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
-msgstr "%XEi voi viedä symbolia %s: symboli on väärän tyyppinen (%d vs %d)\n"
+msgstr "%XSymbolin %s vienti epäonnistui: symboli on väärän tyyppinen (%d vs %d)\n"
-#: pe-dll.c:952
+#: pe-dll.c:974
#, c-format
msgid "%XCannot export %s: symbol not found\n"
-msgstr "%XEi voi viedä symbolia %s: symbolia ei löydy\n"
+msgstr "%XSymbolin %s vienti epäonnistui: symbolia ei löydy\n"
-#: pe-dll.c:1066
+#: pe-dll.c:1088
#, c-format
msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
msgstr "%XVirhe, järjestyslukua käytetty kahdesti: %d (%s vs %s)\n"
-#: pe-dll.c:1456
+#: pe-dll.c:1478
#, c-format
msgid "%XError: %d-bit reloc in dll\n"
msgstr "%XVirhe: %d-bittinen reloc dll:ssä\n"
-#: pe-dll.c:1584
+#: pe-dll.c:1606
#, c-format
msgid "%s: Can't open output def file %s\n"
-msgstr "%s: Ei voi avata def-tulostetiedostoa %s\n"
+msgstr "%s: Tulostus-def-tiedoston %s avaaminen epäonnistui\n"
-#: pe-dll.c:1735
+#: pe-dll.c:1757
#, c-format
msgid "; no contents available\n"
msgstr "; sisältö ei ole saatavilla\n"
-#: pe-dll.c:2662
+#: pe-dll.c:2684
msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
-msgstr "%C: muuttujaa â€%T†ei voi tuoda automaattisesti. Lue yksityiskohtaiset dokumentit ld-ohjelman --enable-auto-import-valitsimesta.\n"
+msgstr "%C: muuttujan â€%T†automaattinen tuonti epäonnistui. Lue yksityiskohtaiset dokumentit ld-ohjelman --enable-auto-import-valitsimesta.\n"
-#: pe-dll.c:2692
+#: pe-dll.c:2714
#, c-format
msgid "%XCan't open .lib file: %s\n"
-msgstr "%XEi voi avata .lib-tiedostoa: %s\n"
+msgstr "%XTiedoston .lib avaaminen epäonnistui: %s\n"
-#: pe-dll.c:2697
+#: pe-dll.c:2720
#, c-format
msgid "Creating library file: %s\n"
msgstr "Luodaan kirjastotiedosto: %s\n"
-#: pe-dll.c:2726
+#: pe-dll.c:2749
#, c-format
msgid "%Xbfd_openr %s: %E\n"
msgstr "%Xbfd_openr %s: %E\n"
-#: pe-dll.c:2738
+#: pe-dll.c:2761
#, c-format
msgid "%X%s(%s): can't find member in non-archive file"
-msgstr "%X%s(%s): ei voi löytää jäsentä ei-arkistotiedostossa"
+msgstr "%X%s(%s): jäsenen löytäminen ei-arkistotiedostossa epäonnistui"
-#: pe-dll.c:2750
+#: pe-dll.c:2773
#, c-format
msgid "%X%s(%s): can't find member in archive"
-msgstr "%X%s(%s): ei voi löytää jäsentä arkistossa"
+msgstr "%X%s(%s): jäsenen löytäminen arkistossa epäonnistui"
-#: pe-dll.c:3189
+#: pe-dll.c:3356
#, c-format
msgid "%XError: can't use long section names on this arch\n"
-msgstr "%XError: ei voi käyttää pitkiä lohkonimiä tähän arkistoon\n"
+msgstr "%XError: pitkien lohkonimien käyttäminen tässä arkistossa epäonnistui\n"
-#: plugin.c:177 plugin.c:211
+#: plugin.c:185 plugin.c:218
msgid "<no plugin>"
msgstr "<ei lisäosa>"
-#: plugin.c:250
+#: plugin.c:199 plugin.c:814
+msgid "%P%F: %s: error loading plugin: %s\n"
+msgstr "%P%F: %s: virhe ladattaessa lisäosaa: %s\n"
+
+#: plugin.c:257
#, c-format
msgid "could not create dummy IR bfd: %F%E\n"
-msgstr "ei voitu luoda valesymbolia IR bfd: %F%E\n"
+msgstr "valesymbolin IR bfd luominen epäonnistui: %F%E\n"
-#: plugin.c:343
+#: plugin.c:350
msgid "%P%F: %s: non-ELF symbol in ELF BFD!\n"
msgstr "%P%F: %s: ei-ELF-symboli kohteessa ELF BFD!\n"
-#: plugin.c:347
+#: plugin.c:354
msgid "%P%F: unknown ELF symbol visibility: %d!\n"
msgstr "%P%F: tuntematon ELF-symbolinäkyvyys: %d!\n"
-#: plugin.c:586
+#: plugin.c:591
msgid "%P: %B: symbol `%s' definition: %d, visibility: %d, resolution: %d\n"
msgstr "%P: %B: symbolin â€%s†määrittely: %d, näkyvyys: %d, ratkaisu: %d\n"
-#: plugin.c:863
+#: plugin.c:821
+msgid "%P%F: %s: plugin error: %d\n"
+msgstr "%P%F: %s: lisäosavirhe: %d\n"
+
+#: plugin.c:871
msgid "%P%F: %s: plugin reported error claiming file\n"
msgstr "%P%F: %s: lisäosa ilmoitettu virhevaatimustiedostoon\n"
-#: plugin.c:934
-msgid "%P: %s: error in plugin cleanup (ignored)\n"
-msgstr "%P: %s: virhe lisäosan puhdistuksessa (ohitettu)\n"
+#: plugin.c:936
+msgid "%P: %s: error in plugin cleanup: %d (ignored)\n"
+msgstr "%P: %s: virhe lisäosan puhdistuksessa: %d (ohitettu)\n"
+
+#~ msgid "%F%P: bfd_hash_table_init failed: %E\n"
+#~ msgstr "%F%P: bfd_hash_table_init ei onnistunut: %E\n"
+
+#~ msgid "%F%P: bfd_hash_lookup failed: %E\n"
+#~ msgstr "%F%P: bfd_hash_lookup ei onnistunut: %E\n"
#~ msgid "%P%F: bad -plugin option\n"
#~ msgstr "%P%F: virheellinen â€-pluginâ€-valitsin\n"
@@ -2263,16 +2315,16 @@ msgstr "%P: %s: virhe lisäosan puhdistuksessa (ohitettu)\n"
#~ msgstr "%P%X: %s: hash-tauluhäiriö lisättäesä symbolia %s"
#~ msgid "%P%X: %s: can't find IR symbol '%s'"
-#~ msgstr "%P%X: %s: ei löydy IR-symbolia ’%s’"
+#~ msgstr "%P%X: %s: IR-symbolin ’%s’ löytäminen epäonnistui"
#~ msgid "%P%x: %s: bad IR symbol type %d"
#~ msgstr "%P%x: %s: väärä IR-symbolityyppi %d"
#~ msgid "%F%P: %s (%s): No such file: %E\n"
-#~ msgstr "%F%P: %s (%s): Ei löydy tiedostoa: %E\n"
+#~ msgstr "%F%P: %s (%s): Tiedoston löytäminen epäonnistui: %E\n"
#~ msgid "%F%P: %s: No such file: %E\n"
-#~ msgstr "%F%P: %s: Ei löydy tiedostoa: %E\n"
+#~ msgstr "%F%P: %s: Tiedoston löytäminen epäonnistui: %E\n"
#~ msgid ""
#~ "Set DT_NEEDED tags for DT_NEEDED entries in\n"
diff --git a/ld/po/fr.po b/ld/po/fr.po
index a66527a..98abb7d 100644
--- a/ld/po/fr.po
+++ b/ld/po/fr.po
@@ -13,6 +13,7 @@ msgstr ""
"Last-Translator: Grégoire Scano <gregoire.scano@malloc.fr>\n"
"Language-Team: French <traduc@traduc.org>\n"
"Language: fr\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff --git a/ld/po/id.po b/ld/po/id.po
index 0e5de9e..6c5f634 100644
--- a/ld/po/id.po
+++ b/ld/po/id.po
@@ -1,16 +1,18 @@
# Pesan Bahasa Indonesia untuk LD
# Copyright (C) 2008 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
-# Arif E. Nugroho <arif_endro@yahoo.com>, 2008, 2009.
+# Arif E. Nugroho <arif_endro@yahoo.com>, 2008, 2009, 2010, 2011, 2012, 2013, 2014.
#
msgid ""
msgstr ""
-"Project-Id-Version: ld 2.20\n"
+"Project-Id-Version: ld 2.23.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 14:10+0200\n"
-"PO-Revision-Date: 2009-11-11 08:00+0700\n"
+"POT-Creation-Date: 2011-10-25 11:20+0100\n"
+"PO-Revision-Date: 2014-08-13 08:00+0700\n"
"Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
+"Language: id\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -30,160 +32,170 @@ msgstr " --thumb-entry=<sym> Set titik masukan ke simbol Thumb <sym>\n
msgid "Errors encountered processing file %s"
msgstr "Error ditemui dalam pemrosesan berkas %s"
-#: emultempl/armcoff.em:190 emultempl/pe.em:1710
+#: emultempl/armcoff.em:192 emultempl/pe.em:1812
msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
msgstr "%P: peringatan: '--thumb-entry %s' memaksa '-e %s'\n"
-#: emultempl/armcoff.em:195 emultempl/pe.em:1715
+#: emultempl/armcoff.em:197 emultempl/pe.em:1817
msgid "%P: warning: cannot find thumb start symbol %s\n"
msgstr "%P: warning: tidak dapat menemukan thumb awal simbol %s\n"
-#: emultempl/pe.em:371
+#: emultempl/pe.em:419
#, c-format
msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
msgstr " --base_file <basefile> Buat sebuah berkas dasar untuk DLL yang dapat direlokasikan\n"
-#: emultempl/pe.em:372
+#: emultempl/pe.em:420
#, c-format
msgid " --dll Set image base to the default for DLLs\n"
msgstr " --dll Set dasar image ke default untuk DLLs\n"
-#: emultempl/pe.em:373
+#: emultempl/pe.em:421
#, c-format
msgid " --file-alignment <size> Set file alignment\n"
msgstr " --file-alignment <besar> Set berkas alignment\n"
-#: emultempl/pe.em:374
+#: emultempl/pe.em:422
#, c-format
msgid " --heap <size> Set initial size of the heap\n"
msgstr " --heap <besar> Set ukuran inisial dari heap\n"
-#: emultempl/pe.em:375
+#: emultempl/pe.em:423
#, c-format
msgid " --image-base <address> Set start address of the executable\n"
msgstr " --image-base <alamat> Set alamat awal dari executabel\n"
-#: emultempl/pe.em:376
+#: emultempl/pe.em:424
#, c-format
msgid " --major-image-version <number> Set version number of the executable\n"
msgstr " --major-image-version <nomor> Set nomor versi dari executabel\n"
-#: emultempl/pe.em:377
+#: emultempl/pe.em:425
#, c-format
msgid " --major-os-version <number> Set minimum required OS version\n"
msgstr " --major-os-version <nomor> Set versi minimum yang dibutuhkan oleh OS\n"
-#: emultempl/pe.em:378
+#: emultempl/pe.em:426
#, c-format
msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n"
msgstr " --major-subsystem-version <nomor> Set minimum versi OS subsistem yang dibutuhkan\n"
-#: emultempl/pe.em:379
+#: emultempl/pe.em:427
#, c-format
msgid " --minor-image-version <number> Set revision number of the executable\n"
msgstr " --minor-image-version <nomor> Set nomor revisi dari executabel\n"
-#: emultempl/pe.em:380
+#: emultempl/pe.em:428
#, c-format
msgid " --minor-os-version <number> Set minimum required OS revision\n"
msgstr " --minor-os-version <nomor> Set versi OS minimum yang dibutuhkan\n"
-#: emultempl/pe.em:381
+#: emultempl/pe.em:429
#, c-format
msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
msgstr " --minor-subsystem-version <nomor> Set versi OS subsistem minimum yang dibutuhkan\n"
-#: emultempl/pe.em:382
+#: emultempl/pe.em:430
#, c-format
msgid " --section-alignment <size> Set section alignment\n"
msgstr " --section-alignment <besar> Set daerah alignment\n"
-#: emultempl/pe.em:383
+#: emultempl/pe.em:431
#, c-format
msgid " --stack <size> Set size of the initial stack\n"
msgstr " --stack <besar> Set ukuran dari inisial stack\n"
-#: emultempl/pe.em:384
+#: emultempl/pe.em:432
#, c-format
msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
msgstr " --subsistem <nama>[:<versi>] Set OS subsistem yang dibutuhkan [& versi]\n"
-#: emultempl/pe.em:385
+#: emultempl/pe.em:433
#, c-format
msgid " --support-old-code Support interworking with old code\n"
msgstr " --support-old-code Dukung antar-kerja dengan kode lama\n"
-#: emultempl/pe.em:386
+#: emultempl/pe.em:434
+#, c-format
+msgid " --[no-]leading-underscore Set explicit symbol underscore prefix mode\n"
+msgstr " --[no-]leading-underscore Set explicit symbol underscore prefix mode\n"
+
+#: emultempl/pe.em:435
#, c-format
msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
msgstr " --thumb-entry=<simbol> Set titik masukan ke Thumb <simbol>\n"
-#: emultempl/pe.em:388
+#: emultempl/pe.em:437
#, c-format
msgid " --add-stdcall-alias Export symbols with and without @nn\n"
msgstr " --add-stdcall-alias Expor simbol dengan dan tanpa @nn\n"
-#: emultempl/pe.em:389
+#: emultempl/pe.em:438
#, c-format
msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
msgstr " --disable-stdcall-fixup Jangan hubungkan _sym ke _sym@nn\n"
-#: emultempl/pe.em:390
+#: emultempl/pe.em:439
#, c-format
msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
msgstr " --enable-stdcall-fixup Hubungkan _sym ke _sym@nn tanpa peringatan\n"
-#: emultempl/pe.em:391
+#: emultempl/pe.em:440
#, c-format
msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
msgstr " --exclude-symbols sym,sym,... Exclude simbol dari expor otomatis\n"
-#: emultempl/pe.em:392
+#: emultempl/pe.em:441
+#, c-format
+msgid " --exclude-all-symbols Exclude all symbols from automatic export\n"
+msgstr " --exclude-all-symbols Exclude semua simbol dari expor otomatis\n"
+
+#: emultempl/pe.em:442
#, c-format
msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n"
msgstr " --exclude-libs lib,lib,... Exclude perpustakaan dari otomatis expor\n"
-#: emultempl/pe.em:393
+#: emultempl/pe.em:443
#, c-format
msgid " --exclude-modules-for-implib mod,mod,...\n"
msgstr " --exclude-modules-for-implib mod,mod,...\n"
-#: emultempl/pe.em:394
+#: emultempl/pe.em:444
#, c-format
msgid " Exclude objects, archive members from auto\n"
msgstr " Abaikan objek, anggota archive dari auto\n"
-#: emultempl/pe.em:395
+#: emultempl/pe.em:445
#, c-format
msgid " export, place into import library instead.\n"
msgstr " ekpor, lebih baik tempatkan kedalam perpustakan impor.\n"
-#: emultempl/pe.em:396
+#: emultempl/pe.em:446
#, c-format
msgid " --export-all-symbols Automatically export all globals to DLL\n"
msgstr " --export-all-symbols Otomatis expor seluruh global ke DLL\n"
-#: emultempl/pe.em:397
+#: emultempl/pe.em:447
#, c-format
msgid " --kill-at Remove @nn from exported symbols\n"
msgstr " --kill-at Hapus @nn dari simbol terexpor\n"
-#: emultempl/pe.em:398
+#: emultempl/pe.em:448
#, c-format
msgid " --out-implib <file> Generate import library\n"
msgstr " --out-implib <berkas> Buat perpustakaan impor\n"
-#: emultempl/pe.em:399
+#: emultempl/pe.em:449
#, c-format
msgid " --output-def <file> Generate a .DEF file for the built DLL\n"
msgstr " --output-def <berkas> Buat sebuah berkas .DEF untuk membuat DLL\n"
-#: emultempl/pe.em:400
+#: emultempl/pe.em:450
#, c-format
msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
msgstr " --warn-duplicate-exports Peringatkan tetang duplikasi expor.\n"
-#: emultempl/pe.em:401
+#: emultempl/pe.em:451
#, c-format
msgid ""
" --compat-implib Create backward compatible import libs;\n"
@@ -192,7 +204,7 @@ msgstr ""
" --compat-implib Buat backwar kompatibel impor libs;\n"
" buat __imp_<SIMBOL> juga.\n"
-#: emultempl/pe.em:403
+#: emultempl/pe.em:453
#, c-format
msgid ""
" --enable-auto-image-base Automatically choose image base for DLLs\n"
@@ -201,12 +213,12 @@ msgstr ""
" --enable-auto-image-base Otomatis pilih dasar image untuk DLL\n"
" kecuali pengguna menspesifikasikannya\n"
-#: emultempl/pe.em:405
+#: emultempl/pe.em:455
#, c-format
msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n"
msgstr " --disable-auto-image-base Jangan auto-choose image base. (default)\n"
-#: emultempl/pe.em:406
+#: emultempl/pe.em:456
#, c-format
msgid ""
" --dll-search-prefix=<string> When linking dynamically to a dll without\n"
@@ -217,21 +229,21 @@ msgstr ""
" sebuah imporlib, gunakan <string><basename>.dll\n"
" dalam kesukaan ke lib<nama dasar>.dll\n"
-#: emultempl/pe.em:409
+#: emultempl/pe.em:459
#, c-format
msgid ""
-" --enable-auto-import Do sophistcated linking of _sym to\n"
+" --enable-auto-import Do sophisticated linking of _sym to\n"
" __imp_sym for DATA references\n"
msgstr ""
" --enable-auto-import Lakukan penghubungan istimewa dari _sym ke\n"
" __imp_sym untuk referensi DATA\n"
-#: emultempl/pe.em:411
+#: emultempl/pe.em:461
#, c-format
msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n"
msgstr " --disable-auto-import Jangan auto-import DATA items dari DLL\n"
-#: emultempl/pe.em:412
+#: emultempl/pe.em:462
#, c-format
msgid ""
" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n"
@@ -242,7 +254,7 @@ msgstr ""
" menambahkan pseudo-relocations diselesaikan di\n"
" waktu-jalan.\n"
-#: emultempl/pe.em:415
+#: emultempl/pe.em:465
#, c-format
msgid ""
" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n"
@@ -251,7 +263,7 @@ msgstr ""
" --disable-runtime-pseudo-reloc Jangan tambahkan runtime pseudo-relocations untuk\n"
" auto-imported DATA.\n"
-#: emultempl/pe.em:417
+#: emultempl/pe.em:467
#, c-format
msgid ""
" --enable-extra-pe-debug Enable verbose debug output when building\n"
@@ -260,7 +272,7 @@ msgstr ""
" --enable-extra-pe-debug Aktifkan keluaran verbose debug ketika membuat\n"
" atau menghubungkan ke DLL (lebih tepatnya auto-import)\n"
-#: emultempl/pe.em:420
+#: emultempl/pe.em:470
#, c-format
msgid ""
" --large-address-aware Executable supports virtual addresses\n"
@@ -269,7 +281,7 @@ msgstr ""
" --large-address-aware Executable dukung alamat maya\n"
" lebih besar dari 2 gigabytes\n"
-#: emultempl/pe.em:422
+#: emultempl/pe.em:472
#, c-format
msgid ""
" --enable-long-section-names Use long COFF section names even in\n"
@@ -278,7 +290,7 @@ msgstr ""
" --enable-long-section-names Gunakan nama daerah COFF panjang bahkan dalam\n"
" berkas image eksekusi\n"
-#: emultempl/pe.em:424
+#: emultempl/pe.em:474
#, c-format
msgid ""
" --disable-long-section-names Never use long COFF section names, even\n"
@@ -287,7 +299,7 @@ msgstr ""
" --disable-long-section-names Jangan pernah menggunakan nama daerah COFF panjang,\n"
" bahkan dalam berkas objek.\n"
-#: emultempl/pe.em:426
+#: emultempl/pe.em:476
#, c-format
msgid ""
" --dynamicbase\t\t\t Image base address may be relocated using\n"
@@ -296,22 +308,22 @@ msgstr ""
" --dynamicbase\t\t\t Alamat dasar image mungkin direlokasi menggunakan\n"
"\t\t\t\t layout ruang alamat terandomisasi (ASLR)\n"
-#: emultempl/pe.em:428
+#: emultempl/pe.em:478
#, c-format
msgid " --forceinteg\t\t Code integrity checks are enforced\n"
msgstr " --forceinteg\t\t Pemeriksaan integritas kode diwajibkan\n"
-#: emultempl/pe.em:429
+#: emultempl/pe.em:479
#, c-format
msgid " --nxcompat\t\t Image is compatible with data execution prevention\n"
msgstr " --nxcompat\t\t Image yang kompatibel dengan eksekusi data prevention\n"
-#: emultempl/pe.em:430
+#: emultempl/pe.em:480
#, c-format
msgid " --no-isolation\t\t Image understands isolation but do not isolate the image\n"
msgstr " --no-isolation\t\t Image memahami isolasi tetapi tidak mengisolasi image itu sendiri\n"
-#: emultempl/pe.em:431
+#: emultempl/pe.em:481
#, c-format
msgid ""
" --no-seh\t\t\t Image does not use SEH. No SE handler may\n"
@@ -320,74 +332,73 @@ msgstr ""
" --no-seh\t\t\t Image tidak menggunakan SEH. Tidak ada SE handler yang\n"
"\t\t\t\t bisa dipanggil dalam image ini\n"
-#: emultempl/pe.em:433
+#: emultempl/pe.em:483
#, c-format
msgid " --no-bind\t\t\t Do not bind this image\n"
msgstr " --no-bind\t\t\t Jangan ikat image ini\n"
-#: emultempl/pe.em:434
+#: emultempl/pe.em:484
#, c-format
msgid " --wdmdriver\t\t Driver uses the WDM model\n"
msgstr " --wdmdriver\t\t Driver menggunakan model WDM\n"
-#: emultempl/pe.em:435
+#: emultempl/pe.em:485
#, c-format
-msgid " --tsaware \t\t Image is Terminal Server aware\n"
-msgstr " --tsaware \t\t Image memahami adanya Terminal Server\n"
+msgid " --tsaware Image is Terminal Server aware\n"
+msgstr " --tsaware Image memahami adanya Terminal Server\n"
-#: emultempl/pe.em:503
+#: emultempl/pe.em:614
msgid "%P: warning: bad version number in -subsystem option\n"
msgstr "%P: peringatan: nomor versi buruk dalam pilihan -subsistem\n"
-#: emultempl/pe.em:534
+#: emultempl/pe.em:639
msgid "%P%F: invalid subsystem type %s\n"
msgstr "%P%F: tipe subsistem %s tidak valid\n"
-#: emultempl/pe.em:573
+#: emultempl/pe.em:660
msgid "%P%F: invalid hex number for PE parameter '%s'\n"
msgstr "%P%F: nomor hex untuk parameter PE '%s' tidak valid\n"
-#: emultempl/pe.em:590
+#: emultempl/pe.em:677
msgid "%P%F: strange hex info for PE parameter '%s'\n"
msgstr "%P%F: informasi hex untuk paramter PE '%s' aneh\n"
-#: emultempl/pe.em:607
-#, c-format
-msgid "%s: Can't open base file %s\n"
-msgstr "%s: Tidak dapat membuka berkas dasar %s\n"
+#: emultempl/pe.em:692
+msgid "%F%P: cannot open base file %s\n"
+msgstr "%F%P: tidak dapat membuka berkas dasar %s\n"
-#: emultempl/pe.em:870
+#: emultempl/pe.em:965
msgid "%P: warning, file alignment > section alignment.\n"
msgstr "%P: peringatan, berkas alignment > daerah alignment.\n"
-#: emultempl/pe.em:899
+#: emultempl/pe.em:978
msgid "%P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?\n"
msgstr "%P: peringatan: --export-dynmic tidak didukung untuk target PE, apakah yang anda maksud --export-all-symbols?\n"
-#: emultempl/pe.em:963 emultempl/pe.em:990
+#: emultempl/pe.em:1054 emultempl/pe.em:1081
#, c-format
msgid "Warning: resolving %s by linking to %s\n"
msgstr "Peringatan: meresolf %s dengan menghubungkan ke %s\n"
-#: emultempl/pe.em:968 emultempl/pe.em:995
+#: emultempl/pe.em:1059 emultempl/pe.em:1086
msgid "Use --enable-stdcall-fixup to disable these warnings\n"
msgstr "Gunakan --enable-stdcall-fixup untuk menonaktifkan peringatan ini\n"
-#: emultempl/pe.em:969 emultempl/pe.em:996
+#: emultempl/pe.em:1060 emultempl/pe.em:1087
msgid "Use --disable-stdcall-fixup to disable these fixups\n"
msgstr "Gunakan --disable-stdcall-fixup untuk menonaktifkan perbaikan ini\n"
-#: emultempl/pe.em:1015
+#: emultempl/pe.em:1106
#, c-format
msgid "%C: Cannot get section contents - auto-import exception\n"
msgstr "%C: Tidak dpaat memperoleh isi daerah - auto-import exception\n"
-#: emultempl/pe.em:1055
+#: emultempl/pe.em:1146
#, c-format
msgid "Info: resolving %s by linking to %s (auto-import)\n"
msgstr "Info: meresolf %s dengan menghubungkan ke %s (auto-import)\n"
-#: emultempl/pe.em:1062
+#: emultempl/pe.em:1153
msgid ""
"%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line.\n"
"This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.\n"
@@ -395,28 +406,28 @@ msgstr ""
"%P: peringatan: auto-importing telah diaktifkan tanpa --enable-auto-import dispesifikasikan di baris perintah.\n"
"Ini seharusnya bekerja kecuali ini melibatkan konstan struktur data mereferensikan simbol dari auto-imported DLL.\n"
-#: emultempl/pe.em:1069 emultempl/pe.em:1268 emultempl/pe.em:1474 ldcref.c:488
-#: ldcref.c:586 ldmain.c:1107 ldmisc.c:285 pe-dll.c:683 pe-dll.c:1227
-#: pe-dll.c:1324
+#: emultempl/pe.em:1160 emultempl/pe.em:1366 emultempl/pe.em:1573 ldcref.c:490
+#: ldcref.c:588 ldmain.c:1158 ldmisc.c:290 pe-dll.c:706 pe-dll.c:1254
+#: pe-dll.c:1349
msgid "%B%F: could not read symbols: %E\n"
msgstr "%B%F: tidak dapat membaca simbol: %E\n"
-#: emultempl/pe.em:1149
+#: emultempl/pe.em:1242
msgid "%F%P: cannot perform PE operations on non PE output file '%B'.\n"
msgstr "%F%P: tidak dapat melakukan operasi PE di berkas keluaran bukan PE '%B'.\n"
-#: emultempl/pe.em:1515
+#: emultempl/pe.em:1616
#, c-format
msgid "Errors encountered processing file %s\n"
msgstr "Error ditemui dalam pemrosesan berkas %s\n"
-#: emultempl/pe.em:1538
+#: emultempl/pe.em:1639
#, c-format
msgid "Errors encountered processing file %s for interworking\n"
msgstr "Error ditemui dalam pemrosesan berkas %s untuk antar-kerja\n"
-#: emultempl/pe.em:1599 ldexp.c:539 ldlang.c:3276 ldlang.c:6636 ldlang.c:6667
-#: ldmain.c:1052
+#: emultempl/pe.em:1701 ldexp.c:581 ldlang.c:3458 ldlang.c:6992 ldlang.c:7023
+#: ldmain.c:1103
msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
msgstr "%P%F: bfd_link_hash_lookup gagal: %E\n"
@@ -432,7 +443,7 @@ msgstr "%X%P: cref_hash_lookup gagal: %E\n"
msgid "%X%P: cref alloc failed: %E\n"
msgstr "%X%P: cref alokasi gagal: %E\n"
-#: ldcref.c:364
+#: ldcref.c:366
#, c-format
msgid ""
"\n"
@@ -443,25 +454,25 @@ msgstr ""
"Tabel Referensi Silang\n"
"\n"
-#: ldcref.c:365
+#: ldcref.c:367
msgid "Symbol"
msgstr "Simbol"
-#: ldcref.c:373
+#: ldcref.c:375
#, c-format
msgid "File\n"
msgstr "Berkas\n"
-#: ldcref.c:377
+#: ldcref.c:379
#, c-format
msgid "No symbols\n"
msgstr "Tidak ada simbol\n"
-#: ldcref.c:530
+#: ldcref.c:532
msgid "%P: symbol `%T' missing from main hash table\n"
msgstr "%P: simbol `%T' hilang dari tabel hash utama\n"
-#: ldcref.c:648 ldcref.c:655 ldmain.c:1141 ldmain.c:1148
+#: ldcref.c:650 ldcref.c:657 ldmain.c:1192 ldmain.c:1199
msgid "%B%F: could not read relocs: %E\n"
msgstr "%B%F: tidak dapat membaca relokasi: %E\n"
@@ -469,7 +480,7 @@ msgstr "%B%F: tidak dapat membaca relokasi: %E\n"
#. in OUTSECNAME. This reloc is from a section which is
#. mapped into a section from which references to OUTSECNAME
#. are prohibited. We must report an error.
-#: ldcref.c:682
+#: ldcref.c:684
msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
msgstr "%X%C: dilarang menyilang referensi dari %s ke `%T' dalam %s\n"
@@ -481,15 +492,15 @@ msgstr "%P%X: Relokasi berbeda digunakan dalam set %s\n"
msgid "%P%X: Different object file formats composing set %s\n"
msgstr "%P%X: Format berkas objek berbeda menyusun set %s\n"
-#: ldctor.c:279 ldctor.c:293
+#: ldctor.c:281 ldctor.c:295
msgid "%P%X: %s does not support reloc %s for set %s\n"
msgstr "%P%X: %s tidak melayani relokasi %s untuk set %s\n"
-#: ldctor.c:314
+#: ldctor.c:316
msgid "%P%X: Unsupported size %d for set %s\n"
msgstr "%P%X: Ukuran %s tidak didukung untuk set %s\n"
-#: ldctor.c:335
+#: ldctor.c:337
msgid ""
"\n"
"Set Symbol\n"
@@ -499,177 +510,181 @@ msgstr ""
"Set Simbol\n"
"\n"
-#: ldemul.c:239
+#: ldemul.c:265
#, c-format
msgid "%S SYSLIB ignored\n"
msgstr "%S SYSLIB diabaikan\n"
-#: ldemul.c:245
+#: ldemul.c:271
#, c-format
msgid "%S HLL ignored\n"
msgstr "%S HLL diabaikan\n"
-#: ldemul.c:265
+#: ldemul.c:291
msgid "%P: unrecognised emulation mode: %s\n"
msgstr "%P: mode emulasi tidak dikenal: %s\n"
-#: ldemul.c:266
+#: ldemul.c:292
msgid "Supported emulations: "
msgstr "Emulasi yang didukung: "
-#: ldemul.c:308
+#: ldemul.c:334
#, c-format
msgid " no emulation specific options.\n"
msgstr " tidak ada pilihan spesifik emulasi.\n"
-#: ldexp.c:352
+#: ldexp.c:314
+msgid "%P: warning: address of `%s' isn't multiple of maximum page size\n"
+msgstr "%P: warning: address of `%s' isn't multiple of maximum page size\n"
+
+#: ldexp.c:407
#, c-format
msgid "%F%S %% by zero\n"
msgstr "%F%S %% dengan nol\n"
-#: ldexp.c:360
+#: ldexp.c:417
#, c-format
msgid "%F%S / by zero\n"
msgstr "%F%S / dengan nol\n"
-#: ldexp.c:553
+#: ldexp.c:591
#, c-format
msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
msgstr "%X%S: simbol tidak ditemukan `%s' direferensikan dalam expresi\n"
-#: ldexp.c:564
+#: ldexp.c:605
#, c-format
msgid "%F%S: undefined symbol `%s' referenced in expression\n"
msgstr "%F%S: simbol `%s' tidak terdefinisi direferensikan dalam ekspresi\n"
-#: ldexp.c:585 ldexp.c:602 ldexp.c:629
+#: ldexp.c:626 ldexp.c:643 ldexp.c:670
#, c-format
msgid "%F%S: undefined section `%s' referenced in expression\n"
msgstr "%F%S: daerah `%s' tidak terdefinisi direferensikan dalam ekspresi\n"
-#: ldexp.c:656 ldexp.c:669
+#: ldexp.c:697 ldexp.c:711
#, c-format
msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
msgstr "%F%S: daerah `%s' MEMORY tidak terdefinisi direferensikan dalam ekspresi\n"
-#: ldexp.c:680
+#: ldexp.c:722
#, c-format
msgid "%F%S: unknown constant `%s' referenced in expression\n"
msgstr "%F%S: konstan `%s' tidak diketahui direferensikan dalam ekspresi\n"
-#: ldexp.c:741
+#: ldexp.c:787
#, c-format
msgid "%F%S can not PROVIDE assignment to location counter\n"
msgstr "%F%S tidak dapat MENYEDIAKAN assignment ke lokasi counter\n"
-#: ldexp.c:755
+#: ldexp.c:805
#, c-format
msgid "%F%S invalid assignment to location counter\n"
msgstr "%F%S assignment tidak valid ke lokasi counter\n"
-#: ldexp.c:758
+#: ldexp.c:808
#, c-format
msgid "%F%S assignment to location counter invalid outside of SECTION\n"
msgstr "%F%S assignment ke lokasi counter tidak valid diluar dari DAERAH\n"
-#: ldexp.c:767
+#: ldexp.c:821
msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
msgstr "%F%S tidak dapat memindahkan lokasi counter backward (dari %V ke %V)\n"
-#: ldexp.c:806
+#: ldexp.c:882
msgid "%P%F:%s: hash creation failed\n"
msgstr "%P%F:%s: pembuatan hash gagal\n"
-#: ldexp.c:1065 ldexp.c:1090 ldexp.c:1149
+#: ldexp.c:1191 ldexp.c:1216 ldexp.c:1276
#, c-format
msgid "%F%S: nonconstant expression for %s\n"
msgstr "%F%S: ekspresi tidak konstan untuk %s\n"
-#: ldfile.c:137
+#: ldfile.c:142
#, c-format
msgid "attempt to open %s failed\n"
msgstr "mencoba untuk membuka %s gagal\n"
-#: ldfile.c:139
+#: ldfile.c:144
#, c-format
msgid "attempt to open %s succeeded\n"
msgstr "mencoba untuk membuka %s sukses\n"
-#: ldfile.c:145
+#: ldfile.c:150
msgid "%F%P: invalid BFD target `%s'\n"
msgstr "%F%P: target BFD `%s' tidak valid\n"
-#: ldfile.c:254 ldfile.c:283
+#: ldfile.c:267 ldfile.c:296
msgid "%P: skipping incompatible %s when searching for %s\n"
msgstr "%P: melewatkan tidak kompatibel %s ketika mencari untuk %s\n"
-#: ldfile.c:267
+#: ldfile.c:280
msgid "%F%P: attempted static link of dynamic object `%s'\n"
msgstr "%F%P: mencoba menhubungkan statik dari objek dinamis `%s'\n"
-#: ldfile.c:379
-msgid "%F%P: %s (%s): No such file: %E\n"
-msgstr "%F%P: %s (%s): Tidak ada berkas seperti itu: %E\n"
+#: ldfile.c:426
+msgid "%P: cannot find %s (%s): %E\n"
+msgstr "%P: tidak dapat menemukan %s (%s): %E\n"
-#: ldfile.c:382
-msgid "%F%P: %s: No such file: %E\n"
-msgstr "%F%P: %s: Tidak ada berkas seperti itu: %E\n"
+#: ldfile.c:429
+msgid "%P: cannot find %s: %E\n"
+msgstr "%P: tidak dapat menemukan %s: %E\n"
-#: ldfile.c:412
-msgid "%F%P: cannot find %s inside %s\n"
-msgstr "%F%P: tidak dapat menemukan %s didalam %s\n"
+#: ldfile.c:464
+msgid "%P: cannot find %s inside %s\n"
+msgstr "%P: tidak dapat menemukan %s didalam %s\n"
-#: ldfile.c:415
-msgid "%F%P: cannot find %s\n"
-msgstr "%F%P: tidak dapat menemukan %s\n"
+#: ldfile.c:467
+msgid "%P: cannot find %s\n"
+msgstr "%P: tidak dapat menemukan %s\n"
-#: ldfile.c:431 ldfile.c:449
+#: ldfile.c:486 ldfile.c:504
#, c-format
msgid "cannot find script file %s\n"
msgstr "tidak dapat menemukan berkas script %s\n"
-#: ldfile.c:433 ldfile.c:451
+#: ldfile.c:488 ldfile.c:506
#, c-format
msgid "opened script file %s\n"
msgstr "membukan berkas script %s\n"
-#: ldfile.c:586
+#: ldfile.c:636
msgid "%P%F: cannot open linker script file %s: %E\n"
msgstr "%P%F: tidak dapat membukan berkas script penghubung %s: %E\n"
-#: ldfile.c:651
+#: ldfile.c:701
msgid "%P%F: cannot represent machine `%s'\n"
msgstr "%P%F: tidak dapat merepresent mesin `%s'\n"
-#: ldlang.c:1142 ldlang.c:1184 ldlang.c:3006
+#: ldlang.c:1221 ldlang.c:1263 ldlang.c:3143
msgid "%P%F: can not create hash table: %E\n"
msgstr "%P%F: tidak dapat membuat tabel hash: %E\n"
-#: ldlang.c:1235
+#: ldlang.c:1314
msgid "%P:%S: warning: redeclaration of memory region `%s'\n"
msgstr "%P:%S: peringatan: redeklarasi dari daerah memori `%s'\n"
-#: ldlang.c:1241
+#: ldlang.c:1320
msgid "%P:%S: warning: memory region `%s' not declared\n"
msgstr "%P:%S: peringatan: daerah memori `%s' tidak dideklarasikan\n"
-#: ldlang.c:1275
+#: ldlang.c:1354
msgid "%F%P:%S: error: alias for default memory region\n"
msgstr "%F%P:%S: error: alias untuk daerah memori baku\n"
-#: ldlang.c:1286
+#: ldlang.c:1365
msgid "%F%P:%S: error: redefinition of memory region alias `%s'\n"
msgstr "%F%P:%S: error: redefinisi dari daerah memori alias `%s'\n"
-#: ldlang.c:1293
+#: ldlang.c:1372
msgid "%F%P:%S: error: memory region `%s' for alias `%s' does not exist\n"
msgstr "%F%P:%S: error: daerah memori `%s' untuk alias `%s' tidak ada\n"
-#: ldlang.c:1345 ldlang.c:1384
+#: ldlang.c:1424 ldlang.c:1463
msgid "%P%F: failed creating section `%s': %E\n"
msgstr "%P%F: gagal membuat daerah `%s': %E\n"
-#: ldlang.c:1927
+#: ldlang.c:2025
#, c-format
msgid ""
"\n"
@@ -680,7 +695,7 @@ msgstr ""
"Daerah masukan diabaikan\n"
"\n"
-#: ldlang.c:1935
+#: ldlang.c:2033
msgid ""
"\n"
"Memory Configuration\n"
@@ -690,23 +705,23 @@ msgstr ""
"Konfigurasi memori\n"
"\n"
-#: ldlang.c:1937
+#: ldlang.c:2035
msgid "Name"
msgstr "Nama"
-#: ldlang.c:1937
+#: ldlang.c:2035
msgid "Origin"
msgstr "Asal"
-#: ldlang.c:1937
+#: ldlang.c:2035
msgid "Length"
msgstr "Panjang"
-#: ldlang.c:1937
+#: ldlang.c:2035
msgid "Attributes"
msgstr "Atribut"
-#: ldlang.c:1977
+#: ldlang.c:2075
#, c-format
msgid ""
"\n"
@@ -717,178 +732,178 @@ msgstr ""
"Scrip penghubung dan peta memori\n"
"\n"
-#: ldlang.c:2045
+#: ldlang.c:2141
msgid "%P%F: Illegal use of `%s' section\n"
msgstr "%P%F: Penggunaan ilegal dari daerah `%s'\n"
-#: ldlang.c:2054
+#: ldlang.c:2150
msgid "%P%F: output format %s cannot represent section called %s\n"
msgstr "%P%F: format keluaran %s tidak dapat merepresentasikan daerah disebut %s\n"
-#: ldlang.c:2602
+#: ldlang.c:2728
msgid "%B: file not recognized: %E\n"
msgstr "%B: berkas tidak dikenali: %E\n"
-#: ldlang.c:2603
+#: ldlang.c:2729
msgid "%B: matching formats:"
msgstr "%B: format cocok:"
-#: ldlang.c:2610
+#: ldlang.c:2736
msgid "%F%B: file not recognized: %E\n"
msgstr "%F%B: berkas tidak dikenali: %E\n"
-#: ldlang.c:2677
+#: ldlang.c:2810
msgid "%F%B: member %B in archive is not an object\n"
msgstr "%F%B: anggota %B dalam archive bukan sebuah objek\n"
-#: ldlang.c:2688 ldlang.c:2702
+#: ldlang.c:2825 ldlang.c:2839
msgid "%F%B: could not read symbols: %E\n"
msgstr "%F%B: tidak dapat membaca simbol: %E\n"
-#: ldlang.c:2976
+#: ldlang.c:3113
msgid "%P: warning: could not find any targets that match endianness requirement\n"
msgstr "%P: peringatan: tidak dapat menemukan target apapun yan cocok dengan endianness yang dibutuhkan\n"
-#: ldlang.c:2990
+#: ldlang.c:3127
msgid "%P%F: target %s not found\n"
msgstr "%P%F: target %s tidak ditemukan\n"
-#: ldlang.c:2992
+#: ldlang.c:3129
msgid "%P%F: cannot open output file %s: %E\n"
msgstr "%P%F: tidak dapat membuka berkas keluaran %s: %E\n"
-#: ldlang.c:2998
+#: ldlang.c:3135
msgid "%P%F:%s: can not make object file: %E\n"
msgstr "%P%F:%s: tidak dapat membuat berkas objek: %E\n"
-#: ldlang.c:3002
+#: ldlang.c:3139
msgid "%P%F:%s: can not set architecture: %E\n"
msgstr "%P%F:%s: tidak dapat menset arsitektur: %E\n"
-#: ldlang.c:3143
+#: ldlang.c:3309
msgid "%P: warning: %s contains output sections; did you forget -T?\n"
msgstr "%P: peringatan: %s berisi daerah keluaran; apakah anda melupakan -T?\n"
-#: ldlang.c:3169
+#: ldlang.c:3350
msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
msgstr "%P%F: bfd_hash_lookup gagal membuat simbol %s\n"
-#: ldlang.c:3187
+#: ldlang.c:3368
msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
msgstr "%P%F: bfd_hash_allocate gagal membuat simbol %s\n"
-#: ldlang.c:3566
+#: ldlang.c:3764
msgid "%F%P: %s not found for insert\n"
msgstr "%F%P: %s tidak ditemukan untuk insert\n"
-#: ldlang.c:3781
+#: ldlang.c:3979
msgid " load address 0x%V"
msgstr " alamat beban 0x%V"
-#: ldlang.c:4052
+#: ldlang.c:4254
msgid "%W (size before relaxing)\n"
msgstr "%W (ukuran sebelum relaxing)\n"
-#: ldlang.c:4143
+#: ldlang.c:4345
#, c-format
msgid "Address of section %s set to "
msgstr "Alamat dari daerah %s diset ke "
-#: ldlang.c:4296
+#: ldlang.c:4498
#, c-format
msgid "Fail with %d\n"
msgstr "Gagal dengan %d\n"
-#: ldlang.c:4579
+#: ldlang.c:4785
msgid "%X%P: section %s loaded at [%V,%V] overlaps section %s loaded at [%V,%V]\n"
msgstr "%X%P: daerah %s dimuat di [%V,%V] daerah overlaps %s dimuat di [%V,%V]\n"
-#: ldlang.c:4595
+#: ldlang.c:4801
msgid "%X%P: region `%s' overflowed by %ld bytes\n"
msgstr "%X%P: daerah `%s' overflowed dengan %ld bytes\n"
-#: ldlang.c:4618
+#: ldlang.c:4824
msgid "%X%P: address 0x%v of %B section `%s' is not within region `%s'\n"
msgstr "%X%P: alamat 0x%v dari %B daerah `%s' tidak dalam daerah `%s'\n"
-#: ldlang.c:4629
+#: ldlang.c:4835
msgid "%X%P: %B section `%s' will not fit in region `%s'\n"
msgstr "%X%P: %B daerah `%s' tidak akan memenuhi dalam daerah `%s'\n"
-#: ldlang.c:4669
+#: ldlang.c:4892
#, c-format
msgid "%F%S: non constant or forward reference address expression for section %s\n"
msgstr "%F%S: bukan constant atau ekspresi alamat referensi kedepan untuk daerah %s\n"
-#: ldlang.c:4694
+#: ldlang.c:4917
msgid "%P%X: Internal error on COFF shared library section %s\n"
msgstr "%P%X: Internal error di COFF daerah library terbagi %s\n"
-#: ldlang.c:4753
+#: ldlang.c:4974
msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
msgstr "%P%F: error: bukan daerah memori dispesifikasikan untuk daerah loadabel `%s'\n"
-#: ldlang.c:4758
+#: ldlang.c:4979
msgid "%P: warning: no memory region specified for loadable section `%s'\n"
msgstr "%P: peringatan: bukan daerah memori dispesifikasikan untuk daerah loadable `%s'\n"
-#: ldlang.c:4780
+#: ldlang.c:5001
msgid "%P: warning: changing start of section %s by %lu bytes\n"
msgstr "%P: peringatan: mengubah awal dari daerah %s dengan %lu bytes\n"
-#: ldlang.c:4862
+#: ldlang.c:5078
msgid "%P: warning: dot moved backwards before `%s'\n"
msgstr "%P: peringatan: dot dipindahkan kebelakang sebelum `%s'\n"
-#: ldlang.c:5035
+#: ldlang.c:5244
msgid "%P%F: can't relax section: %E\n"
msgstr "%P%F: tidak dapat relaks daerah: %E\n"
-#: ldlang.c:5357
+#: ldlang.c:5573
msgid "%F%P: invalid data statement\n"
msgstr "%F%P: statemen data tidak valid\n"
-#: ldlang.c:5390
+#: ldlang.c:5606
msgid "%F%P: invalid reloc statement\n"
msgstr "%F%P: relokasi statement tidak valid\n"
-#: ldlang.c:5509
+#: ldlang.c:5725
msgid "%P%F: gc-sections requires either an entry or an undefined symbol\n"
msgstr "%P%F: gc-section membutuhkan baik sebuah masukan atau sebuah simbol tidak terdefinisi\n"
-#: ldlang.c:5534
+#: ldlang.c:5750
msgid "%P%F:%s: can't set start address\n"
msgstr "%P%F:%s: tidak dapat menset awal alamat\n"
-#: ldlang.c:5547 ldlang.c:5566
+#: ldlang.c:5763 ldlang.c:5782
msgid "%P%F: can't set start address\n"
msgstr "%P%F: tidak dapt menset awal alamat\n"
-#: ldlang.c:5559
+#: ldlang.c:5775
msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
msgstr "%P: peringatan: tidak dapat menemukan simbol masukan %s; default ke %V\n"
-#: ldlang.c:5571
+#: ldlang.c:5787
msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
msgstr "%P: peringatan: tidak dapat menemukan simbol masukan %s; tidak menset awal alamat\n"
-#: ldlang.c:5621
+#: ldlang.c:5842
msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"
msgstr "%P%F: Relocatable linking dengan relokasi dari format %s (%B) ke format %s (%B) tidak didukung\n"
-#: ldlang.c:5631
+#: ldlang.c:5852
msgid "%P%X: %s architecture of input file `%B' is incompatible with %s output\n"
msgstr "%P%X: %s arsitektur dari berkas masukan `%b' tidak kompatibel dengan keluaran %s\n"
-#: ldlang.c:5653
+#: ldlang.c:5874
msgid "%P%X: failed to merge target specific data of file %B\n"
msgstr "%P%X: gagal menggabungkan target spesifik data dari berkas %B\n"
-#: ldlang.c:5724
+#: ldlang.c:5945
msgid "%P%F: Could not define common symbol `%T': %E\n"
msgstr "%P%F: tidak dapat membaca simbol `%T': %E\n"
-#: ldlang.c:5736
+#: ldlang.c:5957
msgid ""
"\n"
"Allocating common symbols\n"
@@ -896,7 +911,7 @@ msgstr ""
"\n"
"Mengalokasikan simbol umum\n"
-#: ldlang.c:5737
+#: ldlang.c:5958
msgid ""
"Common symbol size file\n"
"\n"
@@ -904,154 +919,158 @@ msgstr ""
"Simbol umum ukuran berkas\n"
"\n"
-#: ldlang.c:5878
+#: ldlang.c:6104
msgid "%P%F: invalid syntax in flags\n"
msgstr "%P%F: sintaks dalam tanda tidak valid\n"
-#: ldlang.c:6270
+#: ldlang.c:6566
msgid "%P%F: Failed to create hash table\n"
msgstr "%P%F: Gagal membuat tabel hash\n"
-#: ldlang.c:6549
+#: ldlang.c:6589
+msgid "%P%F: %s: plugin reported error after all symbols read\n"
+msgstr "%P%F: %s: plugin reported error after all symbols read\n"
+
+#: ldlang.c:6905
msgid "%P%F: multiple STARTUP files\n"
msgstr "%P%F: multiple berkas STARTUP\n"
-#: ldlang.c:6597
+#: ldlang.c:6951
msgid "%X%P:%S: section has both a load address and a load region\n"
msgstr "%X%P:%S: bagian memiliki baik alamat beban dan daerah beban\n"
-#: ldlang.c:6844
+#: ldlang.c:7138
+msgid "%X%P:%S: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
+msgstr "%X%P:%S: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
+
+#: ldlang.c:7210
msgid "%F%P: no sections assigned to phdrs\n"
msgstr "%F%P: tidak ada daerah ditempatkan ke phdrs\n"
-#: ldlang.c:6881
+#: ldlang.c:7248
msgid "%F%P: bfd_record_phdr failed: %E\n"
msgstr "%F%P: bfd_record_phdr gagal: %E\n"
-#: ldlang.c:6901
+#: ldlang.c:7268
msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
msgstr "%X%P: daerah `%s' ditempatkan ke phdr `%s' tidak-ada\n"
-#: ldlang.c:7299
+#: ldlang.c:7677
msgid "%X%P: unknown language `%s' in version information\n"
msgstr "%X%P: bahasa tidak diketahui `%s' dalam informasi versi\n"
-#: ldlang.c:7441
+#: ldlang.c:7822
msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
msgstr "%X%P: versi anonim tag tidak dapat dikombinasikan dengan versi lainnya\n"
-#: ldlang.c:7450
+#: ldlang.c:7831
msgid "%X%P: duplicate version tag `%s'\n"
msgstr "%X%P: duplikasi versi tag `%s'\n"
-#: ldlang.c:7470 ldlang.c:7479 ldlang.c:7496 ldlang.c:7506
+#: ldlang.c:7852 ldlang.c:7861 ldlang.c:7879 ldlang.c:7889
msgid "%X%P: duplicate expression `%s' in version information\n"
msgstr "%X%P: duplikasi ekspresi `%s' dalam informasi versi\n"
-#: ldlang.c:7546
+#: ldlang.c:7929
msgid "%X%P: unable to find version dependency `%s'\n"
msgstr "%X%P: tidak dapat menemukan dependensi versi `%s'\n"
-#: ldlang.c:7568
+#: ldlang.c:7952
msgid "%X%P: unable to read .exports section contents\n"
msgstr "%X%P: tidak dapat membaca isi daerah .exports\n"
-#: ldmain.c:233
+#: ldlang.c:8076
+msgid "%X%P: unknown feature `%s'\n"
+msgstr "%X%P: tipe feature `%s' tidak dikenal\n"
+
+#: ldmain.c:239
msgid "%X%P: can't set BFD default target to `%s': %E\n"
msgstr "%X%P: tidak dapat menset BFD default target ke `%s': %E\n"
-#: ldmain.c:300
-msgid "%P%F: -r and -shared may not be used together\n"
-msgstr "%P%F: -r dan -shared tidak boleh digunakan bersama\n"
-
-#: ldmain.c:343
-msgid "%P%F: -F may not be used without -shared\n"
-msgstr "%P%F: -F tidak boleh digunakan tanpa -shared\n"
-
-#: ldmain.c:345
-msgid "%P%F: -f may not be used without -shared\n"
-msgstr "%P%F: -f tidak boleh digunakan tanpa -shared\n"
+#: ldmain.c:303 lexsup.c:1071
+msgid "%P%F: %s: error loading plugin\n"
+msgstr "%P%F: %s: error loading plugin\n"
-#: ldmain.c:393
+#: ldmain.c:340
msgid "using external linker script:"
msgstr "menggunakan scrip penghubung eksternal:"
-#: ldmain.c:395
+#: ldmain.c:342
msgid "using internal linker script:"
msgstr "menggunakan scrip penghubung internal:"
-#: ldmain.c:429
+#: ldmain.c:379
msgid "%P%F: no input files\n"
msgstr "%P%F: bukan berkas masukan\n"
-#: ldmain.c:433
+#: ldmain.c:383
msgid "%P: mode %s\n"
msgstr "%P: mode %s\n"
-#: ldmain.c:449
+#: ldmain.c:399
msgid "%P%F: cannot open map file %s: %E\n"
msgstr "%P%F: tidak dapat membuka berkas map %s: %E\n"
-#: ldmain.c:481
+#: ldmain.c:431
msgid "%P: link errors found, deleting executable `%s'\n"
msgstr "%P: link error ditemukan, menghapus executabel `%s'\n"
-#: ldmain.c:490
+#: ldmain.c:440
msgid "%F%B: final close failed: %E\n"
msgstr "%F%B: penutupan akhir gagal: %E\n"
-#: ldmain.c:516
+#: ldmain.c:466
msgid "%X%P: unable to open for source of copy `%s'\n"
msgstr "%X%P: tidak dapat membuka untuk sumber dari penyalinan `%s'\n"
-#: ldmain.c:519
+#: ldmain.c:469
msgid "%X%P: unable to open for destination of copy `%s'\n"
msgstr "%X%P: tidak dapat membuka untuk tujuan dari penyalinan `%s'\n"
-#: ldmain.c:526
+#: ldmain.c:476
msgid "%P: Error writing file `%s'\n"
msgstr "%P: Error menulis berkas `%s'\n"
-#: ldmain.c:531 pe-dll.c:1687
+#: ldmain.c:481 pe-dll.c:1739
#, c-format
msgid "%P: Error closing file `%s'\n"
msgstr "%P: Error menutup berkas `%s'\n"
-#: ldmain.c:547
+#: ldmain.c:498
#, c-format
msgid "%s: total time in link: %ld.%06ld\n"
msgstr "%s: total waktu dalam link: %ld.%06ld\n"
-#: ldmain.c:550
+#: ldmain.c:501
#, c-format
msgid "%s: data size %ld\n"
msgstr "%s: ukuran data %ld\n"
-#: ldmain.c:633
+#: ldmain.c:585
msgid "%P%F: missing argument to -m\n"
msgstr "%P%F: hilang argumen ke -m\n"
-#: ldmain.c:680 ldmain.c:699 ldmain.c:730
+#: ldmain.c:633 ldmain.c:653 ldmain.c:685
msgid "%P%F: bfd_hash_table_init failed: %E\n"
msgstr "%P%F: bfd_hash_table_init gagal: %E\n"
-#: ldmain.c:684 ldmain.c:703
+#: ldmain.c:637 ldmain.c:657
msgid "%P%F: bfd_hash_lookup failed: %E\n"
msgstr "%P%F: bfd_hash_lookup gagal: %E\n"
-#: ldmain.c:717
+#: ldmain.c:671
msgid "%X%P: error: duplicate retain-symbols-file\n"
msgstr "%X%P: error: duplikasi retain-symbols-file\n"
-#: ldmain.c:760
+#: ldmain.c:715
msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
msgstr "%P%F: bfd_hash_lookup untuk insertion gagal: %E\n"
-#: ldmain.c:765
+#: ldmain.c:720
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
msgstr "%P: `-retain-symbols-file' memaksa `-s' dana `-S'\n"
-#: ldmain.c:829
+#: ldmain.c:820
#, c-format
msgid ""
"Archive member included because of file (symbol)\n"
@@ -1060,178 +1079,177 @@ msgstr ""
"Anggota archive dimasukan karena berkas (simbol)\n"
"\n"
-#: ldmain.c:899
+#: ldmain.c:926
msgid "%X%C: multiple definition of `%T'\n"
msgstr "%X%X: multiple definisi dari `%T'\n"
-#: ldmain.c:902
+#: ldmain.c:929
msgid "%D: first defined here\n"
msgstr "%D: pertama didefinisikan disini\n"
-#: ldmain.c:906
+#: ldmain.c:933
msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
msgstr "%P: Menonaktifkan relaksasi: ini tidak akan bekerja dengan multiple definisi\n"
-#: ldmain.c:936
+#: ldmain.c:987
msgid "%B: warning: definition of `%T' overriding common\n"
msgstr "%B: peringatan: definisi dari `%T' memaksa umum\n"
-#: ldmain.c:939
+#: ldmain.c:990
msgid "%B: warning: common is here\n"
msgstr "%B: peringatan: umum disini\n"
-#: ldmain.c:946
+#: ldmain.c:997
msgid "%B: warning: common of `%T' overridden by definition\n"
msgstr "%B: peringatan: umum dari `%T' dipaksa oleh definisi\n"
-#: ldmain.c:949
+#: ldmain.c:1000
msgid "%B: warning: defined here\n"
msgstr "%B: peringatan: terdefinisi disini\n"
-#: ldmain.c:956
+#: ldmain.c:1007
msgid "%B: warning: common of `%T' overridden by larger common\n"
msgstr "%B: peringatan: umum dari `%T' dipaksa oleh umum lebih besar\n"
-#: ldmain.c:959
+#: ldmain.c:1010
msgid "%B: warning: larger common is here\n"
msgstr "%B: peringatan: umum lebih besar disini\n"
-#: ldmain.c:963
+#: ldmain.c:1014
msgid "%B: warning: common of `%T' overriding smaller common\n"
msgstr "%B: peringatan: umum dari `%T' memaksa umum lebih kecil\n"
-#: ldmain.c:966
+#: ldmain.c:1017
msgid "%B: warning: smaller common is here\n"
msgstr "%B: peringatan: umum lebih kecil disini\n"
-#: ldmain.c:970
+#: ldmain.c:1021
msgid "%B: warning: multiple common of `%T'\n"
msgstr "%B: peringatan: multiple umum dari `%T'\n"
-#: ldmain.c:972
+#: ldmain.c:1023
msgid "%B: warning: previous common is here\n"
msgstr "%B: peringatan: umum sebelumnya disini\n"
-#: ldmain.c:992 ldmain.c:1030
+#: ldmain.c:1043 ldmain.c:1081
msgid "%P: warning: global constructor %s used\n"
msgstr "%P: peringatan: global konstruktor %s digunakan\n"
-#: ldmain.c:1040
+#: ldmain.c:1091
msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
msgstr "%P%F: BFD backed error: BFD_RELOC_CTOR tidak didukung\n"
#. We found a reloc for the symbol we are looking for.
-#: ldmain.c:1094 ldmain.c:1096 ldmain.c:1098 ldmain.c:1116 ldmain.c:1161
+#: ldmain.c:1145 ldmain.c:1147 ldmain.c:1149 ldmain.c:1167 ldmain.c:1212
msgid "warning: "
msgstr "peringatan: "
-#: ldmain.c:1196
+#: ldmain.c:1248
msgid "%F%P: bfd_hash_table_init failed: %E\n"
msgstr "%F%P: bfd_hash_table_init gagal: %E\n"
-#: ldmain.c:1203
+#: ldmain.c:1255
msgid "%F%P: bfd_hash_lookup failed: %E\n"
msgstr "%F%P: bfd_hash_lookup gagal: %E\n"
-#: ldmain.c:1224
+#: ldmain.c:1276
msgid "%X%C: undefined reference to `%T'\n"
msgstr "%X%C: referensi ke `%T' tidak terdefinisi\n"
-#: ldmain.c:1227
+#: ldmain.c:1279
msgid "%C: warning: undefined reference to `%T'\n"
msgstr "%C: peringatan: referensi ke `%T' tidak terdefinisi\n"
-#: ldmain.c:1233
+#: ldmain.c:1285
msgid "%X%D: more undefined references to `%T' follow\n"
msgstr "%X%D: lebih referensi ke `%T' tidak terdefinisi mengikuti\n"
-#: ldmain.c:1236
+#: ldmain.c:1288
msgid "%D: warning: more undefined references to `%T' follow\n"
msgstr "%D: peringatan: lebih referensi ke `%T' tidak terdefinisi mengikuti\n"
-#: ldmain.c:1247
+#: ldmain.c:1299
msgid "%X%B: undefined reference to `%T'\n"
msgstr "%X%B: referensi ke `%T' tidak terdefinisi\n"
-#: ldmain.c:1250
+#: ldmain.c:1302
msgid "%B: warning: undefined reference to `%T'\n"
msgstr "%B: peringatan: referensi ke `%T' tidak terdefinisi\n"
-#: ldmain.c:1256
+#: ldmain.c:1308
msgid "%X%B: more undefined references to `%T' follow\n"
msgstr "%X%B: lebih referensi ke `%T' tidak terdefinisi mengikuti\n"
-#: ldmain.c:1259
+#: ldmain.c:1311
msgid "%B: warning: more undefined references to `%T' follow\n"
msgstr "%B: peringatan: lebih referensi ke `%T' tidak terdefinisi mengikuti\n"
-#: ldmain.c:1298
+#: ldmain.c:1350
msgid " additional relocation overflows omitted from the output\n"
msgstr " tambahan relokasi overflow diabaikan dari keluaran\n"
-#: ldmain.c:1311
+#: ldmain.c:1363
msgid " relocation truncated to fit: %s against undefined symbol `%T'"
msgstr " relokasi dipotong supaya pas: %s terhadap simbol `%T' tidak terdefinisi"
-#: ldmain.c:1316
+#: ldmain.c:1368
msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"
msgstr " relokasi dipotong supaya pas: %s terhadap simbol `%T' terdefinisi dalam daerah %A dalam %B"
-#: ldmain.c:1328
+#: ldmain.c:1380
msgid " relocation truncated to fit: %s against `%T'"
msgstr " relokasi dipotong supaya pas: %s terhadap `%T'"
-#: ldmain.c:1345
-#, c-format
-msgid "%X%C: dangerous relocation: %s\n"
-msgstr "%X%C: relokasi berbahaya: %s\n"
+#: ldmain.c:1397
+msgid "%X%H: dangerous relocation: %s\n"
+msgstr "%X%H: relokasi berbahaya: %s\n"
-#: ldmain.c:1360
-msgid "%X%C: reloc refers to symbol `%T' which is not being output\n"
-msgstr "%X%C: relokasi mereferensikan ke simbol `%T' dimana tidak dikeluarkan\n"
+#: ldmain.c:1412
+msgid "%X%H: reloc refers to symbol `%T' which is not being output\n"
+msgstr "%X%H: relokasi mereferensikan ke simbol `%T' dimana tidak dikeluarkan\n"
-#: ldmisc.c:148
+#: ldmisc.c:151
#, c-format
msgid "no symbol"
msgstr "bukan simbol"
-#: ldmisc.c:245
+#: ldmisc.c:248
#, c-format
msgid "built in linker script:%u"
msgstr "scrip penghubung built-in: %u"
-#: ldmisc.c:323
+#: ldmisc.c:329
msgid "%B: In function `%T':\n"
msgstr "%B: Dalam fungsi `%T':\n"
-#: ldmisc.c:445
+#: ldmisc.c:464
msgid "%F%P: internal error %s %d\n"
msgstr "%F%P: internal error %s %d\n"
-#: ldmisc.c:494
+#: ldmisc.c:513
msgid "%P: internal error: aborting at %s line %d in %s\n"
msgstr "%P: internal error: membatalkan di %s baris %d dalam %s\n"
-#: ldmisc.c:497
+#: ldmisc.c:516
msgid "%P: internal error: aborting at %s line %d\n"
msgstr "%P: internal error: membatalkan di %s baris %d\n"
-#: ldmisc.c:499
+#: ldmisc.c:518
msgid "%P%F: please report this bug\n"
msgstr "%P%F: tolong laporkan bug ini\n"
#. Output for noisy == 2 is intended to follow the GNU standards.
-#: ldver.c:38
+#: ldver.c:39
#, c-format
msgid "GNU ld %s\n"
msgstr "GNU ld %s\n"
-#: ldver.c:42
+#: ldver.c:43
#, c-format
-msgid "Copyright 2009 Free Software Foundation, Inc.\n"
-msgstr "Hak cipta 2009 Free Software Foundation, Inc.\n"
+msgid "Copyright 2011 Free Software Foundation, Inc.\n"
+msgstr "Hak cipta 2011 Free Software Foundation, Inc.\n"
-#: ldver.c:43
+#: ldver.c:44
#, c-format
msgid ""
"This program is free software; you may redistribute it under the terms of\n"
@@ -1242,475 +1260,491 @@ msgstr ""
"Lisensi Umum Publik GNU versi 3 atau (menurut pendapat anda) untuk versi selanjutnya.\n"
"Aplikasi ini tidak memiliki garansi apapun.\n"
-#: ldver.c:53
+#: ldver.c:54
#, c-format
msgid " Supported emulations:\n"
msgstr " Emulasi yang didukung:\n"
-#: ldwrite.c:56 ldwrite.c:196
+#: ldwrite.c:62 ldwrite.c:207
msgid "%P%F: bfd_new_link_order failed\n"
msgstr "%P%F: bfd_new_link_order gagal\n"
-#: ldwrite.c:354
+#: ldwrite.c:365
msgid "%F%P: cannot create split section name for %s\n"
msgstr "%F%P: tidak dapat membuat nama daerah split untuk %s\n"
-#: ldwrite.c:366
+#: ldwrite.c:377
msgid "%F%P: clone section failed: %E\n"
msgstr "%F%P: penyalinan daerah gagal: %E\n"
-#: ldwrite.c:404
+#: ldwrite.c:418
#, c-format
msgid "%8x something else\n"
msgstr "%8x sesuatu yang lain\n"
-#: ldwrite.c:574
+#: ldwrite.c:588
msgid "%F%P: final link failed: %E\n"
msgstr "%F%P: final link gagal: %E\n"
-#: lexsup.c:209 lexsup.c:349
+#: lexsup.c:220 lexsup.c:374
msgid "KEYWORD"
msgstr "KATA-KUNCI"
-#: lexsup.c:209
+#: lexsup.c:220
msgid "Shared library control for HP/UX compatibility"
msgstr "Perpustakaan terbagi kontrol untuk kompatibilitas HP/UX"
-#: lexsup.c:212
+#: lexsup.c:223
msgid "ARCH"
msgstr "ARS"
-#: lexsup.c:212
+#: lexsup.c:223
msgid "Set architecture"
msgstr "Set arsitektur"
-#: lexsup.c:214 lexsup.c:459
+#: lexsup.c:225 lexsup.c:493
msgid "TARGET"
msgstr "TARGET"
-#: lexsup.c:214
+#: lexsup.c:225
msgid "Specify target for following input files"
msgstr "Spesifikasikan target untuk berkas masukan berikut"
-#: lexsup.c:217 lexsup.c:268 lexsup.c:280 lexsup.c:293 lexsup.c:295
-#: lexsup.c:413 lexsup.c:471 lexsup.c:533 lexsup.c:546
+#: lexsup.c:228 lexsup.c:279 lexsup.c:303 lexsup.c:316 lexsup.c:318
+#: lexsup.c:447 lexsup.c:509 lexsup.c:572 lexsup.c:585
msgid "FILE"
msgstr "BERKAS"
-#: lexsup.c:217
+#: lexsup.c:228
msgid "Read MRI format linker script"
msgstr "Baca format MRI scrip penghubung"
-#: lexsup.c:219
+#: lexsup.c:230
msgid "Force common symbols to be defined"
msgstr "Paksa simbol umum untuk didefinisikan"
-#: lexsup.c:223 lexsup.c:515 lexsup.c:517 lexsup.c:519 lexsup.c:521
+#: lexsup.c:234 lexsup.c:553 lexsup.c:555 lexsup.c:557 lexsup.c:559
msgid "ADDRESS"
msgstr "ALAMAT"
-#: lexsup.c:223
+#: lexsup.c:234
msgid "Set start address"
msgstr "Set awal alamat"
-#: lexsup.c:225
+#: lexsup.c:236
msgid "Export all dynamic symbols"
msgstr "Expor seluruh simbol dinamis"
-#: lexsup.c:227
+#: lexsup.c:238
msgid "Undo the effect of --export-dynamic"
msgstr "Undo effek dari --export-dynamic"
-#: lexsup.c:229
+#: lexsup.c:240
msgid "Link big-endian objects"
msgstr "Hubungkan objek big-endian"
-#: lexsup.c:231
+#: lexsup.c:242
msgid "Link little-endian objects"
msgstr "Hubungkan objek little-endian"
-#: lexsup.c:233 lexsup.c:236
+#: lexsup.c:244 lexsup.c:247
msgid "SHLIB"
msgstr "SHLIB"
-#: lexsup.c:233
+#: lexsup.c:244
msgid "Auxiliary filter for shared object symbol table"
msgstr "Tambahan filter untuk simbol tabel objek terbagi"
-#: lexsup.c:236
+#: lexsup.c:247
msgid "Filter for shared object symbol table"
msgstr "Filter untuk simbol tabel objek terbagi"
-#: lexsup.c:239
+#: lexsup.c:250
msgid "Ignored"
msgstr "Diabaikan"
-#: lexsup.c:241
+#: lexsup.c:252
msgid "SIZE"
msgstr "UKURAN"
-#: lexsup.c:241
+#: lexsup.c:252
msgid "Small data size (if no size, same as --shared)"
msgstr "Ukuran data kecil (jika tidak ada ukuran, sama dengan --shared)"
-#: lexsup.c:244
+#: lexsup.c:255
msgid "FILENAME"
msgstr "NAMA-BERKAS"
-#: lexsup.c:244
+#: lexsup.c:255
msgid "Set internal name of shared library"
msgstr "Set nama internal dari perpustakaan terbagi"
-#: lexsup.c:246
+#: lexsup.c:257
msgid "PROGRAM"
msgstr "APLIKASI"
-#: lexsup.c:246
+#: lexsup.c:257
msgid "Set PROGRAM as the dynamic linker to use"
msgstr "Set APLIKASI sebagai penghubung dinamis yang akan digunakan"
-#: lexsup.c:249
+#: lexsup.c:260
msgid "LIBNAME"
msgstr "NAMA-LIB"
-#: lexsup.c:249
+#: lexsup.c:260
msgid "Search for library LIBNAME"
msgstr "Cari untuk perpustakaan NAMA-LIB"
-#: lexsup.c:251
+#: lexsup.c:262
msgid "DIRECTORY"
msgstr "DIREKTORI"
-#: lexsup.c:251
+#: lexsup.c:262
msgid "Add DIRECTORY to library search path"
msgstr "Tambahkan DIREKTORI ke jalur pencarian perpustakaan"
-#: lexsup.c:254
+#: lexsup.c:265
msgid "Override the default sysroot location"
msgstr "Paksa lokasi default sysroot"
-#: lexsup.c:256
+#: lexsup.c:267
msgid "EMULATION"
msgstr "EMULASI"
-#: lexsup.c:256
+#: lexsup.c:267
msgid "Set emulation"
msgstr "Set emulasi"
-#: lexsup.c:258
+#: lexsup.c:269
msgid "Print map file on standard output"
msgstr "Tampilkan peta berkas di standar keluaran"
-#: lexsup.c:260
+#: lexsup.c:271
msgid "Do not page align data"
msgstr "Jangan page align data"
-#: lexsup.c:262
+#: lexsup.c:273
msgid "Do not page align data, do not make text readonly"
msgstr "Jangan page align data, jangan buat text baca-saja"
-#: lexsup.c:265
+#: lexsup.c:276
msgid "Page align data, make text readonly"
msgstr "Page align data, buat text baca-saja"
-#: lexsup.c:268
+#: lexsup.c:279
msgid "Set output file name"
msgstr "Set keluaran nama berkas"
-#: lexsup.c:270
+#: lexsup.c:281
msgid "Optimize output file"
msgstr "Optimisasi berkas keluaran"
-#: lexsup.c:272
+#: lexsup.c:284
+msgid "PLUGIN"
+msgstr "PLUGIN"
+
+#: lexsup.c:284
+msgid "Load named plugin"
+msgstr "Load named plugin"
+
+#: lexsup.c:286
+msgid "ARG"
+msgstr "ARG"
+
+#: lexsup.c:286
+msgid "Send arg to last-loaded plugin"
+msgstr "Send arg to last-loaded plugin"
+
+#: lexsup.c:288 lexsup.c:291
+msgid "Ignored for GCC LTO option compatibility"
+msgstr "Abaikan untuk kompabilitas Linux GCC LTO option"
+
+#: lexsup.c:295
msgid "Ignored for SVR4 compatibility"
msgstr "Abaikan untuk kompabilitas SVR4"
-#: lexsup.c:276
+#: lexsup.c:299
msgid "Generate relocatable output"
msgstr "Buat keluaran yang dapat direlokasikan"
-#: lexsup.c:280
+#: lexsup.c:303
msgid "Just link symbols (if directory, same as --rpath)"
msgstr "Hubungkan saja simbol (jika direktori, sama dengan --rpath)"
-#: lexsup.c:283
+#: lexsup.c:306
msgid "Strip all symbols"
msgstr "Strip seluruh simbol"
-#: lexsup.c:285
+#: lexsup.c:308
msgid "Strip debugging symbols"
msgstr "Strip debugging simbol"
-#: lexsup.c:287
+#: lexsup.c:310
msgid "Strip symbols in discarded sections"
msgstr "Strip simbol dalam daerah yang diabaikan"
-#: lexsup.c:289
+#: lexsup.c:312
msgid "Do not strip symbols in discarded sections"
msgstr "Jangan strip simbol dalam daerah yang diabaikan"
-#: lexsup.c:291
+#: lexsup.c:314
msgid "Trace file opens"
msgstr "Telusuri berkas terbuka"
-#: lexsup.c:293
+#: lexsup.c:316
msgid "Read linker script"
msgstr "Baca scrip penghubung"
-#: lexsup.c:295
+#: lexsup.c:318
msgid "Read default linker script"
msgstr "Baca default scrip penghubung"
-#: lexsup.c:299 lexsup.c:317 lexsup.c:390 lexsup.c:411 lexsup.c:508
-#: lexsup.c:536 lexsup.c:575
+#: lexsup.c:322 lexsup.c:340 lexsup.c:424 lexsup.c:445 lexsup.c:546
+#: lexsup.c:575 lexsup.c:614
msgid "SYMBOL"
msgstr "SIMBOL"
-#: lexsup.c:299
+#: lexsup.c:322
msgid "Start with undefined reference to SYMBOL"
msgstr "Awali dengan referensi ke SIMBOL tidak terdefinisi"
-#: lexsup.c:302
+#: lexsup.c:325
msgid "[=SECTION]"
msgstr "[=DAERAH]"
-#: lexsup.c:303
+#: lexsup.c:326
msgid "Don't merge input [SECTION | orphan] sections"
msgstr "Jangan gabungkan masukan [DAERAH | orphan] daerah"
-#: lexsup.c:305
+#: lexsup.c:328
msgid "Build global constructor/destructor tables"
msgstr "Buat tabel global konstruktor/desktruktor"
-#: lexsup.c:307
+#: lexsup.c:330
msgid "Print version information"
msgstr "Tampilkan informasi versi"
-#: lexsup.c:309
+#: lexsup.c:332
msgid "Print version and emulation information"
msgstr "Tampilkan versi dan informasi emulasi"
-#: lexsup.c:311
+#: lexsup.c:334
msgid "Discard all local symbols"
msgstr "Abaikan seluruh simbol lokal"
-#: lexsup.c:313
+#: lexsup.c:336
msgid "Discard temporary local symbols (default)"
msgstr "Abaikan simbol lokal sementara (baku)"
-#: lexsup.c:315
+#: lexsup.c:338
msgid "Don't discard any local symbols"
msgstr "Jangan abaikan simbol lokal apapun"
-#: lexsup.c:317
+#: lexsup.c:340
msgid "Trace mentions of SYMBOL"
msgstr "Telusuri SIMBOL yang disebutkan"
-#: lexsup.c:319 lexsup.c:473 lexsup.c:475
+#: lexsup.c:342 lexsup.c:511 lexsup.c:513
msgid "PATH"
msgstr "JALUR"
-#: lexsup.c:319
+#: lexsup.c:342
msgid "Default search path for Solaris compatibility"
msgstr "Jalur pencarian baku untuk kompabilitas Solaris"
-#: lexsup.c:322
+#: lexsup.c:345
msgid "Start a group"
msgstr "Awal dari grup"
-#: lexsup.c:324
+#: lexsup.c:347
msgid "End a group"
msgstr "Akhir dari grup"
-#: lexsup.c:328
+#: lexsup.c:351
msgid "Accept input files whose architecture cannot be determined"
msgstr "Terima berkas masukan dimana arsitektur tidak dapat ditentukan"
-#: lexsup.c:332
+#: lexsup.c:355
msgid "Reject input files whose architecture is unknown"
msgstr "Tolak berkas masukan dimana arsitektur tidak dikenal"
-#: lexsup.c:335
-msgid ""
-"Set DT_NEEDED tags for DT_NEEDED entries in\n"
-" following dynamic libs"
-msgstr ""
-"Set DT_NEEDED tags untuk DT_NEEDED masukan dalam\n"
-" mengikuti libs dinamis berikut"
-
-#: lexsup.c:339
-msgid ""
-"Do not set DT_NEEDED tags for DT_NEEDED entries\n"
-" in following dynamic libs"
-msgstr ""
-"Jangan menset DT_NEEDED tags untuk masukan DT_NEEDED\n"
-" dalam libs dinamis berikut"
-
-#: lexsup.c:343
+#: lexsup.c:367
msgid "Only set DT_NEEDED for following dynamic libs if used"
msgstr "Hanya set DT_NEEDED untuk dinamis libs berikut jika digunakan"
-#: lexsup.c:346
-msgid "Always set DT_NEEDED for following dynamic libs"
-msgstr "Selalu menset DT_NEEDED untuk dinamis libs berikut"
+#: lexsup.c:370
+msgid ""
+"Always set DT_NEEDED for dynamic libraries mentioned on\n"
+" the command line"
+msgstr ""
+"Selalu set DT_NEEDED untuk perpustakaan dinamis disebutkan dalam\n"
+" baris perintah"
-#: lexsup.c:349
+#: lexsup.c:374
msgid "Ignored for SunOS compatibility"
msgstr "Abaikan untuk kompabilitas SunOS"
-#: lexsup.c:351
+#: lexsup.c:376
msgid "Link against shared libraries"
msgstr "Hubungkan terhadap library terbagi"
-#: lexsup.c:357
+#: lexsup.c:382
msgid "Do not link against shared libraries"
msgstr "Jangan hubungkan terhadap perpustakaan terbagi"
-#: lexsup.c:365
+#: lexsup.c:390
msgid "Bind global references locally"
msgstr "Ikat referensi global secara lokal"
-#: lexsup.c:367
+#: lexsup.c:392
msgid "Bind global function references locally"
msgstr "Ikat referensi fungsi global secara lokal"
-#: lexsup.c:369
+#: lexsup.c:394
msgid "Check section addresses for overlaps (default)"
msgstr "Periksa daerah alamat untuk tumpang-tindih (baku)"
-#: lexsup.c:372
+#: lexsup.c:397
msgid "Do not check section addresses for overlaps"
msgstr "Jangan periksa daerah alamat untuk tumpang-tindih"
-#: lexsup.c:375
+#: lexsup.c:401
+msgid "Copy DT_NEEDED links mentioned inside DSOs that follow"
+msgstr "Copy DT_NEEDED links mentioned inside DSOs that follow"
+
+#: lexsup.c:405
+msgid "Do not copy DT_NEEDED links mentioned inside DSOs that follow"
+msgstr "Do not copy DT_NEEDED links mentioned inside DSOs that follow"
+
+#: lexsup.c:409
msgid "Output cross reference table"
msgstr "Keluarkan tabel referensi silang"
-#: lexsup.c:377
+#: lexsup.c:411
msgid "SYMBOL=EXPRESSION"
msgstr "SIMBOL=EKSPRESI"
-#: lexsup.c:377
+#: lexsup.c:411
msgid "Define a symbol"
msgstr "Definisikan sebuah simbol"
-#: lexsup.c:379
+#: lexsup.c:413
msgid "[=STYLE]"
msgstr "[=GAYA]"
-#: lexsup.c:379
+#: lexsup.c:413
msgid "Demangle symbol names [using STYLE]"
msgstr "Demangle nama simbol [gunakan GAYA]"
-#: lexsup.c:382
+#: lexsup.c:416
msgid "Generate embedded relocs"
msgstr "Buat embedded relokasi"
-#: lexsup.c:384
+#: lexsup.c:418
msgid "Treat warnings as errors"
msgstr "Perlakukan peringatan sebagai error"
-#: lexsup.c:387
+#: lexsup.c:421
msgid "Do not treat warnings as errors (default)"
msgstr "Jangan perlakukan peringatan sebagai error (baku)"
-#: lexsup.c:390
+#: lexsup.c:424
msgid "Call SYMBOL at unload-time"
msgstr "Panggil SIMBOL di unload-time"
-#: lexsup.c:392
+#: lexsup.c:426
msgid "Force generation of file with .exe suffix"
msgstr "Paksa pembuatan dari berkas dengan akhiran .exe"
-#: lexsup.c:394
+#: lexsup.c:428
msgid "Remove unused sections (on some targets)"
msgstr "Hapus daerah yang tidak digunakan (di beberapa target)"
-#: lexsup.c:397
+#: lexsup.c:431
msgid "Don't remove unused sections (default)"
msgstr "Jangan hapus daerah yang tidak digunakan (baku)"
-#: lexsup.c:400
+#: lexsup.c:434
msgid "List removed unused sections on stderr"
msgstr "Tampilkan daerah tidak digunakan yang dihapus di stderr"
-#: lexsup.c:403
+#: lexsup.c:437
msgid "Do not list removed unused sections"
msgstr "Jangan tampilkan daerah tidak digunakan yang dihapus"
-#: lexsup.c:406
+#: lexsup.c:440
msgid "Set default hash table size close to <NUMBER>"
msgstr "Set ukuran default tabel hash mendekati ke <NOMOR>"
-#: lexsup.c:409
+#: lexsup.c:443
msgid "Print option help"
msgstr "Tampilkan pilihan bantuan"
-#: lexsup.c:411
+#: lexsup.c:445
msgid "Call SYMBOL at load-time"
msgstr "Panggil SIMBOL di load-time"
-#: lexsup.c:413
+#: lexsup.c:447
msgid "Write a map file"
msgstr "Tulis sebuah berkas peta"
-#: lexsup.c:415
+#: lexsup.c:449
msgid "Do not define Common storage"
msgstr "Jangan definisikan penyimpanan umum"
-#: lexsup.c:417
+#: lexsup.c:451
msgid "Do not demangle symbol names"
msgstr "Jangan demangle nama simbol"
-#: lexsup.c:419
+#: lexsup.c:453
msgid "Use less memory and more disk I/O"
msgstr "Gunakan sedikit memori dan lebih disk I/O"
-#: lexsup.c:421
+#: lexsup.c:455
msgid "Do not allow unresolved references in object files"
msgstr "Jangan perbolehkan referensi tidak terselesaikan dalam berkas objek"
-#: lexsup.c:424
-msgid "Allow unresolved references in shared libaries"
+#: lexsup.c:458
+msgid "Allow unresolved references in shared libraries"
msgstr "Ijinkan referensi tidak terselesaikan dalam perpustakaan terbagi"
-#: lexsup.c:428
+#: lexsup.c:462
msgid "Do not allow unresolved references in shared libs"
msgstr "Jangan ijinkan referensi tidak terselesaikan dalam perpustakaan terbagi"
-#: lexsup.c:432
+#: lexsup.c:466
msgid "Allow multiple definitions"
msgstr "Ijinkan multiple definisi"
-#: lexsup.c:434
+#: lexsup.c:468
msgid "Disallow undefined version"
msgstr "Larang versi tidak terdefinisi"
-#: lexsup.c:436
+#: lexsup.c:470
msgid "Create default symbol version"
msgstr "Buat default versi simbol"
-#: lexsup.c:439
+#: lexsup.c:473
msgid "Create default symbol version for imported symbols"
msgstr "Buat default versi simbol untuk simbol yang diimpor"
-#: lexsup.c:442
+#: lexsup.c:476
msgid "Don't warn about mismatched input files"
msgstr "Jangan peringatkan mengenai ketidakcocokan dalam berkas masukan"
-#: lexsup.c:445
+#: lexsup.c:479
msgid "Don't warn on finding an incompatible library"
msgstr "Jangan peringatkan dalam pencarian perpustakaan tidak kompatibel"
-#: lexsup.c:448
+#: lexsup.c:482
msgid "Turn off --whole-archive"
msgstr "Tidak aktifkan --whole-archive"
-#: lexsup.c:450
+#: lexsup.c:484
msgid "Create an output file even if errors occur"
msgstr "Buat sebuah berkas keluaran walaupun error terjadi"
-#: lexsup.c:455
+#: lexsup.c:489
msgid ""
"Only use library directories specified on\n"
" the command line"
@@ -1718,123 +1752,131 @@ msgstr ""
"Hanya gunakan direktori perpustakaan yang dispesifikasikan dalam\n"
" baris perintah"
-#: lexsup.c:459
+#: lexsup.c:493
msgid "Specify target of output file"
msgstr "Spesifikasikan target dari berkas keluaran"
-#: lexsup.c:462
+#: lexsup.c:496
+msgid "Print default output format"
+msgstr "Print default output format"
+
+#: lexsup.c:498
msgid "Ignored for Linux compatibility"
msgstr "Abaikan untuk kompabilitas Linux"
-#: lexsup.c:465
+#: lexsup.c:501
msgid "Reduce memory overheads, possibly taking much longer"
msgstr "Kurangi memori overheads, mungkin membutuhkan waktu lebih lama"
-#: lexsup.c:468
-msgid "Relax branches on certain targets"
-msgstr "Relax cabang di beberapa targets"
+#: lexsup.c:504
+msgid "Reduce code size by using target specific optimizations"
+msgstr "Kurangi ukuran kode dengan menggunakan optimisasi target spesifik"
+
+#: lexsup.c:506
+msgid "Do not use relaxation techniques to reduce code size"
+msgstr "Do not use relaxation techniques to reduce code size"
-#: lexsup.c:471
+#: lexsup.c:509
msgid "Keep only symbols listed in FILE"
msgstr "Jaga hanya simbol terdaftar dalam BERKAS"
-#: lexsup.c:473
+#: lexsup.c:511
msgid "Set runtime shared library search path"
msgstr "Set waktu-jalan perpustakaan terbagi jalur pencarian"
-#: lexsup.c:475
+#: lexsup.c:513
msgid "Set link time shared library search path"
msgstr "Set waktu hubung perpustakaan terbagi jalur pencarian"
-#: lexsup.c:478
+#: lexsup.c:516
msgid "Create a shared library"
msgstr "Buat sebuah perpustakaan terbagi"
-#: lexsup.c:482
+#: lexsup.c:520
msgid "Create a position independent executable"
msgstr "Buat sebuat executable bebas posisi"
-#: lexsup.c:486
+#: lexsup.c:524
msgid "[=ascending|descending]"
msgstr "[=ascending|descending]"
-#: lexsup.c:487
+#: lexsup.c:525
msgid "Sort common symbols by alignment [in specified order]"
msgstr "Urutkan simbol umum dengan alignmen [dalam urutan yang dispesifikasikan]"
-#: lexsup.c:492
+#: lexsup.c:530
msgid "name|alignment"
msgstr "nama|alignment"
-#: lexsup.c:493
+#: lexsup.c:531
msgid "Sort sections by name or maximum alignment"
msgstr "Urutkan daerah dengan nama atau maksimal alignment"
-#: lexsup.c:495
+#: lexsup.c:533
msgid "COUNT"
msgstr "JUMLAH"
-#: lexsup.c:495
+#: lexsup.c:533
msgid "How many tags to reserve in .dynamic section"
msgstr "Berapa banyak tags untuk menyimpan dalam daerah .dynamic"
-#: lexsup.c:498
+#: lexsup.c:536
msgid "[=SIZE]"
msgstr "[=UKURAN]"
-#: lexsup.c:498
+#: lexsup.c:536
msgid "Split output sections every SIZE octets"
msgstr "Bagi daerah keluaran distiap UKURAN oktet"
-#: lexsup.c:501
+#: lexsup.c:539
msgid "[=COUNT]"
msgstr "[=JUMLAH]"
-#: lexsup.c:501
+#: lexsup.c:539
msgid "Split output sections every COUNT relocs"
msgstr "Bagi daerah keluaran disetiap JUMLAH relokasi"
-#: lexsup.c:504
+#: lexsup.c:542
msgid "Print memory usage statistics"
msgstr "Tampilkan statistik penggunaan memori"
-#: lexsup.c:506
+#: lexsup.c:544
msgid "Display target specific options"
msgstr "Tampilkan pilihan target spesifik"
-#: lexsup.c:508
+#: lexsup.c:546
msgid "Do task level linking"
msgstr "Lakukan tingkat kerja penghubung"
-#: lexsup.c:510
+#: lexsup.c:548
msgid "Use same format as native linker"
msgstr "Gunakan format sama seperti penghubung asal"
-#: lexsup.c:512
+#: lexsup.c:550
msgid "SECTION=ADDRESS"
msgstr "DAERAH=ALAMAT"
-#: lexsup.c:512
+#: lexsup.c:550
msgid "Set address of named section"
msgstr "Set alamat dari nama daerah"
-#: lexsup.c:515
+#: lexsup.c:553
msgid "Set address of .bss section"
msgstr "Set alamat dari daerah .bss"
-#: lexsup.c:517
+#: lexsup.c:555
msgid "Set address of .data section"
msgstr "Set alamat dari daerah .data"
-#: lexsup.c:519
+#: lexsup.c:557
msgid "Set address of .text section"
msgstr "Set alamat daeri daerah .text"
-#: lexsup.c:521
+#: lexsup.c:559
msgid "Set address of text segment"
msgstr "Set alamat dari bagian text"
-#: lexsup.c:524
+#: lexsup.c:562
msgid ""
"How to handle unresolved symbols. <method> is:\n"
" ignore-all, report-all, ignore-in-object-files,\n"
@@ -1844,15 +1886,19 @@ msgstr ""
" ignore-all, report-all, ignore-in-object-files,\n"
" ignore-in-shared-libs"
-#: lexsup.c:529
+#: lexsup.c:567
+msgid "[=NUMBER]"
+msgstr "[=NUMBER]"
+
+#: lexsup.c:568
msgid "Output lots of information during link"
msgstr "Keluarkan banyak informasi selama menghubungkan"
-#: lexsup.c:533
+#: lexsup.c:572
msgid "Read version information script"
msgstr "Baca informasi versi dari scrip"
-#: lexsup.c:536
+#: lexsup.c:575
msgid ""
"Take export symbols list from .exports, using\n"
" SYMBOL as the version."
@@ -1860,94 +1906,98 @@ msgstr ""
"Ambil daftar simbol expor dari .expor, menggunakan\n"
" SIMBOL sebagai versi."
-#: lexsup.c:540
+#: lexsup.c:579
msgid "Add data symbols to dynamic list"
msgstr "Tambahkan data simbol ke daftar dinamis"
-#: lexsup.c:542
+#: lexsup.c:581
msgid "Use C++ operator new/delete dynamic list"
msgstr "Gunakan C++ operator new/delete daftar dinamis"
-#: lexsup.c:544
+#: lexsup.c:583
msgid "Use C++ typeinfo dynamic list"
msgstr "Gunakan C++ typeinfo daftar dinamic"
-#: lexsup.c:546
+#: lexsup.c:585
msgid "Read dynamic list"
msgstr "Baca daftar dinamis"
-#: lexsup.c:548
+#: lexsup.c:587
msgid "Warn about duplicate common symbols"
msgstr "Peringatkan mengenai duplikasi simbol umum"
-#: lexsup.c:550
+#: lexsup.c:589
msgid "Warn if global constructors/destructors are seen"
msgstr "Peringatkan jika global konstruktor/destruktor terlihat"
-#: lexsup.c:553
+#: lexsup.c:592
msgid "Warn if the multiple GP values are used"
msgstr "Peringatkan jika nilai multiple GP digunakan"
-#: lexsup.c:555
+#: lexsup.c:594
msgid "Warn only once per undefined symbol"
msgstr "Peringatkan hanya sekali setiap simbol tidak terdefinisi"
-#: lexsup.c:557
+#: lexsup.c:596
msgid "Warn if start of section changes due to alignment"
msgstr "Peringatkan jika awal dari daerah berubah karena alignment"
-#: lexsup.c:560
+#: lexsup.c:599
msgid "Warn if shared object has DT_TEXTREL"
msgstr "Peringatkan jika objek terbagi memiliki DT_TEXTREL"
-#: lexsup.c:563
+#: lexsup.c:602
msgid "Warn if an object has alternate ELF machine code"
msgstr "Peringatkan jika sebuah objek memiliki kode mesin ELF alternatif"
-#: lexsup.c:567
+#: lexsup.c:606
msgid "Report unresolved symbols as warnings"
msgstr "Laporkan simbol tidak terselesaikan sebagai peringatan"
-#: lexsup.c:570
+#: lexsup.c:609
msgid "Report unresolved symbols as errors"
msgstr "Laporkan simbol tidak terselesaikan sebagai error"
-#: lexsup.c:572
+#: lexsup.c:611
msgid "Include all objects from following archives"
msgstr "Masukan seluruh objek dari archive berikut"
-#: lexsup.c:575
+#: lexsup.c:614
msgid "Use wrapper functions for SYMBOL"
msgstr "Gunakan fungsi wrapper untuk SIMBOL"
-#: lexsup.c:722
+#: lexsup.c:763
msgid "%P: unrecognized option '%s'\n"
msgstr "%P: pilihan tidak dikenal '%s'\n"
-#: lexsup.c:726
+#: lexsup.c:767
msgid "%P%F: use the --help option for usage information\n"
msgstr "%P%F: gunakan pilihan --help untuk informasi penggunaan\n"
-#: lexsup.c:744
+#: lexsup.c:785
msgid "%P%F: unrecognized -a option `%s'\n"
msgstr "%P%F: pilihan -a tidak dikenal `%s'\n"
-#: lexsup.c:757
+#: lexsup.c:798
msgid "%P%F: unrecognized -assert option `%s'\n"
msgstr "%P%F: pilihan -assert tidak dikenal `%s'\n"
-#: lexsup.c:800
+#: lexsup.c:841
msgid "%F%P: unknown demangling style `%s'"
msgstr "%F%P: gaya demangling tidak dikenal `%s'"
-#: lexsup.c:866
+#: lexsup.c:907 lexsup.c:1341
msgid "%P%F: invalid number `%s'\n"
msgstr "%P%F: nomor tidak valid `%s'\n"
-#: lexsup.c:964
+#: lexsup.c:1005
msgid "%P%F: bad --unresolved-symbols option: %s\n"
msgstr "%P%F: buruk pilihan --unresolved-symbols: %s\n"
+#: lexsup.c:1076
+msgid "%P%F: bad -plugin-opt option\n"
+msgstr "%P%F: pilihan -plugin-opt buruk\n"
+
#. This can happen if the user put "-rpath,a" on the command
#. line. (Or something similar. The comma is important).
#. Getopt becomes confused and thinks that this is a -r option
@@ -1956,200 +2006,266 @@ msgstr "%P%F: buruk pilihan --unresolved-symbols: %s\n"
#. 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:1038
+#: lexsup.c:1093
msgid "%P%F: bad -rpath option\n"
msgstr "%P%F: pilihan -rpath buruk\n"
-#: lexsup.c:1149
+#: lexsup.c:1207
msgid "%P%F: -shared not supported\n"
msgstr "%P%F: -shared tidak didukung\n"
-#: lexsup.c:1158
+#: lexsup.c:1216
msgid "%P%F: -pie not supported\n"
msgstr "%P%F: -pie tidak didukung\n"
-#: lexsup.c:1166
+#: lexsup.c:1224
msgid "descending"
msgstr "menurun"
-#: lexsup.c:1168
+#: lexsup.c:1226
msgid "ascending"
msgstr "meningkat"
-#: lexsup.c:1171
+#: lexsup.c:1229
msgid "%P%F: invalid common section sorting option: %s\n"
msgstr "%P%F: pilihan pengurutan daerah umum tidak valid: %s\n"
-#: lexsup.c:1175
+#: lexsup.c:1233
msgid "name"
msgstr "nama"
-#: lexsup.c:1177
+#: lexsup.c:1235
msgid "alignment"
msgstr "alignment"
-#: lexsup.c:1180
+#: lexsup.c:1238
msgid "%P%F: invalid section sorting option: %s\n"
msgstr "%P%F: pilihan pengurutan daerah tidak valid: %s\n"
-#: lexsup.c:1214
+#: lexsup.c:1272
msgid "%P%F: invalid argument to option \"--section-start\"\n"
msgstr "%P%F: argumen ke pilihan \"--section-start\" tidak valid\n"
-#: lexsup.c:1221
+#: lexsup.c:1279
msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
msgstr "%P%F: hilang argumen ke pilihan \"--section-start\"\n"
-#: lexsup.c:1441
-msgid "%P%F: may not nest groups (--help for usage)\n"
-msgstr "%P%F: mungkin bukan nest grup (--help untuk penggunaan)\n"
-
-#: lexsup.c:1448
+#: lexsup.c:1513
msgid "%P%F: group ended before it began (--help for usage)\n"
msgstr "%P%F: grup berakhir sebelum init mulai (--help untuk penggunaan)\n"
-#: lexsup.c:1476
+#: lexsup.c:1541
msgid "%P%X: --hash-size needs a numeric argument\n"
msgstr "%P%X: --hash-size membutuhkan sebuah argumen numerik\n"
-#: lexsup.c:1527 lexsup.c:1540
+#: lexsup.c:1572
+msgid "%P%F: -r and -shared may not be used together\n"
+msgstr "%P%F: -r dan -shared tidak boleh digunakan bersama\n"
+
+#: lexsup.c:1615
+msgid "%P%F: -F may not be used without -shared\n"
+msgstr "%P%F: -F tidak boleh digunakan tanpa -shared\n"
+
+#: lexsup.c:1617
+msgid "%P%F: -f may not be used without -shared\n"
+msgstr "%P%F: -f tidak boleh digunakan tanpa -shared\n"
+
+#: lexsup.c:1661 lexsup.c:1674
msgid "%P%F: invalid hex number `%s'\n"
msgstr "%P%F: nomor hex tidak valid `%s'\n"
-#: lexsup.c:1576
+#: lexsup.c:1710
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "Penggunaan: %s [pilihan] berkas...\n"
-#: lexsup.c:1578
+#: lexsup.c:1712
#, c-format
msgid "Options:\n"
msgstr "Pilihan:\n"
-#: lexsup.c:1656
+#: lexsup.c:1790
#, c-format
msgid " @FILE"
msgstr " @BERKAS"
-#: lexsup.c:1659
+#: lexsup.c:1793
#, c-format
msgid "Read options from FILE\n"
msgstr "Baca pilihan dari BERKAS\n"
#. Note: Various tools (such as libtool) depend upon the
#. format of the listings below - do not change them.
-#: lexsup.c:1664
+#: lexsup.c:1798
#, c-format
msgid "%s: supported targets:"
msgstr "%s: target yang didukung:"
-#: lexsup.c:1672
+#: lexsup.c:1806
#, c-format
msgid "%s: supported emulations: "
msgstr "%s: emulasi yang didukung: "
-#: lexsup.c:1677
+#: lexsup.c:1811
#, c-format
msgid "%s: emulation specific options:\n"
msgstr "%s: pilihan spesifik emulasi:\n"
-#: lexsup.c:1682
+#: lexsup.c:1816
#, c-format
msgid "Report bugs to %s\n"
msgstr "Laporkan bugs ke %s\n"
-#: mri.c:291
+#: mri.c:294
msgid "%P%F: unknown format type %s\n"
msgstr "%P%F: tipe format %s tidak dikenal\n"
-#: pe-dll.c:415
+#: pe-dll.c:431
#, c-format
msgid "%XUnsupported PEI architecture: %s\n"
msgstr "%X Arsitektur PEI tidak didukung: %s\n"
-#: pe-dll.c:766
+#: pe-dll.c:788
#, c-format
msgid "%XCannot export %s: invalid export name\n"
msgstr "%X Tidak dapat expor %s: nama expor tidak valid\n"
-#: pe-dll.c:822
+#: pe-dll.c:845
#, c-format
msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
msgstr "%XError, duplikasi EKSPOR dengan ordinals: %s (%d vs %d)\n"
-#: pe-dll.c:829
+#: pe-dll.c:852
#, c-format
msgid "Warning, duplicate EXPORT: %s\n"
msgstr "Peringatan, duplikasi EKSPOR: %s\n"
-#: pe-dll.c:916
+#: pe-dll.c:939
#, c-format
msgid "%XCannot export %s: symbol not defined\n"
msgstr "%XTidak dapat ekspor %s: simbol tidak terdefinisi\n"
-#: pe-dll.c:922
+#: pe-dll.c:945
#, c-format
msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
msgstr "%XTidak dapat ekspor %s: tipe simbol salah (%d vs %d)\n"
-#: pe-dll.c:929
+#: pe-dll.c:952
#, c-format
msgid "%XCannot export %s: symbol not found\n"
msgstr "%XTidak dapat ekspor %s: simbol tidak ditemukan\n"
-#: pe-dll.c:1043
+#: pe-dll.c:1066
#, c-format
msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
msgstr "%XError, ordinal digunakan dua kali: %d (%s vs %s)\n"
-#: pe-dll.c:1410
+#: pe-dll.c:1456
#, c-format
msgid "%XError: %d-bit reloc in dll\n"
msgstr "%XError: %d-bit relokasi dalam dll\n"
-#: pe-dll.c:1538
+#: pe-dll.c:1584
#, c-format
msgid "%s: Can't open output def file %s\n"
msgstr "%s: Tidak dapat membuka berkas keluaran default %s\n"
-#: pe-dll.c:1683
+#: pe-dll.c:1735
#, c-format
msgid "; no contents available\n"
msgstr "; tidak ada kontent yang tersedia\n"
-#: pe-dll.c:2600
+#: pe-dll.c:2662
msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
msgstr "%C: variabel '%T' tidak dapat auto-imported. Tolong baca dokumentasi untuk ld --enable-auto-import untuk lebih lengkapnya.\n"
-#: pe-dll.c:2630
+#: pe-dll.c:2692
#, c-format
msgid "%XCan't open .lib file: %s\n"
msgstr "%XTidak dapat membuka berkas .lib: %s\n"
-#: pe-dll.c:2635
+#: pe-dll.c:2697
#, c-format
msgid "Creating library file: %s\n"
msgstr "Membuat berkas library: %s\n"
-#: pe-dll.c:2664
+#: pe-dll.c:2726
#, c-format
msgid "%Xbfd_openr %s: %E\n"
msgstr "%Xbfd_openr %s: %E\n"
-#: pe-dll.c:2676
+#: pe-dll.c:2738
#, c-format
msgid "%X%s(%s): can't find member in non-archive file"
msgstr "%X%s(%s): tidak dapat menemukan anggota dalam berkas bukan-archive"
-#: pe-dll.c:2688
+#: pe-dll.c:2750
#, c-format
msgid "%X%s(%s): can't find member in archive"
msgstr "%X%s(%s): tidak dapat menemukan anggota dalam archive"
-#: pe-dll.c:3078
+#: pe-dll.c:3189
#, c-format
msgid "%XError: can't use long section names on this arch\n"
msgstr "%XError: tidak dapat menggunakan nama daerah panjang di arsitektur ini\n"
+#: plugin.c:177 plugin.c:211
+msgid "<no plugin>"
+msgstr "<no plugin>"
+
+#: plugin.c:250
+#, c-format
+msgid "could not create dummy IR bfd: %F%E\n"
+msgstr "tidak dapat membuat dummy IR bfd: %F%E\n"
+
+#: plugin.c:343
+msgid "%P%F: %s: non-ELF symbol in ELF BFD!\n"
+msgstr "%P%F: %s: non-ELF symbol in ELF BFD!\n"
+
+#: plugin.c:347
+msgid "%P%F: unknown ELF symbol visibility: %d!\n"
+msgstr "%P%F: visibilitas simbol ELF tidak diketahui: %d!\n"
+
+#: plugin.c:586
+msgid "%P: %B: symbol `%s' definition: %d, visibility: %d, resolution: %d\n"
+msgstr "%P: %B: symbol `%s' definition: %d, visibility: %d, resolution: %d\n"
+
+#: plugin.c:863
+msgid "%P%F: %s: plugin reported error claiming file\n"
+msgstr "%P%F: %s: plugin reported error claiming file\n"
+
+#: plugin.c:934
+msgid "%P: %s: error in plugin cleanup (ignored)\n"
+msgstr "%P: %s: error in plugin cleanup (ignored)\n"
+
+#~ msgid "%F%P: %s (%s): No such file: %E\n"
+#~ msgstr "%F%P: %s (%s): Tidak ada berkas seperti itu: %E\n"
+
+#~ msgid "%F%P: %s: No such file: %E\n"
+#~ msgstr "%F%P: %s: Tidak ada berkas seperti itu: %E\n"
+
+#~ msgid ""
+#~ "Set DT_NEEDED tags for DT_NEEDED entries in\n"
+#~ " following dynamic libs"
+#~ msgstr ""
+#~ "Set DT_NEEDED tags untuk DT_NEEDED masukan dalam\n"
+#~ " mengikuti libs dinamis berikut"
+
+#~ msgid ""
+#~ "Do not set DT_NEEDED tags for DT_NEEDED entries\n"
+#~ " in following dynamic libs"
+#~ msgstr ""
+#~ "Jangan menset DT_NEEDED tags untuk masukan DT_NEEDED\n"
+#~ " dalam libs dinamis berikut"
+
+#~ msgid "Always set DT_NEEDED for following dynamic libs"
+#~ msgstr "Selalu menset DT_NEEDED untuk dinamis libs berikut"
+
+#~ msgid "Relax branches on certain targets"
+#~ msgstr "Relax cabang di beberapa targets"
+
+#~ msgid "%P%F: may not nest groups (--help for usage)\n"
+#~ msgstr "%P%F: mungkin bukan nest grup (--help untuk penggunaan)\n"
+
#~ msgid "%P%F: --relax and -r may not be used together\n"
#~ msgstr "%P%F: --relax dan -r tidak boleh digunakan bersama\n"
diff --git a/ld/po/it.po b/ld/po/it.po
index 4320c94..61d2829 100644
--- a/ld/po/it.po
+++ b/ld/po/it.po
@@ -12,6 +12,7 @@ msgstr ""
"Last-Translator: Sergio Zanchetta <primes2h@ubuntu.com>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
"Language: it\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff --git a/ld/po/ja.po b/ld/po/ja.po
index d78d1c4..fc12381 100644
--- a/ld/po/ja.po
+++ b/ld/po/ja.po
@@ -12,6 +12,7 @@ msgstr ""
"Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
"Language: ja\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff --git a/ld/po/pt_BR.po b/ld/po/pt_BR.po
new file mode 100644
index 0000000..a7257df
--- /dev/null
+++ b/ld/po/pt_BR.po
@@ -0,0 +1,2950 @@
+# Brazilian Portuguese translations for ld (binutils package).
+# Traduções em português brasileiro para o ld (pacote binutils).
+# Copyright (C) 2017 Free Software Foundation, Inc.
+# This file is distributed under the same license as the binutils package.
+# Rafael Fontenelle <rffontenelle@gmail.com>, 2017.
+msgid ""
+msgstr ""
+"Project-Id-Version: ld 2.28.90\n"
+"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
+"POT-Creation-Date: 2017-07-03 16:56+0200\n"
+"PO-Revision-Date: 2017-07-15 15:27-0200\n"
+"Last-Translator: Rafael Fontenelle <rffontenelle@gmail.com>\n"
+"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Virtaal 1.0.0-beta1\n"
+
+#: emultempl/armcoff.em:72
+#, c-format
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code Suporte a interfuncionamento com código antigo\n"
+
+#: emultempl/armcoff.em:73
+#, c-format
+msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
+msgstr ""
+" --thumb-entry=<sym> Define o ponto de entrada para ser um\n"
+" símbolo <sym> Thumb\n"
+
+#: emultempl/armcoff.em:121
+#, c-format
+msgid "Errors encountered processing file %s"
+msgstr "Encontrados erros de processamento do arquivo %s"
+
+#: emultempl/armcoff.em:191 emultempl/pe.em:2062
+msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
+msgstr "%P: aviso: \"--thumb-entry %s\" é sobrepondo \"-e %s\"\n"
+
+#: emultempl/armcoff.em:196 emultempl/pe.em:2067
+msgid "%P: warning: cannot find thumb start symbol %s\n"
+msgstr "%P: aviso: não foi possível localizar símbolo inicial %s Thumb\n"
+
+#: emultempl/pe.em:430
+#, c-format
+msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
+msgstr " --base_file <arquivobase> Gera um arquivo base para DDLs relocáveis\n"
+
+#: emultempl/pe.em:431
+#, c-format
+msgid " --dll Set image base to the default for DLLs\n"
+msgstr ""
+" --dll Define base de imagem para o padrão para\n"
+" DLLs\n"
+
+#: emultempl/pe.em:432
+#, c-format
+msgid " --file-alignment <size> Set file alignment\n"
+msgstr " --file-alignment <tamanho> Define alinhamento de arquivo\n"
+
+#: emultempl/pe.em:433
+#, c-format
+msgid " --heap <size> Set initial size of the heap\n"
+msgstr " --heap <tamanho> Define o tamanho inicial da heap\n"
+
+#: emultempl/pe.em:434
+#, c-format
+msgid " --image-base <address> Set start address of the executable\n"
+msgstr " --image-base <endereço> Define o endereço inicial do executável\n"
+
+#: emultempl/pe.em:435
+#, c-format
+msgid " --major-image-version <number> Set version number of the executable\n"
+msgstr " --major-image-version <número> Define o número de versão do executável\n"
+
+#: emultempl/pe.em:436
+#, c-format
+msgid " --major-os-version <number> Set minimum required OS version\n"
+msgstr " --major-os-version <número> Define a versão mínima exigida do SO\n"
+
+#: emultempl/pe.em:437
+#, c-format
+msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n"
+msgstr ""
+" --major-subsystem-version <número> Define a versão mínima exibida do\n"
+" subsistema do SO\n"
+
+#: emultempl/pe.em:438
+#, c-format
+msgid " --minor-image-version <number> Set revision number of the executable\n"
+msgstr " --minor-image-version <número> Define o número de revisão do executável\n"
+
+#: emultempl/pe.em:439
+#, c-format
+msgid " --minor-os-version <number> Set minimum required OS revision\n"
+msgstr " --minor-os-version <número> Define a revisão mínima exigida do SO\n"
+
+#: emultempl/pe.em:440
+#, c-format
+msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
+msgstr ""
+" --minor-subsystem-version <número> Define a revisão mínima exibida do\n"
+" subsistema do SO\n"
+
+#: emultempl/pe.em:441
+#, c-format
+msgid " --section-alignment <size> Set section alignment\n"
+msgstr " --section-alignment <tamanho> Define alinhamento de seção\n"
+
+#: emultempl/pe.em:442
+#, c-format
+msgid " --stack <size> Set size of the initial stack\n"
+msgstr " --stack <tamanho> Define o tamanho da pilha inicial\n"
+
+#: emultempl/pe.em:443
+#, c-format
+msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
+msgstr ""
+" --subsystem <nome>[:<versão>] Define o subsistema [& versão] exigido\n"
+" do SO\n"
+
+#: emultempl/pe.em:444
+#, c-format
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code Suporte a interfuncionamento com código antigo\n"
+
+#: emultempl/pe.em:445
+#, c-format
+msgid " --[no-]leading-underscore Set explicit symbol underscore prefix mode\n"
+msgstr ""
+" --[no-]leading-underscore Define o modo de prefixo sublinhado\n"
+" explícito de símbolo\n"
+
+#: emultempl/pe.em:446
+#, c-format
+msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
+msgstr ""
+" --thumb-entry=<sym> Define o ponto de entrada para ser\n"
+" <sym> Thumb\n"
+
+#: emultempl/pe.em:447
+#, c-format
+msgid " --[no-]insert-timestamp Use a real timestamp rather than zero (default).\n"
+msgstr " --[no-]insert-timestamp Usa uma marca de tempo em vez de zero (padrão).\n"
+
+#: emultempl/pe.em:448
+#, c-format
+msgid " This makes binaries non-deterministic\n"
+msgstr " Isso torna binários não-determinísticos\n"
+
+#: emultempl/pe.em:450
+#, c-format
+msgid " --add-stdcall-alias Export symbols with and without @nn\n"
+msgstr " --add-stdcall-alias Exporta símbolos com ou sem @nn\n"
+
+#: emultempl/pe.em:451
+#, c-format
+msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
+msgstr " --disable-stdcall-fixup Não vincula _sym a _sym@nn\n"
+
+#: emultempl/pe.em:452
+#, c-format
+msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
+msgstr " --enable-stdcall-fixup Vincula _sym a _sym@nn sem avisos\n"
+
+#: emultempl/pe.em:453
+#, c-format
+msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
+msgstr " --exclude-symbols sym,sym,... Exclui símbolos da exportação automática\n"
+
+#: emultempl/pe.em:454
+#, c-format
+msgid " --exclude-all-symbols Exclude all symbols from automatic export\n"
+msgstr ""
+" --exclude-all-symbols Exclui todos os símbolos da exportação\n"
+" automática\n"
+
+#: emultempl/pe.em:455
+#, c-format
+msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n"
+msgstr ""
+" --exclude-libs lib,lib,... Exclui bibliotecas da exportação \n"
+" automática\n"
+
+#: emultempl/pe.em:456
+#, c-format
+msgid " --exclude-modules-for-implib mod,mod,...\n"
+msgstr " --exclude-modules-for-implib mod,mod,...\n"
+
+# Continuação da descrição da opção "--exclude-modules-for-implib"
+#: emultempl/pe.em:457
+#, c-format
+msgid " Exclude objects, archive members from auto\n"
+msgstr ""
+" Exclui objetos, arquiva membros da\n"
+" exportação automática, colocando\n"
+
+# Continuação da descrição da opção "--exclude-modules-for-implib"
+#: emultempl/pe.em:458
+#, c-format
+msgid " export, place into import library instead.\n"
+msgstr " na biblioteca de importação.\n"
+
+#: emultempl/pe.em:459
+#, c-format
+msgid " --export-all-symbols Automatically export all globals to DLL\n"
+msgstr ""
+" --export-all-symbols Exporta automaticamente todos globais\n"
+" para DLL\n"
+
+#: emultempl/pe.em:460
+#, c-format
+msgid " --kill-at Remove @nn from exported symbols\n"
+msgstr " --kill-at Remove @nn dos símbolos exportados\n"
+
+#: emultempl/pe.em:461
+#, c-format
+msgid " --output-def <file> Generate a .DEF file for the built DLL\n"
+msgstr " --output-def <arquivo> Gera um arquivo .DEF para a DLL compilada\n"
+
+#: emultempl/pe.em:462
+#, c-format
+msgid " --warn-duplicate-exports Warn about duplicate exports\n"
+msgstr " --warn-duplicate-exports Avisa sobre exportações duplicadas\n"
+
+#: emultempl/pe.em:463
+#, c-format
+msgid ""
+" --compat-implib Create backward compatible import libs;\n"
+" create __imp_<SYMBOL> as well.\n"
+msgstr ""
+" --compat-implib Cria bibliotecas de importação com\n"
+" compatibilidade reversa;\n"
+" cria __imp_<SÃMBOLO> também.\n"
+
+#: emultempl/pe.em:465
+#, c-format
+msgid ""
+" --enable-auto-image-base[=<address>] Automatically choose image base for DLLs\n"
+" (optionally starting with address) unless\n"
+" specifically set with --image-base\n"
+msgstr ""
+" --enable-auto-image-base[=<endereço>]\n"
+" Escolhe automaticamente a base de imagem\n"
+" para DLLs (opcionalmente iniciando com\n"
+" endereço) a menos que seja definida\n"
+" especificamente com --image-base\n"
+
+#: emultempl/pe.em:468
+#, c-format
+msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n"
+msgstr ""
+" --disable-auto-image-base Não escolhe automaticamente base de\n"
+" imagem. (padrão)\n"
+
+#: emultempl/pe.em:469
+#, c-format
+msgid ""
+" --dll-search-prefix=<string> When linking dynamically to a dll without\n"
+" an importlib, use <string><basename>.dll\n"
+" in preference to lib<basename>.dll \n"
+msgstr ""
+" --dll-search-prefix=<string> Ao vincular dinamicamente a uma dll sem\n"
+" uma biblioteca de importação, use\n"
+" <string><nomebase>.dll como preferência\n"
+" sobre a lib<nomebase>.dll \n"
+
+#: emultempl/pe.em:472
+#, c-format
+msgid ""
+" --enable-auto-import Do sophisticated linking of _sym to\n"
+" __imp_sym for DATA references\n"
+msgstr ""
+" --enable-auto-import Faz vinculação sofisticada de _sym a\n"
+" __imp_sym para referências DATA\n"
+
+#: emultempl/pe.em:474
+#, c-format
+msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n"
+msgstr ""
+" --disable-auto-import Não importa automaticamente itens DATA\n"
+" de DLLs\n"
+
+#: emultempl/pe.em:475
+#, c-format
+msgid ""
+" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n"
+" adding pseudo-relocations resolved at\n"
+" runtime.\n"
+msgstr ""
+" --enable-runtime-pseudo-reloc Contorna limitações de importação\n"
+" automática adicionando pseudo-relocações\n"
+" resolvidas em tempo de execução.\n"
+
+#: emultempl/pe.em:478
+#, c-format
+msgid ""
+" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n"
+" auto-imported DATA.\n"
+msgstr ""
+" --disable-runtime-pseudo-reloc Não adiciona pseudo-relocações em tempo\n"
+" de execução para DATA autoimportados.\n"
+
+#: emultempl/pe.em:480
+#, c-format
+msgid ""
+" --enable-extra-pe-debug Enable verbose debug output when building\n"
+" or linking to DLLs (esp. auto-import)\n"
+msgstr ""
+" --enable-extra-pe-debug Habilita saída de depuração verbosa ao\n"
+" compilar ou vincular a DLLs\n"
+" (autoimportação esp.)\n"
+
+#: emultempl/pe.em:483
+#, c-format
+msgid ""
+" --large-address-aware Executable supports virtual addresses\n"
+" greater than 2 gigabytes\n"
+msgstr ""
+" --large-address-aware Executável oferece suporte a endereços\n"
+" virtuais maiores que 2 gigabytes\n"
+
+#: emultempl/pe.em:485
+#, c-format
+msgid ""
+" --disable-large-address-aware Executable does not support virtual\n"
+" addresses greater than 2 gigabytes\n"
+msgstr ""
+" --disable-large-address-aware Executável não oferece suporte endereços\n"
+" virtuais maior que 2 gigabytes\n"
+
+#: emultempl/pe.em:487
+#, c-format
+msgid ""
+" --enable-long-section-names Use long COFF section names even in\n"
+" executable image files\n"
+msgstr ""
+" --enable-long-section-names Usa nomes longos de seção COFF mesmo em\n"
+" arquivos de imagem executável\n"
+
+#: emultempl/pe.em:489
+#, c-format
+msgid ""
+" --disable-long-section-names Never use long COFF section names, even\n"
+" in object files\n"
+msgstr ""
+" --disable-long-section-names Nunca usa nomes longos de seção COFF,\n"
+" mesmo em arquivos objetos\n"
+
+#: emultempl/pe.em:491
+#, c-format
+msgid ""
+" --dynamicbase\t\t\t Image base address may be relocated using\n"
+"\t\t\t\t address space layout randomization (ASLR)\n"
+msgstr ""
+" --dynamicbase Endereço de base de imagem pode ser\n"
+" relocado usando personalização de\n"
+" layout de espaço de endereço (ASLR)\n"
+
+#: emultempl/pe.em:493
+#, c-format
+msgid " --forceinteg\t\t Code integrity checks are enforced\n"
+msgstr ""
+" --forceinteg Verificações de integridade de código\n"
+" são forçadas\n"
+
+#: emultempl/pe.em:494
+#, c-format
+msgid " --nxcompat\t\t Image is compatible with data execution prevention\n"
+msgstr ""
+" --nxcompat Imagem é compatível com prevenção de\n"
+" execução de dados\n"
+
+#: emultempl/pe.em:495
+#, c-format
+msgid " --no-isolation\t\t Image understands isolation but do not isolate the image\n"
+msgstr ""
+" --no-isolation Imagem entender isolação, mas não isola\n"
+" a imagem\n"
+
+#: emultempl/pe.em:496
+#, c-format
+msgid ""
+" --no-seh\t\t\t Image does not use SEH. No SE handler may\n"
+"\t\t\t\t be called in this image\n"
+msgstr ""
+" --no-seh Imagem não usa SEH. Nenhum manipulador\n"
+" de SE pode ser chamado nesta imagem\n"
+
+#: emultempl/pe.em:498
+#, c-format
+msgid " --no-bind\t\t\t Do not bind this image\n"
+msgstr " --no-bind Não associa (bind) essa imagem\n"
+
+#: emultempl/pe.em:499
+#, c-format
+msgid " --wdmdriver\t\t Driver uses the WDM model\n"
+msgstr " --wdmdriver O driver usa o modelo WDM\n"
+
+#: emultempl/pe.em:500
+#, c-format
+msgid " --tsaware Image is Terminal Server aware\n"
+msgstr " --tsaware Imagem tem ciência de Terminal Server\n"
+
+#: emultempl/pe.em:501
+#, c-format
+msgid " --build-id[=STYLE] Generate build ID\n"
+msgstr " --build-id[=ESTILO] Gera ID de compilação\n"
+
+#: emultempl/pe.em:629
+msgid "%P: warning: bad version number in -subsystem option\n"
+msgstr "%P: aviso: número de versão inválida na opção --subsystem\n"
+
+#: emultempl/pe.em:654
+msgid "%P%F: invalid subsystem type %s\n"
+msgstr "%P%F: subsistema de tipo inválido %s\n"
+
+#: emultempl/pe.em:675
+msgid "%P%F: invalid hex number for PE parameter '%s'\n"
+msgstr "%P%F: número hexa inválido para o PE de parâmetro \"%s\"\n"
+
+#: emultempl/pe.em:692
+msgid "%P%F: strange hex info for PE parameter '%s'\n"
+msgstr "%P%F: informação hexa estranha para o PE de parâmetro \"%s\"\n"
+
+#: emultempl/pe.em:708
+msgid "%F%P: cannot open base file %s\n"
+msgstr "%F%P: não foi abrir o arquivo base %s\n"
+
+#: emultempl/pe.em:1004
+msgid "%P: warning, file alignment > section alignment.\n"
+msgstr "%P: aviso, alinhamento de arquivo > alinhamento de seção.\n"
+
+#: emultempl/pe.em:1017
+msgid "%P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?\n"
+msgstr "%P: aviso: --export-dynamic não oferece suporte para alvos PE; você quis dizer --export-all-symbols?\n"
+
+#: emultempl/pe.em:1069
+#, c-format
+msgid "Warning: resolving %s by linking to %s\n"
+msgstr "Aviso: resolvendo %s por vinculação a %s\n"
+
+#: emultempl/pe.em:1074
+msgid "Use --enable-stdcall-fixup to disable these warnings\n"
+msgstr "Use --enable-stdcall-fixup para desabilitar esses avisos\n"
+
+#: emultempl/pe.em:1075
+msgid "Use --disable-stdcall-fixup to disable these fixups\n"
+msgstr "Use --disable-stdcall-fixup para desabilitar essas correções\n"
+
+#: emultempl/pe.em:1143
+#, c-format
+msgid "%C: Cannot get section contents - auto-import exception\n"
+msgstr "%C: Não foi possível obter conteúdos de seção - excepção de autoimportação\n"
+
+#: emultempl/pe.em:1206
+#, c-format
+msgid "Info: resolving %s by linking to %s (auto-import)\n"
+msgstr "Info: resolvendo %s por vinculação a %s (autoimportação)\n"
+
+#: emultempl/pe.em:1213
+msgid ""
+"%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line.\n"
+"This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.\n"
+msgstr ""
+"%P: aviso: autoimportação foi desativada sem --enable-auto-import especificado na linha de comando.\n"
+"Isso deve funcionar a menos que envolva estruturas de dados constantes referenciando símbolos de DLLs autoimportadas.\n"
+
+#: emultempl/pe.em:1223 emultempl/pe.em:1618 emultempl/pe.em:1825 ldcref.c:517
+#: ldcref.c:628 ldmain.c:1193 ldmisc.c:302 pe-dll.c:722 pe-dll.c:1301
+#: pe-dll.c:1396
+msgid "%B%F: could not read symbols: %E\n"
+msgstr "%B%F: não foi possível ler os símbolos: %E\n"
+
+#: emultempl/pe.em:1337
+msgid "%P: warning: .buildid section discarded, --build-id ignored.\n"
+msgstr "%P: aviso: seção .buildid descartada, --build-id ignorada.\n"
+
+#: emultempl/pe.em:1487
+msgid "%F%P: cannot perform PE operations on non PE output file '%B'.\n"
+msgstr "%F%P: não foi possível realizar operações de PO no arquivo de saída não PE \"%B\".\n"
+
+#: emultempl/pe.em:1868
+#, c-format
+msgid "Errors encountered processing file %s\n"
+msgstr "Encontrados erros de processamento do arquivo %s\n"
+
+#: emultempl/pe.em:1891
+#, c-format
+msgid "Errors encountered processing file %s for interworking\n"
+msgstr "Encontrados erros ao processar o arquivo %s para interfuncionalidade\n"
+
+#: emultempl/pe.em:1953 ldexp.c:740 ldlang.c:3396 ldmain.c:1160
+msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
+msgstr "%P%F: bfd_link_hash_lookup falhou: %E\n"
+
+#: ldcref.c:170
+msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
+msgstr "%X%P: bfd_hash_table_init da tabela cref falhou: %E\n"
+
+#: ldcref.c:176
+msgid "%X%P: cref_hash_lookup failed: %E\n"
+msgstr "%X%P: cref_hash_lookup falhou: %E\n"
+
+#: ldcref.c:186
+msgid "%X%P: cref alloc failed: %E\n"
+msgstr "%X%P: alloc de cref falhou: %E\n"
+
+#: ldcref.c:371
+#, c-format
+msgid ""
+"\n"
+"Cross Reference Table\n"
+"\n"
+msgstr ""
+"\n"
+"Tabela de referência cruzada\n"
+"\n"
+
+#: ldcref.c:372
+msgid "Symbol"
+msgstr "Símbolo"
+
+#: ldcref.c:380
+#, c-format
+msgid "File\n"
+msgstr "Arquivo\n"
+
+#: ldcref.c:384
+#, c-format
+msgid "No symbols\n"
+msgstr "Nenhum símbolo\n"
+
+#: ldcref.c:565
+msgid "%P: symbol `%T' missing from main hash table\n"
+msgstr "%P: símbolo \"%T\" faltando da tabela hash principal\n"
+
+#: ldcref.c:690 ldcref.c:697 ldmain.c:1255 ldmain.c:1262
+msgid "%B%F: could not read relocs: %E\n"
+msgstr "%B%F: não foi possível ler as relocações: %E\n"
+
+#. We found a reloc for the symbol. The symbol is defined
+#. in OUTSECNAME. This reloc is from a section which is
+#. mapped into a section from which references to OUTSECNAME
+#. are prohibited. We must report an error.
+#: ldcref.c:724
+msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
+msgstr "%X%C: referência cruzada proibida de %s para \"%T\" em %s\n"
+
+#: ldctor.c:83
+msgid "%P%X: Different relocs used in set %s\n"
+msgstr "%P%X: Relocações diferentes usadas no conjunto %s\n"
+
+#: ldctor.c:101
+msgid "%P%X: Different object file formats composing set %s\n"
+msgstr "%P%X: Formatos de arquivo objeto diferentes compondo conjunto %s\n"
+
+#: ldctor.c:279 ldctor.c:300
+msgid "%P%X: %s does not support reloc %s for set %s\n"
+msgstr "%P%X: %s não oferece suporte a relocações %s para o conjunto %s\n"
+
+#: ldctor.c:295
+msgid "%P%X: Special section %s does not support reloc %s for set %s\n"
+msgstr "%P%X: Seção especial %s não oferece suporte a relocações %s para o conjunto %s\n"
+
+#: ldctor.c:321
+msgid "%P%X: Unsupported size %d for set %s\n"
+msgstr "%P%X: Tamanho sem suporte %d para o conjunto %s\n"
+
+#: ldctor.c:344
+msgid ""
+"\n"
+"Set Symbol\n"
+"\n"
+msgstr ""
+"\n"
+"Conjunto Símbolo\n"
+"\n"
+
+#: ldemul.c:263
+#, c-format
+msgid "%S SYSLIB ignored\n"
+msgstr "SYSLIB %S ignorado\n"
+
+#: ldemul.c:269
+#, c-format
+msgid "%S HLL ignored\n"
+msgstr "HLL %S ignorado\n"
+
+#: ldemul.c:289
+msgid "%P: unrecognised emulation mode: %s\n"
+msgstr "%P: modo de emulação não reconhecido: %s\n"
+
+#: ldemul.c:290
+msgid "Supported emulations: "
+msgstr "Emulações sem suporte: "
+
+#: ldemul.c:332
+#, c-format
+msgid " no emulation specific options.\n"
+msgstr " sem opções específicas de emulação.\n"
+
+#: ldexp.c:286
+msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
+msgstr "%P%F: bfd_hash_allocate falhou ao criar símbolo %s\n"
+
+#: ldexp.c:318
+msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
+msgstr "%P%F: bfd_hash_lookup falhou ao criar símbolo %s\n"
+
+#: ldexp.c:470
+msgid "%P: warning: address of `%s' isn't multiple of maximum page size\n"
+msgstr "%P: aviso: o endereço de \"%s\" não é múltiplo do tamanho máximo de página\n"
+
+#: ldexp.c:548
+#, c-format
+msgid "%F%S %% by zero\n"
+msgstr "%F%S %% por zero\n"
+
+#: ldexp.c:557
+#, c-format
+msgid "%F%S / by zero\n"
+msgstr "%F%S / por zero\n"
+
+#: ldexp.c:752
+#, c-format
+msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
+msgstr "%X%S: símbolo \"%s\" irresolvível referenciado na expressão\n"
+
+#: ldexp.c:767
+#, c-format
+msgid "%F%S: undefined symbol `%s' referenced in expression\n"
+msgstr "%F%S: símbolo \"%s\" indefinido referenciado na expressão\n"
+
+#: ldexp.c:789 ldexp.c:807 ldexp.c:835
+#, c-format
+msgid "%F%S: undefined section `%s' referenced in expression\n"
+msgstr "%F%S: seção \"%s\" indefinida referenciada na expressão\n"
+
+#: ldexp.c:867 ldexp.c:883
+#, c-format
+msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
+msgstr "%F%S: região de MEMORY \"%s\" indefinida referenciada na expressão\n"
+
+#: ldexp.c:895
+#, c-format
+msgid "%F%S: unknown constant `%s' referenced in expression\n"
+msgstr "%F%S: constante desconhecida \"%s\" referenciada na expressão\n"
+
+#: ldexp.c:1056
+#, c-format
+msgid "%F%S can not PROVIDE assignment to location counter\n"
+msgstr "%F%S não pode fornecer (PROVIDE) atribuição ao contador de localização\n"
+
+#: ldexp.c:1089
+#, c-format
+msgid "%F%S invalid assignment to location counter\n"
+msgstr "%F%S atribuição inválida ao contador de localização\n"
+
+#: ldexp.c:1093
+#, c-format
+msgid "%F%S assignment to location counter invalid outside of SECTIONS\n"
+msgstr "%F%S atribuição ao contador de localização inválida fora de SECTIONS\n"
+
+#: ldexp.c:1112
+msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
+msgstr "%F%S não é possível mover contador de localização de volta (de %V para %V)\n"
+
+#: ldexp.c:1171
+msgid "%P%F:%s: hash creation failed\n"
+msgstr "%P%F:%s: criação de hash falhou\n"
+
+#: ldexp.c:1529 ldexp.c:1555 ldexp.c:1615
+#, c-format
+msgid "%F%S: nonconstant expression for %s\n"
+msgstr "%F%S: expressão não constante para %s\n"
+
+#: ldexp.c:1641 ldlang.c:1235 ldlang.c:3170
+msgid "%P%F: can not create hash table: %E\n"
+msgstr "%P%F: não foi possível criar tabela hash: %E\n"
+
+#: ldfile.c:132
+#, c-format
+msgid "attempt to open %s failed\n"
+msgstr "tentativa de abrir %s falhou\n"
+
+#: ldfile.c:134
+#, c-format
+msgid "attempt to open %s succeeded\n"
+msgstr "tentativa de abrir %s bem-sucedida\n"
+
+#: ldfile.c:140
+msgid "%F%P: invalid BFD target `%s'\n"
+msgstr "%F%P: alvo BFD inválido \"%s\"\n"
+
+#: ldfile.c:265 ldfile.c:295
+msgid "%P: skipping incompatible %s when searching for %s\n"
+msgstr "%P: pulando %s incompatível ao pesquisar para %s\n"
+
+#: ldfile.c:278
+msgid "%F%P: attempted static link of dynamic object `%s'\n"
+msgstr "%F%P: tentado vínculo estático de objeto dinâmico \"%s\"\n"
+
+#: ldfile.c:405
+msgid "%P: cannot find %s (%s): %E\n"
+msgstr "%P: não foi possível localizar %s (%s): %E\n"
+
+#: ldfile.c:408
+msgid "%P: cannot find %s: %E\n"
+msgstr "%P: não foi possível localizar %s: %E\n"
+
+#: ldfile.c:443
+msgid "%P: cannot find %s inside %s\n"
+msgstr "%P: não foi possível localizar %s dentro de %s\n"
+
+#: ldfile.c:446
+msgid "%P: cannot find %s\n"
+msgstr "%P: não foi possível localizar %s\n"
+
+#: ldfile.c:468
+#, c-format
+msgid "cannot find script file %s\n"
+msgstr "não foi possível localizar o arquivo script %s\n"
+
+#: ldfile.c:470
+#, c-format
+msgid "opened script file %s\n"
+msgstr "aberto arquivo de script %s\n"
+
+#: ldfile.c:601
+msgid "%P%F: cannot open linker script file %s: %E\n"
+msgstr "%P%F: não foi possível abrir o arquivo de script do vinculador %s: %E\n"
+
+#: ldfile.c:666
+msgid "%P%F: cannot represent machine `%s'\n"
+msgstr "%P%F: não foi possível representar a máquina \"%s\"\n"
+
+#: ldlang.c:1319
+msgid "%P:%S: warning: redeclaration of memory region `%s'\n"
+msgstr "%P:%S: aviso: redeclaração de região de memória \"%s\"\n"
+
+#: ldlang.c:1325
+msgid "%P:%S: warning: memory region `%s' not declared\n"
+msgstr "%P:%S: aviso: região de memória \"%s\" não declarada\n"
+
+#: ldlang.c:1362
+msgid "%F%P:%S: error: alias for default memory region\n"
+msgstr "%F%P:%S: erro: apelido para região de memória padrão\n"
+
+#: ldlang.c:1373
+msgid "%F%P:%S: error: redefinition of memory region alias `%s'\n"
+msgstr "%F%P:%S: erro: redefinição de região de memória com apelido \"%s\"\n"
+
+#: ldlang.c:1380
+msgid "%F%P:%S: error: memory region `%s' for alias `%s' does not exist\n"
+msgstr "%F%P:%S: erro: a região de memória \"%s\" para apelido \"%s\" não existe\n"
+
+#: ldlang.c:1439 ldlang.c:1478
+msgid "%P%F: failed creating section `%s': %E\n"
+msgstr "%P%F: falha ao criar a seção \"%s\": %E\n"
+
+#: ldlang.c:1999
+msgid ""
+"\n"
+"As-needed library included to satisfy reference by file (symbol)\n"
+"\n"
+msgstr ""
+"\n"
+"Biblioteca conforme necessária incluída para satisfazer referência por arquivo (símbolo)\n"
+"\n"
+
+#: ldlang.c:2065
+#, c-format
+msgid ""
+"\n"
+"Discarded input sections\n"
+"\n"
+msgstr ""
+"\n"
+"Seções de entrada descartadas\n"
+"\n"
+
+#: ldlang.c:2073
+msgid ""
+"\n"
+"Memory Configuration\n"
+"\n"
+msgstr ""
+"\n"
+"Configuração de memória\n"
+"\n"
+
+#: ldlang.c:2075
+msgid "Name"
+msgstr "Nome"
+
+#: ldlang.c:2075
+msgid "Origin"
+msgstr "Origem"
+
+#: ldlang.c:2075
+msgid "Length"
+msgstr "Tamanho"
+
+#: ldlang.c:2075
+msgid "Attributes"
+msgstr "Atributos"
+
+#: ldlang.c:2115
+#, c-format
+msgid ""
+"\n"
+"Linker script and memory map\n"
+"\n"
+msgstr ""
+"\n"
+"Mapa de memória e script de vinculador\n"
+"\n"
+
+#: ldlang.c:2168
+msgid "%P%F: Illegal use of `%s' section\n"
+msgstr "%P%F: Uso ilegal de seção \"%s\"\n"
+
+#: ldlang.c:2177
+msgid "%P%F: output format %s cannot represent section called %s: %E\n"
+msgstr "%P%F: o formato de saída %s não pode representar a seção chamada %s: %E\n"
+
+#: ldlang.c:2757
+msgid "%B: file not recognized: %E\n"
+msgstr "%B: arquivo não reconhecido: %E\n"
+
+#: ldlang.c:2758
+msgid "%B: matching formats:"
+msgstr "%B: formatos correspondentes:"
+
+#: ldlang.c:2765
+msgid "%F%B: file not recognized: %E\n"
+msgstr "%F%B: arquivo não reconhecido: %E\n"
+
+#: ldlang.c:2837
+msgid "%F%B: member %B in archive is not an object\n"
+msgstr "%F%B: o membro %B no arquivo não é um objeto\n"
+
+#: ldlang.c:2852 ldlang.c:2866
+msgid "%F%B: error adding symbols: %E\n"
+msgstr "%F%B: erro ao adicionar símbolos: %E\n"
+
+#: ldlang.c:3140
+msgid "%P: warning: could not find any targets that match endianness requirement\n"
+msgstr "%P: aviso: não foi possível localizar quaisquer alvos que correspondam ao requerimento de endianness\n"
+
+#: ldlang.c:3154
+msgid "%P%F: target %s not found\n"
+msgstr "%P%F: aviso %s não localizado\n"
+
+#: ldlang.c:3156
+msgid "%P%F: cannot open output file %s: %E\n"
+msgstr "%P%F: não foi possível abrir o arquivo de saída %s: %E\n"
+
+#: ldlang.c:3162
+msgid "%P%F:%s: can not make object file: %E\n"
+msgstr "%P%F:%s: não foi possível fazer arquivo objeto: %E\n"
+
+#: ldlang.c:3166
+msgid "%P%F:%s: can not set architecture: %E\n"
+msgstr "%P%F:%s: não foi possível definir arquitetura: %E\n"
+
+#: ldlang.c:3325
+msgid "%P: warning: %s contains output sections; did you forget -T?\n"
+msgstr "%P: aviso: %s contém seções de saída; você se esqueceu de -T?\n"
+
+#: ldlang.c:3465
+msgid "%P%X: required symbol `%s' not defined\n"
+msgstr "%P%X: símbolo exigido \"%s\" não definido\n"
+
+#: ldlang.c:3755
+msgid "%F%P: %s not found for insert\n"
+msgstr "%F%P: %s não localizado para inserção\n"
+
+#: ldlang.c:3998
+msgid " load address 0x%V"
+msgstr " carga com endereço 0x%V"
+
+#: ldlang.c:4234
+msgid "%W (size before relaxing)\n"
+msgstr "%W (tamanho antes de relaxar)\n"
+
+#: ldlang.c:4327
+#, c-format
+msgid "Address of section %s set to "
+msgstr "Endereço de seção %s definido para "
+
+#: ldlang.c:4489
+#, c-format
+msgid "Fail with %d\n"
+msgstr "Falha com %d\n"
+
+#: ldlang.c:4759
+msgid "%X%P: section %s VMA wraps around address space\n"
+msgstr "%X%P: VMA da seção %s cobre o espaço de endereço\n"
+
+#: ldlang.c:4765
+msgid "%X%P: section %s LMA wraps around address space\n"
+msgstr "%X%P: VMA da seção %s cobre o espaço de endereço\n"
+
+#: ldlang.c:4816
+msgid "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"
+msgstr "%X%P: LMA [%V,%V] da seção %s sobrepõe LMA [%V,%V] da seção %s\n"
+
+#: ldlang.c:4859
+msgid "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"
+msgstr "%X%P: VMA [%V,%V] da seção %s sobrepõe VMA [%V,%V] da seção %s\n"
+
+#: ldlang.c:4880
+msgid "%X%P: region `%s' overflowed by %ld bytes\n"
+msgstr "%X%P: a região \"%s\" estourou por %ld bytes\n"
+
+#: ldlang.c:4902
+msgid "%X%P: address 0x%v of %B section `%s' is not within region `%s'\n"
+msgstr "%X%P: endereço 0x%v de seção %B \"%s\" não está dentro da região \"%s\"\n"
+
+#: ldlang.c:4913
+msgid "%X%P: %B section `%s' will not fit in region `%s'\n"
+msgstr "%X%P: a seção %B \"%s\" não vai caber na região \"%s\"\n"
+
+#: ldlang.c:4970
+#, c-format
+msgid "%F%S: non constant or forward reference address expression for section %s\n"
+msgstr "%F%S: expressão de endereço não constante ou referência direta para seção %s\n"
+
+#: ldlang.c:4995
+msgid "%P%X: Internal error on COFF shared library section %s\n"
+msgstr "%P%X: Erro interno em biblioteca compartilhada COFF na seção %s\n"
+
+#: ldlang.c:5053
+msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
+msgstr "%P%F: erro: nenhuma região de memória especificada para seção carregável \"%s\"\n"
+
+#: ldlang.c:5058
+msgid "%P: warning: no memory region specified for loadable section `%s'\n"
+msgstr "%P: aviso: nenhuma região de memória especificada para seção carregável \"%s\"\n"
+
+#: ldlang.c:5081
+msgid "%P: warning: changing start of section %s by %lu bytes\n"
+msgstr "%P: aviso: alterando início da seção %s em %lu bytes\n"
+
+#: ldlang.c:5170
+msgid "%P: warning: dot moved backwards before `%s'\n"
+msgstr "%P: avio: ponto movido para atrás antes de \"%s\"\n"
+
+#: ldlang.c:5345
+msgid "%P%F: can't relax section: %E\n"
+msgstr "%P%F: não é possível relaxar a seção: %E\n"
+
+#: ldlang.c:5697
+msgid "%F%P: invalid data statement\n"
+msgstr "%F%P: instrução de dados inválida\n"
+
+#: ldlang.c:5730
+msgid "%F%P: invalid reloc statement\n"
+msgstr "%F%P: instrução de relocação inválida\n"
+
+#: ldlang.c:6064
+msgid "%P%F: gc-sections requires either an entry or an undefined symbol\n"
+msgstr "%P%F: gc-sections requer uma entrada ou um símbolo indefinido\n"
+
+#: ldlang.c:6089
+msgid "%P%F:%s: can't set start address\n"
+msgstr "%P%F:%s: não foi possível definir endereço inicial\n"
+
+#: ldlang.c:6102 ldlang.c:6121
+msgid "%P%F: can't set start address\n"
+msgstr "%P%F: não foi possível definir endereço inicial\n"
+
+#: ldlang.c:6114
+msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
+msgstr "%P: aviso: não foi possível localizar símbolo de entrada %s; usando o padrão %V\n"
+
+#: ldlang.c:6126
+msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
+msgstr "%P: aviso: não foi possível localizar símbolo de entrada %s; não definindo o endereço inicial\n"
+
+#: ldlang.c:6180
+msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"
+msgstr "%P%F: Sem suporte a vinculação relocável com relocações do formato %s (%B) para o formato %s (%B)\n"
+
+#: ldlang.c:6190
+msgid "%P%X: %s architecture of input file `%B' is incompatible with %s output\n"
+msgstr "%P%X: a arquitetura %s do arquivo de entrada \"%B\" é incompatível com a saída de %s\n"
+
+#: ldlang.c:6212
+msgid "%P%X: failed to merge target specific data of file %B\n"
+msgstr "%P%X: falha ao mesclar dados específicos de alvo do arquivo %B\n"
+
+#: ldlang.c:6283
+msgid "%P%F: Could not define common symbol `%T': %E\n"
+msgstr "%P%F: Não foi possível definir símbolo comum \"%T\": %E\n"
+
+#: ldlang.c:6295
+msgid ""
+"\n"
+"Allocating common symbols\n"
+msgstr ""
+"\n"
+"Alocação de símbolos comuns\n"
+
+#: ldlang.c:6296
+msgid ""
+"Common symbol size file\n"
+"\n"
+msgstr ""
+"Símbolo comum tamanho arquivo\n"
+"\n"
+
+#: ldlang.c:6479
+msgid "%P%F: invalid character %c (%d) in flags\n"
+msgstr "%P%F: caractere inválido %c (%d) nas flags\n"
+
+#: ldlang.c:6606
+msgid "%F%P:%S: error: align with input and explicit align specified\n"
+msgstr "%F%P:%S: erro: alinhamento com entrada e alinhamento explícito especificados\n"
+
+#: ldlang.c:7006
+msgid "%P%F: Failed to create hash table\n"
+msgstr "%P%F: Falha ao criar tabela hash\n"
+
+#: ldlang.c:7029
+msgid "%P%F: %s: plugin reported error after all symbols read\n"
+msgstr "%P%F: %s: plug-ins relatou erro após leitura de todos símbolos\n"
+
+#: ldlang.c:7404
+msgid "%P%F: multiple STARTUP files\n"
+msgstr "%P%F: múltiplos arquivos STARTUP\n"
+
+#: ldlang.c:7450
+msgid "%X%P:%S: section has both a load address and a load region\n"
+msgstr "%X%P:%S: a seção possui um endereço de carga e uma região de carga\n"
+
+#: ldlang.c:7565
+msgid "%X%P:%S: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
+msgstr "%X%P:%S: Sem suporte a PHDRS e FILEHDR quando estão faltando nos cabeçalhos PT_LOAD anteriores\n"
+
+#: ldlang.c:7638
+msgid "%F%P: no sections assigned to phdrs\n"
+msgstr "%F%P: nenhuma seção atribuída a phdrs\n"
+
+#: ldlang.c:7676
+msgid "%F%P: bfd_record_phdr failed: %E\n"
+msgstr "%F%P: bfd_record_phdr falhou: %E\n"
+
+#: ldlang.c:7696
+msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
+msgstr "%X%P: seção \"%s\" atribuída a phdr não existente \"%s\"\n"
+
+#: ldlang.c:8118
+msgid "%X%P: unknown language `%s' in version information\n"
+msgstr "%X%P: linguagem desconhecida \"%s\" na informação da versão\n"
+
+#: ldlang.c:8263
+msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
+msgstr "%X%P: tag de versão anônima não pode ser combinada com de outras versões\n"
+
+#: ldlang.c:8272
+msgid "%X%P: duplicate version tag `%s'\n"
+msgstr "%X%P: tag versão duplicada \"%s\"\n"
+
+#: ldlang.c:8293 ldlang.c:8302 ldlang.c:8320 ldlang.c:8330
+msgid "%X%P: duplicate expression `%s' in version information\n"
+msgstr "%X%P: expressão duplicada \"%s\" na informação de versão\n"
+
+#: ldlang.c:8370
+msgid "%X%P: unable to find version dependency `%s'\n"
+msgstr "%X%P: não foi possível localizar a dependência de versão \"%s\"\n"
+
+#: ldlang.c:8393
+msgid "%X%P: unable to read .exports section contents\n"
+msgstr "%X%P: não foi possível ler conteúdo de seção .exports\n"
+
+#: ldlang.c:8431
+msgid "%F%P: invalid origin for memory region %s\n"
+msgstr "%F%P: origem inválida para região de memória %s\n"
+
+#: ldlang.c:8440
+msgid "%F%P: invalid length for memory region %s\n"
+msgstr "%F%P: tamanho inválido para região de memória %s\n"
+
+#: ldlang.c:8550
+msgid "%X%P: unknown feature `%s'\n"
+msgstr "%X%P: recurso desconhecido \"%s\"\n"
+
+#: ldmain.c:250
+msgid "%X%P: can't set BFD default target to `%s': %E\n"
+msgstr "%X%P: não foi possível definir alvo padrão BFD para \"%s\": %E\n"
+
+#: ldmain.c:349
+msgid "built in linker script"
+msgstr "script de vinculador incorporado"
+
+#: ldmain.c:359
+msgid "using external linker script:"
+msgstr "usando script de vinculador externo:"
+
+#: ldmain.c:361
+msgid "using internal linker script:"
+msgstr "usando script de vinculador interno:"
+
+#: ldmain.c:411
+msgid "%P%F: no input files\n"
+msgstr "%P%F: nenhum arquivo de entrada\n"
+
+#: ldmain.c:415
+msgid "%P: mode %s\n"
+msgstr "%P: modo %s\n"
+
+#: ldmain.c:431
+msgid "%P%F: cannot open map file %s: %E\n"
+msgstr "%P%F: não foi possível abrir o arquivo de mapeamento %s: %E\n"
+
+#: ldmain.c:480
+msgid "%P: link errors found, deleting executable `%s'\n"
+msgstr "%P: erros de vinculação localizados, excluindo executável \"%s\"\n"
+
+#: ldmain.c:489
+msgid "%F%B: final close failed: %E\n"
+msgstr "%F%B: fechamento final falhou: %E\n"
+
+#: ldmain.c:516
+msgid "%P%F: unable to open for source of copy `%s'\n"
+msgstr "%P%F: não foi possível abrir para ordem da cópia \"%s\"\n"
+
+#: ldmain.c:519
+msgid "%P%F: unable to open for destination of copy `%s'\n"
+msgstr "%P%F: não foi possível abrir para destino da cópia \"%s\"\n"
+
+#: ldmain.c:526
+msgid "%P: Error writing file `%s'\n"
+msgstr "%P: Erro ao escrever o arquivo \"%s\"\n"
+
+#: ldmain.c:531 pe-dll.c:1786
+#, c-format
+msgid "%P: Error closing file `%s'\n"
+msgstr "%P: Erro ao fechar o arquivo \"%s\"\n"
+
+#: ldmain.c:548
+#, c-format
+msgid "%s: total time in link: %ld.%06ld\n"
+msgstr "%s: tempo total no vínculo: %ld.%06ld\n"
+
+#: ldmain.c:551
+#, c-format
+msgid "%s: data size %ld\n"
+msgstr "%s: tamanho de dados %ld\n"
+
+#: ldmain.c:635
+msgid "%P%F: missing argument to -m\n"
+msgstr "%P%F: faltando argumento para -m\n"
+
+#: ldmain.c:685 ldmain.c:702 ldmain.c:722 ldmain.c:754
+msgid "%P%F: bfd_hash_table_init failed: %E\n"
+msgstr "%P%F: bfd_hash_table_init falhou: %E\n"
+
+#: ldmain.c:689 ldmain.c:706 ldmain.c:726
+msgid "%P%F: bfd_hash_lookup failed: %E\n"
+msgstr "%P%F: bfd_hash_lookup falhou: %E\n"
+
+#: ldmain.c:740
+msgid "%X%P: error: duplicate retain-symbols-file\n"
+msgstr "%X%P: erro: retain-symbols-file duplicado\n"
+
+#: ldmain.c:784
+msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
+msgstr "%P%F: bfd_hash_lookup para inserção falhou: %E\n"
+
+#: ldmain.c:789
+msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
+msgstr "%P: \"-retain-symbols-file\" sobrepõe \"-s\" e \"-S\"\n"
+
+#: ldmain.c:883
+msgid ""
+"Archive member included to satisfy reference by file (symbol)\n"
+"\n"
+msgstr ""
+"Membro de arquivo incluído para satisfazer referência por arquivo (símbolo)\n"
+"\n"
+
+#: ldmain.c:989
+msgid "%X%C: multiple definition of `%T'\n"
+msgstr "%X%C: múltiplas definições de \"%T\"\n"
+
+#: ldmain.c:992
+msgid "%D: first defined here\n"
+msgstr "%D: definido primeiro aqui\n"
+
+#: ldmain.c:996
+msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
+msgstr "%P: Desabilitando relaxamento: não vai funcionar com múltiplas definições\n"
+
+#: ldmain.c:1048
+msgid "%B: warning: definition of `%T' overriding common\n"
+msgstr "%B: aviso: definição de \"%T\" sobrepondo comum\n"
+
+#: ldmain.c:1051
+msgid "%B: warning: common is here\n"
+msgstr "%B: aviso: comum está aqui\n"
+
+#: ldmain.c:1058
+msgid "%B: warning: common of `%T' overridden by definition\n"
+msgstr "%B: aviso: comum de \"%T\" sobreposto pela definição\n"
+
+#: ldmain.c:1061
+msgid "%B: warning: defined here\n"
+msgstr "%B: aviso: definido aqui\n"
+
+#: ldmain.c:1068
+msgid "%B: warning: common of `%T' overridden by larger common\n"
+msgstr "%B: aviso: comum de \"%T\" sobreposto por um comum maior\n"
+
+#: ldmain.c:1071
+msgid "%B: warning: larger common is here\n"
+msgstr "%B: aviso: comum maior está aqui\n"
+
+#: ldmain.c:1075
+msgid "%B: warning: common of `%T' overriding smaller common\n"
+msgstr "%B: aviso: comum de \"%T\" sobrepondo um comum menor\n"
+
+#: ldmain.c:1078
+msgid "%B: warning: smaller common is here\n"
+msgstr "%B: aviso: comum menor está aqui\n"
+
+#: ldmain.c:1082
+msgid "%B: warning: multiple common of `%T'\n"
+msgstr "%B: aviso: múltiplos comuns de \"%T\"\n"
+
+#: ldmain.c:1084
+msgid "%B: warning: previous common is here\n"
+msgstr "%B: aviso: comum anterior está aqui\n"
+
+#: ldmain.c:1102 ldmain.c:1138
+msgid "%P: warning: global constructor %s used\n"
+msgstr "%P: aviso: construtor global %s usado\n"
+
+#: ldmain.c:1148
+msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
+msgstr "%P%F: erro de backend BFD: sem suporte a BFD_RELOC_CTOR\n"
+
+#. We found a reloc for the symbol we are looking for.
+#: ldmain.c:1220 ldmain.c:1222 ldmain.c:1224 ldmain.c:1232 ldmain.c:1275
+msgid "warning: "
+msgstr "aviso: "
+
+#: ldmain.c:1328
+msgid "%X%C: undefined reference to `%T'\n"
+msgstr "%X%C: referência não definida para \"%T\"\n"
+
+#: ldmain.c:1331
+msgid "%C: warning: undefined reference to `%T'\n"
+msgstr "%C: aviso: referência não definida para \"%T\"\n"
+
+#: ldmain.c:1337
+msgid "%X%D: more undefined references to `%T' follow\n"
+msgstr "%X%D: mais referências não definidas para \"%T\" seguir\n"
+
+#: ldmain.c:1340
+msgid "%D: warning: more undefined references to `%T' follow\n"
+msgstr "%D: aviso: mais referências não definidas para \"%T\" seguir\n"
+
+#: ldmain.c:1351
+msgid "%X%B: undefined reference to `%T'\n"
+msgstr "%X%B: referência não definida para \"%T\"\n"
+
+#: ldmain.c:1354
+msgid "%B: warning: undefined reference to `%T'\n"
+msgstr "%B: aviso: referência não definida para \"%T\"\n"
+
+#: ldmain.c:1360
+msgid "%X%B: more undefined references to `%T' follow\n"
+msgstr "%X%B: mais referências não definidas para \"%T\" seguir\n"
+
+#: ldmain.c:1363
+msgid "%B: warning: more undefined references to `%T' follow\n"
+msgstr "%B: aviso: mais referências não definidas para \"%T\" seguir\n"
+
+#: ldmain.c:1400
+msgid " additional relocation overflows omitted from the output\n"
+msgstr " estouro de relocação adiciona omitido da saída\n"
+
+#: ldmain.c:1413
+msgid " relocation truncated to fit: %s against undefined symbol `%T'"
+msgstr " relocação truncada para caber: %s contra símbolo não definido \"%T\""
+
+#: ldmain.c:1419
+msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"
+msgstr " relocação truncada para caber: %s contra símbolo não definido \"%T\" na seção %A em %B"
+
+#: ldmain.c:1432
+msgid " relocation truncated to fit: %s against `%T'"
+msgstr " relocação truncada para caber: %s contra \"%T\""
+
+#: ldmain.c:1448
+msgid "%X%H: dangerous relocation: %s\n"
+msgstr "%X%H: relocação perigosa: %s\n"
+
+#: ldmain.c:1462
+msgid "%X%H: reloc refers to symbol `%T' which is not being output\n"
+msgstr "%X%H: a relocação faz referência a símbolo \"%T\" que não está sendo emitido\n"
+
+#: ldmisc.c:153
+#, c-format
+msgid "no symbol"
+msgstr "nenhum símbolo"
+
+#: ldmisc.c:341
+msgid "%B: In function `%T':\n"
+msgstr "%B: Na função \"%T\":\n"
+
+#: ldmisc.c:476
+msgid "%F%P: internal error %s %d\n"
+msgstr "%F%P: erro interno %s %d\n"
+
+#: ldmisc.c:540
+msgid "%P: internal error: aborting at %s:%d in %s\n"
+msgstr "%P: erro interno: abortando em %s:%d em %s\n"
+
+#: ldmisc.c:543
+msgid "%P: internal error: aborting at %s:%d\n"
+msgstr "%P: erro interno: abortando em %s:%d\n"
+
+#: ldmisc.c:545
+msgid "%P%F: please report this bug\n"
+msgstr "%P%F: Por favor, relate o erro\n"
+
+#. Output for noisy == 2 is intended to follow the GNU standards.
+#: ldver.c:37
+#, c-format
+msgid "GNU ld %s\n"
+msgstr "GNU ld %s\n"
+
+#: ldver.c:41
+#, c-format
+msgid "Copyright (C) 2017 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2017 Free Software Foundation, Inc.\n"
+
+#: ldver.c:42
+#, c-format
+msgid ""
+"This program is free software; you may redistribute it under the terms of\n"
+"the GNU General Public License version 3 or (at your option) a later version.\n"
+"This program has absolutely no warranty.\n"
+msgstr ""
+"Este programa é um software livre; você pode redistribuí-lo sob os termos\n"
+"da Licença Pública Geral GNU versão 3 ou (a seu critério) uma versão posterior.\n"
+"Esse programa possui absolutamente nenhuma garantia.\n"
+
+#: ldver.c:52
+#, c-format
+msgid " Supported emulations:\n"
+msgstr " Emulações com suporte:\n"
+
+#: ldwrite.c:60 ldwrite.c:206
+msgid "%P%F: bfd_new_link_order failed\n"
+msgstr "%P%F: bfd_new_link_order falhou\n"
+
+#: ldwrite.c:364
+msgid "%F%P: cannot create split section name for %s\n"
+msgstr "%F%P: não foi possível criar nome de seção dividida para %s\n"
+
+#: ldwrite.c:376
+msgid "%F%P: clone section failed: %E\n"
+msgstr "%F%P: clonagem de seção falhou: %E\n"
+
+#: ldwrite.c:414
+#, c-format
+msgid "%8x something else\n"
+msgstr "%8x alguma outra coisa\n"
+
+#: ldwrite.c:584
+msgid "%F%P: final link failed: %E\n"
+msgstr "%F%P: vinculação final falhou: %E\n"
+
+#: lexsup.c:102 lexsup.c:276
+msgid "KEYWORD"
+msgstr "PALAVRA-CHAVE"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:102
+msgid "Shared library control for HP/UX compatibility"
+msgstr ""
+"Controle de biblioteca compartilhada para\n"
+" compatibilidade com HP/UX"
+
+#: lexsup.c:105
+msgid "ARCH"
+msgstr "ARCH"
+
+#: lexsup.c:105
+msgid "Set architecture"
+msgstr "Define a arquitetura"
+
+#: lexsup.c:107 lexsup.c:398
+msgid "TARGET"
+msgstr "ALVO"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:107
+msgid "Specify target for following input files"
+msgstr ""
+"Especifica o alvo para os seguintes arquivos\n"
+" de entrada"
+
+#: lexsup.c:110 lexsup.c:167 lexsup.c:171 lexsup.c:202 lexsup.c:215
+#: lexsup.c:217 lexsup.c:352 lexsup.c:416 lexsup.c:483 lexsup.c:496
+msgid "FILE"
+msgstr "ARQUIVO"
+
+#: lexsup.c:110
+msgid "Read MRI format linker script"
+msgstr "Lê script de vinculador no formato MRI"
+
+#: lexsup.c:112
+msgid "Force common symbols to be defined"
+msgstr "Força símbolos comuns a serem definidos"
+
+#: lexsup.c:117
+msgid "Force group members out of groups"
+msgstr "Força membros de grupos para fora dos grupos"
+
+#: lexsup.c:119 lexsup.c:460 lexsup.c:462 lexsup.c:464 lexsup.c:466
+#: lexsup.c:468 lexsup.c:470
+msgid "ADDRESS"
+msgstr "ENDEREÇO"
+
+#: lexsup.c:119
+msgid "Set start address"
+msgstr "Define o endereço inicial"
+
+#: lexsup.c:121
+msgid "Export all dynamic symbols"
+msgstr "Exporta todas os símbolos dinâmicos"
+
+#: lexsup.c:123
+msgid "Undo the effect of --export-dynamic"
+msgstr "Desfaz o efeito de --export-dynamic"
+
+#: lexsup.c:125
+msgid "Link big-endian objects"
+msgstr "Vincula objetos big-endian"
+
+#: lexsup.c:127
+msgid "Link little-endian objects"
+msgstr "Vincula objetos little-endian"
+
+#: lexsup.c:129 lexsup.c:132
+msgid "SHLIB"
+msgstr "SHLIB"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:129
+msgid "Auxiliary filter for shared object symbol table"
+msgstr ""
+"Filtro auxiliar para tabela de símbolos\n"
+" de objeto compartilhado"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:132
+msgid "Filter for shared object symbol table"
+msgstr ""
+"Filtro para tabela de símbolos de objeto\n"
+" compartilhado"
+
+#: lexsup.c:135
+msgid "Ignored"
+msgstr "Ignorado"
+
+#: lexsup.c:137
+msgid "SIZE"
+msgstr "TAMANHO"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:137
+msgid "Small data size (if no size, same as --shared)"
+msgstr ""
+"Tamanho de dados pequenos (se nenhum tamanho,\n"
+" mesmo que --shared)"
+
+#: lexsup.c:140
+msgid "FILENAME"
+msgstr "ARQUIVO"
+
+#: lexsup.c:140
+msgid "Set internal name of shared library"
+msgstr "Define nome interno da biblioteca compartilhada"
+
+#: lexsup.c:142
+msgid "PROGRAM"
+msgstr "PROGRAMA"
+
+#: lexsup.c:142
+msgid "Set PROGRAM as the dynamic linker to use"
+msgstr "Define PROGRAMA como vinculador dinâmico a usar"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:145
+msgid "Produce an executable with no program interpreter header"
+msgstr ""
+"Produz um executável com nenhum cabeçalho\n"
+" de interpretação de programa"
+
+#: lexsup.c:148
+msgid "LIBNAME"
+msgstr "NOMELIB"
+
+#: lexsup.c:148
+msgid "Search for library LIBNAME"
+msgstr "Pesquisa pela biblioteca NOMELIB"
+
+#: lexsup.c:150
+msgid "DIRECTORY"
+msgstr "DIRETÓRIO"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:150
+msgid "Add DIRECTORY to library search path"
+msgstr ""
+"Adiciona DIRETÓRIO ao caminho de pesquisa\n"
+" de biblioteca"
+
+#: lexsup.c:153
+msgid "Override the default sysroot location"
+msgstr "Substitui o local da raiz do sistema padrão"
+
+#: lexsup.c:155
+msgid "EMULATION"
+msgstr "EMULAÇÃO"
+
+# Espaço extra para promover alinhamento
+#: lexsup.c:155
+msgid "Set emulation"
+msgstr " Define emulação"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:157
+msgid "Print map file on standard output"
+msgstr ""
+"Imprime o arquivo de mapeamento para a saída\n"
+" padrão"
+
+#: lexsup.c:159
+msgid "Do not page align data"
+msgstr "Não alinha em página os dados"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:161
+msgid "Do not page align data, do not make text readonly"
+msgstr ""
+"Não alinha em página os dados, não torna o\n"
+" texto somente leitura"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:164
+msgid "Page align data, make text readonly"
+msgstr ""
+"Alinha em página os dados, torna o\n"
+" texto somente leitura"
+
+#: lexsup.c:167
+msgid "Set output file name"
+msgstr "Define nome de arquivo de saída"
+
+#: lexsup.c:169
+msgid "Optimize output file"
+msgstr "Otimiza o arquivo de saída"
+
+#: lexsup.c:171
+msgid "Generate import library"
+msgstr "Gera biblioteca de importação"
+
+#: lexsup.c:174
+msgid "PLUGIN"
+msgstr "PLUG-IN"
+
+#: lexsup.c:174
+msgid "Load named plugin"
+msgstr "Carrega o plug-in especificado"
+
+#: lexsup.c:176
+msgid "ARG"
+msgstr "ARG"
+
+#: lexsup.c:176
+msgid "Send arg to last-loaded plugin"
+msgstr "Envia arg para o último plug-in carregado"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:178 lexsup.c:181
+msgid "Ignored for GCC LTO option compatibility"
+msgstr ""
+"Ignorada para manter compatibilidade com\n"
+" a opção LTO do GCC"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:185
+msgid "Ignored for GCC linker option compatibility"
+msgstr ""
+"Ignorada para manter compatibilidade com\n"
+" a opção de vinculação do GCC"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:188 lexsup.c:191
+msgid "Ignored for gold option compatibility"
+msgstr ""
+"Ignorada para manter compatibilidade com\n"
+" a opção gold"
+
+#: lexsup.c:194
+msgid "Ignored for SVR4 compatibility"
+msgstr "Ignorada para manter compatibilidade com SVR4"
+
+#: lexsup.c:198
+msgid "Generate relocatable output"
+msgstr "Gera uma saída relocável"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:202
+msgid "Just link symbols (if directory, same as --rpath)"
+msgstr ""
+"Só vincula símbolos (se diretório, igual\n"
+" a --rpath)"
+
+#: lexsup.c:205
+msgid "Strip all symbols"
+msgstr "Remove todos símbolos"
+
+#: lexsup.c:207
+msgid "Strip debugging symbols"
+msgstr "Remove símbolos de depuração"
+
+#: lexsup.c:209
+msgid "Strip symbols in discarded sections"
+msgstr "Remove símbolos nas seções descartadas"
+
+#: lexsup.c:211
+msgid "Do not strip symbols in discarded sections"
+msgstr "Não remove símbolos nas seções descartadas"
+
+#: lexsup.c:213
+msgid "Trace file opens"
+msgstr "Rastreia aberturas de arquivos"
+
+#: lexsup.c:215
+msgid "Read linker script"
+msgstr "Lê script do vinculador"
+
+#: lexsup.c:217
+msgid "Read default linker script"
+msgstr "Lê o script do vinculador padrão"
+
+#: lexsup.c:221 lexsup.c:224 lexsup.c:242 lexsup.c:326 lexsup.c:350
+#: lexsup.c:453 lexsup.c:486 lexsup.c:525 lexsup.c:528
+msgid "SYMBOL"
+msgstr "SÃMBOLO"
+
+#: lexsup.c:221
+msgid "Start with undefined reference to SYMBOL"
+msgstr "Inicia com referência não definida a SÃMBOLO"
+
+#: lexsup.c:224
+msgid "Require SYMBOL be defined in the final output"
+msgstr "Exibe que SÃMBOLO esteja definido na saída final"
+
+#: lexsup.c:227
+msgid "[=SECTION]"
+msgstr "[=SEÇÃO]"
+
+# Espaço extra para promover alinhamento
+#: lexsup.c:228
+msgid "Don't merge input [SECTION | orphan] sections"
+msgstr " Não mescla seções [SEÇÃO | órfãs] de entrada"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:230
+msgid "Build global constructor/destructor tables"
+msgstr ""
+"Constrói tabelas globais de\n"
+" construtor/desconstrutor"
+
+#: lexsup.c:232
+msgid "Print version information"
+msgstr "Emite as informações da versão"
+
+#: lexsup.c:234
+msgid "Print version and emulation information"
+msgstr "Exibe as informações da versão e emulação"
+
+#: lexsup.c:236
+msgid "Discard all local symbols"
+msgstr "Descarta todos os símbolos locais"
+
+#: lexsup.c:238
+msgid "Discard temporary local symbols (default)"
+msgstr "Descarta símbolos locais temporários (padrão)"
+
+#: lexsup.c:240
+msgid "Don't discard any local symbols"
+msgstr "Não descarta quaisquer símbolos locais"
+
+#: lexsup.c:242
+msgid "Trace mentions of SYMBOL"
+msgstr "Rastreia menções ao SÃMBOLO"
+
+#: lexsup.c:244 lexsup.c:418 lexsup.c:420
+msgid "PATH"
+msgstr "CAMINHO"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:244
+msgid "Default search path for Solaris compatibility"
+msgstr ""
+"O caminho de pesquisa padrão para manter\n"
+" compatibilidade com Solaris"
+
+#: lexsup.c:247
+msgid "Start a group"
+msgstr "Inicia um grupo"
+
+#: lexsup.c:249
+msgid "End a group"
+msgstr "Termina um grupo"
+
+#: lexsup.c:253
+msgid "Accept input files whose architecture cannot be determined"
+msgstr ""
+"Aceita arquivos de entrada cuja arquitetura\n"
+" não pôde ser determinada"
+
+#: lexsup.c:257
+msgid "Reject input files whose architecture is unknown"
+msgstr ""
+"Rejeita arquivos de entrada cuja arquitetura\n"
+" é desconhecida"
+
+#: lexsup.c:269
+msgid "Only set DT_NEEDED for following dynamic libs if used"
+msgstr ""
+"Só define DT_NEEDED para as seguintes\n"
+" bibliotecas dinâmicas se usadas"
+
+#: lexsup.c:272
+msgid ""
+"Always set DT_NEEDED for dynamic libraries mentioned on\n"
+" the command line"
+msgstr ""
+"Sempre define DT_NEEDED para bibliotecas\n"
+" dinâmicas mencionadas na linha de comando"
+
+#: lexsup.c:276
+msgid "Ignored for SunOS compatibility"
+msgstr "Ignorado por questão de compatibilidade com SunOS"
+
+#: lexsup.c:278
+msgid "Link against shared libraries"
+msgstr "Vincula com bibliotecas compartilhadas"
+
+#: lexsup.c:284
+msgid "Do not link against shared libraries"
+msgstr "Não vincula com bibliotecas compartilhadas"
+
+#: lexsup.c:292
+msgid "Bind global references locally"
+msgstr "Associa referências globais localmente"
+
+#: lexsup.c:294
+msgid "Bind global function references locally"
+msgstr "Associa referências de função global localmente"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:296
+msgid "Check section addresses for overlaps (default)"
+msgstr ""
+"Verifica os endereços de seção por\n"
+" sobreposições (padrão)"
+
+#: lexsup.c:299
+msgid "Do not check section addresses for overlaps"
+msgstr "Não verifica endereços de seção por sobreposições"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:303
+msgid "Copy DT_NEEDED links mentioned inside DSOs that follow"
+msgstr ""
+"Copia vínculos a DT_NEEDED mencionados dentro\n"
+" de DSOs que segue"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:307
+msgid "Do not copy DT_NEEDED links mentioned inside DSOs that follow"
+msgstr ""
+"Não copia vínculos a DT_NEEDED mencionados\n"
+" dentro de DSOs que segue"
+
+#: lexsup.c:311
+msgid "Output cross reference table"
+msgstr "Emite tabela de referência cruzada"
+
+#: lexsup.c:313
+msgid "SYMBOL=EXPRESSION"
+msgstr "SÃMBOLO=EXPRESSÃO"
+
+#: lexsup.c:313
+msgid "Define a symbol"
+msgstr "Define um símbolo"
+
+#: lexsup.c:315
+msgid "[=STYLE]"
+msgstr "[=ESTILO]"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:315
+msgid "Demangle symbol names [using STYLE]"
+msgstr ""
+"Realiza \"demangle\" em nomes de símbolos\n"
+" [usando ESTILO]"
+
+#: lexsup.c:318
+msgid "Generate embedded relocs"
+msgstr "Gera relocações incorporadas"
+
+#: lexsup.c:320
+msgid "Treat warnings as errors"
+msgstr "Trata avisos como erros"
+
+#: lexsup.c:323
+msgid "Do not treat warnings as errors (default)"
+msgstr "Não trata de avisos como erros (padrão)"
+
+# Espaço extra para promover alinhamento
+#: lexsup.c:326
+msgid "Call SYMBOL at unload-time"
+msgstr " Chama SÃMBOLO em tempo de descarregamento"
+
+#: lexsup.c:328
+msgid "Force generation of file with .exe suffix"
+msgstr "Força geração de arquivo com sufixo .exe"
+
+#: lexsup.c:330
+msgid "Remove unused sections (on some targets)"
+msgstr "Remove seções não usadas (em alguns alvos)"
+
+#: lexsup.c:333
+msgid "Don't remove unused sections (default)"
+msgstr "Não remove seções não usadas (padrão)"
+
+#: lexsup.c:336
+msgid "List removed unused sections on stderr"
+msgstr "Lista seções não usadas removidas na stderr"
+
+#: lexsup.c:339
+msgid "Do not list removed unused sections"
+msgstr "Não lista seções não usadas removidas"
+
+#: lexsup.c:342
+msgid "Keep exported symbols when removing unused sections"
+msgstr ""
+"Mantém símbolos exportados ao remover\n"
+" seções não usadas"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:345
+msgid "Set default hash table size close to <NUMBER>"
+msgstr ""
+"Define o tamanho da tabela de hash padrão\n"
+" próximo a <NÚMERO>"
+
+#: lexsup.c:348
+msgid "Print option help"
+msgstr "Emite ajuda das opções"
+
+# Espaço extra para promover alinhamento
+#: lexsup.c:350
+msgid "Call SYMBOL at load-time"
+msgstr " Chama SÃMBOLO em tempo de carregamento"
+
+#: lexsup.c:352
+msgid "Write a map file"
+msgstr "Grava um arquivo de mapeamento"
+
+#: lexsup.c:354
+msgid "Do not define Common storage"
+msgstr "Não define o armazenamento comum"
+
+#: lexsup.c:356
+msgid "Do not demangle symbol names"
+msgstr "Não realiza \"demangle\" em nomes de símbolos"
+
+#: lexsup.c:358
+msgid "Use less memory and more disk I/O"
+msgstr "Usa menos memória e mais E/S de disco"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:360
+msgid "Do not allow unresolved references in object files"
+msgstr ""
+"Não permite referências não resolvidas em\n"
+" arquivos de objeto"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:363
+msgid "Allow unresolved references in shared libraries"
+msgstr ""
+"Permite referências não resolvidas em\n"
+" bibliotecas compartilhadas"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:367
+msgid "Do not allow unresolved references in shared libs"
+msgstr ""
+"Não permite referências não resolvidas em\n"
+" bibliotecas compartilhadas"
+
+#: lexsup.c:371
+msgid "Allow multiple definitions"
+msgstr "Permite múltiplas definições"
+
+#: lexsup.c:373
+msgid "Disallow undefined version"
+msgstr "Proíbe versão não definida"
+
+#: lexsup.c:375
+msgid "Create default symbol version"
+msgstr "Cria versão de símbolo padrão"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:378
+msgid "Create default symbol version for imported symbols"
+msgstr ""
+"Cria versão de símbolo padrão para símbolos\n"
+" importados"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:381
+msgid "Don't warn about mismatched input files"
+msgstr ""
+"Não avisa sobre arquivos de entrada não\n"
+" incompatíveis"
+
+#: lexsup.c:384
+msgid "Don't warn on finding an incompatible library"
+msgstr "Não avisa ao localizar uma biblioteca incompatível"
+
+#: lexsup.c:387
+msgid "Turn off --whole-archive"
+msgstr "Desliga --whole-archive"
+
+#: lexsup.c:389
+msgid "Create an output file even if errors occur"
+msgstr "Cria um arquivo de saída mesmo se ocorrer erros"
+
+#: lexsup.c:394
+msgid ""
+"Only use library directories specified on\n"
+" the command line"
+msgstr ""
+"Usa somente diretórios de biblioteca\n"
+" especificados na linha de comando"
+
+#: lexsup.c:398
+msgid "Specify target of output file"
+msgstr "Especifica alvo de arquivo de saída"
+
+#: lexsup.c:401
+msgid "Print default output format"
+msgstr "Emite o formato de saída padrão"
+
+#: lexsup.c:403
+msgid "Print current sysroot"
+msgstr "Emite sysroot atual"
+
+#: lexsup.c:405
+msgid "Ignored for Linux compatibility"
+msgstr "Ignorado por questão de compatibilidade com Linux"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:408
+msgid "Reduce memory overheads, possibly taking much longer"
+msgstr ""
+"Reduz excessos de uso de memória,\n"
+" possivelmente demorando mais"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:411
+msgid "Reduce code size by using target specific optimizations"
+msgstr ""
+"Reduz o tamanho do código usando\n"
+" otimizações específicas de alvo"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:413
+msgid "Do not use relaxation techniques to reduce code size"
+msgstr ""
+"Não usa técnicas de relaxamento para\n"
+" reduzir tamanho do código"
+
+#: lexsup.c:416
+msgid "Keep only symbols listed in FILE"
+msgstr "Mantém apenas símbolos listados no ARQUIVO"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:418
+msgid "Set runtime shared library search path"
+msgstr ""
+"Define o caminho de pesquisa de biblioteca\n"
+" compartilhada em tempo de execução"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:420
+msgid "Set link time shared library search path"
+msgstr ""
+"Define o caminho de pesquisa de biblioteca\n"
+" compartilhada em tempo de vínculo"
+
+#: lexsup.c:423
+msgid "Create a shared library"
+msgstr "Cria uma biblioteca compartilhada"
+
+#: lexsup.c:427
+msgid "Create a position independent executable"
+msgstr "Cria um executável independente de posição"
+
+#: lexsup.c:431
+msgid "[=ascending|descending]"
+msgstr "[=ascending|descending]"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:432
+msgid "Sort common symbols by alignment [in specified order]"
+msgstr ""
+"Ordena símbolos comuns por alinhamento\n"
+" [na ordem especificada]"
+
+#: lexsup.c:437
+msgid "name|alignment"
+msgstr "nome|alinhamento"
+
+#: lexsup.c:438
+msgid "Sort sections by name or maximum alignment"
+msgstr "Ordena seções por nome ou alinhamento máximo"
+
+#: lexsup.c:440
+msgid "COUNT"
+msgstr "QTDE"
+
+#: lexsup.c:440
+msgid "How many tags to reserve in .dynamic section"
+msgstr "Quantas tags para reservar na seção .dynamic"
+
+#: lexsup.c:443
+msgid "[=SIZE]"
+msgstr "[=TAMANHO]"
+
+#: lexsup.c:443
+msgid "Split output sections every SIZE octets"
+msgstr "Divide a saída em seções a cada TAMANHO octetos"
+
+#: lexsup.c:446
+msgid "[=COUNT]"
+msgstr "[=CONTAGEM]"
+
+# Dividi linhas para promover alinhamento em 80 caracteres
+#: lexsup.c:446
+msgid "Split output sections every COUNT relocs"
+msgstr ""
+"Divide a saída em seções a cada CONTAGEM\n"
+" relocações"
+
+#: lexsup.c:449
+msgid "Print memory usage statistics"
+msgstr "Emite estatísticas de uso de memória"
+
+#: lexsup.c:451
+msgid "Display target specific options"
+msgstr "Exibe opções específicas de alvo"
+
+# Espaço extra para promover alinhamento
+#: lexsup.c:453
+msgid "Do task level linking"
+msgstr " Faz vínculo em nível de tarefa"
+
+#: lexsup.c:455
+msgid "Use same format as native linker"
+msgstr "Usa o mesmo formato que o vinculador nativo"
+
+#: lexsup.c:457
+msgid "SECTION=ADDRESS"
+msgstr "SEÇÃO=ENDEREÇO"
+
+#: lexsup.c:457
+msgid "Set address of named section"
+msgstr "Define o endereço da seção dada"
+
+# Espaço extra para promover alinhamento
+#: lexsup.c:460
+msgid "Set address of .bss section"
+msgstr " Define o endereço da seção .bss"
+
+# Espaço extra para promover alinhamento
+#: lexsup.c:462
+msgid "Set address of .data section"
+msgstr " Define o endereço da seção .data"
+
+# Espaço extra para promover alinhamento
+#: lexsup.c:464
+msgid "Set address of .text section"
+msgstr " Define o endereço da seção .text"
+
+# Espaço extra para promover alinhamento
+#: lexsup.c:466
+msgid "Set address of text segment"
+msgstr " Define o endereço do segmento \"text\""
+
+# Espaço extra para promover alinhamento
+#: lexsup.c:468
+msgid "Set address of rodata segment"
+msgstr " Define o endereço do segmento \"rodata\""
+
+# Espaço extra para promover alinhamento
+#: lexsup.c:470
+msgid "Set address of ldata segment"
+msgstr " Define o endereço do segmento \"ldata\""
+
+# Não traduzir "<method>", pois seu texto correspondente na opção não é traduzível.
+#: lexsup.c:473
+msgid ""
+"How to handle unresolved symbols. <method> is:\n"
+" ignore-all, report-all, ignore-in-object-files,\n"
+" ignore-in-shared-libs"
+msgstr ""
+"Como tratar símbolos não resolvidos. <method> é:\n"
+" ignore-all, report-all, ignore-in-object-files,\n"
+" ignore-in-shared-libs"
+
+#: lexsup.c:478
+msgid "[=NUMBER]"
+msgstr "[=NÚMERO]"
+
+# Espaço extra para promover alinhamento
+#: lexsup.c:479
+msgid "Output lots of information during link"
+msgstr " Emite muitas informações durante vinculação"
+
+#: lexsup.c:483
+msgid "Read version information script"
+msgstr "Lê script de informações de versão"
+
+#: lexsup.c:486
+msgid ""
+"Take export symbols list from .exports, using\n"
+" SYMBOL as the version."
+msgstr ""
+"Obtém lista de símbolos de exportação de\n"
+" .exports, usando SÃMBOLO como a versão."
+
+#: lexsup.c:490
+msgid "Add data symbols to dynamic list"
+msgstr "Adiciona símbolos de dados à lista dinâmica"
+
+#: lexsup.c:492
+msgid "Use C++ operator new/delete dynamic list"
+msgstr ""
+"Usa a lista dinâmica dos operações de C++\n"
+" new/delete"
+
+#: lexsup.c:494
+msgid "Use C++ typeinfo dynamic list"
+msgstr "Usa a lista dinâmica de typeinfo de C++"
+
+#: lexsup.c:496
+msgid "Read dynamic list"
+msgstr "Lê a lista dinâmica"
+
+#: lexsup.c:498
+msgid "Warn about duplicate common symbols"
+msgstr "Avisa sobre símbolos comuns duplicados"
+
+#: lexsup.c:500
+msgid "Warn if global constructors/destructors are seen"
+msgstr ""
+"Avisa se construtores/destrutores globais\n"
+" forem vistos"
+
+#: lexsup.c:503
+msgid "Warn if the multiple GP values are used"
+msgstr "Avisa se os múltiplos valores de GP forem usados"
+
+#: lexsup.c:505
+msgid "Warn only once per undefined symbol"
+msgstr "Avisa uma vez por símbolo não definido"
+
+#: lexsup.c:507
+msgid "Warn if start of section changes due to alignment"
+msgstr ""
+"Avisa se o início da seção alterar em razão\n"
+" de alinhamento"
+
+#: lexsup.c:510
+msgid "Warn if shared object has DT_TEXTREL"
+msgstr "Avisa se objeto compartilhado possuir DT_TEXTREL"
+
+#: lexsup.c:513
+msgid "Warn if an object has alternate ELF machine code"
+msgstr ""
+"Avisa se um objeto possuir código alterativo\n"
+" de máquina ELF"
+
+#: lexsup.c:517
+msgid "Report unresolved symbols as warnings"
+msgstr "Relata símbolos não resolvidos como avisos"
+
+#: lexsup.c:520
+msgid "Report unresolved symbols as errors"
+msgstr "Relata símbolos não resolvidos como erros"
+
+#: lexsup.c:522
+msgid "Include all objects from following archives"
+msgstr "Inclui todos os objetos dos seguintes arquivos"
+
+# Espaço extra para promover alinhamento
+#: lexsup.c:525
+msgid "Use wrapper functions for SYMBOL"
+msgstr " Usa funções interfaceadores para SÃMBOLO"
+
+#: lexsup.c:529
+msgid "Unresolved SYMBOL will not cause an error or warning"
+msgstr ""
+"SÃMBOLO não resolvido não causará um erro\n"
+" ou um aviso"
+
+#: lexsup.c:531
+msgid "Push state of flags governing input file handling"
+msgstr ""
+"Faz push do estado de flags governando\n"
+" o tratamento de arquivo de entrada"
+
+#: lexsup.c:534
+msgid "Pop state of flags governing input file handling"
+msgstr ""
+"Faz pop do estado de flags governando\n"
+" o tratamento de arquivo de entrada"
+
+#: lexsup.c:537
+msgid "Report target memory usage"
+msgstr "Relata uso de memória alvo"
+
+#: lexsup.c:539
+msgid "=MODE"
+msgstr "=MODO"
+
+#: lexsup.c:539
+msgid "Control how orphan sections are handled."
+msgstr "Controla como seções órfãs são tratadas."
+
+#: lexsup.c:705
+msgid "%P: %s: missing argument\n"
+msgstr "%P: %s: argumento em falta\n"
+
+#: lexsup.c:710
+msgid "%P: unrecognized option '%s'\n"
+msgstr "%P: opção não reconhecida \"%s\"\n"
+
+#: lexsup.c:715
+msgid "%P%F: use the --help option for usage information\n"
+msgstr "%P%F: use a opção --help para informações de uso\n"
+
+#: lexsup.c:734
+msgid "%P%F: unrecognized -a option `%s'\n"
+msgstr "%P%F: opção -a não reconhecida \"%s\"\n"
+
+#: lexsup.c:747
+msgid "%P%F: unrecognized -assert option `%s'\n"
+msgstr "%P%F: opção -assert não reconhecida \"%s\"\n"
+
+#: lexsup.c:791
+msgid "%F%P: unknown demangling style `%s'\n"
+msgstr "%F%P: estilo de \"demangling\" desconhecido \"%s\"\n"
+
+#: lexsup.c:861 lexsup.c:1330
+msgid "%P%F: invalid number `%s'\n"
+msgstr "%P%F: número inválido \"%s\"\n"
+
+#: lexsup.c:962
+msgid "%P%F: bad --unresolved-symbols option: %s\n"
+msgstr "%P%F: opção --unresolved-symbols inválida: %s\n"
+
+#: lexsup.c:1039
+msgid "%P%F: bad -plugin-opt option\n"
+msgstr "%P%F: opção -plugin-opt inválida\n"
+
+#. This can happen if the user put "-rpath,a" on the command
+#. line. (Or something similar. The comma is important).
+#. Getopt becomes confused and thinks that this is a -r option
+#. but it cannot parse the text after the -r so it refuses to
+#. increment the optind counter. Detect this case and issue
+#. 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:1056
+msgid "%P%F: unrecognised option: %s\n"
+msgstr "%P%F: opção não reconhecida %s\n"
+
+#: lexsup.c:1059 lexsup.c:1299
+msgid "%P%F: -r and %s may not be used together\n"
+msgstr "%P%F: -r e %s não podem ser usados juntos\n"
+
+#: lexsup.c:1166
+msgid "%P%F: -r and -shared may not be used together\n"
+msgstr "%P%F: -r e -shared não podem ser usados juntos\n"
+
+#: lexsup.c:1177
+msgid "%P%F: -shared not supported\n"
+msgstr "%P%F: sem suporte a -shared\n"
+
+#: lexsup.c:1183
+msgid "%P%F: -r and -pie may not be used together\n"
+msgstr "%P%F: -r e -pie não podem ser usados juntos\n"
+
+#: lexsup.c:1188
+msgid "%P%F: -pie not supported\n"
+msgstr "%P%F: sem suporte a -pie\n"
+
+#: lexsup.c:1194
+msgid "%P: SONAME must not be empty string; keeping previous one\n"
+msgstr "%P: SONAME não pode ser uma string vazia; mantendo o anterior\n"
+
+#: lexsup.c:1200
+msgid "descending"
+msgstr "descendente"
+
+#: lexsup.c:1202
+msgid "ascending"
+msgstr "ascendente"
+
+#: lexsup.c:1205
+msgid "%P%F: invalid common section sorting option: %s\n"
+msgstr "%P%F: opção inválida de ordenação de seção comum: %s\n"
+
+#: lexsup.c:1209
+msgid "name"
+msgstr "nome"
+
+#: lexsup.c:1211
+msgid "alignment"
+msgstr "alinhamento"
+
+#: lexsup.c:1214
+msgid "%P%F: invalid section sorting option: %s\n"
+msgstr "%P%F: opção inválida de ordenação de seção: %s\n"
+
+#: lexsup.c:1248
+msgid "%P%F: invalid argument to option \"--section-start\"\n"
+msgstr "%P%F: argumento inválido para a opção \"--section-start\"\n"
+
+#: lexsup.c:1255
+msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
+msgstr "%P%F: faltando argumento(s) para a opção \"--section-start\"\n"
+
+#: lexsup.c:1505
+msgid "%P%F: group ended before it began (--help for usage)\n"
+msgstr "%P%F: o grupo terminou antes de começar (--help para uso)\n"
+
+#: lexsup.c:1533
+msgid "%P%X: --hash-size needs a numeric argument\n"
+msgstr "%P%X: --hash-size precisa de um argumento numérico\n"
+
+#: lexsup.c:1545
+msgid "%P%F: no state pushed before popping\n"
+msgstr "%P%F: não foi feito push do estado antes de fazer pop\n"
+
+#: lexsup.c:1568
+msgid "%P%F: invalid argument to option \"--orphan-handling\"\n"
+msgstr "%P%F: argumento inválido para a opção \"--orphan-handling\"\n"
+
+#: lexsup.c:1576
+msgid "%P: SONAME must not be empty string; ignored\n"
+msgstr "%P: SONAME não pode ser uma string vazia; ignorado\n"
+
+#: lexsup.c:1644
+msgid "%P%F: -F may not be used without -shared\n"
+msgstr "%P%F: -F não pode ser usado sem -shared\n"
+
+#: lexsup.c:1646
+msgid "%P%F: -f may not be used without -shared\n"
+msgstr "%P%F: -f não pode ser usado sem -shared\n"
+
+#: lexsup.c:1687 lexsup.c:1700
+msgid "%P%F: invalid hex number `%s'\n"
+msgstr "%P%F: número hexa inválido \"%s\"\n"
+
+#: lexsup.c:1730
+#, c-format
+msgid " --audit=AUDITLIB Specify a library to use for auditing\n"
+msgstr ""
+" --audit=AUDITLIB Especifica uma biblioteca para usar\n"
+" para auditamento\n"
+
+#: lexsup.c:1732
+#, c-format
+msgid " -Bgroup Selects group name lookup rules for DSO\n"
+msgstr ""
+" -Bgroup Seleciona regras de procura por nome de grupo\n"
+" para DSO\n"
+
+#: lexsup.c:1734
+#, c-format
+msgid " --disable-new-dtags Disable new dynamic tags\n"
+msgstr " --disable-new-dtags Desabilita novas tags dinâmicas\n"
+
+#: lexsup.c:1736
+#, c-format
+msgid " --enable-new-dtags Enable new dynamic tags\n"
+msgstr " --enable-new-dtags Habilita novas tags dinâmicas\n"
+
+#: lexsup.c:1738
+#, c-format
+msgid " --eh-frame-hdr Create .eh_frame_hdr section\n"
+msgstr " --eh-frame-hdr Cria a seção .eh_frame_hdr\n"
+
+#: lexsup.c:1740
+#, c-format
+msgid " --no-eh-frame-hdr Do not create .eh_frame_hdr section\n"
+msgstr " --no-eh-frame-hdr Não cria a seção .eh_frame_hdr\n"
+
+#: lexsup.c:1742
+#, c-format
+msgid " --exclude-libs=LIBS Make all symbols in LIBS hidden\n"
+msgstr " --exclude-libs=LIBS Torna todos os símbolos em LIBS ocultos\n"
+
+#: lexsup.c:1744
+#, c-format
+msgid " --hash-style=STYLE Set hash style to sysv, gnu or both\n"
+msgstr " --hash-style=ESTILO Define estilo hash para sysv, gnu ou ambos\n"
+
+#: lexsup.c:1746
+#, c-format
+msgid ""
+" -P AUDITLIB, --depaudit=AUDITLIB\n"
+"\t\t\t Specify a library to use for auditing dependencies\n"
+msgstr ""
+" -P AUDITLIB, --depaudit=AUDITLIB\n"
+" Especifica biblioteca para usar para\n"
+" auditar dependências\n"
+
+#: lexsup.c:1749
+#, c-format
+msgid " -z combreloc Merge dynamic relocs into one section and sort\n"
+msgstr " -z combreloc Mescla relocações dinâmicas numa seção e ordena\n"
+
+#: lexsup.c:1751
+#, c-format
+msgid " -z nocombreloc Don't merge dynamic relocs into one section\n"
+msgstr " -z nocombreloc Não mescla relocações dinâmicas em uma seção\n"
+
+#: lexsup.c:1753
+#, c-format
+msgid ""
+" -z global Make symbols in DSO available for subsequently\n"
+"\t\t\t loaded objects\n"
+msgstr ""
+" -z global Torna símbolos em DSO disponíveis para objetos\n"
+" carregados em seguida\n"
+
+#: lexsup.c:1756
+#, c-format
+msgid " -z initfirst Mark DSO to be initialized first at runtime\n"
+msgstr ""
+" -z initfirst Marca o DSO para ser inicializado primeiro em\n"
+" tempo de execução\n"
+
+#: lexsup.c:1758
+#, c-format
+msgid " -z interpose Mark object to interpose all DSOs but executable\n"
+msgstr ""
+" -z interpose Marca o objeto para interpor todos os DSOs,\n"
+" exceto executáveis\n"
+
+#: lexsup.c:1760
+#, c-format
+msgid " -z lazy Mark object lazy runtime binding (default)\n"
+msgstr ""
+" -z lazy Marca o objeto com vinculação preguiçosa de\n"
+" tempo de execução (padrão)\n"
+
+#: lexsup.c:1762
+#, c-format
+msgid " -z loadfltr Mark object requiring immediate process\n"
+msgstr " -z loadfltr Marca o objeto como exigindo processo imediato\n"
+
+#: lexsup.c:1764
+#, c-format
+msgid " -z nocopyreloc Don't create copy relocs\n"
+msgstr " -z nocopyreloc Não cria realocações copiadas\n"
+
+#: lexsup.c:1766
+#, c-format
+msgid " -z nodefaultlib Mark object not to use default search paths\n"
+msgstr ""
+" -z nodefaultlib Marca o objeto para não usar caminhos de\n"
+" pesquisa padrão\n"
+
+#: lexsup.c:1768
+#, c-format
+msgid " -z nodelete Mark DSO non-deletable at runtime\n"
+msgstr ""
+" -z nodelete Marca DSO como não excluível em tempo\n"
+" de execução\n"
+
+#: lexsup.c:1770
+#, c-format
+msgid " -z nodlopen Mark DSO not available to dlopen\n"
+msgstr " -z nodlopen Marca o DSO como não disponível para dlopen\n"
+
+#: lexsup.c:1772
+#, c-format
+msgid " -z nodump Mark DSO not available to dldump\n"
+msgstr " -z nodump Marca o DSO como não disponível para dldump\n"
+
+#: lexsup.c:1774
+#, c-format
+msgid " -z now Mark object non-lazy runtime binding\n"
+msgstr ""
+" -z now Marca o objeto com vinculação não preguiçosa\n"
+" de tempo de execução\n"
+
+#: lexsup.c:1776
+#, c-format
+msgid ""
+" -z origin Mark object requiring immediate $ORIGIN\n"
+"\t\t\t\tprocessing at runtime\n"
+msgstr ""
+" -z origin Marca o objeto como exigindo processamento\n"
+" imediato de $ORIGIN em tempo de execução\n"
+
+#: lexsup.c:1780
+#, c-format
+msgid " -z relro Create RELRO program header (default)\n"
+msgstr " -z relro Cria cabeçalho de programa RELRO (padrão)\n"
+
+#: lexsup.c:1782
+#, c-format
+msgid " -z norelro Don't create RELRO program header\n"
+msgstr " -z norelro Não cria cabeçalho de programa RELRO\n"
+
+#: lexsup.c:1785
+#, c-format
+msgid " -z relro Create RELRO program header\n"
+msgstr " -z relro Cria cabeçalho de programa RELRO\n"
+
+#: lexsup.c:1787
+#, c-format
+msgid " -z norelro Don't create RELRO program header (default)\n"
+msgstr " -z norelro Não cria cabeçalho de programa RELRO (padrão)\n"
+
+#: lexsup.c:1790
+#, c-format
+msgid " -z common Generate common symbols with STT_COMMON type\n"
+msgstr " -z common Gera símbolos comuns com tipo STT_COMMON\n"
+
+#: lexsup.c:1792
+#, c-format
+msgid " -z nocommon Generate common symbols with STT_OBJECT type\n"
+msgstr " -z nocommon Gera símbolos comuns com tipo STT_OBJECT\n"
+
+#: lexsup.c:1794
+#, c-format
+msgid " -z stack-size=SIZE Set size of stack segment\n"
+msgstr " -z stack-size=TAM Define o tamanho do segmento de pilha\n"
+
+#: lexsup.c:1796
+#, c-format
+msgid " -z text Treat DT_TEXTREL in shared object as error\n"
+msgstr ""
+" -z text Trata DT_TEXTREL em objeto compartilhado\n"
+" como erro\n"
+
+#: lexsup.c:1798
+#, c-format
+msgid " -z notext Don't treat DT_TEXTREL in shared object as error\n"
+msgstr ""
+" -z notext Não trata DT_TEXTREL em objeto compartilhado\n"
+" como erro\n"
+
+#: lexsup.c:1800
+#, c-format
+msgid " -z textoff Don't treat DT_TEXTREL in shared object as error\n"
+msgstr ""
+" -z textoff Não trata DT_TEXTREL em objeto compartilhado\n"
+" como erro\n"
+
+#: lexsup.c:1807
+#, c-format
+msgid " --build-id[=STYLE] Generate build ID note\n"
+msgstr " --build-id[=ESTILO] Gera uma nota de ID de compilação\n"
+
+#: lexsup.c:1809
+#, c-format
+msgid ""
+" --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]\n"
+" Compress DWARF debug sections using zlib\n"
+msgstr ""
+" --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]\n"
+" Comprime seções de depuração DWARF usando zlib\n"
+
+#: lexsup.c:1813
+#, c-format
+msgid " Default: zlib-gabi\n"
+msgstr " Padrão: zlib-gabi\n"
+
+#: lexsup.c:1816
+#, c-format
+msgid " Default: none\n"
+msgstr " Padrão: nenhum\n"
+
+#: lexsup.c:1819
+#, c-format
+msgid " -z common-page-size=SIZE Set common page size to SIZE\n"
+msgstr " -z common-page-size=TAM Define o tamanho comum de página para TAM\n"
+
+#: lexsup.c:1821
+#, c-format
+msgid " -z max-page-size=SIZE Set maximum page size to SIZE\n"
+msgstr " -z max-page-size=TAM Define o tamanho máximo de página para TAM\n"
+
+#: lexsup.c:1823
+#, c-format
+msgid " -z defs Report unresolved symbols in object files.\n"
+msgstr ""
+" -z defs Relata símbolos não resolvidos em arquivos\n"
+" de objeto.\n"
+
+#: lexsup.c:1825
+#, c-format
+msgid " -z muldefs Allow multiple definitions\n"
+msgstr " -z muldefs Permite múltiplas definições\n"
+
+#: lexsup.c:1827
+#, c-format
+msgid " -z execstack Mark executable as requiring executable stack\n"
+msgstr " -z execstack Marca executável como exigindo pilha executável\n"
+
+#: lexsup.c:1829
+#, c-format
+msgid " -z noexecstack Mark executable as not requiring executable stack\n"
+msgstr ""
+" -z noexecstack Marca executável como não exigindo pilha\n"
+" executável\n"
+
+#: lexsup.c:1836
+#, c-format
+msgid ""
+" --ld-generated-unwind-info Generate exception handling info for PLT\n"
+" --no-ld-generated-unwind-info\n"
+" Don't generate exception handling info for PLT\n"
+msgstr ""
+" --ld-generated-unwind-info Gera info de tratamento de exceção para PLT\n"
+" --no-ld-generated-unwind-info\n"
+" Não gera info de tratamento de exceção para PLT\n"
+
+#: lexsup.c:1848
+#, c-format
+msgid "ELF emulations:\n"
+msgstr "Emulações de ELF:\n"
+
+#: lexsup.c:1866
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Uso: %s [opções] arquivo...\n"
+
+#: lexsup.c:1868
+#, c-format
+msgid "Options:\n"
+msgstr "Opções:\n"
+
+#: lexsup.c:1946
+#, c-format
+msgid " @FILE"
+msgstr " @ARQ"
+
+#: lexsup.c:1949
+#, c-format
+msgid "Read options from FILE\n"
+msgstr " Lê as opções do arquivo ARQ\n"
+
+#. Note: Various tools (such as libtool) depend upon the
+#. format of the listings below - do not change them.
+#: lexsup.c:1954
+#, c-format
+msgid "%s: supported targets:"
+msgstr "%s: há suporte aos alvos:"
+
+#: lexsup.c:1962
+#, c-format
+msgid "%s: supported emulations: "
+msgstr "%s: há suporte às emulações: "
+
+#: lexsup.c:1967
+#, c-format
+msgid "%s: emulation specific options:\n"
+msgstr "%s: opções específicas de emulação:\n"
+
+#: lexsup.c:1974
+#, c-format
+msgid "Report bugs to %s\n"
+msgstr "Relate erros para %s\n"
+
+#: mri.c:295
+msgid "%P%F: unknown format type %s\n"
+msgstr "%P%F: tipo de formato desconhecido %s\n"
+
+#: pe-dll.c:442
+msgid "%P%X: Unsupported PEI architecture: %s\n"
+msgstr "%P%X: Sem suporte à arquitetura PEI: %s\n"
+
+#: pe-dll.c:811
+msgid "%P%X: Cannot export %s: invalid export name\n"
+msgstr "%P%X: Não foi possível exportar %s: nome inválido de exportação\n"
+
+#: pe-dll.c:863
+#, c-format
+msgid "%P%X: Error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
+msgstr "%P%X: Erro, EXPORT duplicado com ordinais: %s (%d vs %d)\n"
+
+#: pe-dll.c:870
+#, c-format
+msgid "%P: Warning, duplicate EXPORT: %s\n"
+msgstr "%P: Aviso, EXPORT duplicado: %s\n"
+
+#: pe-dll.c:980
+#, c-format
+msgid "%P%X: Cannot export %s: symbol not defined\n"
+msgstr "%P%X: Não foi possível exportar %s: símbolo não definido\n"
+
+#: pe-dll.c:986
+#, c-format
+msgid "%P%X: Cannot export %s: symbol wrong type (%d vs %d)\n"
+msgstr "%P%X: Não foi possível exportar %s: tipo incorreto de símbolo (%d vs %d)\n"
+
+#: pe-dll.c:993
+#, c-format
+msgid "%P%X: Cannot export %s: symbol not found\n"
+msgstr "%P%X: Não foi possível exportar %s: símbolo não localizado\n"
+
+#: pe-dll.c:1107
+#, c-format
+msgid "%P%X: Error: ordinal used twice: %d (%s vs %s)\n"
+msgstr "%P%X: Erro: ordinal usado duas vezes: %d (%s vs %s)\n"
+
+#: pe-dll.c:1143
+#, c-format
+msgid "%P%X: Error: export ordinal too large: %d\n"
+msgstr "%P%X: Erro: ordinal exportação grande demais: %d\n"
+
+#: pe-dll.c:1503
+#, c-format
+msgid "%P%X: Error: %d-bit reloc in dll\n"
+msgstr "%P%X: Erro: relocação de %d bits na dll\n"
+
+#: pe-dll.c:1631
+#, c-format
+msgid "%P: Can't open output def file %s\n"
+msgstr "%P: Não foi possível abrir arquivo def de saída %s\n"
+
+#: pe-dll.c:1782
+#, c-format
+msgid "; no contents available\n"
+msgstr "; nenhum conteúdo disponível\n"
+
+#: pe-dll.c:2701
+msgid "%P%X%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
+msgstr "%P%X%C: a variável \"%T\" não pode ser importada automaticamente. Por favor, leia a documentação para --enable-auto-import do \"ld\" para detalhes.\n"
+
+#: pe-dll.c:2729
+#, c-format
+msgid "%P%X: Can't open .lib file: %s\n"
+msgstr "%P%X: Não foi possível abrir o arquivo .lib: %s\n"
+
+#: pe-dll.c:2735
+#, c-format
+msgid "Creating library file: %s\n"
+msgstr "Criando arquivo de biblioteca: %s\n"
+
+#: pe-dll.c:2764
+msgid "%P%X: bfd_openr %s: %E\n"
+msgstr "%P%X: bfd_openr %s: %E\n"
+
+#: pe-dll.c:2776
+msgid "%P%X: %s(%s): can't find member in non-archive file"
+msgstr "%P%X: %s(%s): não foi possível localizar membro em arquivo que não é pacote"
+
+#: pe-dll.c:2788
+msgid "%P%X: %s(%s): can't find member in archive"
+msgstr "%P%X: %s(%s): não foi possível localizar membro no pacote"
+
+#: pe-dll.c:3414
+msgid "%P%X: Error: can't use long section names on this arch\n"
+msgstr "%P%X: Erro: não foi possível usar nomes longos de seção nesta arquitetura\n"
+
+#: plugin.c:231 plugin.c:277
+msgid "<no plugin>"
+msgstr "<nenhum plug-in>"
+
+#: plugin.c:246 plugin.c:1017
+msgid "%P%F: %s: error loading plugin: %s\n"
+msgstr "%P%F: %s: erro ao carregar plug-in: %s\n"
+
+#: plugin.c:253
+msgid "%P: %s: duplicated plugin\n"
+msgstr "%P: %s: plug-in duplicado\n"
+
+#: plugin.c:339
+#, c-format
+msgid "could not create dummy IR bfd: %F%E\n"
+msgstr "não foi possível criar bfd IR simulatório: %F%E\n"
+
+#: plugin.c:427
+msgid "%P%F: %s: non-ELF symbol in ELF BFD!\n"
+msgstr "%P%F: %s: símbolo não ELF em BFD ELF!\n"
+
+#: plugin.c:431
+msgid "%P%F: unknown ELF symbol visibility: %d!\n"
+msgstr "%P%F: visibilidade desconhecida de símbolo ELF: %d!\n"
+
+#: plugin.c:542
+msgid "%P%F: unsupported input file size: %s (%ld bytes)\n"
+msgstr "%P%F: sem suporte ao tamanho de arquivo de entrada: %s (%ld bytes)\n"
+
+#: plugin.c:786
+msgid "%P: %B: symbol `%s' definition: %d, visibility: %d, resolution: %d\n"
+msgstr "%P: %B: definição de símbolo \"%s\": %d, visibilidade: %d, resolução: %d\n"
+
+#: plugin.c:1024
+msgid "%P%F: %s: plugin error: %d\n"
+msgstr "%P%F: %s: erro de plug-in: %d\n"
+
+#: plugin.c:1083
+msgid "%P%F: plugin_strdup failed to allocate memory: %s\n"
+msgstr "%P%F: plugin_strdup falhou em alocar memória: %s\n"
+
+#: plugin.c:1115
+msgid "%P%F: plugin failed to allocate memory for input: %s\n"
+msgstr "%P%F: plugiin falhou em alocar memória para entrada: %s\n"
+
+#: plugin.c:1148
+msgid "%P%F: %s: plugin reported error claiming file\n"
+msgstr "%P%F: %s: o plug-in relatou erro ao reivindicar o arquivo\n"
+
+#: plugin.c:1258
+msgid "%P: %s: error in plugin cleanup: %d (ignored)\n"
+msgstr "%P: %s: erro na limpeza do plug-in: %d (ignorado)\n"
+
+#~ msgid " --insert-timestamp Use a real timestamp rather than zero.\n"
+#~ msgstr " --insert-timestamp Usa uma marca de tempo em vez de zero.\n"
+
+#~ msgid " --out-implib <file> Generate import library\n"
+#~ msgstr " --out-implib <arquivo> Gera biblioteca de importação\n"
+
+#~ msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
+#~ msgstr " --warn-duplicate-exports Avisa sobre exportações duplicadas.\n"
+
+#~ msgid ""
+#~ " --enable-auto-image-base Automatically choose image base for DLLs\n"
+#~ " unless user specifies one\n"
+#~ msgstr ""
+#~ " --enable-auto-image-base Escolhe automaticamente a base da imagem\n"
+#~ " para DLLs, a menos que o usuário\n"
+#~ " especifique uma\n"
+
+#~ msgid "%P%F: output format %s cannot represent section called %s\n"
+#~ msgstr "%P%F: o formato de saída %s não pode representar a seção chamada %s\n"
+
+#~ msgid "%X%P: section %s loaded at [%V,%V] overlaps section %s loaded at [%V,%V]\n"
+#~ msgstr "%X%P: a seção %s carregada em [%V,%V] sobrepõe a seção %s carregada em [%V,%V]\n"
+
+#~ msgid "%P%F: invalid syntax in flags\n"
+#~ msgstr "%P%F: sintaxe inválida nas flags\n"
+
+#~ msgid "%X%P: unable to open for source of copy `%s'\n"
+#~ msgstr "%X%P: não foi possível abrir para ordem da cópia \"%s\"\n"
+
+#~ msgid "%X%P: unable to open for destination of copy `%s'\n"
+#~ msgstr "%X%P: não foi possível abrir para destino da cópia \"%s\"\n"
+
+#~ msgid "%P: internal error: aborting at %s line %d in %s\n"
+#~ msgstr "%P: erro interno: abortando em %s linha %d em %s\n"
+
+#~ msgid "%P: internal error: aborting at %s line %d\n"
+#~ msgstr "%P: erro interno: abortando em %s linha %d\n"
+
+#~ msgid "Copyright 2014 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright 2014 Free Software Foundation, Inc.\n"
+
+#~ msgid "%P%F: bad -rpath option\n"
+#~ msgstr "%P%F: opção -rpath inválida\n"
+
+#~ msgid "%XUnsupported PEI architecture: %s\n"
+#~ msgstr "%XSem suporte à arquitetura PEI: %s\n"
+
+#~ msgid "%XCannot export %s: invalid export name\n"
+#~ msgstr "%XNão foi possível exportar %s: nome inválido de exportação\n"
+
+#~ msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
+#~ msgstr "%XErro, EXPORT duplicado com ordinais: %s (%d vs %d)\n"
+
+#~ msgid "Warning, duplicate EXPORT: %s\n"
+#~ msgstr "Aviso, EXPORT duplicado: %s\n"
+
+#~ msgid "%XCannot export %s: symbol not defined\n"
+#~ msgstr "%XNão foi possível exportar %s: símbolo não definido\n"
+
+#~ msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
+#~ msgstr "%XNão foi possível exportar %s: tipo incorreto de símbolo (%d vs %d)\n"
+
+#~ msgid "%XCannot export %s: symbol not found\n"
+#~ msgstr "%XNão foi possível exportar %s: símbolo não localizado\n"
+
+#~ msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
+#~ msgstr "%XErro, ordinal usado duas vezes: %d (%s vs %s)\n"
+
+#~ msgid "%XError: %d-bit reloc in dll\n"
+#~ msgstr "%XErro: relocação de %d bit na dll\n"
+
+#~ msgid "%s: Can't open output def file %s\n"
+#~ msgstr "%s: Não foi possível abrir arquivo def de saída %s\n"
+
+#~ msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
+#~ msgstr "%C: a variável \"%T\" não pode ser importada automaticamente. Por favor, leia a documentação para --enable-auto-import do \"ld\" para detalhes.\n"
+
+#~ msgid "%XCan't open .lib file: %s\n"
+#~ msgstr "%XNão foi possível abrir o arquivo .lib: %s\n"
+
+#~ msgid "%Xbfd_openr %s: %E\n"
+#~ msgstr "%Xbfd_openr %s: %E\n"
+
+#~ msgid "%X%s(%s): can't find member in non-archive file"
+#~ msgstr "%X%s(%s): não foi possível localizar membro em arquivo não-pacote"
+
+#~ msgid "%X%s(%s): can't find member in archive"
+#~ msgstr "%X%s(%s): não foi possível localizar membro no pacote"
+
+#~ msgid "%XError: can't use long section names on this arch\n"
+#~ msgstr "%XErro: não foi possível usar nomes longos de seção nesta arquitetura\n"
diff --git a/ld/po/ru.po b/ld/po/ru.po
new file mode 100644
index 0000000..ae24f91
--- /dev/null
+++ b/ld/po/ru.po
@@ -0,0 +1,2197 @@
+# Translation of binutils ld to Russian
+# Copyright (C) 2010 Free Software Foundation, Inc.
+# This file is distributed under the same license as the binutils package.
+# Vladimir B. Tsarkov <lipetsk-gnu-lug@bk.ru>, 2011.
+# Pavel Maryanov <acid@jack.kiev.ua>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ld 2.20.90\n"
+"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
+"POT-Creation-Date: 2010-11-05 11:34+0100\n"
+"PO-Revision-Date: 2012-03-30 15:38+0200\n"
+"Last-Translator: Pavel Maryanov <acid@jack.kiev.ua>\n"
+"Language-Team: Russian <gnu@mx.ru>\n"
+"Language: ru\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: emultempl/armcoff.em:73
+#, c-format
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code\t\t\t Поддерживать взаимодейÑтвие (interworking) Ñо Ñтарым кодом\n"
+
+#: emultempl/armcoff.em:74
+#, c-format
+msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
+msgstr " --thumb-entry=<sym>\t\t\tУÑтановить входную точку <sym> Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ в режиме Ñжатого набора команд\n"
+
+#: emultempl/armcoff.em:122
+#, c-format
+msgid "Errors encountered processing file %s"
+msgstr "Были обнаружены ошибки при обработке файлов %s"
+
+#: emultempl/armcoff.em:190 emultempl/pe.em:1812
+msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
+msgstr "%P: предупреждение: '--thumb-entry %s' отменÑет '-e %s'\n"
+
+#: emultempl/armcoff.em:195 emultempl/pe.em:1817
+msgid "%P: warning: cannot find thumb start symbol %s\n"
+msgstr "%P: предупреждение: не удаётÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ входную точку Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ в режиме Ñжатого набора команд %s\n"
+
+#: emultempl/pe.em:418
+#, c-format
+msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
+msgstr " --base_file <basefile>\t\t\t\t Сгенерировать файл Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ <basefile> Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ð¾Ð²Ñ‹Ñ… адреÑов, иÑпользуемых при наÑтройке Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ dlltool \n"
+
+#: emultempl/pe.em:419
+#, c-format
+msgid " --dll Set image base to the default for DLLs\n"
+msgstr " --dll\t\t\t\t\t\t\t\t\t\t Создать DLL вмеÑто обычного выполнÑемого файла\n"
+
+#: emultempl/pe.em:420
+#, c-format
+msgid " --file-alignment <size> Set file alignment\n"
+msgstr " --file-alignment <size>\t\t\t Задать значение ÑмещениÑ, иÑпользуемое Ð´Ð»Ñ Ð²Ñ‹Ñ€Ð°Ð²Ð½Ð¸Ð²Ð°Ð½Ð¸Ñ Ñчётчика адреÑов при переходе между разделами ÑÑ†ÐµÐ½Ð°Ñ€Ð¸Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ñ‰Ð¸ÐºÐ°\n"
+
+#: emultempl/pe.em:421
+#, c-format
+msgid " --heap <size> Set initial size of the heap\n"
+msgstr " --heap <size> Задать первоначальный размер динамичеÑкой облаÑти памÑти\n"
+
+#: emultempl/pe.em:422
+#, c-format
+msgid " --image-base <address> Set start address of the executable\n"
+msgstr " --image-base <address> Задать начальный Ð°Ð´Ñ€ÐµÑ Ð¸ÑполнÑемого файла\n"
+
+#: emultempl/pe.em:423
+#, c-format
+msgid " --major-image-version <number> Set version number of the executable\n"
+msgstr " --major-image-version <number> Задать номер верÑии иÑполнÑемого файла\n"
+
+#: emultempl/pe.em:424
+#, c-format
+msgid " --major-os-version <number> Set minimum required OS version\n"
+msgstr " --major-os-version <number> Указать минимальную требуемую верÑию ОС\n"
+
+#: emultempl/pe.em:425
+#, c-format
+msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n"
+msgstr " --major-subsystem-version <number> Указать минимальную требуемую верÑию подÑиÑтемы ОС\n"
+
+#: emultempl/pe.em:426
+#, c-format
+msgid " --minor-image-version <number> Set revision number of the executable\n"
+msgstr " --minor-image-version <number> Указать номер редакции иÑполнÑемого файла\n"
+
+#: emultempl/pe.em:427
+#, c-format
+msgid " --minor-os-version <number> Set minimum required OS revision\n"
+msgstr " --minor-os-version <number> Указать минимальную требуемую редакцию ОС\n"
+
+#: emultempl/pe.em:428
+#, c-format
+msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
+msgstr " --minor-subsystem-version <number> Указать минимальную требуемую редакцию подÑиÑтемы ОС\n"
+
+#: emultempl/pe.em:429
+#, c-format
+msgid " --section-alignment <size> Set section alignment\n"
+msgstr " --section-alignment <size> Задать выравнивание Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñчётчика адреÑа в разделах ÑÑ†ÐµÐ½Ð°Ñ€Ð¸Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ñ‰Ð¸ÐºÐ°\n"
+
+#: emultempl/pe.em:430
+#, c-format
+msgid " --stack <size> Set size of the initial stack\n"
+msgstr " --stack <size> Задать первоначальный размер Ñтека\n"
+
+#: emultempl/pe.em:431
+#, c-format
+msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
+msgstr " --subsystem <name>[:<version>] Указать требуемую подÑиÑтему ОС [и верÑию]\n"
+
+#: emultempl/pe.em:432
+#, c-format
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code Поддерживать взаимодейÑтвие (interworking) Ñо Ñтарым кодом\n"
+
+#: emultempl/pe.em:433
+#, c-format
+msgid " --[no-]leading-underscore Set explicit symbol underscore prefix mode\n"
+msgstr " --[no-]leading-underscore ИÑпользовать Ñимвол Ð¿Ð¾Ð´Ñ‡Ñ‘Ñ€ÐºÐ¸Ð²Ð°Ð½Ð¸Ñ ÐºÐ°Ðº Ð¿Ñ€Ñ„ÐµÐ¸ÐºÑ Ð² Ñвном режиме\n"
+
+#: emultempl/pe.em:434
+#, c-format
+msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
+msgstr " --thumb-entry=<symbol> УÑтановить входную точку в режим Ñжатого набора команд<symbol>\n"
+
+#: emultempl/pe.em:436
+#, c-format
+msgid " --add-stdcall-alias Export symbols with and without @nn\n"
+msgstr " --add-stdcall-alias ЭкÑпортировать Ñимволы Ñ Ð¸ без @nn\n"
+
+#: emultempl/pe.em:437
+#, c-format
+msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
+msgstr " --disable-stdcall-fixup Ðе компоновать _sym Ñ _sym@nn\n"
+
+#: emultempl/pe.em:438
+#, c-format
+msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
+msgstr " --enable-stdcall-fixup Компоновать _sym Ñ _sym@nn без предупреждений\n"
+
+#: emultempl/pe.em:439
+#, c-format
+msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
+msgstr " --exclude-symbols sym,sym,... ИÑключить Ñимволы из ÑпиÑка на автоматичеÑкий ÑкÑпорт\n"
+
+#: emultempl/pe.em:440
+#, c-format
+msgid " --exclude-all-symbols Exclude all symbols from automatic export\n"
+msgstr " --exclude-all-symbols ИÑключить вÑе Ñимволы из ÑпиÑка на автоматичеÑкий ÑкÑпорт\n"
+
+#: emultempl/pe.em:441
+#, c-format
+msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n"
+msgstr " --exclude-libs lib,lib,... ИÑключить библиотеки из ÑпиÑка на автоматичеÑкий ÑкÑпорт\n"
+
+#: emultempl/pe.em:442
+#, c-format
+msgid " --exclude-modules-for-implib mod,mod,...\n"
+msgstr " --exclude-modules-for-implib mod,mod,...\n"
+
+#: emultempl/pe.em:443
+#, c-format
+msgid " Exclude objects, archive members from auto\n"
+msgstr " ИÑключить объекты и архивы из ÑпиÑка на автоматичеÑкий\n"
+
+#: emultempl/pe.em:444
+#, c-format
+msgid " export, place into import library instead.\n"
+msgstr " ÑкÑпорт, помеÑтить их в импортируемую библиотеку вмеÑто Ñтого.\n"
+
+#: emultempl/pe.em:445
+#, c-format
+msgid " --export-all-symbols Automatically export all globals to DLL\n"
+msgstr " --export-all-symbols ÐвтоматичеÑки ÑкÑпортировать вÑе глобальные Ñимволы в DLL\n"
+
+#: emultempl/pe.em:446
+#, c-format
+msgid " --kill-at Remove @nn from exported symbols\n"
+msgstr " --kill-at Удалить ÑÑƒÑ„Ñ„Ð¸ÐºÑ @nn из ÑкÑпортируемых Ñимволов\n"
+
+#: emultempl/pe.em:447
+#, c-format
+msgid " --out-implib <file> Generate import library\n"
+msgstr " --out-implib <file> Сгенерировать библиотеку Ð´Ð»Ñ Ð¸Ð¼Ð¿Ð¾Ñ€Ñ‚Ð°\n"
+
+#: emultempl/pe.em:448
+#, c-format
+msgid " --output-def <file> Generate a .DEF file for the built DLL\n"
+msgstr " --output-def <file> Сгенерировать .DEF файл Ð´Ð»Ñ Ñобранных DLL\n"
+
+#: emultempl/pe.em:449
+#, c-format
+msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
+msgstr " --warn-duplicate-exports Предупреждать о повторении ÑкÑпорта.\n"
+
+#: emultempl/pe.em:450
+#, c-format
+msgid ""
+" --compat-implib Create backward compatible import libs;\n"
+" create __imp_<SYMBOL> as well.\n"
+msgstr ""
+" --compat-implib Создать обратно ÑовмеÑтимые импортируемые библиотеки;\n"
+" Ñоздать также __imp_<SYMBOL>.\n"
+
+#: emultempl/pe.em:452
+#, c-format
+msgid ""
+" --enable-auto-image-base Automatically choose image base for DLLs\n"
+" unless user specifies one\n"
+msgstr ""
+" --enable-auto-image-base ÐвтоматичеÑки выбирать базовый Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ DLLs\n"
+" еÑли пользователь Ñам не укажет Ñтот адреÑ\n"
+
+#: emultempl/pe.em:454
+#, c-format
+msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n"
+msgstr " --disable-auto-image-base Ðе генерировать базовый Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ DLL. (по-умолчанию)\n"
+
+#: emultempl/pe.em:455
+#, c-format
+msgid ""
+" --dll-search-prefix=<string> When linking dynamically to a dll without\n"
+" an importlib, use <string><basename>.dll\n"
+" in preference to lib<basename>.dll \n"
+msgstr ""
+" --dll-search-prefix=<string> При динамичеÑкой компоновке Ñ dll без\n"
+" импортируемых библиотек, иÑпользовать <string><basename>.dll\n"
+" Ð¾Ñ‚Ð´Ð°Ð²Ð°Ñ Ð¿Ñ€ÐµÐ´Ð¿Ð¾Ñ‡Ñ‚ÐµÐ½Ð¸Ðµ lib<basename>.dll \n"
+
+#: emultempl/pe.em:458
+#, fuzzy, c-format
+msgid ""
+" --enable-auto-import Do sophistcated linking of _sym to\n"
+" __imp_sym for DATA references\n"
+msgstr ""
+" --enable-auto-import ВыполнÑÑ‚ÑŒ Ñложную компоновку _sym Ñ\n"
+" __imp_sym Ð´Ð»Ñ DATA ÑÑылок\n"
+
+#: emultempl/pe.em:460
+#, c-format
+msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n"
+msgstr " --disable-auto-import ОтказатьÑÑ Ð¾Ñ‚ автоматичеÑкого импорта Ñлементов DATA из DLL файлов\n"
+
+#: emultempl/pe.em:461
+#, c-format
+msgid ""
+" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n"
+" adding pseudo-relocations resolved at\n"
+" runtime.\n"
+msgstr ""
+" --enable-runtime-pseudo-reloc Упрощает работу Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑким импортом\n"
+" через пÑевдомодификацию адреÑовв процеÑÑе\n"
+" Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹.\n"
+
+#: emultempl/pe.em:464
+#, c-format
+msgid ""
+" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n"
+" auto-imported DATA.\n"
+msgstr ""
+" --disable-runtime-pseudo-reloc Ðе выполнÑÑ‚ÑŒ пÑевдомодификацию адреÑовдлÑ\n"
+" автоматичеÑки импортируемых Ñлементов DATA.\n"
+
+#: emultempl/pe.em:466
+#, c-format
+msgid ""
+" --enable-extra-pe-debug Enable verbose debug output when building\n"
+" or linking to DLLs (esp. auto-import)\n"
+msgstr ""
+" --enable-extra-pe-debug Включить вывод подробной отладочной информации при Ñборке\n"
+" или компоновке Ñ DLL (оÑобенно при автоматичеÑкомимпорте)\n"
+
+#: emultempl/pe.em:469
+#, c-format
+msgid ""
+" --large-address-aware Executable supports virtual addresses\n"
+" greater than 2 gigabytes\n"
+msgstr ""
+" --large-address-aware ИÑполнÑемый файл поодерживает работу Ñ Ð²Ð¸Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ адреÑами,\n"
+" выходÑщими за рамки 2 гигабайт\n"
+
+#: emultempl/pe.em:471
+#, c-format
+msgid ""
+" --enable-long-section-names Use long COFF section names even in\n"
+" executable image files\n"
+msgstr ""
+" --enable-long-section-names ИÑпользовать длинные имена (более 8 Ñимволов) разделов COFF даже в\n"
+" файлах иÑполнÑемых образов\n"
+
+#: emultempl/pe.em:473
+#, c-format
+msgid ""
+" --disable-long-section-names Never use long COFF section names, even\n"
+" in object files\n"
+msgstr ""
+" --disable-long-section-names Ðикогда не иÑпользовать длинные имена COFF разделов, даже\n"
+" в объектных файлах\n"
+
+#: emultempl/pe.em:475
+#, c-format
+msgid ""
+" --dynamicbase\t\t\t Image base address may be relocated using\n"
+"\t\t\t\t address space layout randomization (ASLR)\n"
+msgstr ""
+" --dynamicbase\t\t\t Базовый Ð°Ð´Ñ€ÐµÑ Ð¾Ð±Ñ€Ð°Ð·Ð° может быть перемещён Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ\n"
+"\t\t\t\t рандомизации раÑкладки адреÑного проÑтранÑтва (ASLR)\n"
+
+#: emultempl/pe.em:477
+#, c-format
+msgid " --forceinteg\t\t Code integrity checks are enforced\n"
+msgstr " --forceinteg\t\t Производить проверку целоÑтноÑти кода в обÑзательном порÑдке\n"
+
+#: emultempl/pe.em:478
+#, c-format
+msgid " --nxcompat\t\t Image is compatible with data execution prevention\n"
+msgstr " --nxcompat\t\t Образ ÑовмеÑтим Ñ Ñ‚ÐµÑ…Ð½Ð¾Ð»Ð¾Ð³Ð¸ÐµÐ¹ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… (DEP)\n"
+
+#: emultempl/pe.em:479
+#, c-format
+msgid " --no-isolation\t\t Image understands isolation but do not isolate the image\n"
+msgstr ""
+
+#: emultempl/pe.em:480
+#, c-format
+msgid ""
+" --no-seh\t\t\t Image does not use SEH. No SE handler may\n"
+"\t\t\t\t be called in this image\n"
+msgstr ""
+
+#: emultempl/pe.em:482
+#, c-format
+msgid " --no-bind\t\t\t Do not bind this image\n"
+msgstr ""
+
+#: emultempl/pe.em:483
+#, c-format
+msgid " --wdmdriver\t\t Driver uses the WDM model\n"
+msgstr ""
+
+#: emultempl/pe.em:484
+#, c-format
+msgid " --tsaware Image is Terminal Server aware\n"
+msgstr ""
+
+#: emultempl/pe.em:613
+msgid "%P: warning: bad version number in -subsystem option\n"
+msgstr ""
+
+#: emultempl/pe.em:638
+msgid "%P%F: invalid subsystem type %s\n"
+msgstr ""
+
+#: emultempl/pe.em:659
+msgid "%P%F: invalid hex number for PE parameter '%s'\n"
+msgstr ""
+
+#: emultempl/pe.em:676
+msgid "%P%F: strange hex info for PE parameter '%s'\n"
+msgstr ""
+
+#: emultempl/pe.em:693
+#, c-format
+msgid "%s: Can't open base file %s\n"
+msgstr ""
+
+#: emultempl/pe.em:969
+msgid "%P: warning, file alignment > section alignment.\n"
+msgstr ""
+
+#: emultempl/pe.em:982
+msgid "%P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?\n"
+msgstr ""
+
+#: emultempl/pe.em:1058 emultempl/pe.em:1085
+#, c-format
+msgid "Warning: resolving %s by linking to %s\n"
+msgstr ""
+
+#: emultempl/pe.em:1063 emultempl/pe.em:1090
+msgid "Use --enable-stdcall-fixup to disable these warnings\n"
+msgstr ""
+
+#: emultempl/pe.em:1064 emultempl/pe.em:1091
+msgid "Use --disable-stdcall-fixup to disable these fixups\n"
+msgstr ""
+
+#: emultempl/pe.em:1110
+#, c-format
+msgid "%C: Cannot get section contents - auto-import exception\n"
+msgstr ""
+
+#: emultempl/pe.em:1150
+#, c-format
+msgid "Info: resolving %s by linking to %s (auto-import)\n"
+msgstr ""
+
+#: emultempl/pe.em:1157
+msgid ""
+"%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line.\n"
+"This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.\n"
+msgstr ""
+
+#: emultempl/pe.em:1164 emultempl/pe.em:1369 emultempl/pe.em:1575 ldcref.c:490
+#: ldcref.c:588 ldmain.c:1183 ldmisc.c:286 pe-dll.c:705 pe-dll.c:1253
+#: pe-dll.c:1348
+msgid "%B%F: could not read symbols: %E\n"
+msgstr ""
+
+#: emultempl/pe.em:1245
+msgid "%F%P: cannot perform PE operations on non PE output file '%B'.\n"
+msgstr ""
+
+#: emultempl/pe.em:1616
+#, c-format
+msgid "Errors encountered processing file %s\n"
+msgstr ""
+
+#: emultempl/pe.em:1639
+#, c-format
+msgid "Errors encountered processing file %s for interworking\n"
+msgstr ""
+
+#: emultempl/pe.em:1701 ldexp.c:542 ldlang.c:3323 ldlang.c:3358 ldlang.c:6804
+#: ldlang.c:6835 ldmain.c:1128
+msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
+msgstr ""
+
+#: ldcref.c:168
+msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
+msgstr ""
+
+#: ldcref.c:174
+msgid "%X%P: cref_hash_lookup failed: %E\n"
+msgstr ""
+
+#: ldcref.c:184
+msgid "%X%P: cref alloc failed: %E\n"
+msgstr ""
+
+#: ldcref.c:366
+#, c-format
+msgid ""
+"\n"
+"Cross Reference Table\n"
+"\n"
+msgstr ""
+
+#: ldcref.c:367
+msgid "Symbol"
+msgstr "Символ"
+
+#: ldcref.c:375
+#, c-format
+msgid "File\n"
+msgstr "Файл\n"
+
+#: ldcref.c:379
+#, c-format
+msgid "No symbols\n"
+msgstr "Ðет Ñимволов\n"
+
+#: ldcref.c:532
+msgid "%P: symbol `%T' missing from main hash table\n"
+msgstr ""
+
+#: ldcref.c:650 ldcref.c:657 ldmain.c:1217 ldmain.c:1224
+msgid "%B%F: could not read relocs: %E\n"
+msgstr ""
+
+#. We found a reloc for the symbol. The symbol is defined
+#. in OUTSECNAME. This reloc is from a section which is
+#. mapped into a section from which references to OUTSECNAME
+#. are prohibited. We must report an error.
+#: ldcref.c:684
+msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
+msgstr ""
+
+#: ldctor.c:85
+msgid "%P%X: Different relocs used in set %s\n"
+msgstr ""
+
+#: ldctor.c:103
+msgid "%P%X: Different object file formats composing set %s\n"
+msgstr ""
+
+#: ldctor.c:281 ldctor.c:295
+msgid "%P%X: %s does not support reloc %s for set %s\n"
+msgstr ""
+
+#: ldctor.c:316
+msgid "%P%X: Unsupported size %d for set %s\n"
+msgstr ""
+
+#: ldctor.c:337
+msgid ""
+"\n"
+"Set Symbol\n"
+"\n"
+msgstr ""
+
+#: ldemul.c:265
+#, c-format
+msgid "%S SYSLIB ignored\n"
+msgstr ""
+
+#: ldemul.c:271
+#, c-format
+msgid "%S HLL ignored\n"
+msgstr ""
+
+#: ldemul.c:291
+msgid "%P: unrecognised emulation mode: %s\n"
+msgstr ""
+
+#: ldemul.c:292
+msgid "Supported emulations: "
+msgstr ""
+
+#: ldemul.c:334
+#, c-format
+msgid " no emulation specific options.\n"
+msgstr ""
+
+#: ldexp.c:313
+msgid "%P: warning: address of `%s' isn't multiple of maximum page size\n"
+msgstr ""
+
+#: ldexp.c:351
+#, c-format
+msgid "%F%S %% by zero\n"
+msgstr ""
+
+#: ldexp.c:359
+#, c-format
+msgid "%F%S / by zero\n"
+msgstr ""
+
+#: ldexp.c:552
+#, c-format
+msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
+msgstr ""
+
+#: ldexp.c:564
+#, c-format
+msgid "%F%S: undefined symbol `%s' referenced in expression\n"
+msgstr ""
+
+#: ldexp.c:585 ldexp.c:602 ldexp.c:629
+#, c-format
+msgid "%F%S: undefined section `%s' referenced in expression\n"
+msgstr ""
+
+#: ldexp.c:656 ldexp.c:670
+#, c-format
+msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
+msgstr ""
+
+#: ldexp.c:681
+#, c-format
+msgid "%F%S: unknown constant `%s' referenced in expression\n"
+msgstr ""
+
+#: ldexp.c:743
+#, c-format
+msgid "%F%S can not PROVIDE assignment to location counter\n"
+msgstr ""
+
+#: ldexp.c:757
+#, c-format
+msgid "%F%S invalid assignment to location counter\n"
+msgstr ""
+
+#: ldexp.c:760
+#, c-format
+msgid "%F%S assignment to location counter invalid outside of SECTION\n"
+msgstr ""
+
+#: ldexp.c:773
+msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
+msgstr ""
+
+#: ldexp.c:812
+msgid "%P%F:%s: hash creation failed\n"
+msgstr ""
+
+#: ldexp.c:1119 ldexp.c:1144 ldexp.c:1204
+#, c-format
+msgid "%F%S: nonconstant expression for %s\n"
+msgstr ""
+
+#: ldfile.c:141
+#, c-format
+msgid "attempt to open %s failed\n"
+msgstr ""
+
+#: ldfile.c:143
+#, c-format
+msgid "attempt to open %s succeeded\n"
+msgstr ""
+
+#: ldfile.c:149
+msgid "%F%P: invalid BFD target `%s'\n"
+msgstr ""
+
+#: ldfile.c:266 ldfile.c:295
+msgid "%P: skipping incompatible %s when searching for %s\n"
+msgstr ""
+
+#: ldfile.c:279
+msgid "%F%P: attempted static link of dynamic object `%s'\n"
+msgstr ""
+
+#: ldfile.c:332 ldmain.c:832
+msgid "%P%F: %s: plugin reported error claiming file\n"
+msgstr ""
+
+#: ldfile.c:447
+msgid "%P: cannot find %s (%s): %E\n"
+msgstr ""
+
+#: ldfile.c:450
+msgid "%P: cannot find %s: %E\n"
+msgstr ""
+
+#: ldfile.c:485
+msgid "%P: cannot find %s inside %s\n"
+msgstr ""
+
+#: ldfile.c:488
+msgid "%P: cannot find %s\n"
+msgstr ""
+
+#: ldfile.c:507 ldfile.c:525
+#, c-format
+msgid "cannot find script file %s\n"
+msgstr ""
+
+#: ldfile.c:509 ldfile.c:527
+#, c-format
+msgid "opened script file %s\n"
+msgstr ""
+
+#: ldfile.c:657
+msgid "%P%F: cannot open linker script file %s: %E\n"
+msgstr ""
+
+#: ldfile.c:722
+msgid "%P%F: cannot represent machine `%s'\n"
+msgstr ""
+
+#: ldlang.c:1160 ldlang.c:1202 ldlang.c:3048
+msgid "%P%F: can not create hash table: %E\n"
+msgstr ""
+
+#: ldlang.c:1253
+msgid "%P:%S: warning: redeclaration of memory region `%s'\n"
+msgstr ""
+
+#: ldlang.c:1259
+msgid "%P:%S: warning: memory region `%s' not declared\n"
+msgstr ""
+
+#: ldlang.c:1293
+msgid "%F%P:%S: error: alias for default memory region\n"
+msgstr ""
+
+#: ldlang.c:1304
+msgid "%F%P:%S: error: redefinition of memory region alias `%s'\n"
+msgstr ""
+
+#: ldlang.c:1311
+msgid "%F%P:%S: error: memory region `%s' for alias `%s' does not exist\n"
+msgstr ""
+
+#: ldlang.c:1363 ldlang.c:1402
+msgid "%P%F: failed creating section `%s': %E\n"
+msgstr ""
+
+#: ldlang.c:1958
+#, c-format
+msgid ""
+"\n"
+"Discarded input sections\n"
+"\n"
+msgstr ""
+
+#: ldlang.c:1966
+msgid ""
+"\n"
+"Memory Configuration\n"
+"\n"
+msgstr ""
+
+#: ldlang.c:1968
+msgid "Name"
+msgstr ""
+
+#: ldlang.c:1968
+msgid "Origin"
+msgstr ""
+
+#: ldlang.c:1968
+msgid "Length"
+msgstr ""
+
+#: ldlang.c:1968
+msgid "Attributes"
+msgstr ""
+
+#: ldlang.c:2008
+#, c-format
+msgid ""
+"\n"
+"Linker script and memory map\n"
+"\n"
+msgstr ""
+
+#: ldlang.c:2074
+msgid "%P%F: Illegal use of `%s' section\n"
+msgstr ""
+
+#: ldlang.c:2083
+msgid "%P%F: output format %s cannot represent section called %s\n"
+msgstr ""
+
+#: ldlang.c:2636
+msgid "%B: file not recognized: %E\n"
+msgstr ""
+
+#: ldlang.c:2637
+msgid "%B: matching formats:"
+msgstr ""
+
+#: ldlang.c:2644
+msgid "%F%B: file not recognized: %E\n"
+msgstr ""
+
+#: ldlang.c:2715
+msgid "%F%B: member %B in archive is not an object\n"
+msgstr ""
+
+#: ldlang.c:2730 ldlang.c:2744
+msgid "%F%B: could not read symbols: %E\n"
+msgstr ""
+
+#: ldlang.c:3018
+msgid "%P: warning: could not find any targets that match endianness requirement\n"
+msgstr ""
+
+#: ldlang.c:3032
+msgid "%P%F: target %s not found\n"
+msgstr ""
+
+#: ldlang.c:3034
+msgid "%P%F: cannot open output file %s: %E\n"
+msgstr ""
+
+#: ldlang.c:3040
+msgid "%P%F:%s: can not make object file: %E\n"
+msgstr ""
+
+#: ldlang.c:3044
+msgid "%P%F:%s: can not set architecture: %E\n"
+msgstr ""
+
+#: ldlang.c:3185
+msgid "%P: warning: %s contains output sections; did you forget -T?\n"
+msgstr ""
+
+#: ldlang.c:3215
+msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
+msgstr ""
+
+#: ldlang.c:3233
+msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
+msgstr ""
+
+#: ldlang.c:3688
+msgid "%F%P: %s not found for insert\n"
+msgstr ""
+
+#: ldlang.c:3903
+msgid " load address 0x%V"
+msgstr ""
+
+#: ldlang.c:4179
+msgid "%W (size before relaxing)\n"
+msgstr ""
+
+#: ldlang.c:4270
+#, c-format
+msgid "Address of section %s set to "
+msgstr ""
+
+#: ldlang.c:4423
+#, c-format
+msgid "Fail with %d\n"
+msgstr ""
+
+#: ldlang.c:4710
+msgid "%X%P: section %s loaded at [%V,%V] overlaps section %s loaded at [%V,%V]\n"
+msgstr ""
+
+#: ldlang.c:4726
+msgid "%X%P: region `%s' overflowed by %ld bytes\n"
+msgstr ""
+
+#: ldlang.c:4749
+msgid "%X%P: address 0x%v of %B section `%s' is not within region `%s'\n"
+msgstr ""
+
+#: ldlang.c:4760
+msgid "%X%P: %B section `%s' will not fit in region `%s'\n"
+msgstr ""
+
+#: ldlang.c:4816
+#, c-format
+msgid "%F%S: non constant or forward reference address expression for section %s\n"
+msgstr ""
+
+#: ldlang.c:4841
+msgid "%P%X: Internal error on COFF shared library section %s\n"
+msgstr ""
+
+#: ldlang.c:4900
+msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
+msgstr ""
+
+#: ldlang.c:4905
+msgid "%P: warning: no memory region specified for loadable section `%s'\n"
+msgstr ""
+
+#: ldlang.c:4927
+msgid "%P: warning: changing start of section %s by %lu bytes\n"
+msgstr ""
+
+#: ldlang.c:5004
+msgid "%P: warning: dot moved backwards before `%s'\n"
+msgstr ""
+
+#: ldlang.c:5170
+msgid "%P%F: can't relax section: %E\n"
+msgstr ""
+
+#: ldlang.c:5497
+msgid "%F%P: invalid data statement\n"
+msgstr ""
+
+#: ldlang.c:5530
+msgid "%F%P: invalid reloc statement\n"
+msgstr ""
+
+#: ldlang.c:5648
+msgid "%P%F: gc-sections requires either an entry or an undefined symbol\n"
+msgstr ""
+
+#: ldlang.c:5673
+msgid "%P%F:%s: can't set start address\n"
+msgstr ""
+
+#: ldlang.c:5686 ldlang.c:5705
+msgid "%P%F: can't set start address\n"
+msgstr ""
+
+#: ldlang.c:5698
+msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
+msgstr ""
+
+#: ldlang.c:5710
+msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
+msgstr ""
+
+#: ldlang.c:5760
+msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"
+msgstr ""
+
+#: ldlang.c:5770
+msgid "%P%X: %s architecture of input file `%B' is incompatible with %s output\n"
+msgstr ""
+
+#: ldlang.c:5792
+msgid "%P%X: failed to merge target specific data of file %B\n"
+msgstr ""
+
+#: ldlang.c:5863
+msgid "%P%F: Could not define common symbol `%T': %E\n"
+msgstr ""
+
+#: ldlang.c:5875
+msgid ""
+"\n"
+"Allocating common symbols\n"
+msgstr ""
+
+#: ldlang.c:5876
+msgid ""
+"Common symbol size file\n"
+"\n"
+msgstr ""
+
+#: ldlang.c:6022
+msgid "%P%F: invalid syntax in flags\n"
+msgstr ""
+
+#: ldlang.c:6415
+msgid "%P%F: Failed to create hash table\n"
+msgstr ""
+
+#: ldlang.c:6430
+msgid "%P%F: %s: plugin reported error after all symbols read\n"
+msgstr ""
+
+#: ldlang.c:6717
+msgid "%P%F: multiple STARTUP files\n"
+msgstr ""
+
+#: ldlang.c:6765
+msgid "%X%P:%S: section has both a load address and a load region\n"
+msgstr ""
+
+#: ldlang.c:6950
+msgid "%X%P:%S: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
+msgstr ""
+
+#: ldlang.c:7022
+msgid "%F%P: no sections assigned to phdrs\n"
+msgstr ""
+
+#: ldlang.c:7060
+msgid "%F%P: bfd_record_phdr failed: %E\n"
+msgstr ""
+
+#: ldlang.c:7080
+msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
+msgstr ""
+
+#: ldlang.c:7481
+msgid "%X%P: unknown language `%s' in version information\n"
+msgstr ""
+
+#: ldlang.c:7626
+msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
+msgstr ""
+
+#: ldlang.c:7635
+msgid "%X%P: duplicate version tag `%s'\n"
+msgstr ""
+
+#: ldlang.c:7656 ldlang.c:7665 ldlang.c:7683 ldlang.c:7693
+msgid "%X%P: duplicate expression `%s' in version information\n"
+msgstr ""
+
+#: ldlang.c:7733
+msgid "%X%P: unable to find version dependency `%s'\n"
+msgstr ""
+
+#: ldlang.c:7756
+msgid "%X%P: unable to read .exports section contents\n"
+msgstr ""
+
+#: ldmain.c:239
+msgid "%X%P: can't set BFD default target to `%s': %E\n"
+msgstr ""
+
+#: ldmain.c:307
+msgid "%P%F: -r and -shared may not be used together\n"
+msgstr ""
+
+#: ldmain.c:350
+msgid "%P%F: -F may not be used without -shared\n"
+msgstr ""
+
+#: ldmain.c:352
+msgid "%P%F: -f may not be used without -shared\n"
+msgstr ""
+
+#: ldmain.c:400
+msgid "using external linker script:"
+msgstr ""
+
+#: ldmain.c:402
+msgid "using internal linker script:"
+msgstr ""
+
+#: ldmain.c:436
+msgid "%P%F: no input files\n"
+msgstr ""
+
+#: ldmain.c:440
+msgid "%P: mode %s\n"
+msgstr ""
+
+#: ldmain.c:456
+msgid "%P%F: cannot open map file %s: %E\n"
+msgstr ""
+
+#: ldmain.c:485
+msgid "%P: %s: error in plugin cleanup (ignored)\n"
+msgstr ""
+
+#: ldmain.c:494
+msgid "%P: link errors found, deleting executable `%s'\n"
+msgstr ""
+
+#: ldmain.c:503
+msgid "%F%B: final close failed: %E\n"
+msgstr ""
+
+#: ldmain.c:529
+msgid "%X%P: unable to open for source of copy `%s'\n"
+msgstr ""
+
+#: ldmain.c:532
+msgid "%X%P: unable to open for destination of copy `%s'\n"
+msgstr ""
+
+#: ldmain.c:539
+msgid "%P: Error writing file `%s'\n"
+msgstr ""
+
+#: ldmain.c:544 pe-dll.c:1729
+#, c-format
+msgid "%P: Error closing file `%s'\n"
+msgstr ""
+
+#: ldmain.c:560
+#, c-format
+msgid "%s: total time in link: %ld.%06ld\n"
+msgstr ""
+
+#: ldmain.c:563
+#, c-format
+msgid "%s: data size %ld\n"
+msgstr ""
+
+#: ldmain.c:646
+msgid "%P%F: missing argument to -m\n"
+msgstr ""
+
+#: ldmain.c:694 ldmain.c:714 ldmain.c:746 plugin.c:772
+msgid "%P%F: bfd_hash_table_init failed: %E\n"
+msgstr ""
+
+#: ldmain.c:698 ldmain.c:718
+msgid "%P%F: bfd_hash_lookup failed: %E\n"
+msgstr ""
+
+#: ldmain.c:732
+msgid "%X%P: error: duplicate retain-symbols-file\n"
+msgstr ""
+
+#: ldmain.c:776
+msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
+msgstr ""
+
+#: ldmain.c:781
+msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
+msgstr ""
+
+#: ldmain.c:895
+#, c-format
+msgid ""
+"Archive member included because of file (symbol)\n"
+"\n"
+msgstr ""
+
+#: ldmain.c:975
+msgid "%X%C: multiple definition of `%T'\n"
+msgstr ""
+
+#: ldmain.c:978
+msgid "%D: first defined here\n"
+msgstr ""
+
+#: ldmain.c:982
+msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
+msgstr ""
+
+#: ldmain.c:1012
+msgid "%B: warning: definition of `%T' overriding common\n"
+msgstr ""
+
+#: ldmain.c:1015
+msgid "%B: warning: common is here\n"
+msgstr ""
+
+#: ldmain.c:1022
+msgid "%B: warning: common of `%T' overridden by definition\n"
+msgstr ""
+
+#: ldmain.c:1025
+msgid "%B: warning: defined here\n"
+msgstr ""
+
+#: ldmain.c:1032
+msgid "%B: warning: common of `%T' overridden by larger common\n"
+msgstr ""
+
+#: ldmain.c:1035
+msgid "%B: warning: larger common is here\n"
+msgstr ""
+
+#: ldmain.c:1039
+msgid "%B: warning: common of `%T' overriding smaller common\n"
+msgstr ""
+
+#: ldmain.c:1042
+msgid "%B: warning: smaller common is here\n"
+msgstr ""
+
+#: ldmain.c:1046
+msgid "%B: warning: multiple common of `%T'\n"
+msgstr ""
+
+#: ldmain.c:1048
+msgid "%B: warning: previous common is here\n"
+msgstr ""
+
+#: ldmain.c:1068 ldmain.c:1106
+msgid "%P: warning: global constructor %s used\n"
+msgstr ""
+
+#: ldmain.c:1116
+msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
+msgstr ""
+
+#. We found a reloc for the symbol we are looking for.
+#: ldmain.c:1170 ldmain.c:1172 ldmain.c:1174 ldmain.c:1192 ldmain.c:1237
+msgid "warning: "
+msgstr ""
+
+#: ldmain.c:1273
+msgid "%F%P: bfd_hash_table_init failed: %E\n"
+msgstr ""
+
+#: ldmain.c:1280
+msgid "%F%P: bfd_hash_lookup failed: %E\n"
+msgstr ""
+
+#: ldmain.c:1301
+msgid "%X%C: undefined reference to `%T'\n"
+msgstr ""
+
+#: ldmain.c:1304
+msgid "%C: warning: undefined reference to `%T'\n"
+msgstr ""
+
+#: ldmain.c:1310
+msgid "%X%D: more undefined references to `%T' follow\n"
+msgstr ""
+
+#: ldmain.c:1313
+msgid "%D: warning: more undefined references to `%T' follow\n"
+msgstr ""
+
+#: ldmain.c:1324
+msgid "%X%B: undefined reference to `%T'\n"
+msgstr ""
+
+#: ldmain.c:1327
+msgid "%B: warning: undefined reference to `%T'\n"
+msgstr ""
+
+#: ldmain.c:1333
+msgid "%X%B: more undefined references to `%T' follow\n"
+msgstr ""
+
+#: ldmain.c:1336
+msgid "%B: warning: more undefined references to `%T' follow\n"
+msgstr ""
+
+#: ldmain.c:1375
+msgid " additional relocation overflows omitted from the output\n"
+msgstr ""
+
+#: ldmain.c:1388
+msgid " relocation truncated to fit: %s against undefined symbol `%T'"
+msgstr ""
+
+#: ldmain.c:1393
+msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"
+msgstr ""
+
+#: ldmain.c:1405
+msgid " relocation truncated to fit: %s against `%T'"
+msgstr ""
+
+#: ldmain.c:1422
+#, c-format
+msgid "%X%C: dangerous relocation: %s\n"
+msgstr ""
+
+#: ldmain.c:1437
+msgid "%X%C: reloc refers to symbol `%T' which is not being output\n"
+msgstr ""
+
+#: ldmisc.c:149
+#, c-format
+msgid "no symbol"
+msgstr ""
+
+#: ldmisc.c:246
+#, c-format
+msgid "built in linker script:%u"
+msgstr ""
+
+#: ldmisc.c:324
+msgid "%B: In function `%T':\n"
+msgstr ""
+
+#: ldmisc.c:451
+msgid "%F%P: internal error %s %d\n"
+msgstr ""
+
+#: ldmisc.c:500
+msgid "%P: internal error: aborting at %s line %d in %s\n"
+msgstr ""
+
+#: ldmisc.c:503
+msgid "%P: internal error: aborting at %s line %d\n"
+msgstr ""
+
+#: ldmisc.c:505
+msgid "%P%F: please report this bug\n"
+msgstr ""
+
+#. Output for noisy == 2 is intended to follow the GNU standards.
+#: ldver.c:39
+#, c-format
+msgid "GNU ld %s\n"
+msgstr "GNU ld %s\n"
+
+#: ldver.c:43
+#, fuzzy, c-format
+msgid "Copyright 2010 Free Software Foundation, Inc.\n"
+msgstr "© Free Software Foundation, Inc., 2011.\n"
+
+#: ldver.c:44
+#, c-format
+msgid ""
+"This program is free software; you may redistribute it under the terms of\n"
+"the GNU General Public License version 3 or (at your option) a later version.\n"
+"This program has absolutely no warranty.\n"
+msgstr ""
+"Эта программа ÑвлÑетÑÑ Ñвободным программным обеÑпечением. Ð’Ñ‹ можете раÑпроÑтранÑÑ‚ÑŒ\n"
+"её на уÑловиÑÑ… GNU General Public License верÑии 3 или (по вашему выбору)\n"
+"более поздней верÑии.\n"
+"Эта программа не имеет абÑолютно никаких не гарантий.\n"
+
+#: ldver.c:54
+#, c-format
+msgid " Supported emulations:\n"
+msgstr ""
+
+#: ldwrite.c:62 ldwrite.c:207
+msgid "%P%F: bfd_new_link_order failed\n"
+msgstr ""
+
+#: ldwrite.c:365
+msgid "%F%P: cannot create split section name for %s\n"
+msgstr ""
+
+#: ldwrite.c:377
+msgid "%F%P: clone section failed: %E\n"
+msgstr ""
+
+#: ldwrite.c:418
+#, c-format
+msgid "%8x something else\n"
+msgstr ""
+
+#: ldwrite.c:588
+msgid "%F%P: final link failed: %E\n"
+msgstr ""
+
+#: lexsup.c:219 lexsup.c:368
+msgid "KEYWORD"
+msgstr ""
+
+#: lexsup.c:219
+msgid "Shared library control for HP/UX compatibility"
+msgstr ""
+
+#: lexsup.c:222
+msgid "ARCH"
+msgstr ""
+
+#: lexsup.c:222
+msgid "Set architecture"
+msgstr ""
+
+#: lexsup.c:224 lexsup.c:487
+msgid "TARGET"
+msgstr ""
+
+#: lexsup.c:224
+msgid "Specify target for following input files"
+msgstr ""
+
+#: lexsup.c:227 lexsup.c:278 lexsup.c:296 lexsup.c:309 lexsup.c:311
+#: lexsup.c:441 lexsup.c:501 lexsup.c:563 lexsup.c:576
+msgid "FILE"
+msgstr ""
+
+#: lexsup.c:227
+msgid "Read MRI format linker script"
+msgstr ""
+
+#: lexsup.c:229
+msgid "Force common symbols to be defined"
+msgstr ""
+
+#: lexsup.c:233 lexsup.c:545 lexsup.c:547 lexsup.c:549 lexsup.c:551
+msgid "ADDRESS"
+msgstr ""
+
+#: lexsup.c:233
+msgid "Set start address"
+msgstr ""
+
+#: lexsup.c:235
+msgid "Export all dynamic symbols"
+msgstr ""
+
+#: lexsup.c:237
+msgid "Undo the effect of --export-dynamic"
+msgstr ""
+
+#: lexsup.c:239
+msgid "Link big-endian objects"
+msgstr ""
+
+#: lexsup.c:241
+msgid "Link little-endian objects"
+msgstr ""
+
+#: lexsup.c:243 lexsup.c:246
+msgid "SHLIB"
+msgstr ""
+
+#: lexsup.c:243
+msgid "Auxiliary filter for shared object symbol table"
+msgstr ""
+
+#: lexsup.c:246
+msgid "Filter for shared object symbol table"
+msgstr ""
+
+#: lexsup.c:249
+msgid "Ignored"
+msgstr ""
+
+#: lexsup.c:251
+msgid "SIZE"
+msgstr ""
+
+#: lexsup.c:251
+msgid "Small data size (if no size, same as --shared)"
+msgstr ""
+
+#: lexsup.c:254
+msgid "FILENAME"
+msgstr ""
+
+#: lexsup.c:254
+msgid "Set internal name of shared library"
+msgstr ""
+
+#: lexsup.c:256
+msgid "PROGRAM"
+msgstr ""
+
+#: lexsup.c:256
+msgid "Set PROGRAM as the dynamic linker to use"
+msgstr ""
+
+#: lexsup.c:259
+msgid "LIBNAME"
+msgstr ""
+
+#: lexsup.c:259
+msgid "Search for library LIBNAME"
+msgstr ""
+
+#: lexsup.c:261
+msgid "DIRECTORY"
+msgstr ""
+
+#: lexsup.c:261
+msgid "Add DIRECTORY to library search path"
+msgstr ""
+
+#: lexsup.c:264
+msgid "Override the default sysroot location"
+msgstr ""
+
+#: lexsup.c:266
+msgid "EMULATION"
+msgstr ""
+
+#: lexsup.c:266
+msgid "Set emulation"
+msgstr ""
+
+#: lexsup.c:268
+msgid "Print map file on standard output"
+msgstr ""
+
+#: lexsup.c:270
+msgid "Do not page align data"
+msgstr ""
+
+#: lexsup.c:272
+msgid "Do not page align data, do not make text readonly"
+msgstr ""
+
+#: lexsup.c:275
+msgid "Page align data, make text readonly"
+msgstr ""
+
+#: lexsup.c:278
+msgid "Set output file name"
+msgstr ""
+
+#: lexsup.c:280
+msgid "Optimize output file"
+msgstr ""
+
+#: lexsup.c:283
+msgid "PLUGIN"
+msgstr ""
+
+#: lexsup.c:283
+msgid "Load named plugin"
+msgstr ""
+
+#: lexsup.c:285
+msgid "ARG"
+msgstr ""
+
+#: lexsup.c:285
+msgid "Send arg to last-loaded plugin"
+msgstr ""
+
+#: lexsup.c:288
+msgid "Ignored for SVR4 compatibility"
+msgstr ""
+
+#: lexsup.c:292
+msgid "Generate relocatable output"
+msgstr ""
+
+#: lexsup.c:296
+msgid "Just link symbols (if directory, same as --rpath)"
+msgstr ""
+
+#: lexsup.c:299
+msgid "Strip all symbols"
+msgstr ""
+
+#: lexsup.c:301
+msgid "Strip debugging symbols"
+msgstr ""
+
+#: lexsup.c:303
+msgid "Strip symbols in discarded sections"
+msgstr ""
+
+#: lexsup.c:305
+msgid "Do not strip symbols in discarded sections"
+msgstr ""
+
+#: lexsup.c:307
+msgid "Trace file opens"
+msgstr ""
+
+#: lexsup.c:309
+msgid "Read linker script"
+msgstr ""
+
+#: lexsup.c:311
+msgid "Read default linker script"
+msgstr ""
+
+#: lexsup.c:315 lexsup.c:333 lexsup.c:418 lexsup.c:439 lexsup.c:538
+#: lexsup.c:566 lexsup.c:605
+msgid "SYMBOL"
+msgstr ""
+
+#: lexsup.c:315
+msgid "Start with undefined reference to SYMBOL"
+msgstr ""
+
+#: lexsup.c:318
+msgid "[=SECTION]"
+msgstr ""
+
+#: lexsup.c:319
+msgid "Don't merge input [SECTION | orphan] sections"
+msgstr ""
+
+#: lexsup.c:321
+msgid "Build global constructor/destructor tables"
+msgstr ""
+
+#: lexsup.c:323
+msgid "Print version information"
+msgstr ""
+
+#: lexsup.c:325
+msgid "Print version and emulation information"
+msgstr ""
+
+#: lexsup.c:327
+msgid "Discard all local symbols"
+msgstr ""
+
+#: lexsup.c:329
+msgid "Discard temporary local symbols (default)"
+msgstr ""
+
+#: lexsup.c:331
+msgid "Don't discard any local symbols"
+msgstr ""
+
+#: lexsup.c:333
+msgid "Trace mentions of SYMBOL"
+msgstr ""
+
+#: lexsup.c:335 lexsup.c:503 lexsup.c:505
+msgid "PATH"
+msgstr ""
+
+#: lexsup.c:335
+msgid "Default search path for Solaris compatibility"
+msgstr ""
+
+#: lexsup.c:338
+msgid "Start a group"
+msgstr ""
+
+#: lexsup.c:340
+msgid "End a group"
+msgstr ""
+
+#: lexsup.c:344
+msgid "Accept input files whose architecture cannot be determined"
+msgstr ""
+
+#: lexsup.c:348
+msgid "Reject input files whose architecture is unknown"
+msgstr ""
+
+#: lexsup.c:361
+msgid "Only set DT_NEEDED for following dynamic libs if used"
+msgstr ""
+
+#: lexsup.c:364
+msgid ""
+"Always set DT_NEEDED for dynamic libraries mentioned on\n"
+" the command line"
+msgstr ""
+
+#: lexsup.c:368
+msgid "Ignored for SunOS compatibility"
+msgstr ""
+
+#: lexsup.c:370
+msgid "Link against shared libraries"
+msgstr ""
+
+#: lexsup.c:376
+msgid "Do not link against shared libraries"
+msgstr ""
+
+#: lexsup.c:384
+msgid "Bind global references locally"
+msgstr ""
+
+#: lexsup.c:386
+msgid "Bind global function references locally"
+msgstr ""
+
+#: lexsup.c:388
+msgid "Check section addresses for overlaps (default)"
+msgstr ""
+
+#: lexsup.c:391
+msgid "Do not check section addresses for overlaps"
+msgstr ""
+
+#: lexsup.c:395
+msgid "Copy DT_NEEDED links mentioned inside DSOs that follow"
+msgstr ""
+
+#: lexsup.c:399
+msgid "Do not copy DT_NEEDED links mentioned inside DSOs that follow"
+msgstr ""
+
+#: lexsup.c:403
+msgid "Output cross reference table"
+msgstr ""
+
+#: lexsup.c:405
+msgid "SYMBOL=EXPRESSION"
+msgstr ""
+
+#: lexsup.c:405
+msgid "Define a symbol"
+msgstr ""
+
+#: lexsup.c:407
+msgid "[=STYLE]"
+msgstr ""
+
+#: lexsup.c:407
+msgid "Demangle symbol names [using STYLE]"
+msgstr ""
+
+#: lexsup.c:410
+msgid "Generate embedded relocs"
+msgstr ""
+
+#: lexsup.c:412
+msgid "Treat warnings as errors"
+msgstr ""
+
+#: lexsup.c:415
+msgid "Do not treat warnings as errors (default)"
+msgstr ""
+
+#: lexsup.c:418
+msgid "Call SYMBOL at unload-time"
+msgstr ""
+
+#: lexsup.c:420
+msgid "Force generation of file with .exe suffix"
+msgstr ""
+
+#: lexsup.c:422
+msgid "Remove unused sections (on some targets)"
+msgstr ""
+
+#: lexsup.c:425
+msgid "Don't remove unused sections (default)"
+msgstr ""
+
+#: lexsup.c:428
+msgid "List removed unused sections on stderr"
+msgstr ""
+
+#: lexsup.c:431
+msgid "Do not list removed unused sections"
+msgstr ""
+
+#: lexsup.c:434
+msgid "Set default hash table size close to <NUMBER>"
+msgstr ""
+
+#: lexsup.c:437
+msgid "Print option help"
+msgstr ""
+
+#: lexsup.c:439
+msgid "Call SYMBOL at load-time"
+msgstr ""
+
+#: lexsup.c:441
+msgid "Write a map file"
+msgstr ""
+
+#: lexsup.c:443
+msgid "Do not define Common storage"
+msgstr ""
+
+#: lexsup.c:445
+msgid "Do not demangle symbol names"
+msgstr ""
+
+#: lexsup.c:447
+msgid "Use less memory and more disk I/O"
+msgstr ""
+
+#: lexsup.c:449
+msgid "Do not allow unresolved references in object files"
+msgstr ""
+
+#: lexsup.c:452
+msgid "Allow unresolved references in shared libaries"
+msgstr ""
+
+#: lexsup.c:456
+msgid "Do not allow unresolved references in shared libs"
+msgstr ""
+
+#: lexsup.c:460
+msgid "Allow multiple definitions"
+msgstr ""
+
+#: lexsup.c:462
+msgid "Disallow undefined version"
+msgstr ""
+
+#: lexsup.c:464
+msgid "Create default symbol version"
+msgstr ""
+
+#: lexsup.c:467
+msgid "Create default symbol version for imported symbols"
+msgstr ""
+
+#: lexsup.c:470
+msgid "Don't warn about mismatched input files"
+msgstr ""
+
+#: lexsup.c:473
+msgid "Don't warn on finding an incompatible library"
+msgstr ""
+
+#: lexsup.c:476
+msgid "Turn off --whole-archive"
+msgstr ""
+
+#: lexsup.c:478
+msgid "Create an output file even if errors occur"
+msgstr ""
+
+#: lexsup.c:483
+msgid ""
+"Only use library directories specified on\n"
+" the command line"
+msgstr ""
+
+#: lexsup.c:487
+msgid "Specify target of output file"
+msgstr ""
+
+#: lexsup.c:490
+msgid "Ignored for Linux compatibility"
+msgstr ""
+
+#: lexsup.c:493
+msgid "Reduce memory overheads, possibly taking much longer"
+msgstr ""
+
+#: lexsup.c:496
+msgid "Reduce code size by using target specific optimizations"
+msgstr ""
+
+#: lexsup.c:498
+msgid "Do not use relaxation techniques to reduce code size"
+msgstr ""
+
+#: lexsup.c:501
+msgid "Keep only symbols listed in FILE"
+msgstr ""
+
+#: lexsup.c:503
+msgid "Set runtime shared library search path"
+msgstr ""
+
+#: lexsup.c:505
+msgid "Set link time shared library search path"
+msgstr ""
+
+#: lexsup.c:508
+msgid "Create a shared library"
+msgstr ""
+
+#: lexsup.c:512
+msgid "Create a position independent executable"
+msgstr ""
+
+#: lexsup.c:516
+msgid "[=ascending|descending]"
+msgstr ""
+
+#: lexsup.c:517
+msgid "Sort common symbols by alignment [in specified order]"
+msgstr ""
+
+#: lexsup.c:522
+msgid "name|alignment"
+msgstr ""
+
+#: lexsup.c:523
+msgid "Sort sections by name or maximum alignment"
+msgstr ""
+
+#: lexsup.c:525
+msgid "COUNT"
+msgstr ""
+
+#: lexsup.c:525
+msgid "How many tags to reserve in .dynamic section"
+msgstr ""
+
+#: lexsup.c:528
+msgid "[=SIZE]"
+msgstr ""
+
+#: lexsup.c:528
+msgid "Split output sections every SIZE octets"
+msgstr ""
+
+#: lexsup.c:531
+msgid "[=COUNT]"
+msgstr ""
+
+#: lexsup.c:531
+msgid "Split output sections every COUNT relocs"
+msgstr ""
+
+#: lexsup.c:534
+msgid "Print memory usage statistics"
+msgstr ""
+
+#: lexsup.c:536
+msgid "Display target specific options"
+msgstr ""
+
+#: lexsup.c:538
+msgid "Do task level linking"
+msgstr ""
+
+#: lexsup.c:540
+msgid "Use same format as native linker"
+msgstr ""
+
+#: lexsup.c:542
+msgid "SECTION=ADDRESS"
+msgstr ""
+
+#: lexsup.c:542
+msgid "Set address of named section"
+msgstr ""
+
+#: lexsup.c:545
+msgid "Set address of .bss section"
+msgstr ""
+
+#: lexsup.c:547
+msgid "Set address of .data section"
+msgstr ""
+
+#: lexsup.c:549
+msgid "Set address of .text section"
+msgstr ""
+
+#: lexsup.c:551
+msgid "Set address of text segment"
+msgstr ""
+
+#: lexsup.c:554
+msgid ""
+"How to handle unresolved symbols. <method> is:\n"
+" ignore-all, report-all, ignore-in-object-files,\n"
+" ignore-in-shared-libs"
+msgstr ""
+
+#: lexsup.c:559
+msgid "Output lots of information during link"
+msgstr ""
+
+#: lexsup.c:563
+msgid "Read version information script"
+msgstr ""
+
+#: lexsup.c:566
+msgid ""
+"Take export symbols list from .exports, using\n"
+" SYMBOL as the version."
+msgstr ""
+
+#: lexsup.c:570
+msgid "Add data symbols to dynamic list"
+msgstr ""
+
+#: lexsup.c:572
+msgid "Use C++ operator new/delete dynamic list"
+msgstr ""
+
+#: lexsup.c:574
+msgid "Use C++ typeinfo dynamic list"
+msgstr ""
+
+#: lexsup.c:576
+msgid "Read dynamic list"
+msgstr ""
+
+#: lexsup.c:578
+msgid "Warn about duplicate common symbols"
+msgstr ""
+
+#: lexsup.c:580
+msgid "Warn if global constructors/destructors are seen"
+msgstr ""
+
+#: lexsup.c:583
+msgid "Warn if the multiple GP values are used"
+msgstr ""
+
+#: lexsup.c:585
+msgid "Warn only once per undefined symbol"
+msgstr ""
+
+#: lexsup.c:587
+msgid "Warn if start of section changes due to alignment"
+msgstr ""
+
+#: lexsup.c:590
+msgid "Warn if shared object has DT_TEXTREL"
+msgstr ""
+
+#: lexsup.c:593
+msgid "Warn if an object has alternate ELF machine code"
+msgstr ""
+
+#: lexsup.c:597
+msgid "Report unresolved symbols as warnings"
+msgstr ""
+
+#: lexsup.c:600
+msgid "Report unresolved symbols as errors"
+msgstr ""
+
+#: lexsup.c:602
+msgid "Include all objects from following archives"
+msgstr ""
+
+#: lexsup.c:605
+msgid "Use wrapper functions for SYMBOL"
+msgstr ""
+
+#: lexsup.c:754
+msgid "%P: unrecognized option '%s'\n"
+msgstr ""
+
+#: lexsup.c:758
+msgid "%P%F: use the --help option for usage information\n"
+msgstr ""
+
+#: lexsup.c:776
+msgid "%P%F: unrecognized -a option `%s'\n"
+msgstr ""
+
+#: lexsup.c:789
+msgid "%P%F: unrecognized -assert option `%s'\n"
+msgstr ""
+
+#: lexsup.c:832
+msgid "%F%P: unknown demangling style `%s'"
+msgstr ""
+
+#: lexsup.c:898
+msgid "%P%F: invalid number `%s'\n"
+msgstr ""
+
+#: lexsup.c:996
+msgid "%P%F: bad --unresolved-symbols option: %s\n"
+msgstr ""
+
+#: lexsup.c:1059
+msgid "%P%F: bad -plugin option\n"
+msgstr ""
+
+#: lexsup.c:1063
+msgid "%P%F: bad -plugin-opt option\n"
+msgstr ""
+
+#. This can happen if the user put "-rpath,a" on the command
+#. line. (Or something similar. The comma is important).
+#. Getopt becomes confused and thinks that this is a -r option
+#. but it cannot parse the text after the -r so it refuses to
+#. increment the optind counter. Detect this case and issue
+#. 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:1080
+msgid "%P%F: bad -rpath option\n"
+msgstr ""
+
+#: lexsup.c:1194
+msgid "%P%F: -shared not supported\n"
+msgstr ""
+
+#: lexsup.c:1203
+msgid "%P%F: -pie not supported\n"
+msgstr ""
+
+#: lexsup.c:1211
+msgid "descending"
+msgstr ""
+
+#: lexsup.c:1213
+msgid "ascending"
+msgstr ""
+
+#: lexsup.c:1216
+msgid "%P%F: invalid common section sorting option: %s\n"
+msgstr ""
+
+#: lexsup.c:1220
+msgid "name"
+msgstr ""
+
+#: lexsup.c:1222
+msgid "alignment"
+msgstr ""
+
+#: lexsup.c:1225
+msgid "%P%F: invalid section sorting option: %s\n"
+msgstr ""
+
+#: lexsup.c:1259
+msgid "%P%F: invalid argument to option \"--section-start\"\n"
+msgstr ""
+
+#: lexsup.c:1266
+msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
+msgstr ""
+
+#: lexsup.c:1490
+msgid "%P%F: group ended before it began (--help for usage)\n"
+msgstr ""
+
+#: lexsup.c:1518
+msgid "%P%X: --hash-size needs a numeric argument\n"
+msgstr ""
+
+#: lexsup.c:1547
+msgid "%P%F: %s: error loading plugin\n"
+msgstr ""
+
+#: lexsup.c:1578 lexsup.c:1591
+msgid "%P%F: invalid hex number `%s'\n"
+msgstr ""
+
+#: lexsup.c:1627
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr ""
+
+#: lexsup.c:1629
+#, c-format
+msgid "Options:\n"
+msgstr ""
+
+#: lexsup.c:1707
+#, c-format
+msgid " @FILE"
+msgstr ""
+
+#: lexsup.c:1710
+#, 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:1715
+#, c-format
+msgid "%s: supported targets:"
+msgstr ""
+
+#: lexsup.c:1723
+#, c-format
+msgid "%s: supported emulations: "
+msgstr ""
+
+#: lexsup.c:1728
+#, c-format
+msgid "%s: emulation specific options:\n"
+msgstr ""
+
+#: lexsup.c:1733
+#, c-format
+msgid "Report bugs to %s\n"
+msgstr ""
+
+#: mri.c:292
+msgid "%P%F: unknown format type %s\n"
+msgstr ""
+
+#: pe-dll.c:430
+#, c-format
+msgid "%XUnsupported PEI architecture: %s\n"
+msgstr ""
+
+#: pe-dll.c:788
+#, c-format
+msgid "%XCannot export %s: invalid export name\n"
+msgstr ""
+
+#: pe-dll.c:844
+#, c-format
+msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
+msgstr ""
+
+#: pe-dll.c:851
+#, c-format
+msgid "Warning, duplicate EXPORT: %s\n"
+msgstr ""
+
+#: pe-dll.c:938
+#, c-format
+msgid "%XCannot export %s: symbol not defined\n"
+msgstr ""
+
+#: pe-dll.c:944
+#, c-format
+msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
+msgstr ""
+
+#: pe-dll.c:951
+#, c-format
+msgid "%XCannot export %s: symbol not found\n"
+msgstr ""
+
+#: pe-dll.c:1065
+#, c-format
+msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
+msgstr ""
+
+#: pe-dll.c:1446
+#, c-format
+msgid "%XError: %d-bit reloc in dll\n"
+msgstr ""
+
+#: pe-dll.c:1574
+#, c-format
+msgid "%s: Can't open output def file %s\n"
+msgstr ""
+
+#: pe-dll.c:1725
+#, c-format
+msgid "; no contents available\n"
+msgstr ""
+
+#: pe-dll.c:2652
+msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
+msgstr ""
+
+#: pe-dll.c:2682
+#, c-format
+msgid "%XCan't open .lib file: %s\n"
+msgstr ""
+
+#: pe-dll.c:2687
+#, c-format
+msgid "Creating library file: %s\n"
+msgstr ""
+
+#: pe-dll.c:2716
+#, c-format
+msgid "%Xbfd_openr %s: %E\n"
+msgstr ""
+
+#: pe-dll.c:2728
+#, c-format
+msgid "%X%s(%s): can't find member in non-archive file"
+msgstr ""
+
+#: pe-dll.c:2740
+#, c-format
+msgid "%X%s(%s): can't find member in archive"
+msgstr ""
+
+#: pe-dll.c:3177
+#, c-format
+msgid "%XError: can't use long section names on this arch\n"
+msgstr ""
+
+#: plugin.c:178 plugin.c:212
+msgid "<no plugin>"
+msgstr ""
+
+#: plugin.c:308
+msgid "%P%F: %s: non-ELF symbol in ELF BFD!"
+msgstr ""
+
+#: plugin.c:800
+msgid "%P%X: %s: hash table failure adding symbol %s"
+msgstr ""
+
+#: plugin.c:833
+#, fuzzy
+msgid "%P%X: %s: can't find IR symbol '%s'"
+msgstr "%P: предупреждение: не удаётÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ входную точку Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ в режиме Ñжатого набора команд %s\n"
+
+#: plugin.c:836
+msgid "%P%x: %s: bad IR symbol type %d"
+msgstr ""
diff --git a/ld/po/tr.po b/ld/po/tr.po
index edeb684..3e08e70 100644
--- a/ld/po/tr.po
+++ b/ld/po/tr.po
@@ -10,6 +10,7 @@ msgstr ""
"PO-Revision-Date: 2005-03-14 04:48+0200\n"
"Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff --git a/ld/po/uk.po b/ld/po/uk.po
index ce8b0e2..b4dfa06 100644
--- a/ld/po/uk.po
+++ b/ld/po/uk.po
@@ -2,201 +2,207 @@
# Copyright (C) 2012 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
#
-# Yuri Chornoivan <yurchor@ukr.net>, 2012.
+# Yuri Chornoivan <yurchor@ukr.net>, 2012, 2014, 2017.
msgid ""
msgstr ""
-"Project-Id-Version: ld 2.22.90\n"
+"Project-Id-Version: ld 2.28.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2011-10-25 11:20+0100\n"
-"PO-Revision-Date: 2012-08-12 15:46+0300\n"
+"POT-Creation-Date: 2017-07-03 16:56+0200\n"
+"PO-Revision-Date: 2017-07-05 21:44+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Lokalize 1.5\n"
-#: emultempl/armcoff.em:73
+#: emultempl/armcoff.em:72
#, c-format
msgid " --support-old-code Support interworking with old code\n"
msgstr " --support-old-code підтримувати працездатніÑÑ‚ÑŒ зі Ñтарим кодом\n"
-#: emultempl/armcoff.em:74
+#: emultempl/armcoff.em:73
#, c-format
msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
msgstr " --thumb-entry=<Ñимвол> вÑтановити точку Ð²Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñƒ позицію Ñимволу Thumb <Ñимвол>\n"
-#: emultempl/armcoff.em:122
+#: emultempl/armcoff.em:121
#, c-format
msgid "Errors encountered processing file %s"
msgstr "Під Ñ‡Ð°Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ файла ÑталиÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸, %s"
-#: emultempl/armcoff.em:192 emultempl/pe.em:1812
+#: emultempl/armcoff.em:191 emultempl/pe.em:2062
msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
msgstr "%P: попередженнÑ: «--thumb-entry %s» має вищий пріоритет за «-e %s»\n"
-#: emultempl/armcoff.em:197 emultempl/pe.em:1817
+#: emultempl/armcoff.em:196 emultempl/pe.em:2067
msgid "%P: warning: cannot find thumb start symbol %s\n"
msgstr "%P: попередженнÑ: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ початковий Ñимвол мініатюри %s\n"
-#: emultempl/pe.em:419
+#: emultempl/pe.em:430
#, c-format
msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
msgstr " --base_file <базовий файл> Ñтворити оÑновний файл Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ñ… до переÑÑƒÐ²Ð°Ð½Ð½Ñ DLL\n"
-#: emultempl/pe.em:420
+#: emultempl/pe.em:431
#, c-format
msgid " --dll Set image base to the default for DLLs\n"
msgstr " --dll вÑтановити типову оÑнову образу Ð´Ð»Ñ DLL\n"
-#: emultempl/pe.em:421
+#: emultempl/pe.em:432
#, c-format
msgid " --file-alignment <size> Set file alignment\n"
msgstr " --file-alignment <розмір> вÑтановити Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²\n"
-#: emultempl/pe.em:422
+#: emultempl/pe.em:433
#, c-format
msgid " --heap <size> Set initial size of the heap\n"
msgstr " --heap <розмір> вÑтановити початковий розмір купи (heap)\n"
-#: emultempl/pe.em:423
+#: emultempl/pe.em:434
#, c-format
msgid " --image-base <address> Set start address of the executable\n"
msgstr " --image-base <адреÑа> вÑтановити початкову адреÑу виконуваного файла\n"
-#: emultempl/pe.em:424
+#: emultempl/pe.em:435
#, c-format
msgid " --major-image-version <number> Set version number of the executable\n"
msgstr " --major-image-version <чиÑло> вÑтановити номер верÑÑ–Ñ— виконуваного файла\n"
-#: emultempl/pe.em:425
+#: emultempl/pe.em:436
#, c-format
msgid " --major-os-version <number> Set minimum required OS version\n"
msgstr " --major-os-version <чиÑло> вÑтановити мінімальні вимоги щодо верÑÑ–Ñ— ОС\n"
-#: emultempl/pe.em:426
+#: emultempl/pe.em:437
#, c-format
msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n"
msgstr " --major-subsystem-version <чиÑло> вÑтановити мінімальні вимоги щодо верÑÑ–Ñ— підÑиÑтеми ОС\n"
-#: emultempl/pe.em:427
+#: emultempl/pe.em:438
#, c-format
msgid " --minor-image-version <number> Set revision number of the executable\n"
msgstr " --minor-image-version <чиÑло> вÑтановити номер модифікації виконуваного файла\n"
-#: emultempl/pe.em:428
+#: emultempl/pe.em:439
#, c-format
msgid " --minor-os-version <number> Set minimum required OS revision\n"
msgstr " --minor-os-version <чиÑло> вÑтановити мінімальні вимоги щодо номера модифікації ОС\n"
-#: emultempl/pe.em:429
+#: emultempl/pe.em:440
#, c-format
msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
msgstr " --minor-subsystem-version <чиÑло> вÑтановити мінімальні вимоги щодо модифікації підÑиÑтеми ОС\n"
-#: emultempl/pe.em:430
+#: emultempl/pe.em:441
#, c-format
msgid " --section-alignment <size> Set section alignment\n"
msgstr " --section-alignment <розмір> вÑтановити Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ\n"
-#: emultempl/pe.em:431
+#: emultempl/pe.em:442
#, c-format
msgid " --stack <size> Set size of the initial stack\n"
msgstr " --stack <розмір> вÑтановити розмір початкового Ñтека\n"
-#: emultempl/pe.em:432
+#: emultempl/pe.em:443
#, c-format
msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
msgstr " --subsystem <назва>[:<верÑÑ–Ñ>] вÑтановити вимоги щодо підÑиÑтеми [Ñ– верÑÑ–Ñ—] ОС\n"
-#: emultempl/pe.em:433
+#: emultempl/pe.em:444
#, c-format
msgid " --support-old-code Support interworking with old code\n"
msgstr " --support-old-code підтримувати працездатніÑÑ‚ÑŒ зі Ñтарим кодом\n"
-#: emultempl/pe.em:434
+#: emultempl/pe.em:445
#, c-format
msgid " --[no-]leading-underscore Set explicit symbol underscore prefix mode\n"
msgstr " --[no-]leading-underscore вÑтановити режим Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€ÐµÑ„Ñ–ÐºÑів _ Ñвним чином\n"
-#: emultempl/pe.em:435
+#: emultempl/pe.em:446
#, c-format
msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
msgstr " --thumb-entry=<Ñимвол> вÑтановити точку Ð²Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñƒ позицію Ñимволу Thumb <Ñимвол>\n"
-#: emultempl/pe.em:437
+#: emultempl/pe.em:447
+#, c-format
+msgid " --[no-]insert-timestamp Use a real timestamp rather than zero (default).\n"
+msgstr " --[no-]insert-timestamp викориÑтовувати Ñправжню чаÑову позначку заміÑÑ‚ÑŒ Ð½ÑƒÐ»Ñ (типово).\n"
+
+#: emultempl/pe.em:448
+#, c-format
+msgid " This makes binaries non-deterministic\n"
+msgstr " Робить виконувані файли недетермініÑтичними\n"
+
+#: emultempl/pe.em:450
#, c-format
msgid " --add-stdcall-alias Export symbols with and without @nn\n"
msgstr " --add-stdcall-alias екÑпортувати Ñимволи з Ñ– без @nn\n"
-#: emultempl/pe.em:438
+#: emultempl/pe.em:451
#, c-format
msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
msgstr " --disable-stdcall-fixup не компонувати _sym з _sym@nn\n"
-#: emultempl/pe.em:439
+#: emultempl/pe.em:452
#, c-format
msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
msgstr " --enable-stdcall-fixup компонувати _sym з _sym@nn без попереджень\n"
-#: emultempl/pe.em:440
+#: emultempl/pe.em:453
#, c-format
msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
msgstr " --exclude-symbols Ñимвол,... виключити Ñимволи з автоматичного екÑпортуваннÑ\n"
-#: emultempl/pe.em:441
+#: emultempl/pe.em:454
#, c-format
msgid " --exclude-all-symbols Exclude all symbols from automatic export\n"
msgstr " --exclude-all-symbols виключити вÑÑ– Ñимволи з автоматичного екÑпортуваннÑ\n"
-#: emultempl/pe.em:442
+#: emultempl/pe.em:455
#, c-format
msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n"
msgstr " --exclude-libs бібліотека,... виключити бібліотеки з автоматичного екÑпортуваннÑ\n"
-#: emultempl/pe.em:443
+#: emultempl/pe.em:456
#, c-format
msgid " --exclude-modules-for-implib mod,mod,...\n"
msgstr " --exclude-modules-for-implib модуль,модуль,...\n"
-#: emultempl/pe.em:444
+#: emultempl/pe.em:457
#, c-format
msgid " Exclude objects, archive members from auto\n"
msgstr " виключити об’єкти, елементи архівів з авто-\n"
-#: emultempl/pe.em:445
+#: emultempl/pe.em:458
#, c-format
msgid " export, place into import library instead.\n"
msgstr " екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– розміÑтити Ñ—Ñ… у бібліотеці імпортуваннÑ.\n"
-#: emultempl/pe.em:446
+#: emultempl/pe.em:459
#, c-format
msgid " --export-all-symbols Automatically export all globals to DLL\n"
msgstr " --export-all-symbols автоматично екÑпортувати вÑÑ– загальні Ñимволи до DLL\n"
-#: emultempl/pe.em:447
+#: emultempl/pe.em:460
#, c-format
msgid " --kill-at Remove @nn from exported symbols\n"
msgstr " --kill-at вилучити @nn з екÑпортованих Ñимволів\n"
-#: emultempl/pe.em:448
-#, c-format
-msgid " --out-implib <file> Generate import library\n"
-msgstr " --out-implib <файл> Ñтворити бібліотеку імпортуваннÑ\n"
-
-#: emultempl/pe.em:449
+#: emultempl/pe.em:461
#, c-format
msgid " --output-def <file> Generate a .DEF file for the built DLL\n"
msgstr " --output-def <файл> Ñтворити файл .DEF Ð´Ð»Ñ Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾Ñ— DLL\n"
-#: emultempl/pe.em:450
+#: emultempl/pe.em:462
#, c-format
-msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
-msgstr " --warn-duplicate-exports попереджати про подвійне екÑпортуваннÑ.\n"
+msgid " --warn-duplicate-exports Warn about duplicate exports\n"
+msgstr " --warn-duplicate-exports попереджати про подвійне екÑпортуваннÑ\n"
-#: emultempl/pe.em:451
+#: emultempl/pe.em:463
#, c-format
msgid ""
" --compat-implib Create backward compatible import libs;\n"
@@ -205,21 +211,23 @@ msgstr ""
" --compat-implib Ñтворити бібліотеки Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ñ– зворотною ÑуміÑніÑÑ‚ÑŽ;\n"
" також Ñтворити __imp_<СИМВОЛ>.\n"
-#: emultempl/pe.em:453
+#: emultempl/pe.em:465
#, c-format
msgid ""
-" --enable-auto-image-base Automatically choose image base for DLLs\n"
-" unless user specifies one\n"
+" --enable-auto-image-base[=<address>] Automatically choose image base for DLLs\n"
+" (optionally starting with address) unless\n"
+" specifically set with --image-base\n"
msgstr ""
-" --enable-auto-image-base автоматично вибирати оÑнову образу Ð´Ð»Ñ DLL,\n"
+" --enable-auto-image-base[=<адреÑа>] автоматично вибирати оÑнову образу Ð´Ð»Ñ DLL\n"
+" (може починатиÑÑ Ð· адреÑи),\n"
" Ñкщо оÑнову не вказано кориÑтувачем\n"
-#: emultempl/pe.em:455
+#: emultempl/pe.em:468
#, c-format
msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n"
msgstr " --disable-auto-image-base не вибирати оÑнову образу у автоматичному режимі (типово)\n"
-#: emultempl/pe.em:456
+#: emultempl/pe.em:469
#, c-format
msgid ""
" --dll-search-prefix=<string> When linking dynamically to a dll without\n"
@@ -230,7 +238,7 @@ msgstr ""
" importlib надавати перевагу <Ñ€Ñдок><назва_оÑнови>.dll\n"
" заміÑÑ‚ÑŒ lib<назва_оÑнови>.dll \n"
-#: emultempl/pe.em:459
+#: emultempl/pe.em:472
#, c-format
msgid ""
" --enable-auto-import Do sophisticated linking of _sym to\n"
@@ -239,12 +247,12 @@ msgstr ""
" --enable-auto-import виконати інтелектуальне ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ _sym з\n"
" __imp_sym Ð´Ð»Ñ Ð¿Ð¾Ñилань DATA\n"
-#: emultempl/pe.em:461
+#: emultempl/pe.em:474
#, c-format
msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n"
msgstr " --disable-auto-import не імпортувати запиÑи DATA з DLL автоматично\n"
-#: emultempl/pe.em:462
+#: emultempl/pe.em:475
#, c-format
msgid ""
" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n"
@@ -255,7 +263,7 @@ msgstr ""
" пÑевдопереÑувань у\n"
" режимі виконаннÑ.\n"
-#: emultempl/pe.em:465
+#: emultempl/pe.em:478
#, c-format
msgid ""
" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n"
@@ -264,7 +272,7 @@ msgstr ""
" --disable-runtime-pseudo-reloc не додавати динамічні пÑевдопереÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ\n"
" автоматично імпортованих даних.\n"
-#: emultempl/pe.em:467
+#: emultempl/pe.em:480
#, c-format
msgid ""
" --enable-extra-pe-debug Enable verbose debug output when building\n"
@@ -273,7 +281,7 @@ msgstr ""
" --enable-extra-pe-debug увімкнути докладне діагноÑтичне Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ чаÑ\n"
" Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ DLL (оÑобливо автоімпортуваннÑ)\n"
-#: emultempl/pe.em:470
+#: emultempl/pe.em:483
#, c-format
msgid ""
" --large-address-aware Executable supports virtual addresses\n"
@@ -282,7 +290,16 @@ msgstr ""
" --large-address-aware у виконуваному файлів підтримуютьÑÑ Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ–\n"
" адреÑи, що перевищують 2 гігабайти.\n"
-#: emultempl/pe.em:472
+#: emultempl/pe.em:485
+#, c-format
+msgid ""
+" --disable-large-address-aware Executable does not support virtual\n"
+" addresses greater than 2 gigabytes\n"
+msgstr ""
+" --disable-large-address-aware у виконуваних файлах не передбачено підтримки\n"
+" адреÑ, що перевищують 2 гігабайти\n"
+
+#: emultempl/pe.em:487
#, c-format
msgid ""
" --enable-long-section-names Use long COFF section names even in\n"
@@ -291,7 +308,7 @@ msgstr ""
" --enable-long-section-names викориÑтовувати довгі назви розділів COFF,\n"
" навіть у образах виконуваних файлів\n"
-#: emultempl/pe.em:474
+#: emultempl/pe.em:489
#, c-format
msgid ""
" --disable-long-section-names Never use long COFF section names, even\n"
@@ -300,7 +317,7 @@ msgstr ""
" --disable-long-section-names ніколи не викориÑтовувати довгі назви розділів COFF,\n"
" навіть у об’єктних файлах\n"
-#: emultempl/pe.em:476
+#: emultempl/pe.em:491
#, c-format
msgid ""
" --dynamicbase\t\t\t Image base address may be relocated using\n"
@@ -309,22 +326,22 @@ msgstr ""
" --dynamicbase\t\t\t оÑновну адреÑу образу може бути переÑунуто за\n"
"\t\t\t\t допомогою рандомізації ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñтору Ð°Ð´Ñ€ÐµÑ (ASLR)\n"
-#: emultempl/pe.em:478
+#: emultempl/pe.em:493
#, c-format
msgid " --forceinteg\t\t Code integrity checks are enforced\n"
msgstr " --forceinteg\t\t примуÑове Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¾Ðº з ціліÑноÑÑ‚Ñ– коду\n"
-#: emultempl/pe.em:479
+#: emultempl/pe.em:494
#, c-format
msgid " --nxcompat\t\t Image is compatible with data execution prevention\n"
msgstr " --nxcompat\t\t образ Ñ” ÑуміÑним із запобіганнÑм виконанню даних\n"
-#: emultempl/pe.em:480
+#: emultempl/pe.em:495
#, c-format
msgid " --no-isolation\t\t Image understands isolation but do not isolate the image\n"
msgstr " --no-isolation\t\t образ передбачає ізолÑцію, але не ізолювати Ñам образ\n"
-#: emultempl/pe.em:481
+#: emultempl/pe.em:496
#, c-format
msgid ""
" --no-seh\t\t\t Image does not use SEH. No SE handler may\n"
@@ -333,73 +350,78 @@ msgstr ""
" --no-seh\t\t\t у образі не викориÑтовуєтьÑÑ SEH. Обробники SE не\n"
"\t\t\t\t можна викликати у цьому образі\n"
-#: emultempl/pe.em:483
+#: emultempl/pe.em:498
#, c-format
msgid " --no-bind\t\t\t Do not bind this image\n"
msgstr " --no-bind\t\t\t не прив’Ñзувати цей образ\n"
-#: emultempl/pe.em:484
+#: emultempl/pe.em:499
#, c-format
msgid " --wdmdriver\t\t Driver uses the WDM model\n"
msgstr " --wdmdriver\t\t у драйвері викориÑтовуєтьÑÑ Ð¼Ð¾Ð´ÐµÐ»ÑŒ WDM\n"
-#: emultempl/pe.em:485
+#: emultempl/pe.em:500
#, c-format
msgid " --tsaware Image is Terminal Server aware\n"
msgstr " --tsaware образ може працювати з термінальним Ñервером\n"
-#: emultempl/pe.em:614
+#: emultempl/pe.em:501
+#, c-format
+msgid " --build-id[=STYLE] Generate build ID\n"
+msgstr " --build-id[=СТИЛЬ] Ñтворити ідентифікатор збираннÑ\n"
+
+#: emultempl/pe.em:629
msgid "%P: warning: bad version number in -subsystem option\n"
msgstr "%P: попередженнÑ: помилковий номер верÑÑ–Ñ— у параметрі -subsystem\n"
-#: emultempl/pe.em:639
+#: emultempl/pe.em:654
msgid "%P%F: invalid subsystem type %s\n"
msgstr "%P%F: некоректний тип підÑиÑтеми %s\n"
-#: emultempl/pe.em:660
+#: emultempl/pe.em:675
msgid "%P%F: invalid hex number for PE parameter '%s'\n"
msgstr "%P%F: некоректний шіÑтнадцÑтковий номер Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° PE «%s»\n"
-#: emultempl/pe.em:677
+#: emultempl/pe.em:692
msgid "%P%F: strange hex info for PE parameter '%s'\n"
msgstr "%P%F: дивна шіÑтнадцÑткова Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° PE «%s»\n"
-#: emultempl/pe.em:692
+#: emultempl/pe.em:708
msgid "%F%P: cannot open base file %s\n"
msgstr "%F%P: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл оÑнови %s\n"
-#: emultempl/pe.em:965
+#: emultempl/pe.em:1004
msgid "%P: warning, file alignment > section alignment.\n"
msgstr "%P: попередженнÑ: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° перевищує Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ.\n"
-#: emultempl/pe.em:978
+#: emultempl/pe.em:1017
msgid "%P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?\n"
msgstr "%P: попередженнÑ: підтримки --export-dynamic Ð´Ð»Ñ PE-призначень не передбачено, ви хотіли ÑкориÑтатиÑÑ --export-all-symbols?\n"
-#: emultempl/pe.em:1054 emultempl/pe.em:1081
+#: emultempl/pe.em:1069
#, c-format
msgid "Warning: resolving %s by linking to %s\n"
msgstr "ПопередженнÑ: розв’Ñзуємо %s компонуваннÑм до %s\n"
-#: emultempl/pe.em:1059 emultempl/pe.em:1086
+#: emultempl/pe.em:1074
msgid "Use --enable-stdcall-fixup to disable these warnings\n"
msgstr "СкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ --enable-stdcall-fixup, щоб вимкнути ці попередженнÑ\n"
-#: emultempl/pe.em:1060 emultempl/pe.em:1087
+#: emultempl/pe.em:1075
msgid "Use --disable-stdcall-fixup to disable these fixups\n"
msgstr "СкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ --disable-stdcall-fixup, щоб вимкнути ці адреÑні прив’Ñзки\n"
-#: emultempl/pe.em:1106
+#: emultempl/pe.em:1143
#, c-format
msgid "%C: Cannot get section contents - auto-import exception\n"
msgstr "%C: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ розділу - Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ auto-import\n"
-#: emultempl/pe.em:1146
+#: emultempl/pe.em:1206
#, c-format
msgid "Info: resolving %s by linking to %s (auto-import)\n"
msgstr "ІнформаціÑ: визначаємо %s компонуваннÑм з %s (автоімпортуваннÑ)\n"
-#: emultempl/pe.em:1153
+#: emultempl/pe.em:1213
msgid ""
"%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line.\n"
"This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.\n"
@@ -407,44 +429,47 @@ msgstr ""
"%P: попередженнÑ: Ð°Ð²Ñ‚Ð¾Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð´Ñ–Ñно без вказаного --enable-auto-import у командному Ñ€Ñдку.\n"
"Це має Ñпрацювати, Ñкщо у автоматично імпортованих DLL немає Ñимволів з поÑиланнÑм на Ñталі Ñтруктури даних.\n"
-#: emultempl/pe.em:1160 emultempl/pe.em:1366 emultempl/pe.em:1573 ldcref.c:490
-#: ldcref.c:588 ldmain.c:1158 ldmisc.c:290 pe-dll.c:706 pe-dll.c:1254
-#: pe-dll.c:1349
+#: emultempl/pe.em:1223 emultempl/pe.em:1618 emultempl/pe.em:1825 ldcref.c:517
+#: ldcref.c:628 ldmain.c:1193 ldmisc.c:302 pe-dll.c:722 pe-dll.c:1301
+#: pe-dll.c:1396
msgid "%B%F: could not read symbols: %E\n"
msgstr "%B%F: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ñимволи: %E\n"
-#: emultempl/pe.em:1242
+#: emultempl/pe.em:1337
+msgid "%P: warning: .buildid section discarded, --build-id ignored.\n"
+msgstr "%P: попередженнÑ: розділ .buildid відкинуто, --build-id проігноровано.\n"
+
+#: emultempl/pe.em:1487
msgid "%F%P: cannot perform PE operations on non PE output file '%B'.\n"
msgstr "%F%P: не можна виконувати дії з PE Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð° виведених даних, Ñкий не Ñ” PE-файлом, «%B».\n"
-#: emultempl/pe.em:1616
+#: emultempl/pe.em:1868
#, c-format
msgid "Errors encountered processing file %s\n"
msgstr "Під Ñ‡Ð°Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ файла ÑталиÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸, %s\n"
-#: emultempl/pe.em:1639
+#: emultempl/pe.em:1891
#, c-format
msgid "Errors encountered processing file %s for interworking\n"
msgstr "Під Ñ‡Ð°Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ файла Ð´Ð»Ñ ÑуміÑної роботи ÑталиÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸, %s\n"
-#: emultempl/pe.em:1701 ldexp.c:581 ldlang.c:3458 ldlang.c:6992 ldlang.c:7023
-#: ldmain.c:1103
+#: emultempl/pe.em:1953 ldexp.c:740 ldlang.c:3396 ldmain.c:1160
msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
msgstr "%P%F: помилка bfd_link_hash_lookup: %E\n"
-#: ldcref.c:168
+#: ldcref.c:170
msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
msgstr "%X%P: помилка під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ bfd_hash_table_init Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– cref: %E\n"
-#: ldcref.c:174
+#: ldcref.c:176
msgid "%X%P: cref_hash_lookup failed: %E\n"
msgstr "%X%P: помилка cref_hash_lookup: %E\n"
-#: ldcref.c:184
+#: ldcref.c:186
msgid "%X%P: cref alloc failed: %E\n"
msgstr "%X%P: помилка alloc cref: %E\n"
-#: ldcref.c:366
+#: ldcref.c:371
#, c-format
msgid ""
"\n"
@@ -455,25 +480,25 @@ msgstr ""
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¿ÐµÑ€ÐµÑ…Ñ€ÐµÑних поÑилань\n"
"\n"
-#: ldcref.c:367
+#: ldcref.c:372
msgid "Symbol"
msgstr "Символ"
-#: ldcref.c:375
+#: ldcref.c:380
#, c-format
msgid "File\n"
msgstr "Файл\n"
-#: ldcref.c:379
+#: ldcref.c:384
#, c-format
msgid "No symbols\n"
msgstr "Ðемає Ñимволів\n"
-#: ldcref.c:532
+#: ldcref.c:565
msgid "%P: symbol `%T' missing from main hash table\n"
msgstr "%P: немає Ñимволу «%T» у оÑновній таблиці хешів\n"
-#: ldcref.c:650 ldcref.c:657 ldmain.c:1192 ldmain.c:1199
+#: ldcref.c:690 ldcref.c:697 ldmain.c:1255 ldmain.c:1262
msgid "%B%F: could not read relocs: %E\n"
msgstr "%B%F: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ переÑуваннÑ: %E\n"
@@ -481,27 +506,31 @@ msgstr "%B%F: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ переÑуваннÑ: %E\
#. in OUTSECNAME. This reloc is from a section which is
#. mapped into a section from which references to OUTSECNAME
#. are prohibited. We must report an error.
-#: ldcref.c:684
+#: ldcref.c:724
msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
msgstr "%X%C: заборонене перехреÑне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð· %s до «%T» у %s\n"
-#: ldctor.c:85
+#: ldctor.c:83
msgid "%P%X: Different relocs used in set %s\n"
msgstr "%P%X: у наборі %s викориÑтано різні переÑуваннÑ\n"
-#: ldctor.c:103
+#: ldctor.c:101
msgid "%P%X: Different object file formats composing set %s\n"
msgstr "%P%X: набір зі ÑполученнÑм об’єктних файлів у різних форматах, %s\n"
-#: ldctor.c:281 ldctor.c:295
+#: ldctor.c:279 ldctor.c:300
msgid "%P%X: %s does not support reloc %s for set %s\n"
msgstr "%P%X: у %s не передбачено підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ %s Ð´Ð»Ñ Ð½Ð°Ð±Ð¾Ñ€Ñƒ %s\n"
-#: ldctor.c:316
+#: ldctor.c:295
+msgid "%P%X: Special section %s does not support reloc %s for set %s\n"
+msgstr "%P%X: у оÑобливому розділі %s не передбачено підтримки переÑÑƒÐ²Ð°Ð½Ð½Ñ %s Ð´Ð»Ñ Ð½Ð°Ð±Ð¾Ñ€Ñƒ %s\n"
+
+#: ldctor.c:321
msgid "%P%X: Unsupported size %d for set %s\n"
msgstr "%P%X: непідтримуваний розмір, %d, Ð´Ð»Ñ Ð½Ð°Ð±Ð¾Ñ€Ñƒ %s\n"
-#: ldctor.c:337
+#: ldctor.c:344
msgid ""
"\n"
"Set Symbol\n"
@@ -511,181 +540,199 @@ msgstr ""
"Ðабір Символ\n"
"\n"
-#: ldemul.c:265
+#: ldemul.c:263
#, c-format
msgid "%S SYSLIB ignored\n"
msgstr "%S SYSLIB, проігноровано\n"
-#: ldemul.c:271
+#: ldemul.c:269
#, c-format
msgid "%S HLL ignored\n"
msgstr "%S HLL, проігноровано\n"
-#: ldemul.c:291
+#: ldemul.c:289
msgid "%P: unrecognised emulation mode: %s\n"
msgstr "%P: невідомий режим емулÑції: %s\n"
-#: ldemul.c:292
+#: ldemul.c:290
msgid "Supported emulations: "
msgstr "Підтримувані режими емулÑції: "
-#: ldemul.c:334
+#: ldemul.c:332
#, c-format
msgid " no emulation specific options.\n"
msgstr " не вказано Ñпецифічних Ð´Ð»Ñ ÐµÐ¼ÑƒÐ»Ñції параметрів\n"
-#: ldexp.c:314
+#: ldexp.c:286
+msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
+msgstr "%P%F: bfd_hash_allocate не вдалоÑÑ Ñтворити Ñимвол %s\n"
+
+#: ldexp.c:318
+msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
+msgstr "%P%F: bfd_hash_lookup не вдалоÑÑ Ñтворити Ñимвол %s\n"
+
+#: ldexp.c:470
msgid "%P: warning: address of `%s' isn't multiple of maximum page size\n"
msgstr "%P: попередженнÑ: адреÑа «%s» не Ñ” кратною до макÑимального розміру Ñторінки\n"
-#: ldexp.c:407
+#: ldexp.c:548
#, c-format
msgid "%F%S %% by zero\n"
msgstr "%F%S %% на нуль\n"
-#: ldexp.c:417
+#: ldexp.c:557
#, c-format
msgid "%F%S / by zero\n"
msgstr "%F%S / на нуль\n"
-#: ldexp.c:591
+#: ldexp.c:752
#, c-format
msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
msgstr "%X%S: у виразі виÑвлено поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñимвол, Ñкий не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸, «%s»\n"
-#: ldexp.c:605
+#: ldexp.c:767
#, c-format
msgid "%F%S: undefined symbol `%s' referenced in expression\n"
msgstr "%F%S: у виразі виÑвлено поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñимвол, Ñкий не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸, «%s»\n"
-#: ldexp.c:626 ldexp.c:643 ldexp.c:670
+#: ldexp.c:789 ldexp.c:807 ldexp.c:835
#, c-format
msgid "%F%S: undefined section `%s' referenced in expression\n"
msgstr "%F%S: у виразі виÑвлено поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° невизначений розділ, «%s»\n"
-#: ldexp.c:697 ldexp.c:711
+#: ldexp.c:867 ldexp.c:883
#, c-format
msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
msgstr "%F%S: у виразі виÑвлено поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° невизначену ділÑнку MEMORY, «%s»\n"
-#: ldexp.c:722
+#: ldexp.c:895
#, c-format
msgid "%F%S: unknown constant `%s' referenced in expression\n"
msgstr "%F%S: у виразі виÑвлено поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° невідому Ñталу, «%s»\n"
-#: ldexp.c:787
+#: ldexp.c:1056
#, c-format
msgid "%F%S can not PROVIDE assignment to location counter\n"
msgstr "%F%S не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ прив’Ñзку до лічильника розташуваннÑ\n"
-#: ldexp.c:805
+#: ldexp.c:1089
#, c-format
msgid "%F%S invalid assignment to location counter\n"
msgstr "%F%S: некоректне Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾ лічильника розташуваннÑ\n"
-#: ldexp.c:808
+#: ldexp.c:1093
#, c-format
-msgid "%F%S assignment to location counter invalid outside of SECTION\n"
-msgstr "%F%S прив’Ñзка до лічильника Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ” некоректною поза межами SECTION\n"
+msgid "%F%S assignment to location counter invalid outside of SECTIONS\n"
+msgstr "%F%S прив’Ñзка до лічильника Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ” некоректною поза межами SECTIONS\n"
-#: ldexp.c:821
+#: ldexp.c:1112
msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
msgstr "%F%S не вдалоÑÑ Ð¿ÐµÑ€ÐµÑунути лічильник Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð·Ð°Ð´ (з %V до %V)\n"
-#: ldexp.c:882
+#: ldexp.c:1171
msgid "%P%F:%s: hash creation failed\n"
msgstr "%P%F:%s: не вдалоÑÑ Ñтворити хеш\n"
-#: ldexp.c:1191 ldexp.c:1216 ldexp.c:1276
+#: ldexp.c:1529 ldexp.c:1555 ldexp.c:1615
#, c-format
msgid "%F%S: nonconstant expression for %s\n"
msgstr "%F%S: неÑталий вираз Ð´Ð»Ñ %s\n"
-#: ldfile.c:142
+#: ldexp.c:1641 ldlang.c:1235 ldlang.c:3170
+msgid "%P%F: can not create hash table: %E\n"
+msgstr "%P%F: не вдалоÑÑ Ñтворити таблицю хешів: %E\n"
+
+#: ldfile.c:132
#, c-format
msgid "attempt to open %s failed\n"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ %s\n"
-#: ldfile.c:144
+#: ldfile.c:134
#, c-format
msgid "attempt to open %s succeeded\n"
msgstr "уÑпішно відкрито %s\n"
-#: ldfile.c:150
+#: ldfile.c:140
msgid "%F%P: invalid BFD target `%s'\n"
msgstr "%F%P: некоректне Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ BFD «%s»\n"
-#: ldfile.c:267 ldfile.c:296
+#: ldfile.c:265 ldfile.c:295
msgid "%P: skipping incompatible %s when searching for %s\n"
msgstr "%P: пропуÑкаємо неÑуміÑний %s під Ñ‡Ð°Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ %s\n"
-#: ldfile.c:280
+#: ldfile.c:278
msgid "%F%P: attempted static link of dynamic object `%s'\n"
msgstr "%F%P: Ñпроба Ñтатичного ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ об’єкта «%s»\n"
-#: ldfile.c:426
+#: ldfile.c:405
msgid "%P: cannot find %s (%s): %E\n"
msgstr "%P: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ %s (%s): %E\n"
-#: ldfile.c:429
+#: ldfile.c:408
msgid "%P: cannot find %s: %E\n"
msgstr "%P: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ %s: %E\n"
-#: ldfile.c:464
+#: ldfile.c:443
msgid "%P: cannot find %s inside %s\n"
msgstr "%P: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ %s у %s\n"
-#: ldfile.c:467
+#: ldfile.c:446
msgid "%P: cannot find %s\n"
msgstr "%P: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ %s\n"
-#: ldfile.c:486 ldfile.c:504
+#: ldfile.c:468
#, c-format
msgid "cannot find script file %s\n"
msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ файл Ñкрипту %s\n"
-#: ldfile.c:488 ldfile.c:506
+#: ldfile.c:470
#, c-format
msgid "opened script file %s\n"
msgstr "відкрито файл Ñкрипту %s\n"
-#: ldfile.c:636
+#: ldfile.c:601
msgid "%P%F: cannot open linker script file %s: %E\n"
msgstr "%P%F: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл Ñкрипту ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ %s: %E\n"
-#: ldfile.c:701
+#: ldfile.c:666
msgid "%P%F: cannot represent machine `%s'\n"
msgstr "%P%F: не вдалоÑÑ Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ архітектуру «%s»\n"
-#: ldlang.c:1221 ldlang.c:1263 ldlang.c:3143
-msgid "%P%F: can not create hash table: %E\n"
-msgstr "%P%F: не вдалоÑÑ Ñтворити таблицю хешів: %E\n"
-
-#: ldlang.c:1314
+#: ldlang.c:1319
msgid "%P:%S: warning: redeclaration of memory region `%s'\n"
msgstr "%P:%S: попередженнÑ: повторне Ð¾Ð³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ Ð´Ñ–Ð»Ñнки пам’ÑÑ‚Ñ– «%s»\n"
-#: ldlang.c:1320
+#: ldlang.c:1325
msgid "%P:%S: warning: memory region `%s' not declared\n"
msgstr "%P:%S: попередженнÑ: ділÑнку пам’ÑÑ‚Ñ– «%s» не оголошено\n"
-#: ldlang.c:1354
+#: ldlang.c:1362
msgid "%F%P:%S: error: alias for default memory region\n"
msgstr "%F%P:%S: помилка: пÑевдонім Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ñ— ділÑнки пам’ÑÑ‚Ñ–\n"
-#: ldlang.c:1365
+#: ldlang.c:1373
msgid "%F%P:%S: error: redefinition of memory region alias `%s'\n"
msgstr "%F%P:%S: помилка: повторне Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñевдоніма ділÑнки пам’ÑÑ‚Ñ– «%s»\n"
-#: ldlang.c:1372
+#: ldlang.c:1380
msgid "%F%P:%S: error: memory region `%s' for alias `%s' does not exist\n"
msgstr "%F%P:%S: помилка: ділÑнки пам’ÑÑ‚Ñ– «%s» Ð´Ð»Ñ Ð¿Ñевдоніма «%s» не Ñ–Ñнує\n"
-#: ldlang.c:1424 ldlang.c:1463
+#: ldlang.c:1439 ldlang.c:1478
msgid "%P%F: failed creating section `%s': %E\n"
msgstr "%P%F: не вдалоÑÑ Ñтворити розділ «%s»: %E\n"
-#: ldlang.c:2025
+#: ldlang.c:1999
+msgid ""
+"\n"
+"As-needed library included to satisfy reference by file (symbol)\n"
+"\n"
+msgstr ""
+"\n"
+"Включено бібліотеку, що завантажуєтьÑÑ Ð½Ð° вимогу, Ð´Ð»Ñ Ð·Ð°Ð´Ð¾Ð²Ð¾Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð·Ð° файлом (Ñимволом)\n"
+"\n"
+
+#: ldlang.c:2065
#, c-format
msgid ""
"\n"
@@ -696,7 +743,7 @@ msgstr ""
"Відкинуті розділи вхідних даних\n"
"\n"
-#: ldlang.c:2033
+#: ldlang.c:2073
msgid ""
"\n"
"Memory Configuration\n"
@@ -706,23 +753,23 @@ msgstr ""
"ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð¿Ð°Ð¼â€™ÑÑ‚Ñ–\n"
"\n"
-#: ldlang.c:2035
+#: ldlang.c:2075
msgid "Name"
msgstr "Ðазва"
-#: ldlang.c:2035
+#: ldlang.c:2075
msgid "Origin"
msgstr "ПоходженнÑ"
-#: ldlang.c:2035
+#: ldlang.c:2075
msgid "Length"
msgstr "Довжина"
-#: ldlang.c:2035
+#: ldlang.c:2075
msgid "Attributes"
msgstr "Ðтрибути"
-#: ldlang.c:2075
+#: ldlang.c:2115
#, c-format
msgid ""
"\n"
@@ -733,178 +780,186 @@ msgstr ""
"Скрипт ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° карта пам’ÑÑ‚Ñ–\n"
"\n"
-#: ldlang.c:2141
+#: ldlang.c:2168
msgid "%P%F: Illegal use of `%s' section\n"
msgstr "%P%F: заборонене викориÑÑ‚Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ «%s»\n"
-#: ldlang.c:2150
-msgid "%P%F: output format %s cannot represent section called %s\n"
-msgstr "%P%F: у форматі вихідних даних %s не можна відтворити розділ з назвою %s\n"
+#: ldlang.c:2177
+msgid "%P%F: output format %s cannot represent section called %s: %E\n"
+msgstr "%P%F: у форматі вихідних даних %s не можна відтворити розділ з назвою %s: %E\n"
-#: ldlang.c:2728
+#: ldlang.c:2757
msgid "%B: file not recognized: %E\n"
msgstr "%B: файл не розпізнано: %E\n"
-#: ldlang.c:2729
+#: ldlang.c:2758
msgid "%B: matching formats:"
msgstr "%B: відповідні формати:"
-#: ldlang.c:2736
+#: ldlang.c:2765
msgid "%F%B: file not recognized: %E\n"
msgstr "%F%B: файл не розпізнано: %E\n"
-#: ldlang.c:2810
+#: ldlang.c:2837
msgid "%F%B: member %B in archive is not an object\n"
msgstr "%F%B: елемент %B у архіві не є об’єктом\n"
-#: ldlang.c:2825 ldlang.c:2839
-msgid "%F%B: could not read symbols: %E\n"
-msgstr "%F%B: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ñимволи: %E\n"
+#: ldlang.c:2852 ldlang.c:2866
+msgid "%F%B: error adding symbols: %E\n"
+msgstr "%F%B: помилка під Ñ‡Ð°Ñ Ñпроби додати Ñимволи: %E\n"
-#: ldlang.c:3113
+#: ldlang.c:3140
msgid "%P: warning: could not find any targets that match endianness requirement\n"
msgstr "%P: попередженнÑ: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ жодних призначень, Ñкі б відповідали вимозі щодо порÑдку байтів\n"
-#: ldlang.c:3127
+#: ldlang.c:3154
msgid "%P%F: target %s not found\n"
msgstr "%P%F: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s не знайдено\n"
-#: ldlang.c:3129
+#: ldlang.c:3156
msgid "%P%F: cannot open output file %s: %E\n"
msgstr "%P%F: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл вихідних даних %s: %E\n"
-#: ldlang.c:3135
+#: ldlang.c:3162
msgid "%P%F:%s: can not make object file: %E\n"
msgstr "%P%F:%s: не вдалоÑÑ Ñтворити об’єктний файл: %E\n"
-#: ldlang.c:3139
+#: ldlang.c:3166
msgid "%P%F:%s: can not set architecture: %E\n"
msgstr "%P%F:%s: не вдалоÑÑ Ð²Ñтановити архітектуру: %E\n"
-#: ldlang.c:3309
+#: ldlang.c:3325
msgid "%P: warning: %s contains output sections; did you forget -T?\n"
msgstr "%P: попередженнÑ: %s міÑтить розділи Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…; не забули параметр -T?\n"
-#: ldlang.c:3350
-msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
-msgstr "%P%F: bfd_hash_lookup не вдалоÑÑ Ñтворити Ñимвол %s\n"
+#: ldlang.c:3465
+msgid "%P%X: required symbol `%s' not defined\n"
+msgstr "%P%X: обов’Ñзковий Ñимвол «%s» не визначено\n"
-#: ldlang.c:3368
-msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
-msgstr "%P%F: bfd_hash_allocate не вдалоÑÑ Ñтворити Ñимвол %s\n"
-
-#: ldlang.c:3764
+#: ldlang.c:3755
msgid "%F%P: %s not found for insert\n"
msgstr "%F%P: не знайдено %s Ð´Ð»Ñ Ð²ÑтавленнÑ\n"
-#: ldlang.c:3979
+#: ldlang.c:3998
msgid " load address 0x%V"
msgstr " адреÑа Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ 0x%V"
-#: ldlang.c:4254
+#: ldlang.c:4234
msgid "%W (size before relaxing)\n"
msgstr "%W (розмір до впорÑдкуваннÑ)\n"
-#: ldlang.c:4345
+#: ldlang.c:4327
#, c-format
msgid "Address of section %s set to "
msgstr "ÐдреÑу розділу %s вÑтановлено у Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ "
-#: ldlang.c:4498
+#: ldlang.c:4489
#, c-format
msgid "Fail with %d\n"
msgstr "Помилка з %d\n"
-#: ldlang.c:4785
-msgid "%X%P: section %s loaded at [%V,%V] overlaps section %s loaded at [%V,%V]\n"
-msgstr "%X%P: розділ %s, завантажений у [%V,%V], перекриваєтьÑÑ Ð· розділом %s, завантаженим у [%V,%V]\n"
+#: ldlang.c:4759
+msgid "%X%P: section %s VMA wraps around address space\n"
+msgstr "%X%P: розділ VMA %s згортає проÑÑ‚Ñ–Ñ€ адреÑ\n"
+
+#: ldlang.c:4765
+msgid "%X%P: section %s LMA wraps around address space\n"
+msgstr "%X%P: розділ LMA %s згортає проÑÑ‚Ñ–Ñ€ адреÑ\n"
+
+#: ldlang.c:4816
+msgid "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"
+msgstr "%X%P: розділ LMA %s [%V,%V], перекриваєтьÑÑ Ð· розділом LMA %s [%V,%V]\n"
+
+#: ldlang.c:4859
+msgid "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"
+msgstr "%X%P: розділ VMA %s [%V,%V], перекриваєтьÑÑ Ð· розділом VMA %s [%V,%V]\n"
-#: ldlang.c:4801
+#: ldlang.c:4880
msgid "%X%P: region `%s' overflowed by %ld bytes\n"
msgstr "%X%P: ділÑнку «%s» переповнено на %ld байтів\n"
-#: ldlang.c:4824
+#: ldlang.c:4902
msgid "%X%P: address 0x%v of %B section `%s' is not within region `%s'\n"
msgstr "%X%P: адреÑа 0x%v розділу %B «%s» не лежить у ділÑнці «%s»\n"
-#: ldlang.c:4835
+#: ldlang.c:4913
msgid "%X%P: %B section `%s' will not fit in region `%s'\n"
msgstr "%X%P: розділ %B «%s» не вміÑтитьÑÑ Ñƒ ділÑнці «%s»\n"
-#: ldlang.c:4892
+#: ldlang.c:4970
#, c-format
msgid "%F%S: non constant or forward reference address expression for section %s\n"
msgstr "%F%S: не Ñталий вираз адреÑи або вираз з випереджувальним поÑиланнÑм Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s\n"
-#: ldlang.c:4917
+#: ldlang.c:4995
msgid "%P%X: Internal error on COFF shared library section %s\n"
msgstr "%P%X: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° у розділі бібліотеки Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ COFF, %s\n"
-#: ldlang.c:4974
+#: ldlang.c:5053
msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
msgstr "%P%F: помилка: Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ розділу «%s» не вказано ділÑнки пам’ÑÑ‚Ñ–\n"
-#: ldlang.c:4979
+#: ldlang.c:5058
msgid "%P: warning: no memory region specified for loadable section `%s'\n"
msgstr "%P: попередженнÑ: у завантажуваному розділі «%s» не вказано ділÑнки пам’ÑÑ‚Ñ–\n"
-#: ldlang.c:5001
+#: ldlang.c:5081
msgid "%P: warning: changing start of section %s by %lu bytes\n"
msgstr "%P: попередженнÑ: змінюємо початок розділу %s на %lu байтів\n"
-#: ldlang.c:5078
+#: ldlang.c:5170
msgid "%P: warning: dot moved backwards before `%s'\n"
msgstr "%P: попередженнÑ: dot переÑунуто назад до «%s»\n"
-#: ldlang.c:5244
+#: ldlang.c:5345
msgid "%P%F: can't relax section: %E\n"
msgstr "%P%F: не вдалоÑÑ Ð²Ð¿Ð¾Ñ€Ñдкувати розділ: %E\n"
-#: ldlang.c:5573
+#: ldlang.c:5697
msgid "%F%P: invalid data statement\n"
msgstr "%F%P: некоректне Ð·Ð°Ð´Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…\n"
-#: ldlang.c:5606
+#: ldlang.c:5730
msgid "%F%P: invalid reloc statement\n"
msgstr "%F%P: некоректна Ð·Ð°Ð´Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑуваннÑ\n"
-#: ldlang.c:5725
+#: ldlang.c:6064
msgid "%P%F: gc-sections requires either an entry or an undefined symbol\n"
msgstr "%P%F: gc-sections потребує вхідного або невизначеного Ñимволу\n"
-#: ldlang.c:5750
+#: ldlang.c:6089
msgid "%P%F:%s: can't set start address\n"
msgstr "%P%F:%s: не вдалоÑÑ Ð²Ñтановити початкову адреÑу\n"
-#: ldlang.c:5763 ldlang.c:5782
+#: ldlang.c:6102 ldlang.c:6121
msgid "%P%F: can't set start address\n"
msgstr "%P%F: не вдалоÑÑ Ð²Ñтановити початкову адреÑу\n"
-#: ldlang.c:5775
+#: ldlang.c:6114
msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
msgstr "%P: попередженнÑ: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ вхідних Ñимвол %s; типовим визначено %V\n"
-#: ldlang.c:5787
+#: ldlang.c:6126
msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
msgstr "%P: попередженнÑ: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ вхідний Ñимвол %s; не кажучи вже про початкову адреÑу\n"
-#: ldlang.c:5842
+#: ldlang.c:6180
msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"
msgstr "%P%F: підтримки придатного до переÑÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð· переÑуваннÑми з формату %s (%B) до формату %s (%B) не передбачено\n"
-#: ldlang.c:5852
+#: ldlang.c:6190
msgid "%P%X: %s architecture of input file `%B' is incompatible with %s output\n"
msgstr "%P%X: архітектура %s файла вхідних даних, «%B», Ñ” неÑуміÑною з виведеннÑм даних %s\n"
-#: ldlang.c:5874
+#: ldlang.c:6212
msgid "%P%X: failed to merge target specific data of file %B\n"
msgstr "%P%X: не вдалоÑÑ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ Ñпецифічні Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ñ– файла %B\n"
-#: ldlang.c:5945
+#: ldlang.c:6283
msgid "%P%F: Could not define common symbol `%T': %E\n"
msgstr "%P%F: не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ типовий Ñимвол «%T»: %E\n"
-#: ldlang.c:5957
+#: ldlang.c:6295
msgid ""
"\n"
"Allocating common symbols\n"
@@ -912,7 +967,7 @@ msgstr ""
"\n"
"Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñимволів\n"
-#: ldlang.c:5958
+#: ldlang.c:6296
msgid ""
"Common symbol size file\n"
"\n"
@@ -920,337 +975,335 @@ msgstr ""
"Загальний Ñимвол розмір файл\n"
"\n"
-#: ldlang.c:6104
-msgid "%P%F: invalid syntax in flags\n"
-msgstr "%P%F: некоректна ÑинтакÑична конÑÑ‚Ñ€ÑƒÐºÑ†Ñ–Ñ Ñƒ прапорцÑÑ…\n"
+#: ldlang.c:6479
+msgid "%P%F: invalid character %c (%d) in flags\n"
+msgstr "%P%F: некоректний Ñимвол %c (%d) у прапорцÑÑ…\n"
-#: ldlang.c:6566
+#: ldlang.c:6606
+msgid "%F%P:%S: error: align with input and explicit align specified\n"
+msgstr "%F%P:%S: помилка: вказано Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð·Ð° вхідними даними та Ñвне вирівнюваннÑ\n"
+
+#: ldlang.c:7006
msgid "%P%F: Failed to create hash table\n"
msgstr "%P%F: не вдалоÑÑ Ñтворити таблицю хешів\n"
-#: ldlang.c:6589
+#: ldlang.c:7029
msgid "%P%F: %s: plugin reported error after all symbols read\n"
msgstr "%P%F: %s: додатком піÑÐ»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²ÑÑ–Ñ… Ñимволів повідомлено про помилку\n"
-#: ldlang.c:6905
+#: ldlang.c:7404
msgid "%P%F: multiple STARTUP files\n"
msgstr "%P%F: декілька файлів STARTUP\n"
-#: ldlang.c:6951
+#: ldlang.c:7450
msgid "%X%P:%S: section has both a load address and a load region\n"
msgstr "%X%P:%S: у розділі Ñ” одразу адреÑа Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ– ділÑнка завантаженнÑ\n"
-#: ldlang.c:7138
+#: ldlang.c:7565
msgid "%X%P:%S: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
msgstr "%X%P:%S: підтримки PHDRS Ñ– FILEHDR не передбачено, Ñкщо у попередніх заголовках PT_LOAD Ñ—Ñ… немає\n"
-#: ldlang.c:7210
+#: ldlang.c:7638
msgid "%F%P: no sections assigned to phdrs\n"
msgstr "%F%P: з p-заголовками не пов’Ñзано жодних розділів\n"
-#: ldlang.c:7248
+#: ldlang.c:7676
msgid "%F%P: bfd_record_phdr failed: %E\n"
msgstr "%F%P: помилка bfd_record_phdr: %E\n"
-#: ldlang.c:7268
+#: ldlang.c:7696
msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
msgstr "%X%P: розділ «%s» пов’Ñзано з p-заголовком, Ñкого не Ñ–Ñнує «%s»\n"
-#: ldlang.c:7677
+#: ldlang.c:8118
msgid "%X%P: unknown language `%s' in version information\n"
msgstr "%X%P: невідома мова, «%s», у даних щодо верÑÑ–Ñ—\n"
-#: ldlang.c:7822
+#: ldlang.c:8263
msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
msgstr "%X%P: анонімний теґ верÑÑ–Ñ— не може бути поєднано з іншими теґами верÑій\n"
-#: ldlang.c:7831
+#: ldlang.c:8272
msgid "%X%P: duplicate version tag `%s'\n"
msgstr "%X%P: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÒ‘Ñƒ version «%s»\n"
-#: ldlang.c:7852 ldlang.c:7861 ldlang.c:7879 ldlang.c:7889
+#: ldlang.c:8293 ldlang.c:8302 ldlang.c:8320 ldlang.c:8330
msgid "%X%P: duplicate expression `%s' in version information\n"
msgstr "%X%P: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ñ€Ð°Ð·Ñƒ «%s» у даних щодо верÑÑ–Ñ—\n"
-#: ldlang.c:7929
+#: ldlang.c:8370
msgid "%X%P: unable to find version dependency `%s'\n"
msgstr "%X%P: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ залежніÑÑ‚ÑŒ за верÑÑ–Ñми «%s»\n"
-#: ldlang.c:7952
+#: ldlang.c:8393
msgid "%X%P: unable to read .exports section contents\n"
msgstr "%X%P: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ вміÑÑ‚ розділу .exports\n"
-#: ldlang.c:8076
+#: ldlang.c:8431
+msgid "%F%P: invalid origin for memory region %s\n"
+msgstr "%F%P: некоректне Ð¿Ð¾Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ð°ÑÑ‚Ñ– пам’ÑÑ‚Ñ– %s\n"
+
+#: ldlang.c:8440
+msgid "%F%P: invalid length for memory region %s\n"
+msgstr "%F%P: некоректна довжина облаÑÑ‚Ñ– пам’ÑÑ‚Ñ– %s\n"
+
+#: ldlang.c:8550
msgid "%X%P: unknown feature `%s'\n"
msgstr "%X%P: невідома можливіÑÑ‚ÑŒ «%s»\n"
-#: ldmain.c:239
+#: ldmain.c:250
msgid "%X%P: can't set BFD default target to `%s': %E\n"
msgstr "%X%P: не вдалоÑÑ Ð²Ñтановити типове Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ BFD у «%s»: %E\n"
-#: ldmain.c:303 lexsup.c:1071
-msgid "%P%F: %s: error loading plugin\n"
-msgstr "%P%F: %s: помилка під Ñ‡Ð°Ñ Ñпроби завантажити додаток\n"
+#: ldmain.c:349
+msgid "built in linker script"
+msgstr "зібрано у Ñкрипті компонувальника"
-#: ldmain.c:340
+#: ldmain.c:359
msgid "using external linker script:"
msgstr "за допомогою зовнішнього Ñкрипту компонуваннÑ:"
-#: ldmain.c:342
+#: ldmain.c:361
msgid "using internal linker script:"
msgstr "за допомогою внутрішнього Ñкрипту компонуваннÑ:"
-#: ldmain.c:379
+#: ldmain.c:411
msgid "%P%F: no input files\n"
msgstr "%P%F: немає файлів вхідних даних\n"
-#: ldmain.c:383
+#: ldmain.c:415
msgid "%P: mode %s\n"
msgstr "%P: режим %s\n"
-#: ldmain.c:399
+#: ldmain.c:431
msgid "%P%F: cannot open map file %s: %E\n"
msgstr "%P%F: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл карти %s: %E\n"
-#: ldmain.c:431
+#: ldmain.c:480
msgid "%P: link errors found, deleting executable `%s'\n"
msgstr "%P: виÑвлено помилки компонуваннÑ, вилучаємо виконуваний файл «%s»\n"
-#: ldmain.c:440
+#: ldmain.c:489
msgid "%F%B: final close failed: %E\n"
msgstr "%F%B: Ñпроба оÑтаточного Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð° невдачі: %E\n"
-#: ldmain.c:466
-msgid "%X%P: unable to open for source of copy `%s'\n"
-msgstr "%X%P: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ Ð´Ð»Ñ Ð´Ð¶ÐµÑ€ÐµÐ»Ð° копії «%s»\n"
+#: ldmain.c:516
+msgid "%P%F: unable to open for source of copy `%s'\n"
+msgstr "%P%F: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ Ð´Ð»Ñ Ð´Ð¶ÐµÑ€ÐµÐ»Ð° копії «%s»\n"
-#: ldmain.c:469
-msgid "%X%P: unable to open for destination of copy `%s'\n"
-msgstr "%X%P: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð¿Ñ–Ñ— «%s»\n"
+#: ldmain.c:519
+msgid "%P%F: unable to open for destination of copy `%s'\n"
+msgstr "%P%F: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð¿Ñ–Ñ— «%s»\n"
-#: ldmain.c:476
+#: ldmain.c:526
msgid "%P: Error writing file `%s'\n"
msgstr "%P: помилка під Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ð±Ð¸ запиÑу файла «%s»\n"
-#: ldmain.c:481 pe-dll.c:1739
+#: ldmain.c:531 pe-dll.c:1786
#, c-format
msgid "%P: Error closing file `%s'\n"
msgstr "%P: помилка під Ñ‡Ð°Ñ Ñпроби закрити файл «%s»\n"
-#: ldmain.c:498
+#: ldmain.c:548
#, c-format
msgid "%s: total time in link: %ld.%06ld\n"
msgstr "%s: загальний чаÑ, витрачений на компонуваннÑ: %ld.%06ld\n"
-#: ldmain.c:501
+#: ldmain.c:551
#, c-format
msgid "%s: data size %ld\n"
msgstr "%s: розмір даних %ld\n"
-#: ldmain.c:585
+#: ldmain.c:635
msgid "%P%F: missing argument to -m\n"
msgstr "%P%F: не виÑтачає аргументу до -m\n"
-#: ldmain.c:633 ldmain.c:653 ldmain.c:685
+#: ldmain.c:685 ldmain.c:702 ldmain.c:722 ldmain.c:754
msgid "%P%F: bfd_hash_table_init failed: %E\n"
msgstr "%P%F: помилка bfd_hash_table_init: %E\n"
-#: ldmain.c:637 ldmain.c:657
+#: ldmain.c:689 ldmain.c:706 ldmain.c:726
msgid "%P%F: bfd_hash_lookup failed: %E\n"
msgstr "%P%F: помилка bfd_hash_lookup: %E\n"
-#: ldmain.c:671
+#: ldmain.c:740
msgid "%X%P: error: duplicate retain-symbols-file\n"
msgstr "%X%P: помилка: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ retain-symbols-file\n"
-#: ldmain.c:715
+#: ldmain.c:784
msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
msgstr "%P%F: Ñпроба викориÑÑ‚Ð°Ð½Ð½Ñ bfd_hash_lookup Ð´Ð»Ñ Ð²ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð° невдачі: %E\n"
-#: ldmain.c:720
+#: ldmain.c:789
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
msgstr "%P: «-retain-symbols-file» має вищий пріоритет «-s» і «-S»\n"
-#: ldmain.c:820
-#, c-format
+#: ldmain.c:883
msgid ""
-"Archive member included because of file (symbol)\n"
+"Archive member included to satisfy reference by file (symbol)\n"
"\n"
msgstr ""
-"Елемент архіву включено через файл (Ñимвол)\n"
+"Включено елемент архіву Ð´Ð»Ñ Ð·Ð°Ð´Ð¾Ð²Ð¾Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° файл (Ñимвол)\n"
"\n"
-#: ldmain.c:926
+#: ldmain.c:989
msgid "%X%C: multiple definition of `%T'\n"
msgstr "%X%C: повторне Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«%T»\n"
-#: ldmain.c:929
+#: ldmain.c:992
msgid "%D: first defined here\n"
msgstr "%D: тут визначено вперше\n"
-#: ldmain.c:933
+#: ldmain.c:996
msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
msgstr "%P: вимикаємо оптимізацію: вона не працюватиме з декількома визначеннÑми\n"
-#: ldmain.c:987
+#: ldmain.c:1048
msgid "%B: warning: definition of `%T' overriding common\n"
msgstr "%B: попередженнÑ: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«%T», що перевизначає «common»\n"
-#: ldmain.c:990
+#: ldmain.c:1051
msgid "%B: warning: common is here\n"
msgstr "%B: попередженнÑ: тут — «common»\n"
-#: ldmain.c:997
+#: ldmain.c:1058
msgid "%B: warning: common of `%T' overridden by definition\n"
msgstr "%B: попередженнÑ: common «%T» перевизначаєтьÑÑ\n"
-#: ldmain.c:1000
+#: ldmain.c:1061
msgid "%B: warning: defined here\n"
msgstr "%B: попередженнÑ: визначено тут\n"
-#: ldmain.c:1007
+#: ldmain.c:1068
msgid "%B: warning: common of `%T' overridden by larger common\n"
msgstr "%B: попередженнÑ: common «%T» перевизначаєтьÑÑ Ð±Ñ–Ð»ÑŒÑˆÐ¸Ð¼ common\n"
-#: ldmain.c:1010
+#: ldmain.c:1071
msgid "%B: warning: larger common is here\n"
msgstr "%B: попереженнÑ: тут більший common\n"
-#: ldmain.c:1014
+#: ldmain.c:1075
msgid "%B: warning: common of `%T' overriding smaller common\n"
msgstr "%B: попередженнÑ: common «%T» перевизначає менший common\n"
-#: ldmain.c:1017
+#: ldmain.c:1078
msgid "%B: warning: smaller common is here\n"
msgstr "%B: попередженнÑ: тут менше «common»\n"
-#: ldmain.c:1021
+#: ldmain.c:1082
msgid "%B: warning: multiple common of `%T'\n"
msgstr "%B: попередженнÑ: декілька common «%T»\n"
-#: ldmain.c:1023
+#: ldmain.c:1084
msgid "%B: warning: previous common is here\n"
msgstr "%B: попередженнÑ: тут — попереднє «common»\n"
-#: ldmain.c:1043 ldmain.c:1081
+#: ldmain.c:1102 ldmain.c:1138
msgid "%P: warning: global constructor %s used\n"
msgstr "%P: попередженнÑ: викориÑтано загальний конÑтруктор %s\n"
-#: ldmain.c:1091
+#: ldmain.c:1148
msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
msgstr "%P%F: помилка Ð¼Ð¾Ð´ÑƒÐ»Ñ BFD: підтримки BFD_RELOC_CTOR не передбачено\n"
#. We found a reloc for the symbol we are looking for.
-#: ldmain.c:1145 ldmain.c:1147 ldmain.c:1149 ldmain.c:1167 ldmain.c:1212
+#: ldmain.c:1220 ldmain.c:1222 ldmain.c:1224 ldmain.c:1232 ldmain.c:1275
msgid "warning: "
msgstr "попередженнÑ: "
-#: ldmain.c:1248
-msgid "%F%P: bfd_hash_table_init failed: %E\n"
-msgstr "%F%P: помилка bfd_hash_table_init: %E\n"
-
-#: ldmain.c:1255
-msgid "%F%P: bfd_hash_lookup failed: %E\n"
-msgstr "%F%P: помилка bfd_hash_lookup: %E\n"
-
-#: ldmain.c:1276
+#: ldmain.c:1328
msgid "%X%C: undefined reference to `%T'\n"
msgstr "%X%C: невизначене поÑÐ¸Ð»Ð°Ð½Ð½Ñ Â«%T»\n"
-#: ldmain.c:1279
+#: ldmain.c:1331
msgid "%C: warning: undefined reference to `%T'\n"
msgstr "%C: попередженнÑ: невизначене поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° «%T»\n"
-#: ldmain.c:1285
+#: ldmain.c:1337
msgid "%X%D: more undefined references to `%T' follow\n"
msgstr "%X%D: нижче інші невизначені поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° «%T»\n"
-#: ldmain.c:1288
+#: ldmain.c:1340
msgid "%D: warning: more undefined references to `%T' follow\n"
msgstr "%D: попередженнÑ: нижче інші невизначені поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° «%T»\n"
-#: ldmain.c:1299
+#: ldmain.c:1351
msgid "%X%B: undefined reference to `%T'\n"
msgstr "%X%B: невизначене поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° «%T»\n"
-#: ldmain.c:1302
+#: ldmain.c:1354
msgid "%B: warning: undefined reference to `%T'\n"
msgstr "%B: попередженнÑ: невизначене поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° «%T»\n"
-#: ldmain.c:1308
+#: ldmain.c:1360
msgid "%X%B: more undefined references to `%T' follow\n"
msgstr "%X%B: нижче інші невизначені поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° «%T»\n"
-#: ldmain.c:1311
+#: ldmain.c:1363
msgid "%B: warning: more undefined references to `%T' follow\n"
msgstr "%B: попередженнÑ: нижче інші невизначені поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° «%T»\n"
-#: ldmain.c:1350
+#: ldmain.c:1400
msgid " additional relocation overflows omitted from the output\n"
msgstr " додаткові Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÑувань виключено з виведених даних\n"
-#: ldmain.c:1363
+#: ldmain.c:1413
msgid " relocation truncated to fit: %s against undefined symbol `%T'"
msgstr " переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð¾ за потребою: %s щодо невизначеного Ñимволу «%T»"
-#: ldmain.c:1368
+#: ldmain.c:1419
msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"
msgstr " переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð¾ за потребою: %s щодо Ñимволу «%T», визначеного у розділі %A у %B"
-#: ldmain.c:1380
+#: ldmain.c:1432
msgid " relocation truncated to fit: %s against `%T'"
msgstr " переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð¾ за потребою: %s щодо «%T»"
-#: ldmain.c:1397
+#: ldmain.c:1448
msgid "%X%H: dangerous relocation: %s\n"
msgstr "%X%H: небезпечне переÑуваннÑ: %s\n"
-#: ldmain.c:1412
+#: ldmain.c:1462
msgid "%X%H: reloc refers to symbol `%T' which is not being output\n"
msgstr "%X%H: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾ÑилаєтьÑÑ Ð½Ð° Ñимвол «%T», Ñкий не виводитьÑÑ\n"
-#: ldmisc.c:151
+#: ldmisc.c:153
#, c-format
msgid "no symbol"
msgstr "немає Ñимволу"
-#: ldmisc.c:248
-#, c-format
-msgid "built in linker script:%u"
-msgstr "вбудований Ñкрипт компонуваннÑ:%u"
-
-#: ldmisc.c:329
+#: ldmisc.c:341
msgid "%B: In function `%T':\n"
msgstr "%B: у функції «%T»:\n"
-#: ldmisc.c:464
+#: ldmisc.c:476
msgid "%F%P: internal error %s %d\n"
msgstr "%F%P: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° %s, %d\n"
-#: ldmisc.c:513
-msgid "%P: internal error: aborting at %s line %d in %s\n"
-msgstr "%P: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: перериваємо роботу у %s, Ñ€Ñдок %d у %s\n"
+#: ldmisc.c:540
+msgid "%P: internal error: aborting at %s:%d in %s\n"
+msgstr "%P: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: перериваємо роботу у %s:%d у %s\n"
-#: ldmisc.c:516
-msgid "%P: internal error: aborting at %s line %d\n"
-msgstr "%P: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: перериваємо роботу у %s, Ñ€Ñдок %d\n"
+#: ldmisc.c:543
+msgid "%P: internal error: aborting at %s:%d\n"
+msgstr "%P: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: перериваємо роботу у %s:%d\n"
-#: ldmisc.c:518
+#: ldmisc.c:545
msgid "%P%F: please report this bug\n"
msgstr "%P%F: будь лаÑка, ÑповіÑÑ‚Ñ–Ñ‚ÑŒ авторів програми про цю ваду\n"
#. Output for noisy == 2 is intended to follow the GNU standards.
-#: ldver.c:39
+#: ldver.c:37
#, c-format
msgid "GNU ld %s\n"
msgstr "GNU ld %s\n"
-#: ldver.c:43
+#: ldver.c:41
#, c-format
-msgid "Copyright 2011 Free Software Foundation, Inc.\n"
-msgstr "© Free Software Foundation, Inc., 2011\n"
+msgid "Copyright (C) 2017 Free Software Foundation, Inc.\n"
+msgstr "© Free Software Foundation, Inc., 2017\n"
-#: ldver.c:44
+#: ldver.c:42
#, c-format
msgid ""
"This program is free software; you may redistribute it under the terms of\n"
@@ -1262,319 +1315,344 @@ msgstr ""
"верÑÑ–Ñ—.\n"
"Ðвторами цієї програми не надаєтьÑÑ Ð¶Ð¾Ð´Ð½Ð¸Ñ… гарантій.\n"
-#: ldver.c:54
+#: ldver.c:52
#, c-format
msgid " Supported emulations:\n"
msgstr " Підтримувані режими емулÑції:\n"
-#: ldwrite.c:62 ldwrite.c:207
+#: ldwrite.c:60 ldwrite.c:206
msgid "%P%F: bfd_new_link_order failed\n"
msgstr "%P%F: помилка bfd_new_link_order\n"
-#: ldwrite.c:365
+#: ldwrite.c:364
msgid "%F%P: cannot create split section name for %s\n"
msgstr "%F%P: не вдалоÑÑ Ñтворити назву розділеного розділу Ð´Ð»Ñ %s\n"
-#: ldwrite.c:377
+#: ldwrite.c:376
msgid "%F%P: clone section failed: %E\n"
msgstr "%F%P: Ñпроба ÐºÐ»Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ зазнала невдачі: %E\n"
-#: ldwrite.c:418
+#: ldwrite.c:414
#, c-format
msgid "%8x something else\n"
msgstr "%8x щоÑÑŒ інше\n"
-#: ldwrite.c:588
+#: ldwrite.c:584
msgid "%F%P: final link failed: %E\n"
msgstr "%F%P: Ñпроба оÑтаточного ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð° невдачі: %E\n"
-#: lexsup.c:220 lexsup.c:374
+#: lexsup.c:102 lexsup.c:276
msgid "KEYWORD"
msgstr "КЛЮЧОВЕ СЛОВО"
-#: lexsup.c:220
+#: lexsup.c:102
msgid "Shared library control for HP/UX compatibility"
msgstr "ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ°Ð¼Ð¸ Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð»Ñ ÑуміÑноÑÑ‚Ñ– з HP/UX"
-#: lexsup.c:223
+#: lexsup.c:105
msgid "ARCH"
msgstr "ÐРХ"
-#: lexsup.c:223
+#: lexsup.c:105
msgid "Set architecture"
msgstr "вÑтановити архітектуру"
-#: lexsup.c:225 lexsup.c:493
+#: lexsup.c:107 lexsup.c:398
msgid "TARGET"
msgstr "ПРИЗÐÐЧЕÐÐЯ"
-#: lexsup.c:225
+#: lexsup.c:107
msgid "Specify target for following input files"
msgstr "Вказати Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð½Ð°Ñтупних файлів вхідних даних"
-#: lexsup.c:228 lexsup.c:279 lexsup.c:303 lexsup.c:316 lexsup.c:318
-#: lexsup.c:447 lexsup.c:509 lexsup.c:572 lexsup.c:585
+#: lexsup.c:110 lexsup.c:167 lexsup.c:171 lexsup.c:202 lexsup.c:215
+#: lexsup.c:217 lexsup.c:352 lexsup.c:416 lexsup.c:483 lexsup.c:496
msgid "FILE"
msgstr "ФÐЙЛ"
-#: lexsup.c:228
+#: lexsup.c:110
msgid "Read MRI format linker script"
msgstr "прочитати Ñкрипт ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ форматі MRI"
-#: lexsup.c:230
+#: lexsup.c:112
msgid "Force common symbols to be defined"
msgstr "примуÑово визначати загальні Ñимволи"
-#: lexsup.c:234 lexsup.c:553 lexsup.c:555 lexsup.c:557 lexsup.c:559
+#: lexsup.c:117
+msgid "Force group members out of groups"
+msgstr "примуÑово групувати учаÑників поза групами"
+
+#: lexsup.c:119 lexsup.c:460 lexsup.c:462 lexsup.c:464 lexsup.c:466
+#: lexsup.c:468 lexsup.c:470
msgid "ADDRESS"
msgstr "ÐДРЕСÐ"
-#: lexsup.c:234
+#: lexsup.c:119
msgid "Set start address"
msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— адреÑи"
-#: lexsup.c:236
+#: lexsup.c:121
msgid "Export all dynamic symbols"
msgstr "ЕкÑпортувати вÑÑ– динамічні Ñимволи"
-#: lexsup.c:238
+#: lexsup.c:123
msgid "Undo the effect of --export-dynamic"
msgstr "ÑкаÑувати ефект від --export-dynamic"
-#: lexsup.c:240
+#: lexsup.c:125
msgid "Link big-endian objects"
msgstr "Компонувати об’єкти з прÑмим порÑдком байтів"
-#: lexsup.c:242
+#: lexsup.c:127
msgid "Link little-endian objects"
msgstr "Компонувати об’єкти зі зворотним порÑдком байтів"
-#: lexsup.c:244 lexsup.c:247
+#: lexsup.c:129 lexsup.c:132
msgid "SHLIB"
msgstr "СПБІБЛ"
-#: lexsup.c:244
+#: lexsup.c:129
msgid "Auxiliary filter for shared object symbol table"
msgstr "допоміжне Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñимволів за об’єктом Ñпільного викориÑтаннÑ"
-#: lexsup.c:247
+#: lexsup.c:132
msgid "Filter for shared object symbol table"
msgstr "Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñимволів за об’єктом Ñпільного викориÑтаннÑ"
-#: lexsup.c:250
+#: lexsup.c:135
msgid "Ignored"
msgstr "ІгноруєтьÑÑ"
-#: lexsup.c:252
+#: lexsup.c:137
msgid "SIZE"
msgstr "РОЗМІР"
-#: lexsup.c:252
+#: lexsup.c:137
msgid "Small data size (if no size, same as --shared)"
msgstr "розмір малих даних (Ñкщо розмір не вказано, те Ñаме, що Ñ– --shared)"
-#: lexsup.c:255
+#: lexsup.c:140
msgid "FILENAME"
msgstr "ÐÐЗВРФÐЙЛÐ"
-#: lexsup.c:255
+#: lexsup.c:140
msgid "Set internal name of shared library"
msgstr "вÑтановити внутрішню назву бібліотеки Ñпільного викориÑтаннÑ"
-#: lexsup.c:257
+#: lexsup.c:142
msgid "PROGRAM"
msgstr "ПРОГРÐÐœÐ"
-#: lexsup.c:257
+#: lexsup.c:142
msgid "Set PROGRAM as the dynamic linker to use"
msgstr "викориÑтати Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ñƒ ПРОГРÐÐœÐ"
-#: lexsup.c:260
+#: lexsup.c:145
+msgid "Produce an executable with no program interpreter header"
+msgstr "Створити виконуваний файл без заголовка інтерпретатора програми"
+
+#: lexsup.c:148
msgid "LIBNAME"
msgstr "ÐÐЗВÐ_БІБЛ"
-#: lexsup.c:260
+#: lexsup.c:148
msgid "Search for library LIBNAME"
msgstr "шукати бібліотеку ÐÐЗВÐ_БІБЛ"
-#: lexsup.c:262
+#: lexsup.c:150
msgid "DIRECTORY"
msgstr "КÐТÐЛОГ"
-#: lexsup.c:262
+#: lexsup.c:150
msgid "Add DIRECTORY to library search path"
msgstr "Додати КÐТÐЛОГ до ÑпиÑку шлÑхів пошуку бібліотек"
-#: lexsup.c:265
+#: lexsup.c:153
msgid "Override the default sysroot location"
msgstr "перевизначити типове Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€ÐµÐ½ÐµÐ²Ð¾Ñ— теки ÑиÑтеми"
-#: lexsup.c:267
+#: lexsup.c:155
msgid "EMULATION"
msgstr "ЕМУЛЯЦІЯ"
-#: lexsup.c:267
+#: lexsup.c:155
msgid "Set emulation"
msgstr "вÑтановити режим емулÑції"
-#: lexsup.c:269
+#: lexsup.c:157
msgid "Print map file on standard output"
msgstr "вивеÑти файл карти до Ñтандартного виведеннÑ"
-#: lexsup.c:271
+#: lexsup.c:159
msgid "Do not page align data"
msgstr "не ділити дані Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð° Ñторінки"
-#: lexsup.c:273
+#: lexsup.c:161
msgid "Do not page align data, do not make text readonly"
msgstr "не ділити дані Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð° Ñторінки, не робити текÑÑ‚ придатним лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ"
-#: lexsup.c:276
+#: lexsup.c:164
msgid "Page align data, make text readonly"
msgstr "поділити дані Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð° Ñторінки, зробити текÑÑ‚ придатним лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ"
-#: lexsup.c:279
+#: lexsup.c:167
msgid "Set output file name"
msgstr "Ð’Ñтановити назву файла вихідних даних"
-#: lexsup.c:281
+#: lexsup.c:169
msgid "Optimize output file"
msgstr "оптимізувати файл виведених даних"
-#: lexsup.c:284
+#: lexsup.c:171
+msgid "Generate import library"
+msgstr "Ñтворити бібліотеку імпортуваннÑ"
+
+#: lexsup.c:174
msgid "PLUGIN"
msgstr "ДОДÐТОК"
-#: lexsup.c:284
+#: lexsup.c:174
msgid "Load named plugin"
msgstr "завантажити вказаний додаток"
-#: lexsup.c:286
+#: lexsup.c:176
msgid "ARG"
msgstr "ÐРГ"
-#: lexsup.c:286
+#: lexsup.c:176
msgid "Send arg to last-loaded plugin"
msgstr "надіÑлати аргумент арг до оÑтаннього завантаженого додатка"
-#: lexsup.c:288 lexsup.c:291
+#: lexsup.c:178 lexsup.c:181
msgid "Ignored for GCC LTO option compatibility"
msgstr "проігноровано Ð´Ð»Ñ ÑуміÑноÑÑ‚Ñ– з параметром LTO GCC"
-#: lexsup.c:295
+#: lexsup.c:185
+msgid "Ignored for GCC linker option compatibility"
+msgstr "Проігноровано Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ ÑуміÑноÑÑ‚Ñ– за параметрами з компонувальником GCC"
+
+#: lexsup.c:188 lexsup.c:191
+msgid "Ignored for gold option compatibility"
+msgstr "проігноровано Ð´Ð»Ñ ÑуміÑноÑÑ‚Ñ– із параметрами gold"
+
+#: lexsup.c:194
msgid "Ignored for SVR4 compatibility"
msgstr "проігноровано Ð´Ð»Ñ ÑуміÑноÑÑ‚Ñ– з SVR4"
-#: lexsup.c:299
+#: lexsup.c:198
msgid "Generate relocatable output"
msgstr "вивеÑти дані з можливіÑÑ‚ÑŽ переÑуваннÑ"
-#: lexsup.c:303
+#: lexsup.c:202
msgid "Just link symbols (if directory, same as --rpath)"
msgstr "проÑто Ñкомпонувати Ñимволи (Ñкщо каталог, те Ñаме, що Ñ– --rpath)"
-#: lexsup.c:306
+#: lexsup.c:205
msgid "Strip all symbols"
msgstr "Вилучити вÑÑ– Ñимволи"
-#: lexsup.c:308
+#: lexsup.c:207
msgid "Strip debugging symbols"
msgstr "Вилучити діагноÑтичні Ñимволи"
-#: lexsup.c:310
+#: lexsup.c:209
msgid "Strip symbols in discarded sections"
msgstr "Вилучити Ñимволи у відкинутих розділах"
-#: lexsup.c:312
+#: lexsup.c:211
msgid "Do not strip symbols in discarded sections"
msgstr "Ðе вилучати Ñимволи у відкинутих розділах"
-#: lexsup.c:314
+#: lexsup.c:213
msgid "Trace file opens"
msgstr "СпоÑтерігати за відкриттÑми файлів"
-#: lexsup.c:316
+#: lexsup.c:215
msgid "Read linker script"
msgstr "Прочитати Ñкрипт компонувальника"
-#: lexsup.c:318
+#: lexsup.c:217
msgid "Read default linker script"
msgstr "Прочитати типовий Ñкрипт компонувальника"
-#: lexsup.c:322 lexsup.c:340 lexsup.c:424 lexsup.c:445 lexsup.c:546
-#: lexsup.c:575 lexsup.c:614
+#: lexsup.c:221 lexsup.c:224 lexsup.c:242 lexsup.c:326 lexsup.c:350
+#: lexsup.c:453 lexsup.c:486 lexsup.c:525 lexsup.c:528
msgid "SYMBOL"
msgstr "СИМВОЛ"
-#: lexsup.c:322
+#: lexsup.c:221
msgid "Start with undefined reference to SYMBOL"
msgstr "розпочати з невизначеного поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° СИМВОЛ"
-#: lexsup.c:325
+#: lexsup.c:224
+msgid "Require SYMBOL be defined in the final output"
+msgstr "Вимагати, щоб СИМВОЛ було визначено у оÑтаточному варіанті"
+
+#: lexsup.c:227
msgid "[=SECTION]"
msgstr "[=РОЗДІЛ]"
-#: lexsup.c:326
+#: lexsup.c:228
msgid "Don't merge input [SECTION | orphan] sections"
msgstr "не об’єднувати розділи вхідних даних [РОЗДІЛ | orphan]"
-#: lexsup.c:328
+#: lexsup.c:230
msgid "Build global constructor/destructor tables"
msgstr "побудувати загальні таблиці конÑтрукторів Ñ– деÑтрукторів"
-#: lexsup.c:330
+#: lexsup.c:232
msgid "Print version information"
msgstr "ВивеÑти дані щодо верÑÑ–Ñ— програми"
-#: lexsup.c:332
+#: lexsup.c:234
msgid "Print version and emulation information"
msgstr "ВивеÑти дані щодо верÑÑ–Ñ— Ñ– емулÑції"
-#: lexsup.c:334
+#: lexsup.c:236
msgid "Discard all local symbols"
msgstr "Відкинути вÑÑ– локальні Ñимволи"
-#: lexsup.c:336
+#: lexsup.c:238
msgid "Discard temporary local symbols (default)"
msgstr "відкидати тимчаÑові локальні Ñимволи (типова поведінка)"
-#: lexsup.c:338
+#: lexsup.c:240
msgid "Don't discard any local symbols"
msgstr "не відкидати жодних локальних Ñимволів"
-#: lexsup.c:340
+#: lexsup.c:242
msgid "Trace mentions of SYMBOL"
msgstr "ТраÑувати згадки СИМВОЛу"
-#: lexsup.c:342 lexsup.c:511 lexsup.c:513
+#: lexsup.c:244 lexsup.c:418 lexsup.c:420
msgid "PATH"
msgstr "ШЛЯХ"
-#: lexsup.c:342
+#: lexsup.c:244
msgid "Default search path for Solaris compatibility"
msgstr "Типовий шлÑÑ… пошуку Ð´Ð»Ñ ÑуміÑноÑÑ‚Ñ– з Solaris"
-#: lexsup.c:345
+#: lexsup.c:247
msgid "Start a group"
msgstr "Почати групу"
-#: lexsup.c:347
+#: lexsup.c:249
msgid "End a group"
msgstr "Завершити групу"
-#: lexsup.c:351
+#: lexsup.c:253
msgid "Accept input files whose architecture cannot be determined"
msgstr "приймати файли вхідних даних, чию архітектуру не може бути визначено"
-#: lexsup.c:355
+#: lexsup.c:257
msgid "Reject input files whose architecture is unknown"
msgstr "відкидати файли вхідних даних, Ñ‡Ð¸Ñ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° Ñ” невідомою"
-#: lexsup.c:367
+#: lexsup.c:269
msgid "Only set DT_NEEDED for following dynamic libs if used"
msgstr "вÑтановлювати DT_NEEDED лише Ð´Ð»Ñ Ð½Ð°Ñтупних динамічних бібліотек, Ñкщо він викориÑтовуєтьÑÑ"
-#: lexsup.c:370
+#: lexsup.c:272
msgid ""
"Always set DT_NEEDED for dynamic libraries mentioned on\n"
" the command line"
@@ -1582,171 +1660,175 @@ msgstr ""
"завжди вÑтановлювати DT_NEEDED Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ñ… бібліотек,\n"
" визначених у командному Ñ€Ñдку"
-#: lexsup.c:374
+#: lexsup.c:276
msgid "Ignored for SunOS compatibility"
msgstr "проігноровано Ð´Ð»Ñ ÑуміÑноÑÑ‚Ñ– з SunOS"
-#: lexsup.c:376
+#: lexsup.c:278
msgid "Link against shared libraries"
msgstr "компонувати з бібліотеками Ñпільного викориÑтаннÑ"
-#: lexsup.c:382
+#: lexsup.c:284
msgid "Do not link against shared libraries"
msgstr "не компонувати з бібліотеками Ñпільного викориÑтаннÑ"
-#: lexsup.c:390
+#: lexsup.c:292
msgid "Bind global references locally"
msgstr "пов’Ñзати загальні поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾"
-#: lexsup.c:392
+#: lexsup.c:294
msgid "Bind global function references locally"
msgstr "пов’Ñзати поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° загальні функції локально"
-#: lexsup.c:394
+#: lexsup.c:296
msgid "Check section addresses for overlaps (default)"
msgstr "перевірÑти Ð¿ÐµÑ€ÐµÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð°Ð´Ñ€ÐµÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² (типова поведінка)"
-#: lexsup.c:397
+#: lexsup.c:299
msgid "Do not check section addresses for overlaps"
msgstr "не перевірÑти Ð¿ÐµÑ€ÐµÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð°Ð´Ñ€ÐµÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð²"
-#: lexsup.c:401
+#: lexsup.c:303
msgid "Copy DT_NEEDED links mentioned inside DSOs that follow"
msgstr "копіювати поÑÐ¸Ð»Ð°Ð½Ð½Ñ DT_NEEDED, згадані у DSO, вказаних надалі"
-#: lexsup.c:405
+#: lexsup.c:307
msgid "Do not copy DT_NEEDED links mentioned inside DSOs that follow"
msgstr "не копіювати поÑÐ¸Ð»Ð°Ð½Ð½Ñ DT_NEEDED, згадані у DSO, вказаних надалі"
-#: lexsup.c:409
+#: lexsup.c:311
msgid "Output cross reference table"
msgstr "вивеÑти таблицю перехреÑних поÑилань"
-#: lexsup.c:411
+#: lexsup.c:313
msgid "SYMBOL=EXPRESSION"
msgstr "СИМВОЛ=ВИРÐЗ"
-#: lexsup.c:411
+#: lexsup.c:313
msgid "Define a symbol"
msgstr "визначити Ñимвол"
-#: lexsup.c:413
+#: lexsup.c:315
msgid "[=STYLE]"
msgstr "[=СТИЛЬ]"
-#: lexsup.c:413
+#: lexsup.c:315
msgid "Demangle symbol names [using STYLE]"
msgstr "розкодовувати назви Ñимволів [з викориÑтаннÑм Ñтилю СТИЛЬ]"
-#: lexsup.c:416
+#: lexsup.c:318
msgid "Generate embedded relocs"
msgstr "Ñтворити вбудовані переÑуваннÑ"
-#: lexsup.c:418
+#: lexsup.c:320
msgid "Treat warnings as errors"
msgstr "вважати Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°Ð¼Ð¸"
-#: lexsup.c:421
+#: lexsup.c:323
msgid "Do not treat warnings as errors (default)"
msgstr "не вважати Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°Ð¼Ð¸ (типова поведінка)"
-#: lexsup.c:424
+#: lexsup.c:326
msgid "Call SYMBOL at unload-time"
msgstr "викликати СИМВОЛ під Ñ‡Ð°Ñ Ð²Ð¸Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ"
-#: lexsup.c:426
+#: lexsup.c:328
msgid "Force generation of file with .exe suffix"
msgstr "примуÑово Ñтворити файл з ÑуфікÑом назви .exe"
-#: lexsup.c:428
+#: lexsup.c:330
msgid "Remove unused sections (on some targets)"
msgstr "вилучити невикориÑтані розділи (Ð´Ð»Ñ Ð´ÐµÑких призначень)"
-#: lexsup.c:431
+#: lexsup.c:333
msgid "Don't remove unused sections (default)"
msgstr "не вилучати невикориÑтаних розділів (типова поведінка)"
-#: lexsup.c:434
+#: lexsup.c:336
msgid "List removed unused sections on stderr"
msgstr "вивеÑти ÑпиÑок вилучених невикориÑтаних розділів до stderr"
-#: lexsup.c:437
+#: lexsup.c:339
msgid "Do not list removed unused sections"
msgstr "не виводити ÑпиÑок вилучених невикориÑтаних розділів"
-#: lexsup.c:440
+#: lexsup.c:342
+msgid "Keep exported symbols when removing unused sections"
+msgstr "зберігати екÑпортовані Ñимволи під Ñ‡Ð°Ñ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð½ÐµÐ²Ð¸ÐºÐ¾Ñ€Ð¸Ñтаних розділів"
+
+#: lexsup.c:345
msgid "Set default hash table size close to <NUMBER>"
msgstr "вÑтановити типовий розмір таблиці хешів близьким до <ЧИСЛО>"
-#: lexsup.c:443
+#: lexsup.c:348
msgid "Print option help"
msgstr "Показати довідку з параметрів"
-#: lexsup.c:445
+#: lexsup.c:350
msgid "Call SYMBOL at load-time"
msgstr "Викликати СИМВОЛ під Ñ‡Ð°Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ"
-#: lexsup.c:447
+#: lexsup.c:352
msgid "Write a map file"
msgstr "запиÑати файл карти (map)"
-#: lexsup.c:449
+#: lexsup.c:354
msgid "Do not define Common storage"
msgstr "не визначати Ñховище Common"
-#: lexsup.c:451
+#: lexsup.c:356
msgid "Do not demangle symbol names"
msgstr "не розкодовувати назви Ñимволів"
-#: lexsup.c:453
+#: lexsup.c:358
msgid "Use less memory and more disk I/O"
msgstr "викориÑтовувати менше пам’ÑÑ‚Ñ– Ñ– ширший обмін даними з диÑком"
-#: lexsup.c:455
+#: lexsup.c:360
msgid "Do not allow unresolved references in object files"
msgstr "заборонÑти нерозв’Ñзні поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñƒ об’єктних файлах"
-#: lexsup.c:458
+#: lexsup.c:363
msgid "Allow unresolved references in shared libraries"
msgstr "дозволÑти нерозв’Ñзні поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñƒ бібліотеках Ñпільного викориÑтаннÑ"
-#: lexsup.c:462
+#: lexsup.c:367
msgid "Do not allow unresolved references in shared libs"
msgstr "заборонÑти нерозв’Ñзні поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñƒ бібліотеках Ñпільного викориÑтаннÑ"
-#: lexsup.c:466
+#: lexsup.c:371
msgid "Allow multiple definitions"
msgstr "дозволÑти повторні визначеннÑ"
-#: lexsup.c:468
+#: lexsup.c:373
msgid "Disallow undefined version"
msgstr "заборонити повторні визначеннÑ"
-#: lexsup.c:470
+#: lexsup.c:375
msgid "Create default symbol version"
msgstr "Ñтворити типову верÑÑ–ÑŽ Ñимволів"
-#: lexsup.c:473
+#: lexsup.c:378
msgid "Create default symbol version for imported symbols"
msgstr "Ñтворити типову верÑÑ–ÑŽ Ñимволів Ð´Ð»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñимволів"
-#: lexsup.c:476
+#: lexsup.c:381
msgid "Don't warn about mismatched input files"
msgstr "не попереджати про невідповідніÑÑ‚ÑŒ файлів вхідних даних"
-#: lexsup.c:479
+#: lexsup.c:384
msgid "Don't warn on finding an incompatible library"
msgstr "не попереджати про виÑÐ²Ð»ÐµÐ½Ð½Ñ Ð½ÐµÑуміÑних бібліотек"
-#: lexsup.c:482
+#: lexsup.c:387
msgid "Turn off --whole-archive"
msgstr "вимкнути --whole-archive"
-#: lexsup.c:484
+#: lexsup.c:389
msgid "Create an output file even if errors occur"
msgstr "Ñтворити файл виведених даних, навіть Ñкщо трапилиÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸"
-#: lexsup.c:489
+#: lexsup.c:394
msgid ""
"Only use library directories specified on\n"
" the command line"
@@ -1754,131 +1836,143 @@ msgstr ""
"викориÑтовувати лише каталоги бібліотек,\n"
" вказані у командному Ñ€Ñдку"
-#: lexsup.c:493
+#: lexsup.c:398
msgid "Specify target of output file"
msgstr "вказати Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð° виведених даних"
-#: lexsup.c:496
+#: lexsup.c:401
msgid "Print default output format"
msgstr "вивеÑти дані щодо типового формату виведеннÑ"
-#: lexsup.c:498
+#: lexsup.c:403
+msgid "Print current sysroot"
+msgstr "вивеÑти поточний sysroot"
+
+#: lexsup.c:405
msgid "Ignored for Linux compatibility"
msgstr "проігноровано Ð´Ð»Ñ ÑуміÑноÑÑ‚Ñ– з Linux"
-#: lexsup.c:501
+#: lexsup.c:408
msgid "Reduce memory overheads, possibly taking much longer"
msgstr "зменшити ÑÐ¿Ð¾Ð¶Ð¸Ð²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼â€™ÑÑ‚Ñ– з можливіÑÑ‚ÑŽ уповільненнÑ"
-#: lexsup.c:504
+#: lexsup.c:411
msgid "Reduce code size by using target specific optimizations"
msgstr "зменшити розмір коду викориÑтаннÑм Ñпецифічних Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ð¹"
-#: lexsup.c:506
+#: lexsup.c:413
msgid "Do not use relaxation techniques to reduce code size"
msgstr "не викориÑтовувати методики оптимізації Ð´Ð»Ñ Ð·Ð¼ÐµÐ½ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñ–Ð² коду"
-#: lexsup.c:509
+#: lexsup.c:416
msgid "Keep only symbols listed in FILE"
msgstr "зберегти лише Ñимволи, перелічені у файлі ФÐЙЛ"
-#: lexsup.c:511
+#: lexsup.c:418
msgid "Set runtime shared library search path"
msgstr "вÑтановити шлÑÑ… пошуку бібліотеки Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð· динамічним завантаженнÑм"
-#: lexsup.c:513
+#: lexsup.c:420
msgid "Set link time shared library search path"
msgstr "вÑтановити шлÑÑ… пошуку бібліотеки Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð½Ð° Ñ‡Ð°Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ"
-#: lexsup.c:516
+#: lexsup.c:423
msgid "Create a shared library"
msgstr "Ñтворити бібліотеку Ñпільного викориÑтаннÑ"
-#: lexsup.c:520
+#: lexsup.c:427
msgid "Create a position independent executable"
msgstr "Ñтворити виконуваний файл з незалежним позиціюваннÑм"
-#: lexsup.c:524
+#: lexsup.c:431
msgid "[=ascending|descending]"
msgstr "[=ascending|descending]"
-#: lexsup.c:525
+#: lexsup.c:432
msgid "Sort common symbols by alignment [in specified order]"
msgstr "впорÑдкувати загальні Ñимволи за вирівнюваннÑм [у вказаному порÑдку]"
-#: lexsup.c:530
+#: lexsup.c:437
msgid "name|alignment"
msgstr "name|alignment"
-#: lexsup.c:531
+#: lexsup.c:438
msgid "Sort sections by name or maximum alignment"
msgstr "впорÑдкувати розділи за назвою або макÑимальним вирівнюваннÑм"
-#: lexsup.c:533
+#: lexsup.c:440
msgid "COUNT"
msgstr "КІЛЬКІСТЬ"
-#: lexsup.c:533
+#: lexsup.c:440
msgid "How many tags to reserve in .dynamic section"
msgstr "кількіÑÑ‚ÑŒ теґів, міÑце Ð´Ð»Ñ Ñких Ñлід зарезервувати у розділі .dynamic"
-#: lexsup.c:536
+#: lexsup.c:443
msgid "[=SIZE]"
msgstr "[=РОЗМІР]"
-#: lexsup.c:536
+#: lexsup.c:443
msgid "Split output sections every SIZE octets"
msgstr "розділÑти розділи виведених даних кожні РОЗМІР октет"
-#: lexsup.c:539
+#: lexsup.c:446
msgid "[=COUNT]"
msgstr "[=КІЛЬКІСТЬ]"
-#: lexsup.c:539
+#: lexsup.c:446
msgid "Split output sections every COUNT relocs"
msgstr "розділÑти розділи виведених даних кожні КІЛЬКІСТЬ переÑувань"
-#: lexsup.c:542
+#: lexsup.c:449
msgid "Print memory usage statistics"
msgstr "вивеÑти ÑтатиÑтичні дані щодо викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼â€™ÑÑ‚Ñ–"
-#: lexsup.c:544
+#: lexsup.c:451
msgid "Display target specific options"
msgstr "вивеÑти параметри, Ñпецифічні Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ"
-#: lexsup.c:546
+#: lexsup.c:453
msgid "Do task level linking"
msgstr "виконати ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° рівні завдань"
-#: lexsup.c:548
+#: lexsup.c:455
msgid "Use same format as native linker"
msgstr "викориÑтовувати той Ñамий формат, що Ñ– природний компонувальник"
-#: lexsup.c:550
+#: lexsup.c:457
msgid "SECTION=ADDRESS"
msgstr "РОЗДІЛ=ÐДРЕСÐ"
-#: lexsup.c:550
+#: lexsup.c:457
msgid "Set address of named section"
msgstr "вÑтановити адреÑу іменованого розділу"
-#: lexsup.c:553
+#: lexsup.c:460
msgid "Set address of .bss section"
msgstr "вÑтановити адреÑу розділу .bss"
-#: lexsup.c:555
+#: lexsup.c:462
msgid "Set address of .data section"
msgstr "вÑтановити адреÑу розділу .data"
-#: lexsup.c:557
+#: lexsup.c:464
msgid "Set address of .text section"
msgstr "вÑтановити адреÑу розділу .text"
-#: lexsup.c:559
+#: lexsup.c:466
msgid "Set address of text segment"
msgstr "вÑтановити адреÑу текÑтового Ñегмента"
-#: lexsup.c:562
+#: lexsup.c:468
+msgid "Set address of rodata segment"
+msgstr "вÑтановити адреÑу Ñегмента rodata"
+
+#: lexsup.c:470
+msgid "Set address of ldata segment"
+msgstr "вÑтановити адреÑу Ñегмента ldata"
+
+#: lexsup.c:473
msgid ""
"How to handle unresolved symbols. <method> is:\n"
" ignore-all, report-all, ignore-in-object-files,\n"
@@ -1888,19 +1982,19 @@ msgstr ""
" ignore-all, report-all, ignore-in-object-files,\n"
" ignore-in-shared-libs"
-#: lexsup.c:567
+#: lexsup.c:478
msgid "[=NUMBER]"
msgstr "[=ЧИСЛО]"
-#: lexsup.c:568
+#: lexsup.c:479
msgid "Output lots of information during link"
msgstr "вивеÑти докладні відомоÑÑ‚Ñ– під Ñ‡Ð°Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ"
-#: lexsup.c:572
+#: lexsup.c:483
msgid "Read version information script"
msgstr "прочитати Ñкрипт даних щодо верÑÑ–Ñ—"
-#: lexsup.c:575
+#: lexsup.c:486
msgid ""
"Take export symbols list from .exports, using\n"
" SYMBOL as the version."
@@ -1908,95 +2002,123 @@ msgstr ""
"отримати ÑпиÑок Ñимволів екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð· .exports, викориÑтовуючи\n"
" викориÑтовуючи СИМВОЛ Ñк верÑÑ–ÑŽ."
-#: lexsup.c:579
+#: lexsup.c:490
msgid "Add data symbols to dynamic list"
msgstr "додавати Ñимволи даних до динамічного ÑпиÑку"
-#: lexsup.c:581
+#: lexsup.c:492
msgid "Use C++ operator new/delete dynamic list"
msgstr "викориÑтовувати динамічний ÑпиÑок операторів new/delete C++"
-#: lexsup.c:583
+#: lexsup.c:494
msgid "Use C++ typeinfo dynamic list"
msgstr "викориÑтовувати динамічний ÑпиÑок typeinfo C++"
-#: lexsup.c:585
+#: lexsup.c:496
msgid "Read dynamic list"
msgstr "читати динамічний ÑпиÑок"
-#: lexsup.c:587
+#: lexsup.c:498
msgid "Warn about duplicate common symbols"
msgstr "попереджати про Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñимволів"
-#: lexsup.c:589
+#: lexsup.c:500
msgid "Warn if global constructors/destructors are seen"
msgstr "попереджати, Ñкщо Ñ” видимими загальні конÑтруктори або деÑтруктори"
-#: lexsup.c:592
+#: lexsup.c:503
msgid "Warn if the multiple GP values are used"
msgstr "попереджати, Ñкщо викориÑтано декілька значень GP"
-#: lexsup.c:594
+#: lexsup.c:505
msgid "Warn only once per undefined symbol"
msgstr "попереджати про невизначений Ñимвол лише один раз"
-#: lexsup.c:596
+#: lexsup.c:507
msgid "Warn if start of section changes due to alignment"
msgstr "попереджати, Ñкщо початок розділу змінюєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· вирівнюваннÑ"
-#: lexsup.c:599
+#: lexsup.c:510
msgid "Warn if shared object has DT_TEXTREL"
msgstr "попереджати, Ñкщо об’єкт Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð¼Ð°Ñ” DT_TEXTREL"
-#: lexsup.c:602
+#: lexsup.c:513
msgid "Warn if an object has alternate ELF machine code"
msgstr "попереджати, Ñкщо об’єкт має альтернативний машинний код ELF"
-#: lexsup.c:606
+#: lexsup.c:517
msgid "Report unresolved symbols as warnings"
msgstr "повідомлÑти про нерозв’Ñзні Ñимволи Ñк про попередженнÑ"
-#: lexsup.c:609
+#: lexsup.c:520
msgid "Report unresolved symbols as errors"
msgstr "повідомлÑти про нерозв’Ñзні Ñимволи Ñк про помилки"
-#: lexsup.c:611
+#: lexsup.c:522
msgid "Include all objects from following archives"
msgstr "включити вÑÑ– об’єкти з вказаних нижче архівів"
-#: lexsup.c:614
+#: lexsup.c:525
msgid "Use wrapper functions for SYMBOL"
msgstr "викориÑтовувати функції-обгортки Ð´Ð»Ñ Ñимволу СИМВОЛ"
-#: lexsup.c:763
+#: lexsup.c:529
+msgid "Unresolved SYMBOL will not cause an error or warning"
+msgstr "невизначений СИМВОЛ не призведе до Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку або попередженнÑ"
+
+#: lexsup.c:531
+msgid "Push state of flags governing input file handling"
+msgstr "подати Ñтан прапорців, Ñкі керують обробкою вхідного файла"
+
+#: lexsup.c:534
+msgid "Pop state of flags governing input file handling"
+msgstr "отримати Ñтан прапорців, Ñкі керують обробкою вхідного файла"
+
+#: lexsup.c:537
+msgid "Report target memory usage"
+msgstr "вивеÑти звіт щодо викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼â€™ÑÑ‚Ñ– призначеннÑ"
+
+#: lexsup.c:539
+msgid "=MODE"
+msgstr "=РЕЖИМ"
+
+#: lexsup.c:539
+msgid "Control how orphan sections are handled."
+msgstr "керувати тим, Ñк оброблÑтимутьÑÑ Ð¾Ñиротілі розділи."
+
+#: lexsup.c:705
+msgid "%P: %s: missing argument\n"
+msgstr "%P: %s: не виÑтачає аргументу\n"
+
+#: lexsup.c:710
msgid "%P: unrecognized option '%s'\n"
msgstr "%P: нерозпізнаний параметр «%s»\n"
-#: lexsup.c:767
+#: lexsup.c:715
msgid "%P%F: use the --help option for usage information\n"
msgstr "%P%F: ÑкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ --help, щоб отримати підказку щодо кориÑтуваннÑ\n"
-#: lexsup.c:785
+#: lexsup.c:734
msgid "%P%F: unrecognized -a option `%s'\n"
msgstr "%P%F: нерозпізнаний параметр -a, «%s»\n"
-#: lexsup.c:798
+#: lexsup.c:747
msgid "%P%F: unrecognized -assert option `%s'\n"
msgstr "%P%F: нерозпізнаний параметр -assert, «%s»\n"
-#: lexsup.c:841
-msgid "%F%P: unknown demangling style `%s'"
-msgstr "%F%P: невідомий Ñтиль декодуваннÑ, «%s»"
+#: lexsup.c:791
+msgid "%F%P: unknown demangling style `%s'\n"
+msgstr "%F%P: невідомий Ñтиль розгортаннÑ, «%s»\n"
-#: lexsup.c:907 lexsup.c:1341
+#: lexsup.c:861 lexsup.c:1330
msgid "%P%F: invalid number `%s'\n"
msgstr "%P%F: некоректне чиÑло, «%s»\n"
-#: lexsup.c:1005
+#: lexsup.c:962
msgid "%P%F: bad --unresolved-symbols option: %s\n"
msgstr "%P%F: помилковий параметр --unresolved-symbols: %s\n"
-#: lexsup.c:1076
+#: lexsup.c:1039
msgid "%P%F: bad -plugin-opt option\n"
msgstr "%P%F: помилковий параметр -plugin-opt\n"
@@ -2008,234 +2130,542 @@ msgstr "%P%F: помилковий параметр -plugin-opt\n"
#. 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:1093
-msgid "%P%F: bad -rpath option\n"
-msgstr "%P%F: помилковий параметр -rpath\n"
+#: lexsup.c:1056
+msgid "%P%F: unrecognised option: %s\n"
+msgstr "%P%F: нерозпізнаний параметр: %s\n"
-#: lexsup.c:1207
+#: lexsup.c:1059 lexsup.c:1299
+msgid "%P%F: -r and %s may not be used together\n"
+msgstr "%P%F: -r Ñ– %s не можна викориÑтовувати одночаÑно\n"
+
+#: lexsup.c:1166
+msgid "%P%F: -r and -shared may not be used together\n"
+msgstr "%P%F: -r Ñ– -shared не можна викориÑтовувати одночаÑно\n"
+
+#: lexsup.c:1177
msgid "%P%F: -shared not supported\n"
msgstr "%P%F: підтримки -shared не передбачено\n"
-#: lexsup.c:1216
+#: lexsup.c:1183
+msgid "%P%F: -r and -pie may not be used together\n"
+msgstr "%P%F: -r Ñ– -pie не можна викориÑтовувати одночаÑно\n"
+
+#: lexsup.c:1188
msgid "%P%F: -pie not supported\n"
msgstr "%P%F: підтримки -pie не передбачено\n"
-#: lexsup.c:1224
+#: lexsup.c:1194
+msgid "%P: SONAME must not be empty string; keeping previous one\n"
+msgstr "%P: SONAME має бути непорожнім Ñ€Ñдком; лишаємо попереднє значеннÑ\n"
+
+#: lexsup.c:1200
msgid "descending"
msgstr "за ÑпаданнÑм"
-#: lexsup.c:1226
+#: lexsup.c:1202
msgid "ascending"
msgstr "за зроÑтаннÑм"
-#: lexsup.c:1229
+#: lexsup.c:1205
msgid "%P%F: invalid common section sorting option: %s\n"
msgstr "%P%F: некоректний параметр впорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñпільних розділів: %s\n"
-#: lexsup.c:1233
+#: lexsup.c:1209
msgid "name"
msgstr "назва"
-#: lexsup.c:1235
+#: lexsup.c:1211
msgid "alignment"
msgstr "вирівнюваннÑ"
-#: lexsup.c:1238
+#: lexsup.c:1214
msgid "%P%F: invalid section sorting option: %s\n"
msgstr "%P%F: некоректний параметр впорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð²: %s\n"
-#: lexsup.c:1272
+#: lexsup.c:1248
msgid "%P%F: invalid argument to option \"--section-start\"\n"
msgstr "%P%F: некоректний аргумент параметра «--section-start»\n"
-#: lexsup.c:1279
+#: lexsup.c:1255
msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
msgstr "%P%F: не виÑтачає аргументів параметра «--section-start»\n"
-#: lexsup.c:1513
+#: lexsup.c:1505
msgid "%P%F: group ended before it began (--help for usage)\n"
msgstr "%P%F: групу завершено до Ñ—Ñ— початку (ÑкориÑтайтеÑÑ --help, щоб отримати довідку з кориÑтуваннÑ)\n"
-#: lexsup.c:1541
+#: lexsup.c:1533
msgid "%P%X: --hash-size needs a numeric argument\n"
msgstr "%P%X: --hash-size потребує чиÑлового аргументу\n"
-#: lexsup.c:1572
-msgid "%P%F: -r and -shared may not be used together\n"
-msgstr "%P%F: -r Ñ– -shared не можна викориÑтовувати одночаÑно\n"
+#: lexsup.c:1545
+msgid "%P%F: no state pushed before popping\n"
+msgstr "%P%F: не подано (push) Ñтану до Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ (pop)\n"
+
+#: lexsup.c:1568
+msgid "%P%F: invalid argument to option \"--orphan-handling\"\n"
+msgstr "%P%F: некоректний аргумент параметра «--orphan-handling»\n"
-#: lexsup.c:1615
+#: lexsup.c:1576
+msgid "%P: SONAME must not be empty string; ignored\n"
+msgstr "%P: SONAME має бути непорожнім Ñ€Ñдком; ігноруємо\n"
+
+#: lexsup.c:1644
msgid "%P%F: -F may not be used without -shared\n"
msgstr "%P%F: -F не можна викориÑтовувати без -shared\n"
-#: lexsup.c:1617
+#: lexsup.c:1646
msgid "%P%F: -f may not be used without -shared\n"
msgstr "%P%F: -f не можна викориÑтовувати без -shared\n"
-#: lexsup.c:1661 lexsup.c:1674
+#: lexsup.c:1687 lexsup.c:1700
msgid "%P%F: invalid hex number `%s'\n"
msgstr "%P%F: некоректне шіÑтнадцÑткове чиÑло «%s»\n"
-#: lexsup.c:1710
+#: lexsup.c:1730
+#, c-format
+msgid " --audit=AUDITLIB Specify a library to use for auditing\n"
+msgstr " --audit=БІБЛÐУДИТУ вказати бібліотеку, Ñку Ñлід викориÑтати Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ\n"
+
+#: lexsup.c:1732
+#, c-format
+msgid " -Bgroup Selects group name lookup rules for DSO\n"
+msgstr " -Bgroup вибирає правила пошук назви групи Ð´Ð»Ñ DSO\n"
+
+#: lexsup.c:1734
+#, c-format
+msgid " --disable-new-dtags Disable new dynamic tags\n"
+msgstr " --disable-new-dtags вимкнути нові динамічні мітки\n"
+
+#: lexsup.c:1736
+#, c-format
+msgid " --enable-new-dtags Enable new dynamic tags\n"
+msgstr " --enable-new-dtags увімкнути нові динамічні мітки\n"
+
+#: lexsup.c:1738
+#, c-format
+msgid " --eh-frame-hdr Create .eh_frame_hdr section\n"
+msgstr " --eh-frame-hdr Ñтворити розділ .eh_frame_hdr\n"
+
+#: lexsup.c:1740
+#, c-format
+msgid " --no-eh-frame-hdr Do not create .eh_frame_hdr section\n"
+msgstr " --no-eh-frame-hdr не Ñтворювати розділ .eh_frame_hdr\n"
+
+#: lexsup.c:1742
+#, c-format
+msgid " --exclude-libs=LIBS Make all symbols in LIBS hidden\n"
+msgstr " --exclude-libs=БІБЛ зробити уÑÑ– Ñимволи у бібліотеках БІБЛ прихованими\n"
+
+#: lexsup.c:1744
+#, c-format
+msgid " --hash-style=STYLE Set hash style to sysv, gnu or both\n"
+msgstr " --hash-style=СТИЛЬ вÑтановити Ñтиль хешуваннÑ: sysv, gnu або both (обидва)\n"
+
+#: lexsup.c:1746
+#, c-format
+msgid ""
+" -P AUDITLIB, --depaudit=AUDITLIB\n"
+"\t\t\t Specify a library to use for auditing dependencies\n"
+msgstr ""
+" -P БІБЛÐУДИТУ, --depaudit=БІБЛÐУДИТУ\n"
+"\t\t\t вказати бібліотеку Ð´Ð»Ñ Ð°ÑƒÐ´Ð¸Ñ‚Ñƒ залежноÑтей\n"
+
+#: lexsup.c:1749
+#, c-format
+msgid " -z combreloc Merge dynamic relocs into one section and sort\n"
+msgstr " -z combreloc об’єднати динамічні Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð´Ð¾ одного розділу Ñ– упорÑдкувати\n"
+
+#: lexsup.c:1751
+#, c-format
+msgid " -z nocombreloc Don't merge dynamic relocs into one section\n"
+msgstr " -z nocombreloc не об’єднувати динамічні Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð´Ð¾ одного розділу\n"
+
+#: lexsup.c:1753
+#, c-format
+msgid ""
+" -z global Make symbols in DSO available for subsequently\n"
+"\t\t\t loaded objects\n"
+msgstr ""
+" -z global зробити Ñимволи у DSO доÑтупними длÑ\n"
+"\t\t\t наÑтупних поÑлідовно завантажених об’єктів\n"
+
+#: lexsup.c:1756
+#, c-format
+msgid " -z initfirst Mark DSO to be initialized first at runtime\n"
+msgstr " -z initfirst позначити DSO Ñк такий, що ініціалізуєтьÑÑ Ð¿ÐµÑ€ÑˆÐ¸Ð¼ при запуÑку\n"
+
+#: lexsup.c:1758
+#, c-format
+msgid " -z interpose Mark object to interpose all DSOs but executable\n"
+msgstr " -z interpose позначити об’єкт Ð´Ð»Ñ Ð²ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ ÑƒÑÑ–Ñ… DSO, окрім виконуваних\n"
+
+#: lexsup.c:1760
+#, c-format
+msgid " -z lazy Mark object lazy runtime binding (default)\n"
+msgstr " -z lazy визначити ліниве прив’ÑÐ·ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ динамічному режимі Ð´Ð»Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° (типове)\n"
+
+#: lexsup.c:1762
+#, c-format
+msgid " -z loadfltr Mark object requiring immediate process\n"
+msgstr " -z loadfltr позначити об’єкт Ñк такий, що потребує негайної обробки\n"
+
+#: lexsup.c:1764
+#, c-format
+msgid " -z nocopyreloc Don't create copy relocs\n"
+msgstr " -z nocopyreloc не Ñтворювати переміщено копій\n"
+
+#: lexsup.c:1766
+#, c-format
+msgid " -z nodefaultlib Mark object not to use default search paths\n"
+msgstr ""
+" -z nodefaultlib позначити об’єкт Ñк такий, що не викориÑтовує\n"
+" типових шлÑхів пошуку\n"
+
+#: lexsup.c:1768
+#, c-format
+msgid " -z nodelete Mark DSO non-deletable at runtime\n"
+msgstr " -z nodelete позначити DSO, Ñк непридатний до Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ\n"
+
+#: lexsup.c:1770
+#, c-format
+msgid " -z nodlopen Mark DSO not available to dlopen\n"
+msgstr " -z nodlopen позначити DSO Ñк недоÑтупний Ð´Ð»Ñ dlopen\n"
+
+#: lexsup.c:1772
+#, c-format
+msgid " -z nodump Mark DSO not available to dldump\n"
+msgstr " -z nodump позначити DSO Ñк недоÑтупний Ð´Ð»Ñ dldump\n"
+
+#: lexsup.c:1774
+#, c-format
+msgid " -z now Mark object non-lazy runtime binding\n"
+msgstr " -z now визначити Ð´Ð»Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° неліниве прив’ÑÐ·ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ динамічному режимі\n"
+
+#: lexsup.c:1776
+#, c-format
+msgid ""
+" -z origin Mark object requiring immediate $ORIGIN\n"
+"\t\t\t\tprocessing at runtime\n"
+msgstr ""
+" -z origin позначити об’єкт Ñк такий, що потребує негайної\n"
+"\t\t\t\tобробки $ORIGIN під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку\n"
+
+#: lexsup.c:1780
+#, c-format
+msgid " -z relro Create RELRO program header (default)\n"
+msgstr " -z relro Ñтворити заголовок програми RELRO (типово)\n"
+
+#: lexsup.c:1782
+#, c-format
+msgid " -z norelro Don't create RELRO program header\n"
+msgstr " -z norelro не Ñтворювати заголовок програми RELRO\n"
+
+#: lexsup.c:1785
+#, c-format
+msgid " -z relro Create RELRO program header\n"
+msgstr " -z relro Ñтворити заголовок програми RELRO\n"
+
+#: lexsup.c:1787
+#, c-format
+msgid " -z norelro Don't create RELRO program header (default)\n"
+msgstr " -z norelro не Ñтворювати заголовок програми RELRO (типово)\n"
+
+#: lexsup.c:1790
+#, c-format
+msgid " -z common Generate common symbols with STT_COMMON type\n"
+msgstr " -z common Ñтворити загальні Ñимволи із типом STT_COMMON\n"
+
+#: lexsup.c:1792
+#, c-format
+msgid " -z nocommon Generate common symbols with STT_OBJECT type\n"
+msgstr " -z nocommon Ñтворити загальні Ñимволи із типом STT_OBJECT\n"
+
+#: lexsup.c:1794
+#, c-format
+msgid " -z stack-size=SIZE Set size of stack segment\n"
+msgstr " -z stack-size=РОЗМІР вÑтановити розмір Ñегмента Ñтека\n"
+
+#: lexsup.c:1796
+#, c-format
+msgid " -z text Treat DT_TEXTREL in shared object as error\n"
+msgstr " -z text вважати DT_TEXTREL у об’єкті Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾ÑŽ\n"
+
+#: lexsup.c:1798
+#, c-format
+msgid " -z notext Don't treat DT_TEXTREL in shared object as error\n"
+msgstr " -z notext не вважати DT_TEXTREL у об’єкті Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾ÑŽ\n"
+
+#: lexsup.c:1800
+#, c-format
+msgid " -z textoff Don't treat DT_TEXTREL in shared object as error\n"
+msgstr " -z textoff не вважати DT_TEXTREL у об’єкті Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾ÑŽ\n"
+
+#: lexsup.c:1807
+#, c-format
+msgid " --build-id[=STYLE] Generate build ID note\n"
+msgstr " --build-id[=СТИЛЬ] Ñтворити нотатку щодо ідентифікатора збираннÑ\n"
+
+#: lexsup.c:1809
+#, c-format
+msgid ""
+" --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]\n"
+" Compress DWARF debug sections using zlib\n"
+msgstr ""
+" --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]\n"
+" ÑтиÑнути розділи діагноÑтики DWARF за допомогою zlib\n"
+
+#: lexsup.c:1813
+#, c-format
+msgid " Default: zlib-gabi\n"
+msgstr " Типове значеннÑ: zlib-gabi\n"
+
+#: lexsup.c:1816
+#, c-format
+msgid " Default: none\n"
+msgstr " Типове значеннÑ: none\n"
+
+#: lexsup.c:1819
+#, c-format
+msgid " -z common-page-size=SIZE Set common page size to SIZE\n"
+msgstr " -z common-page-size=РОЗМІР вÑтановити Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñторінки загальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð ÐžÐ—ÐœÐ†Ð \n"
+
+#: lexsup.c:1821
+#, c-format
+msgid " -z max-page-size=SIZE Set maximum page size to SIZE\n"
+msgstr " -z max-page-size=РОЗМІР вÑтановити Ð´Ð»Ñ Ð¼Ð°ÐºÑимального розміру Ñторінки Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð ÐžÐ—ÐœÐ†Ð \n"
+
+#: lexsup.c:1823
+#, c-format
+msgid " -z defs Report unresolved symbols in object files.\n"
+msgstr " -z defs повідомлÑти про невизначені Ñимволи у об’єктних файлах.\n"
+
+#: lexsup.c:1825
+#, c-format
+msgid " -z muldefs Allow multiple definitions\n"
+msgstr " -z muldefs дозволÑти декілька визначень\n"
+
+#: lexsup.c:1827
+#, c-format
+msgid " -z execstack Mark executable as requiring executable stack\n"
+msgstr " -z execstack позначити виконуваний файл Ñк такий, що потребує виконуваного Ñтека\n"
+
+#: lexsup.c:1829
+#, c-format
+msgid " -z noexecstack Mark executable as not requiring executable stack\n"
+msgstr " -z noexecstack позначити виконуваний файл Ñк такий, що не потребує виконуваного Ñтека\n"
+
+#: lexsup.c:1836
+#, c-format
+msgid ""
+" --ld-generated-unwind-info Generate exception handling info for PLT\n"
+" --no-ld-generated-unwind-info\n"
+" Don't generate exception handling info for PLT\n"
+msgstr ""
+" --ld-generated-unwind-info Ñтворити дані Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ виключень Ð´Ð»Ñ PLT\n"
+" --no-ld-generated-unwind-info\n"
+" не Ñтворювати дані Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ виключень Ð´Ð»Ñ PLT\n"
+
+#: lexsup.c:1848
+#, c-format
+msgid "ELF emulations:\n"
+msgstr "ЕмулÑÑ†Ñ–Ñ ELF:\n"
+
+#: lexsup.c:1866
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "ВикориÑтаннÑ: %s [параметри] файл…\n"
-#: lexsup.c:1712
+#: lexsup.c:1868
#, c-format
msgid "Options:\n"
msgstr "Параметри:\n"
-#: lexsup.c:1790
+#: lexsup.c:1946
#, c-format
msgid " @FILE"
msgstr " @ФÐЙЛ"
-#: lexsup.c:1793
+#: lexsup.c:1949
#, c-format
msgid "Read options from FILE\n"
msgstr "читати параметри з файла ФÐЙЛ\n"
#. Note: Various tools (such as libtool) depend upon the
#. format of the listings below - do not change them.
-#: lexsup.c:1798
+#: lexsup.c:1954
#, c-format
msgid "%s: supported targets:"
msgstr "%s: підтримувані призначеннÑ:"
-#: lexsup.c:1806
+#: lexsup.c:1962
#, c-format
msgid "%s: supported emulations: "
msgstr "%s: підтримувані режими емулÑції: "
-#: lexsup.c:1811
+#: lexsup.c:1967
#, c-format
msgid "%s: emulation specific options:\n"
msgstr "%s: Ñпецифічні параметри емулÑції:\n"
-#: lexsup.c:1816
+#: lexsup.c:1974
#, c-format
msgid "Report bugs to %s\n"
msgstr "ПовідомлÑйте про вади за адреÑою %s\n"
-#: mri.c:294
+#: mri.c:295
msgid "%P%F: unknown format type %s\n"
msgstr "%P%F: невідомий тип Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ %s\n"
-#: pe-dll.c:431
-#, c-format
-msgid "%XUnsupported PEI architecture: %s\n"
-msgstr "%XÐепідтримувана архітектура PEI: %s\n"
+#: pe-dll.c:442
+msgid "%P%X: Unsupported PEI architecture: %s\n"
+msgstr "%P%X: непідтримувана архітектура PEI: %s\n"
-#: pe-dll.c:788
+#: pe-dll.c:811
+msgid "%P%X: Cannot export %s: invalid export name\n"
+msgstr "%P%X: неможливо екÑпортувати %s: некоректна назва екÑпортуваннÑ\n"
+
+#: pe-dll.c:863
#, c-format
-msgid "%XCannot export %s: invalid export name\n"
-msgstr "%XЕкÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ %s неможливе: некоректна назва Ð´Ð»Ñ ÐµÐºÑпортуваннÑ\n"
+msgid "%P%X: Error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
+msgstr "%P%X: помилка: EXPORT повторюєтьÑÑ Ñ–Ð· порÑдковими чиÑлівниками: %s (%d Ñ– %d)\n"
-#: pe-dll.c:845
+#: pe-dll.c:870
#, c-format
-msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
-msgstr "%XПомилка, Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ EXPORT з порÑдковими значеннÑми: %s (%d Ñ– %d)\n"
+msgid "%P: Warning, duplicate EXPORT: %s\n"
+msgstr "%P: попередженнÑ: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ EXPORT: %s\n"
-#: pe-dll.c:852
+#: pe-dll.c:980
#, c-format
-msgid "Warning, duplicate EXPORT: %s\n"
-msgstr "ПопередженнÑ: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ EXPORT: %s\n"
+msgid "%P%X: Cannot export %s: symbol not defined\n"
+msgstr "%P%X: екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ %s неможливе: Ñимвол не визначено\n"
-#: pe-dll.c:939
+#: pe-dll.c:986
#, c-format
-msgid "%XCannot export %s: symbol not defined\n"
-msgstr "%XЕкÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ %s неможливе: не визначено Ñимвол\n"
+msgid "%P%X: Cannot export %s: symbol wrong type (%d vs %d)\n"
+msgstr "%P%X: екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ %s неможливе: Ñимвол належить до помилкового типу (%d Ñ– %d)\n"
-#: pe-dll.c:945
+#: pe-dll.c:993
#, c-format
-msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
-msgstr "%XЕкÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ %s неможливе: Ñимвол помилкового типу (%d Ñ– %d)\n"
+msgid "%P%X: Cannot export %s: symbol not found\n"
+msgstr "%P%X: екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ %s неможливе: Ñимвол не визначено\n"
-#: pe-dll.c:952
+#: pe-dll.c:1107
#, c-format
-msgid "%XCannot export %s: symbol not found\n"
-msgstr "%XЕкÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ %s неможливе: не знайдено Ñимвол\n"
+msgid "%P%X: Error: ordinal used twice: %d (%s vs %s)\n"
+msgstr "%P%X: помилка: порÑдковий номер викориÑтано двічі: %d (%s Ñ– %s)\n"
-#: pe-dll.c:1066
+#: pe-dll.c:1143
#, c-format
-msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
-msgstr "%XПомилка, порÑдковий номер викориÑтано двічі: %d (%s Ñ– %s)\n"
+msgid "%P%X: Error: export ordinal too large: %d\n"
+msgstr "%P%X: помилка: порÑдковий номер екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ” надто великим: %d\n"
-#: pe-dll.c:1456
+#: pe-dll.c:1503
#, c-format
-msgid "%XError: %d-bit reloc in dll\n"
-msgstr "%XПомилка: %d-бітове переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ dll\n"
+msgid "%P%X: Error: %d-bit reloc in dll\n"
+msgstr "%P%X: помилка: %d-бітове Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñƒ dll\n"
-#: pe-dll.c:1584
+#: pe-dll.c:1631
#, c-format
-msgid "%s: Can't open output def file %s\n"
-msgstr "%s: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл def, %s, Ð´Ð»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…\n"
+msgid "%P: Can't open output def file %s\n"
+msgstr "%P: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл def, %s, Ð´Ð»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…\n"
-#: pe-dll.c:1735
+#: pe-dll.c:1782
#, c-format
msgid "; no contents available\n"
msgstr "; вміÑÑ‚ недоÑтупний\n"
-#: pe-dll.c:2662
-msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
-msgstr "%C: змінну «%T» не може бути імпортовано у автоматичному режимі. Будь лаÑка, ознайомтеÑÑ Ð· документацією до параметра --enable-auto-import ld, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ.\n"
+#: pe-dll.c:2701
+msgid "%P%X%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
+msgstr "%P%X%C: змінну «%T» не може бути імпортовано у автоматичному режимі. Будь лаÑка, ознайомтеÑÑ Ð· документацією до параметра --enable-auto-import ld, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ.\n"
-#: pe-dll.c:2692
+#: pe-dll.c:2729
#, c-format
-msgid "%XCan't open .lib file: %s\n"
-msgstr "%XÐе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл .lib: %s\n"
+msgid "%P%X: Can't open .lib file: %s\n"
+msgstr "%P%X: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл .lib: %s\n"
-#: pe-dll.c:2697
+#: pe-dll.c:2735
#, c-format
msgid "Creating library file: %s\n"
msgstr "Створюємо файл бібліотеки: %s\n"
-#: pe-dll.c:2726
-#, c-format
-msgid "%Xbfd_openr %s: %E\n"
-msgstr "%Xbfd_openr %s: %E\n"
+#: pe-dll.c:2764
+msgid "%P%X: bfd_openr %s: %E\n"
+msgstr "%P%X: bfd_openr %s: %E\n"
-#: pe-dll.c:2738
-#, c-format
-msgid "%X%s(%s): can't find member in non-archive file"
-msgstr "%X%s(%s): не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ елемент у неархівному файлі"
+#: pe-dll.c:2776
+msgid "%P%X: %s(%s): can't find member in non-archive file"
+msgstr "%P%X: %s(%s): не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ елемент у неархівному файлі"
-#: pe-dll.c:2750
-#, c-format
-msgid "%X%s(%s): can't find member in archive"
-msgstr "%X%s(%s): не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ елемент у архіві"
+#: pe-dll.c:2788
+msgid "%P%X: %s(%s): can't find member in archive"
+msgstr "%P%X: %s(%s): не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ елемент у архіві"
-#: pe-dll.c:3189
-#, c-format
-msgid "%XError: can't use long section names on this arch\n"
-msgstr "%XПомилка: на цій архітектурі не можна викориÑтовувати довгі назви розділів\n"
+#: pe-dll.c:3414
+msgid "%P%X: Error: can't use long section names on this arch\n"
+msgstr "%P%X: помилка: на цій архітектурі не можна викориÑтовувати довгі назви розділів\n"
-#: plugin.c:177 plugin.c:211
+#: plugin.c:231 plugin.c:277
msgid "<no plugin>"
msgstr "<немає додатка>"
-#: plugin.c:250
+#: plugin.c:246 plugin.c:1017
+msgid "%P%F: %s: error loading plugin: %s\n"
+msgstr "%P%F: %s: помилка під Ñ‡Ð°Ñ Ñпроби завантажити додаток: %s\n"
+
+#: plugin.c:253
+msgid "%P: %s: duplicated plugin\n"
+msgstr "%P: %s: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ°\n"
+
+#: plugin.c:339
#, c-format
msgid "could not create dummy IR bfd: %F%E\n"
msgstr "не вдалоÑÑ Ñтворити шаблон bfd IR: %F%E\n"
-#: plugin.c:343
+#: plugin.c:427
msgid "%P%F: %s: non-ELF symbol in ELF BFD!\n"
msgstr "%P%F: %s: не-ELF Ñимвол у BFD ELF!\n"
-#: plugin.c:347
+#: plugin.c:431
msgid "%P%F: unknown ELF symbol visibility: %d!\n"
msgstr "%P%F: невідоме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑ‚Ñ– Ñимволу ELF: %d!\n"
-#: plugin.c:586
+#: plugin.c:542
+msgid "%P%F: unsupported input file size: %s (%ld bytes)\n"
+msgstr "%P%X: непідтримуваний розмір файла вхідних даних: %s (%ld байтів)\n"
+
+#: plugin.c:786
msgid "%P: %B: symbol `%s' definition: %d, visibility: %d, resolution: %d\n"
msgstr "%P: %B: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñимволу «%s»: %d, видиміÑÑ‚ÑŒ: %d, розв’ÑзаннÑ: %d\n"
-#: plugin.c:863
+#: plugin.c:1024
+msgid "%P%F: %s: plugin error: %d\n"
+msgstr "%P%F: %s: помилка додатка: %d\n"
+
+#: plugin.c:1083
+msgid "%P%F: plugin_strdup failed to allocate memory: %s\n"
+msgstr "%P%F: plugin_strdup не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ пам’ÑÑ‚ÑŒ: %s\n"
+
+#: plugin.c:1115
+msgid "%P%F: plugin failed to allocate memory for input: %s\n"
+msgstr "%P%F: додатку не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ пам’ÑÑ‚ÑŒ Ð´Ð»Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… даних: %s\n"
+
+#: plugin.c:1148
msgid "%P%F: %s: plugin reported error claiming file\n"
msgstr "%P%F: %s: додатком повідомлено про помилку під Ñ‡Ð°Ñ Ñпроби Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°\n"
-#: plugin.c:934
-msgid "%P: %s: error in plugin cleanup (ignored)\n"
-msgstr "%P: %s: помилка під Ñ‡Ð°Ñ Ñпроби Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÑ–Ð² (проігноровано)\n"
+#: plugin.c:1258
+msgid "%P: %s: error in plugin cleanup: %d (ignored)\n"
+msgstr "%P: %s: помилка під Ñ‡Ð°Ñ ÑÐ¿Ð¾Ñ€Ð¾Ð¶Ð½ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… додатка: %d (проігноровано)\n"
+
+#~ msgid " --out-implib <file> Generate import library\n"
+#~ msgstr " --out-implib <файл> Ñтворити бібліотеку імпортуваннÑ\n"
+
+#~ msgid "%P%F: bad -rpath option\n"
+#~ msgstr "%P%F: помилковий параметр -rpath\n"
+
+#~ msgid "%F%P: bfd_hash_table_init failed: %E\n"
+#~ msgstr "%F%P: помилка bfd_hash_table_init: %E\n"
+
+#~ msgid "%F%P: bfd_hash_lookup failed: %E\n"
+#~ msgstr "%F%P: помилка bfd_hash_lookup: %E\n"
diff --git a/ld/po/vi.po b/ld/po/vi.po
index f86c1e0..02a8218 100644
--- a/ld/po/vi.po
+++ b/ld/po/vi.po
@@ -1,36 +1,35 @@
# Vietnamese translation for LD.
-# Copyright © 2012 Free Software Foundation, Inc.
+# Copyright © 2013 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
# Clytie Siddall <clytie@riverland.net.au>, 2005-2010.
-# Trần Ngá»c Quân <vnwildman@gmail.com>, 2012.
+# Trần Ngá»c Quân <vnwildman@gmail.com>, 2012-2013.
#
msgid ""
msgstr ""
-"Project-Id-Version: ld-2.22.90\n"
+"Project-Id-Version: ld-2.23.2\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2011-10-25 11:20+0100\n"
-"PO-Revision-Date: 2012-07-28 13:30+0700\n"
+"PO-Revision-Date: 2013-06-03 15:21+0700\n"
"Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
"Language: vi\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=1;\n"
-"X-Generator: LocFactoryEditor 1.8\n"
-"X-Poedit-Language: Vietnamese\n"
-"X-Poedit-Country: VIET NAM\n"
+"X-Generator: Poedit 1.5.5\n"
"X-Poedit-SourceCharset: utf-8\n"
#: emultempl/armcoff.em:73
#, c-format
msgid " --support-old-code Support interworking with old code\n"
-msgstr " --support-old-code Hỗ trợ kết hợp với mã cũ\n"
+msgstr " --support-old-code Hỗ trợ kết hợp với mã cũ\n"
#: emultempl/armcoff.em:74
#, c-format
msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
-msgstr " --thumb-entry=<ký_hiệu> Äặt Ä‘iểm vào thành ký hiệu Thumb này\n"
+msgstr " --thumb-entry=<ký_hiệu> Äặt Ä‘iểm vào thành ký hiệu Thumb này\n"
#: emultempl/armcoff.em:122
#, c-format
@@ -39,7 +38,7 @@ msgstr "Gặp lỗi khi xử lý tập tin %s"
#: emultempl/armcoff.em:192 emultempl/pe.em:1812
msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
-msgstr "%P: cảnh báo: \"--thumb-entry %s\" Ä‘ang lấy quyá»n cao hÆ¡n \"-e %s\"\n"
+msgstr "%P: cảnh báo: “--thumb-entry %s†đang đè lên “-e %sâ€\n"
#: emultempl/armcoff.em:197 emultempl/pe.em:1817
msgid "%P: warning: cannot find thumb start symbol %s\n"
@@ -48,7 +47,7 @@ msgstr "%P: cảnh báo: không tìm thấy ký hiệu bắt đầu thumb %s\n"
#: emultempl/pe.em:419
#, c-format
msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
-msgstr " --base_file <tập_tin>\t\tTạo ra một tập tin cơ bản cho DLL có thể định vị lại\n"
+msgstr " --base_file <tập_tin> Tạo ra một tập tin cơ bản cho DLL có thể định vị lại\n"
#: emultempl/pe.em:420
#, c-format
@@ -58,67 +57,67 @@ msgstr " --dll Äặt cÆ¡ bản ảnh thành giá
#: emultempl/pe.em:421
#, c-format
msgid " --file-alignment <size> Set file alignment\n"
-msgstr " --file-alignment <kích_cỡ> Äặt cách chỉnh canh tập tin\n"
+msgstr " --file-alignment <kích_cỡ> Äặt cách chỉnh canh tập tin\n"
#: emultempl/pe.em:422
#, c-format
msgid " --heap <size> Set initial size of the heap\n"
-msgstr " --heap <kích_cỡ> Äặt kích cỡ đầu tiên của miá»n nhá»›\n"
+msgstr " --heap <kích_cỡ> Äặt kích cỡ đầu tiên của miá»n nhá»›\n"
#: emultempl/pe.em:423
#, c-format
msgid " --image-base <address> Set start address of the executable\n"
-msgstr " --image-base <địa_chỉ>\t\tÄặt địa chỉ đầu tiên của tập tin thá»±c thi\n"
+msgstr " --image-base <địa_chỉ> Äặt địa chỉ đầu tiên của tập tin thá»±c thi\n"
#: emultempl/pe.em:424
#, c-format
msgid " --major-image-version <number> Set version number of the executable\n"
-msgstr " --major-image-version <số>\t\tÄặt số thứ tá»± phiên bản của tập tin thá»±c thi\n"
+msgstr " --major-image-version <số> Äặt số thứ tá»± phiên bản của tập tin thá»±c thi\n"
#: emultempl/pe.em:425
#, c-format
msgid " --major-os-version <number> Set minimum required OS version\n"
-msgstr " --major-os-version <số>\t\tÄặt phiên bản HÄH tối thiểu cần thiết\n"
+msgstr " --major-os-version <số> Äặt phiên bản HÄH tối thiểu cần thiết\n"
#: emultempl/pe.em:426
#, c-format
msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n"
-msgstr " --major-subsystem-version <số>\tÄặt phiên bản hệ thống con HÄH\n"
+msgstr " --major-subsystem-version <số> Äặt phiên bản hệ thống con HÄH\n"
#: emultempl/pe.em:427
#, c-format
msgid " --minor-image-version <number> Set revision number of the executable\n"
-msgstr " --minor-image-version <số>\t\tÄặt số thứ tá»± bản sá»­a đổi của tập tin thá»±c thi\n"
+msgstr " --minor-image-version <số> Äặt số thứ tá»± bản sá»­a đổi của tập tin thá»±c thi\n"
#: emultempl/pe.em:428
#, c-format
msgid " --minor-os-version <number> Set minimum required OS revision\n"
-msgstr " --minor-os-version <số>\t\tÄặt bản sá»­a đổi HÄH tối thiểu cần thiết\n"
+msgstr " --minor-os-version <số> Äặt bản sá»­a đổi HÄH tối thiểu cần thiết\n"
#: emultempl/pe.em:429
#, c-format
msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
-msgstr " --minor-subsystem-version <số>\tÄặt bản sá»­a đổi hệ thống con HÄH\n"
+msgstr " --minor-subsystem-version <số> Äặt bản sá»­a đổi hệ thống con HÄH\n"
#: emultempl/pe.em:430
#, c-format
msgid " --section-alignment <size> Set section alignment\n"
-msgstr " --section-alignment <kích_cỡ> Äặt cách chỉnh canh phần\n"
+msgstr " --section-alignment <kích_cỡ> Äặt cách chỉnh canh phần\n"
#: emultempl/pe.em:431
#, c-format
msgid " --stack <size> Set size of the initial stack\n"
-msgstr " --stack <kích_cỡ> Äặt kích cỡ của đống đầu tiên\n"
+msgstr " --stack <kích_cỡ> Äặt kích cỡ của đống đầu tiên\n"
#: emultempl/pe.em:432
#, c-format
msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
-msgstr " --subsystem <tên>[:<phiên_bản>]\tÄặt hệ thống con HÄH [và phiên bản] cần thiết\n"
+msgstr " --subsystem <tên>[:<phiên_bản>] Äặt hệ thống con HÄH [và phiên bản] cần thiết\n"
#: emultempl/pe.em:433
#, c-format
msgid " --support-old-code Support interworking with old code\n"
-msgstr " --support-old-code \tHỗ trợ kết hợp với mã cũ\n"
+msgstr " --support-old-code Hỗ trợ kết hợp với mã cũ\n"
#: emultempl/pe.em:434
#, c-format
@@ -128,27 +127,27 @@ msgstr " --[no-]leading-underscore Äặt ký hiệu gạch dÆ°á»›i ch
#: emultempl/pe.em:435
#, c-format
msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
-msgstr " --thumb-entry=<ký_hiệu> Äặt Ä‘iểm vào thành ký hiệu Thumb này\n"
+msgstr " --thumb-entry=<ký_hiệu> Äặt Ä‘iểm vào thành ký hiệu Thumb này\n"
#: emultempl/pe.em:437
#, c-format
msgid " --add-stdcall-alias Export symbols with and without @nn\n"
-msgstr " --add-stdcall-alias Xuất ký hiệu có và không có \"@nn\"\n"
+msgstr " --add-stdcall-alias Xuất ký hiệu có và không có “@nnâ€\n"
#: emultempl/pe.em:438
#, c-format
msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
-msgstr " --disable-stdcall-fixup Äừng liên kết \"_sym\" đến \"_sym@nn\"\n"
+msgstr " --disable-stdcall-fixup Äừng liên kết “_sym†đến “_sym@nnâ€\n"
#: emultempl/pe.em:439
#, c-format
msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
-msgstr " --enable-stdcall-fixup Liên kết \"_sym\" đến \"_sym@nn\" mà không cảnh báo\n"
+msgstr " --enable-stdcall-fixup Liên kết “_sym†đến “_sym@nn†mà không cảnh báo\n"
#: emultempl/pe.em:440
#, c-format
msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
-msgstr " --exclude-symbols ký_hiệu1,ký_hiệu2,.. Loại trừ những ký hiệu này khá»i việc tá»± Ä‘á»™ng xuất\n"
+msgstr " --exclude-symbols kh,kh,.. Loại trừ những ký hiệu này khá»i việc tá»± Ä‘á»™ng xuất\n"
#: emultempl/pe.em:441
#, c-format
@@ -158,7 +157,7 @@ msgstr " --exclude-all-symbols Loại trừ tất cả những ký
#: emultempl/pe.em:442
#, c-format
msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n"
-msgstr " --exclude-libs thÆ°_viện1,thÆ°_viện2,... Loại trừ những thÆ° viện này khá»i việc tá»± Ä‘á»™ng xuất\n"
+msgstr " --exclude-libs thÆ°_viện1,thÆ°_viện2,... Loại trừ những thÆ° viện này khá»i việc tá»± Ä‘á»™ng xuất\n"
#: emultempl/pe.em:443
#, c-format
@@ -178,22 +177,22 @@ msgstr " tá»± Ä‘á»™ng xuất, để vào thÆ
#: emultempl/pe.em:446
#, c-format
msgid " --export-all-symbols Automatically export all globals to DLL\n"
-msgstr " --export-all-symbols Tá»± Ä‘á»™ng xuất má»i Ä‘iá»u toàn cục ra DLL\n"
+msgstr " --export-all-symbols Tá»± Ä‘á»™ng xuất má»i ký hiệu toàn cục ra DLL\n"
#: emultempl/pe.em:447
#, c-format
msgid " --kill-at Remove @nn from exported symbols\n"
-msgstr " --kill-at Gỡ bá» \"@nn\" khá»i những ký hiệu đã xuất\n"
+msgstr " --kill-at Gỡ bỠ“@nn†khá»i những ký hiệu đã xuất\n"
#: emultempl/pe.em:448
#, c-format
msgid " --out-implib <file> Generate import library\n"
-msgstr " --out-implib <tập_tin> Tạo ra thư viện nhập\n"
+msgstr " --out-implib <tập_tin> Tạo ra thư viện nhập\n"
#: emultempl/pe.em:449
#, c-format
msgid " --output-def <file> Generate a .DEF file for the built DLL\n"
-msgstr " --output-def <tập_tin>\tTạo ra một tập tin .DEF để xây dựng DLL\n"
+msgstr " --output-def <tập_tin> Tạo ra một tập tin .DEF để xây dựng DLL\n"
#: emultempl/pe.em:450
#, c-format
@@ -206,8 +205,8 @@ msgid ""
" --compat-implib Create backward compatible import libs;\n"
" create __imp_<SYMBOL> as well.\n"
msgstr ""
-" --compat-implib\t\tTạo các thư viện nhập tương thích ngược;\n"
-"\tcũng tạo \"__imp_<ký_hiệu>\"\n"
+" --compat-implib Tạo các thư viện nhập tương thích ngược;\n"
+"\tcÅ©ng tạo “__imp_<ký_hiệu>â€\n"
#: emultempl/pe.em:453
#, c-format
@@ -219,7 +218,7 @@ msgstr " --enable-auto-image-base Tá»± Ä‘á»™ng chá»n cÆ¡ bản ảnh
#: emultempl/pe.em:455
#, c-format
msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n"
-msgstr " --disable-auto-image-base Äừng tá»± Ä‘á»™ng chá»n cÆ¡ bản ảnh (mặc định)\n"
+msgstr " --disable-auto-image-base Äừng tá»± Ä‘á»™ng chá»n cÆ¡ bản ảnh (mặc định)\n"
#: emultempl/pe.em:456
#, c-format
@@ -228,8 +227,8 @@ msgid ""
" an importlib, use <string><basename>.dll\n"
" in preference to lib<basename>.dll \n"
msgstr ""
-" --dll-search-prefix=<chuỗi> Khi liên kết động đến DLL không có thư viên nhập,\n"
-"\tdùng \"<chuỗi><tên_cơ_bản>.dll\" thay cho \"lib<tên_cơ_bản>.dll\"\n"
+" --dll-search-prefix=<chuỗi> Khi liên kết động đến DLL không có thư viên nhập,\n"
+"\tdùng “<chuá»—i><tên_cÆ¡_bản>.dll†thay cho “lib<tên_cÆ¡_bản>.dllâ€\n"
#: emultempl/pe.em:459
#, c-format
@@ -237,13 +236,13 @@ msgid ""
" --enable-auto-import Do sophisticated linking of _sym to\n"
" __imp_sym for DATA references\n"
msgstr ""
-" --enable-auto-impor Thực hiện liên kết tinh tế của \"_sym\" đến\n"
+" --enable-auto-impor Thực hiện liên kết tinh tế của “_sym†đến\n"
" __imp_sym cho các tham chiếu DATA (dữ liệu)\n"
#: emultempl/pe.em:461
#, c-format
msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n"
-msgstr " --disable-auto-import Äừng tá»± Ä‘á»™ng nhập mục DATA từ DLL\n"
+msgstr " --disable-auto-import Äừng tá»± Ä‘á»™ng nhập mục DATA từ DLL\n"
#: emultempl/pe.em:462
#, c-format
@@ -252,7 +251,7 @@ msgid ""
" adding pseudo-relocations resolved at\n"
" runtime.\n"
msgstr ""
-" --enable-runtime-pseudo-reloc Chỉnh sửa sự hạn chế tự động nhập bằng cách thêm\n"
+" --enable-runtime-pseudo-reloc Chỉnh sửa sự hạn chế tự động nhập bằng cách thêm\n"
"\tsự định vị lại giả được quyết định vào lúc chạy.\n"
#: emultempl/pe.em:465
@@ -261,7 +260,7 @@ msgid ""
" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n"
" auto-imported DATA.\n"
msgstr ""
-" --disable-runtime-pseudo-reloc Äừng thêm sá»± định vị lại giả vào lúc chạy\n"
+" --disable-runtime-pseudo-reloc Äừng thêm sá»± định vị lại giả vào lúc chạy\n"
"\tđối với DATA được tự động nhập vào.\n"
#: emultempl/pe.em:467
@@ -270,15 +269,15 @@ msgid ""
" --enable-extra-pe-debug Enable verbose debug output when building\n"
" or linking to DLLs (esp. auto-import)\n"
msgstr ""
-" --enable-extra-pe-debug Bật kết xuất gỡ lỗi chi tiết khi xây dựng hay liên kết đến DLL\n"
-"\t(đặc biệt khi tự động nhập vào)\n"
+" --enable-extra-pe-debug Bật kết xuất gỡ lỗi chi tiết khi xây dựng hay liên kết đến DLL\n"
+" (đặc biệt khi tự động nhập vào)\n"
#: emultempl/pe.em:470
#, c-format
msgid ""
" --large-address-aware Executable supports virtual addresses\n"
" greater than 2 gigabytes\n"
-msgstr " --large-address-aware Tập tin thực thi cũng hỗ trợ địa chỉ ảo lớn hơn 2 GB.\n"
+msgstr " --large-address-aware Tập tin thực thi cũng hỗ trợ địa chỉ ảo lớn hơn 2 GB.\n"
#: emultempl/pe.em:472
#, c-format
@@ -330,21 +329,21 @@ msgstr " --no-seh\t\tẢnh không dùng SEH. Không thể gá»i trình quản l
#: emultempl/pe.em:483
#, c-format
msgid " --no-bind\t\t\t Do not bind this image\n"
-msgstr " --no-bind\t\tÄừng tổ hợp ảnh này\n"
+msgstr " --no-bind\t\t Äừng tổ hợp ảnh này\n"
#: emultempl/pe.em:484
#, c-format
msgid " --wdmdriver\t\t Driver uses the WDM model\n"
-msgstr " --wdmdriver\tTrình Ä‘iá»u khiển dùng mẫu WDM\n"
+msgstr " --wdmdriver\t Trình Ä‘iá»u khiển dùng mẫu WDM\n"
#: emultempl/pe.em:485
#, c-format
msgid " --tsaware Image is Terminal Server aware\n"
-msgstr " --tsaware Ảnh nhận thấy Trình phục vụ Thiết bị cuối\n"
+msgstr " --tsaware Ảnh nhận thấy Trình phục vụ Thiết bị cuối\n"
#: emultempl/pe.em:614
msgid "%P: warning: bad version number in -subsystem option\n"
-msgstr "%P: cảnh báo: gặp số thứ tá»± phiên bản sai trong tùy chá»n \"-subsystem\" (hệ thống con)\n"
+msgstr "%P: cảnh báo: gặp số thứ tá»± phiên bản sai trong tùy chá»n “-subsystem†(hệ thống con)\n"
#: emultempl/pe.em:639
msgid "%P%F: invalid subsystem type %s\n"
@@ -352,11 +351,11 @@ msgstr "%P%F: kiểu hệ thống con không hợp lệ %s\n"
#: emultempl/pe.em:660
msgid "%P%F: invalid hex number for PE parameter '%s'\n"
-msgstr "%P%F: số thập lục không hợp lệ cho tham số PE \"%s\"\n"
+msgstr "%P%F: số thập lục không hợp lệ cho tham số PE “%sâ€\n"
#: emultempl/pe.em:677
msgid "%P%F: strange hex info for PE parameter '%s'\n"
-msgstr "%P%F: thông tin thập lục lạ cho tham số PE \"%s\"\n"
+msgstr "%P%F: thông tin thập lục lạ cho tham số PE “%sâ€\n"
#: emultempl/pe.em:692
msgid "%F%P: cannot open base file %s\n"
@@ -368,7 +367,7 @@ msgstr "%P: cảnh báo, sự chỉnh canh tập tin > sự chỉnh canh phần.
#: emultempl/pe.em:978
msgid "%P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?\n"
-msgstr "%P: cảnh báo: \"--export-dynamic\" không được há»— trợ cho đích PE, bạn định chá»n \"--export-all-symbols\" ?\n"
+msgstr "%P: cảnh báo: “--export-dynamic†không được há»— trợ cho đích PE, bạn định chá»n “--export-all-symbols†?\n"
#: emultempl/pe.em:1054 emultempl/pe.em:1081
#, c-format
@@ -377,11 +376,11 @@ msgstr "Cảnh báo: đang tháo gỡ %s bằng cách liên kết đến %s\n"
#: emultempl/pe.em:1059 emultempl/pe.em:1086
msgid "Use --enable-stdcall-fixup to disable these warnings\n"
-msgstr "Dùng \"--enable-stdcall-fixup\" để tắt các cảnh báo này\n"
+msgstr "Dùng “--enable-stdcall-fixup†để tắt các cảnh báo này\n"
#: emultempl/pe.em:1060 emultempl/pe.em:1087
msgid "Use --disable-stdcall-fixup to disable these fixups\n"
-msgstr "Dùng \"--disable-stdcall-fixup\" để tắt các sự sửa chữa này\n"
+msgstr "Dùng “--disable-stdcall-fixup†để tắt các sự sửa chữa này\n"
#: emultempl/pe.em:1106
#, c-format
@@ -398,7 +397,7 @@ msgid ""
"%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line.\n"
"This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.\n"
msgstr ""
-"%P: cảnh báo: chức năng tá»± Ä‘á»™ng nhập vào đã được kích hoạt mà không Ä‘Æ°a ra tùy chá»n \"--enable-auto-import\" trên dòng lệnh.\n"
+"%P: cảnh báo: chức năng tá»± Ä‘á»™ng nhập vào đã được kích hoạt mà không Ä‘Æ°a ra tùy chá»n “--enable-auto-import†trên dòng lệnh.\n"
"TrÆ°á»ng hợp này vẫn còn nên chạy được nếu không có cấu trúc dữ liệu không đổi mà tham chiếu đến ký hiệu từ DLL được tá»± Ä‘á»™ng nhập vào.\n"
#: emultempl/pe.em:1160 emultempl/pe.em:1366 emultempl/pe.em:1573 ldcref.c:490
@@ -409,7 +408,7 @@ msgstr "%B%F: không thể Ä‘á»c các ký hiệu: %E\n"
#: emultempl/pe.em:1242
msgid "%F%P: cannot perform PE operations on non PE output file '%B'.\n"
-msgstr "%F%P: không thể thực hiện thao tác PE với tập tin xuất khác PE \"%B\".\n"
+msgstr "%F%P: không thể thá»±c hiện thao tác PE vá»›i tập tin xuất khác PE “%Bâ€.\n"
#: emultempl/pe.em:1616
#, c-format
@@ -424,15 +423,15 @@ msgstr "Gặp lỗi trong khi xử lý tập tin %s để thao tác với nhau\n
#: emultempl/pe.em:1701 ldexp.c:581 ldlang.c:3458 ldlang.c:6992 ldlang.c:7023
#: ldmain.c:1103
msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
-msgstr "%P%F: \"bfd_link_hash_lookup\" bị lỗi: %E\n"
+msgstr "%P%F: “bfd_link_hash_lookup†bị lỗi: %E\n"
#: ldcref.c:168
msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
-msgstr "%X%P: \"bfd_hash_table_init\" với bảng cref bị lỗi: %E\n"
+msgstr "%X%P: “bfd_hash_table_init†với bảng cref bị lỗi: %E\n"
#: ldcref.c:174
msgid "%X%P: cref_hash_lookup failed: %E\n"
-msgstr "%X%P: \"cref_hash_lookup\" bị lỗi: %E\n"
+msgstr "%X%P: “cref_hash_lookup†bị lỗi: %E\n"
#: ldcref.c:184
msgid "%X%P: cref alloc failed: %E\n"
@@ -465,7 +464,7 @@ msgstr "Không có ký hiệu\n"
#: ldcref.c:532
msgid "%P: symbol `%T' missing from main hash table\n"
-msgstr "%P: ký hiệu \"%T\" còn thiếu trong bảng băm chính\n"
+msgstr "%P: ký hiệu “%T†còn thiếu trong bảng băm chính\n"
#: ldcref.c:650 ldcref.c:657 ldmain.c:1192 ldmain.c:1199
msgid "%B%F: could not read relocs: %E\n"
@@ -477,7 +476,7 @@ msgstr "%B%F: không thể Ä‘á»c các sá»± định vị lại: %E\n"
#. are prohibited. We must report an error.
#: ldcref.c:684
msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
-msgstr "%X%C: không cho phép tham chiếu chéo từ %s đến \"%T\" trong %s\n"
+msgstr "%X%C: không cho phép tham chiếu chéo từ %s đến “%T†trong %s\n"
#: ldctor.c:85
msgid "%P%X: Different relocs used in set %s\n"
@@ -502,7 +501,7 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Tập hợp Ký hiệu\n"
+"Tập hợp Ký hiệu\n"
"\n"
#: ldemul.c:265
@@ -530,7 +529,7 @@ msgstr " không có tùy chá»n đặc trÆ°ng cho mô phá»ng.\n"
#: ldexp.c:314
msgid "%P: warning: address of `%s' isn't multiple of maximum page size\n"
-msgstr "%P: cảnh bảo: địa chỉ của `%s' không là bội số của kích thước tối đa của trang\n"
+msgstr "%P: cảnh bảo: địa chỉ của “%s†không là bội số của kích thước tối đa của trang\n"
#: ldexp.c:407
#, c-format
@@ -545,27 +544,27 @@ msgstr "%F%S / cho số không\n"
#: ldexp.c:591
#, c-format
msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
-msgstr "%X%S: ký hiệu không tháo gỡ được \"%s\" được tham chiếu trong biểu thức\n"
+msgstr "%X%S: ký hiệu không tháo gỡ được “%s†được tham chiếu trong biểu thức\n"
#: ldexp.c:605
#, c-format
msgid "%F%S: undefined symbol `%s' referenced in expression\n"
-msgstr "%F%S: ký hiệu chưa xác định \"%s\" được tham chiếu trong biểu thức\n"
+msgstr "%F%S: ký hiệu chưa xác định “%s†được tham chiếu trong biểu thức\n"
#: ldexp.c:626 ldexp.c:643 ldexp.c:670
#, c-format
msgid "%F%S: undefined section `%s' referenced in expression\n"
-msgstr "%F%S: phần chưa xác định \"%s\" được tham chiếu trong biểu thức\n"
+msgstr "%F%S: phần chưa xác định “%s†được tham chiếu trong biểu thức\n"
#: ldexp.c:697 ldexp.c:711
#, c-format
msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
-msgstr "%F%S: miá»n MEMORY (bá»™ nhá»›) chÆ°a xác định \"%s\" được tham chiếu trong biểu thức\n"
+msgstr "%F%S: miá»n MEMORY (bá»™ nhá»›) chÆ°a xác định “%s†được tham chiếu trong biểu thức\n"
#: ldexp.c:722
#, c-format
msgid "%F%S: unknown constant `%s' referenced in expression\n"
-msgstr "%F%S: hằng không rõ \"%s\" được tham chiếu trong biểu thức\n"
+msgstr "%F%S: hằng không rõ “%s†được tham chiếu trong biểu thức\n"
#: ldexp.c:787
#, c-format
@@ -584,7 +583,7 @@ msgstr "%F%S sự gán cho bộ đếm địa điểm không phải hợp lệ b
#: ldexp.c:821
msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
-msgstr "%F%S không thể chạy ngược bộ đếm địa điểm (từ %V vỠ%V)\n"
+msgstr "%F%S không thể chạy ngược bộ đếm địa điểm (từ %V đến %V)\n"
#: ldexp.c:882
msgid "%P%F:%s: hash creation failed\n"
@@ -598,7 +597,7 @@ msgstr "%F%S biểu thức khác hằng cho %s\n"
#: ldfile.c:142
#, c-format
msgid "attempt to open %s failed\n"
-msgstr "lỗi thử mở %s\n"
+msgstr "cố mở %s gặp lỗi\n"
#: ldfile.c:144
#, c-format
@@ -607,7 +606,7 @@ msgstr "mở thành công %s\n"
#: ldfile.c:150
msgid "%F%P: invalid BFD target `%s'\n"
-msgstr "%F%P: đích BFD không hợp lệ \"%s\"\n"
+msgstr "%F%P: đích BFD không hợp lệ “%sâ€\n"
#: ldfile.c:267 ldfile.c:296
msgid "%P: skipping incompatible %s when searching for %s\n"
@@ -615,7 +614,7 @@ msgstr "%P: đang bỠqua %s không tương thích khi tìm kiếm %s\n"
#: ldfile.c:280
msgid "%F%P: attempted static link of dynamic object `%s'\n"
-msgstr "%F%P: đã thử liên kết tĩnh đối tượng động \"%s\"\n"
+msgstr "%F%P: đã thá»­ liên kết tÄ©nh đối tượng Ä‘á»™ng “%sâ€\n"
#: ldfile.c:426
msgid "%P: cannot find %s (%s): %E\n"
@@ -649,7 +648,7 @@ msgstr "%P%F: không thể mở tập tin văn lệnh liên kết %s: %E\n"
#: ldfile.c:701
msgid "%P%F: cannot represent machine `%s'\n"
-msgstr "%P%F: không thể đại diện máy \"%s\"\n"
+msgstr "%P%F: không thể đại diện máy “%sâ€\n"
#: ldlang.c:1221 ldlang.c:1263 ldlang.c:3143
msgid "%P%F: can not create hash table: %E\n"
@@ -657,11 +656,11 @@ msgstr "%P%F: không thể tạo bảng băm: %E\n"
#: ldlang.c:1314
msgid "%P:%S: warning: redeclaration of memory region `%s'\n"
-msgstr "%P:%S: cảnh báo: khai báo lại vùng nhớ \"%s\"\n"
+msgstr "%P:%S: cảnh báo: khai báo lại vùng nhá»› “%sâ€\n"
#: ldlang.c:1320
msgid "%P:%S: warning: memory region `%s' not declared\n"
-msgstr "%P:%S: cảnh báo: chưa khai báo vùng nhớ \"%s\"\n"
+msgstr "%P:%S: cảnh báo: chÆ°a khai báo vùng nhá»› “%sâ€\n"
#: ldlang.c:1354
msgid "%F%P:%S: error: alias for default memory region\n"
@@ -669,15 +668,15 @@ msgstr "%F%P:%S: lỗi: bí danh cho vùng nhớ mặc định\n"
#: ldlang.c:1365
msgid "%F%P:%S: error: redefinition of memory region alias `%s'\n"
-msgstr "%F%P:%S: lỗi: xác định lại bí danh vùng nhớ \"%s\"\n"
+msgstr "%F%P:%S: lá»—i: xác định lại bí danh vùng nhá»› “%sâ€\n"
#: ldlang.c:1372
msgid "%F%P:%S: error: memory region `%s' for alias `%s' does not exist\n"
-msgstr "%F%P:%S: lỗi: vùng nhớ \"%s\" cho bí danh \"%s\" vẫn không tồn tại\n"
+msgstr "%F%P:%S: lỗi: vùng nhớ “%s†cho bí danh “%s†vẫn không tồn tại\n"
#: ldlang.c:1424 ldlang.c:1463
msgid "%P%F: failed creating section `%s': %E\n"
-msgstr "%P%F: lỗi tạo phần \"%s\": %E\n"
+msgstr "%P%F: lá»—i tạo phần “%sâ€: %E\n"
#: ldlang.c:2025
#, c-format
@@ -724,12 +723,12 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Văn lệnh liên kết và sơ đồ bộ nhớ\n"
+"Văn lệnh liên kết và ánh xạ bộ nhớ\n"
"\n"
#: ldlang.c:2141
msgid "%P%F: Illegal use of `%s' section\n"
-msgstr "%P%F: không cho phép cách sử dụng phần \"%s\"\n"
+msgstr "%P%F: không cho phép cách sá»­ dụng phần “%sâ€\n"
#: ldlang.c:2150
msgid "%P%F: output format %s cannot represent section called %s\n"
@@ -777,15 +776,15 @@ msgstr "%P%F:%s: không thể đặt kiến trúc: %E\n"
#: ldlang.c:3309
msgid "%P: warning: %s contains output sections; did you forget -T?\n"
-msgstr "%P: cảnh báo: %s chứa phần xuất; bạn đã quên \"-T\" ?\n"
+msgstr "%P: cảnh báo: %s chứa phần xuất; bạn đã quên “-T†?\n"
#: ldlang.c:3350
msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
-msgstr "%P%F: lỗi \"bfd_hash_lookup\" khi tạo ký hiệu %s\n"
+msgstr "%P%F: lỗi “bfd_hash_lookup†khi tạo ký hiệu %s\n"
#: ldlang.c:3368
msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
-msgstr "%P%F: lỗi \"bfd_hash_allocate\" khi tạo ký hiệu %s\n"
+msgstr "%P%F: lỗi “bfd_hash_allocate†khi tạo ký hiệu %s\n"
#: ldlang.c:3764
msgid "%F%P: %s not found for insert\n"
@@ -797,7 +796,7 @@ msgstr " nạp địa chỉ 0x%V"
#: ldlang.c:4254
msgid "%W (size before relaxing)\n"
-msgstr "%W (kích cỡ trước khi lơi ra)\n"
+msgstr "%W (kích cỡ trước khi nghỉ)\n"
#: ldlang.c:4345
#, c-format
@@ -815,15 +814,15 @@ msgstr "%X%P: phần %s được nạp ở [%V, %V] chồng chéo lên phần %s
#: ldlang.c:4801
msgid "%X%P: region `%s' overflowed by %ld bytes\n"
-msgstr "%X%P: vùng \"%s\" bị %ld byte tràn\n"
+msgstr "%X%P: vùng “%s†bị %ld byte tràn\n"
#: ldlang.c:4824
msgid "%X%P: address 0x%v of %B section `%s' is not within region `%s'\n"
-msgstr "%X%P: địa chỉ 0x%v cửa %B phần \"%s\" không nằm trong vùng \"%s\"\n"
+msgstr "%X%P: địa chỉ 0x%v cá»­a %B phần “%s†không nằm trong vùng “%sâ€\n"
#: ldlang.c:4835
msgid "%X%P: %B section `%s' will not fit in region `%s'\n"
-msgstr "%X%P: %B phần \"%s\" quá lớn so với vùng \"%s\"\n"
+msgstr "%X%P: %B phần “%s†quá lá»›n so vá»›i vùng “%sâ€\n"
#: ldlang.c:4892
#, c-format
@@ -836,11 +835,11 @@ msgstr "%P%X: lỗi nội bộ với phần thư viện dùng chung COFF %s\n"
#: ldlang.c:4974
msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
-msgstr "%P%F: lỗi: chưa ghi rõ vùng bộ nhớ cho phần có khả năng nạp \"%s\"\n"
+msgstr "%P%F: lá»—i: chÆ°a ghi rõ vùng bá»™ nhá»› cho phần có khả năng nạp “%sâ€\n"
#: ldlang.c:4979
msgid "%P: warning: no memory region specified for loadable section `%s'\n"
-msgstr "%P: lỗi: chưa ghi rõ vùng bộ nhớ cho phần có khả năng nạp \"%s\"\n"
+msgstr "%P: lá»—i: chÆ°a ghi rõ vùng bá»™ nhá»› cho phần có khả năng nạp “%sâ€\n"
#: ldlang.c:5001
msgid "%P: warning: changing start of section %s by %lu bytes\n"
@@ -848,7 +847,7 @@ msgstr "%P: cảnh báo: đang thay đổi đầu của phần %s theo %lu byte\
#: ldlang.c:5078
msgid "%P: warning: dot moved backwards before `%s'\n"
-msgstr "%P: cảnh báo: dấu chấm được di chuyển vỠngược trước \"%s\"\n"
+msgstr "%P: cảnh báo: dấu chấm được di chuyển vá» ngược trÆ°á»›c “%sâ€\n"
#: ldlang.c:5244
msgid "%P%F: can't relax section: %E\n"
@@ -888,7 +887,7 @@ msgstr "%P%F: không hỗ trợ khả năng liên kết có khả năng định
#: ldlang.c:5852
msgid "%P%X: %s architecture of input file `%B' is incompatible with %s output\n"
-msgstr "%P%X: kiến trúc %s của tập tin nhập \"%B\" không tương thích với kết xuất %s\n"
+msgstr "%P%X: kiến trúc %s của tập tin nhập “%B†không tương thích với kết xuất %s\n"
#: ldlang.c:5874
msgid "%P%X: failed to merge target specific data of file %B\n"
@@ -896,7 +895,7 @@ msgstr "%P%X: lỗi hợp nhất dữ liệu đặc trưng cho đích của tậ
#: ldlang.c:5945
msgid "%P%F: Could not define common symbol `%T': %E\n"
-msgstr "%P%F: không thể xác định ký hiệu dùng chung \"%T\": %E\n"
+msgstr "%P%F: không thể xác định ký hiệu dùng chung “%Tâ€: %E\n"
#: ldlang.c:5957
msgid ""
@@ -911,7 +910,7 @@ msgid ""
"Common symbol size file\n"
"\n"
msgstr ""
-"Ký hiệu chung kích cỡ tập tin\n"
+"Ký hiệu chung kích cỡ tập tin\n"
"\n"
#: ldlang.c:6104
@@ -944,15 +943,15 @@ msgstr "%F%P: chưa gán phần cho phdirs\n"
#: ldlang.c:7248
msgid "%F%P: bfd_record_phdr failed: %E\n"
-msgstr "%F%P: \"bfd_record_phdr\" bị lỗi: %E\n"
+msgstr "%F%P: “bfd_record_phdr†bị lỗi: %E\n"
#: ldlang.c:7268
msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
-msgstr "%X%P: phần \"%s\" được gán cho phdr không tồn tại \"%s\"\n"
+msgstr "%X%P: phần “%s†được gán cho phdr không tồn tại “%sâ€\n"
#: ldlang.c:7677
msgid "%X%P: unknown language `%s' in version information\n"
-msgstr "%X%P: gặp ngôn ngữ lạ \"%s\" trong thông tin phiên bản\n"
+msgstr "%X%P: gặp ngôn ngữ lạ “%s†trong thông tin phiên bản\n"
#: ldlang.c:7822
msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
@@ -960,27 +959,27 @@ msgstr "%X%P: thẻ phiên bản vô danh không kết hợp được vá»›i tháº
#: ldlang.c:7831
msgid "%X%P: duplicate version tag `%s'\n"
-msgstr "%X%P: thẻ phiên bản trùng \"%s\"\n"
+msgstr "%X%P: thẻ phiên bản trùng “%sâ€\n"
#: ldlang.c:7852 ldlang.c:7861 ldlang.c:7879 ldlang.c:7889
msgid "%X%P: duplicate expression `%s' in version information\n"
-msgstr "%X%P: biểu thức trùng \"%s\" trong thông tin phiên bản\n"
+msgstr "%X%P: biểu thức trùng “%s†trong thông tin phiên bản\n"
#: ldlang.c:7929
msgid "%X%P: unable to find version dependency `%s'\n"
-msgstr "%X%P: không tìm thấy quan hệ phụ thuộc của phiên bản \"%s\"\n"
+msgstr "%X%P: không tìm thấy quan hệ phụ thuá»™c của phiên bản “%sâ€\n"
#: ldlang.c:7952
msgid "%X%P: unable to read .exports section contents\n"
-msgstr "%X%P: không thể Ä‘á»c ná»™i dung của phần \".exports\" (xuất khẩu)\n"
+msgstr "%X%P: không thể Ä‘á»c ná»™i dung của phần “.exports†(xuất khẩu)\n"
#: ldlang.c:8076
msgid "%X%P: unknown feature `%s'\n"
-msgstr "%X%P: không hiểu đặc tính `%s'\n"
+msgstr "%X%P: không hiểu đặc tính “%sâ€\n"
#: ldmain.c:239
msgid "%X%P: can't set BFD default target to `%s': %E\n"
-msgstr "%X%P: không thể đặt đích mặc định BFD thành \"%s\": %E\n"
+msgstr "%X%P: không thể đặt đích mặc định BFD thành “%sâ€: %E\n"
#: ldmain.c:303 lexsup.c:1071
msgid "%P%F: %s: error loading plugin\n"
@@ -1004,11 +1003,11 @@ msgstr "%P: chế độ %s\n"
#: ldmain.c:399
msgid "%P%F: cannot open map file %s: %E\n"
-msgstr "%P%F: không thể mở tập tin sơ đồ %s: %E\n"
+msgstr "%P%F: không thể mở tập tin ánh xạ %s: %E\n"
#: ldmain.c:431
msgid "%P: link errors found, deleting executable `%s'\n"
-msgstr "%P: gặp lỗi liên kết nên xoá tập tin có khả năng thực hiện \"%s\"\n"
+msgstr "%P: gặp lá»—i liên kết nên xoá tập tin có khả năng thá»±c hiện “%sâ€\n"
#: ldmain.c:440
msgid "%F%B: final close failed: %E\n"
@@ -1016,20 +1015,20 @@ msgstr "%F%B: lỗi đóng cuối cùng: %E\n"
#: ldmain.c:466
msgid "%X%P: unable to open for source of copy `%s'\n"
-msgstr "%X%P: không thể mở cho nguồn của bản sao \"%s\"\n"
+msgstr "%X%P: không thể mở cho nguồn của bản sao “%sâ€\n"
#: ldmain.c:469
msgid "%X%P: unable to open for destination of copy `%s'\n"
-msgstr "%X%P: không thể mở cho đích của bản sao \"%s\"\n"
+msgstr "%X%P: không thể mở cho đích của bản sao “%sâ€\n"
#: ldmain.c:476
msgid "%P: Error writing file `%s'\n"
-msgstr "%P: gặp lỗi khi ghi tập tin \"%s\"\n"
+msgstr "%P: gặp lá»—i khi ghi tập tin “%sâ€\n"
#: ldmain.c:481 pe-dll.c:1739
#, c-format
msgid "%P: Error closing file `%s'\n"
-msgstr "%P: gặp lỗi khi đóng tập tin \"%s\"\n"
+msgstr "%P: gặp lá»—i khi đóng tập tin “%sâ€\n"
#: ldmain.c:498
#, c-format
@@ -1043,27 +1042,27 @@ msgstr "%s: kích cỡ dữ liệu %ld\n"
#: ldmain.c:585
msgid "%P%F: missing argument to -m\n"
-msgstr "%P%F: thiếu đối số tới \"-m\"\n"
+msgstr "%P%F: thiếu đối số tá»›i “-mâ€\n"
#: ldmain.c:633 ldmain.c:653 ldmain.c:685
msgid "%P%F: bfd_hash_table_init failed: %E\n"
-msgstr "%P%F: \"bfd_hash_table_init\" bị lỗi: %E\n"
+msgstr "%P%F: “bfd_hash_table_init†bị lỗi: %E\n"
#: ldmain.c:637 ldmain.c:657
msgid "%P%F: bfd_hash_lookup failed: %E\n"
-msgstr "%P%F: \"bfd_hash_lookup\" bị lỗi: %E\n"
+msgstr "%P%F: “bfd_hash_lookup†bị lỗi: %E\n"
#: ldmain.c:671
msgid "%X%P: error: duplicate retain-symbols-file\n"
-msgstr "%X%P: lỗi: \"retain-symbols-file\" (giữ lại tập tin ký hiệu) trùng\n"
+msgstr "%X%P: lỗi: “retain-symbols-file†(giữ lại tập tin ký hiệu) trùng\n"
#: ldmain.c:715
msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
-msgstr "%P%F: lỗi \"bfd_hash_lookup\" để chèn: %E\n"
+msgstr "%P%F: lỗi “bfd_hash_lookup†để chèn: %E\n"
#: ldmain.c:720
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
-msgstr "%P: tùy chá»n \"-retain-symbols-file\" (giữ lại tập tin ký hiệu) có quyá»n cao hÆ¡n \"-s\" và \"-S\"\n"
+msgstr "%P: tùy chá»n “-retain-symbols-file†(giữ lại tập tin ký hiệu) có quyá»n cao hÆ¡n “-s†và “-Sâ€\n"
#: ldmain.c:820
#, c-format
@@ -1076,7 +1075,7 @@ msgstr ""
#: ldmain.c:926
msgid "%X%C: multiple definition of `%T'\n"
-msgstr "%X%C: xác định nhiá»u lần \"%T\"\n"
+msgstr "%X%C: xác định nhiá»u lần “%Tâ€\n"
#: ldmain.c:929
msgid "%D: first defined here\n"
@@ -1088,7 +1087,7 @@ msgstr "%P: đang tắt khả năng lơi ra: nó sẽ không hoạt động vớ
#: ldmain.c:987
msgid "%B: warning: definition of `%T' overriding common\n"
-msgstr "%B: cảnh báo: lá»i xác định \"%T\" đè lên sá»± dùng chung\n"
+msgstr "%B: cảnh báo: lá»i xác định “%T†đè lên sá»± dùng chung\n"
#: ldmain.c:990
msgid "%B: warning: common is here\n"
@@ -1096,7 +1095,7 @@ msgstr "%B: cảnh báo: sự dùng chung ở đây\n"
#: ldmain.c:997
msgid "%B: warning: common of `%T' overridden by definition\n"
-msgstr "%B: cảnh báo: sự dùng chung của \"%T\" bị đè bởi lởi xác định\n"
+msgstr "%B: cảnh báo: sự dùng chung của “%T†bị đè bởi lởi xác định\n"
#: ldmain.c:1000
msgid "%B: warning: defined here\n"
@@ -1104,7 +1103,7 @@ msgstr "%B: cảnh báo: đã xác định ở đây\n"
#: ldmain.c:1007
msgid "%B: warning: common of `%T' overridden by larger common\n"
-msgstr "%B: cảnh báo: sự dùng chung của \"%T\" bị đè bởi sự dùng chung lớn hơn\n"
+msgstr "%B: cảnh báo: sự dùng chung của “%T†bị đè bởi sự dùng chung lớn hơn\n"
#: ldmain.c:1010
msgid "%B: warning: larger common is here\n"
@@ -1112,7 +1111,7 @@ msgstr "%B: cảnh báo: sự dùng chung lớn hơn ở đây\n"
#: ldmain.c:1014
msgid "%B: warning: common of `%T' overriding smaller common\n"
-msgstr "%B: cảnh báo: sự dùng chung của \"%T\" đè sự dùng chung nhỠhơn\n"
+msgstr "%B: cảnh báo: sự dùng chung của “%T†đè sự dùng chung nhỠhơn\n"
#: ldmain.c:1017
msgid "%B: warning: smaller common is here\n"
@@ -1120,7 +1119,7 @@ msgstr "%B: cảnh báo: sự dùng chung nhỠhơn ở đây\n"
#: ldmain.c:1021
msgid "%B: warning: multiple common of `%T'\n"
-msgstr "%B: cảnh báo: có nhiá»u sá»± dùng chung của \"%T\"\n"
+msgstr "%B: cảnh báo: có nhiá»u sá»± dùng chung của “%Tâ€\n"
#: ldmain.c:1023
msgid "%B: warning: previous common is here\n"
@@ -1132,7 +1131,7 @@ msgstr "%P: cảnh báo: dùng bộ cấu trúc toàn cục %s\n"
#: ldmain.c:1091
msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
-msgstr "%P%F: lỗi hậu phương BFD: \"BFD_RELOC_CTOR\" không được hỗ trợ\n"
+msgstr "%P%F: lỗi hậu phương BFD: “BFD_RELOC_CTOR†không được hỗ trợ\n"
#. We found a reloc for the symbol we are looking for.
#: ldmain.c:1145 ldmain.c:1147 ldmain.c:1149 ldmain.c:1167 ldmain.c:1212
@@ -1141,43 +1140,43 @@ msgstr "cảnh báo: "
#: ldmain.c:1248
msgid "%F%P: bfd_hash_table_init failed: %E\n"
-msgstr "%F%P: \"bfd_hash_table_init\" bị lỗi: %E\n"
+msgstr "%F%P: “bfd_hash_table_init†bị lỗi: %E\n"
#: ldmain.c:1255
msgid "%F%P: bfd_hash_lookup failed: %E\n"
-msgstr "%F%P: \"bfd_hash_lookup\" bị lỗi: %E\n"
+msgstr "%F%P: “bfd_hash_lookup†bị lỗi: %E\n"
#: ldmain.c:1276
msgid "%X%C: undefined reference to `%T'\n"
-msgstr "%X%C: tham chiếu đến \"%T\" chưa xác định\n"
+msgstr "%X%C: tham chiếu đến “%T†chưa xác định\n"
#: ldmain.c:1279
msgid "%C: warning: undefined reference to `%T'\n"
-msgstr "%C: cảnh báo: tham chiếu đến \"%T\" chưa xác định\n"
+msgstr "%C: cảnh báo: tham chiếu đến “%T†chưa xác định\n"
#: ldmain.c:1285
msgid "%X%D: more undefined references to `%T' follow\n"
-msgstr "%X%D: theo đây có các tham chiếu đến \"%T\" chưa xác định thêm nữa\n"
+msgstr "%X%D: theo đây có các tham chiếu đến “%T†chưa xác định thêm nữa\n"
#: ldmain.c:1288
msgid "%D: warning: more undefined references to `%T' follow\n"
-msgstr "%D: cảnh báo: theo đây có các tham chiếu đến \"%T\" chưa xác định thêm nữa\n"
+msgstr "%D: cảnh báo: theo đây có các tham chiếu đến “%T†chưa xác định thêm nữa\n"
#: ldmain.c:1299
msgid "%X%B: undefined reference to `%T'\n"
-msgstr "%X%B: tham chiếu đến \"%T\" chưa xác định\n"
+msgstr "%X%B: tham chiếu đến “%T†chưa xác định\n"
#: ldmain.c:1302
msgid "%B: warning: undefined reference to `%T'\n"
-msgstr "%B: cảnh báo: tham chiếu đến \"%T\" chưa xác định\n"
+msgstr "%B: cảnh báo: tham chiếu đến “%T†chưa xác định\n"
#: ldmain.c:1308
msgid "%X%B: more undefined references to `%T' follow\n"
-msgstr "%X%B: theo đây có các tham chiếu đến \"%T\" chưa xác định thêm nữa\n"
+msgstr "%X%B: theo đây có các tham chiếu đến “%T†chưa xác định thêm nữa\n"
#: ldmain.c:1311
msgid "%B: warning: more undefined references to `%T' follow\n"
-msgstr "%B: cảnh báo: theo đây có các tham chiếu đến \"%T\" chưa xác định thêm nữa\n"
+msgstr "%B: cảnh báo: theo đây có các tham chiếu đến “%T†chưa xác định thêm nữa\n"
#: ldmain.c:1350
msgid " additional relocation overflows omitted from the output\n"
@@ -1185,15 +1184,15 @@ msgstr "các sá»± tràn định vị lại thêm nữa bị bá» Ä‘i khá»i kế
#: ldmain.c:1363
msgid " relocation truncated to fit: %s against undefined symbol `%T'"
-msgstr " sự định vị lại bị cắt ngắn để vừa: %s so với ký hiệu chưa xác định \"%T\""
+msgstr " sá»± định vị lại bị cắt ngắn để vừa: %s so vá»›i ký hiệu chÆ°a xác định “%Tâ€"
#: ldmain.c:1368
msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"
-msgstr " sự định vị lại bị cắt ngắn để vừa: %s so với ký hiệu \"%T\" đã xác định trong phần %A trong %B"
+msgstr " sự định vị lại bị cắt ngắn để vừa: %s so với ký hiệu “%T†đã xác định trong phần %A trong %B"
#: ldmain.c:1380
msgid " relocation truncated to fit: %s against `%T'"
-msgstr " sự định vị lại bị cắt ngắn để vừa: %s so với \"%T\""
+msgstr " sá»± định vị lại bị cắt ngắn để vừa: %s so vá»›i “%Tâ€"
#: ldmain.c:1397
msgid "%X%H: dangerous relocation: %s\n"
@@ -1201,7 +1200,7 @@ msgstr "%X%H: sự định vị lại nguy hiểm: %s\n"
#: ldmain.c:1412
msgid "%X%H: reloc refers to symbol `%T' which is not being output\n"
-msgstr "%X%H: sự định vị lại tham chiếu đến ký hiệu `%T' mà không đang được xuất ra\n"
+msgstr "%X%H: sự định vị lại tham chiếu đến ký hiệu “%T†mà không đang được xuất ra\n"
#: ldmisc.c:151
#, c-format
@@ -1211,11 +1210,11 @@ msgstr "không có ký hiệu"
#: ldmisc.c:248
#, c-format
msgid "built in linker script:%u"
-msgstr "văn lệnh liên kết có sẵn: %u"
+msgstr "văn lệnh liên kết dựng sẵn: %u"
#: ldmisc.c:329
msgid "%B: In function `%T':\n"
-msgstr "%B: trong hàm \"%T\":\n"
+msgstr "%B: trong hàm “%Tâ€:\n"
#: ldmisc.c:464
msgid "%F%P: internal error %s %d\n"
@@ -1254,7 +1253,7 @@ msgstr ""
"ChÆ°Æ¡ng trình này là phần má»m tá»± do; bạn có thể phát hành lại nó\n"
"vá»›i Ä‘iá»u kiện của Giấy Phép Công Cá»™ng GNU, hoặc phiên bản 3\n"
"của Giấy Phép này, hoặc (tùy chá»n) bất kỳ phiên bản sau nào.\n"
-"Chương trình này không bảo hành gì cả.\n"
+"Chương trình này tuyệt đối không bảo hành gì cả.\n"
#: ldver.c:54
#, c-format
@@ -1263,7 +1262,7 @@ msgstr " Mô phá»ng được há»— trợ:\n"
#: ldwrite.c:62 ldwrite.c:207
msgid "%P%F: bfd_new_link_order failed\n"
-msgstr "%P%F: \"bfd_new_link_order\" bị lỗi\n"
+msgstr "%P%F: “bfd_new_link_order†gặp lỗi\n"
#: ldwrite.c:365
msgid "%F%P: cannot create split section name for %s\n"
@@ -1333,7 +1332,7 @@ msgstr "Xuất má»i ký hiệu Ä‘á»™ng"
#: lexsup.c:238
msgid "Undo the effect of --export-dynamic"
-msgstr "Hoàn lại kết quả của \"--export-dynamic\""
+msgstr "Hoàn lại kết quả của “--export-dynamicâ€"
#: lexsup.c:240
msgid "Link big-endian objects"
@@ -1365,7 +1364,7 @@ msgstr "Cá» "
#: lexsup.c:252
msgid "Small data size (if no size, same as --shared)"
-msgstr "Kích cỡ dữ liệu nhá» (không có kích cỡ thì bằng tùy chá»n \"--shared\")"
+msgstr "Kích cỡ dữ liệu nhá» (không có kích cỡ thì bằng tùy chá»n “--sharedâ€)"
#: lexsup.c:255
msgid "FILENAME"
@@ -1413,7 +1412,7 @@ msgstr "Äặt sá»± mô phá»ng"
#: lexsup.c:269
msgid "Print map file on standard output"
-msgstr "In tập tin sơ đồ ra thiết bị xuất chuẩn"
+msgstr "In tập tin ánh xạ ra thiết bị xuất chuẩn"
#: lexsup.c:271
msgid "Do not page align data"
@@ -1465,7 +1464,7 @@ msgstr "Tạo ra kết xuất có thể định vị lại"
#: lexsup.c:303
msgid "Just link symbols (if directory, same as --rpath)"
-msgstr "Chỉ liên kết các ký hiệu (thÆ° mục thì bằng tùy chá»n \"--rpath\")"
+msgstr "Chỉ liên kết các ký hiệu (thÆ° mục thì bằng tùy chá»n “--rpathâ€)"
#: lexsup.c:306
msgid "Strip all symbols"
@@ -1567,7 +1566,7 @@ msgstr "Từ chối tập tin nhập có kiến trúc không rõ"
#: lexsup.c:367
msgid "Only set DT_NEEDED for following dynamic libs if used"
msgstr ""
-"Chỉ lập thẻ \"DT_NEEDED\" (cần thiết DT)\n"
+"Chỉ lập thẻ “DT_NEEDED†(cần thiết DT)\n"
"\tcho những thư viện động theo đây nếu được dùng"
#: lexsup.c:370
@@ -1652,7 +1651,7 @@ msgstr "Gá»i Kà HIỆU vào lúc-bá»-tải"
#: lexsup.c:426
msgid "Force generation of file with .exe suffix"
-msgstr "Ép buộc tạo ra tập tin có hậu tố \".exe\""
+msgstr "Ép buá»™c tạo ra tập tin có hậu tố “.exeâ€"
#: lexsup.c:428
msgid "Remove unused sections (on some targets)"
@@ -1684,7 +1683,7 @@ msgstr "Gá»i Kà HIỆU vào lúc-tải"
#: lexsup.c:447
msgid "Write a map file"
-msgstr "Ghi tập tin sơ đồ"
+msgstr "Ghi tập tin ánh xạ"
#: lexsup.c:449
msgid "Do not define Common storage"
@@ -1736,11 +1735,11 @@ msgstr "Äừng cảnh báo khi tìm thÆ° viện không tÆ°Æ¡ng thích"
#: lexsup.c:482
msgid "Turn off --whole-archive"
-msgstr "Tắt tùy chá»n \"--whole-archive\" (toàn kho)"
+msgstr "Tắt tùy chá»n “--whole-archive†(toàn kho)"
#: lexsup.c:484
msgid "Create an output file even if errors occur"
-msgstr "Tạo tập tin xuất thậm chí nếu gặp lỗi"
+msgstr "Tạo tập tin kết xuất ngay cả khi có lỗi xảy ra"
#: lexsup.c:489
msgid ""
@@ -1748,7 +1747,7 @@ msgid ""
" the command line"
msgstr ""
"Chỉ sử dụng những thư mục thư viện\n"
-"được ghi rõ trên dòng lệnh"
+" được ghi rõ trên dòng lệnh"
#: lexsup.c:493
msgid "Specify target of output file"
@@ -1764,7 +1763,7 @@ msgstr "Bị bỠqua để tương thích với Linux"
#: lexsup.c:501
msgid "Reduce memory overheads, possibly taking much longer"
-msgstr "Giảm bộ nhớ duy tu, có thể chạy rất chậm hơn"
+msgstr "Giảm bộ nhớ duy tu, có thể chạy chậm hơn"
#: lexsup.c:504
msgid "Reduce code size by using target specific optimizations"
@@ -1812,11 +1811,11 @@ msgstr "Sắp xếp các phần theo tên hay sự chỉnh canh tối đa"
#: lexsup.c:533
msgid "COUNT"
-msgstr "Sá»_ÄẾM"
+msgstr "Sá»_LƯỢNG"
#: lexsup.c:533
msgid "How many tags to reserve in .dynamic section"
-msgstr "Số thẻ cần giữ lại trong phần \".dynamic\" (động)"
+msgstr "Số thẻ cần giữ lại trong phần “.dynamic†(động)"
#: lexsup.c:536
msgid "[=SIZE]"
@@ -1828,7 +1827,7 @@ msgstr "Xẻ phần xuất sau mỗi CỠ bộ tám"
#: lexsup.c:539
msgid "[=COUNT]"
-msgstr "[=Sá»_ÄẾM]"
+msgstr "[=Sá»_LƯỢNG]"
#: lexsup.c:539
msgid "Split output sections every COUNT relocs"
@@ -1860,15 +1859,15 @@ msgstr "Äặt địa chỉ của phần có tên"
#: lexsup.c:553
msgid "Set address of .bss section"
-msgstr "Äặt địa chỉ của phần \".bss\""
+msgstr "Äặt địa chỉ của phần “.bssâ€"
#: lexsup.c:555
msgid "Set address of .data section"
-msgstr "Äặt địa chỉ của phần \".data\" (dữ liệu)"
+msgstr "Äặt địa chỉ của phần “.data†(dữ liệu)"
#: lexsup.c:557
msgid "Set address of .text section"
-msgstr "Äặt địa chỉ của phần \".text\" (văn bản)"
+msgstr "Äặt địa chỉ của phần “.text†(văn bản)"
#: lexsup.c:559
msgid "Set address of text segment"
@@ -1880,7 +1879,7 @@ msgid ""
" ignore-all, report-all, ignore-in-object-files,\n"
" ignore-in-shared-libs"
msgstr ""
-"Quản lý ký hiệu chưa tháo gỡ như thế nào.\n"
+"Quản lý ký hiệu chưa được giải quyết như thế nào.\n"
" \t<method> (phương pháp) là:\n"
" • ignore-all\t\t\t\tbỠqua tất cả\n"
" • report-all\t\t\t\tthông báo tất cả\n"
@@ -1904,7 +1903,7 @@ msgid ""
"Take export symbols list from .exports, using\n"
" SYMBOL as the version."
msgstr ""
-"Lấy danh sách các ký hiệu xuất từ \".exports\", sử dụng\n"
+"Lấy danh sách các ký hiệu xuất từ “.exportsâ€, sá»­ dụng\n"
" Kà HIỆU như là phiên bản."
#: lexsup.c:579
@@ -1945,7 +1944,7 @@ msgstr "Cảnh báo nếu đầu của phần thay đổi do sự chỉnh canh"
#: lexsup.c:599
msgid "Warn if shared object has DT_TEXTREL"
-msgstr "Cảnh báo nếu đối tượng dùng chung có \"DT_TEXTREL\""
+msgstr "Cảnh báo nếu đối tượng dùng chung có “DT_TEXTRELâ€"
#: lexsup.c:602
msgid "Warn if an object has alternate ELF machine code"
@@ -1969,31 +1968,31 @@ msgstr "Sá»­ dụng các hàm bao bá»c cho Kà HIỆU"
#: lexsup.c:763
msgid "%P: unrecognized option '%s'\n"
-msgstr "%P: không nhận ra tùy chá»n \"%s\"\n"
+msgstr "%P: không nhận ra tùy chá»n “%sâ€\n"
#: lexsup.c:767
msgid "%P%F: use the --help option for usage information\n"
-msgstr "%P%F: hãy sá»­ dụng tùy chá»n trợ giúp \"--help\" để xem thông tin vá» cách sá»­ dụng\n"
+msgstr "%P%F: hãy sá»­ dụng tùy chá»n trợ giúp “--help†để xem thông tin vá» cách sá»­ dụng\n"
#: lexsup.c:785
msgid "%P%F: unrecognized -a option `%s'\n"
-msgstr "%P%F: không nhận ra tùy chá»n kiểu \"-a\" \"%s\"\n"
+msgstr "%P%F: không nhận ra tùy chá»n kiểu “-a†“%sâ€\n"
#: lexsup.c:798
msgid "%P%F: unrecognized -assert option `%s'\n"
-msgstr "%P%F: không nhận ra tùy chá»n kiểu \"-assert\" \"%s\"\n"
+msgstr "%P%F: không nhận ra tùy chá»n kiểu “-assert†“%sâ€\n"
#: lexsup.c:841
msgid "%F%P: unknown demangling style `%s'"
-msgstr "%F%Ps: không rõ kiểu dáng tháo gõ \"%s\""
+msgstr "%F%Ps: không rõ kiểu dáng tháo gõ “%sâ€"
#: lexsup.c:907 lexsup.c:1341
msgid "%P%F: invalid number `%s'\n"
-msgstr "%P%F: con số không hợp lệ \"%s\"\n"
+msgstr "%P%F: con số không hợp lệ “%sâ€\n"
#: lexsup.c:1005
msgid "%P%F: bad --unresolved-symbols option: %s\n"
-msgstr "%P%F: tùy chá»n \"--unresolved-symbols\" sai: %s\n"
+msgstr "%P%F: tùy chá»n “--unresolved-symbols†sai: %s\n"
#: lexsup.c:1076
msgid "%P%F: bad -plugin-opt option\n"
@@ -2009,15 +2008,15 @@ msgstr "%P%F: tùy chá»n -plugin-opt sai\n"
#. and will seg-fault the next time around.
#: lexsup.c:1093
msgid "%P%F: bad -rpath option\n"
-msgstr "%P%F: tùy chá»n \"-rpath\" sai\n"
+msgstr "%P%F: tùy chá»n “-rpath†sai\n"
#: lexsup.c:1207
msgid "%P%F: -shared not supported\n"
-msgstr "%P%F: không há»— trợ tùy chá»n \"-shared\"\n"
+msgstr "%P%F: không há»— trợ tùy chá»n “-sharedâ€\n"
#: lexsup.c:1216
msgid "%P%F: -pie not supported\n"
-msgstr "%P%F: không há»— trợ tùy chá»n \"-pie\"\n"
+msgstr "%P%F: không há»— trợ tùy chá»n “-pieâ€\n"
#: lexsup.c:1224
msgid "descending"
@@ -2037,7 +2036,7 @@ msgstr "tên"
#: lexsup.c:1235
msgid "alignment"
-msgstr "chỉnh canh"
+msgstr "canh chỉnh"
#: lexsup.c:1238
msgid "%P%F: invalid section sorting option: %s\n"
@@ -2045,40 +2044,40 @@ msgstr "%P%F: tùy chá»n sắp xếp phần không hợp lệ: %s\n"
#: lexsup.c:1272
msgid "%P%F: invalid argument to option \"--section-start\"\n"
-msgstr "%P%F: đối số không hợp lệ đối vá»›i tùy chá»n \"--section-start\"\n"
+msgstr "%P%F: đối số không hợp lệ đối vá»›i tùy chá»n “--section-startâ€\n"
#: lexsup.c:1279
msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
-msgstr "%P%F: thiếu đối số đối vá»›i tùy chá»n \"--section-start\"\n"
+msgstr "%P%F: thiếu đối số cho tùy chá»n “--section-startâ€\n"
#: lexsup.c:1513
msgid "%P%F: group ended before it began (--help for usage)\n"
-msgstr "%P%F: nhóm kết thúc trước khi bắt đầu (\"--help\" để xem cách sử dụng)\n"
+msgstr "%P%F: nhóm kết thúc trÆ°á»›c khi bắt đầu (â€--help†để xem cách sá»­ dụng)\n"
#: lexsup.c:1541
msgid "%P%X: --hash-size needs a numeric argument\n"
-msgstr "%P%X: tùy chá»n \"--hash-size\" cần thiết đối số thuá»™c số\n"
+msgstr "%P%X: tùy chá»n “--hash-size†cần thiết đối số thuá»™c số\n"
#: lexsup.c:1572
msgid "%P%F: -r and -shared may not be used together\n"
-msgstr "%P%F: không thể sá»­ dụng đồng thá»i hai tùy chá»n \"-r\" và \"-shared\" (dùng chung)\n"
+msgstr "%P%F: không thể sá»­ dụng đồng thá»i hai tùy chá»n “-r†và “-shared†(dùng chung)\n"
#: lexsup.c:1615
msgid "%P%F: -F may not be used without -shared\n"
-msgstr "%P%F: không thể sá»­ dụng tùy chá»n \"-F\" khi không cÅ©ng có tùy chá»n \"-shared\" (dùng chung)\n"
+msgstr "%P%F: không thể sá»­ dụng tùy chá»n “-F†khi không cÅ©ng có tùy chá»n “-shared†(dùng chung)\n"
#: lexsup.c:1617
msgid "%P%F: -f may not be used without -shared\n"
-msgstr "%P%F: không thể sá»­ dụng tùy chá»n \"-f\" khi không có tùy chá»n \"-shared\" (dùng chung)\n"
+msgstr "%P%F: không thể sá»­ dụng tùy chá»n “-f†khi không có tùy chá»n “-shared†(dùng chung)\n"
#: lexsup.c:1661 lexsup.c:1674
msgid "%P%F: invalid hex number `%s'\n"
-msgstr "%P%F: số thập lục không hợp lệ \"%s\"\n"
+msgstr "%P%F: số thập lục không hợp lệ “%sâ€\n"
#: lexsup.c:1710
#, c-format
msgid "Usage: %s [options] file...\n"
-msgstr "Cách sá»­ dụng: %s <tùy_chá»n> tập_tin...\n"
+msgstr "Cách dùng: %s <các_tùy_chá»n> tập_tin...\n"
#: lexsup.c:1712
#, c-format
@@ -2100,17 +2099,17 @@ msgstr "Äá»c các tùy chá»n từ TẬP_TIN\n"
#: lexsup.c:1798
#, c-format
msgid "%s: supported targets:"
-msgstr "%s: đích hỗ trợ:"
+msgstr "%s: đích được hỗ trợ:"
#: lexsup.c:1806
#, c-format
msgid "%s: supported emulations: "
-msgstr "%s: mô phá»ng há»— trợ: "
+msgstr "%s: mô phá»ng được há»— trợ: "
#: lexsup.c:1811
#, c-format
msgid "%s: emulation specific options:\n"
-msgstr "%s: tùy chá»n đặc trÆ°ng cho mô phá»ng:\n"
+msgstr "%s: tùy chá»n đặc tả cho mô phá»ng:\n"
#: lexsup.c:1816
#, c-format
@@ -2178,12 +2177,12 @@ msgstr "; không có nội dung sẵn sàng\n"
#: pe-dll.c:2662
msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
-msgstr "%C: không thể tá»± Ä‘á»™ng nhập khẩu biến \"%T\". Hãy Ä‘á»c tài liệu hÆ°á»›ng dẫn vá» tùy chá»n \"--enable-auto-import\" (bật nhập tá»± Ä‘á»™ng) của phần má»m ld, để xem chi tiết.\n"
+msgstr "%C: không thể tá»± Ä‘á»™ng nhập khẩu biến “%Tâ€. Hãy Ä‘á»c tài liệu hÆ°á»›ng dẫn vá» tùy chá»n “--enable-auto-import†(bật nhập tá»± Ä‘á»™ng) của phần má»m ld, để xem chi tiết.\n"
#: pe-dll.c:2692
#, c-format
msgid "%XCan't open .lib file: %s\n"
-msgstr "%XKhông thể mở tập tin \".lib\" (thư viện): %s\n"
+msgstr "%XKhông thể mở tập tin “.lib†(thư viện): %s\n"
#: pe-dll.c:2697
#, c-format
@@ -2229,7 +2228,7 @@ msgstr "%P%F: không rõ tính khả kiến của ký hiệu ELF: %d!\n"
#: plugin.c:586
msgid "%P: %B: symbol `%s' definition: %d, visibility: %d, resolution: %d\n"
-msgstr "%P: %B: ký hiệu `%s' định nghĩa: %d, khả kiến: %d, giải quyết: %d\n"
+msgstr "%P: %B: ký hiệu “%s†định nghĩa: %d, khả kiến: %d, phân giải: %d\n"
#: plugin.c:863
msgid "%P%F: %s: plugin reported error claiming file\n"
@@ -2249,25 +2248,25 @@ msgstr "%P: %s: gặp lá»—i khi dá»n sạch plungin (bị lá» Ä‘i)\n"
#~ "Set DT_NEEDED tags for DT_NEEDED entries in\n"
#~ " following dynamic libs"
#~ msgstr ""
-#~ "Äặt thẻ \"DT_NEEDED\" (DT yêu cầu)\n"
-#~ "\tcho mục nhập \"DT_NEEDED\"\n"
+#~ "Äặt thẻ “DT_NEEDED†(DT yêu cầu)\n"
+#~ "\tcho mục nhập “DT_NEEDEDâ€\n"
#~ "\ttrong những thư viện động theo đây"
#~ msgid ""
#~ "Do not set DT_NEEDED tags for DT_NEEDED entries\n"
#~ " in following dynamic libs"
#~ msgstr ""
-#~ "Không đặt thẻ \"DT_NEEDED\"\n"
-#~ "cho mục nhập \"DT_NEEDED\"\n"
+#~ "Không đặt thẻ “DT_NEEDEDâ€\n"
+#~ "cho mục nhập “DT_NEEDEDâ€\n"
#~ "trong những thư viện theo đây"
#~ msgid "Always set DT_NEEDED for following dynamic libs"
#~ msgstr ""
-#~ "Luôn luôn lập thẻ \"DT_NEEDED\" (cần thiết DT)\n"
+#~ "Luôn luôn lập thẻ “DT_NEEDED†(cần thiết DT)\n"
#~ "\tcho những thư viện động theo đây"
#~ msgid "Relax branches on certain targets"
#~ msgstr "Lơi ra nhánh trên một số đích nào đó"
#~ msgid "%P%F: may not nest groups (--help for usage)\n"
-#~ msgstr "%P%F: không cho phép lồng các nhóm với nhau (\"--help\" để xem cách sử dụng)\n"
+#~ msgstr "%P%F: không cho phép lồng các nhóm vá»›i nhau (â€--help†để xem cách sá»­ dụng)\n"
diff --git a/ld/po/zh_CN.po b/ld/po/zh_CN.po
index 4f55084..d490a32 100644
--- a/ld/po/zh_CN.po
+++ b/ld/po/zh_CN.po
@@ -14,6 +14,7 @@ msgstr ""
"Last-Translator: Mingye Wang <arthur200126@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
"Language: zh_CN\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff --git a/ld/po/zh_TW.po b/ld/po/zh_TW.po
index 7dca75f..4352777 100644
--- a/ld/po/zh_TW.po
+++ b/ld/po/zh_TW.po
@@ -13,6 +13,7 @@ msgstr ""
"Last-Translator: Wei-Lun Chao <bluebat@member.fsf.org>\n"
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
"Language: zh_TW\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff --git a/ld/scripttempl/avr.sc b/ld/scripttempl/avr.sc
index 07553b4..7a146b7 100644
--- a/ld/scripttempl/avr.sc
+++ b/ld/scripttempl/avr.sc
@@ -128,7 +128,7 @@ SECTIONS
${RELOCATING+ *libprintf_flt.a:*(.progmem.data)}
${RELOCATING+ *libc.a:*(.progmem.data)}
- ${RELOCATING+ *(.progmem*)}
+ ${RELOCATING+ *(.progmem.*)}
${RELOCATING+. = ALIGN(2);}
@@ -196,6 +196,8 @@ SECTIONS
*(.hightext)
${RELOCATING+ *(.hightext*)}
+ ${RELOCATING+ *(.progmemx.*)}
+
${RELOCATING+. = ALIGN(2);}
/* For tablejump instruction arrays. We don't relax
diff --git a/ld/scripttempl/elfarc.sc b/ld/scripttempl/elfarc.sc
index 6754c02..4d8fef0 100644
--- a/ld/scripttempl/elfarc.sc
+++ b/ld/scripttempl/elfarc.sc
@@ -262,6 +262,12 @@ cat <<EOF
} =${NOP-0}
${DATA_PLT-${BSS_PLT-${PLT}}}
+ .jlitab ${RELOCATING-0} :
+ {
+ ${RELOCATING+${JLI_START_TABLE}}
+ jlitab*.o(.jlitab*)
+ *(.jlitab*)
+ } =${NOP-0}
.text ${RELOCATING-0} :
{
${RELOCATING+${TEXT_START_SYMBOLS}}
diff --git a/ld/scripttempl/elfarcv2.sc b/ld/scripttempl/elfarcv2.sc
index 0232d81..21bc74c 100644
--- a/ld/scripttempl/elfarcv2.sc
+++ b/ld/scripttempl/elfarcv2.sc
@@ -179,6 +179,11 @@ SECTIONS
.eh_frame : { KEEP (*(.eh_frame)) } ${RELOCATING+> ${TEXT_MEMORY}}
.gcc_except_table : { *(.gcc_except_table) *(.gcc_except_table.*) } ${RELOCATING+> ${TEXT_MEMORY}}
.plt : { *(.plt) } ${RELOCATING+> ${TEXT_MEMORY}}
+ .jlitab :
+ {
+ ${RELOCATING+${JLI_START_TABLE}}
+ jlitab*.o:(.jlitab*) *(.jlitab*)
+ } ${RELOCATING+> ${TEXT_MEMORY}}
.rodata ${RELOCATING-0} :
{
diff --git a/ld/scripttempl/pe.sc b/ld/scripttempl/pe.sc
index 9f7b2b2..5de44e5 100644
--- a/ld/scripttempl/pe.sc
+++ b/ld/scripttempl/pe.sc
@@ -97,10 +97,24 @@ SECTIONS
${RELOCATING+ *(.gnu.linkonce.t.*)}
${RELOCATING+*(.glue_7t)}
${RELOCATING+*(.glue_7)}
- ${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
- LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*)); LONG (0); }
- ${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
- LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*)); LONG (0); }
+ ${CONSTRUCTING+
+ PROVIDE(___CTOR_LIST__ = .);
+ PROVIDE(__CTOR_LIST__ = .);
+ LONG (-1);
+ KEEP(*(.ctors));
+ KEEP(*(.ctor));
+ KEEP(*(SORT_BY_NAME(.ctors.*)));
+ LONG (0);
+ }
+ ${CONSTRUCTING+
+ PROVIDE(___DTOR_LIST__ = .);
+ PROVIDE(__DTOR_LIST__ = .);
+ LONG (-1);
+ KEEP(*(.dtors));
+ KEEP(*(.dtor));
+ KEEP(*(SORT_BY_NAME(.dtors.*)));
+ LONG (0);
+ }
${RELOCATING+ KEEP (*(.fini))}
/* ??? Why is .gcc_exc here? */
${RELOCATING+ *(.gcc_exc)}
diff --git a/ld/scripttempl/pep.sc b/ld/scripttempl/pep.sc
index 57eb75c..e972ec8 100644
--- a/ld/scripttempl/pep.sc
+++ b/ld/scripttempl/pep.sc
@@ -98,18 +98,24 @@ SECTIONS
${RELOCATING+*(.glue_7t)}
${RELOCATING+*(.glue_7)}
${CONSTRUCTING+. = ALIGN(8);}
- ${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
- LONG (-1); LONG (-1);
- KEEP (*(.ctors));
- KEEP (*(.ctor));
- KEEP (*(SORT(.ctors.*)));
- LONG (0); LONG (0); }
- ${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
- LONG (-1); LONG (-1);
- KEEP (*(.dtors));
- KEEP (*(.dtor));
- KEEP (*(SORT(.dtors.*)));
- LONG (0); LONG (0); }
+ ${CONSTRUCTING+
+ PROVIDE(___CTOR_LIST__ = .);
+ PROVIDE(__CTOR_LIST__ = .);
+ LONG (-1); LONG (-1);
+ KEEP (*(.ctors));
+ KEEP (*(.ctor));
+ KEEP (*(SORT_BY_NAME(.ctors.*)));
+ LONG (0); LONG (0);
+ }
+ ${CONSTRUCTING+
+ PROVIDE(___DTOR_LIST__ = .);
+ PROVIDE(__DTOR_LIST__ = .);
+ LONG (-1); LONG (-1);
+ KEEP (*(.dtors));
+ KEEP (*(.dtor));
+ KEEP (*(SORT_BY_NAME(.dtors.*)));
+ LONG (0); LONG (0);
+ }
${RELOCATING+ KEEP (*(.fini))}
/* ??? Why is .gcc_exc here? */
${RELOCATING+ *(.gcc_exc)}
diff --git a/ld/testsuite/config/default.exp b/ld/testsuite/config/default.exp
index f5cb188..6aba75f 100644
--- a/ld/testsuite/config/default.exp
+++ b/ld/testsuite/config/default.exp
@@ -251,6 +251,17 @@ if ![info exists LDFLAGS] then {
set LDFLAGS {}
}
+# Set LD_CLASS to "64bit" for 64-bit LD.
+if { ![info exists LD_CLASS] } then {
+ set REAL_LD [findfile $base_dir/.libs/ld-new .libs/ld-new $LD [transform ld]]
+ set readelf_output [run_host_cmd "$READELF" "-h $REAL_LD"]
+ if { [regexp {[ \t]+Class:[ \t]+ELF64} $readelf_output] } then {
+ set LD_CLASS "64bit"
+ } else {
+ set LD_CLASS "32bit"
+ }
+}
+
# Set PLT_CFLAGS to "-fplt" if target compiler supports it.
if { ![info exists PLT_CFLAGS] } then {
diff --git a/ld/testsuite/ld-aarch64/dt_textrel.d b/ld/testsuite/ld-aarch64/dt_textrel.d
index 2dbbd2f..e28d164 100644
--- a/ld/testsuite/ld-aarch64/dt_textrel.d
+++ b/ld/testsuite/ld-aarch64/dt_textrel.d
@@ -3,5 +3,4 @@
#readelf: -d
#...
.*TEXTREL.*
-.*
-
+#pass
diff --git a/ld/testsuite/ld-aarch64/erratum843419.d b/ld/testsuite/ld-aarch64/erratum843419.d
index 28e4445..f0934f0 100644
--- a/ld/testsuite/ld-aarch64/erratum843419.d
+++ b/ld/testsuite/ld-aarch64/erratum843419.d
@@ -14,7 +14,7 @@ Disassembly of section .e843419:
...
0*20000ff8 <e843419_1>:
-[ ]*20000ff8: 90100000 adrp x0, 40000000 <[_a-zA-z0-9]+>
+[ ]*20000ff8: 90100000 adrp x0, 40000000 <[_a-zA-Z0-9]+>
[ ]*20000ffc: f800c007 stur x7, \[x0, #12\]
[ ]*20001000: d2800128 mov x8, #0x9 // #9
[ ]*20001004: 14000008 b 20001024 <e843419@0002_00000013_1004>
diff --git a/ld/testsuite/ld-aarch64/gc-plt-relocs.d b/ld/testsuite/ld-aarch64/gc-plt-relocs.d
index d9f9413..0322c3c 100644
--- a/ld/testsuite/ld-aarch64/gc-plt-relocs.d
+++ b/ld/testsuite/ld-aarch64/gc-plt-relocs.d
@@ -2,7 +2,7 @@
#source: gc-plt-main.s
#source: gc-plt-hidden.s
#source: gc-plt2.s
-#ld: --gc-sections -T aarch64.ld --shared
+#ld: --gc-sections -T aarch64.ld --shared --hash-style=sysv
#objdump: -dT
# Shared object with plt related relocs against global symbol
diff --git a/ld/testsuite/ld-aarch64/ifunc-1-local.d b/ld/testsuite/ld-aarch64/ifunc-1-local.d
index 0e307e0..779d973 100644
--- a/ld/testsuite/ld-aarch64/ifunc-1-local.d
+++ b/ld/testsuite/ld-aarch64/ifunc-1-local.d
@@ -1,4 +1,4 @@
-#ld: -shared
+#ld: -shared --hash-style=sysv
#objdump: -dw
#target: aarch64*-*-*
diff --git a/ld/testsuite/ld-aarch64/ifunc-1.d b/ld/testsuite/ld-aarch64/ifunc-1.d
index 9e522c9..0640303 100644
--- a/ld/testsuite/ld-aarch64/ifunc-1.d
+++ b/ld/testsuite/ld-aarch64/ifunc-1.d
@@ -1,4 +1,4 @@
-#ld: -shared
+#ld: -shared --hash-style=sysv
#objdump: -dw
#target: aarch64*-*-*
diff --git a/ld/testsuite/ld-aarch64/ifunc-2-local.d b/ld/testsuite/ld-aarch64/ifunc-2-local.d
index 103f3e4..27710bc 100644
--- a/ld/testsuite/ld-aarch64/ifunc-2-local.d
+++ b/ld/testsuite/ld-aarch64/ifunc-2-local.d
@@ -1,4 +1,4 @@
-#ld: -shared
+#ld: -shared --hash-style=sysv
#objdump: -dw
#target: aarch64*-*-*
diff --git a/ld/testsuite/ld-aarch64/ifunc-2.d b/ld/testsuite/ld-aarch64/ifunc-2.d
index 70ce224..b67e282 100644
--- a/ld/testsuite/ld-aarch64/ifunc-2.d
+++ b/ld/testsuite/ld-aarch64/ifunc-2.d
@@ -1,4 +1,4 @@
-#ld: -shared
+#ld: -shared --hash-style=sysv
#objdump: -dw
#target: aarch64*-*-*
diff --git a/ld/testsuite/ld-aarch64/ifunc-21.d b/ld/testsuite/ld-aarch64/ifunc-21.d
index eef2e62..590495f 100644
--- a/ld/testsuite/ld-aarch64/ifunc-21.d
+++ b/ld/testsuite/ld-aarch64/ifunc-21.d
@@ -1,5 +1,5 @@
#source: ifunc-21.s
-#ld: -shared -z nocombreloc
+#ld: -shared --hash-style=sysv -z nocombreloc
#objdump: -d -s -j .got.plt -j .text
#target: aarch64*-*-*
diff --git a/ld/testsuite/ld-aarch64/ifunc-3a.d b/ld/testsuite/ld-aarch64/ifunc-3a.d
index 4f61a8b..3e19b33 100644
--- a/ld/testsuite/ld-aarch64/ifunc-3a.d
+++ b/ld/testsuite/ld-aarch64/ifunc-3a.d
@@ -1,5 +1,5 @@
#source: ifunc-3.s
-#ld: -shared
+#ld: -shared --hash-style=sysv
#objdump: -dw
#target: aarch64*-*-*
diff --git a/ld/testsuite/ld-aarch64/relasz.d b/ld/testsuite/ld-aarch64/relasz.d
index 5cc5595..28fe83a 100644
--- a/ld/testsuite/ld-aarch64/relasz.d
+++ b/ld/testsuite/ld-aarch64/relasz.d
@@ -1,5 +1,5 @@
#source: relasz.s
-#ld: -shared -Taarch64.ld
+#ld: -shared --hash-style=sysv -Taarch64.ld
#readelf: -d
# Check that the RELASZ section has the correct size even if we are
# using a non-default linker script that merges .rela.dyn and .rela.plt
diff --git a/ld/testsuite/ld-aarch64/tls-small-ld.d b/ld/testsuite/ld-aarch64/tls-small-ld.d
index 74cf256..dce10af 100644
--- a/ld/testsuite/ld-aarch64/tls-small-ld.d
+++ b/ld/testsuite/ld-aarch64/tls-small-ld.d
@@ -1,5 +1,5 @@
#source: tls-small-ld.s
-#ld: -T relocs.ld -shared
+#ld: -T relocs.ld -shared --hash-style=sysv
#readelf: -Wr
Relocation section '\.rela\.dyn' at offset 0x10070 contains 2 entries:
diff --git a/ld/testsuite/ld-aarch64/tls-tiny-ld.d b/ld/testsuite/ld-aarch64/tls-tiny-ld.d
index f2cb60c..a9eb0a5 100644
--- a/ld/testsuite/ld-aarch64/tls-tiny-ld.d
+++ b/ld/testsuite/ld-aarch64/tls-tiny-ld.d
@@ -1,5 +1,5 @@
#source: tls-tiny-ld.s
-#ld: -T relocs.ld -shared
+#ld: -T relocs.ld -shared --hash-style=sysv
#readelf: -Wr
Relocation section '\.rela\.dyn' at offset 0x10070 contains 2 entries:
diff --git a/ld/testsuite/ld-alpha/alpha.exp b/ld/testsuite/ld-alpha/alpha.exp
index 0d115ba..5b811c1 100644
--- a/ld/testsuite/ld-alpha/alpha.exp
+++ b/ld/testsuite/ld-alpha/alpha.exp
@@ -37,7 +37,7 @@ if { !([istarget "alpha*-*-elf*"]
# readelf: Apply readelf options on result. Compare with regex (last arg).
set alphatests {
- {"TLS -fpic -shared" "-shared -melf64alpha" ""
+ {"TLS -fpic -shared" "-shared -melf64alpha --hash-style=sysv" ""
"" {align.s tlspic1.s tlspic2.s}
{{readelf -WSsrl tlspic.rd} {objdump -drj.text tlspic.dd}
{objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}}
@@ -45,12 +45,13 @@ set alphatests {
{"Helper shared library" "-shared -melf64alpha" ""
"" {tlslib.s} {} "libtlslib.so"}
{"TLS -fpic and -fno-pic exec"
- "-melf64alpha tmpdir/libtlslib.so" "" "" {align.s tlsbinpic.s tlsbin.s}
+ "-melf64alpha tmpdir/libtlslib.so --hash-style=sysv" ""
+ "" {align.s tlsbinpic.s tlsbin.s}
{{readelf -WSsrl tlsbin.rd} {objdump -drj.text tlsbin.dd}
{objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}}
"tlsbin"}
{"TLS -fpic and -fno-pic exec -relax"
- "-relax -melf64alpha tmpdir/libtlslib.so" ""
+ "-relax -melf64alpha --hash-style=sysv tmpdir/libtlslib.so" ""
"" {align.s tlsbinpic.s tlsbin.s}
{{readelf -WSsrl tlsbinr.rd} {objdump -drj.text tlsbinr.dd}
{objdump -sj.got tlsbinr.sd}}
diff --git a/ld/testsuite/ld-arc/arc.exp b/ld/testsuite/ld-arc/arc.exp
index 2f2abe2..66f39cd 100644
--- a/ld/testsuite/ld-arc/arc.exp
+++ b/ld/testsuite/ld-arc/arc.exp
@@ -40,6 +40,11 @@ set arccommon_tests {
{tls-dtpoff.s}
{{objdump -fdw tls-dtpoff.dd} {readelf --relocs tls-dtpoff.rd}}
"sda-relocs.so" }
+ { "JLI simple"
+ "-q -T jli-script.ld -A elf32-arclittle" "" "-mcpu=em4 -EL"
+ {jli-simple.s}
+ {{objdump -fdw jli-simple.dd} {readelf --relocs jli-simple.rd}}
+ "jli-simple.so" }
}
run_ld_link_tests $arccommon_tests
diff --git a/ld/testsuite/ld-arc/jli-overflow.d b/ld/testsuite/ld-arc/jli-overflow.d
new file mode 100644
index 0000000..6445b2a
--- /dev/null
+++ b/ld/testsuite/ld-arc/jli-overflow.d
@@ -0,0 +1,4 @@
+#source: jli-overflow.s
+#as: -EL
+#ld: -q -T jli-script.ld -A elf32-arclittle
+#error_output: jli-overflow.err
diff --git a/ld/testsuite/ld-arc/jli-overflow.err b/ld/testsuite/ld-arc/jli-overflow.err
new file mode 100644
index 0000000..022434e
--- /dev/null
+++ b/ld/testsuite/ld-arc/jli-overflow.err
@@ -0,0 +1,3 @@
+.*\.o: In function `test_1025':
+.*: relocation truncated to fit: R_ARC_JLI_SECTOFF against symbol.*
+#...
diff --git a/ld/testsuite/ld-arc/jli-overflow.s b/ld/testsuite/ld-arc/jli-overflow.s
new file mode 100644
index 0000000..7961cc9
--- /dev/null
+++ b/ld/testsuite/ld-arc/jli-overflow.s
@@ -0,0 +1,1050 @@
+;;;Macro
+ .macro jlifunc num
+ .section .text
+ .align 4
+ .global func\num
+ .type func\num, @function
+func\num:
+ j_s.d [blink]
+ add_s r0,r0,1
+ .size func\num, .-func\num
+ .align 4
+ .global test_\num
+ .type test_\num, @function
+test_\num:
+ jli_s @__jli.func\num
+ j_s [blink]
+ .size test_\num, .-test_\num
+ .section .jlitab, "axG", @progbits, .jlitab.func\num, comdat
+ .align 4
+__jli.func\num:
+ .weak __jli.func\num
+ b @func\num
+ .endm
+
+ .cpu HS
+ jlifunc 1
+ jlifunc 2
+ jlifunc 3
+ jlifunc 4
+ jlifunc 5
+ jlifunc 6
+ jlifunc 7
+ jlifunc 8
+ jlifunc 9
+ jlifunc 10
+ jlifunc 11
+ jlifunc 12
+ jlifunc 13
+ jlifunc 14
+ jlifunc 15
+ jlifunc 16
+ jlifunc 17
+ jlifunc 18
+ jlifunc 19
+ jlifunc 20
+ jlifunc 21
+ jlifunc 22
+ jlifunc 23
+ jlifunc 24
+ jlifunc 25
+ jlifunc 26
+ jlifunc 27
+ jlifunc 28
+ jlifunc 29
+ jlifunc 30
+ jlifunc 31
+ jlifunc 32
+ jlifunc 33
+ jlifunc 34
+ jlifunc 35
+ jlifunc 36
+ jlifunc 37
+ jlifunc 38
+ jlifunc 39
+ jlifunc 40
+ jlifunc 41
+ jlifunc 42
+ jlifunc 43
+ jlifunc 44
+ jlifunc 45
+ jlifunc 46
+ jlifunc 47
+ jlifunc 48
+ jlifunc 49
+ jlifunc 50
+ jlifunc 51
+ jlifunc 52
+ jlifunc 53
+ jlifunc 54
+ jlifunc 55
+ jlifunc 56
+ jlifunc 57
+ jlifunc 58
+ jlifunc 59
+ jlifunc 60
+ jlifunc 61
+ jlifunc 62
+ jlifunc 63
+ jlifunc 64
+ jlifunc 65
+ jlifunc 66
+ jlifunc 67
+ jlifunc 68
+ jlifunc 69
+ jlifunc 70
+ jlifunc 71
+ jlifunc 72
+ jlifunc 73
+ jlifunc 74
+ jlifunc 75
+ jlifunc 76
+ jlifunc 77
+ jlifunc 78
+ jlifunc 79
+ jlifunc 80
+ jlifunc 81
+ jlifunc 82
+ jlifunc 83
+ jlifunc 84
+ jlifunc 85
+ jlifunc 86
+ jlifunc 87
+ jlifunc 88
+ jlifunc 89
+ jlifunc 90
+ jlifunc 91
+ jlifunc 92
+ jlifunc 93
+ jlifunc 94
+ jlifunc 95
+ jlifunc 96
+ jlifunc 97
+ jlifunc 98
+ jlifunc 99
+ jlifunc 100
+ jlifunc 101
+ jlifunc 102
+ jlifunc 103
+ jlifunc 104
+ jlifunc 105
+ jlifunc 106
+ jlifunc 107
+ jlifunc 108
+ jlifunc 109
+ jlifunc 110
+ jlifunc 111
+ jlifunc 112
+ jlifunc 113
+ jlifunc 114
+ jlifunc 115
+ jlifunc 116
+ jlifunc 117
+ jlifunc 118
+ jlifunc 119
+ jlifunc 120
+ jlifunc 121
+ jlifunc 122
+ jlifunc 123
+ jlifunc 124
+ jlifunc 125
+ jlifunc 126
+ jlifunc 127
+ jlifunc 128
+ jlifunc 129
+ jlifunc 130
+ jlifunc 131
+ jlifunc 132
+ jlifunc 133
+ jlifunc 134
+ jlifunc 135
+ jlifunc 136
+ jlifunc 137
+ jlifunc 138
+ jlifunc 139
+ jlifunc 140
+ jlifunc 141
+ jlifunc 142
+ jlifunc 143
+ jlifunc 144
+ jlifunc 145
+ jlifunc 146
+ jlifunc 147
+ jlifunc 148
+ jlifunc 149
+ jlifunc 150
+ jlifunc 151
+ jlifunc 152
+ jlifunc 153
+ jlifunc 154
+ jlifunc 155
+ jlifunc 156
+ jlifunc 157
+ jlifunc 158
+ jlifunc 159
+ jlifunc 160
+ jlifunc 161
+ jlifunc 162
+ jlifunc 163
+ jlifunc 164
+ jlifunc 165
+ jlifunc 166
+ jlifunc 167
+ jlifunc 168
+ jlifunc 169
+ jlifunc 170
+ jlifunc 171
+ jlifunc 172
+ jlifunc 173
+ jlifunc 174
+ jlifunc 175
+ jlifunc 176
+ jlifunc 177
+ jlifunc 178
+ jlifunc 179
+ jlifunc 180
+ jlifunc 181
+ jlifunc 182
+ jlifunc 183
+ jlifunc 184
+ jlifunc 185
+ jlifunc 186
+ jlifunc 187
+ jlifunc 188
+ jlifunc 189
+ jlifunc 190
+ jlifunc 191
+ jlifunc 192
+ jlifunc 193
+ jlifunc 194
+ jlifunc 195
+ jlifunc 196
+ jlifunc 197
+ jlifunc 198
+ jlifunc 199
+ jlifunc 200
+ jlifunc 201
+ jlifunc 202
+ jlifunc 203
+ jlifunc 204
+ jlifunc 205
+ jlifunc 206
+ jlifunc 207
+ jlifunc 208
+ jlifunc 209
+ jlifunc 210
+ jlifunc 211
+ jlifunc 212
+ jlifunc 213
+ jlifunc 214
+ jlifunc 215
+ jlifunc 216
+ jlifunc 217
+ jlifunc 218
+ jlifunc 219
+ jlifunc 220
+ jlifunc 221
+ jlifunc 222
+ jlifunc 223
+ jlifunc 224
+ jlifunc 225
+ jlifunc 226
+ jlifunc 227
+ jlifunc 228
+ jlifunc 229
+ jlifunc 230
+ jlifunc 231
+ jlifunc 232
+ jlifunc 233
+ jlifunc 234
+ jlifunc 235
+ jlifunc 236
+ jlifunc 237
+ jlifunc 238
+ jlifunc 239
+ jlifunc 240
+ jlifunc 241
+ jlifunc 242
+ jlifunc 243
+ jlifunc 244
+ jlifunc 245
+ jlifunc 246
+ jlifunc 247
+ jlifunc 248
+ jlifunc 249
+ jlifunc 250
+ jlifunc 251
+ jlifunc 252
+ jlifunc 253
+ jlifunc 254
+ jlifunc 255
+ jlifunc 256
+ jlifunc 257
+ jlifunc 258
+ jlifunc 259
+ jlifunc 260
+ jlifunc 261
+ jlifunc 262
+ jlifunc 263
+ jlifunc 264
+ jlifunc 265
+ jlifunc 266
+ jlifunc 267
+ jlifunc 268
+ jlifunc 269
+ jlifunc 270
+ jlifunc 271
+ jlifunc 272
+ jlifunc 273
+ jlifunc 274
+ jlifunc 275
+ jlifunc 276
+ jlifunc 277
+ jlifunc 278
+ jlifunc 279
+ jlifunc 280
+ jlifunc 281
+ jlifunc 282
+ jlifunc 283
+ jlifunc 284
+ jlifunc 285
+ jlifunc 286
+ jlifunc 287
+ jlifunc 288
+ jlifunc 289
+ jlifunc 290
+ jlifunc 291
+ jlifunc 292
+ jlifunc 293
+ jlifunc 294
+ jlifunc 295
+ jlifunc 296
+ jlifunc 297
+ jlifunc 298
+ jlifunc 299
+ jlifunc 300
+ jlifunc 301
+ jlifunc 302
+ jlifunc 303
+ jlifunc 304
+ jlifunc 305
+ jlifunc 306
+ jlifunc 307
+ jlifunc 308
+ jlifunc 309
+ jlifunc 310
+ jlifunc 311
+ jlifunc 312
+ jlifunc 313
+ jlifunc 314
+ jlifunc 315
+ jlifunc 316
+ jlifunc 317
+ jlifunc 318
+ jlifunc 319
+ jlifunc 320
+ jlifunc 321
+ jlifunc 322
+ jlifunc 323
+ jlifunc 324
+ jlifunc 325
+ jlifunc 326
+ jlifunc 327
+ jlifunc 328
+ jlifunc 329
+ jlifunc 330
+ jlifunc 331
+ jlifunc 332
+ jlifunc 333
+ jlifunc 334
+ jlifunc 335
+ jlifunc 336
+ jlifunc 337
+ jlifunc 338
+ jlifunc 339
+ jlifunc 340
+ jlifunc 341
+ jlifunc 342
+ jlifunc 343
+ jlifunc 344
+ jlifunc 345
+ jlifunc 346
+ jlifunc 347
+ jlifunc 348
+ jlifunc 349
+ jlifunc 350
+ jlifunc 351
+ jlifunc 352
+ jlifunc 353
+ jlifunc 354
+ jlifunc 355
+ jlifunc 356
+ jlifunc 357
+ jlifunc 358
+ jlifunc 359
+ jlifunc 360
+ jlifunc 361
+ jlifunc 362
+ jlifunc 363
+ jlifunc 364
+ jlifunc 365
+ jlifunc 366
+ jlifunc 367
+ jlifunc 368
+ jlifunc 369
+ jlifunc 370
+ jlifunc 371
+ jlifunc 372
+ jlifunc 373
+ jlifunc 374
+ jlifunc 375
+ jlifunc 376
+ jlifunc 377
+ jlifunc 378
+ jlifunc 379
+ jlifunc 380
+ jlifunc 381
+ jlifunc 382
+ jlifunc 383
+ jlifunc 384
+ jlifunc 385
+ jlifunc 386
+ jlifunc 387
+ jlifunc 388
+ jlifunc 389
+ jlifunc 390
+ jlifunc 391
+ jlifunc 392
+ jlifunc 393
+ jlifunc 394
+ jlifunc 395
+ jlifunc 396
+ jlifunc 397
+ jlifunc 398
+ jlifunc 399
+ jlifunc 400
+ jlifunc 401
+ jlifunc 402
+ jlifunc 403
+ jlifunc 404
+ jlifunc 405
+ jlifunc 406
+ jlifunc 407
+ jlifunc 408
+ jlifunc 409
+ jlifunc 410
+ jlifunc 411
+ jlifunc 412
+ jlifunc 413
+ jlifunc 414
+ jlifunc 415
+ jlifunc 416
+ jlifunc 417
+ jlifunc 418
+ jlifunc 419
+ jlifunc 420
+ jlifunc 421
+ jlifunc 422
+ jlifunc 423
+ jlifunc 424
+ jlifunc 425
+ jlifunc 426
+ jlifunc 427
+ jlifunc 428
+ jlifunc 429
+ jlifunc 430
+ jlifunc 431
+ jlifunc 432
+ jlifunc 433
+ jlifunc 434
+ jlifunc 435
+ jlifunc 436
+ jlifunc 437
+ jlifunc 438
+ jlifunc 439
+ jlifunc 440
+ jlifunc 441
+ jlifunc 442
+ jlifunc 443
+ jlifunc 444
+ jlifunc 445
+ jlifunc 446
+ jlifunc 447
+ jlifunc 448
+ jlifunc 449
+ jlifunc 450
+ jlifunc 451
+ jlifunc 452
+ jlifunc 453
+ jlifunc 454
+ jlifunc 455
+ jlifunc 456
+ jlifunc 457
+ jlifunc 458
+ jlifunc 459
+ jlifunc 460
+ jlifunc 461
+ jlifunc 462
+ jlifunc 463
+ jlifunc 464
+ jlifunc 465
+ jlifunc 466
+ jlifunc 467
+ jlifunc 468
+ jlifunc 469
+ jlifunc 470
+ jlifunc 471
+ jlifunc 472
+ jlifunc 473
+ jlifunc 474
+ jlifunc 475
+ jlifunc 476
+ jlifunc 477
+ jlifunc 478
+ jlifunc 479
+ jlifunc 480
+ jlifunc 481
+ jlifunc 482
+ jlifunc 483
+ jlifunc 484
+ jlifunc 485
+ jlifunc 486
+ jlifunc 487
+ jlifunc 488
+ jlifunc 489
+ jlifunc 490
+ jlifunc 491
+ jlifunc 492
+ jlifunc 493
+ jlifunc 494
+ jlifunc 495
+ jlifunc 496
+ jlifunc 497
+ jlifunc 498
+ jlifunc 499
+ jlifunc 500
+ jlifunc 501
+ jlifunc 502
+ jlifunc 503
+ jlifunc 504
+ jlifunc 505
+ jlifunc 506
+ jlifunc 507
+ jlifunc 508
+ jlifunc 509
+ jlifunc 510
+ jlifunc 511
+ jlifunc 512
+ jlifunc 513
+ jlifunc 514
+ jlifunc 515
+ jlifunc 516
+ jlifunc 517
+ jlifunc 518
+ jlifunc 519
+ jlifunc 520
+ jlifunc 521
+ jlifunc 522
+ jlifunc 523
+ jlifunc 524
+ jlifunc 525
+ jlifunc 526
+ jlifunc 527
+ jlifunc 528
+ jlifunc 529
+ jlifunc 530
+ jlifunc 531
+ jlifunc 532
+ jlifunc 533
+ jlifunc 534
+ jlifunc 535
+ jlifunc 536
+ jlifunc 537
+ jlifunc 538
+ jlifunc 539
+ jlifunc 540
+ jlifunc 541
+ jlifunc 542
+ jlifunc 543
+ jlifunc 544
+ jlifunc 545
+ jlifunc 546
+ jlifunc 547
+ jlifunc 548
+ jlifunc 549
+ jlifunc 550
+ jlifunc 551
+ jlifunc 552
+ jlifunc 553
+ jlifunc 554
+ jlifunc 555
+ jlifunc 556
+ jlifunc 557
+ jlifunc 558
+ jlifunc 559
+ jlifunc 560
+ jlifunc 561
+ jlifunc 562
+ jlifunc 563
+ jlifunc 564
+ jlifunc 565
+ jlifunc 566
+ jlifunc 567
+ jlifunc 568
+ jlifunc 569
+ jlifunc 570
+ jlifunc 571
+ jlifunc 572
+ jlifunc 573
+ jlifunc 574
+ jlifunc 575
+ jlifunc 576
+ jlifunc 577
+ jlifunc 578
+ jlifunc 579
+ jlifunc 580
+ jlifunc 581
+ jlifunc 582
+ jlifunc 583
+ jlifunc 584
+ jlifunc 585
+ jlifunc 586
+ jlifunc 587
+ jlifunc 588
+ jlifunc 589
+ jlifunc 590
+ jlifunc 591
+ jlifunc 592
+ jlifunc 593
+ jlifunc 594
+ jlifunc 595
+ jlifunc 596
+ jlifunc 597
+ jlifunc 598
+ jlifunc 599
+ jlifunc 600
+ jlifunc 601
+ jlifunc 602
+ jlifunc 603
+ jlifunc 604
+ jlifunc 605
+ jlifunc 606
+ jlifunc 607
+ jlifunc 608
+ jlifunc 609
+ jlifunc 610
+ jlifunc 611
+ jlifunc 612
+ jlifunc 613
+ jlifunc 614
+ jlifunc 615
+ jlifunc 616
+ jlifunc 617
+ jlifunc 618
+ jlifunc 619
+ jlifunc 620
+ jlifunc 621
+ jlifunc 622
+ jlifunc 623
+ jlifunc 624
+ jlifunc 625
+ jlifunc 626
+ jlifunc 627
+ jlifunc 628
+ jlifunc 629
+ jlifunc 630
+ jlifunc 631
+ jlifunc 632
+ jlifunc 633
+ jlifunc 634
+ jlifunc 635
+ jlifunc 636
+ jlifunc 637
+ jlifunc 638
+ jlifunc 639
+ jlifunc 640
+ jlifunc 641
+ jlifunc 642
+ jlifunc 643
+ jlifunc 644
+ jlifunc 645
+ jlifunc 646
+ jlifunc 647
+ jlifunc 648
+ jlifunc 649
+ jlifunc 650
+ jlifunc 651
+ jlifunc 652
+ jlifunc 653
+ jlifunc 654
+ jlifunc 655
+ jlifunc 656
+ jlifunc 657
+ jlifunc 658
+ jlifunc 659
+ jlifunc 660
+ jlifunc 661
+ jlifunc 662
+ jlifunc 663
+ jlifunc 664
+ jlifunc 665
+ jlifunc 666
+ jlifunc 667
+ jlifunc 668
+ jlifunc 669
+ jlifunc 670
+ jlifunc 671
+ jlifunc 672
+ jlifunc 673
+ jlifunc 674
+ jlifunc 675
+ jlifunc 676
+ jlifunc 677
+ jlifunc 678
+ jlifunc 679
+ jlifunc 680
+ jlifunc 681
+ jlifunc 682
+ jlifunc 683
+ jlifunc 684
+ jlifunc 685
+ jlifunc 686
+ jlifunc 687
+ jlifunc 688
+ jlifunc 689
+ jlifunc 690
+ jlifunc 691
+ jlifunc 692
+ jlifunc 693
+ jlifunc 694
+ jlifunc 695
+ jlifunc 696
+ jlifunc 697
+ jlifunc 698
+ jlifunc 699
+ jlifunc 700
+ jlifunc 701
+ jlifunc 702
+ jlifunc 703
+ jlifunc 704
+ jlifunc 705
+ jlifunc 706
+ jlifunc 707
+ jlifunc 708
+ jlifunc 709
+ jlifunc 710
+ jlifunc 711
+ jlifunc 712
+ jlifunc 713
+ jlifunc 714
+ jlifunc 715
+ jlifunc 716
+ jlifunc 717
+ jlifunc 718
+ jlifunc 719
+ jlifunc 720
+ jlifunc 721
+ jlifunc 722
+ jlifunc 723
+ jlifunc 724
+ jlifunc 725
+ jlifunc 726
+ jlifunc 727
+ jlifunc 728
+ jlifunc 729
+ jlifunc 730
+ jlifunc 731
+ jlifunc 732
+ jlifunc 733
+ jlifunc 734
+ jlifunc 735
+ jlifunc 736
+ jlifunc 737
+ jlifunc 738
+ jlifunc 739
+ jlifunc 740
+ jlifunc 741
+ jlifunc 742
+ jlifunc 743
+ jlifunc 744
+ jlifunc 745
+ jlifunc 746
+ jlifunc 747
+ jlifunc 748
+ jlifunc 749
+ jlifunc 750
+ jlifunc 751
+ jlifunc 752
+ jlifunc 753
+ jlifunc 754
+ jlifunc 755
+ jlifunc 756
+ jlifunc 757
+ jlifunc 758
+ jlifunc 759
+ jlifunc 760
+ jlifunc 761
+ jlifunc 762
+ jlifunc 763
+ jlifunc 764
+ jlifunc 765
+ jlifunc 766
+ jlifunc 767
+ jlifunc 768
+ jlifunc 769
+ jlifunc 770
+ jlifunc 771
+ jlifunc 772
+ jlifunc 773
+ jlifunc 774
+ jlifunc 775
+ jlifunc 776
+ jlifunc 777
+ jlifunc 778
+ jlifunc 779
+ jlifunc 780
+ jlifunc 781
+ jlifunc 782
+ jlifunc 783
+ jlifunc 784
+ jlifunc 785
+ jlifunc 786
+ jlifunc 787
+ jlifunc 788
+ jlifunc 789
+ jlifunc 790
+ jlifunc 791
+ jlifunc 792
+ jlifunc 793
+ jlifunc 794
+ jlifunc 795
+ jlifunc 796
+ jlifunc 797
+ jlifunc 798
+ jlifunc 799
+ jlifunc 800
+ jlifunc 801
+ jlifunc 802
+ jlifunc 803
+ jlifunc 804
+ jlifunc 805
+ jlifunc 806
+ jlifunc 807
+ jlifunc 808
+ jlifunc 809
+ jlifunc 810
+ jlifunc 811
+ jlifunc 812
+ jlifunc 813
+ jlifunc 814
+ jlifunc 815
+ jlifunc 816
+ jlifunc 817
+ jlifunc 818
+ jlifunc 819
+ jlifunc 820
+ jlifunc 821
+ jlifunc 822
+ jlifunc 823
+ jlifunc 824
+ jlifunc 825
+ jlifunc 826
+ jlifunc 827
+ jlifunc 828
+ jlifunc 829
+ jlifunc 830
+ jlifunc 831
+ jlifunc 832
+ jlifunc 833
+ jlifunc 834
+ jlifunc 835
+ jlifunc 836
+ jlifunc 837
+ jlifunc 838
+ jlifunc 839
+ jlifunc 840
+ jlifunc 841
+ jlifunc 842
+ jlifunc 843
+ jlifunc 844
+ jlifunc 845
+ jlifunc 846
+ jlifunc 847
+ jlifunc 848
+ jlifunc 849
+ jlifunc 850
+ jlifunc 851
+ jlifunc 852
+ jlifunc 853
+ jlifunc 854
+ jlifunc 855
+ jlifunc 856
+ jlifunc 857
+ jlifunc 858
+ jlifunc 859
+ jlifunc 860
+ jlifunc 861
+ jlifunc 862
+ jlifunc 863
+ jlifunc 864
+ jlifunc 865
+ jlifunc 866
+ jlifunc 867
+ jlifunc 868
+ jlifunc 869
+ jlifunc 870
+ jlifunc 871
+ jlifunc 872
+ jlifunc 873
+ jlifunc 874
+ jlifunc 875
+ jlifunc 876
+ jlifunc 877
+ jlifunc 878
+ jlifunc 879
+ jlifunc 880
+ jlifunc 881
+ jlifunc 882
+ jlifunc 883
+ jlifunc 884
+ jlifunc 885
+ jlifunc 886
+ jlifunc 887
+ jlifunc 888
+ jlifunc 889
+ jlifunc 890
+ jlifunc 891
+ jlifunc 892
+ jlifunc 893
+ jlifunc 894
+ jlifunc 895
+ jlifunc 896
+ jlifunc 897
+ jlifunc 898
+ jlifunc 899
+ jlifunc 900
+ jlifunc 901
+ jlifunc 902
+ jlifunc 903
+ jlifunc 904
+ jlifunc 905
+ jlifunc 906
+ jlifunc 907
+ jlifunc 908
+ jlifunc 909
+ jlifunc 910
+ jlifunc 911
+ jlifunc 912
+ jlifunc 913
+ jlifunc 914
+ jlifunc 915
+ jlifunc 916
+ jlifunc 917
+ jlifunc 918
+ jlifunc 919
+ jlifunc 920
+ jlifunc 921
+ jlifunc 922
+ jlifunc 923
+ jlifunc 924
+ jlifunc 925
+ jlifunc 926
+ jlifunc 927
+ jlifunc 928
+ jlifunc 929
+ jlifunc 930
+ jlifunc 931
+ jlifunc 932
+ jlifunc 933
+ jlifunc 934
+ jlifunc 935
+ jlifunc 936
+ jlifunc 937
+ jlifunc 938
+ jlifunc 939
+ jlifunc 940
+ jlifunc 941
+ jlifunc 942
+ jlifunc 943
+ jlifunc 944
+ jlifunc 945
+ jlifunc 946
+ jlifunc 947
+ jlifunc 948
+ jlifunc 949
+ jlifunc 950
+ jlifunc 951
+ jlifunc 952
+ jlifunc 953
+ jlifunc 954
+ jlifunc 955
+ jlifunc 956
+ jlifunc 957
+ jlifunc 958
+ jlifunc 959
+ jlifunc 960
+ jlifunc 961
+ jlifunc 962
+ jlifunc 963
+ jlifunc 964
+ jlifunc 965
+ jlifunc 966
+ jlifunc 967
+ jlifunc 968
+ jlifunc 969
+ jlifunc 970
+ jlifunc 971
+ jlifunc 972
+ jlifunc 973
+ jlifunc 974
+ jlifunc 975
+ jlifunc 976
+ jlifunc 977
+ jlifunc 978
+ jlifunc 979
+ jlifunc 980
+ jlifunc 981
+ jlifunc 982
+ jlifunc 983
+ jlifunc 984
+ jlifunc 985
+ jlifunc 986
+ jlifunc 987
+ jlifunc 988
+ jlifunc 989
+ jlifunc 990
+ jlifunc 991
+ jlifunc 992
+ jlifunc 993
+ jlifunc 994
+ jlifunc 995
+ jlifunc 996
+ jlifunc 997
+ jlifunc 998
+ jlifunc 999
+ jlifunc 1000
+ jlifunc 1001
+ jlifunc 1002
+ jlifunc 1003
+ jlifunc 1004
+ jlifunc 1005
+ jlifunc 1006
+ jlifunc 1007
+ jlifunc 1008
+ jlifunc 1009
+ jlifunc 1010
+ jlifunc 1011
+ jlifunc 1012
+ jlifunc 1013
+ jlifunc 1014
+ jlifunc 1015
+ jlifunc 1016
+ jlifunc 1017
+ jlifunc 1018
+ jlifunc 1019
+ jlifunc 1020
+ jlifunc 1021
+ jlifunc 1022
+ jlifunc 1023
+ jlifunc 1024
+ jlifunc 1025
diff --git a/ld/testsuite/ld-arc/jli-script.ld b/ld/testsuite/ld-arc/jli-script.ld
new file mode 100644
index 0000000..fdb9e90
--- /dev/null
+++ b/ld/testsuite/ld-arc/jli-script.ld
@@ -0,0 +1,20 @@
+/* Default linker script, for normal executables. */
+OUTPUT_FORMAT("elf32-littlearc", "elf32-bigarc",
+ "elf32-littlearc")
+
+OUTPUT_ARCH(arc)
+ENTRY(__start)
+
+SECTIONS
+{
+ /* Read-only sections, merged into text segment: */
+ PROVIDE (__start = 0x10000);
+ . = 0x10000 + SIZEOF_HEADERS;
+
+ .text : {*(.text .stub .text.*)} =0
+ .jlitab : {jlitab*.o(.jlitab*) *(.jlitab*) }
+ .tdata : {.tdata = .; *(.tdata .tdata.* .gnu.linkonce.td.*) }
+ .tbss : {.tbss = .; *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
+
+ /DISCARD/ : { *(.note.GNU-stack) }
+}
diff --git a/ld/testsuite/ld-arc/jli-simple.dd b/ld/testsuite/ld-arc/jli-simple.dd
new file mode 100644
index 0000000..cea0194
--- /dev/null
+++ b/ld/testsuite/ld-arc/jli-simple.dd
@@ -0,0 +1,26 @@
+
+.*: file format .*
+architecture: ARCv2, flags 0x00000113:
+HAS_RELOC, EXEC_P, HAS_SYMS, D_PAGED
+start address 0x00010000
+
+
+Disassembly of section .text:
+
+00010054 <test>:
+ 10054: 5800 jli_s 0
+ 10056: 5801 jli_s 0x1
+
+00010058 <foo>:
+ 10058: 2000 0000 add r0,r0,r0
+
+0001005c <bar>:
+ 1005c: 2100 0080 add r0,r1,r2
+
+Disassembly of section .jlitab:
+
+00010060 <__jli.foo>:
+ 10060: 07f9 ffcf b 10058 <foo>
+
+00010064 <__jli.bar>:
+ 10064: 07f9 ffcf b 1005c <bar>
diff --git a/ld/testsuite/ld-arc/jli-simple.rd b/ld/testsuite/ld-arc/jli-simple.rd
new file mode 100644
index 0000000..13b85bb
--- /dev/null
+++ b/ld/testsuite/ld-arc/jli-simple.rd
@@ -0,0 +1,10 @@
+
+Relocation section '\.rela\.text' .*:
+ Offset +Info +Type +Sym.Value +Sym. Name \+ Addend
+00010054 [0-9a-f]+ R_ARC_JLI_SECTOFF 00010060 __jli\.foo \+ 0
+00010056 [0-9a-f]+ R_ARC_JLI_SECTOFF 00010064 __jli\.bar \+ 0
+
+Relocation section '\.rela\.jlitab' .*:
+ Offset +Info +Type +Sym.Value +Sym. Name \+ Addend
+00010060 [0-9a-f]+ R_ARC_S25H_PCREL 00010054 .text \+ 4
+00010064 [0-9a-f]+ R_ARC_S25H_PCREL 00010054 .text \+ 8
diff --git a/ld/testsuite/ld-arc/jli-simple.s b/ld/testsuite/ld-arc/jli-simple.s
new file mode 100644
index 0000000..660fa05
--- /dev/null
+++ b/ld/testsuite/ld-arc/jli-simple.s
@@ -0,0 +1,24 @@
+ .cpu em4
+ .text
+ .align 4
+test:
+ jli_s __jli.foo
+ jli_s __jli.bar
+
+ .align 4
+foo:
+ add r0,r0,r0
+
+ .align 4
+bar:
+ add r0,r1,r2
+
+ .section .jlitab,"axG",%progbits,jli_group,comdat
+ .align 4
+__jli.foo:
+ .weak __jli.foo
+ b @foo
+ .align 4
+__jli.bar:
+ .weak __jli.bar
+ b @bar
diff --git a/ld/testsuite/ld-arc/nps-1b.err b/ld/testsuite/ld-arc/nps-1b.err
index a7d2996..4b13145 100644
--- a/ld/testsuite/ld-arc/nps-1b.err
+++ b/ld/testsuite/ld-arc/nps-1b.err
@@ -1,2 +1,2 @@
-.*\.o\(\.text\+0x0\): CMEM relocation to `foo' is invalid, 16 MSB should be 0x57f0 \(value is 0x56f03000\)
+.*\.o\(\.text\+0\): CMEM relocation to `foo' is invalid, 16 MSB should be 0x57f0 \(value is 0x56f03000\)
#...
diff --git a/ld/testsuite/ld-arc/tls_gd-01.d b/ld/testsuite/ld-arc/tls_gd-01.d
index e789157..1994385 100644
--- a/ld/testsuite/ld-arc/tls_gd-01.d
+++ b/ld/testsuite/ld-arc/tls_gd-01.d
@@ -1,10 +1,10 @@
#source: tls_gd-01.s
#as: -mcpu=arc700
-#ld: -shared
+#ld: -shared --hash-style=sysv
#objdump: -d
#xfail: arc*-*-elf*
-[^:]+: file format elf32-littlearc
+[^:]+: file format elf32-.*arc
Disassembly of section \.text:
diff --git a/ld/testsuite/ld-arc/tls_ie-01.d b/ld/testsuite/ld-arc/tls_ie-01.d
index 62b3932..e4af7c2 100644
--- a/ld/testsuite/ld-arc/tls_ie-01.d
+++ b/ld/testsuite/ld-arc/tls_ie-01.d
@@ -4,7 +4,7 @@
#objdump: -s -j .got
#xfail: arc*-*-elf*
-[^:]+: file format elf32-littlearc
+[^:]+: file format elf32-.*arc
Contents of section \.got:
- [0-9a-f]+ 08000000 0c000000 +.+
+ [0-9a-f]+ [08]+ [0c]+ +.+
diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp
index b15316c..3b33522 100644
--- a/ld/testsuite/ld-arm/arm-elf.exp
+++ b/ld/testsuite/ld-arm/arm-elf.exp
@@ -21,23 +21,24 @@
if {[istarget "arm-*-vxworks"]} {
set armvxworkstests {
- {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" ""
+ {"VxWorks shared library test 1"
+ "-shared -Tvxworks1.ld --hash-style=sysv" ""
"" {vxworks1-lib.s}
{{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
{readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
"libvxworks1.so"}
- {"VxWorks executable test 1 (dynamic)" \
- "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" ""
+ {"VxWorks executable test 1 (dynamic)"
+ "tmpdir/libvxworks1.so -Tvxworks1.ld --hash-style=sysv -q --force-dynamic" ""
"" {vxworks1.s}
{{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
"vxworks1"}
{"VxWorks executable test 2 (dynamic)" \
- "-Tvxworks1.ld -q --force-dynamic" ""
+ "-Tvxworks1.ld --hash-style=sysv -q --force-dynamic" ""
"" {vxworks2.s}
{{readelf --segments vxworks2.sd}}
"vxworks2"}
{"VxWorks executable test 2 (static)"
- "-Tvxworks1.ld" ""
+ "-Tvxworks1.ld --hash-style=sysv" ""
"" {vxworks2.s}
{{readelf --segments vxworks2-static.sd}}
"vxworks2"}
@@ -99,43 +100,57 @@ set armelftests_common_1 {
{"arm-rel31" "-static -T arm.ld" "" "" {arm-rel31.s}
{{objdump -s arm-rel31.d}}
"arm-rel31"}
- {"arm-rel32" "-shared -T arm-dyn.ld" "" "" {arm-rel32.s}
+ {"arm-rel32" "-shared -T arm-dyn.ld --hash-style=sysv" "" "" {arm-rel32.s}
{{objdump -Rsj.data arm-rel32.d}}
"arm-rel32"}
{"arm-call" "--no-fix-arm1176 -static -T arm.ld" "" "-meabi=4" {arm-call1.s arm-call2.s}
{{objdump -d arm-call.d}}
"arm-call"}
- {"TLS shared library" "-shared -T arm-lib.ld" "" "" {tls-lib.s}
+ {"TLS shared library" "-shared -T arm-lib.ld --hash-style=sysv" ""
+ "" {tls-lib.s}
{{objdump -fdw tls-lib.d} {objdump -Rw tls-lib.r}}
"tls-lib.so"}
- {"TLS dynamic application" "-T arm-dyn.ld tmpdir/tls-lib.so" "" "" {tls-app.s}
+ {"TLS dynamic application"
+ "-T arm-dyn.ld --hash-style=sysv tmpdir/tls-lib.so" "" "" {tls-app.s}
{{objdump -fdw tls-app.d} {objdump -Rw tls-app.r}}
"tls-app"}
- {"TLS gnu shared library got" "-shared -T arm-dyn.ld" "" "" {tls-gdesc-got.s}
+ {"TLS gnu shared library got"
+ "-shared -T arm-dyn.ld --hash-style=sysv" "" "" {tls-gdesc-got.s}
{{objdump "-fDR -j .got" tls-gdesc-got.d}}
"tls-lib2-got.so"}
- {"TLS gnu GD to IE relaxation" "-static -T arm-dyn.ld" "" "" {tls-gdierelax.s}
+ {"TLS gnu GD to IE relaxation"
+ "-static -T arm-dyn.ld --hash-style=sysv" "" "" {tls-gdierelax.s}
{{objdump -fdw tls-gdierelax.d}}
"tls-app-rel-ie"}
- {"TLS gnu GD to IE shared relaxation" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" "" {tls-gdierelax2.s}
+ {"TLS gnu GD to IE shared relaxation"
+ "--no-fix-arm1176 -shared -T arm-dyn.ld --hash-style=sysv" ""
+ "" {tls-gdierelax2.s}
{{objdump -fdw tls-gdierelax2.d}}
"tls-app-rel-ie2"}
- {"TLS gnu GD to LE relaxation" "-T arm-dyn.ld" "" "" {tls-gdlerelax.s}
+ {"TLS gnu GD to LE relaxation" "-T arm-dyn.ld --hash-style=sysv" ""
+ "" {tls-gdlerelax.s}
{{objdump -fdw tls-gdlerelax.d}}
"tls-app-rel-le"}
- {"TLS mixed models shared lib" "-shared -T arm-dyn.ld" "" "" {tls-mixed.s}
+ {"TLS mixed models shared lib"
+ "-shared -T arm-dyn.ld --hash-style=sysv" "" "" {tls-mixed.s}
{{objdump -Rw tls-mixed.r}}
"tls-mixed.so"}
- {"TLS descseq relaxation" "-T arm-dyn.ld" "" "" {tls-descrelax.s}
+ {"TLS descseq relaxation"
+ "-T arm-dyn.ld --hash-style=sysv" "" "" {tls-descrelax.s}
{{objdump -fdw tls-descrelax.d}}
"tls-descrelax"}
- {"TLS descseq relaxation v7" "-T arm-dyn.ld" "" "" {tls-descrelax-v7.s}
+ {"TLS descseq relaxation v7"
+ "-T arm-dyn.ld --hash-style=sysv" "" "" {tls-descrelax-v7.s}
{{objdump -fdw tls-descrelax-v7.d}}
"tls-descrelax-v7"}
- {"TLS descseq relaxation BE8" "-T arm-dyn.ld -EB --be8" "" "-mbig-endian" {tls-descrelax-be8.s}
+ {"TLS descseq relaxation BE8"
+ "-T arm-dyn.ld --hash-style=sysv -EB --be8" ""
+ "-mbig-endian" {tls-descrelax-be8.s}
{{objdump -fdw tls-descrelax-be8.d}}
"tls-descrelax-be8"}
- {"TLS descseq relaxation BE32" "-T arm-dyn.ld -EB" "" "-mbig-endian" {tls-descrelax-be32.s}
+ {"TLS descseq relaxation BE32"
+ "-T arm-dyn.ld --hash-style=sysv -EB" ""
+ "-mbig-endian" {tls-descrelax-be32.s}
{{objdump -fdw tls-descrelax-be32.d}}
"tls-descrelax-be32"}
{"TLS local PIC symbol static link" "-T arm.ld" "" "" {tls-local-static.s}
@@ -229,7 +244,7 @@ set armelftests_common_3 {
{"EABI ABI flags ld -r" "-r" "" "-mfloat-abi=soft -meabi=5" {eabi-soft-float.s}
{{readelf -h eabi-soft-float-r.d}}
"eabi-soft-float-r.o"}
- {"PC-relative in -shared" "-shared" ""
+ {"PC-relative in -shared" "-shared --hash-style=sysv" ""
"" {pcrel-shared.s}
{{readelf -dr pcrel-shared.rd}}
"pcrel-shared.so"}
@@ -267,7 +282,8 @@ set armelftests_nonacl {
{"jump19" "-static -T arm.ld" "" "" {jump19.s}
{{objdump -dr jump19.d}}
"jump19"}
- {"Thumb and -gc-sections" "-shared -T arm-dyn.ld" "" "" {gc-thumb-lib.s}
+ {"Thumb and -gc-sections"
+ "-shared -T arm-dyn.ld --hash-style=sysv" "" "" {gc-thumb-lib.s}
{}
"gc-thumb-lib.so"}
{"Thumb and -gc-sections" "-pie -T arm.ld -gc-sections tmpdir/gc-thumb-lib.so" "" "" {gc-thumb.s}
@@ -294,32 +310,42 @@ set armelftests_nonacl {
{"Non-pcrel function reference" "tmpdir/arm-lib.so" "" "" {arm-app-abs32.s}
{{objdump -fdw arm-app-abs32.d} {objdump -Rw arm-app-abs32.r}}
"arm-app-abs32"}
- {"Thumb shared library with ARM entry points" "-shared -T arm-lib.ld" "" "-mthumb-interwork"
- {mixed-lib.s}
+ {"Thumb shared library with ARM entry points"
+ "-shared -T arm-lib.ld --hash-style=sysv" ""
+ "-mthumb-interwork" {mixed-lib.s}
{{objdump -fdw armthumb-lib.d} {readelf -Ds armthumb-lib.sym}}
"armthumb-lib.so"}
- {"Mixed ARM/Thumb shared library" "-shared -T arm-lib.ld -use-blx" "" ""
- {mixed-lib.s}
+ {"Mixed ARM/Thumb shared library"
+ "-shared -T arm-lib.ld --hash-style=sysv -use-blx" ""
+ "" {mixed-lib.s}
{{objdump -fdw mixed-lib.d} {objdump -Rw mixed-lib.r}
{readelf -Ds mixed-lib.sym}}
"mixed-lib.so"}
- {"Mixed ARM/Thumb dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld" "" ""
- {mixed-app.s}
+ {"Mixed ARM/Thumb dynamic application"
+ "tmpdir/mixed-lib.so -T arm-dyn.ld --hash-style=sysv" ""
+ "" {mixed-app.s}
{{objdump -fdw mixed-app.d} {objdump -Rw mixed-app.r}
{readelf -Ds mixed-app.sym}}
"mixed-app"}
- {"Mixed ARM/Thumb arch5 dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" "" ""
- {mixed-app.s}
+ {"Mixed ARM/Thumb arch5 dynamic application"
+ "tmpdir/mixed-lib.so -T arm-dyn.ld --hash-style=sysv --use-blx" ""
+ "" {mixed-app.s}
{{objdump -fdw mixed-app-v5.d} {objdump -Rw mixed-app.r}
{readelf -Ds mixed-app.sym}}
"mixed-app-v5"}
- {"Using Thumb lib by another lib" "-shared tmpdir/mixed-lib.so" "" "" {use-thumb-lib.s}
+ {"Using Thumb lib by another lib"
+ "-shared --hash-style=sysv tmpdir/mixed-lib.so" ""
+ "" {use-thumb-lib.s}
{{readelf -Ds use-thumb-lib.sym}}
"use-thumb-lib.so"}
- {"TLS gnu shared library inlined trampoline" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" "" {tls-descseq.s}
+ {"TLS gnu shared library inlined trampoline"
+ "--no-fix-arm1176 -shared -T arm-dyn.ld --hash-style=sysv" ""
+ "" {tls-descseq.s}
{{objdump -fdw tls-descseq.d} {objdump -Rw tls-descseq.r}}
"tls-lib2inline.so"}
- {"TLS shared library gdesc local" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" "" {tls-lib-loc.s}
+ {"TLS shared library gdesc local"
+ "--no-fix-arm1176 -shared -T arm-dyn.ld --hash-style=sysv" ""
+ "" {tls-lib-loc.s}
{{objdump -fdw tls-lib-loc.d} {objdump -Rw tls-lib-loc.r}}
"tls-lib-loc.so"}
}
@@ -555,30 +581,35 @@ set armeabitests_nonacl {
{{objdump -d farcall-mix2.d}}
"farcall-mix2"}
- {"Mixed ARM/Thumb dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" "" ""
- {farcall-mixed-app.s}
+ {"Mixed ARM/Thumb dynamic application with farcalls"
+ "tmpdir/mixed-lib.so -T arm-dyn.ld --hash-style=sysv --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" ""
+ "" {farcall-mixed-app.s}
{{objdump -fdw farcall-mixed-app.d} {objdump -Rw farcall-mixed-app.r}
{readelf -Ds farcall-mixed-app.sym}}
"farcall-mixed-app"}
- {"Mixed ARM/Thumb arch5 dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" "" ""
- {farcall-mixed-app.s}
+ {"Mixed ARM/Thumb arch5 dynamic application with farcalls"
+ "tmpdir/mixed-lib.so -T arm-dyn.ld --hash-style=sysv --use-blx --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" ""
+ "" {farcall-mixed-app.s}
{{objdump -fdw farcall-mixed-app-v5.d} {objdump -Rw farcall-mixed-app.r}
{readelf -Ds farcall-mixed-app.sym}}
"farcall-mixed-app-v5"}
- {"Mixed ARM/Thumb2 dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --section-start .mid_thumb=0x10081c0 --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" "" ""
- {farcall-mixed-app2.s}
+ {"Mixed ARM/Thumb2 dynamic application with farcalls"
+ "tmpdir/mixed-lib.so -T arm-dyn.ld --hash-style=sysv --section-start .mid_thumb=0x10081c0 --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" ""
+ "" {farcall-mixed-app2.s}
{{objdump -fdw farcall-mixed-app2.d} {objdump -Rw farcall-mixed-app2.r}
{readelf -Ds farcall-mixed-app2.sym}}
"farcall-mixed-app2"}
- {"Mixed ARM/Thumb shared library with long branches (v4t)" "-shared -T arm-lib.ld" "" "-march=armv4t"
- {farcall-mixed-lib1.s farcall-mixed-lib2.s}
+ {"Mixed ARM/Thumb shared library with long branches (v4t)"
+ "-shared -T arm-lib.ld --hash-style=sysv" ""
+ "-march=armv4t" {farcall-mixed-lib1.s farcall-mixed-lib2.s}
{{objdump -fdw farcall-mixed-lib-v4t.d}}
"farcall-mixed-lib.so"}
- {"Mixed ARM/Thumb shared library with long branches (v5t)" "--no-fix-arm1176 -shared -T arm-lib.ld" "" "-march=armv5t"
- {farcall-mixed-lib1.s farcall-mixed-lib2.s}
+ {"Mixed ARM/Thumb shared library with long branches (v5t)"
+ "--no-fix-arm1176 -shared -T arm-lib.ld --hash-style=sysv" ""
+ "-march=armv5t" {farcall-mixed-lib1.s farcall-mixed-lib2.s}
{{objdump -fdw farcall-mixed-lib.d}}
"farcall-mixed-lib.so"}
@@ -773,19 +804,29 @@ set armeabitests_nonacl {
{{objdump -d farcall-group-limit.d}}
"farcall-group-limit"}
- {"TLS gnu shared library" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" "" {tls-gdesc.s}
+ {"TLS gnu shared library"
+ "--no-fix-arm1176 -shared -T arm-dyn.ld --hash-style=sysv" ""
+ "" {tls-gdesc.s}
{{objdump -fdw tls-gdesc.d} {objdump -Rw tls-gdesc.r}}
"tls-lib2.so"}
- {"TLS gnu shared library non-lazy" "-z now -shared -T arm-dyn.ld" "" "" {tls-gdesc.s}
+ {"TLS gnu shared library non-lazy"
+ "-z now -shared -T arm-dyn.ld --hash-style=sysv" ""
+ "" {tls-gdesc.s}
{{readelf "-x .got" tls-gdesc-nlazy.g}}
"tls-lib2-nlazy.so"}
- {"TLS long plt library" "-shared -T arm-dyn.ld --section-start .foo=0x4001000" "" "" {tls-longplt-lib.s}
+ {"TLS long plt library"
+ "-shared -T arm-dyn.ld --hash-style=sysv --section-start .foo=0x4001000" ""
+ "" {tls-longplt-lib.s}
{{objdump -fdw tls-longplt-lib.d}}
"tls-longplt-lib.so"}
- {"TLS long plt" "-T arm-dyn.ld --section-start .foo=0x4001000 tmpdir/tls-longplt-lib.so" "" "" {tls-longplt.s}
+ {"TLS long plt"
+ "-T arm-dyn.ld --hash-style=sysv --section-start .foo=0x4001000 tmpdir/tls-longplt-lib.so" ""
+ "" {tls-longplt.s}
{{objdump -fdw tls-longplt.d}}
"tls-longplt"}
- {"TLS thumb1" "-shared -T arm-dyn.ld --section-start .foo=0x4001000" "" "" {tls-thumb1.s}
+ {"TLS thumb1"
+ "-shared -T arm-dyn.ld --hash-style=sysv --section-start .foo=0x4001000" ""
+ "" {tls-thumb1.s}
{{objdump -fdw tls-thumb1.d}}
"tls-thumb1"}
{"Cortex-A8 erratum fix, b.w"
@@ -867,7 +908,7 @@ set armeabitests_nonacl {
{{objdump -dr cortex-a8-fix-blx-plt.d}}
"cortex-a8-fix-blx-plt"}
{"Cortex-A8 erratum fix, relocate bl.w to PLT"
- "-EL --section-start=.plt=0x8e00 -Ttext=0x8f00 --fix-cortex-a8 -shared" ""
+ "-EL --section-start=.plt=0x8e00 -Ttext=0x8f00 --fix-cortex-a8 -shared --hash-style=sysv" ""
"-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bl-rel.s}
{{objdump -dr cortex-a8-fix-bl-rel-plt.d}}
"cortex-a8-fix-bl-rel-thumb"}
@@ -962,14 +1003,17 @@ set armeabitests_nonacl {
"" {long-plt-format.s}
{{objdump "-d -j .plt" long-plt-format.d}}
"long-plt-format"}
- {"IFUNC and TLS descriptor shared library" "-shared -T arm-lib.ld --version-script=ifunc-gdesc.ver" "" "" {ifunc-gdesc.s}
+ {"IFUNC and TLS descriptor shared library"
+ "-shared -T arm-lib.ld --hash-style=sysv --version-script=ifunc-gdesc.ver" ""
+ "" {ifunc-gdesc.s}
{{objdump "-Rw" ifunc-gdesc.r}}
"ifunc-gdesc.so"}
{"arm-pic-veneer" "-static -T arm.ld --pic-veneer" "" "" {arm-pic-veneer.s}
{{objdump -d arm-pic-veneer.d}}
"arm-pic-veneer"}
- {"Preempt Thumb symbol" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" "" ""
- {preempt-app.s}
+ {"Preempt Thumb symbol"
+ "tmpdir/mixed-lib.so -T arm-dyn.ld --hash-style=sysv --use-blx" ""
+ "" {preempt-app.s}
{{readelf -Ds preempt-app.sym}}
"preempt-app"}
}
diff --git a/ld/testsuite/ld-cris/dso-pltdis1.d b/ld/testsuite/ld-cris/dso-pltdis1.d
index e2c0f93..241328c 100644
--- a/ld/testsuite/ld-cris/dso-pltdis1.d
+++ b/ld/testsuite/ld-cris/dso-pltdis1.d
@@ -2,7 +2,7 @@
#source: dsov32-2.s
#source: dsofn4g.s
#as: --pic --no-underscore --march=v32 --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#objdump: -d -R
# Check dissassembly of the .plt section, specifically the synthetic
diff --git a/ld/testsuite/ld-cris/dso-pltdis2.d b/ld/testsuite/ld-cris/dso-pltdis2.d
index 24da97a..1acea4e 100644
--- a/ld/testsuite/ld-cris/dso-pltdis2.d
+++ b/ld/testsuite/ld-cris/dso-pltdis2.d
@@ -2,7 +2,7 @@
#source: dsov32-2.s
#source: dsofng.s
#as: --pic --no-underscore --march=v32 --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#objdump: -d
# Complement to dso-pltdis1.d; merging the other .got.plt entry.
diff --git a/ld/testsuite/ld-cris/dso12-pltdis.d b/ld/testsuite/ld-cris/dso12-pltdis.d
index 187730b..0bfb846 100644
--- a/ld/testsuite/ld-cris/dso12-pltdis.d
+++ b/ld/testsuite/ld-cris/dso12-pltdis.d
@@ -2,7 +2,7 @@
#source: dsov32-1.s
#source: dsov32-2.s
#as: --pic --no-underscore --march=v32 --em=criself
-#ld: --shared -m crislinux -z nocombreloc
+#ld: --shared -m crislinux -z nocombreloc --hash-style=sysv
#objdump: -d
# Check dissassembly of .plt section.
diff --git a/ld/testsuite/ld-cris/expdyn1.d b/ld/testsuite/ld-cris/expdyn1.d
index 51d875d..37cbe4d 100644
--- a/ld/testsuite/ld-cris/expdyn1.d
+++ b/ld/testsuite/ld-cris/expdyn1.d
@@ -1,6 +1,6 @@
#source: expdyn1.s
#as: --no-underscore --em=criself
-#ld: -m crislinux -export-dynamic tmpdir/libdso-1.so
+#ld: -m crislinux -export-dynamic tmpdir/libdso-1.so --hash-style=sysv
#objdump: -T
.*: file format elf32-cris
diff --git a/ld/testsuite/ld-cris/expdyn5.d b/ld/testsuite/ld-cris/expdyn5.d
index 5504534..818ee4f 100644
--- a/ld/testsuite/ld-cris/expdyn5.d
+++ b/ld/testsuite/ld-cris/expdyn5.d
@@ -1,7 +1,7 @@
#source: expdyn1.s
#source: expdref1.s --pic
#as: --no-underscore --em=criself
-#ld: -m crislinux --export-dynamic tmpdir/libdso-1.so
+#ld: -m crislinux --export-dynamic tmpdir/libdso-1.so --hash-style=sysv
#objdump: -s -j .got
# Like expdyn2.d, but testing that the .got contents is correct. There
diff --git a/ld/testsuite/ld-cris/expdyn6.d b/ld/testsuite/ld-cris/expdyn6.d
index 43d04ff..cf4a578 100644
--- a/ld/testsuite/ld-cris/expdyn6.d
+++ b/ld/testsuite/ld-cris/expdyn6.d
@@ -2,7 +2,7 @@
#source: expdref1.s --pic
#source: euwref1.s --pic
#as: --no-underscore --em=criself
-#ld: -m crislinux --export-dynamic tmpdir/libdso-1.so
+#ld: -m crislinux --export-dynamic tmpdir/libdso-1.so --hash-style=sysv
#objdump: -s -j .got
# Like expdyn5.d, weakly referencing symbols.
diff --git a/ld/testsuite/ld-cris/expdyn7.d b/ld/testsuite/ld-cris/expdyn7.d
index 7bd91e0..6028343 100644
--- a/ld/testsuite/ld-cris/expdyn7.d
+++ b/ld/testsuite/ld-cris/expdyn7.d
@@ -2,7 +2,7 @@
#source: expdref1.s --pic
#source: comref1.s --pic
#as: --no-underscore --em=criself
-#ld: -m crislinux --export-dynamic tmpdir/libdso-1.so
+#ld: -m crislinux --export-dynamic tmpdir/libdso-1.so --hash-style=sysv
#objdump: -s -j .got
# Like expdyn5.d, referencing COMMON symbols.
diff --git a/ld/testsuite/ld-cris/gotplt1.d b/ld/testsuite/ld-cris/gotplt1.d
index 8fcb7b5..0f5472f 100644
--- a/ld/testsuite/ld-cris/gotplt1.d
+++ b/ld/testsuite/ld-cris/gotplt1.d
@@ -2,7 +2,7 @@
#source: dsofnf2.s
#source: gotrel1.s
#as: --pic --no-underscore --em=criself
-#ld: -m crislinux tmpdir/libdso-1.so
+#ld: -m crislinux tmpdir/libdso-1.so --hash-style=sysv
#objdump: -sR
# Make sure we don't merge a PLT-specific entry
diff --git a/ld/testsuite/ld-cris/gotplt2.d b/ld/testsuite/ld-cris/gotplt2.d
index 48f1413..3a28111 100644
--- a/ld/testsuite/ld-cris/gotplt2.d
+++ b/ld/testsuite/ld-cris/gotplt2.d
@@ -2,7 +2,7 @@
#source: dsofnf.s
#source: gotrel1.s
#as: --pic --no-underscore --em=criself
-#ld: -shared -m crislinux -z nocombreloc
+#ld: -shared -m crislinux -z nocombreloc --hash-style=sysv
#objdump: -sR
# Make sure we merge a PLT-specific entry (usually
diff --git a/ld/testsuite/ld-cris/gotplt3.d b/ld/testsuite/ld-cris/gotplt3.d
index f4cb4be..727a17c 100644
--- a/ld/testsuite/ld-cris/gotplt3.d
+++ b/ld/testsuite/ld-cris/gotplt3.d
@@ -3,7 +3,7 @@
#source: gotrel1.s
#source: dso-1.s
#as: --pic --no-underscore --em=criself
-#ld: -shared -m crislinux -z nocombreloc
+#ld: -shared -m crislinux -z nocombreloc --hash-style=sysv
#objdump: -sR
# Like gotplt2, but make sure we merge right when we have a
diff --git a/ld/testsuite/ld-cris/hiddef1.d b/ld/testsuite/ld-cris/hiddef1.d
index 0be90a1..0f16b62 100644
--- a/ld/testsuite/ld-cris/hiddef1.d
+++ b/ld/testsuite/ld-cris/hiddef1.d
@@ -1,7 +1,7 @@
#source: gotrel1.s
#source: hiddef1.s
#source: hidrefgotplt1.s
-#ld: -shared -m crislinux
+#ld: -shared -m crislinux --hash-style=sysv
#as: --pic --no-underscore -I$srcdir/$subdir --em=criself
#readelf: -S -s -r
diff --git a/ld/testsuite/ld-cris/libdso-10.d b/ld/testsuite/ld-cris/libdso-10.d
index 43d96bd..83a1464 100644
--- a/ld/testsuite/ld-cris/libdso-10.d
+++ b/ld/testsuite/ld-cris/libdso-10.d
@@ -1,6 +1,6 @@
#source: dso-1.s
#as: --pic --no-underscore --march=v32 --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#objdump: -p -h
# Sanity check; just an empty GOT.
diff --git a/ld/testsuite/ld-cris/libdso-11.d b/ld/testsuite/ld-cris/libdso-11.d
index dc7b75a..b462433 100644
--- a/ld/testsuite/ld-cris/libdso-11.d
+++ b/ld/testsuite/ld-cris/libdso-11.d
@@ -1,7 +1,7 @@
#source: dso-1.s
#source: dsov32-1.s
#as: --pic --no-underscore --march=v32 --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -T
.*: file format elf32-cris
diff --git a/ld/testsuite/ld-cris/libdso-12.d b/ld/testsuite/ld-cris/libdso-12.d
index c8a4f62d..eba3ef4 100644
--- a/ld/testsuite/ld-cris/libdso-12.d
+++ b/ld/testsuite/ld-cris/libdso-12.d
@@ -2,7 +2,7 @@
#source: dsov32-1.s
#source: dsov32-2.s
#as: --pic --no-underscore --march=v32 --em=criself
-#ld: --shared -m crislinux -z nocombreloc
+#ld: --shared -m crislinux -z nocombreloc --hash-style=sysv
#objdump: -s -T
# Check for common DSO contents; load of GOT register, branch to
diff --git a/ld/testsuite/ld-cris/libdso-12b.d b/ld/testsuite/ld-cris/libdso-12b.d
index 87506ed..fb63d84 100644
--- a/ld/testsuite/ld-cris/libdso-12b.d
+++ b/ld/testsuite/ld-cris/libdso-12b.d
@@ -2,7 +2,7 @@
#source: dsov32-1.s
#source: dsov32-2.s
#as: --pic --no-underscore --march=v32 --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -T
# Like libdso-12.d but without -z nocombreloc.
diff --git a/ld/testsuite/ld-cris/libdso-12c.d b/ld/testsuite/ld-cris/libdso-12c.d
index 37eab56..5936956 100644
--- a/ld/testsuite/ld-cris/libdso-12c.d
+++ b/ld/testsuite/ld-cris/libdso-12c.d
@@ -3,7 +3,7 @@
#source: dsov32-2.s
#source: dso-1.s
#as: --pic --no-underscore --march=v32 --em=criself
-#ld: --shared -m crislinux --version-script $srcdir/$subdir/hidedsofns2468
+#ld: --shared -m crislinux --version-script $srcdir/$subdir/hidedsofns2468 --hash-style=sysv
#objdump: -s -T
# Like libdso-12b.d, but dsofn is defined and the two called functions
diff --git a/ld/testsuite/ld-cris/libdso-13.d b/ld/testsuite/ld-cris/libdso-13.d
index 772480e..1ef3cc4 100644
--- a/ld/testsuite/ld-cris/libdso-13.d
+++ b/ld/testsuite/ld-cris/libdso-13.d
@@ -1,7 +1,7 @@
#source: dso-1.s
#source: dsov32-3.s
#as: --pic --no-underscore --march=v32 --em=criself
-#ld: --shared -m crislinux -z nocombreloc --enable-new-dtags
+#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 cd6f4e2..4008946 100644
--- a/ld/testsuite/ld-cris/libdso-13b.d
+++ b/ld/testsuite/ld-cris/libdso-13b.d
@@ -1,7 +1,7 @@
#source: dso-1.s
#source: dsov32-3.s
#as: --pic --no-underscore --march=v32 --em=criself
-#ld: --shared -m crislinux --version-script $srcdir/$subdir/hidedsofns2468
+#ld: --shared -m crislinux --version-script $srcdir/$subdir/hidedsofns2468 --hash-style=sysv
#readelf: -d -r
# Like libdso-13.d, but without -z nocombreloc and with a version
diff --git a/ld/testsuite/ld-cris/libdso-14.d b/ld/testsuite/ld-cris/libdso-14.d
index c0a20e8..b60f5e5 100644
--- a/ld/testsuite/ld-cris/libdso-14.d
+++ b/ld/testsuite/ld-cris/libdso-14.d
@@ -1,7 +1,7 @@
#source: dso-1.s
#source: dsov32-4.s
#as: --pic --no-underscore --march=v32 --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#readelf: -d -r
# Checking that a bsr to a non-PLT-decorated nonvisible function
diff --git a/ld/testsuite/ld-cris/libdso-15.d b/ld/testsuite/ld-cris/libdso-15.d
index ce57e97..61b546b 100644
--- a/ld/testsuite/ld-cris/libdso-15.d
+++ b/ld/testsuite/ld-cris/libdso-15.d
@@ -1,6 +1,6 @@
#source: expdyn2.s
#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
-#ld: --shared -m crislinux --version-script $srcdir/$subdir/expalltst3
+#ld: --shared -m crislinux --version-script $srcdir/$subdir/expalltst3 --hash-style=sysv
#objdump: -s -T
# A DSO that has two versioned symbols, each with a weak alias.
diff --git a/ld/testsuite/ld-cris/libdso-15b.d b/ld/testsuite/ld-cris/libdso-15b.d
index 308b110..61ead56 100644
--- a/ld/testsuite/ld-cris/libdso-15b.d
+++ b/ld/testsuite/ld-cris/libdso-15b.d
@@ -1,6 +1,6 @@
#source: expdref2.s
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux
+#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-1b.d b/ld/testsuite/ld-cris/libdso-1b.d
index 9ad2143..56e5788 100644
--- a/ld/testsuite/ld-cris/libdso-1b.d
+++ b/ld/testsuite/ld-cris/libdso-1b.d
@@ -1,6 +1,6 @@
#source: dso-1b.s
#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
-#ld: --shared -m crislinux --version-script $srcdir/$subdir/hidedsofns2468
+#ld: --shared -m crislinux --version-script $srcdir/$subdir/hidedsofns2468 --hash-style=sysv
#objdump: -T
# Like libdso-1, but export the function as expfn@@TST2 and another
diff --git a/ld/testsuite/ld-cris/libdso-1c.d b/ld/testsuite/ld-cris/libdso-1c.d
index 066d5e2..0588d39 100644
--- a/ld/testsuite/ld-cris/libdso-1c.d
+++ b/ld/testsuite/ld-cris/libdso-1c.d
@@ -1,6 +1,6 @@
#source: expdref1.s
#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
-#ld: --shared -m crislinux
+#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 47721de..a2a0ce5 100644
--- a/ld/testsuite/ld-cris/libdso-1d.d
+++ b/ld/testsuite/ld-cris/libdso-1d.d
@@ -1,7 +1,7 @@
#source: expdref1.s
#source: expdyn1w.s
#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
-#ld: --shared -m crislinux
+#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 aa4a7c8..f04b64b 100644
--- a/ld/testsuite/ld-cris/libdso-2.d
+++ b/ld/testsuite/ld-cris/libdso-2.d
@@ -1,7 +1,7 @@
#source: dso-1.s
#source: dso-2.s
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux --version-script $srcdir/$subdir/hide1
+#ld: --shared -m crislinux --hash-style=sysv --version-script $srcdir/$subdir/hide1
#readelf: -S -s -r
# Use "dsofn" from dso-1 in a GOTPLT reloc, but hide it in a
diff --git a/ld/testsuite/ld-cris/libdso-4.d b/ld/testsuite/ld-cris/libdso-4.d
index b7cc840..3d57395 100644
--- a/ld/testsuite/ld-cris/libdso-4.d
+++ b/ld/testsuite/ld-cris/libdso-4.d
@@ -1,6 +1,6 @@
#source: dso-2.s
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#objdump: -T
# DSO with an undef symbol "dsofn". See undef1.d.
diff --git a/ld/testsuite/ld-cris/pic-gc-72.d b/ld/testsuite/ld-cris/pic-gc-72.d
index 7e72752..a471da5 100644
--- a/ld/testsuite/ld-cris/pic-gc-72.d
+++ b/ld/testsuite/ld-cris/pic-gc-72.d
@@ -2,7 +2,7 @@
#source: expdref1.s
#source: expdyn1.s
#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
-#ld: --shared -m crislinux --gc-sections
+#ld: --shared -m crislinux --gc-sections --hash-style=sysv
#objdump: -s -t -R -p -T
# Exercise PIC relocs through changed GC sweep function.
diff --git a/ld/testsuite/ld-cris/pic-gc-73.d b/ld/testsuite/ld-cris/pic-gc-73.d
index 1ef22de..8fd7f38 100644
--- a/ld/testsuite/ld-cris/pic-gc-73.d
+++ b/ld/testsuite/ld-cris/pic-gc-73.d
@@ -1,7 +1,7 @@
#source: pic-gc-73.s
#source: expdyn1.s
#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
-#ld: --shared -m crislinux --gc-sections
+#ld: --shared -m crislinux --gc-sections --hash-style=sysv
#objdump: -s -t -R -p -T
# Left-over code coverage case from pic-gc-72; local symbol.
diff --git a/ld/testsuite/ld-cris/pr16044.d b/ld/testsuite/ld-cris/pr16044.d
index e5d373d..f8546f1 100644
--- a/ld/testsuite/ld-cris/pr16044.d
+++ b/ld/testsuite/ld-cris/pr16044.d
@@ -2,7 +2,7 @@
#source: dso-2b.s
#source: dso-1c.s
#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#readelf: -s -r
# PR 16044 is about a (compile-time-non-local) hidden function symbol,
diff --git a/ld/testsuite/ld-cris/pv32-1.d b/ld/testsuite/ld-cris/pv32-1.d
index c963ed1..c811744 100644
--- a/ld/testsuite/ld-cris/pv32-1.d
+++ b/ld/testsuite/ld-cris/pv32-1.d
@@ -1,6 +1,6 @@
#source: pv32.s
#as: --march=v32 --no-underscore --em=criself
-#ld: -e here -m crislinux tmpdir/libdso-12.so
+#ld: -e here -m crislinux tmpdir/libdso-12.so --hash-style=sysv
#objdump: -s -T
# Trivial test of linking a program to a v32 DSO.
diff --git a/ld/testsuite/ld-cris/tls-dso-dtpoffd2.d b/ld/testsuite/ld-cris/tls-dso-dtpoffd2.d
index 1db2b9a..7459d9f 100644
--- a/ld/testsuite/ld-cris/tls-dso-dtpoffd2.d
+++ b/ld/testsuite/ld-cris/tls-dso-dtpoffd2.d
@@ -4,7 +4,7 @@
#source: tls128.s
#source: tls-x.s
#as: --no-underscore --em=criself --pic -I$srcdir/$subdir
-#ld: -m crislinux --shared
+#ld: -m crislinux --shared --hash-style=sysv --hash-style=sysv
#objdump: -d -s -t -r -p
# Linking a file with a DTPOFF from a .dtpoffd of a GD variable, PIC
diff --git a/ld/testsuite/ld-cris/tls-dso-dtpoffd4.d b/ld/testsuite/ld-cris/tls-dso-dtpoffd4.d
index 0f54e61..c66a982 100644
--- a/ld/testsuite/ld-cris/tls-dso-dtpoffd4.d
+++ b/ld/testsuite/ld-cris/tls-dso-dtpoffd4.d
@@ -4,7 +4,7 @@
#source: tls128.s
#source: tls-commx.s
#as: --no-underscore --em=criself --pic -I$srcdir/$subdir
-#ld: -m crislinux --shared
+#ld: -m crislinux --shared --hash-style=sysv
#objdump: -d -s -t -r -p
# Linking a file with a DTPOFF from a .dtpoffd of a GD COMMON
diff --git a/ld/testsuite/ld-cris/tls-dso-tpoffgotcomm1.d b/ld/testsuite/ld-cris/tls-dso-tpoffgotcomm1.d
index 0a2ee06..cfb44ac 100644
--- a/ld/testsuite/ld-cris/tls-dso-tpoffgotcomm1.d
+++ b/ld/testsuite/ld-cris/tls-dso-tpoffgotcomm1.d
@@ -1,7 +1,7 @@
#source: start1.s
#source: tls-dso-tpoffgotcomm1.s
#as: --no-underscore --pic --em=criself -I$srcdir/$subdir
-#ld: -m crislinux -shared
+#ld: -m crislinux -shared --hash-style=sysv
#objdump: -d -h -s -t -r -R -p
# Make sure we can link a file with TPOFFGOT relocs against common
diff --git a/ld/testsuite/ld-cris/tls-dso-x1x2-1.d b/ld/testsuite/ld-cris/tls-dso-x1x2-1.d
index b539748..6168701 100644
--- a/ld/testsuite/ld-cris/tls-dso-x1x2-1.d
+++ b/ld/testsuite/ld-cris/tls-dso-x1x2-1.d
@@ -1,7 +1,7 @@
#source: tls-hx.s
#source: tls-x1x2.s
#as: --no-underscore --em=criself
-#ld: -m crislinux --shared
+#ld: -m crislinux --shared --hash-style=sysv
#objdump: -T
# A DSO providing the TLS variables x1 and x2.
diff --git a/ld/testsuite/ld-cris/tls-gc-71.d b/ld/testsuite/ld-cris/tls-gc-71.d
index 9d87500..14feb3d 100644
--- a/ld/testsuite/ld-cris/tls-gc-71.d
+++ b/ld/testsuite/ld-cris/tls-gc-71.d
@@ -3,7 +3,7 @@
#source: tls128g.s
#source: tls-hx.s
#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
-#ld: --shared -m crislinux --gc-sections
+#ld: --shared -m crislinux --gc-sections --hash-style=sysv
#objdump: -s -t -R -p -T
# DSO with a single R_CRIS_16_DTPREL against a hidden symbol, gc:ed.
diff --git a/ld/testsuite/ld-cris/tls-gd-1.d b/ld/testsuite/ld-cris/tls-gd-1.d
index 25de32d..789c54e 100644
--- a/ld/testsuite/ld-cris/tls-gd-1.d
+++ b/ld/testsuite/ld-cris/tls-gd-1.d
@@ -1,5 +1,5 @@
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#source: tls-gd-1.s
#source: tls128.s
#source: tls-x.s
diff --git a/ld/testsuite/ld-cris/tls-gd-1h.d b/ld/testsuite/ld-cris/tls-gd-1h.d
index 2e024bd..db60081 100644
--- a/ld/testsuite/ld-cris/tls-gd-1h.d
+++ b/ld/testsuite/ld-cris/tls-gd-1h.d
@@ -1,5 +1,5 @@
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#source: tls-gd-1.s
#source: tls128g.s
#source: tls-hx.s
diff --git a/ld/testsuite/ld-cris/tls-gd-2.d b/ld/testsuite/ld-cris/tls-gd-2.d
index 2f2546e..cc35710 100644
--- a/ld/testsuite/ld-cris/tls-gd-2.d
+++ b/ld/testsuite/ld-cris/tls-gd-2.d
@@ -1,5 +1,5 @@
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#source: tls-gd-2.s
#source: tls128g.s
#source: tls-x.s
diff --git a/ld/testsuite/ld-cris/tls-gd-2h.d b/ld/testsuite/ld-cris/tls-gd-2h.d
index f63be5c..da3ef7d 100644
--- a/ld/testsuite/ld-cris/tls-gd-2h.d
+++ b/ld/testsuite/ld-cris/tls-gd-2h.d
@@ -1,5 +1,5 @@
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#source: tls-gd-2.s
#source: tls128g.s
#source: tls-hx.s
diff --git a/ld/testsuite/ld-cris/tls-ie-10.d b/ld/testsuite/ld-cris/tls-ie-10.d
index 869173c..7e9c32d 100644
--- a/ld/testsuite/ld-cris/tls-ie-10.d
+++ b/ld/testsuite/ld-cris/tls-ie-10.d
@@ -1,5 +1,5 @@
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#source: tls-ie-10.s
#source: tls128g.s
#source: tls-x.s
diff --git a/ld/testsuite/ld-cris/tls-ie-11.d b/ld/testsuite/ld-cris/tls-ie-11.d
index d326fbe..e231040 100644
--- a/ld/testsuite/ld-cris/tls-ie-11.d
+++ b/ld/testsuite/ld-cris/tls-ie-11.d
@@ -1,5 +1,5 @@
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#source: tls-ie-11.s
#source: tls128g.s
#source: tls-x1x2.s
diff --git a/ld/testsuite/ld-cris/tls-ie-78.d b/ld/testsuite/ld-cris/tls-ie-78.d
index 3994df8..a402115 100644
--- a/ld/testsuite/ld-cris/tls-ie-78.d
+++ b/ld/testsuite/ld-cris/tls-ie-78.d
@@ -2,7 +2,7 @@
#source: tls128.s
#source: tls-ie-8e.s
#as: --no-underscore --em=criself
-#ld: -m crislinux
+#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 3c7769b..f62d599 100644
--- a/ld/testsuite/ld-cris/tls-ie-8.d
+++ b/ld/testsuite/ld-cris/tls-ie-8.d
@@ -1,5 +1,5 @@
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#source: tls-ie-8.s
#source: tls128g.s
#source: tls-x.s
diff --git a/ld/testsuite/ld-cris/tls-ie-9.d b/ld/testsuite/ld-cris/tls-ie-9.d
index 673ae4f..b9d9ee6 100644
--- a/ld/testsuite/ld-cris/tls-ie-9.d
+++ b/ld/testsuite/ld-cris/tls-ie-9.d
@@ -1,5 +1,5 @@
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#source: tls-ie-9.s
#source: tls128g.s
#source: tls-x1x2.s
diff --git a/ld/testsuite/ld-cris/tls-js1.d b/ld/testsuite/ld-cris/tls-js1.d
index 0c1509f..3ac1c68 100644
--- a/ld/testsuite/ld-cris/tls-js1.d
+++ b/ld/testsuite/ld-cris/tls-js1.d
@@ -5,7 +5,7 @@
#source: tls-hx.s
#source: dso-1.s
#as: --pic --no-underscore --em=criself --march=v32
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#readelf: -a
# DSO with a R_CRIS_16_DTPREL and a R_CRIS_32_PLT_PCREL. The .got.plt
diff --git a/ld/testsuite/ld-cris/tls-ld-4.d b/ld/testsuite/ld-cris/tls-ld-4.d
index 2ac3d71..46e5e9b 100644
--- a/ld/testsuite/ld-cris/tls-ld-4.d
+++ b/ld/testsuite/ld-cris/tls-ld-4.d
@@ -1,5 +1,5 @@
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#source: tls-ld-4.s
#source: tls128g.s
#source: tls-hx.s
diff --git a/ld/testsuite/ld-cris/tls-ld-5.d b/ld/testsuite/ld-cris/tls-ld-5.d
index c2ea111..d5982d9 100644
--- a/ld/testsuite/ld-cris/tls-ld-5.d
+++ b/ld/testsuite/ld-cris/tls-ld-5.d
@@ -1,5 +1,5 @@
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#source: tls-ld-5.s
#source: tls128g.s
#source: tls-hx1x2.s
diff --git a/ld/testsuite/ld-cris/tls-ld-6.d b/ld/testsuite/ld-cris/tls-ld-6.d
index 0b54114..487c63e 100644
--- a/ld/testsuite/ld-cris/tls-ld-6.d
+++ b/ld/testsuite/ld-cris/tls-ld-6.d
@@ -1,5 +1,5 @@
#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#source: tls128g.s
#source: tls-ld-6.s
#source: tls-hx.s
diff --git a/ld/testsuite/ld-cris/tls-ld-7.d b/ld/testsuite/ld-cris/tls-ld-7.d
index c537050..db034af 100644
--- a/ld/testsuite/ld-cris/tls-ld-7.d
+++ b/ld/testsuite/ld-cris/tls-ld-7.d
@@ -1,5 +1,5 @@
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#source: tls-ld-7.s
#source: tls128g.s
#source: tls-hx1x2.s
diff --git a/ld/testsuite/ld-cris/tls-ldgd-14.d b/ld/testsuite/ld-cris/tls-ldgd-14.d
index 4634dd2..01cb975 100644
--- a/ld/testsuite/ld-cris/tls-ldgd-14.d
+++ b/ld/testsuite/ld-cris/tls-ldgd-14.d
@@ -6,7 +6,7 @@
#source: tls-z.s
#source: tls-hx1x2.s
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -t -R -p -T
# Check that we have proper NPTL/TLS markings and GOT for two
diff --git a/ld/testsuite/ld-cris/tls-ldgd-15.d b/ld/testsuite/ld-cris/tls-ldgd-15.d
index 8583bd2..6d5ac81 100644
--- a/ld/testsuite/ld-cris/tls-ldgd-15.d
+++ b/ld/testsuite/ld-cris/tls-ldgd-15.d
@@ -6,7 +6,7 @@
#source: tls-z.s
#source: tls-hx1x2.s
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -t -R -p -T
# Check that we have proper NPTL/TLS markings and GOT for two
diff --git a/ld/testsuite/ld-cris/tls-ldgdex-14.d b/ld/testsuite/ld-cris/tls-ldgdex-14.d
index 83d94a7..bb497bb 100644
--- a/ld/testsuite/ld-cris/tls-ldgdex-14.d
+++ b/ld/testsuite/ld-cris/tls-ldgdex-14.d
@@ -5,7 +5,7 @@
#source: tls-ldgd-14.s
#source: tls-hx1x2.s
#as: --pic --no-underscore --em=criself
-#ld: -m crislinux tmpdir/tls-dso-xz-1.so
+#ld: -m crislinux tmpdir/tls-dso-xz-1.so --hash-style=sysv
#objdump: -s -h -t -T -R -r -p
# Check that we have proper NPTL/TLS markings and GOT for two
diff --git a/ld/testsuite/ld-cris/tls-ldgdex-15.d b/ld/testsuite/ld-cris/tls-ldgdex-15.d
index fca739b..45e5ec3 100644
--- a/ld/testsuite/ld-cris/tls-ldgdex-15.d
+++ b/ld/testsuite/ld-cris/tls-ldgdex-15.d
@@ -5,7 +5,7 @@
#source: tls-ldgd-15.s
#source: tls-hx1x2.s
#as: --pic --no-underscore --em=criself
-#ld: -m crislinux tmpdir/tls-dso-xz-1.so
+#ld: -m crislinux tmpdir/tls-dso-xz-1.so --hash-style=sysv
#objdump: -s -h -t -T -R -r -p
# Check that we have proper NPTL/TLS markings and GOT for two
diff --git a/ld/testsuite/ld-cris/tls-ldgdx-14.d b/ld/testsuite/ld-cris/tls-ldgdx-14.d
index 53fde9c..1d3dcde 100644
--- a/ld/testsuite/ld-cris/tls-ldgdx-14.d
+++ b/ld/testsuite/ld-cris/tls-ldgdx-14.d
@@ -4,7 +4,7 @@
#source: tls-ldgd-14.s
#source: tls-hx1x2.s
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux tmpdir/tls-dso-xz-1.so
+#ld: --shared -m crislinux --hash-style=sysv tmpdir/tls-dso-xz-1.so
#objdump: -s -h -t -T -R -r -p
# Check that we have proper NPTL/TLS markings and GOT for two
diff --git a/ld/testsuite/ld-cris/tls-ldgdx-15.d b/ld/testsuite/ld-cris/tls-ldgdx-15.d
index 8b0af3f..59f3aae 100644
--- a/ld/testsuite/ld-cris/tls-ldgdx-15.d
+++ b/ld/testsuite/ld-cris/tls-ldgdx-15.d
@@ -4,7 +4,7 @@
#source: tls-ldgd-15.s
#source: tls-hx1x2.s
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux tmpdir/tls-dso-xz-1.so
+#ld: --shared -m crislinux --hash-style=sysv tmpdir/tls-dso-xz-1.so
#objdump: -s -h -t -T -R -r -p
# Check that we have proper NPTL/TLS markings and GOT for two
diff --git a/ld/testsuite/ld-cris/tls-legdx-16.d b/ld/testsuite/ld-cris/tls-legdx-16.d
index 1e3bc3e..a597167 100644
--- a/ld/testsuite/ld-cris/tls-legdx-16.d
+++ b/ld/testsuite/ld-cris/tls-legdx-16.d
@@ -5,7 +5,7 @@
#source: tls-legd-16.s
#source: tls-x1x2.s
#as: --no-underscore --em=criself
-#ld: -m crislinux tmpdir/tls-dso-xz-1.so
+#ld: -m crislinux tmpdir/tls-dso-xz-1.so --hash-style=sysv
#objdump: -s -h -t -T -R -r -p
# Check that we have proper NPTL/TLS markings and GOT for an
diff --git a/ld/testsuite/ld-cris/tls-legdx-17.d b/ld/testsuite/ld-cris/tls-legdx-17.d
index 1d1c5ea..c5b7b4b 100644
--- a/ld/testsuite/ld-cris/tls-legdx-17.d
+++ b/ld/testsuite/ld-cris/tls-legdx-17.d
@@ -5,7 +5,7 @@
#source: tls-ldgd-14.s --pic
#source: tls-x1x2.s
#as: --no-underscore --em=criself
-#ld: -m crislinux tmpdir/tls-dso-xz-1.so
+#ld: -m crislinux tmpdir/tls-dso-xz-1.so --hash-style=sysv
#objdump: -s -h -t -T -R -r -p
# Check that we have proper NPTL/TLS markings and GOT for an
diff --git a/ld/testsuite/ld-cris/tls-local-54.d b/ld/testsuite/ld-cris/tls-local-54.d
index 7c0deb6..337fbd5 100644
--- a/ld/testsuite/ld-cris/tls-local-54.d
+++ b/ld/testsuite/ld-cris/tls-local-54.d
@@ -1,6 +1,6 @@
#source: tls-local-54.s
#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -t -R -p -T
# A DSO with a R_CRIS_32_GOT_GD against a local symbol.
diff --git a/ld/testsuite/ld-cris/tls-local-60.d b/ld/testsuite/ld-cris/tls-local-60.d
index 958a296..a2ed601 100644
--- a/ld/testsuite/ld-cris/tls-local-60.d
+++ b/ld/testsuite/ld-cris/tls-local-60.d
@@ -1,7 +1,7 @@
#source: tls-x.s
#source: tls-local-59.s
#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
-#ld: -m crislinux --shared
+#ld: -m crislinux --shared --hash-style=sysv
#objdump: -s -t -r -p -R -T
# A DSO with a R_CRIS_32_GOT_GD, a R_CRIS_16_GOT_GD, a
diff --git a/ld/testsuite/ld-cris/tls-local-61.d b/ld/testsuite/ld-cris/tls-local-61.d
index bfa4a25..54d2786 100644
--- a/ld/testsuite/ld-cris/tls-local-61.d
+++ b/ld/testsuite/ld-cris/tls-local-61.d
@@ -1,6 +1,6 @@
#source: tls-local-59.s
#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
-#ld: -m crislinux --shared
+#ld: -m crislinux --shared --hash-style=sysv
#objdump: -s -t -r -p -R -T
# A DSO with a R_CRIS_32_GOT_GD, a R_CRIS_16_GOT_GD, a
diff --git a/ld/testsuite/ld-cris/tls-local-63.d b/ld/testsuite/ld-cris/tls-local-63.d
index 320e717..256542c 100644
--- a/ld/testsuite/ld-cris/tls-local-63.d
+++ b/ld/testsuite/ld-cris/tls-local-63.d
@@ -1,7 +1,7 @@
#source: tls-ie-8.s --pic
#source: tls-hx.s
#as: --no-underscore --em=criself
-#ld: -m crislinux --shared
+#ld: -m crislinux --shared --hash-style=sysv
#readelf: -a -x 6 -x 8 -x 5
# A R_CRIS_16_GOT_TPREL in a DSO against a hidden symbol. Make sure
diff --git a/ld/testsuite/ld-cris/tls-local-64.d b/ld/testsuite/ld-cris/tls-local-64.d
index 8fb44ee..9449f1f 100644
--- a/ld/testsuite/ld-cris/tls-local-64.d
+++ b/ld/testsuite/ld-cris/tls-local-64.d
@@ -2,7 +2,7 @@
#source: tls128.s
#source: tls-hx.s
#as: --no-underscore --em=criself
-#ld: -m crislinux --shared
+#ld: -m crislinux --shared --hash-style=sysv
#readelf: -a -x 6 -x 8 -x 5
# A R_CRIS_16_GOT_TPREL in a DSO against a hidden symbol, at an offset
diff --git a/ld/testsuite/ld-cris/tls-ok-30.d b/ld/testsuite/ld-cris/tls-ok-30.d
index 94ed194..fef40b3 100644
--- a/ld/testsuite/ld-cris/tls-ok-30.d
+++ b/ld/testsuite/ld-cris/tls-ok-30.d
@@ -1,6 +1,6 @@
#source: tls-gdgotrelm.s --defsym r=8191
#as: --no-underscore --em=criself --pic
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -j .got -R
# Verify that the first and last R_CRIS_16_GOT_GD entries are ok just
diff --git a/ld/testsuite/ld-cris/tls-ok-32.d b/ld/testsuite/ld-cris/tls-ok-32.d
index 8042e28..602710e 100644
--- a/ld/testsuite/ld-cris/tls-ok-32.d
+++ b/ld/testsuite/ld-cris/tls-ok-32.d
@@ -1,6 +1,6 @@
#source: tls-dtprelm.s --defsym r=32767
#as: --no-underscore --em=criself --pic
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -j .got -j .text -j .tdata -R
# Check that a R_CRIS_16_DTPREL just below the theoretical limit
diff --git a/ld/testsuite/ld-cris/tls-ok-34.d b/ld/testsuite/ld-cris/tls-ok-34.d
index f534c993..ba3d1ae 100644
--- a/ld/testsuite/ld-cris/tls-ok-34.d
+++ b/ld/testsuite/ld-cris/tls-ok-34.d
@@ -1,6 +1,6 @@
#source: tls-gottprelm.s --defsym r=8189
#as: --no-underscore --em=criself --pic
-#ld: --shared -m crislinux
+#ld: --shared -m crislinux --hash-style=sysv
#objdump: -s -j .got -R
# Check that a R_CRIS_16_DTPREL just below the theoretical limit
diff --git a/ld/testsuite/ld-cris/tls-und-38.d b/ld/testsuite/ld-cris/tls-und-38.d
index 7830672..8cda650 100644
--- a/ld/testsuite/ld-cris/tls-und-38.d
+++ b/ld/testsuite/ld-cris/tls-und-38.d
@@ -1,6 +1,6 @@
#source: tls-gd-2.s --pic
#as: --no-underscore --em=criself
-#ld: -m crislinux --shared
+#ld: -m crislinux --shared --hash-style=sysv
#readelf: -a -x 7
# Undefined reference for a R_CRIS_32_GOT_GD in a DSO. Not an error;
diff --git a/ld/testsuite/ld-cris/tls-und-42.d b/ld/testsuite/ld-cris/tls-und-42.d
index db45264..7a1a831 100644
--- a/ld/testsuite/ld-cris/tls-und-42.d
+++ b/ld/testsuite/ld-cris/tls-und-42.d
@@ -1,6 +1,6 @@
#source: tls-ie-10.s --pic
#as: --no-underscore --em=criself
-#ld: -m crislinux --shared
+#ld: -m crislinux --shared --hash-style=sysv
#readelf: -a -x 7
# Undefined reference for a R_CRIS_32_GOT_TPREL in a DSO. Not an
diff --git a/ld/testsuite/ld-cris/tls-und-46.d b/ld/testsuite/ld-cris/tls-und-46.d
index 92755d4..bb38da4 100644
--- a/ld/testsuite/ld-cris/tls-und-46.d
+++ b/ld/testsuite/ld-cris/tls-und-46.d
@@ -1,6 +1,6 @@
#source: tls-gd-1.s --pic
#as: --no-underscore --em=criself
-#ld: -m crislinux --shared
+#ld: -m crislinux --shared --hash-style=sysv
#readelf: -a -x 7
# Undefined reference for a R_CRIS_16_GOT_GD in a DSO. Not an error;
diff --git a/ld/testsuite/ld-cris/tls-und-50.d b/ld/testsuite/ld-cris/tls-und-50.d
index 6814aac..30274f5 100644
--- a/ld/testsuite/ld-cris/tls-und-50.d
+++ b/ld/testsuite/ld-cris/tls-und-50.d
@@ -1,6 +1,6 @@
#source: tls-ie-8.s --pic
#as: --no-underscore --em=criself
-#ld: -m crislinux --shared
+#ld: -m crislinux --shared --hash-style=sysv
#readelf: -a -x 7
# Undefined reference for a R_CRIS_16_GOT_TPREL in a DSO. Not an
diff --git a/ld/testsuite/ld-cris/weakhiddso.d b/ld/testsuite/ld-cris/weakhiddso.d
index 01940f7..71a4bdb 100644
--- a/ld/testsuite/ld-cris/weakhiddso.d
+++ b/ld/testsuite/ld-cris/weakhiddso.d
@@ -1,6 +1,6 @@
#source: weakhid.s
#as: --pic --no-underscore --em=criself
-#ld: --shared -m crislinux -z nocombreloc
+#ld: --shared -m crislinux -z nocombreloc --hash-style=sysv
#objdump: -s -R -T
# Check that .weak and .weak .hidden object references are handled
diff --git a/ld/testsuite/ld-cris/weakref2.d b/ld/testsuite/ld-cris/weakref2.d
index b78ccca..9b50dbf 100644
--- a/ld/testsuite/ld-cris/weakref2.d
+++ b/ld/testsuite/ld-cris/weakref2.d
@@ -1,6 +1,6 @@
#source: gotrel2.s
#as: --pic --no-underscore --em=criself
-#ld: -m crislinux tmpdir/libdso-1.so
+#ld: -m crislinux tmpdir/libdso-1.so --hash-style=sysv
#objdump: -s -j .got
# Like weakref1.d, but check contents of .got.
diff --git a/ld/testsuite/ld-cris/weakref3.d b/ld/testsuite/ld-cris/weakref3.d
index 4807106..aa59325 100644
--- a/ld/testsuite/ld-cris/weakref3.d
+++ b/ld/testsuite/ld-cris/weakref3.d
@@ -1,7 +1,7 @@
#source: start1.s
#source: expdref3.s
#as: --no-underscore --em=criself
-#ld: -m crislinux
+#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 aed0f39..3cc3c76 100644
--- a/ld/testsuite/ld-cris/weakref4.d
+++ b/ld/testsuite/ld-cris/weakref4.d
@@ -1,7 +1,7 @@
#source: start1.s
#source: expdref4.s
#as: --no-underscore --em=criself
-#ld: -m crislinux
+#ld: -m crislinux --hash-style=sysv
#ld_after_inputfiles: tmpdir/libdso-15.so
#readelf: -a -x 11
diff --git a/ld/testsuite/ld-elf/audit.exp b/ld/testsuite/ld-elf/audit.exp
index 83ee355..b7af4b7 100644
--- a/ld/testsuite/ld-elf/audit.exp
+++ b/ld/testsuite/ld-elf/audit.exp
@@ -60,6 +60,9 @@ set build_tests {
{"Run with -lusesaudit -lusesaudit2"
"-Ltmpdir/ -lusesaudit -lusesaudit2" ""
{main.c} {{"readelf" {-d} "depaudit2.rd"}} "useslibusesaudit2.out"}
+ {"Link with -z globalaudit"
+ "-Wl,-Paudit.so -Wl,-z,globalaudit" ""
+ {main.c} {{"readelf" {-d} "globalaudit.rd"}} "globalaudit.out"}
}
run_cc_link_tests $build_tests
diff --git a/ld/testsuite/ld-elf/binutils.exp b/ld/testsuite/ld-elf/binutils.exp
index 61e6031..fcd0d96 100644
--- a/ld/testsuite/ld-elf/binutils.exp
+++ b/ld/testsuite/ld-elf/binutils.exp
@@ -81,13 +81,35 @@ proc binutils_test { prog_name ld_options test {test_name ""} {readelf_options "
}
if [string match "*-z relro*" $ld_options] {
+ # These targets set TEXT_DYNAMIC and therefore have `.dynamic'
+ # in the (read-only) text segment rather than data segment.
+ set relro_dynamic [expr !([istarget "hppa64*-*-*"] \
+ || ([istarget "mips*-*-*"] \
+ && ![istarget "*-*-vxworks*"]))]
+ # These targets have `.got' in regular data even though they do
+ # not have `.got' there.
+ set relro_gotplt [expr [istarget "mips*-*-*"]]
+ # These targets do not set NO_SMALL_DATA or DATA_GOT and therefore
+ # have `.got' in (read-write) small data rather than regular data.
+ set relro_got [expr !([istarget "alpha*-*-*"] \
+ || [istarget "hppa*-*-linux-*"] \
+ || [istarget "hppa*-*-netbsd*"] \
+ || [istarget "hppa*-*-openbsd*"] \
+ || [istarget "metag-*-*"] \
+ || [istarget "mips*-*-*"] \
+ || [istarget "nios2*-*-*"] \
+ || [istarget "or1k-*-*"] \
+ || [istarget "riscv*-*-*"] \
+ || [istarget "sh*-*-*"] \
+ || [istarget "x86_64-*-rdos*"])]
# Check if GNU_RELRO segment is generated.
set got [remote_exec host "grep GNU_RELRO tmpdir/$test.exp"]
if { ![string match "*GNU_RELRO*" $got] } then {
set got [remote_exec host "cat tmpdir/$test.exp"]
if { [string match "*.data.rel.ro*" $got]
- || [string match "*.dynamic*" $got]
- || [string match "*.got*" $got]
+ || ($relro_dynamic && [string match "*.dynamic*" $got])
+ || ($relro_gotplt && [string match "*.got.plt*" $got])
+ || ($relro_got && [string match "*.got*" $got])
|| [string match "*.eh_frame*" $got]
|| [string match "*.gcc_except_table*" $got]
|| [string match "*.exception_ranges*" $got]
diff --git a/ld/testsuite/ld-elf/comm-data2.ld b/ld/testsuite/ld-elf/comm-data2.ld
index 3244453..ea1ac5b 100644
--- a/ld/testsuite/ld-elf/comm-data2.ld
+++ b/ld/testsuite/ld-elf/comm-data2.ld
@@ -9,6 +9,7 @@ SECTIONS
.rela.dyn : { *(.rela.*) }
.interp : { *(.interp) }
.hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
. = 0x76540000;
diff --git a/ld/testsuite/ld-elf/eh3.d b/ld/testsuite/ld-elf/eh3.d
index 3811341..6ac584a 100644
--- a/ld/testsuite/ld-elf/eh3.d
+++ b/ld/testsuite/ld-elf/eh3.d
@@ -23,20 +23,12 @@ Contents of the .eh_frame section:
DW_CFA_nop
DW_CFA_nop
-0+0018 0+0024 0+001c FDE cie=0+0000 pc=0+400078\.\.0+400090
+0+0018 0+001c 0+001c FDE cie=0+0000 pc=0+400078\.\.0+400090
DW_CFA_advance_loc: 8 to 0+400080
DW_CFA_def_cfa_offset: 16
DW_CFA_offset: r6 \(rbp\) at cfa-16
DW_CFA_advance_loc: 8 to 0+400088
DW_CFA_def_cfa_register: r6 \(rbp\)
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
-0+0040 ZERO terminator
+0+0038 ZERO terminator
#pass
diff --git a/ld/testsuite/ld-elf/eh4.d b/ld/testsuite/ld-elf/eh4.d
index b5eec2f..6c1cb32 100644
--- a/ld/testsuite/ld-elf/eh4.d
+++ b/ld/testsuite/ld-elf/eh4.d
@@ -28,14 +28,12 @@ Contents of the .eh_frame section:
DW_CFA_set_loc: 0+0417
DW_CFA_def_cfa_offset: 80
-0+0048 0+0024 0+004c FDE cie=0+0000 pc=[0-9a-f]+\.\.[0-9a-f]+
+0+0048 0+002[04] 0+004c FDE cie=0+0000 pc=[0-9a-f]+\.\.[0-9a-f]+
DW_CFA_def_cfa_offset: 16
DW_CFA_advance_loc: [0-9a-f]+ to [0-9a-f]+
DW_CFA_def_cfa_offset: 24
DW_CFA_advance_loc: [0-9a-f]+ to [0-9a-f]+
DW_CFA_def_cfa_expression \(DW_OP_breg7 \(rsp\): 8; DW_OP_breg16 \(rip\): 0;.*
- DW_CFA_nop
#...
-
[0-9a-f]+ ZERO terminator
#pass
diff --git a/ld/testsuite/ld-elf/elf.exp b/ld/testsuite/ld-elf/elf.exp
index 80a8c42..655f0da 100644
--- a/ld/testsuite/ld-elf/elf.exp
+++ b/ld/testsuite/ld-elf/elf.exp
@@ -104,7 +104,7 @@ if { [check_shared_lib_support] } then {
setup_xfail "tic6x-*-*"
run_ld_link_tests {
{"Build shared library for next test"
- "-shared" "" "" "note-3.s" {} "note-3.so" }
+ "-shared --hash-style=sysv" "" "" "note-3.s" {} "note-3.so" }
{"Link using broken linker script"
"--script note-3.t tmpdir/note-3.so" "" "" ""
{ { ld "note-3.l" } }
diff --git a/ld/testsuite/ld-elf/globalaudit.rd b/ld/testsuite/ld-elf/globalaudit.rd
new file mode 100644
index 0000000..41dcaad
--- /dev/null
+++ b/ld/testsuite/ld-elf/globalaudit.rd
@@ -0,0 +1,3 @@
+#...
+.*\(FLAGS_1\).*Flags: .*GLOBAUDIT.*
+#pass
diff --git a/ld/testsuite/ld-elf/linkinfo1a.d b/ld/testsuite/ld-elf/linkinfo1a.d
index b5ccf6f..1aeaf00 100644
--- a/ld/testsuite/ld-elf/linkinfo1a.d
+++ b/ld/testsuite/ld-elf/linkinfo1a.d
@@ -1,5 +1,5 @@
#source: linkinfo1.s
-#ld: -shared
+#ld: -shared --hash-style=sysv
#readelf: -SW
#target: x86_64-* i?86-*
diff --git a/ld/testsuite/ld-elf/linkinfo1b.d b/ld/testsuite/ld-elf/linkinfo1b.d
index cb17683..f8e3bd0 100644
--- a/ld/testsuite/ld-elf/linkinfo1b.d
+++ b/ld/testsuite/ld-elf/linkinfo1b.d
@@ -1,5 +1,5 @@
#source: linkinfo1.s
-#ld: -shared
+#ld: -shared --hash-style=sysv
#objcopy_linked_file: --strip-debug
#readelf: -SW
#target: x86_64-* i?86-*
diff --git a/ld/testsuite/ld-elf/note-3.l b/ld/testsuite/ld-elf/note-3.l
index 551ebaa..7e99bed 100644
--- a/ld/testsuite/ld-elf/note-3.l
+++ b/ld/testsuite/ld-elf/note-3.l
@@ -1,2 +1,2 @@
-.*warning: section '.hash' is being made into a note
+.*warning: section '(.gnu|).hash' is being made into a note
.*
diff --git a/ld/testsuite/ld-elf/note-3.t b/ld/testsuite/ld-elf/note-3.t
index 13324ae..47f3fe1 100644
--- a/ld/testsuite/ld-elf/note-3.t
+++ b/ld/testsuite/ld-elf/note-3.t
@@ -14,6 +14,7 @@ SECTIONS
treated as notes... */
.hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
.dynstr : { *(.dynstr) }
.dynsym : { *(.dynsym) }
diff --git a/ld/testsuite/ld-elf/orphan-11.d b/ld/testsuite/ld-elf/orphan-11.d
new file mode 100644
index 0000000..3daefba
--- /dev/null
+++ b/ld/testsuite/ld-elf/orphan-11.d
@@ -0,0 +1,9 @@
+#source: orphan-11.s
+#ld: -T orphan-11.ld --orphan-handling=error
+#objdump: -wh
+#notarget: d30v-* dlx-* fr30-* frv-* ft32-* i860-* i960-* iq2000-* mn10200-* moxie-* ms1-* msp430-* mt-* pj-*
+
+#...
+ . \.text .*
+ . \.data .*
+#pass
diff --git a/ld/testsuite/ld-elf/orphan-11.ld b/ld/testsuite/ld-elf/orphan-11.ld
new file mode 100644
index 0000000..b72f7d4
--- /dev/null
+++ b/ld/testsuite/ld-elf/orphan-11.ld
@@ -0,0 +1,16 @@
+SECTIONS
+{
+ . = SIZEOF_HEADERS;
+ .text : { *(.text .text.*) }
+ .data : { *(.data .data.*) }
+ .bss : { *(.bss .bss.*) *(COMMON) }
+ .sbss : { *(.sbss .sbss.*) }
+ .note : { *(.note .note.*) }
+ .rela : { *(.rela .rela.*) }
+ .rel : { *(.rel .rel.*) }
+
+ /DISCARD/ : {
+ *(.reginfo) *(.MIPS.abiflags) *(.MIPS.options) *(.trampolines)
+ *(.iplt*) *(.note*) *(.got*) *(.igot*) *(.*.attributes) *(.*.info)
+ *(.pdr) "linker stubs*"(*) }
+}
diff --git a/ld/testsuite/ld-elf/orphan-11.s b/ld/testsuite/ld-elf/orphan-11.s
new file mode 100644
index 0000000..3d7961b
--- /dev/null
+++ b/ld/testsuite/ld-elf/orphan-11.s
@@ -0,0 +1,11 @@
+ .section .text.foo,"axG",%progbits,foo_group
+ .word 0
+
+ .section .data.foo,"waG",%progbits,foo_group
+ .word 1
+
+ .section .text, "ax"
+ .word 0
+
+ .section .data, "wa"
+ .word 1
diff --git a/ld/testsuite/ld-elf/orphan-12.d b/ld/testsuite/ld-elf/orphan-12.d
new file mode 100644
index 0000000..71a8c93
--- /dev/null
+++ b/ld/testsuite/ld-elf/orphan-12.d
@@ -0,0 +1,9 @@
+#source: orphan-12.s
+#ld: -T orphan-11.ld --strip-debug --orphan-handling=error
+#objdump: -wh
+#notarget: d30v-* dlx-* fr30-* frv-* ft32-* i860-* i960-* iq2000-* mn10200-* moxie-* ms1-* msp430-* mt-* pj-*
+
+#...
+ . \.text .*
+ . \.data .*
+#pass
diff --git a/ld/testsuite/ld-elf/orphan-12.s b/ld/testsuite/ld-elf/orphan-12.s
new file mode 100644
index 0000000..f9cbcf7
--- /dev/null
+++ b/ld/testsuite/ld-elf/orphan-12.s
@@ -0,0 +1,8 @@
+ .section .debug_info, "",%progbits
+ .word 0
+
+ .section .text, "ax"
+ .word 0
+
+ .section .data, "wa"
+ .word 1
diff --git a/ld/testsuite/ld-elf/pr19617a.d b/ld/testsuite/ld-elf/pr19617a.d
index 132021f..a565e29 100644
--- a/ld/testsuite/ld-elf/pr19617a.d
+++ b/ld/testsuite/ld-elf/pr19617a.d
@@ -1,5 +1,5 @@
#source: pr19617.s
-#ld: -E --no-dynamic-linker
+#ld: -E --no-dynamic-linker --hash-style=sysv
#readelf : --dyn-syms --wide
#target: *-*-linux* *-*-gnu* *-*-solaris*
diff --git a/ld/testsuite/ld-elf/pr20828-v.ld b/ld/testsuite/ld-elf/pr20828-v.ld
index cdba796..5800aa0 100644
--- a/ld/testsuite/ld-elf/pr20828-v.ld
+++ b/ld/testsuite/ld-elf/pr20828-v.ld
@@ -1,6 +1,7 @@
SECTIONS
{
.hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
diff --git a/ld/testsuite/ld-elf/pr20828.ld b/ld/testsuite/ld-elf/pr20828.ld
index 034887d..9bea8d2 100644
--- a/ld/testsuite/ld-elf/pr20828.ld
+++ b/ld/testsuite/ld-elf/pr20828.ld
@@ -8,6 +8,7 @@ SECTIONS
}
.dynamic : { *(.dynamic) }
.hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
diff --git a/ld/testsuite/ld-elf/pr21233.ld b/ld/testsuite/ld-elf/pr21233.ld
index a3b547b..03a28cc 100644
--- a/ld/testsuite/ld-elf/pr21233.ld
+++ b/ld/testsuite/ld-elf/pr21233.ld
@@ -1,6 +1,7 @@
SECTIONS
{
.hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.rel.dyn : { *(.rel.dyn) }
diff --git a/ld/testsuite/ld-elf/pr21384.ld b/ld/testsuite/ld-elf/pr21384.ld
index 034887d..9bea8d2 100644
--- a/ld/testsuite/ld-elf/pr21384.ld
+++ b/ld/testsuite/ld-elf/pr21384.ld
@@ -8,6 +8,7 @@ SECTIONS
}
.dynamic : { *(.dynamic) }
.hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
diff --git a/ld/testsuite/ld-elf/pr21562a.d b/ld/testsuite/ld-elf/pr21562a.d
index ecf013f..e978734 100644
--- a/ld/testsuite/ld-elf/pr21562a.d
+++ b/ld/testsuite/ld-elf/pr21562a.d
@@ -8,5 +8,5 @@
#...
\[[ 0-9]+\] scnfoo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
#...
- +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?start_scnfoo
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?start_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/pr21562b.d b/ld/testsuite/ld-elf/pr21562b.d
index 063a141..f1d058a 100644
--- a/ld/testsuite/ld-elf/pr21562b.d
+++ b/ld/testsuite/ld-elf/pr21562b.d
@@ -8,5 +8,5 @@
#...
\[[ 0-9]+\] scnfoo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
#...
- +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?stop_scnfoo
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?stop_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/pr21562c.d b/ld/testsuite/ld-elf/pr21562c.d
index 1d72a0d..1bfbff3 100644
--- a/ld/testsuite/ld-elf/pr21562c.d
+++ b/ld/testsuite/ld-elf/pr21562c.d
@@ -9,5 +9,5 @@
#...
\[[ 0-9]+\] scnfoo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
#...
- +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?start_scnfoo
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?start_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/pr21562d.d b/ld/testsuite/ld-elf/pr21562d.d
index f752a24..4f8e91e 100644
--- a/ld/testsuite/ld-elf/pr21562d.d
+++ b/ld/testsuite/ld-elf/pr21562d.d
@@ -9,5 +9,5 @@
#...
\[[ 0-9]+\] scnfoo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
#...
- +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?stop_scnfoo
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?stop_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/pr21562e.d b/ld/testsuite/ld-elf/pr21562e.d
index 769f2f8..ee969bd 100644
--- a/ld/testsuite/ld-elf/pr21562e.d
+++ b/ld/testsuite/ld-elf/pr21562e.d
@@ -6,5 +6,5 @@
#...
\[[ 0-9]+\] scnfoo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
#...
- +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?start_scnfoo
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?start_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/pr21562f.d b/ld/testsuite/ld-elf/pr21562f.d
index cb81c2a..119f43e 100644
--- a/ld/testsuite/ld-elf/pr21562f.d
+++ b/ld/testsuite/ld-elf/pr21562f.d
@@ -6,5 +6,5 @@
#...
\[[ 0-9]+\] scnfoo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
#...
- +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?stop_scnfoo
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?stop_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/pr21562g.d b/ld/testsuite/ld-elf/pr21562g.d
index 9926416..f3d2a31 100644
--- a/ld/testsuite/ld-elf/pr21562g.d
+++ b/ld/testsuite/ld-elf/pr21562g.d
@@ -6,5 +6,5 @@
#...
\[[ 0-9]+\] scnfoo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
#...
- +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?start_scnfoo
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?start_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/pr21562h.d b/ld/testsuite/ld-elf/pr21562h.d
index 1e723ba..0517aec 100644
--- a/ld/testsuite/ld-elf/pr21562h.d
+++ b/ld/testsuite/ld-elf/pr21562h.d
@@ -6,5 +6,5 @@
#...
\[[ 0-9]+\] scnfoo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
#...
- +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?stop_scnfoo
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?stop_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/pr21562i.d b/ld/testsuite/ld-elf/pr21562i.d
index f5b59c5..8baa583 100644
--- a/ld/testsuite/ld-elf/pr21562i.d
+++ b/ld/testsuite/ld-elf/pr21562i.d
@@ -9,5 +9,5 @@
#...
\[[ 0-9]+\] scnfoo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
#...
- +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?start_scnfoo
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?start_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/pr21562j.d b/ld/testsuite/ld-elf/pr21562j.d
index 70e311e..99d987c 100644
--- a/ld/testsuite/ld-elf/pr21562j.d
+++ b/ld/testsuite/ld-elf/pr21562j.d
@@ -9,5 +9,5 @@
#...
\[[ 0-9]+\] scnfoo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
#...
- +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?stop_scnfoo
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?stop_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/pr21562k.d b/ld/testsuite/ld-elf/pr21562k.d
index 4c62eb7..6aa8334 100644
--- a/ld/testsuite/ld-elf/pr21562k.d
+++ b/ld/testsuite/ld-elf/pr21562k.d
@@ -9,5 +9,5 @@
#...
\[[ 0-9]+\] \.foo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
#...
- +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?start_scnfoo
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?start_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/pr21562l.d b/ld/testsuite/ld-elf/pr21562l.d
index b0ba90d..82bab1e 100644
--- a/ld/testsuite/ld-elf/pr21562l.d
+++ b/ld/testsuite/ld-elf/pr21562l.d
@@ -9,5 +9,5 @@
#...
\[[ 0-9]+\] \.foo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
#...
- +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?stop_scnfoo
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?stop_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/pr21562m.d b/ld/testsuite/ld-elf/pr21562m.d
index fbcf76f..e1ad876 100644
--- a/ld/testsuite/ld-elf/pr21562m.d
+++ b/ld/testsuite/ld-elf/pr21562m.d
@@ -9,5 +9,5 @@
#...
\[[ 0-9]+\] \.foo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
#...
- +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?start_scnfoo
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?start_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/pr21562n.d b/ld/testsuite/ld-elf/pr21562n.d
index 2453169..583c771 100644
--- a/ld/testsuite/ld-elf/pr21562n.d
+++ b/ld/testsuite/ld-elf/pr21562n.d
@@ -9,5 +9,5 @@
#...
\[[ 0-9]+\] \.foo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.*
#...
- +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?stop_scnfoo
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?stop_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/pr21884.d b/ld/testsuite/ld-elf/pr21884.d
new file mode 100644
index 0000000..0de7b83
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21884.d
@@ -0,0 +1,11 @@
+#source: pr21884a.s
+#source: pr21884b.s
+#ld: -T pr21884.t
+#objdump: -b binary -s
+#notarget: aarch64*-*-* arm*-*-* avr-*-* hppa-*-* ia64-*-* m68hc1*-*-* nds32*-*-* score-*-*
+# Skip targets which can't change output format to binary.
+
+.*: file format binary
+
+Contents of section .data:
+#pass
diff --git a/ld/testsuite/ld-elf/pr21884.t b/ld/testsuite/ld-elf/pr21884.t
new file mode 100644
index 0000000..d483911
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21884.t
@@ -0,0 +1,7 @@
+OUTPUT_FORMAT("binary")
+
+ENTRY(_main);
+SECTIONS {
+ . = 0;
+ .setup : { *(.setup) }
+}
diff --git a/ld/testsuite/ld-elf/pr21884a.s b/ld/testsuite/ld-elf/pr21884a.s
new file mode 100644
index 0000000..a3361b2
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21884a.s
@@ -0,0 +1,5 @@
+ .text
+ .globl _main
+ .type _main,%function
+_main:
+ .dc.a bar
diff --git a/ld/testsuite/ld-elf/pr21884b.s b/ld/testsuite/ld-elf/pr21884b.s
new file mode 100644
index 0000000..e533837
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21884b.s
@@ -0,0 +1,5 @@
+ .text
+ .globl bar
+ .type bar,%function
+bar:
+ .byte 0
diff --git a/ld/testsuite/ld-elf/pr21903.s b/ld/testsuite/ld-elf/pr21903.s
new file mode 100644
index 0000000..ce26b33
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21903.s
@@ -0,0 +1,11 @@
+ .text
+ .global bar
+bar:
+ .byte 0
+ .data
+ .dc.a foo
+ .ifdef HPUX
+foo .comm 4
+ .else
+ .comm foo, 4, 4
+ .endif
diff --git a/ld/testsuite/ld-elf/pr21903a.d b/ld/testsuite/ld-elf/pr21903a.d
new file mode 100644
index 0000000..020c561
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21903a.d
@@ -0,0 +1,8 @@
+#source: pr21903.s
+#ld: -shared --no-define-common
+#readelf: --dyn-syms
+#target: *-*-linux* *-*-gnu*
+
+#...
+.*: 0+0 +0 +OBJECT +GLOBAL +DEFAULT +UND foo
+#pass
diff --git a/ld/testsuite/ld-elf/pr21903b.d b/ld/testsuite/ld-elf/pr21903b.d
new file mode 100644
index 0000000..decd4f3
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21903b.d
@@ -0,0 +1,8 @@
+#source: pr21903.s
+#ld: -shared
+#readelf: --dyn-syms
+#target: *-*-linux* *-*-gnu*
+
+#...
+.*: [0-9a-f]+ +4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ foo
+#pass
diff --git a/ld/testsuite/ld-elf/pr21903c.d b/ld/testsuite/ld-elf/pr21903c.d
new file mode 100644
index 0000000..d3910ec
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21903c.d
@@ -0,0 +1,3 @@
+#source: pr21903.s
+#ld: --no-define-common
+#error: --no-define-common may not be used without -shared
diff --git a/ld/testsuite/ld-elf/pr21903d.d b/ld/testsuite/ld-elf/pr21903d.d
new file mode 100644
index 0000000..ec72900
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21903d.d
@@ -0,0 +1,4 @@
+#source: pr21903.s
+#ld: --no-define-common -pie
+#target: *-*-linux* *-*-gnu*
+#error: --no-define-common may not be used without -shared
diff --git a/ld/testsuite/ld-elf/pr21903e.d b/ld/testsuite/ld-elf/pr21903e.d
new file mode 100644
index 0000000..894c595
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21903e.d
@@ -0,0 +1,3 @@
+#source: pr21903.s
+#ld: -r --no-define-common
+#error: --no-define-common may not be used without -shared
diff --git a/ld/testsuite/ld-elf/pr21904.d b/ld/testsuite/ld-elf/pr21904.d
new file mode 100644
index 0000000..1d464fc
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21904.d
@@ -0,0 +1,6 @@
+#ld: -d -r
+#readelf: -s
+
+#...
+.*: [0-9a-f]+ +4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ foo
+#pass
diff --git a/ld/testsuite/ld-elf/pr21904.s b/ld/testsuite/ld-elf/pr21904.s
new file mode 100644
index 0000000..587a226
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21904.s
@@ -0,0 +1,5 @@
+ .ifdef HPUX
+foo .comm 4
+ .else
+ .comm foo, 4, 4
+ .endif
diff --git a/ld/testsuite/ld-elf/pr21964-1a.c b/ld/testsuite/ld-elf/pr21964-1a.c
new file mode 100644
index 0000000..680bda4
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21964-1a.c
@@ -0,0 +1,12 @@
+extern int __start___verbose[];
+extern int __stop___verbose[];
+int
+foo1 (void)
+{
+ static int my_var __attribute__((used, section("__verbose"))) = 5;
+ if (__start___verbose == __stop___verbose
+ || __start___verbose[0] != 5)
+ return -1;
+ else
+ return 0;
+}
diff --git a/ld/testsuite/ld-elf/pr21964-1b.c b/ld/testsuite/ld-elf/pr21964-1b.c
new file mode 100644
index 0000000..1507b22
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21964-1b.c
@@ -0,0 +1,12 @@
+extern int __start___verbose[];
+extern int __stop___verbose[];
+int
+foo2 (void)
+{
+ static int my_var __attribute__((used, section("__verbose"))) = 10;
+ if (__start___verbose == __stop___verbose
+ || __start___verbose[0] != 10)
+ return -1;
+ else
+ return 0;
+}
diff --git a/ld/testsuite/ld-elf/pr21964-1c.c b/ld/testsuite/ld-elf/pr21964-1c.c
new file mode 100644
index 0000000..996a9e1
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21964-1c.c
@@ -0,0 +1,29 @@
+#include <stdio.h>
+
+extern int foo1 (void);
+extern int foo2 (void);
+
+extern int __start___verbose[];
+extern int __stop___verbose[];
+static int my_var __attribute__((used, section("__verbose"))) = 6;
+int
+bar (void)
+{
+ if (__start___verbose == __stop___verbose)
+ return -1;
+
+ if (__start___verbose[0] != 6)
+ return -2;
+ else
+ return 0;
+}
+
+int
+main ()
+{
+ if (bar () == 0
+ && foo1 () == 0
+ && foo2 () == 0)
+ printf ("PASS\n");
+ return 0;
+}
diff --git a/ld/testsuite/ld-elf/pr21964-2a.c b/ld/testsuite/ld-elf/pr21964-2a.c
new file mode 100644
index 0000000..6331ff0
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21964-2a.c
@@ -0,0 +1,12 @@
+extern int __start___verbose[];
+extern int __stop___verbose[];
+int
+foo1 (void)
+{
+ static int my_var __attribute__((used, section("__verbose"))) = 5;
+ if (__start___verbose == __stop___verbose
+ && __start___verbose[0] != 5)
+ return -1;
+ else
+ return 0;
+}
diff --git a/ld/testsuite/ld-elf/pr21964-2b.c b/ld/testsuite/ld-elf/pr21964-2b.c
new file mode 100644
index 0000000..1507b22
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21964-2b.c
@@ -0,0 +1,12 @@
+extern int __start___verbose[];
+extern int __stop___verbose[];
+int
+foo2 (void)
+{
+ static int my_var __attribute__((used, section("__verbose"))) = 10;
+ if (__start___verbose == __stop___verbose
+ || __start___verbose[0] != 10)
+ return -1;
+ else
+ return 0;
+}
diff --git a/ld/testsuite/ld-elf/pr21964-2c.c b/ld/testsuite/ld-elf/pr21964-2c.c
new file mode 100644
index 0000000..f879dd5
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr21964-2c.c
@@ -0,0 +1,32 @@
+#include <dlfcn.h>
+#include <stdio.h>
+
+extern int foo1 (void);
+
+int main()
+{
+ void *dl;
+ void *sym;
+ int (*func) (void);
+
+ if (foo1 () != 0)
+ return 1;
+
+ dl = dlopen("pr21964-2b.so", RTLD_LAZY);
+ if (!dl)
+ return 2;
+
+ sym = dlsym(dl, "__start___verbose");
+ if (!sym)
+ return 3;
+
+ func = dlsym(dl, "foo2");
+ if (!func)
+ return 4;
+ if (func () == 0)
+ printf ("PASS\n");
+
+ dlclose(dl);
+
+ return 0;
+}
diff --git a/ld/testsuite/ld-elf/pr22150.vd b/ld/testsuite/ld-elf/pr22150.vd
new file mode 100644
index 0000000..d43f7fe
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr22150.vd
@@ -0,0 +1,2 @@
+
+No version information found in this file.
diff --git a/ld/testsuite/ld-elf/pr22150.ver b/ld/testsuite/ld-elf/pr22150.ver
new file mode 100644
index 0000000..962d6d2
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr22150.ver
@@ -0,0 +1,6 @@
+BAR {
+global:
+ bar;
+local:
+ *;
+};
diff --git a/ld/testsuite/ld-elf/pr22150a.s b/ld/testsuite/ld-elf/pr22150a.s
new file mode 100644
index 0000000..051a965
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr22150a.s
@@ -0,0 +1,6 @@
+ .text
+ .globl bar
+ .type bar, %function
+bar:
+ .byte 0
+ .size bar, .-bar
diff --git a/ld/testsuite/ld-elf/pr22150b.s b/ld/testsuite/ld-elf/pr22150b.s
new file mode 100644
index 0000000..dcdf509
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr22150b.s
@@ -0,0 +1,13 @@
+ .section .text._start,"ax",%progbits
+ .globl _start
+ .type _start, %function
+_start:
+ .byte 0
+ .size _start, .-_start
+
+ .section .text.bar,"ax",%progbits
+ .globl foo
+ .type foo, %function
+foo:
+ .dc.a bar
+ .size foo, .-foo
diff --git a/ld/testsuite/ld-elf/provide-hidden-1.ld b/ld/testsuite/ld-elf/provide-hidden-1.ld
index 479862d..ab10bc9 100644
--- a/ld/testsuite/ld-elf/provide-hidden-1.ld
+++ b/ld/testsuite/ld-elf/provide-hidden-1.ld
@@ -13,4 +13,5 @@ SECTIONS
.dynstr : { *(.dynstr) }
.dynamic : { *(.dynamic) }
.hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
}
diff --git a/ld/testsuite/ld-elf/provide-hidden-2.ld b/ld/testsuite/ld-elf/provide-hidden-2.ld
index 17e526b..3fc7513 100644
--- a/ld/testsuite/ld-elf/provide-hidden-2.ld
+++ b/ld/testsuite/ld-elf/provide-hidden-2.ld
@@ -9,4 +9,5 @@ SECTIONS
.dynstr : { *(.dynstr) }
.dynamic : { *(.dynamic) }
.hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
}
diff --git a/ld/testsuite/ld-elf/provide-hidden-s.ld b/ld/testsuite/ld-elf/provide-hidden-s.ld
index fc5761a..bd6aaf0 100644
--- a/ld/testsuite/ld-elf/provide-hidden-s.ld
+++ b/ld/testsuite/ld-elf/provide-hidden-s.ld
@@ -9,4 +9,5 @@ SECTIONS
.dynstr : { *(.dynstr) }
.dynamic : { *(.dynamic) }
.hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
}
diff --git a/ld/testsuite/ld-elf/readelf.exp b/ld/testsuite/ld-elf/readelf.exp
index 6831c19..82673f6 100644
--- a/ld/testsuite/ld-elf/readelf.exp
+++ b/ld/testsuite/ld-elf/readelf.exp
@@ -44,7 +44,7 @@ if [check_shared_lib_support] {
[list \
"readelf version information" \
"$LFLAGS --no-dynamic-linker -e 0 --export-dynamic -T ver_def.ld\
- --version-script=ver_def.ver" \
+ --hash-style=sysv --version-script=ver_def.ver" \
"" "" \
{ver_def.s} \
[list [list readelf --version-info ver_def$DUMP.vd]] \
diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp
index 8b139ec..2bb0750 100644
--- a/ld/testsuite/ld-elf/shared.exp
+++ b/ld/testsuite/ld-elf/shared.exp
@@ -170,6 +170,29 @@ if { [check_gc_sections_available] } {
"pr21233-3"]]
}
+if { [check_gc_sections_available] } {
+ run_ld_link_tests [list \
+ [list \
+ "Build pr22150.so" \
+ "$LFLAGS -shared --version-script pr22150.ver" \
+ "" \
+ "$AFLAGS_PIC" \
+ {pr22150a.s} \
+ {} \
+ "pr22150.so" \
+ ] \
+ [list \
+ "Build pr22150" \
+ "$LFLAGS -e _start --gc-sections" \
+ "tmpdir/pr22150.so" \
+ "" \
+ {pr22150b.s} \
+ {{readelf -V pr22150.vd}} \
+ "pr22150" \
+ ] \
+ ]
+}
+
# Check to see if the C compiler works
if { [which $CC] == 0 } {
return
@@ -423,6 +446,18 @@ set build_tests {
{"Build libpr19073.so"
"-shared -Wl,--version-script=pr19073.map tmpdir/pr19073a.o" "-fPIC"
{dummy.c} {{readelf {--dyn-syms --wide} pr19073.rd}} "libpr19073.so"}
+ {"Build pr21964-1a.so"
+ "-shared" "-fPIC"
+ {pr21964-1a.c} {} "pr21964-1a.so"}
+ {"Build pr21964-1b.so"
+ "-shared" "-fPIC"
+ {pr21964-1b.c} {} "pr21964-1b.so"}
+ {"Build pr21964-2a.so"
+ "-shared" "-fPIC"
+ {pr21964-2a.c} {} "pr21964-2a.so"}
+ {"Build pr21964-2b.so"
+ "-shared" "-fPIC"
+ {pr21964-2b.c} {} "pr21964-2b.so"}
}
run_cc_link_tests $build_tests
@@ -540,6 +575,9 @@ set run_tests [list \
[list "Run pr18458" \
"-Wl,--no-as-needed,-z,now tmpdir/libpr18458a.so tmpdir/libpr18458b.so" "" \
{pr18458c.c} "pr18458" "pass.out" ] \
+ [list "Run pr21964-1" \
+ "-Wl,--no-as-needed,-rpath,tmpdir tmpdir/pr21964-1a.so tmpdir/pr21964-1b.so" "" \
+ {pr21964-1c.c} "pr21964-1" "pass.out" ] \
]
# NetBSD ELF systems do not currently support the .*_array sections.
@@ -586,6 +624,9 @@ set dlopen_run_tests [list \
[list "Run dl6d1 with --dynamic-list-data and dlopen on libdl6d.so" \
"-Wl,--no-as-needed,--dynamic-list-data $extralibs" "" \
{dl6dmain.c} "dl6d1" "dl6b.out" ] \
+ [list "Run pr21964-2" \
+ "-Wl,--no-as-needed,-rpath,tmpdir tmpdir/pr21964-2a.so $extralibs" "" \
+ {pr21964-2c.c} "pr21964-2" "pass.out" ] \
]
# Only run them when libdl is available.
diff --git a/ld/testsuite/ld-elf/sizeofa.d b/ld/testsuite/ld-elf/sizeofa.d
index 572ffbd..3eaa4e5 100644
--- a/ld/testsuite/ld-elf/sizeofa.d
+++ b/ld/testsuite/ld-elf/sizeofa.d
@@ -6,7 +6,7 @@ Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND +
#...
- +[0-9]+: +[a-f0-9]+ +0 +(NOTYPE|OBJECT) +(LOC|GLOB)AL +DEFAULT +[0-9]+ +___?stop_scnfoo
+ +[0-9]+: +[a-f0-9]+ +0 +(NOTYPE|OBJECT) +GLOBAL +(PROTECTED|DEFAULT) +[0-9]+ +___?stop_scnfoo
#...
+[0-9]+: +[a-f0-9]+ +0 +(NOTYPE|OBJECT) +GLOBAL +DEFAULT +UND +.sizeof.scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/sizeofb.d b/ld/testsuite/ld-elf/sizeofb.d
index ac4a6a4..c7d4edd 100644
--- a/ld/testsuite/ld-elf/sizeofb.d
+++ b/ld/testsuite/ld-elf/sizeofb.d
@@ -7,7 +7,5 @@ Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND +
#...
- +[0-9]+: +[a-f0-9]+ +0 +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?stop_scnfoo
-#...
- +[0-9]+: 0+10 + +0 +NOTYPE +LOCAL +DEFAULT +ABS +.sizeof.scnfoo
+ +[0-9]+: +[a-f0-9]+ +0 +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?stop_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/stab.d b/ld/testsuite/ld-elf/stab.d
index 346640d..27b99cb 100644
--- a/ld/testsuite/ld-elf/stab.d
+++ b/ld/testsuite/ld-elf/stab.d
@@ -5,10 +5,10 @@
#notarget: "ia64-*-*" "alpha*"
# Disabled on alpha because the entry point may be above 4GB but the stabs
-# value on 32 bits.
+# value only 32 bits.
#...
- \[[0-9 ][0-9]\] \.stab +PROGBITS +0+ [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ +[1-9]+ +0.*
+.* \.stab +PROGBITS +0+ [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ +[1-9][0-9]* +0.*
#...
- \[[0-9 ][0-9]\] \.stabstr +STRTAB +0+ [0-9a-f]+ [0-9a-f]+ 00 +0 +0.*
+.* \.stabstr +STRTAB +0+ [0-9a-f]+ [0-9a-f]+ 00 +0 +0.*
#...
diff --git a/ld/testsuite/ld-elf/startofa.d b/ld/testsuite/ld-elf/startofa.d
index 07d5dda..6a4460f 100644
--- a/ld/testsuite/ld-elf/startofa.d
+++ b/ld/testsuite/ld-elf/startofa.d
@@ -6,7 +6,7 @@ Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND +
#...
- +[0-9]+: +[a-f0-9]+ +0 +(NOTYPE|OBJECT) +(LOCAL +DEFAULT +[0-9]+ +___?start_scnfoo|GLOBAL +DEFAULT +UND +.startof.scnfoo)
+ +[0-9]+: +[a-f0-9]+ +0 +(NOTYPE|OBJECT) +GLOBAL +DEFAULT +UND +.startof.scnfoo
#...
- +[0-9]+: +[a-f0-9]+ +0 +(NOTYPE|OBJECT) +GLOBAL +DEFAULT +(UND +.startof.scnfoo|[0-9]+ +___?start_scnfoo)
+ +[0-9]+: +[a-f0-9]+ +0 +(NOTYPE|OBJECT) +GLOBAL +(PROTECTED|DEFAULT) +[0-9]+ +___?start_scnfoo
#pass
diff --git a/ld/testsuite/ld-elf/startofb.d b/ld/testsuite/ld-elf/startofb.d
index 5d659bb..b0cf563 100644
--- a/ld/testsuite/ld-elf/startofb.d
+++ b/ld/testsuite/ld-elf/startofb.d
@@ -7,7 +7,5 @@ Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND +
#...
- +[0-9]+: +[a-f0-9]+ +0 +NOTYPE +LOCAL +DEFAULT +[0-9]+ +.startof.scnfoo
-#...
- +[0-9]+: +[a-f0-9]+ +0 +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?start_scnfoo
+ +[0-9]+: +[a-f0-9]+ +0 +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +___?start_scnfoo
#pass
diff --git a/ld/testsuite/ld-elfcomm/elfcomm.exp b/ld/testsuite/ld-elfcomm/elfcomm.exp
index da33768..83fa8ef 100644
--- a/ld/testsuite/ld-elfcomm/elfcomm.exp
+++ b/ld/testsuite/ld-elfcomm/elfcomm.exp
@@ -101,7 +101,7 @@ proc test_sort_common {} {
test_sort_common
-set test1 "size/aligment change of common symbols"
+set test1 "size/alignment change of common symbols"
set test1w1 "$test1 (warning 1)"
set test1w2 "$test1 (warning 2)"
set test1c1 "$test1 (change 1)"
diff --git a/ld/testsuite/ld-elfvsb/elfvsb.exp b/ld/testsuite/ld-elfvsb/elfvsb.exp
index 7552f7a..8e2b55b 100644
--- a/ld/testsuite/ld-elfvsb/elfvsb.exp
+++ b/ld/testsuite/ld-elfvsb/elfvsb.exp
@@ -377,7 +377,7 @@ proc visibility_run {visibility} {
visibility_test $visibility vnp "visibility ($visibility) (non PIC, load offset)" \
mainnp.o sh1np.o sh2np.o elfvsb \
- "-T $srcdir/$subdir/elf-offset.ld"
+ "-Wl,-T,$srcdir/$subdir/elf-offset.ld,--hash-style=sysv"
} }
# Now compile the code using -fpic.
diff --git a/ld/testsuite/ld-elfvsb/hidden2.d b/ld/testsuite/ld-elfvsb/hidden2.d
index 30f7f95..72a42d5 100644
--- a/ld/testsuite/ld-elfvsb/hidden2.d
+++ b/ld/testsuite/ld-elfvsb/hidden2.d
@@ -1,5 +1,5 @@
#source: hidden2.s
-#ld: -shared -T hidden2.ld
+#ld: -shared -T hidden2.ld --hash-style=sysv
#readelf: -Ds
# It is also ok to remove this symbol, but we currently make it local.
diff --git a/ld/testsuite/ld-frv/fdpic-pie-1.d b/ld/testsuite/ld-frv/fdpic-pie-1.d
index 5369d07..6b40e74 100644
--- a/ld/testsuite/ld-frv/fdpic-pie-1.d
+++ b/ld/testsuite/ld-frv/fdpic-pie-1.d
@@ -1,7 +1,7 @@
#name: FRV uClinux PIC relocs to local symbols, pie linking
#source: fdpic1.s
#objdump: -DR -j .text -j .data -j .got -j .plt
-#ld: -pie
+#ld: -pie --hash-style=sysv
.*: file format elf.*frv.*
diff --git a/ld/testsuite/ld-frv/fdpic-pie-2.d b/ld/testsuite/ld-frv/fdpic-pie-2.d
index 40c1532..9e06d8f 100644
--- a/ld/testsuite/ld-frv/fdpic-pie-2.d
+++ b/ld/testsuite/ld-frv/fdpic-pie-2.d
@@ -1,7 +1,7 @@
#name: FRV uClinux PIC relocs to global symbols, pie linking
#source: fdpic2.s
#objdump: -DR -j .text -j .data -j .got -j .plt
-#ld: -pie
+#ld: -pie --hash-style=sysv
.*: file format elf.*frv.*
diff --git a/ld/testsuite/ld-frv/fdpic-pie-6.d b/ld/testsuite/ld-frv/fdpic-pie-6.d
index 743166e..2285322 100644
--- a/ld/testsuite/ld-frv/fdpic-pie-6.d
+++ b/ld/testsuite/ld-frv/fdpic-pie-6.d
@@ -1,7 +1,7 @@
#name: FRV uClinux PIC relocs to weak undefined symbols, pie linking
#source: fdpic6.s
#objdump: -DR -j .text -j .data -j .got -j .plt
-#ld: -pie --defsym WD1=D6
+#ld: -pie --hash-style=sysv --defsym WD1=D6
.*: file format elf.*frv.*
diff --git a/ld/testsuite/ld-frv/fdpic-pie-7.d b/ld/testsuite/ld-frv/fdpic-pie-7.d
index 7eceec2..3968c0b 100644
--- a/ld/testsuite/ld-frv/fdpic-pie-7.d
+++ b/ld/testsuite/ld-frv/fdpic-pie-7.d
@@ -1,7 +1,7 @@
#name: FRV uClinux PIC relocs to local symbols with addends, pie linking
#source: fdpic7.s
#objdump: -DR -j .text -j .data -j .got -j .plt
-#ld: -pie
+#ld: -pie --hash-style=sysv
.*: file format elf.*frv.*
diff --git a/ld/testsuite/ld-frv/fdpic-pie-8.d b/ld/testsuite/ld-frv/fdpic-pie-8.d
index 8f7c344..62f456b 100644
--- a/ld/testsuite/ld-frv/fdpic-pie-8.d
+++ b/ld/testsuite/ld-frv/fdpic-pie-8.d
@@ -1,7 +1,7 @@
#name: FRV uClinux PIC relocs to global symbols with addends, pie linking
#source: fdpic8.s
#objdump: -DR -j .text -j .data -j .got -j .plt
-#ld: -pie
+#ld: -pie --hash-style=sysv
.*: file format elf.*frv.*
diff --git a/ld/testsuite/ld-frv/fdpic-shared-2.d b/ld/testsuite/ld-frv/fdpic-shared-2.d
index 13e140a..85ab28d 100644
--- a/ld/testsuite/ld-frv/fdpic-shared-2.d
+++ b/ld/testsuite/ld-frv/fdpic-shared-2.d
@@ -1,7 +1,7 @@
#name: FRV uClinux PIC relocs to (mostly) global symbols, shared linking
#source: fdpic2.s
#objdump: -DR -j .text -j .data -j .got -j .plt
-#ld: -shared --version-script fdpic2min.ldv
+#ld: -shared --hash-style=sysv --version-script fdpic2min.ldv
.*: file format elf.*frv.*
diff --git a/ld/testsuite/ld-frv/fdpic-shared-5.d b/ld/testsuite/ld-frv/fdpic-shared-5.d
index dbfd143..6ec516a 100644
--- a/ld/testsuite/ld-frv/fdpic-shared-5.d
+++ b/ld/testsuite/ld-frv/fdpic-shared-5.d
@@ -1,7 +1,7 @@
#name: FRV uClinux PIC relocs to undefined symbols, shared linking
#source: fdpic5.s
#objdump: -DRz -j .text -j .data -j .got -j .plt
-#ld: -shared
+#ld: -shared --hash-style=sysv
.*: file format elf.*frv.*
diff --git a/ld/testsuite/ld-frv/fdpic-shared-6.d b/ld/testsuite/ld-frv/fdpic-shared-6.d
index 2191af8..70111fb 100644
--- a/ld/testsuite/ld-frv/fdpic-shared-6.d
+++ b/ld/testsuite/ld-frv/fdpic-shared-6.d
@@ -1,7 +1,7 @@
#name: FRV uClinux PIC relocs to weak undefined symbols, shared linking
#source: fdpic6.s
#objdump: -DR -j .text -j .data -j .got -j .plt
-#ld: -shared --defsym WD1=D6 --version-script fdpic6.ldv
+#ld: -shared --hash-style=sysv --defsym WD1=D6 --version-script fdpic6.ldv
.*: file format elf.*frv.*
diff --git a/ld/testsuite/ld-frv/fdpic-shared-8.d b/ld/testsuite/ld-frv/fdpic-shared-8.d
index e50e7b9..30a9cfb 100644
--- a/ld/testsuite/ld-frv/fdpic-shared-8.d
+++ b/ld/testsuite/ld-frv/fdpic-shared-8.d
@@ -1,7 +1,7 @@
#name: FRV uClinux PIC relocs to (mostly) global symbols with addends, shared linking
#source: fdpic8.s
#objdump: -DR -j .text -j .data -j .got -j .plt
-#ld: -shared --version-script fdpic8min.ldv
+#ld: -shared --hash-style=sysv --version-script fdpic8min.ldv
.*: file format elf.*frv.*
diff --git a/ld/testsuite/ld-frv/fdpic-shared-local-2.d b/ld/testsuite/ld-frv/fdpic-shared-local-2.d
index 0074172..76fd777 100644
--- a/ld/testsuite/ld-frv/fdpic-shared-local-2.d
+++ b/ld/testsuite/ld-frv/fdpic-shared-local-2.d
@@ -1,7 +1,7 @@
#name: FRV uClinux PIC relocs to forced-local symbols, shared linking
#source: fdpic2.s
#objdump: -DR -j .text -j .data -j .got -j .plt
-#ld: -shared --version-script fdpic2.ldv
+#ld: -shared --hash-style=sysv --version-script fdpic2.ldv
.*: file format elf.*frv.*
diff --git a/ld/testsuite/ld-frv/fdpic-shared-local-8.d b/ld/testsuite/ld-frv/fdpic-shared-local-8.d
index 7d238e9..82130a1 100644
--- a/ld/testsuite/ld-frv/fdpic-shared-local-8.d
+++ b/ld/testsuite/ld-frv/fdpic-shared-local-8.d
@@ -1,7 +1,7 @@
#name: FRV uClinux PIC relocs to forced-local symbols with addends, shared linking
#source: fdpic8.s
#objdump: -DR -j .text -j .data -j .got -j .plt
-#ld: -shared --version-script fdpic8.ldv
+#ld: -shared --hash-style=sysv --version-script fdpic8.ldv
.*: file format elf.*frv.*
diff --git a/ld/testsuite/ld-frv/tls-dynamic-2.d b/ld/testsuite/ld-frv/tls-dynamic-2.d
index d943e86..be7e6c8 100644
--- a/ld/testsuite/ld-frv/tls-dynamic-2.d
+++ b/ld/testsuite/ld-frv/tls-dynamic-2.d
@@ -1,7 +1,7 @@
#name: FRV TLS relocs with addends, dynamic linking
#source: tls-2.s
#objdump: -DR -j .text -j .got -j .plt
-#ld: tmpdir/tls-1-dep.so
+#ld: --hash-style=sysv tmpdir/tls-1-dep.so
.*: file format elf.*frv.*
diff --git a/ld/testsuite/ld-gc/pr19161.d b/ld/testsuite/ld-gc/pr19161.d
index baee8da..474cbd4 100644
--- a/ld/testsuite/ld-gc/pr19161.d
+++ b/ld/testsuite/ld-gc/pr19161.d
@@ -2,7 +2,7 @@
#source: dummy.s
#ld: --gc-sections -e main tmpdir/pr19161-1.o tmpdir/pr19161-2.o
#nm: --format=bsd
-#xfail: epiphany-*-* frv-*-* hppa-*-* iq2000-*-* lm32-*-* m32c-*-*
+#xfail: epiphany-*-* frv-*-* iq2000-*-* lm32-*-* m32c-*-*
#xfail: mips64vr-*-* msp430-*-* powerpc*-*-eabivle rl78-*-* rx-*-* sh*-*-*
#...
diff --git a/ld/testsuite/ld-gc/pr20022.d b/ld/testsuite/ld-gc/pr20022.d
index 906f73d..40473c2 100644
--- a/ld/testsuite/ld-gc/pr20022.d
+++ b/ld/testsuite/ld-gc/pr20022.d
@@ -9,5 +9,5 @@
#...
\[[ 0-9]+\] _foo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +[0-9a-f]+[ \t]+.*
#...
- +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +__start__foo
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +PROTECTED +[0-9]+ +__start__foo
#pass
diff --git a/ld/testsuite/ld-gc/start.d b/ld/testsuite/ld-gc/start.d
index 9113b48..18e74c1 100644
--- a/ld/testsuite/ld-gc/start.d
+++ b/ld/testsuite/ld-gc/start.d
@@ -5,5 +5,5 @@
#notarget: *-*-*aout *-*-*oldld frv-*-linux* metag-*-linux*
#...
-[0-9a-f]+ d +__start__foo
+[0-9a-f]+ D +__start__foo
#...
diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
index 6c53046..d79c4583 100644
--- a/ld/testsuite/ld-i386/i386.exp
+++ b/ld/testsuite/ld-i386/i386.exp
@@ -24,23 +24,24 @@
if {[istarget "i?86-*-vxworks"]} {
set i386tests {
- {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" ""
+ {"VxWorks shared library test 1"
+ "-shared -Tvxworks1.ld --hash-style=sysv" ""
"" {vxworks1-lib.s}
{{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
{readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
"libvxworks1.so"}
{"VxWorks executable test 1 (dynamic)" \
- "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" ""
+ "tmpdir/libvxworks1.so -Tvxworks1.ld --hash-style=sysv -q --force-dynamic" ""
"" {vxworks1.s}
{{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
"vxworks1"}
{"VxWorks executable test 2 (dynamic)" \
- "-Tvxworks1.ld -q --force-dynamic" ""
+ "-Tvxworks1.ld --hash-style=sysv -q --force-dynamic" ""
"" {vxworks2.s}
{{readelf --segments vxworks2.sd}}
"vxworks2"}
{"VxWorks executable test 2 (static)"
- "-Tvxworks1.ld" ""
+ "-Tvxworks1.ld --hash-style=sysv" ""
"" {vxworks2.s}
{{readelf --segments vxworks2-static.sd}}
"vxworks2"}
@@ -128,20 +129,20 @@ set i386tests {
"-shared -melf_i386 tmpdir/libpltlib.so" "" "--32" {plt-pic.s}
{{objdump -drj.plt plt-pic.pd}} "libplt-pic.so"}
{"TLS -fpic -shared transitions"
- "-shared -melf_i386 --no-ld-generated-unwind-info" ""
+ "-shared -melf_i386 --no-ld-generated-unwind-info --hash-style=sysv" ""
"--32" {tlspic1.s tlspic2.s}
{{readelf -Ssrl tlspic.rd} {objdump -drj.text tlspic.dd}
{objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}}
"libtlspic.so"}
{"TLS -fpic -shared transitions without PLT"
- "-shared -melf_i386 --no-ld-generated-unwind-info" ""
+ "-shared -melf_i386 --no-ld-generated-unwind-info --hash-style=sysv" ""
"-mrelax-relocations=yes --32"
{tlspic3.s tlspic2.s}
{{readelf -Ssrl tlspic2.rd} {objdump -drj.text tlspic2.dd}
{objdump -sj.got tlspic2.sd} {objdump -sj.tdata tlspic2.td}}
"libtlspic2.so"}
{"TLS descriptor -fpic -shared transitions"
- "-shared -melf_i386 --no-ld-generated-unwind-info" ""
+ "-shared -melf_i386 --no-ld-generated-unwind-info --hash-style=sysv" ""
"--32" {tlsdesc.s tlspic2.s}
{{readelf -Ssrl tlsdesc.rd} {objdump -drj.text tlsdesc.dd}
{objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td}}
@@ -149,31 +150,31 @@ set i386tests {
{"Helper shared library" "-shared -melf_i386" ""
"--32" {tlslib.s} {} "libtlslib.so"}
{"TLS -fpic and -fno-pic exec transitions"
- "-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info" ""
+ "-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info --hash-style=sysv" ""
"--32" {tlsbinpic.s tlsbin.s}
{{readelf -Ssrl tlsbin.rd} {objdump -drj.text tlsbin.dd}
{objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}}
"tlsbin"}
{"TLS -fpic and -fno-pic exec transitions without PLT"
- "-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info" ""
+ "-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info --hash-style=sysv" ""
"-mrelax-relocations=yes --32"
{tlsbinpic2.s tlsbin.s}
{{readelf -Ssrl tlsbin2.rd} {objdump -drj.text tlsbin2.dd}
{objdump -sj.got tlsbin2.sd} {objdump -sj.tdata tlsbin2.td}}
"tlsbin2"}
{"TLS descriptor -fpic and -fno-pic exec transitions"
- "-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info" ""
+ "-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info --hash-style=sysv" ""
"--32" {tlsbindesc.s tlsbin.s}
{{readelf -Ssrl tlsbindesc.rd} {objdump -drj.text tlsbindesc.dd}
{objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}}
"tlsbindesc"}
{"TLS -fno-pic -shared"
- "-shared -melf_i386 --no-ld-generated-unwind-info" ""
+ "-shared -melf_i386 --no-ld-generated-unwind-info --hash-style=sysv" ""
"--32" {tlsnopic1.s tlsnopic2.s}
{{readelf -Ssrl tlsnopic.rd} {objdump -drj.text tlsnopic.dd}
{objdump -sj.got tlsnopic.sd}} "libtlsnopic.so"}
{"TLS with global dynamic and descriptors"
- "-shared -melf_i386 --no-ld-generated-unwind-info" ""
+ "-shared -melf_i386 --no-ld-generated-unwind-info --hash-style=sysv" ""
"--32" {tlsgdesc.s}
{{readelf -Ssrl tlsgdesc.rd} {objdump -drj.text tlsgdesc.dd}}
"libtlsgdesc.so"}
@@ -307,6 +308,7 @@ run_dump_test "protected4"
run_dump_test "protected5"
run_dump_test "protected6a"
run_dump_test "protected6b"
+run_dump_test "protected7"
run_dump_test "tlspie1"
run_dump_test "tlspie2"
run_dump_test "tlspie3a"
@@ -434,6 +436,15 @@ run_dump_test "property-x86-shstk3a"
run_dump_test "property-x86-shstk3b"
run_dump_test "property-x86-shstk4"
run_dump_test "property-x86-shstk5"
+run_dump_test "pie1"
+run_dump_test "pie1-nacl"
+run_dump_test "pr21884"
+run_dump_test "pr21884-nacl"
+run_dump_test "pr22115-1a"
+run_dump_test "pr22115-1b"
+run_dump_test "pr22115-1c"
+run_dump_test "pr22115-1d"
+run_dump_test "pr22135"
if { !([istarget "i?86-*-linux*"]
|| [istarget "i?86-*-gnu*"]
@@ -462,8 +473,8 @@ proc undefined_weak {cflags ldflags} {
set testname "$testname ($cflags $ldflags)"
}
- if { [ regexp "\-fPIE" $cflags]
- && ![ regexp "\-z nodynamic-undefined-weak" $ldflags] } {
+ if { [string match "*-fPIE*" $cflags]
+ && ![string match "*-z nodynamic-undefined-weak*" $ldflags] } {
set weak_symbol "Weak defined"
} else {
set weak_symbol "Weak undefined"
@@ -1239,6 +1250,25 @@ if { [isnative]
if { [isnative]
&& [istarget "i?86-*-*"]
&& [which $CC] != 0 } {
+ run_cc_link_tests [list \
+ [list \
+ "Build pr22001-1.so" \
+ "-shared" \
+ "" \
+ { pr22001-1a.c } \
+ {} \
+ "pr22001-1.so" \
+ ] \
+ [list \
+ "Build pr21997-1.so" \
+ "-shared" \
+ "" \
+ { property-stack.S property-no-copy.S pr21997-1a.S } \
+ {} \
+ "pr21997-1.so" \
+ ] \
+ ]
+
run_ld_link_exec_tests [list \
[list \
"Run weakundef1 without PIE" \
@@ -1250,15 +1280,106 @@ if { [isnative]
"$NOPIE_CFLAGS" \
] \
[list \
- "Run weakundef1 with PIE" \
- "-pie" \
+ "Run pr22001-1" \
+ "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
"" \
- { weakundef1.c } \
- "weakundef1pie" \
+ { pr22001-1b.c } \
+ "pr22001-1" \
+ "pass.out" \
+ "$NOPIE_CFLAGS" \
+ ] \
+ [list \
+ "Run pr22001-1 (PIE 1)" \
+ "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
+ "" \
+ { pr22001-1c.S } \
+ "pr22001-1-pie-1" \
+ "pass.out" \
+ ] \
+ [list \
+ "Run pr22001-1 (PIE 2)" \
+ "-pie -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
+ "" \
+ { pr22001-1c.S } \
+ "pr22001-1-pie-2" \
+ "pass.out" \
+ ] \
+ [list \
+ "Run pr22001-1 (PIC 1)" \
+ "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
+ "" \
+ { pr22001-1b.c } \
+ "pr22001-1-pic-1" \
+ "pass.out" \
+ "-fPIC" \
+ ] \
+ [list \
+ "Run pr22001-1 (PIC 2)" \
+ "-pie -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
+ "" \
+ { pr22001-1b.c } \
+ "pr22001-1-pic-2" \
+ "pass.out" \
+ "-fPIC" \
+ ] \
+ [list \
+ "Run pr21997-1" \
+ "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr21997-1.so" \
+ "" \
+ { pr21997-1b.c } \
+ "pr21997-1" \
+ "pass.out" \
+ "$NOPIE_CFLAGS" \
+ ] \
+ [list \
+ "Run pr21997-1 (PIC 1)" \
+ "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr21997-1.so" \
+ "" \
+ { pr21997-1b.c } \
+ "pr21997-1-pic-1" \
+ "pass.out" \
+ "-fPIC" \
+ ] \
+ [list \
+ "Run pr21997-1 (PIC 2)" \
+ "-pie -Wl,--no-as-needed tmpdir/pr21997-1.so" \
+ "" \
+ { pr21997-1b.c } \
+ "pr21997-1-pic-2" \
+ "pass.out" \
+ "-fPIC" \
+ ] \
+ [list \
+ "Run pr21997-1 (PIE 1)" \
+ "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr21997-1.so" \
+ "" \
+ { pr21997-1c.S } \
+ "pr21997-1-pie-1" \
+ "pass.out" \
+ ] \
+ [list \
+ "Run pr21997-1 (PIE 2)" \
+ "-pie -Wl,--no-as-needed tmpdir/pr21997-1.so" \
+ "" \
+ { pr21997-1c.S } \
+ "pr21997-1-pie-2" \
"pass.out" \
- "-fPIE" \
] \
]
+
+ if { [at_least_gcc_version 5 0] } {
+ run_ld_link_exec_tests [list \
+ [list \
+ "Run weakundef1 with PIE" \
+ "-pie" \
+ "" \
+ { weakundef1.c } \
+ "weakundef1pie" \
+ "pass.out" \
+ "-fPIE" \
+ ] \
+ ]
+ }
}
if { !([istarget "i?86-*-linux*"]
@@ -1269,7 +1390,7 @@ if { !([istarget "i?86-*-linux*"]
run_ld_link_tests [list \
[list \
"basic PLT generation (non-PIC, -z now)" \
- "-z now -melf_i386 tmpdir/libpltlib.so" \
+ "-z now -melf_i386 --hash-style=sysv tmpdir/libpltlib.so" \
"" \
"--32" \
{plt2.s} \
diff --git a/ld/testsuite/ld-i386/ibt-plt-1.d b/ld/testsuite/ld-i386/ibt-plt-1.d
index 1c90591..a131675 100644
--- a/ld/testsuite/ld-i386/ibt-plt-1.d
+++ b/ld/testsuite/ld-i386/ibt-plt-1.d
@@ -1,5 +1,5 @@
#as: --32
-#ld: -shared -m elf_i386
+#ld: -shared -m elf_i386 --hash-style=sysv
#objdump: -dw
.*: +file format .*
@@ -37,7 +37,7 @@ Disassembly of section .text:
0+200 <foo>:
+[a-f0-9]+: 53 push %ebx
+[a-f0-9]+: e8 18 00 00 00 call 21e <__x86.get_pc_thunk.bx>
- +[a-f0-9]+: 81 c3 22 11 00 00 add \$0x1122,%ebx
+ +[a-f0-9]+: 81 c3 36 11 00 00 add \$0x1136,%ebx
+[a-f0-9]+: 83 ec 08 sub \$0x8,%esp
+[a-f0-9]+: e8 dc ff ff ff call 1f0 <bar2@plt>
+[a-f0-9]+: e8 c7 ff ff ff call 1e0 <bar1@plt>
diff --git a/ld/testsuite/ld-i386/ibt-plt-2a.d b/ld/testsuite/ld-i386/ibt-plt-2a.d
index 4881dea..13c6949 100644
--- a/ld/testsuite/ld-i386/ibt-plt-2a.d
+++ b/ld/testsuite/ld-i386/ibt-plt-2a.d
@@ -1,6 +1,6 @@
#source: ibt-plt-2.s
#as: --32
-#ld: -shared -m elf_i386 -z ibtplt
+#ld: -shared -m elf_i386 -z ibtplt --hash-style=sysv
#objdump: -dw
.*: +file format .*
@@ -38,7 +38,7 @@ Disassembly of section .text:
0+200 <foo>:
+[a-f0-9]+: 53 push %ebx
+[a-f0-9]+: e8 18 00 00 00 call 21e <__x86.get_pc_thunk.bx>
- +[a-f0-9]+: 81 c3 22 11 00 00 add \$0x1122,%ebx
+ +[a-f0-9]+: 81 c3 36 11 00 00 add \$0x1136,%ebx
+[a-f0-9]+: 83 ec 08 sub \$0x8,%esp
+[a-f0-9]+: e8 dc ff ff ff call 1f0 <bar2@plt>
+[a-f0-9]+: e8 c7 ff ff ff call 1e0 <bar1@plt>
diff --git a/ld/testsuite/ld-i386/ibt-plt-2b.d b/ld/testsuite/ld-i386/ibt-plt-2b.d
index 740b889..90541f1 100644
--- a/ld/testsuite/ld-i386/ibt-plt-2b.d
+++ b/ld/testsuite/ld-i386/ibt-plt-2b.d
@@ -1,7 +1,52 @@
#source: ibt-plt-2.s
#as: --32
-#ld: -shared -m elf_i386 -z ibtplt
-#readelf: -n
+#ld: -shared -m elf_i386 -z ibtplt --hash-style=sysv
+#readelf: -n -wf
+
+Contents of the .eh_frame section:
+
+0+ 00000014 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 1
+ Data alignment factor: -4
+ Return address column: 8
+ Augmentation data: 1b
+
+ DW_CFA_def_cfa: r4 \(esp\) ofs 4
+ DW_CFA_offset: r8 \(eip\) at cfa-4
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+18 0000001c 0000001c FDE cie=00000000 pc=00000200..0000021e
+ DW_CFA_advance_loc: 1 to 00000201
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_offset: r3 \(ebx\) at cfa-8
+ DW_CFA_advance_loc: 14 to 0000020f
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 13 to 0000021c
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_advance_loc: 1 to 0000021d
+ DW_CFA_restore: r3 \(ebx\)
+ DW_CFA_def_cfa_offset: 4
+
+0+38 00000010 0000003c FDE cie=00000000 pc=0000021e..00000222
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+4c 00000020 00000050 FDE cie=00000000 pc=000001b0..000001e0
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_advance_loc: 6 to 000001b6
+ DW_CFA_def_cfa_offset: 12
+ DW_CFA_advance_loc: 10 to 000001c0
+ DW_CFA_def_cfa_expression \(DW_OP_breg4 \(esp\): 4; DW_OP_breg8 \(eip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit9; DW_OP_ge; DW_OP_lit2; DW_OP_shl; DW_OP_plus\)
+
+0+70 00000010 00000074 FDE cie=00000000 pc=000001e0..00000200
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
Displaying notes found in: .note.gnu.property
Owner Data size Description
diff --git a/ld/testsuite/ld-i386/ibt-plt-2c.d b/ld/testsuite/ld-i386/ibt-plt-2c.d
index 2ba1d78..63f4427 100644
--- a/ld/testsuite/ld-i386/ibt-plt-2c.d
+++ b/ld/testsuite/ld-i386/ibt-plt-2c.d
@@ -1,6 +1,6 @@
#source: ibt-plt-2.s
#as: --32
-#ld: -shared -m elf_i386 -z ibt
+#ld: -shared -m elf_i386 -z ibt --hash-style=sysv
#objdump: -dw
.*: +file format .*
@@ -38,7 +38,7 @@ Disassembly of section .text:
0+200 <foo>:
+[a-f0-9]+: 53 push %ebx
+[a-f0-9]+: e8 18 00 00 00 call 21e <__x86.get_pc_thunk.bx>
- +[a-f0-9]+: 81 c3 22 11 00 00 add \$0x1122,%ebx
+ +[a-f0-9]+: 81 c3 36 11 00 00 add \$0x1136,%ebx
+[a-f0-9]+: 83 ec 08 sub \$0x8,%esp
+[a-f0-9]+: e8 dc ff ff ff call 1f0 <bar2@plt>
+[a-f0-9]+: e8 c7 ff ff ff call 1e0 <bar1@plt>
diff --git a/ld/testsuite/ld-i386/ibt-plt-2d.d b/ld/testsuite/ld-i386/ibt-plt-2d.d
index 3e02a62..f57c7e8 100644
--- a/ld/testsuite/ld-i386/ibt-plt-2d.d
+++ b/ld/testsuite/ld-i386/ibt-plt-2d.d
@@ -1,7 +1,52 @@
#source: ibt-plt-2.s
#as: --32
-#ld: -shared -m elf_i386 -z ibt
-#readelf: -n
+#ld: -shared -m elf_i386 -z ibt --hash-style=sysv
+#readelf: -n -wf
+
+Contents of the .eh_frame section:
+
+0+ 00000014 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 1
+ Data alignment factor: -4
+ Return address column: 8
+ Augmentation data: 1b
+
+ DW_CFA_def_cfa: r4 \(esp\) ofs 4
+ DW_CFA_offset: r8 \(eip\) at cfa-4
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+18 0000001c 0000001c FDE cie=00000000 pc=00000200..0000021e
+ DW_CFA_advance_loc: 1 to 00000201
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_offset: r3 \(ebx\) at cfa-8
+ DW_CFA_advance_loc: 14 to 0000020f
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 13 to 0000021c
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_advance_loc: 1 to 0000021d
+ DW_CFA_restore: r3 \(ebx\)
+ DW_CFA_def_cfa_offset: 4
+
+0+38 00000010 0000003c FDE cie=00000000 pc=0000021e..00000222
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+4c 00000020 00000050 FDE cie=00000000 pc=000001b0..000001e0
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_advance_loc: 6 to 000001b6
+ DW_CFA_def_cfa_offset: 12
+ DW_CFA_advance_loc: 10 to 000001c0
+ DW_CFA_def_cfa_expression \(DW_OP_breg4 \(esp\): 4; DW_OP_breg8 \(eip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit9; DW_OP_ge; DW_OP_lit2; DW_OP_shl; DW_OP_plus\)
+
+0+70 00000010 00000074 FDE cie=00000000 pc=000001e0..00000200
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
Displaying notes found in: .note.gnu.property
Owner Data size Description
diff --git a/ld/testsuite/ld-i386/ibt-plt-3a.d b/ld/testsuite/ld-i386/ibt-plt-3a.d
index c2ce3fd..5455c92 100644
--- a/ld/testsuite/ld-i386/ibt-plt-3a.d
+++ b/ld/testsuite/ld-i386/ibt-plt-3a.d
@@ -1,6 +1,6 @@
#source: ibt-plt-3.s
#as: --32
-#ld: -shared -m elf_i386 -z ibtplt
+#ld: -shared -m elf_i386 -z ibtplt --hash-style=sysv
#objdump: -dw
.*: +file format .*
@@ -38,7 +38,7 @@ Disassembly of section .text:
0+1e0 <foo>:
+[a-f0-9]+: 53 push %ebx
+[a-f0-9]+: e8 18 00 00 00 call 1fe <__x86.get_pc_thunk.bx>
- +[a-f0-9]+: 81 c3 06 11 00 00 add \$0x1106,%ebx
+ +[a-f0-9]+: 81 c3 1a 11 00 00 add \$0x111a,%ebx
+[a-f0-9]+: 83 ec 08 sub \$0x8,%esp
+[a-f0-9]+: e8 dc ff ff ff call 1d0 <bar2@plt>
+[a-f0-9]+: e8 c7 ff ff ff call 1c0 <bar1@plt>
diff --git a/ld/testsuite/ld-i386/ibt-plt-3b.d b/ld/testsuite/ld-i386/ibt-plt-3b.d
index d9b5be2..6e6637f 100644
--- a/ld/testsuite/ld-i386/ibt-plt-3b.d
+++ b/ld/testsuite/ld-i386/ibt-plt-3b.d
@@ -1,5 +1,49 @@
#source: ibt-plt-3.s
#as: --32
-#ld: -shared -m elf_i386 -z ibtplt
-#readelf: -n
+#ld: -shared -m elf_i386 -z ibtplt --hash-style=sysv
+#readelf: -wf -n
+
+Contents of the .eh_frame section:
+
+0+ 00000014 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 1
+ Data alignment factor: -4
+ Return address column: 8
+ Augmentation data: 1b
+
+ DW_CFA_def_cfa: r4 \(esp\) ofs 4
+ DW_CFA_offset: r8 \(eip\) at cfa-4
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+18 0000001c 0000001c FDE cie=00000000 pc=000001e0..000001fe
+ DW_CFA_advance_loc: 1 to 000001e1
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_offset: r3 \(ebx\) at cfa-8
+ DW_CFA_advance_loc: 14 to 000001ef
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 13 to 000001fc
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_advance_loc: 1 to 000001fd
+ DW_CFA_restore: r3 \(ebx\)
+ DW_CFA_def_cfa_offset: 4
+
+0+38 00000010 0000003c FDE cie=00000000 pc=000001fe..00000202
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+4c 00000020 00000050 FDE cie=00000000 pc=00000190..000001c0
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_advance_loc: 6 to 00000196
+ DW_CFA_def_cfa_offset: 12
+ DW_CFA_advance_loc: 10 to 000001a0
+ DW_CFA_def_cfa_expression \(DW_OP_breg4 \(esp\): 4; DW_OP_breg8 \(eip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit9; DW_OP_ge; DW_OP_lit2; DW_OP_shl; DW_OP_plus\)
+
+0+70 00000010 00000074 FDE cie=00000000 pc=000001c0..000001e0
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
diff --git a/ld/testsuite/ld-i386/ibt-plt-3c.d b/ld/testsuite/ld-i386/ibt-plt-3c.d
index c2ce3fd..5455c92 100644
--- a/ld/testsuite/ld-i386/ibt-plt-3c.d
+++ b/ld/testsuite/ld-i386/ibt-plt-3c.d
@@ -1,6 +1,6 @@
#source: ibt-plt-3.s
#as: --32
-#ld: -shared -m elf_i386 -z ibtplt
+#ld: -shared -m elf_i386 -z ibtplt --hash-style=sysv
#objdump: -dw
.*: +file format .*
@@ -38,7 +38,7 @@ Disassembly of section .text:
0+1e0 <foo>:
+[a-f0-9]+: 53 push %ebx
+[a-f0-9]+: e8 18 00 00 00 call 1fe <__x86.get_pc_thunk.bx>
- +[a-f0-9]+: 81 c3 06 11 00 00 add \$0x1106,%ebx
+ +[a-f0-9]+: 81 c3 1a 11 00 00 add \$0x111a,%ebx
+[a-f0-9]+: 83 ec 08 sub \$0x8,%esp
+[a-f0-9]+: e8 dc ff ff ff call 1d0 <bar2@plt>
+[a-f0-9]+: e8 c7 ff ff ff call 1c0 <bar1@plt>
diff --git a/ld/testsuite/ld-i386/ibt-plt-3d.d b/ld/testsuite/ld-i386/ibt-plt-3d.d
index 3cf159a..1ef91db 100644
--- a/ld/testsuite/ld-i386/ibt-plt-3d.d
+++ b/ld/testsuite/ld-i386/ibt-plt-3d.d
@@ -1,7 +1,52 @@
#source: ibt-plt-3.s
#as: --32
-#ld: -shared -m elf_i386 -z ibt
-#readelf: -n
+#ld: -shared -m elf_i386 -z ibt --hash-style=sysv
+#readelf: -wf -n
+
+Contents of the .eh_frame section:
+
+0+ 00000014 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 1
+ Data alignment factor: -4
+ Return address column: 8
+ Augmentation data: 1b
+
+ DW_CFA_def_cfa: r4 \(esp\) ofs 4
+ DW_CFA_offset: r8 \(eip\) at cfa-4
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+18 0000001c 0000001c FDE cie=00000000 pc=00000200..0000021e
+ DW_CFA_advance_loc: 1 to 00000201
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_offset: r3 \(ebx\) at cfa-8
+ DW_CFA_advance_loc: 14 to 0000020f
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 13 to 0000021c
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_advance_loc: 1 to 0000021d
+ DW_CFA_restore: r3 \(ebx\)
+ DW_CFA_def_cfa_offset: 4
+
+0+38 00000010 0000003c FDE cie=00000000 pc=0000021e..00000222
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+4c 00000020 00000050 FDE cie=00000000 pc=000001b0..000001e0
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_advance_loc: 6 to 000001b6
+ DW_CFA_def_cfa_offset: 12
+ DW_CFA_advance_loc: 10 to 000001c0
+ DW_CFA_def_cfa_expression \(DW_OP_breg4 \(esp\): 4; DW_OP_breg8 \(eip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit9; DW_OP_ge; DW_OP_lit2; DW_OP_shl; DW_OP_plus\)
+
+0+70 00000010 00000074 FDE cie=00000000 pc=000001e0..00000200
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
Displaying notes found in: .note.gnu.property
Owner Data size Description
diff --git a/ld/testsuite/ld-i386/pie1-nacl.d b/ld/testsuite/ld-i386/pie1-nacl.d
new file mode 100644
index 0000000..aafd6a7
--- /dev/null
+++ b/ld/testsuite/ld-i386/pie1-nacl.d
@@ -0,0 +1,18 @@
+#source: pie1.s
+#as: --32
+#ld: -pie -melf_i386 -z relro
+#objdump: -dw --sym
+#target: i?86-*-nacl* x86_64-*-nacl*
+
+.*: +file format .*
+
+SYMBOL TABLE:
+#...
+10020000 l O .got.plt 0+ _GLOBAL_OFFSET_TABLE_
+#...
+
+Disassembly of section .text:
+
+0+ <_start>:
+ +0: 8d 80 00 00 fe ef lea -0x10020000\(%eax\),%eax
+#pass
diff --git a/ld/testsuite/ld-i386/pie1.d b/ld/testsuite/ld-i386/pie1.d
new file mode 100644
index 0000000..e77b8dc
--- /dev/null
+++ b/ld/testsuite/ld-i386/pie1.d
@@ -0,0 +1,17 @@
+#as: --32
+#ld: -pie -melf_i386 -z relro
+#objdump: -dw --sym
+#notarget: i?86-*-nacl* x86_64-*-nacl*
+
+.*: +file format .*
+
+SYMBOL TABLE:
+#...
+0+2000 l O .got.plt 0+ _GLOBAL_OFFSET_TABLE_
+#...
+
+Disassembly of section .text:
+
+.* <_start>:
+.*: 8d 80 00 e0 ff ff lea -0x2000\(%eax\),%eax
+#pass
diff --git a/ld/testsuite/ld-i386/pie1.s b/ld/testsuite/ld-i386/pie1.s
new file mode 100644
index 0000000..b4d1d73
--- /dev/null
+++ b/ld/testsuite/ld-i386/pie1.s
@@ -0,0 +1,5 @@
+ .text
+ .global _start
+ .weak foo
+_start:
+ leal foo@GOTOFF(%eax), %eax
diff --git a/ld/testsuite/ld-i386/plt-pic2.dd b/ld/testsuite/ld-i386/plt-pic2.dd
index 4047db5..1d81c76 100644
--- a/ld/testsuite/ld-i386/plt-pic2.dd
+++ b/ld/testsuite/ld-i386/plt-pic2.dd
@@ -9,25 +9,25 @@
Disassembly of section .plt:
-0+180 <.plt>:
+.* <.plt>:
+[a-f0-9]+: ff b3 04 00 00 00 pushl 0x4\(%ebx\)
+[a-f0-9]+: ff a3 08 00 00 00 jmp \*0x8\(%ebx\)
+[a-f0-9]+: 00 00 add %al,\(%eax\)
...
-0+190 <fn1@plt>:
+.* <fn1@plt>:
+[a-f0-9]+: ff a3 0c 00 00 00 jmp \*0xc\(%ebx\)
+[a-f0-9]+: 68 00 00 00 00 push \$0x0
- +[a-f0-9]+: e9 e0 ff ff ff jmp 180 <.plt>
+ +[a-f0-9]+: e9 e0 ff ff ff jmp .* <.plt>
-0+1a0 <fn2@plt>:
+.* <fn2@plt>:
+[a-f0-9]+: ff a3 10 00 00 00 jmp \*0x10\(%ebx\)
+[a-f0-9]+: 68 08 00 00 00 push \$0x8
- +[a-f0-9]+: e9 d0 ff ff ff jmp 180 <.plt>
+ +[a-f0-9]+: e9 d0 ff ff ff jmp .* <.plt>
Disassembly of section .text:
-0+1b0 <foo>:
- +[a-f0-9]+: e8 db ff ff ff call 190 <fn1@plt>
- +[a-f0-9]+: e9 e6 ff ff ff jmp 1a0 <fn2@plt>
+.* <foo>:
+ +[a-f0-9]+: e8 db ff ff ff call .* <fn1@plt>
+ +[a-f0-9]+: e9 e6 ff ff ff jmp .* <fn2@plt>
#pass
diff --git a/ld/testsuite/ld-i386/pr19636-1d.d b/ld/testsuite/ld-i386/pr19636-1d.d
index ac86786..e667cae 100644
--- a/ld/testsuite/ld-i386/pr19636-1d.d
+++ b/ld/testsuite/ld-i386/pr19636-1d.d
@@ -9,7 +9,7 @@
Disassembly of section .plt:
-0+c0 <.plt>:
+.* <.plt>:
[ ]*[a-f0-9]+: ff b3 04 00 00 00 pushl 0x4\(%ebx\)
[ ]*[a-f0-9]+: ff a3 08 00 00 00 jmp \*0x8\(%ebx\)
[ ]*[a-f0-9]+: 00 00 add %al,\(%eax\)
@@ -20,7 +20,7 @@ Disassembly of section .plt:
Disassembly of section .text:
-0+e0 <_start>:
+.* <_start>:
[ ]*[a-f0-9]+: 3b 80 f8 ff ff ff cmp -0x8\(%eax\),%eax
[ ]*[a-f0-9]+: ff a0 fc ff ff ff jmp \*-0x4\(%eax\)
-[ ]*[a-f0-9]+: e8 df ff ff ff call d0 <.*>
+[ ]*[a-f0-9]+: e8 df ff ff ff call .* <\.plt\+0x10>
diff --git a/ld/testsuite/ld-i386/pr19636-2b.d b/ld/testsuite/ld-i386/pr19636-2b.d
index 9a0a263..ac21025 100644
--- a/ld/testsuite/ld-i386/pr19636-2b.d
+++ b/ld/testsuite/ld-i386/pr19636-2b.d
@@ -10,8 +10,6 @@ Relocation section '\.rel\.dyn' at offset [0x0-9a-f]+ contains 1 entries:
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
#...
- +[0-9]+: +[a-f0-9]+ +0 +NOTYPE +GLOBAL +DEFAULT +[0-9]+ +_start
-#...
+[0-9]+: +[a-f0-9]+ +0 +NOTYPE +WEAK +DEFAULT +UND +func
#...
diff --git a/ld/testsuite/ld-i386/pr19636-2c.d b/ld/testsuite/ld-i386/pr19636-2c.d
index 08db119..3c7cd6d 100644
--- a/ld/testsuite/ld-i386/pr19636-2c.d
+++ b/ld/testsuite/ld-i386/pr19636-2c.d
@@ -9,20 +9,20 @@
Disassembly of section .plt:
-0+130 <.plt>:
+.* <.plt>:
[ ]*[a-f0-9]+: ff b3 04 00 00 00 pushl 0x4\(%ebx\)
[ ]*[a-f0-9]+: ff a3 08 00 00 00 jmp \*0x8\(%ebx\)
[ ]*[a-f0-9]+: 00 00 add %al,\(%eax\)
[ ]*[a-f0-9]+: 00 00 add %al,\(%eax\)
[ ]*[a-f0-9]+: ff a3 0c 00 00 00 jmp \*0xc\(%ebx\)
[ ]*[a-f0-9]+: 68 00 00 00 00 push \$0x0
-[ ]*[a-f0-9]+: e9 00 00 00 00 jmp 150 <_start>
+[ ]*[a-f0-9]+: e9 00 00 00 00 jmp .* <_start>
Disassembly of section .text:
-0+150 <_start>:
+.* <_start>:
[ ]*[a-f0-9]+: 3b 80 fc ff ff ff cmp -0x4\(%eax\),%eax
[ ]*[a-f0-9]+: ff a0 fc ff ff ff jmp \*-0x4\(%eax\)
-[ ]*[a-f0-9]+: e8 df ff ff ff call 140 <.*>
+[ ]*[a-f0-9]+: e8 df ff ff ff call .* <\.plt\+0x10>
[ ]*[a-f0-9]+: 3d 00 00 00 00 cmp \$0x0,%eax
-[ ]*[a-f0-9]+: e8 fc ff ff ff call 167 <.*>
+[ ]*[a-f0-9]+: e8 fc ff ff ff call .* <_start\+0x17>
diff --git a/ld/testsuite/ld-i386/pr20830.d b/ld/testsuite/ld-i386/pr20830.d
index 55fe924..26caabb 100644
--- a/ld/testsuite/ld-i386/pr20830.d
+++ b/ld/testsuite/ld-i386/pr20830.d
@@ -1,6 +1,6 @@
#name: PR ld/20830 (.plt.got)
#as: --32
-#ld: -melf_i386 -shared -z relro --ld-generated-unwind-info
+#ld: -melf_i386 -shared -z relro --ld-generated-unwind-info --hash-style=sysv
#objdump: -dw -Wf
.*: +file format .*
diff --git a/ld/testsuite/ld-i386/pr21884-nacl.d b/ld/testsuite/ld-i386/pr21884-nacl.d
new file mode 100644
index 0000000..82daaaa
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr21884-nacl.d
@@ -0,0 +1,10 @@
+#source: dummy.s
+#as: --32
+#ld: -m elf_i386 -T pr21884-nacl.t -b binary
+#objdump: -b binary -s
+#target: i?86-*-nacl* x86_64-*-nacl*
+
+.*: file format binary
+
+Contents of section .data:
+#pass
diff --git a/ld/testsuite/ld-i386/pr21884-nacl.t b/ld/testsuite/ld-i386/pr21884-nacl.t
new file mode 100644
index 0000000..3ffb56c
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr21884-nacl.t
@@ -0,0 +1,11 @@
+OUTPUT_FORMAT("elf32-i386-nacl");
+OUTPUT_ARCH(i386);
+
+ENTRY(_start);
+SECTIONS {
+ . = 0x10000;
+ _start = . ;
+ .data : {
+ *(.data)
+ }
+}
diff --git a/ld/testsuite/ld-i386/pr21884.d b/ld/testsuite/ld-i386/pr21884.d
new file mode 100644
index 0000000..ea73aa2
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr21884.d
@@ -0,0 +1,10 @@
+#source: dummy.s
+#as: --32
+#ld: -m elf_i386 -T pr21884.t -b binary
+#objdump: -b binary -s
+#notarget: i?86-*-nacl* x86_64-*-nacl*
+
+.*: file format binary
+
+Contents of section .data:
+#pass
diff --git a/ld/testsuite/ld-i386/pr21884.t b/ld/testsuite/ld-i386/pr21884.t
new file mode 100644
index 0000000..4cf8cdc
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr21884.t
@@ -0,0 +1,11 @@
+OUTPUT_FORMAT("elf32-i386");
+OUTPUT_ARCH(i386);
+
+ENTRY(_start);
+SECTIONS {
+ . = 0x10000;
+ _start = . ;
+ .data : {
+ *(.data)
+ }
+}
diff --git a/ld/testsuite/ld-i386/pr21997-1a.S b/ld/testsuite/ld-i386/pr21997-1a.S
new file mode 100644
index 0000000..aea17f8
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr21997-1a.S
@@ -0,0 +1,35 @@
+ .text
+ .p2align 4,,15
+ .globl get_protected
+ .type get_protected, @function
+get_protected:
+ call __x86.get_pc_thunk.ax
+ addl $_GLOBAL_OFFSET_TABLE_, %eax
+ movl protected@GOTOFF(%eax), %eax
+ ret
+ .size get_protected, .-get_protected
+ .p2align 4,,15
+ .globl get_protected_p
+ .type get_protected_p, @function
+get_protected_p:
+ call __x86.get_pc_thunk.ax
+ addl $_GLOBAL_OFFSET_TABLE_, %eax
+ leal protected@GOTOFF(%eax), %eax
+ ret
+ .size get_protected_p, .-get_protected_p
+ .protected protected
+ .globl protected
+ .data
+ .align 4
+ .type protected, @object
+ .size protected, 4
+protected:
+ .long 1
+ .section .text.__x86.get_pc_thunk.ax,"axG",@progbits,__x86.get_pc_thunk.ax,comdat
+ .globl __x86.get_pc_thunk.ax
+ .hidden __x86.get_pc_thunk.ax
+ .type __x86.get_pc_thunk.ax, @function
+__x86.get_pc_thunk.ax:
+ movl (%esp), %eax
+ ret
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-i386/pr21997-1b.c b/ld/testsuite/ld-i386/pr21997-1b.c
new file mode 100644
index 0000000..576362e
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr21997-1b.c
@@ -0,0 +1,16 @@
+#include <stdio.h>
+
+extern int protected;
+extern int get_protected (void);
+extern int* get_protected_p (void);
+
+int
+main ()
+{
+
+ if (protected == get_protected ()
+ && &protected == get_protected_p ())
+ printf ("PASS\n");
+
+ return 0;
+}
diff --git a/ld/testsuite/ld-i386/pr21997-1c.S b/ld/testsuite/ld-i386/pr21997-1c.S
new file mode 100644
index 0000000..8534877
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr21997-1c.S
@@ -0,0 +1,51 @@
+ .section .rodata.str1.1,"aMS",@progbits,1
+.LC0:
+ .string "PASS"
+ .section .text.startup,"ax",@progbits
+ .p2align 4,,15
+ .globl main
+ .type main, @function
+main:
+ leal 4(%esp), %ecx
+ andl $-16, %esp
+ pushl -4(%ecx)
+ pushl %ebp
+ movl %esp, %ebp
+ pushl %esi
+ pushl %ebx
+ pushl %ecx
+ call __x86.get_pc_thunk.bx
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+ subl $12, %esp
+ call get_protected@PLT
+ movl protected@GOT(%ebx), %esi
+ cmpl (%esi), %eax
+ je .L7
+.L3:
+ leal -12(%ebp), %esp
+ xorl %eax, %eax
+ popl %ecx
+ popl %ebx
+ popl %esi
+ popl %ebp
+ leal -4(%ecx), %esp
+ ret
+.L7:
+ call get_protected_p@PLT
+ cmpl %esi, %eax
+ jne .L3
+ leal .LC0@GOTOFF(%ebx), %eax
+ subl $12, %esp
+ pushl %eax
+ call puts@PLT
+ addl $16, %esp
+ jmp .L3
+ .size main, .-main
+ .section .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
+ .globl __x86.get_pc_thunk.bx
+ .hidden __x86.get_pc_thunk.bx
+ .type __x86.get_pc_thunk.bx, @function
+__x86.get_pc_thunk.bx:
+ movl (%esp), %ebx
+ ret
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-i386/pr22001-1a.c b/ld/testsuite/ld-i386/pr22001-1a.c
new file mode 100644
index 0000000..2b55ea8
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr22001-1a.c
@@ -0,0 +1,13 @@
+int copy = 1;
+
+int
+get_copy ()
+{
+ return copy;
+}
+
+int *
+get_copy_p ()
+{
+ return &copy;
+}
diff --git a/ld/testsuite/ld-i386/pr22001-1b.c b/ld/testsuite/ld-i386/pr22001-1b.c
new file mode 100644
index 0000000..8eadd42
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr22001-1b.c
@@ -0,0 +1,14 @@
+#include <stdio.h>
+
+extern int copy;
+extern int get_copy (void);
+extern int* get_copy_p (void);
+
+int
+main ()
+{
+ if (copy == get_copy () && &copy == get_copy_p ())
+ printf ("PASS\n");
+
+ return 0;
+}
diff --git a/ld/testsuite/ld-i386/pr22001-1c.S b/ld/testsuite/ld-i386/pr22001-1c.S
new file mode 100644
index 0000000..2c1041d
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr22001-1c.S
@@ -0,0 +1,51 @@
+ .section .rodata.str1.1,"aMS",@progbits,1
+.LC0:
+ .string "PASS"
+ .section .text.startup,"ax",@progbits
+ .p2align 4,,15
+ .globl main
+ .type main, @function
+main:
+ leal 4(%esp), %ecx
+ andl $-16, %esp
+ pushl -4(%ecx)
+ pushl %ebp
+ movl %esp, %ebp
+ pushl %esi
+ pushl %ebx
+ pushl %ecx
+ call __x86.get_pc_thunk.bx
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+ subl $12, %esp
+ call get_copy@PLT
+ movl copy@GOT(%ebx), %esi
+ cmpl (%esi), %eax
+ je .L7
+.L3:
+ leal -12(%ebp), %esp
+ xorl %eax, %eax
+ popl %ecx
+ popl %ebx
+ popl %esi
+ popl %ebp
+ leal -4(%ecx), %esp
+ ret
+.L7:
+ call get_copy_p@PLT
+ cmpl %esi, %eax
+ jne .L3
+ leal .LC0@GOTOFF(%ebx), %eax
+ subl $12, %esp
+ pushl %eax
+ call puts@PLT
+ addl $16, %esp
+ jmp .L3
+ .size main, .-main
+ .section .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
+ .globl __x86.get_pc_thunk.bx
+ .hidden __x86.get_pc_thunk.bx
+ .type __x86.get_pc_thunk.bx, @function
+__x86.get_pc_thunk.bx:
+ movl (%esp), %ebx
+ ret
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-i386/pr22115-1.s b/ld/testsuite/ld-i386/pr22115-1.s
new file mode 100644
index 0000000..341eede
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr22115-1.s
@@ -0,0 +1,7 @@
+ .text
+ .globl _start
+ .type _start, @function
+_start:
+ movl __ehdr_start@GOT(%eax), %eax
+ .size _start, .-_start
+ .weak __ehdr_start
diff --git a/ld/testsuite/ld-i386/pr22115-1a.d b/ld/testsuite/ld-i386/pr22115-1a.d
new file mode 100644
index 0000000..4857952
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr22115-1a.d
@@ -0,0 +1,13 @@
+#source: pr22115-1.s
+#as: --32 -mrelax-relocations=yes
+#ld: -pie -z text -m elf_i386
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+ +[a-f0-9]+: 8d 80 ([0-9a-f]{2} ){4} * lea -?0x[a-f0-9]+\(%eax\),%eax
+#pass
diff --git a/ld/testsuite/ld-i386/pr22115-1b.d b/ld/testsuite/ld-i386/pr22115-1b.d
new file mode 100644
index 0000000..bb05851
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr22115-1b.d
@@ -0,0 +1,6 @@
+#source: pr22115-1.s
+#as: --32 -mrelax-relocations=yes
+#ld: -pie -z text -m elf_i386
+#readelf: -r
+
+There are no relocations in this file.
diff --git a/ld/testsuite/ld-i386/pr22115-1c.d b/ld/testsuite/ld-i386/pr22115-1c.d
new file mode 100644
index 0000000..ce70539
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr22115-1c.d
@@ -0,0 +1,13 @@
+#source: pr22115-1.s
+#as: --32 -mrelax-relocations=yes
+#ld: -pie -z text -m elf_i386 --no-dynamic-linker
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+ +[a-f0-9]+: 8d 80 ([0-9a-f]{2} ){4} * lea -?0x[a-f0-9]+\(%eax\),%eax
+#pass
diff --git a/ld/testsuite/ld-i386/pr22115-1d.d b/ld/testsuite/ld-i386/pr22115-1d.d
new file mode 100644
index 0000000..3a0b8e3
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr22115-1d.d
@@ -0,0 +1,6 @@
+#source: pr22115-1.s
+#as: --32 -mrelax-relocations=yes
+#ld: -pie -z text -m elf_i386 --no-dynamic-linker
+#readelf: -r
+
+There are no relocations in this file.
diff --git a/ld/testsuite/ld-i386/pr22135.d b/ld/testsuite/ld-i386/pr22135.d
new file mode 100644
index 0000000..a5796ba
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr22135.d
@@ -0,0 +1,12 @@
+#as: --32 -mrelax-relocations=yes
+#ld: -pie -melf_i386 --no-keep-memory
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+#...
+[ ]*[a-f0-9]+: 8d 81 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%ecx\),%eax
+#pass
diff --git a/ld/testsuite/ld-i386/pr22135.s b/ld/testsuite/ld-i386/pr22135.s
new file mode 100644
index 0000000..6afad88
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr22135.s
@@ -0,0 +1,11 @@
+ .text
+ .globl foo
+ .type foo, @function
+foo:
+ ret
+ .size foo, .-foo
+ .globl _start
+ .type _start, @function
+_start:
+ movl foo@GOT(%ecx), %eax
+ .size _start, .-_start
diff --git a/ld/testsuite/ld-i386/protected7.d b/ld/testsuite/ld-i386/protected7.d
new file mode 100644
index 0000000..aafa2d8
--- /dev/null
+++ b/ld/testsuite/ld-i386/protected7.d
@@ -0,0 +1,13 @@
+#as: --32
+#ld: -shared -melf_i386
+#objdump: -drw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+[a-f0-9]+ <bar>:
+[ ]*[a-f0-9]+: 8b 81 [a-f0-9][a-f0-9] [a-f0-9][a-f0-9] 00 00 mov 0x[a-f0-9]+\(%ecx\),%eax
+[ ]*[a-f0-9]+: c3 ret
+#pass
diff --git a/ld/testsuite/ld-i386/protected7.s b/ld/testsuite/ld-i386/protected7.s
new file mode 100644
index 0000000..bc2bc91
--- /dev/null
+++ b/ld/testsuite/ld-i386/protected7.s
@@ -0,0 +1,31 @@
+ .protected foo
+.globl foo
+ .data
+ .align 4
+ .type foo, @object
+ .size foo, 4
+foo:
+ .long 1
+ .text
+.globl bar
+ .type bar, @function
+bar:
+ movl foo@GOTOFF(%ecx), %eax
+ ret
+ .size bar, .-bar
+
+ .section ".note.gnu.property", "a"
+ .p2align 2
+ .long 1f - 0f /* name length. */
+ .long 3f - 1f /* data length. */
+ /* NT_GNU_PROPERTY_TYPE_0 */
+ .long 5 /* note type. */
+0:
+ .asciz "GNU" /* vendor name. */
+1:
+ .p2align 2
+ /* GNU_PROPERTY_NO_COPY_ON_PROTECTED */
+ .long 2 /* pr_type. */
+ .long 0 /* pr_datasz. */
+ .p2align 2
+3:
diff --git a/ld/testsuite/ld-ia64/ia64.exp b/ld/testsuite/ld-ia64/ia64.exp
index 88c8df6..76f9e62 100644
--- a/ld/testsuite/ld-ia64/ia64.exp
+++ b/ld/testsuite/ld-ia64/ia64.exp
@@ -37,7 +37,7 @@ if { !([istarget "ia64-*-elf*"]
# readelf: Apply readelf options on result. Compare with regex (last arg).
set ia64tests {
- {"TLS -fpic -shared" "-shared" ""
+ {"TLS -fpic -shared" "-shared --hash-style=sysv" ""
"-mtune=itanium1" {tlspic1.s tlspic2.s}
{{readelf -WSsrl tlspic.rd} {objdump -drj.text tlspic.dd}
{objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}}
@@ -45,7 +45,8 @@ set ia64tests {
{"Helper shared library" "-shared" ""
"" {tlslib.s} {} "libtlslib.so"}
{"TLS -fpic and -fno-pic exec"
- "tmpdir/libtlslib.so" "" "-mtune=itanium1" {tlsbinpic.s tlsbin.s}
+ "tmpdir/libtlslib.so --hash-style=sysv" ""
+ "-mtune=itanium1" {tlsbinpic.s tlsbin.s}
{{readelf -WSsrl tlsbin.rd} {objdump -drj.text tlsbin.dd}
{objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}}
"tlsbin"}
diff --git a/ld/testsuite/ld-ia64/merge1.d b/ld/testsuite/ld-ia64/merge1.d
index 39882b8..0cc8bd1 100644
--- a/ld/testsuite/ld-ia64/merge1.d
+++ b/ld/testsuite/ld-ia64/merge1.d
@@ -1,6 +1,6 @@
#source: merge1.s
#as: -x
-#ld: -shared
+#ld: -shared --hash-style=sysv
#objdump: -d
#...
diff --git a/ld/testsuite/ld-ia64/merge2.d b/ld/testsuite/ld-ia64/merge2.d
index dde3d09..4f05e37 100644
--- a/ld/testsuite/ld-ia64/merge2.d
+++ b/ld/testsuite/ld-ia64/merge2.d
@@ -1,6 +1,6 @@
#source: merge2.s
#as: -x
-#ld: -shared
+#ld: -shared --hash-style=sysv
#objdump: -d
#...
diff --git a/ld/testsuite/ld-ia64/merge3.d b/ld/testsuite/ld-ia64/merge3.d
index d0163f3..985142dc 100644
--- a/ld/testsuite/ld-ia64/merge3.d
+++ b/ld/testsuite/ld-ia64/merge3.d
@@ -1,6 +1,6 @@
#source: merge3.s
#as: -x
-#ld: -shared
+#ld: -shared --hash-style=sysv
#objdump: -d
#...
diff --git a/ld/testsuite/ld-ia64/merge4.d b/ld/testsuite/ld-ia64/merge4.d
index 0ed5621..ba34c8c 100644
--- a/ld/testsuite/ld-ia64/merge4.d
+++ b/ld/testsuite/ld-ia64/merge4.d
@@ -1,6 +1,6 @@
#source: merge4.s
#as: -x
-#ld: -shared
+#ld: -shared --hash-style=sysv
#objdump: -d
#...
diff --git a/ld/testsuite/ld-ia64/merge5.d b/ld/testsuite/ld-ia64/merge5.d
index 3adfa55..d59fabc 100644
--- a/ld/testsuite/ld-ia64/merge5.d
+++ b/ld/testsuite/ld-ia64/merge5.d
@@ -1,6 +1,6 @@
#source: merge5.s
#as: -x
-#ld: -shared
+#ld: -shared --hash-style=sysv
#objdump: -d
#...
diff --git a/ld/testsuite/ld-ifunc/ifunc-1-local-x86.d b/ld/testsuite/ld-ifunc/ifunc-1-local-x86.d
index c14cd28..a6a2c20 100644
--- a/ld/testsuite/ld-ifunc/ifunc-1-local-x86.d
+++ b/ld/testsuite/ld-ifunc/ifunc-1-local-x86.d
@@ -1,4 +1,4 @@
-#ld: -shared -Map tmpdir/ifunc-1-local-x86.map
+#ld: -shared -Map tmpdir/ifunc-1-local-x86.map --hash-style=sysv
#objdump: -dw
#target: x86_64-*-* i?86-*-*
#map: ifunc-1-local-x86.map
diff --git a/ld/testsuite/ld-ifunc/ifunc-1-x86.d b/ld/testsuite/ld-ifunc/ifunc-1-x86.d
index c245758..1471dfe 100644
--- a/ld/testsuite/ld-ifunc/ifunc-1-x86.d
+++ b/ld/testsuite/ld-ifunc/ifunc-1-x86.d
@@ -1,4 +1,4 @@
-#ld: -shared -Map tmpdir/ifunc-1-x86.map
+#ld: -shared -Map tmpdir/ifunc-1-x86.map --hash-style=sysv
#objdump: -dw
#target: x86_64-*-* i?86-*-*
#map: ifunc-1-x86.map
diff --git a/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d b/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d
index ebe7ded..b4dfcec 100644
--- a/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d
+++ b/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d
@@ -1,5 +1,5 @@
#source: ifunc-2-i386.s
-#ld: -z now -m elf_i386 -shared
+#ld: -z now -m elf_i386 -shared --hash-style=sysv
#as: --32
#objdump: -dw
#target: x86_64-*-* i?86-*-*
diff --git a/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d b/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d
index 7cb2e54..8888e7c 100644
--- a/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d
+++ b/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d
@@ -1,5 +1,5 @@
#source: ifunc-2-local-i386.s
-#ld: -z now -m elf_i386 -shared
+#ld: -z now -m elf_i386 -shared --hash-style=sysv
#as: --32
#objdump: -dw
#target: x86_64-*-* i?86-*-*
diff --git a/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d b/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d
index 6ec199f..d93709c 100644
--- a/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d
+++ b/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d
@@ -1,6 +1,6 @@
#source: ifunc-2-local-x86-64.s
#as: --64
-#ld: -z now -shared -melf_x86_64
+#ld: -z now -shared -melf_x86_64 --hash-style=sysv
#objdump: -dw
#target: x86_64-*-*
#notarget: x86_64-*-nacl*
diff --git a/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d b/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d
index 317d7d7..b776b33 100644
--- a/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d
+++ b/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d
@@ -1,5 +1,5 @@
#as: --64
-#ld: -shared -melf_x86_64
+#ld: -shared -melf_x86_64 --hash-style=sysv
#objdump: -dw
#target: x86_64-*-*
diff --git a/ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d b/ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d
index 95920cc..2328679 100644
--- a/ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d
+++ b/ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d
@@ -1,6 +1,6 @@
#source: ifunc-2-x86-64.s
#as: --64
-#ld: -z now -shared -melf_x86_64
+#ld: -z now -shared -melf_x86_64 --hash-style=sysv
#objdump: -dw
#target: x86_64-*-*
#notarget: x86_64-*-nacl*
diff --git a/ld/testsuite/ld-ifunc/ifunc-2-x86-64.d b/ld/testsuite/ld-ifunc/ifunc-2-x86-64.d
index 317d7d7..b776b33 100644
--- a/ld/testsuite/ld-ifunc/ifunc-2-x86-64.d
+++ b/ld/testsuite/ld-ifunc/ifunc-2-x86-64.d
@@ -1,5 +1,5 @@
#as: --64
-#ld: -shared -melf_x86_64
+#ld: -shared -melf_x86_64 --hash-style=sysv
#objdump: -dw
#target: x86_64-*-*
diff --git a/ld/testsuite/ld-ifunc/ifunc-3a-x86.d b/ld/testsuite/ld-ifunc/ifunc-3a-x86.d
index 4a88e4b..3c2a959 100644
--- a/ld/testsuite/ld-ifunc/ifunc-3a-x86.d
+++ b/ld/testsuite/ld-ifunc/ifunc-3a-x86.d
@@ -1,5 +1,5 @@
#source: ifunc-3-x86.s
-#ld: -shared
+#ld: -shared --hash-style=sysv
#objdump: -dw
#target: x86_64-*-* i?86-*-*
diff --git a/ld/testsuite/ld-ifunc/pr17154-i386-now.d b/ld/testsuite/ld-ifunc/pr17154-i386-now.d
index cb70b27..b7afdd0 100644
--- a/ld/testsuite/ld-ifunc/pr17154-i386-now.d
+++ b/ld/testsuite/ld-ifunc/pr17154-i386-now.d
@@ -1,5 +1,5 @@
#source: pr17154-x86.s
-#ld: -z now -m elf_i386 -shared
+#ld: -z now -m elf_i386 -shared --hash-style=sysv
#as: --32
#objdump: -dw
#target: x86_64-*-* i?86-*-*
diff --git a/ld/testsuite/ld-ifunc/pr17154-i386.d b/ld/testsuite/ld-ifunc/pr17154-i386.d
index 16fcd4e..6b309b9 100644
--- a/ld/testsuite/ld-ifunc/pr17154-i386.d
+++ b/ld/testsuite/ld-ifunc/pr17154-i386.d
@@ -1,5 +1,5 @@
#source: pr17154-x86.s
-#ld: -m elf_i386 -shared
+#ld: -m elf_i386 -shared --hash-style=sysv
#as: --32
#objdump: -dw
#target: x86_64-*-* i?86-*-*
diff --git a/ld/testsuite/ld-ifunc/pr17154-x86-64-now.d b/ld/testsuite/ld-ifunc/pr17154-x86-64-now.d
index f099575..60edb9e 100644
--- a/ld/testsuite/ld-ifunc/pr17154-x86-64-now.d
+++ b/ld/testsuite/ld-ifunc/pr17154-x86-64-now.d
@@ -1,6 +1,6 @@
#source: pr17154-x86.s
#as: --64
-#ld: -z now -shared -melf_x86_64
+#ld: -z now -shared -melf_x86_64 --hash-style=sysv
#objdump: -dw
#target: x86_64-*-*
#notarget: x86_64-*-nacl*
diff --git a/ld/testsuite/ld-ifunc/pr17154-x86-64.d b/ld/testsuite/ld-ifunc/pr17154-x86-64.d
index 1cdcf50..b3d7ed0 100644
--- a/ld/testsuite/ld-ifunc/pr17154-x86-64.d
+++ b/ld/testsuite/ld-ifunc/pr17154-x86-64.d
@@ -1,6 +1,6 @@
#source: pr17154-x86.s
#as: --64
-#ld: -shared -melf_x86_64
+#ld: -shared -melf_x86_64 --hash-style=sysv
#objdump: -dw
#target: x86_64-*-*
diff --git a/ld/testsuite/ld-m68k/got-1.d b/ld/testsuite/ld-m68k/got-1.d
index e8070e9..1eddac4 100644
--- a/ld/testsuite/ld-m68k/got-1.d
+++ b/ld/testsuite/ld-m68k/got-1.d
@@ -1,5 +1,5 @@
#source: got-1.s
-#ld: -shared
+#ld: -shared --hash-style=sysv
#readelf: -d -r
Dynamic section at offset .* contains 9 entries:
diff --git a/ld/testsuite/ld-m68k/got-multigot-12-13-14-34-35-ok.d b/ld/testsuite/ld-m68k/got-multigot-12-13-14-34-35-ok.d
index 176961b..13aeb05 100644
--- a/ld/testsuite/ld-m68k/got-multigot-12-13-14-34-35-ok.d
+++ b/ld/testsuite/ld-m68k/got-multigot-12-13-14-34-35-ok.d
@@ -1,5 +1,5 @@
#as: -mcpu=5206
-#ld: -shared --got=multigot
+#ld: -shared --got=multigot --hash-style=sysv
#readelf: -d -r
Dynamic section at offset .* contains 9 entries:
diff --git a/ld/testsuite/ld-m68k/got-multigot-14-ok.d b/ld/testsuite/ld-m68k/got-multigot-14-ok.d
index 7ebc589..86fe8f7 100644
--- a/ld/testsuite/ld-m68k/got-multigot-14-ok.d
+++ b/ld/testsuite/ld-m68k/got-multigot-14-ok.d
@@ -1,5 +1,5 @@
#as: -mcpu=5206
-#ld: -shared --got=multigot
+#ld: -shared --got=multigot --hash-style=sysv
#readelf: -d -r
Dynamic section at offset .* contains 9 entries:
diff --git a/ld/testsuite/ld-m68k/got-multigot-15-er.d b/ld/testsuite/ld-m68k/got-multigot-15-er.d
index 58381ae..892d0fe 100644
--- a/ld/testsuite/ld-m68k/got-multigot-15-er.d
+++ b/ld/testsuite/ld-m68k/got-multigot-15-er.d
@@ -1,3 +1,3 @@
#as: -mcpu=5206
-#ld: -shared --got=multigot
+#ld: -shared --got=multigot --hash-style=sysv
#error: .*GOT overflow.*
diff --git a/ld/testsuite/ld-m68k/got-negative-12-13-14-34-ok.d b/ld/testsuite/ld-m68k/got-negative-12-13-14-34-ok.d
index 451df80..8c2ea98 100644
--- a/ld/testsuite/ld-m68k/got-negative-12-13-14-34-ok.d
+++ b/ld/testsuite/ld-m68k/got-negative-12-13-14-34-ok.d
@@ -1,5 +1,5 @@
#as: -mcpu=5206
-#ld: -shared --got=negative
+#ld: -shared --got=negative --hash-style=sysv
#readelf: -d -r
Dynamic section at offset .* contains 9 entries:
diff --git a/ld/testsuite/ld-m68k/got-negative-12-13-14-35-er.d b/ld/testsuite/ld-m68k/got-negative-12-13-14-35-er.d
index 4487a8c..5930ae3 100644
--- a/ld/testsuite/ld-m68k/got-negative-12-13-14-35-er.d
+++ b/ld/testsuite/ld-m68k/got-negative-12-13-14-35-er.d
@@ -1,3 +1,3 @@
#as: -mcpu=5206
-#ld: -shared --got=negative
+#ld: -shared --got=negative --hash-style=sysv
#error: .*relocation truncated to fit.*
diff --git a/ld/testsuite/ld-m68k/got-negative-14-ok.d b/ld/testsuite/ld-m68k/got-negative-14-ok.d
index 451df80..8c2ea98 100644
--- a/ld/testsuite/ld-m68k/got-negative-14-ok.d
+++ b/ld/testsuite/ld-m68k/got-negative-14-ok.d
@@ -1,5 +1,5 @@
#as: -mcpu=5206
-#ld: -shared --got=negative
+#ld: -shared --got=negative --hash-style=sysv
#readelf: -d -r
Dynamic section at offset .* contains 9 entries:
diff --git a/ld/testsuite/ld-m68k/got-negative-15-er.d b/ld/testsuite/ld-m68k/got-negative-15-er.d
index c1b7409..64bdd1e 100644
--- a/ld/testsuite/ld-m68k/got-negative-15-er.d
+++ b/ld/testsuite/ld-m68k/got-negative-15-er.d
@@ -1,3 +1,3 @@
#as: -mcpu=5206
-#ld: -shared --got=negative
+#ld: -shared --got=negative --hash-style=sysv
#error: .*GOT overflow.*
diff --git a/ld/testsuite/ld-m68k/got-single-12-ok.d b/ld/testsuite/ld-m68k/got-single-12-ok.d
index a7fdeb9..924a7d7 100644
--- a/ld/testsuite/ld-m68k/got-single-12-ok.d
+++ b/ld/testsuite/ld-m68k/got-single-12-ok.d
@@ -1,5 +1,5 @@
#as: -mcpu=5206
-#ld: -shared --got=single
+#ld: -shared --got=single --hash-style=sysv
#readelf: -d -r
Dynamic section at offset .* contains 9 entries:
diff --git a/ld/testsuite/ld-m68k/got-single-13-er.d b/ld/testsuite/ld-m68k/got-single-13-er.d
index bfca9f8..89e908c 100644
--- a/ld/testsuite/ld-m68k/got-single-13-er.d
+++ b/ld/testsuite/ld-m68k/got-single-13-er.d
@@ -1,3 +1,3 @@
#as: -mcpu=5206
-#ld: -shared --got=single
+#ld: -shared --got=single --hash-style=sysv
#error: .*relocation truncated to fit.*
diff --git a/ld/testsuite/ld-m68k/got-xgot-12-13-14-15-34-35-ok.d b/ld/testsuite/ld-m68k/got-xgot-12-13-14-15-34-35-ok.d
index dd2c21d..145be53 100644
--- a/ld/testsuite/ld-m68k/got-xgot-12-13-14-15-34-35-ok.d
+++ b/ld/testsuite/ld-m68k/got-xgot-12-13-14-15-34-35-ok.d
@@ -1,5 +1,5 @@
#as: -mcpu=5206
-#ld: -shared --got=multigot
+#ld: -shared --got=multigot --hash-style=sysv
#readelf: -d -r
Dynamic section at offset .* contains 9 entries:
diff --git a/ld/testsuite/ld-m68k/got-xgot-15-ok.d b/ld/testsuite/ld-m68k/got-xgot-15-ok.d
index bc11849..1de632a 100644
--- a/ld/testsuite/ld-m68k/got-xgot-15-ok.d
+++ b/ld/testsuite/ld-m68k/got-xgot-15-ok.d
@@ -1,5 +1,5 @@
#as: -mcpu=5206
-#ld: -shared --got=multigot
+#ld: -shared --got=multigot --hash-style=sysv
#readelf: -d -r
Dynamic section at offset .* contains 9 entries:
diff --git a/ld/testsuite/ld-m68k/m68k.exp b/ld/testsuite/ld-m68k/m68k.exp
index c3a93bd..ed1321b 100644
--- a/ld/testsuite/ld-m68k/m68k.exp
+++ b/ld/testsuite/ld-m68k/m68k.exp
@@ -61,7 +61,8 @@ run_dump_test "merge-ok-1c"
foreach { id sources } { a { plt1.s } b { plt1-empty.s plt1.s } } {
foreach arch { 68020 cpu32 isab isac } {
run_ld_link_tests [list \
- [list "PLT 1$id ($arch)" "-shared -T plt1.ld" "" "-m$arch" \
+ [list "PLT 1$id ($arch)" \
+ "-shared -T plt1.ld --hash-style=sysv" "" "-m$arch" \
$sources [list [list objdump -dr plt1-$arch.d]] \
plt1-${id}-${arch}.so]]
}
@@ -81,11 +82,11 @@ if { [istarget m68k-*-linux*] } then {
{{nm -ngD tls-def-1.d}}
"tls-def-1.so"}
{"TLS direct symbol use"
- "-shared tmpdir/tls-def-1.so" "" "" {tls-gd-1.s}
+ "-shared --hash-style=sysv tmpdir/tls-def-1.so" "" "" {tls-gd-1.s}
{{nm -ngD tls-gd-1.d2} {readelf -d tls-gd-1.d3}}
"tls-gd-1.so"}
{"TLS indirect symbol use"
- "--copy-dt-needed-entries tmpdir/tls-gd-1.so -rpath-link ./" "" "" {tls-main-1.s}
+ "--copy-dt-needed-entries --hash-style=sysv tmpdir/tls-gd-1.so -rpath-link ./" "" "" {tls-main-1.s}
{{readelf -d tls-main-1.d}}
"tls-main-1"}}
diff --git a/ld/testsuite/ld-m68k/tls-gd-1.d b/ld/testsuite/ld-m68k/tls-gd-1.d
index 0cad6fc..c8245f2 100644
--- a/ld/testsuite/ld-m68k/tls-gd-1.d
+++ b/ld/testsuite/ld-m68k/tls-gd-1.d
@@ -1,6 +1,6 @@
#as: -mcpu=5206
#source: tls-gd-1.s
-#ld: -shared
+#ld: -shared --hash-style=sysv
#readelf: -d -r
Dynamic section at offset .* contains 9 entries:
diff --git a/ld/testsuite/ld-m68k/tls-gd-2.d b/ld/testsuite/ld-m68k/tls-gd-2.d
index 28ba4f5..e382512 100644
--- a/ld/testsuite/ld-m68k/tls-gd-2.d
+++ b/ld/testsuite/ld-m68k/tls-gd-2.d
@@ -1,6 +1,6 @@
#as: -mcpu=5206
#source: tls-gd-2.s
-#ld: -shared
+#ld: -shared --hash-style=sysv
#readelf: -d -r
Dynamic section at offset .* contains 10 entries:
diff --git a/ld/testsuite/ld-m68k/tls-gd-ie-1.d b/ld/testsuite/ld-m68k/tls-gd-ie-1.d
index 4626722..9001cce 100644
--- a/ld/testsuite/ld-m68k/tls-gd-ie-1.d
+++ b/ld/testsuite/ld-m68k/tls-gd-ie-1.d
@@ -1,6 +1,6 @@
#as: -mcpu=5206
#source: tls-gd-ie-1.s
-#ld: -shared
+#ld: -shared --hash-style=sysv
#readelf: -d -r
Dynamic section at offset .* contains 10 entries:
diff --git a/ld/testsuite/ld-m68k/tls-ie-1.d b/ld/testsuite/ld-m68k/tls-ie-1.d
index 5574ad4..0f21101 100644
--- a/ld/testsuite/ld-m68k/tls-ie-1.d
+++ b/ld/testsuite/ld-m68k/tls-ie-1.d
@@ -1,6 +1,6 @@
#as: -mcpu=5206
#source: tls-ie-1.s
-#ld: -shared
+#ld: -shared --hash-style=sysv
#readelf: -d -r
Dynamic section at offset .* contains 10 entries:
diff --git a/ld/testsuite/ld-m68k/tls-ld-1.d b/ld/testsuite/ld-m68k/tls-ld-1.d
index 9f374f3..b3ea123 100644
--- a/ld/testsuite/ld-m68k/tls-ld-1.d
+++ b/ld/testsuite/ld-m68k/tls-ld-1.d
@@ -1,6 +1,6 @@
#as: -mcpu=5206
#source: tls-ld-1.s
-#ld: -shared
+#ld: -shared --hash-style=sysv
#readelf: -d -r
Dynamic section at offset .* contains 10 entries:
diff --git a/ld/testsuite/ld-m68k/tls-ld-2.d b/ld/testsuite/ld-m68k/tls-ld-2.d
index ee1bac5..810160c 100644
--- a/ld/testsuite/ld-m68k/tls-ld-2.d
+++ b/ld/testsuite/ld-m68k/tls-ld-2.d
@@ -1,6 +1,6 @@
#as: -mcpu=5206
#source: tls-ld-2.s
-#ld: -shared
+#ld: -shared --hash-style=sysv
#readelf: -d -r
Dynamic section at offset .* contains 6 entries:
diff --git a/ld/testsuite/ld-metag/metag.exp b/ld/testsuite/ld-metag/metag.exp
index 6147754..3504eb8 100644
--- a/ld/testsuite/ld-metag/metag.exp
+++ b/ld/testsuite/ld-metag/metag.exp
@@ -31,7 +31,7 @@ set metag_tests {
{ {objdump -Dz pcrel.d} }
"pcrel"
}
- {"Simple PIC shared library" "-shared" "" ""
+ {"Simple PIC shared library" "-shared --hash-style=sysv" "" ""
{shared.s}
{ {objdump -fdw shared.d} {objdump -Rw shared.r} }
"shared.so"
@@ -41,17 +41,17 @@ set metag_tests {
{ {objdump -fdw stub.d} }
"stub"
}
- {"Shared library for stub tests" "-shared" "" ""
+ {"Shared library for stub tests" "-shared --hash-style=sysv" "" ""
{stub_shared.s}
{ {objdump -fdw stub_shared.d} {objdump -Rw stub_shared.r} }
"stub_shared.so"
}
- {"Long branch stub (PIC, app)" "tmpdir/stub_shared.so" "" ""
+ {"Long branch stub (PIC, app)" "--hash-style=sysv tmpdir/stub_shared.so" "" ""
{stub_pic_app.s}
{ {objdump -fdw stub_pic_app.d} {objdump -Rw stub_pic_app.r} }
"stub_pic_app"
}
- {"Long branch stub (PIC, shared)" "-shared" "" ""
+ {"Long branch stub (PIC, shared)" "-shared --hash-style=sysv" "" ""
{stub_pic_shared.s}
{ {objdump -fdw stub_pic_shared.d} }
"stub_pic_shared.so"
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-addend-micromips-n32.d b/ld/testsuite/ld-mips-elf/bal-jalx-addend-micromips-n32.d
new file mode 100644
index 0000000..9c7aca5
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-addend-micromips-n32.d
@@ -0,0 +1,6 @@
+#name: microMIPS BAL/JALX addend calculation (n32)
+#source: ../../../gas/testsuite/gas/mips/branch-addend-micromips.s
+#as: -EB -n32 -march=from-abi
+#ld: -EB -Ttext 0x1c000000 -e 0x1c000000
+#objdump: -dr --prefix-addresses --show-raw-insn
+#dump: bal-jalx-addend-micromips.d
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-addend-micromips-n64.d b/ld/testsuite/ld-mips-elf/bal-jalx-addend-micromips-n64.d
new file mode 100644
index 0000000..e254c65
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-addend-micromips-n64.d
@@ -0,0 +1,6 @@
+#name: microMIPS BAL/JALX addend calculation (n64)
+#source: ../../../gas/testsuite/gas/mips/branch-addend-micromips.s
+#as: -EB -64 -march=from-abi
+#ld: -EB -Ttext 0x1c000000 -e 0x1c000000
+#objdump: -dr --prefix-addresses --show-raw-insn
+#dump: bal-jalx-addend-micromips.d
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-addend-micromips.d b/ld/testsuite/ld-mips-elf/bal-jalx-addend-micromips.d
new file mode 100644
index 0000000..e066f5d
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-addend-micromips.d
@@ -0,0 +1,22 @@
+#name: microMIPS BAL/JALX addend calculation
+#source: ../../../gas/testsuite/gas/mips/branch-addend-micromips.s
+#as: -EB -32
+#ld: -EB -Ttext 0x1c000000 -e 0x1c000000
+#objdump: -dr --prefix-addresses --show-raw-insn
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+ \.\.\.
+[0-9a-f]+ <[^>]*> 00000027 nor zero,zero,zero
+[0-9a-f]+ <[^>]*> 03e00009 jalr zero,ra
+[0-9a-f]+ <[^>]*> 00000027 nor zero,zero,zero
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0000 02d0 not zero,zero
+[0-9a-f]+ <[^>]*> f300 4400 jalx 0*1c011000 <.*>
+[0-9a-f]+ <[^>]*> 0000 02d0 not zero,zero
+[0-9a-f]+ <[^>]*> 4060 7ff8 bal 0*1c011010 <.*>
+[0-9a-f]+ <[^>]*> 0000 02d0 not zero,zero
+[0-9a-f]+ <[^>]*> 001f 0f3c jr ra
+[0-9a-f]+ <[^>]*> 0000 02d0 not zero,zero
+ \.\.\.
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-local-micromips-n32.d b/ld/testsuite/ld-mips-elf/bal-jalx-local-micromips-n32.d
new file mode 100644
index 0000000..16fcb0a
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-local-micromips-n32.d
@@ -0,0 +1,6 @@
+#name: microMIPS BAL to JALX conversion for local symbol (n32)
+#source: ../../../gas/testsuite/gas/mips/branch-local-7.s
+#as: -EB -n32 -march=from-abi
+#ld: -EB -Ttext 0x1c000000 -e 0x1c000000
+#objdump: -dr --prefix-addresses --show-raw-insn
+#dump: bal-jalx-local-micromips.d
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-local-micromips-n64.d b/ld/testsuite/ld-mips-elf/bal-jalx-local-micromips-n64.d
new file mode 100644
index 0000000..d13a9ea
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-local-micromips-n64.d
@@ -0,0 +1,6 @@
+#name: microMIPS BAL to JALX conversion for local symbol (n64)
+#source: ../../../gas/testsuite/gas/mips/branch-local-7.s
+#as: -EB -64 -march=from-abi
+#ld: -EB -Ttext 0x1c000000 -e 0x1c000000
+#objdump: -dr --prefix-addresses --show-raw-insn
+#dump: bal-jalx-local-micromips.d
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-local-micromips.d b/ld/testsuite/ld-mips-elf/bal-jalx-local-micromips.d
new file mode 100644
index 0000000..e944d3b
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-local-micromips.d
@@ -0,0 +1,20 @@
+#name: microMIPS BAL to JALX conversion for local symbol
+#source: ../../../gas/testsuite/gas/mips/branch-local-7.s
+#as: -EB -32
+#ld: -EB -Ttext 0x1c000000 -e 0x1c000000
+#objdump: -dr --prefix-addresses --show-raw-insn
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+ \.\.\.
+[0-9a-f]+ <[^>]*> 00000027 nor zero,zero,zero
+[0-9a-f]+ <[^>]*> 03e00009 jalr zero,ra
+[0-9a-f]+ <[^>]*> 00000027 nor zero,zero,zero
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0000 02d0 not zero,zero
+[0-9a-f]+ <[^>]*> f300 0400 jalx 0*1c001000 <foo>
+[0-9a-f]+ <[^>]*> 0000 02d0 not zero,zero
+[0-9a-f]+ <[^>]*> 001f 0f3c jr ra
+[0-9a-f]+ <[^>]*> 0000 02d0 not zero,zero
+ \.\.\.
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-pic-ignore-micromips-n32.d b/ld/testsuite/ld-mips-elf/bal-jalx-pic-ignore-micromips-n32.d
new file mode 100644
index 0000000..9a293c5
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-pic-ignore-micromips-n32.d
@@ -0,0 +1,6 @@
+#name: microMIPS BAL/JALX in PIC mode (ignore branch ISA, n32)
+#source: ../../../gas/testsuite/gas/mips/branch-addend-micromips.s
+#as: -EB -n32 -march=from-abi
+#ld: -EB -Ttext 0x1c000000 -e 0x1c000000 -shared --ignore-branch-isa
+#objdump: -dr --prefix-addresses --show-raw-insn
+#dump: bal-jalx-pic-ignore-micromips.d
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-pic-ignore-micromips-n64.d b/ld/testsuite/ld-mips-elf/bal-jalx-pic-ignore-micromips-n64.d
new file mode 100644
index 0000000..2b78bb9
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-pic-ignore-micromips-n64.d
@@ -0,0 +1,6 @@
+#name: microMIPS BAL/JALX in PIC mode (ignore branch ISA, n64)
+#source: ../../../gas/testsuite/gas/mips/branch-addend-micromips.s
+#as: -EB -64 -march=from-abi
+#ld: -EB -Ttext 0x1c000000 -e 0x1c000000 -shared --ignore-branch-isa
+#objdump: -dr --prefix-addresses --show-raw-insn
+#dump: bal-jalx-pic-ignore-micromips.d
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-pic-ignore-micromips.d b/ld/testsuite/ld-mips-elf/bal-jalx-pic-ignore-micromips.d
new file mode 100644
index 0000000..0b48b3a
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-pic-ignore-micromips.d
@@ -0,0 +1,22 @@
+#name: microMIPS BAL/JALX in PIC mode (ignore branch ISA)
+#source: ../../../gas/testsuite/gas/mips/branch-addend-micromips.s
+#as: -EB -32
+#ld: -EB -Ttext 0x1c000000 -e 0x1c000000 -shared --ignore-branch-isa
+#objdump: -dr --prefix-addresses --show-raw-insn
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+ \.\.\.
+[0-9a-f]+ <[^>]*> 00000027 nor zero,zero,zero
+[0-9a-f]+ <[^>]*> 03e00009 jalr zero,ra
+[0-9a-f]+ <[^>]*> 00000027 nor zero,zero,zero
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0000 02d0 not zero,zero
+[0-9a-f]+ <[^>]*> 4060 7ff4 bal 0*1c011000 <.*>
+[0-9a-f]+ <[^>]*> 0000 02d0 not zero,zero
+[0-9a-f]+ <[^>]*> 4060 7ff8 bal 0*1c011010 <.*>
+[0-9a-f]+ <[^>]*> 0000 02d0 not zero,zero
+[0-9a-f]+ <[^>]*> 001f 0f3c jr ra
+[0-9a-f]+ <[^>]*> 0000 02d0 not zero,zero
+ \.\.\.
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n32.d b/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n32.d
new file mode 100644
index 0000000..3b25dc7
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n32.d
@@ -0,0 +1,6 @@
+#name: microMIPS BAL/JALX in PIC mode (n32)
+#source: ../../../gas/testsuite/gas/mips/branch-addend-micromips.s
+#as: -EB -n32 -march=from-abi
+#ld: -EB -Ttext 0x1c000000 -e 0x1c000000 -shared
+#error: \A[^\n]*: In function `bar':\n
+#error: \(\.text\+0x1014\): Unsupported branch between ISA modes\Z
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n64.d b/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n64.d
new file mode 100644
index 0000000..d39f114
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips-n64.d
@@ -0,0 +1,6 @@
+#name: microMIPS BAL/JALX in PIC mode (n64)
+#source: ../../../gas/testsuite/gas/mips/branch-addend-micromips.s
+#as: -EB -64 -march=from-abi
+#ld: -EB -Ttext 0x1c000000 -e 0x1c000000 -shared
+#error: \A[^\n]*: In function `bar':\n
+#error: \(\.text\+0x1014\): Unsupported branch between ISA modes\Z
diff --git a/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips.d b/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips.d
new file mode 100644
index 0000000..7404d25
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/bal-jalx-pic-micromips.d
@@ -0,0 +1,6 @@
+#name: microMIPS BAL/JALX in PIC mode
+#source: ../../../gas/testsuite/gas/mips/branch-addend-micromips.s
+#as: -EB -32
+#ld: -EB -Ttext 0x1c000000 -e 0x1c000000 -shared
+#error: \A[^\n]*: In function `bar':\n
+#error: \(\.text\+0x1014\): Unsupported branch between ISA modes\Z
diff --git a/ld/testsuite/ld-mips-elf/binary.d b/ld/testsuite/ld-mips-elf/binary.d
new file mode 100644
index 0000000..eb88c1c
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/binary.d
@@ -0,0 +1,8 @@
+#objdump: -b binary -s
+#name: MIPS link ELF into binary output format
+#ld: -r --oformat=binary -T binary.ld
+
+.*: +file format binary
+
+Contents of section \.data:
+ 0000 61626364 65666768 696a6b6c 6d6e6f70 abcdefghijklmnop
diff --git a/ld/testsuite/ld-mips-elf/binary.ld b/ld/testsuite/ld-mips-elf/binary.ld
new file mode 100644
index 0000000..037ae69
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/binary.ld
@@ -0,0 +1,5 @@
+SECTIONS
+{
+ .data : { *(.data) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/ld/testsuite/ld-mips-elf/binary.s b/ld/testsuite/ld-mips-elf/binary.s
new file mode 100644
index 0000000..fbc0244
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/binary.s
@@ -0,0 +1,2 @@
+ .data
+ .ascii "abcdefghijklmnop"
diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp
index 4360b83..96f57bf 100644
--- a/ld/testsuite/ld-mips-elf/mips-elf.exp
+++ b/ld/testsuite/ld-mips-elf/mips-elf.exp
@@ -251,22 +251,43 @@ if { $linux_gnu } {
run_dump_test "jalx-addend" [list [list ld $abi_ldflags(o32)]]
run_dump_test "jalx-local" [list [list ld $abi_ldflags(o32)]]
run_dump_test "bal-jalx-addend" [list [list ld $abi_ldflags(o32)]]
+run_dump_test "bal-jalx-addend-micromips" [list [list ld $abi_ldflags(o32)]]
run_dump_test "bal-jalx-local" [list [list ld $abi_ldflags(o32)]]
+run_dump_test "bal-jalx-local-micromips" [list [list ld $abi_ldflags(o32)]]
run_dump_test "bal-jalx-pic" [list [list ld $abi_ldflags(o32)]]
+run_dump_test "bal-jalx-pic-micromips" [list [list ld $abi_ldflags(o32)]]
run_dump_test "bal-jalx-pic-ignore" [list [list ld $abi_ldflags(o32)]]
+run_dump_test "bal-jalx-pic-ignore-micromips" \
+ [list [list ld $abi_ldflags(o32)]]
if $has_newabi {
run_dump_test "jalx-addend-n32" [list [list ld $abi_ldflags(n32)]]
run_dump_test "jalx-local-n32" [list [list ld $abi_ldflags(n32)]]
run_dump_test "bal-jalx-addend-n32" [list [list ld $abi_ldflags(n32)]]
+ run_dump_test "bal-jalx-addend-micromips-n32" \
+ [list [list ld $abi_ldflags(n32)]]
run_dump_test "bal-jalx-local-n32" [list [list ld $abi_ldflags(n32)]]
+ run_dump_test "bal-jalx-local-micromips-n32" \
+ [list [list ld $abi_ldflags(n32)]]
run_dump_test "bal-jalx-pic-n32" [list [list ld $abi_ldflags(n32)]]
+ run_dump_test "bal-jalx-pic-micromips-n32" \
+ [list [list ld $abi_ldflags(n32)]]
run_dump_test "bal-jalx-pic-ignore-n32" [list [list ld $abi_ldflags(n32)]]
+ run_dump_test "bal-jalx-pic-ignore-micromips-n32" \
+ [list [list ld $abi_ldflags(n32)]]
run_dump_test "jalx-addend-n64" [list [list ld $abi_ldflags(n64)]]
run_dump_test "jalx-local-n64" [list [list ld $abi_ldflags(n64)]]
run_dump_test "bal-jalx-addend-n64" [list [list ld $abi_ldflags(n64)]]
+ run_dump_test "bal-jalx-addend-micromips-n64" \
+ [list [list ld $abi_ldflags(n64)]]
run_dump_test "bal-jalx-local-n64" [list [list ld $abi_ldflags(n64)]]
+ run_dump_test "bal-jalx-local-micromips-n64" \
+ [list [list ld $abi_ldflags(n64)]]
run_dump_test "bal-jalx-pic-n64" [list [list ld $abi_ldflags(n64)]]
+ run_dump_test "bal-jalx-pic-micromips-n64" \
+ [list [list ld $abi_ldflags(n64)]]
run_dump_test "bal-jalx-pic-ignore-n64" [list [list ld $abi_ldflags(n64)]]
+ run_dump_test "bal-jalx-pic-ignore-micromips-n64" \
+ [list [list ld $abi_ldflags(n64)]]
}
run_dump_test "unaligned-jalx-0" [list [list ld $abi_ldflags(o32)]]
@@ -1213,3 +1234,6 @@ run_ld_link_tests [list \
"relax-offset-umips"]]
rename prune_warnings ""
rename mips_old_prune_warnings prune_warnings
+
+# Verify that we can link ELF input into the `binary' output format.
+run_dump_test "binary"
diff --git a/ld/testsuite/ld-mmix/pr20125.d b/ld/testsuite/ld-mmix/pr20125.d
new file mode 100644
index 0000000..7c09c04
--- /dev/null
+++ b/ld/testsuite/ld-mmix/pr20125.d
@@ -0,0 +1,21 @@
+#as: -no-predefined-syms -x -I$srcdir/$subdir
+#ld: -m mmo --defsym __.MMIX.start..text=0x80000
+#objdump: -dr
+
+# PUSHJ reloc handling was wrong for weak undefined symbols, causing
+# internal inconsistencies, leading to a call to abort.
+# Note that we don't keep track of which symbols have pushj-stubs, so
+# we get one stub each for the two calls to "foo".
+
+.*: file format mmo
+
+Disassembly of section \.text:
+
+0+80000 <(_start|Main)>:
+ 80000: fe000004 get \$0,rJ
+ 80004: f2010004 pushj \$1,80014 <Main\+0x14>
+ 80008: f2010004 pushj \$1,80018 <Main\+0x18>
+ 8000c: f6040000 put rJ,\$0
+ 80010: f8010000 pop 1,0
+ 80014: f1fdfffb jmp 0 <Main-0x80000>
+ 80018: f1fdfffa jmp 0 <Main-0x80000>
diff --git a/ld/testsuite/ld-mmix/pr20125.s b/ld/testsuite/ld-mmix/pr20125.s
new file mode 100644
index 0000000..e528d9d
--- /dev/null
+++ b/ld/testsuite/ld-mmix/pr20125.s
@@ -0,0 +1,2 @@
+ .weak bar
+ .include "pr12815-2.s"
diff --git a/ld/testsuite/ld-msp430-elf/main-bss-lower.d b/ld/testsuite/ld-msp430-elf/main-bss-lower.d
new file mode 100644
index 0000000..6007420
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/main-bss-lower.d
@@ -0,0 +1,3 @@
+#...
+Disassembly of section .lower.bss:
+#pass
diff --git a/ld/testsuite/ld-msp430-elf/main-bss-upper.d b/ld/testsuite/ld-msp430-elf/main-bss-upper.d
new file mode 100644
index 0000000..2f6376a7
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/main-bss-upper.d
@@ -0,0 +1,3 @@
+#...
+Disassembly of section .upper.bss:
+#pass
diff --git a/ld/testsuite/ld-msp430-elf/main-const-lower.d b/ld/testsuite/ld-msp430-elf/main-const-lower.d
new file mode 100644
index 0000000..8549961
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/main-const-lower.d
@@ -0,0 +1,3 @@
+#...
+Disassembly of section .lower.rodata:
+#pass
diff --git a/ld/testsuite/ld-msp430-elf/main-const-upper.d b/ld/testsuite/ld-msp430-elf/main-const-upper.d
new file mode 100644
index 0000000..c84d649
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/main-const-upper.d
@@ -0,0 +1,3 @@
+#...
+Disassembly of section .upper.rodata:
+#pass
diff --git a/ld/testsuite/ld-msp430-elf/main-text-lower.d b/ld/testsuite/ld-msp430-elf/main-text-lower.d
new file mode 100644
index 0000000..446a305
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/main-text-lower.d
@@ -0,0 +1,3 @@
+#...
+Disassembly of section .lower.text:
+#pass
diff --git a/ld/testsuite/ld-msp430-elf/main-text-upper.d b/ld/testsuite/ld-msp430-elf/main-text-upper.d
new file mode 100644
index 0000000..f7ae6af
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/main-text-upper.d
@@ -0,0 +1,6 @@
+
+.*: file format.*msp430.*
+
+
+Disassembly of section .upper.text:
+#...
diff --git a/ld/testsuite/ld-msp430-elf/main-var-lower.d b/ld/testsuite/ld-msp430-elf/main-var-lower.d
new file mode 100644
index 0000000..f520cf5
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/main-var-lower.d
@@ -0,0 +1,3 @@
+#...
+Disassembly of section .lower.data:
+#pass
diff --git a/ld/testsuite/ld-msp430-elf/main-var-upper.d b/ld/testsuite/ld-msp430-elf/main-var-upper.d
new file mode 100644
index 0000000..fc3d712
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/main-var-upper.d
@@ -0,0 +1,3 @@
+#...
+Disassembly of section .upper.data:
+#pass
diff --git a/ld/testsuite/ld-msp430-elf/main-with-data-bss-unique-sec.s b/ld/testsuite/ld-msp430-elf/main-with-data-bss-unique-sec.s
new file mode 100644
index 0000000..7774804
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/main-with-data-bss-unique-sec.s
@@ -0,0 +1,78 @@
+ .file "main-with-data-bss.c"
+ .global glob_var_array
+ .section .data.glob_var_array,"aw",@progbits
+ .balign 2
+ .type glob_var_array, @object
+ .size glob_var_array, 20
+glob_var_array:
+ .short 0
+ .short 1
+ .short 2
+ .short 3
+ .short 4
+ .short 5
+ .short 6
+ .short 7
+ .short 8
+ .short 9
+ .section .bss.glob_bss_array,"aw",@nobits
+ .balign 2
+ .type glob_bss_array, @object
+ .size glob_bss_array, 20
+glob_bss_array:
+ .zero 20
+ .section .text.main,"ax",@progbits
+ .balign 2
+ .global main
+ .type main, @function
+main:
+; start of function
+; framesize_regs: 0
+; framesize_locals: 2
+; framesize_outgoing: 0
+; framesize: 2
+; elim ap -> fp 2
+; elim fp -> sp 2
+; saved regs:(none)
+ ; start of prologue
+ SUB.W #2, R1
+ ; end of prologue
+ MOV.W #0, @R1
+ BR #.L2
+.L7:
+ MOV.W @R1, R12
+ ADD.W R12, R12
+ ADD.W #glob_var_array, R12
+ MOV.W @R12, R13
+ MOV.W R13, R12
+ ADD.W R12, R12
+ ADD.W R13, R12
+ rpt #2 { rlax.w R12
+ SUB.W R13, R12
+ CMP.W #110, R12 { JNE .L3
+.L4:
+ BR #.L4
+.L3:
+ MOV.W @R1, R12
+ ADD.W R12, R12
+ ADD.W #glob_bss_array, R12
+ MOV.W @R12, R13
+ MOV.W R13, R12
+ ADD.W R12, R12
+ ADD.W R13, R12
+ rpt #2 { rlax.w R12
+ SUB.W R13, R12
+ CMP.W #110, R12 { JNE .L5
+.L6:
+ BR #.L6
+.L5:
+ ADD.W #1, @R1
+.L2:
+ MOV.B #9, R12
+ CMP.W @R1, R12 { JGE .L7
+ MOV.B #0, R12
+ ; start of epilogue
+ .refsym __crt0_call_exit
+ ADD.W #2, R1
+ RET
+ .size main, .-main
diff --git a/ld/testsuite/ld-msp430-elf/main-with-data-bss.s b/ld/testsuite/ld-msp430-elf/main-with-data-bss.s
new file mode 100644
index 0000000..a406b64
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/main-with-data-bss.s
@@ -0,0 +1,74 @@
+ .file "main-with-data-bss.c"
+ .global glob_var_array
+.data
+ .balign 2
+ .type glob_var_array, @object
+ .size glob_var_array, 20
+glob_var_array:
+ .short 0
+ .short 1
+ .short 2
+ .short 3
+ .short 4
+ .short 5
+ .short 6
+ .short 7
+ .short 8
+ .short 9
+ .local glob_bss_array
+ .comm glob_bss_array,20,2
+.text
+ .balign 2
+ .global main
+ .type main, @function
+main:
+; start of function
+; framesize_regs: 0
+; framesize_locals: 2
+; framesize_outgoing: 0
+; framesize: 2
+; elim ap -> fp 2
+; elim fp -> sp 2
+; saved regs:(none)
+ ; start of prologue
+ SUB.W #2, R1
+ ; end of prologue
+ MOV.W #0, @R1
+ BR #.L2
+.L7:
+ MOV.W @R1, R12
+ ADD.W R12, R12
+ ADD.W #glob_var_array, R12
+ MOV.W @R12, R13
+ MOV.W R13, R12
+ ADD.W R12, R12
+ ADD.W R13, R12
+ rpt #2 { rlax.w R12
+ SUB.W R13, R12
+ CMP.W #110, R12 { JNE .L3
+.L4:
+ BR #.L4
+.L3:
+ MOV.W @R1, R12
+ ADD.W R12, R12
+ ADD.W #glob_bss_array, R12
+ MOV.W @R12, R13
+ MOV.W R13, R12
+ ADD.W R12, R12
+ ADD.W R13, R12
+ rpt #2 { rlax.w R12
+ SUB.W R13, R12
+ CMP.W #110, R12 { JNE .L5
+.L6:
+ BR #.L6
+.L5:
+ ADD.W #1, @R1
+.L2:
+ MOV.B #9, R12
+ CMP.W @R1, R12 { JGE .L7
+ MOV.B #0, R12
+ ; start of epilogue
+ .refsym __crt0_call_exit
+ ADD.W #2, R1
+ RET
+ .size main, .-main
diff --git a/ld/testsuite/ld-msp430-elf/main-with-text-rodata-unique-sec.s b/ld/testsuite/ld-msp430-elf/main-with-text-rodata-unique-sec.s
new file mode 100644
index 0000000..398cf74
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/main-with-text-rodata-unique-sec.s
@@ -0,0 +1,59 @@
+ .file "main-with-text-rodata.c"
+ .global glob_const_array
+ .section .rodata.glob_const_array,"a",@progbits
+ .balign 2
+ .type glob_const_array, @object
+ .size glob_const_array, 20
+glob_const_array:
+ .short 0
+ .short 1
+ .short 2
+ .short 3
+ .short 4
+ .short 5
+ .short 6
+ .short 7
+ .short 8
+ .short 9
+ .section .text.main,"ax",@progbits
+ .balign 2
+ .global main
+ .type main, @function
+main:
+; start of function
+; framesize_regs: 0
+; framesize_locals: 2
+; framesize_outgoing: 0
+; framesize: 2
+; elim ap -> fp 2
+; elim fp -> sp 2
+; saved regs:(none)
+ ; start of prologue
+ SUB.W #2, R1
+ ; end of prologue
+ MOV.W #0, @R1
+ BR #.L2
+.L5:
+ MOV.W @R1, R12
+ ADD.W R12, R12
+ ADD.W #glob_const_array, R12
+ MOV.W @R12, R13
+ MOV.W R13, R12
+ ADD.W R12, R12
+ ADD.W R13, R12
+ rpt #2 { rlax.w R12
+ SUB.W R13, R12
+ CMP.W #110, R12 { JNE .L3
+.L4:
+ BR #.L4
+.L3:
+ ADD.W #1, @R1
+.L2:
+ MOV.B #9, R12
+ CMP.W @R1, R12 { JGE .L5
+ MOV.B #0, R12
+ ; start of epilogue
+ .refsym __crt0_call_exit
+ ADD.W #2, R1
+ RET
+ .size main, .-main
diff --git a/ld/testsuite/ld-msp430-elf/main-with-text-rodata.s b/ld/testsuite/ld-msp430-elf/main-with-text-rodata.s
new file mode 100644
index 0000000..225b5d4
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/main-with-text-rodata.s
@@ -0,0 +1,59 @@
+ .file "main-with-text-rodata.c"
+ .global glob_const_array
+ .section .rodata
+ .balign 2
+ .type glob_const_array, @object
+ .size glob_const_array, 20
+glob_const_array:
+ .short 0
+ .short 1
+ .short 2
+ .short 3
+ .short 4
+ .short 5
+ .short 6
+ .short 7
+ .short 8
+ .short 9
+.text
+ .balign 2
+ .global main
+ .type main, @function
+main:
+; start of function
+; framesize_regs: 0
+; framesize_locals: 2
+; framesize_outgoing: 0
+; framesize: 2
+; elim ap -> fp 2
+; elim fp -> sp 2
+; saved regs:(none)
+ ; start of prologue
+ SUB.W #2, R1
+ ; end of prologue
+ MOV.W #0, @R1
+ BR #.L2
+.L5:
+ MOV.W @R1, R12
+ ADD.W R12, R12
+ ADD.W #glob_const_array, R12
+ MOV.W @R12, R13
+ MOV.W R13, R12
+ ADD.W R12, R12
+ ADD.W R13, R12
+ rpt #2 { rlax.w R12
+ SUB.W R13, R12
+ CMP.W #110, R12 { JNE .L3
+.L4:
+ BR #.L4
+.L3:
+ ADD.W #1, @R1
+.L2:
+ MOV.B #9, R12
+ CMP.W @R1, R12 { JGE .L5
+ MOV.B #0, R12
+ ; start of epilogue
+ .refsym __crt0_call_exit
+ ADD.W #2, R1
+ RET
+ .size main, .-main
diff --git a/ld/testsuite/ld-msp430-elf/msp430-elf.exp b/ld/testsuite/ld-msp430-elf/msp430-elf.exp
new file mode 100644
index 0000000..fa396aa
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/msp430-elf.exp
@@ -0,0 +1,141 @@
+# Expect script for various MSP430 ELF tests.
+# Copyright (C) 2002-2015 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.
+#
+
+if { ![istarget "msp430*elf*"] } {
+ return
+}
+
+# List contains test-items with 3 items followed by 2 lists and one more item:
+# 0:name 1:ld early options 2:ld late options 3:assembler options
+# 4:filenames of assembler files 5: action and options. 6: name of output file
+
+# Actions:
+# objdump: Apply objdump options on result. Compare with regex (last arg).
+# nm: Apply nm options on result. Compare with regex (last arg).
+# readelf: Apply readelf options on result. Compare with regex (last arg).
+
+set msp430regionprefixtests {
+ {"Move main() to .upper.text" "-T msp430.ld --code-region=upper"
+ "" "" {main-with-text-rodata.s} {{objdump -d main-text-upper.d}} "main-upper"}
+ {"Move main() to .upper.text. No .lower.text in ld script" "-T msp430-no-lower.ld --code-region=upper"
+ "" "" {main-with-text-rodata.s} {{objdump -d main-text-upper.d}} "main-upper"}
+ {"Move main() to .lower.text" "-T msp430.ld --code-region=lower"
+ "" "" {main-with-text-rodata.s} {{objdump -d main-text-lower.d}} "main-lower"}
+ {"Move \"either\" main() to .lower.text" "-T msp430.ld --code-region=either"
+ "" "" {main-with-text-rodata.s} {{objdump -d main-text-lower.d}} "main-either"}
+
+ {"Move glob_var to .upper.data" "-T msp430.ld --data-region=upper"
+ "" "" {main-with-data-bss.s} {{objdump -D main-var-upper.d}} "main-var-upper"}
+ {"Move glob_var to .upper.data. No .lower.data in ld script" "-T msp430-no-lower.ld --data-region=upper"
+ "" "" {main-with-data-bss.s} {{objdump -D main-var-upper.d}} "main-var-upper"}
+ {"Move glob_var to .lower.data" "-T msp430.ld --data-region=lower"
+ "" "" {main-with-data-bss.s} {{objdump -D main-var-lower.d}} "main-var-lower"}
+ {"Move \"either\" glob_var to .lower.data" "-T msp430.ld --data-region=lower"
+ "" "" {main-with-data-bss.s} {{objdump -D main-var-lower.d}} "main-var-lower"}
+
+ {"Move glob_zero to .upper.bss" "-T msp430.ld --data-region=upper"
+ "" "" {main-with-data-bss.s} {{objdump -D main-bss-upper.d}} "main-bss-upper"}
+ {"Move glob_zero to .upper.bss. No .lower.bss in ld script." "-T msp430-no-lower.ld --data-region=upper"
+ "" "" {main-with-data-bss.s} {{objdump -D main-bss-upper.d}} "main-bss-upper"}
+ {"Move glob_zero to .lower.bss" "-T msp430.ld --data-region=lower"
+ "" "" {main-with-data-bss.s} {{objdump -D main-bss-lower.d}} "main-bss-lower"}
+ {"Move \"either\" glob_zero to .lower.bss" "-T msp430.ld --data-region=lower"
+ "" "" {main-with-data-bss.s} {{objdump -D main-bss-lower.d}} "main-bss-lower"}
+
+ {"Move glob_const to .upper.rodata" "-T msp430.ld --data-region=upper"
+ "" "" {main-with-text-rodata.s} {{objdump -D main-const-upper.d}} "main-const-upper"}
+ {"Move glob_const to .upper.rodata. No .lower.rodata in ld script." "-T msp430-no-lower.ld --data-region=upper"
+ "" "" {main-with-text-rodata.s} {{objdump -D main-const-upper.d}} "main-const-upper"}
+ {"Move glob_const to .lower.rodata" "-T msp430.ld --data-region=lower"
+ "" "" {main-with-text-rodata.s} {{objdump -D main-const-lower.d}} "main-const-lower"}
+ {"Move \"either\" glob_const to .lower.rodata" "-T msp430.ld --data-region=lower"
+ "" "" {main-with-text-rodata.s} {{objdump -D main-const-lower.d}} "main-const-lower"}
+}
+
+set msp430regionprefixuniquesectiontests {
+ {"Move main() to .upper.text, with -ffunction/data-sections" "-T msp430.ld --code-region=upper"
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -d main-text-upper.d}} "main-upper"}
+ {"Move main() to .upper.text. No .lower.text in ld script, with -ffunction/data-sections" "-T msp430-no-lower.ld --code-region=upper"
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -d main-text-upper.d}} "main-upper"}
+ {"Move main() to .lower.text, with -ffunction/data-sections" "-T msp430.ld --code-region=lower"
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -d main-text-lower.d}} "main-lower"}
+ {"Move \"either\" main() to .lower.text, with -ffunction/data-sections" "-T msp430.ld --code-region=either"
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -d main-text-lower.d}} "main-either"}
+
+ {"Move glob_var to .upper.data, with -ffunction/data-sections" "-T msp430.ld --data-region=upper"
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-var-upper.d}} "main-var-upper"}
+ {"Move glob_var to .upper.data. No .lower.data in ld script, with -ffunction/data-sections" "-T msp430-no-lower.ld --data-region=upper"
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-var-upper.d}} "main-var-upper"}
+ {"Move glob_var to .lower.data, with -ffunction/data-sections" "-T msp430.ld --data-region=lower"
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-var-lower.d}} "main-var-lower"}
+ {"Move \"either\" glob_var to .lower.data, with -ffunction/data-sections" "-T msp430.ld --data-region=lower"
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-var-lower.d}} "main-var-lower"}
+
+ {"Move glob_zero to .upper.bss, with -ffunction/data-sections" "-T msp430.ld --data-region=upper"
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-bss-upper.d}} "main-bss-upper"}
+ {"Move glob_zero to .upper.bss. No .lower.bss in ld script., with -ffunction/data-sections" "-T msp430-no-lower.ld --data-region=upper"
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-bss-upper.d}} "main-bss-upper"}
+ {"Move glob_zero to .lower.bss, with -ffunction/data-sections" "-T msp430.ld --data-region=lower"
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-bss-lower.d}} "main-bss-lower"}
+ {"Move \"either\" glob_zero to .lower.bss, with -ffunction/data-sections" "-T msp430.ld --data-region=lower"
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-bss-lower.d}} "main-bss-lower"}
+
+ {"Move glob_const to .upper.rodata, with -ffunction/data-sections" "-T msp430.ld --data-region=upper"
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -D main-const-upper.d}} "main-const-upper"}
+ {"Move glob_const to .upper.rodata. No .lower.rodata in ld script., with -ffunction/data-sections" "-T msp430-no-lower.ld --data-region=upper"
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -D main-const-upper.d}} "main-const-upper"}
+ {"Move glob_const to .lower.rodata, with -ffunction/data-sections" "-T msp430.ld --data-region=lower"
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -D main-const-lower.d}} "main-const-lower"}
+ {"Move \"either\" glob_const to .lower.rodata, with -ffunction/data-sections" "-T msp430.ld --data-region=lower"
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -D main-const-lower.d}} "main-const-lower"}
+}
+
+set msp430eithershuffletests {
+ {"Move \"either\" main() to .upper.text when it doesn\'t fit in .lower.text"
+ "-T msp430-tiny-rom.ld --code-region=either --data-region=either" "" "" {main-with-text-rodata.s}
+ {{objdump -d main-text-upper.d}} "either-to-upper-text"}
+ {"Move \"either\" glob_var_array to .upper.data when it doesn\'t fit in .lower.data"
+ "-T msp430-tiny-ram.ld --data-region=either" "" "" {main-with-data-bss.s}
+ {{objdump -D main-var-upper.d}} "either-to-upper-data"}
+ {"Move \"either\" glob_bss_array to .upper.bss when it doesn\'t fit in .lower.bss"
+ "-T msp430-tiny-ram.ld --data-region=either" "" "" {main-with-data-bss.s}
+ {{objdump -D main-bss-upper.d}} "either-to-upper-bss"}
+ {"Move \"either\" glob_const_array to .upper.rodata when it doesn\'t fit in .lower.rodata"
+ "-T msp430-tiny-rom.ld --code-region=either --data-region=either" "" "" {main-with-text-rodata.s}
+ {{objdump -D main-const-upper.d}} "either-to-upper-const"}
+
+ {"Move \"either\" main() to .upper.text when it doesn\'t fit in .lower.text, with -ffunction/data-sections"
+ "-T msp430-tiny-rom.ld --code-region=either --data-region=either" "" "" {main-with-text-rodata-unique-sec.s}
+ {{objdump -d main-text-upper.d}} "either-to-upper-text-unique-sec"}
+ {"Move \"either\" glob_var_array to .upper.data when it doesn\'t fit in .lower.data, with -ffunction/data-sections"
+ "-T msp430-tiny-ram.ld --data-region=either" "" "" {main-with-data-bss-unique-sec.s}
+ {{objdump -D main-var-upper.d}} "either-to-upper-data-unique-sec"}
+ {"Move \"either\" glob_bss_array to .upper.bss when it doesn\'t fit in .lower.bss, with -ffunction/data-sections"
+ "-T msp430-tiny-ram.ld --data-region=either" "" "" {main-with-data-bss-unique-sec.s}
+ {{objdump -D main-bss-upper.d}} "either-to-upper-bss-unique-sec"}
+ {"Move \"either\" glob_const_array to .upper.rodata when it doesn\'t fit in .lower.rodata, with -ffunction/data-sections"
+ "-T msp430-tiny-rom.ld --code-region=either --data-region=either" "" "" {main-with-text-rodata-unique-sec.s}
+ {{objdump -D main-const-upper.d}} "either-to-upper-const-unique-sec"}
+}
+
+run_ld_link_tests $msp430regionprefixtests
+run_ld_link_tests $msp430regionprefixuniquesectiontests
+run_ld_link_tests $msp430eithershuffletests
diff --git a/ld/testsuite/ld-msp430-elf/msp430-no-lower.ld b/ld/testsuite/ld-msp430-elf/msp430-no-lower.ld
new file mode 100644
index 0000000..f9a2847
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/msp430-no-lower.ld
@@ -0,0 +1,54 @@
+/* Script for ld testsuite */
+OUTPUT_ARCH(msp430)
+ENTRY(_start)
+
+SECTIONS
+{
+ .text :
+ {
+ PROVIDE (_start = .);
+ . = ALIGN(2);
+ *(.text .stub .text.* .gnu.linkonce.t.* .text:*)
+ }
+
+ .rodata :
+ {
+ *(.rodata.* .rodata)
+ }
+
+ .data :
+ {
+ . = ALIGN(2);
+ *(.data.* .data)
+ }
+
+ .bss :
+ {
+ . = ALIGN(2);
+ *(.bss.* .bss)
+ }
+
+ .upper.text :
+ {
+ . = ALIGN(2);
+ *(.upper.text.* .upper.text)
+ }
+
+ .upper.rodata :
+ {
+ . = ALIGN(2);
+ *(.upper.rodata .upper.rodata.*)
+ }
+
+ .upper.data :
+ {
+ . = ALIGN(2);
+ *(.upper.data .upper.data.*)
+ }
+
+ .upper.bss :
+ {
+ . = ALIGN(2);
+ *(.upper.bss .upper.bss.*)
+ }
+}
diff --git a/ld/testsuite/ld-msp430-elf/msp430-tiny-ram.ld b/ld/testsuite/ld-msp430-elf/msp430-tiny-ram.ld
new file mode 100644
index 0000000..e2e6f2f
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/msp430-tiny-ram.ld
@@ -0,0 +1,49 @@
+/* Script for ld testsuite */
+OUTPUT_ARCH(msp430)
+ENTRY(_start)
+
+MEMORY
+{
+ RAM : ORIGIN = 0x0, LENGTH = 0x2
+ ROM : ORIGIN = 0x2, LENGTH = 0x1fe
+ HIFRAM : ORIGIN = 0x200, LENGTH = 0x1000
+}
+
+SECTIONS
+{
+ .text :
+ {
+ PROVIDE (_start = .);
+ . = ALIGN(2);
+ *(.text .stub .text.* .gnu.linkonce.t.* .text:*)
+ } > ROM
+
+ .rodata :
+ {
+ *(.upper.rodata.* .rodata)
+ } > ROM
+
+ .data :
+ {
+ . = ALIGN(2);
+ *(.data.* .data)
+ } > RAM AT> ROM
+
+ .bss :
+ {
+ . = ALIGN(2);
+ *(.bss.* .bss)
+ } > RAM
+
+ .upper.data :
+ {
+ . = ALIGN(2);
+ *(.upper.data.* .upper.data)
+ } > HIFRAM AT> ROM
+
+ .upper.bss :
+ {
+ . = ALIGN(2);
+ *(.upper.bss.* .upper.bss)
+ } > HIFRAM
+}
diff --git a/ld/testsuite/ld-msp430-elf/msp430-tiny-rom.ld b/ld/testsuite/ld-msp430-elf/msp430-tiny-rom.ld
new file mode 100644
index 0000000..3e26379
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/msp430-tiny-rom.ld
@@ -0,0 +1,48 @@
+/* Script for ld testsuite */
+OUTPUT_ARCH(msp430)
+ENTRY(_start)
+
+MEMORY
+{
+ ROM : ORIGIN = 0x0, LENGTH = 0x2
+ RAM : ORIGIN = 0x2, LENGTH = 0x1fe
+ HIROM : ORIGIN = 0x200, LENGTH = 0x1000
+}
+
+SECTIONS
+{
+ .text :
+ {
+ PROVIDE (_start = .);
+ . = ALIGN(2);
+ *(.text .stub .text.* .gnu.linkonce.t.* .text:*)
+ } > ROM
+
+ .rodata :
+ {
+ *(.rodata.* .rodata)
+ } > ROM
+
+ .data :
+ {
+ . = ALIGN(2);
+ *(.data.* .data)
+ } > RAM AT> ROM
+
+ .bss :
+ {
+ . = ALIGN(2);
+ *(.bss.* .bss)
+ } > RAM
+
+ .upper.text :
+ {
+ . = ALIGN(2);
+ *(.upper.text.* .upper.text)
+ } > HIROM
+
+ .upper.rodata :
+ {
+ *(.upper.rodata.* .upper.rodata)
+ } > HIROM
+}
diff --git a/ld/testsuite/ld-msp430-elf/msp430.ld b/ld/testsuite/ld-msp430-elf/msp430.ld
new file mode 100644
index 0000000..9c30836
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/msp430.ld
@@ -0,0 +1,78 @@
+/* Script for ld testsuite */
+OUTPUT_ARCH(msp430)
+ENTRY(_start)
+
+SECTIONS
+{
+ .lower.data :
+ {
+ . = ALIGN(2);
+ *(.lower.data .lower.data.*)
+ }
+
+ .lower.bss :
+ {
+ . = ALIGN(2);
+ *(.lower.bss .lower.bss.*)
+ }
+
+ .lower.text :
+ {
+ PROVIDE (_start = .);
+ . = ALIGN(2);
+ *(.lower.text.* .lower.text)
+ }
+
+ .lower.rodata :
+ {
+ . = ALIGN(2);
+ *(.lower.rodata .lower.rodata.*)
+ }
+
+ .text :
+ {
+ . = ALIGN(2);
+ *(.text .stub .text.* .gnu.linkonce.t.* .text:*)
+ }
+
+ .rodata :
+ {
+ *(.rodata.* .rodata)
+ }
+
+ .data :
+ {
+ . = ALIGN(2);
+ *(.data.* .data)
+ }
+
+ .bss :
+ {
+ . = ALIGN(2);
+ *(.bss.* .bss)
+ }
+
+ .upper.text :
+ {
+ . = ALIGN(2);
+ *(.upper.text.* .upper.text)
+ }
+
+ .upper.rodata :
+ {
+ . = ALIGN(2);
+ *(.upper.rodata .upper.rodata.*)
+ }
+
+ .upper.data :
+ {
+ . = ALIGN(2);
+ *(.upper.data .upper.data.*)
+ }
+
+ .upper.bss :
+ {
+ . = ALIGN(2);
+ *(.upper.bss .upper.bss.*)
+ }
+}
diff --git a/ld/testsuite/ld-powerpc/ambiguousv1.d b/ld/testsuite/ld-powerpc/ambiguousv1.d
index a74325a..dcff2d8 100644
--- a/ld/testsuite/ld-powerpc/ambiguousv1.d
+++ b/ld/testsuite/ld-powerpc/ambiguousv1.d
@@ -18,7 +18,7 @@ Symbol table '\.dynsym' contains 5 entries:
0: .*
1: 0+00000000 0 FUNC GLOBAL DEFAULT UND my_func
#...
-Symbol table '\.symtab' contains 19 entries:
+Symbol table '\.symtab' contains .* entries:
#...
- 14: 0+00000000 0 FUNC GLOBAL DEFAULT UND my_func
+.*: 0+00000000 0 FUNC GLOBAL DEFAULT UND my_func
#pass
diff --git a/ld/testsuite/ld-powerpc/ambiguousv1b.d b/ld/testsuite/ld-powerpc/ambiguousv1b.d
index 7b9753a..678b8ad 100644
--- a/ld/testsuite/ld-powerpc/ambiguousv1b.d
+++ b/ld/testsuite/ld-powerpc/ambiguousv1b.d
@@ -14,11 +14,10 @@ Relocation section .* contains 1 entries:
.* R_PPC64_COPY .* my_func \+ 0
Symbol table '\.dynsym' contains 5 entries:
-.*
- 0: .*
- 1: 0+10010408 4 FUNC GLOBAL DEFAULT 12 my_func
#...
-Symbol table '\.symtab' contains 20 entries:
+.*: 0*[1-9a-f][0-9a-f]* 4 FUNC GLOBAL DEFAULT 1[23] my_func
+#...
+Symbol table '\.symtab' contains .* entries:
#...
- 15: 0+10010408 4 FUNC GLOBAL DEFAULT 12 my_func
+.*: 0*[1-9a-f][0-9a-f]* 4 FUNC GLOBAL DEFAULT 1[23] my_func
#pass
diff --git a/ld/testsuite/ld-powerpc/ambiguousv2.d b/ld/testsuite/ld-powerpc/ambiguousv2.d
index 99c8a39..fec3a2c 100644
--- a/ld/testsuite/ld-powerpc/ambiguousv2.d
+++ b/ld/testsuite/ld-powerpc/ambiguousv2.d
@@ -24,7 +24,7 @@ Symbol table '\.dynsym' contains 5 entries:
1: 0+00000000 0 FUNC GLOBAL DEFAULT UND my_func
#...
-Symbol table '\.symtab' contains 21 entries:
+Symbol table '\.symtab' contains .* entries:
#...
- 16: 0+00000000 0 FUNC GLOBAL DEFAULT UND my_func
+.*: 0+00000000 0 FUNC GLOBAL DEFAULT UND my_func
#pass
diff --git a/ld/testsuite/ld-powerpc/ambiguousv2b.d b/ld/testsuite/ld-powerpc/ambiguousv2b.d
index 859a3ea..c93cd11 100644
--- a/ld/testsuite/ld-powerpc/ambiguousv2b.d
+++ b/ld/testsuite/ld-powerpc/ambiguousv2b.d
@@ -15,11 +15,10 @@ Relocation section .* contains 1 entries:
.* R_PPC64_JMP_SLOT .* my_func \+ 0
Symbol table '\.dynsym' contains 5 entries:
-.*
- 0: .*
- 1: 0+100002b8 0 FUNC GLOBAL DEFAULT UND my_func
#...
-Symbol table '\.symtab' contains 21 entries:
+.*: 0*[1-9a-f][0-9a-f]* 0 FUNC GLOBAL DEFAULT UND my_func
+#...
+Symbol table '\.symtab' contains .* entries:
#...
- 16: 0+100002b8 0 FUNC GLOBAL DEFAULT UND my_func
+.*: 0*[1-9a-f][0-9a-f]* 0 FUNC GLOBAL DEFAULT UND my_func
#pass
diff --git a/ld/testsuite/ld-powerpc/elfv2so.d b/ld/testsuite/ld-powerpc/elfv2so.d
index f3962ac..a577b2a 100644
--- a/ld/testsuite/ld-powerpc/elfv2so.d
+++ b/ld/testsuite/ld-powerpc/elfv2so.d
@@ -7,53 +7,57 @@
Disassembly of section \.text:
-0+300 <.*\.plt_call\.f4>:
+.* <.*\.plt_call\.f4>:
.*: (f8 41 00 18|18 00 41 f8) std r2,24\(r1\)
.*: (e9 82 80 38|38 80 82 e9) ld r12,-32712\(r2\)
.*: (7d 89 03 a6|a6 03 89 7d) mtctr r12
.*: (4e 80 04 20|20 04 80 4e) bctr
+ \.\.\.
-0+310 <.*\.plt_call\.f3>:
+.* <.*\.plt_call\.f3>:
.*: (f8 41 00 18|18 00 41 f8) std r2,24\(r1\)
.*: (e9 82 80 28|28 80 82 e9) ld r12,-32728\(r2\)
.*: (7d 89 03 a6|a6 03 89 7d) mtctr r12
.*: (4e 80 04 20|20 04 80 4e) bctr
+ \.\.\.
-0+320 <.*\.plt_call\.f2>:
+.* <.*\.plt_call\.f2>:
.*: (f8 41 00 18|18 00 41 f8) std r2,24\(r1\)
.*: (e9 82 80 30|30 80 82 e9) ld r12,-32720\(r2\)
.*: (7d 89 03 a6|a6 03 89 7d) mtctr r12
.*: (4e 80 04 20|20 04 80 4e) bctr
+ \.\.\.
-0+330 <.*\.plt_call\.f1>:
+.* <.*\.plt_call\.f1>:
.*: (f8 41 00 18|18 00 41 f8) std r2,24\(r1\)
.*: (e9 82 80 40|40 80 82 e9) ld r12,-32704\(r2\)
.*: (7d 89 03 a6|a6 03 89 7d) mtctr r12
.*: (4e 80 04 20|20 04 80 4e) bctr
+ \.\.\.
-0+340 <f1>:
+.* <f1>:
.*: (3c 4c 00 02|02 00 4c 3c) addis r2,r12,2
-.*: (38 42 82 c0|c0 82 42 38) addi r2,r2,-32064
+.*: (38 42 .. ..|.. .. 42 38) addi r2,r2,.*
.*: (7c 08 02 a6|a6 02 08 7c) mflr r0
.*: (f8 21 ff e1|e1 ff 21 f8) stdu r1,-32\(r1\)
.*: (f8 01 00 30|30 00 01 f8) std r0,48\(r1\)
-.*: (4b ff ff dd|dd ff ff 4b) bl .*\.plt_call\.f1>
+.*: (4b ff ff cd|cd ff ff 4b) bl .*\.plt_call\.f1>
.*: (e8 62 80 08|08 80 62 e8) ld r3,-32760\(r2\)
-.*: (4b ff ff c5|c5 ff ff 4b) bl .*\.plt_call\.f2>
+.*: (4b ff ff a5|a5 ff ff 4b) bl .*\.plt_call\.f2>
.*: (e8 41 00 18|18 00 41 e8) ld r2,24\(r1\)
.*: (e8 62 80 10|10 80 62 e8) ld r3,-32752\(r2\)
-.*: (4b ff ff a9|a9 ff ff 4b) bl .*\.plt_call\.f3>
+.*: (4b ff ff 79|79 ff ff 4b) bl .*\.plt_call\.f3>
.*: (e8 41 00 18|18 00 41 e8) ld r2,24\(r1\)
-.*: (4b ff ff 91|91 ff ff 4b) bl .*\.plt_call\.f4>
+.*: (4b ff ff 51|51 ff ff 4b) bl .*\.plt_call\.f4>
.*: (e8 41 00 18|18 00 41 e8) ld r2,24\(r1\)
.*: (e8 01 00 30|30 00 01 e8) ld r0,48\(r1\)
.*: (38 21 00 20|20 00 21 38) addi r1,r1,32
.*: (7c 08 03 a6|a6 03 08 7c) mtlr r0
.*: (4e 80 00 20|20 00 80 4e) blr
-.*: (00 00 00 00|80 02 01 00) .*
-.*: (00 01 02 80|00 00 00 00) .*
+.*
+.*
-0+390 <__glink_PLTresolve>:
+.* <__glink_PLTresolve>:
.*: (7c 08 02 a6|a6 02 08 7c) mflr r0
.*: (42 9f 00 05|05 00 9f 42) bcl .*
.*: (7d 68 02 a6|a6 02 68 7d) mflr r11
diff --git a/ld/testsuite/ld-powerpc/powerpc.exp b/ld/testsuite/ld-powerpc/powerpc.exp
index f709b1e..ef3b718 100644
--- a/ld/testsuite/ld-powerpc/powerpc.exp
+++ b/ld/testsuite/ld-powerpc/powerpc.exp
@@ -29,33 +29,34 @@ if {[istarget "*-*-vxworks"]} {
"-mregnames" {vxworks1-lib.s}
{{readelf --segments vxworks1-lib.sd}}
"libvxworks1.so"}
- {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" ""
+ {"VxWorks shared library test 1"
+ "-shared --hash-style=sysv -Tvxworks1.ld" ""
"-mregnames" {vxworks1-lib.s}
{{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
{readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
"libvxworks1.so"}
{"VxWorks executable test 1 (dynamic)" \
- "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" ""
+ "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic --hash-style=sysv" ""
"-mregnames" {vxworks1.s}
{{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
"vxworks1"}
{"VxWorks executable test 2 (dynamic)" \
- "-Tvxworks1.ld -q --force-dynamic" ""
+ "-Tvxworks1.ld -q --force-dynamic --hash-style=sysv" ""
"-mregnames" {vxworks2.s}
{{readelf --segments vxworks2.sd}}
"vxworks2"}
{"VxWorks executable test 2 (static)"
- "-Tvxworks1.ld" ""
+ "-Tvxworks1.ld --hash-style=sysv" ""
"-mregnames" {vxworks2.s}
{{readelf --segments vxworks2-static.sd}}
"vxworks2"}
{"VxWorks relax test"
- "-Tvxworks1.ld --relax -q" ""
+ "-Tvxworks1.ld --relax -q --hash-style=sysv" ""
"-mregnames" {vxworks-relax.s}
{{readelf --relocs vxworks-relax.rd}}
"vxworks-relax"}
{"VxWorks relocatable relax test"
- "-Tvxworks1.ld -r --relax -q" ""
+ "-Tvxworks1.ld -r --relax -q --hash-style=sysv" ""
"-mregnames" {vxworks-relax-2.s}
{{readelf --relocs vxworks-relax-2.rd}}
"vxworks-relax-2"}
@@ -109,110 +110,120 @@ set ppcelftests {
{"APUinfo NULL section processing" "-melf32ppc" ""
"-a32 -me500" {apuinfo-nul1.s apuinfo-nul.s}
{{readelf -x2 apuinfo-nul.rd}} "apuinfo"}
+ {"TLS32 static exec (markers)" "-melf32ppc" ""
+ "-a32 --defsym TLSMARK=1" {tls32.s tlslib32.s}
+ {{objdump -dr tls32.d} {objdump -sj.got tls32.g}
+ {objdump -sj.tdata tls32.t}}
+ "tls32m"}
{"TLS32 static exec" "-melf32ppc" "" "-a32" {tls32.s tlslib32.s}
{{objdump -dr tls32.d} {objdump -sj.got tls32.g}
{objdump -sj.tdata tls32.t}}
"tls32"}
{"TLS32 helper shared library" "-shared -melf32ppc tmpdir/tlslib32.o" "" "" {}
{} "libtlslib32.so"}
- {"TLS32 dynamic exec" "-melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o tmpdir/libtlslib32.so" "" "" {}
+ {"TLS32 dynamic exec" "-melf32ppc --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls32.o tmpdir/libtlslib32.so" "" "" {}
{{readelf -WSsrl tlsexe32.r} {objdump -dr tlsexe32.d}
{objdump -sj.got tlsexe32.g} {objdump -sj.tdata tlsexe32.t}}
- "tlsexe32"}
- {"TLS32 shared" "-shared -melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o" "" "" {}
+ "tlsexe32"}
+ {"TLS32 shared" "-shared -melf32ppc --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls32.o" "" "" {}
{{readelf -WSsrl tlsso32.r} {objdump -dr tlsso32.d}
{objdump -sj.got tlsso32.g} {objdump -sj.tdata tlsso32.t}}
- "tls32.so"}
+ "tls32.so"}
{"TLS32 markers" "-melf32ppc" "" "-a32" {tlsmark32.s tlslib32.s}
{{objdump -dr tlsmark32.d}}
- "tlsmark32"}
+ "tlsmark32"}
{"TLS32 opt 1" "-melf32ppc" "" "-a32" {tlsopt1_32.s tlslib32.s}
{{objdump -dr tlsopt1_32.d}}
- "tlsopt1_32"}
+ "tlsopt1_32"}
{"TLS32 opt 2" "-melf32ppc" "" "-a32" {tlsopt2_32.s tlslib32.s}
{{objdump -dr tlsopt2_32.d}}
- "tlsopt2_32"}
+ "tlsopt2_32"}
{"TLS32 opt 3" "-melf32ppc" "" "-a32" {tlsopt3_32.s tlslib32.s}
{{objdump -dr tlsopt3_32.d}}
"tlsopt3_32"}
{"TLS32 opt 4" "-melf32ppc" "" "-a32" {tlsopt4_32.s tlslib32.s}
{{objdump -dr tlsopt4_32.d}}
- "tlsopt4_32"}
- {"TLS32 DLL" "-shared -melf32ppc --version-script tlsdll.ver" "" "-a32" {tlsdll_32.s}
+ "tlsopt4_32"}
+ {"TLS32 DLL" "-shared -melf32ppc --version-script tlsdll.ver" ""
+ "-a32" {tlsdll_32.s}
{} "tlsdll32.so"}
- {"TLS32 opt 5" "-melf32ppc --gc-sections --secure-plt tmpdir/tlsdll32.so" "" "-a32" {tlsopt5_32.s}
+ {"TLS32 opt 5" "-melf32ppc -shared --gc-sections --secure-plt tmpdir/tlsdll32.so" "" "-a32" {tlsopt5_32.s}
{{objdump -dr tlsopt5_32.d}}
- "tlsopt5_32"}
+ "tlsopt5_32"}
{"Shared library with global symbol" "-shared -melf32ppc" "" "-a32" {sdalib.s}
{} "sdalib.so"}
{"Dynamic application with SDA" "-melf32ppc tmpdir/sdalib.so" "" "-a32" {sdadyn.s}
{{objdump -R sdadyn.d}} "sdadyn"}
{"relaxing" "-melf32ppc --relax -Ttext=0 --defsym far=0x80001234 --defsym near=0x00004320" "" "-a32" "relax.s"
{{objdump -dr relax.d}}
- "relax"}
+ "relax"}
{"relocatable relaxing" "-melf32ppc -r --relax" "" "-a32" "relax.s"
{{objdump -dr relaxr.d}}
- "relax"}
+ "rrelax"}
}
set ppc64elftests {
- {"TLS static exec" "-melf64ppc" "" "-a64" {tls.s tlslib.s}
+ {"TLS static exec (markers)" "-melf64ppc --no-plt-align" ""
+ "-a64 --defsym TLSMARK=1" {tls.s tlslib.s}
+ {{objdump -dr tls.d} {objdump -sj.got tls.g} {objdump -sj.tdata tls.t}}
+ "tlsm"}
+ {"TLS static exec" "-melf64ppc --no-plt-align" "" "-a64" {tls.s tlslib.s}
{{objdump -dr tls.d} {objdump -sj.got tls.g} {objdump -sj.tdata tls.t}}
- "tls"}
+ "tls"}
{"TLS helper shared library" "-shared -melf64ppc tmpdir/tlslib.o" "" "" {}
{} "libtlslib.so"}
{"TLS helper old shared lib" "-shared -melf64ppc" "" "-a64" {oldtlslib.s}
{} "liboldlib.so"}
- {"TLS dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/libtlslib.so" "" "" {}
+ {"TLS dynamic exec" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls.o tmpdir/libtlslib.so" "" "" {}
{{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d}
{objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
- "tlsexe"}
- {"TLS dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/liboldlib.so" "" "" {}
+ "tlsexe"}
+ {"TLS dynamic old" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls.o tmpdir/liboldlib.so" "" "" {}
{{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d}
{objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
- "tlsexeold"}
- {"TLS shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o" "" "" {}
+ "tlsexeold"}
+ {"TLS shared" "-shared -melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls.o" "" "" {}
{{readelf -WSsrl tlsso.r} {objdump -dr tlsso.d}
{objdump -sj.got tlsso.g} {objdump -sj.tdata tlsso.t}}
- "tls.so"}
+ "tls.so"}
{"TLSTOC static exec" "-melf64ppc tmpdir/tlslib.o " "" "-a64" {tlstoc.s}
{{objdump -dr tlstoc.d} {objdump -sj.got tlstoc.g}
{objdump -sj.tdata tlstoc.t}}
- "tlstoc"}
- {"TLSTOC dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/libtlslib.so" ""
+ "tlstoc"}
+ {"TLSTOC dynamic exec" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/libtlslib.so" ""
"" {}
{{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d}
{objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
- "tlsexetoc"}
- {"TLSTOC dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/liboldlib.so" ""
+ "tlsexetoc"}
+ {"TLSTOC dynamic old" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/liboldlib.so" ""
"" {}
{{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d}
{objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
- "tlsexetocold"}
- {"TLSTOC shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o" "" "" {}
+ "tlsexetocold"}
+ {"TLSTOC shared" "-shared -melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o" "" "" {}
{{readelf -WSsrl tlstocso.r} {objdump -dr tlstocso.d}
{objdump -sj.got tlstocso.g} {objdump -sj.tdata tlstocso.t}}
- "tlstoc.so"}
+ "tlstoc.so"}
{"TLS markers" "-melf64ppc" "" "-a64" {tlsmark.s tlslib.s}
{{objdump -dr tlsmark.d}}
- "tlsmark"}
+ "tlsmark"}
{"TLS opt 1" "-melf64ppc" "" "-a64" {tlsopt1.s tlslib.s}
{{objdump -dr tlsopt1.d}}
- "tlsopt1"}
+ "tlsopt1"}
{"TLS opt 2" "-melf64ppc" "" "-a64" {tlsopt2.s tlslib.s}
{{objdump -dr tlsopt2.d}}
- "tlsopt2"}
+ "tlsopt2"}
{"TLS opt 3" "-melf64ppc" "" "-a64" {tlsopt3.s tlslib.s}
{{objdump -dr tlsopt3.d}}
- "tlsopt3"}
+ "tlsopt3"}
{"TLS opt 4" "-melf64ppc" "" "-a64" {tlsopt4.s tlslib.s}
{{objdump -dr tlsopt4.d}}
- "tlsopt4"}
+ "tlsopt4"}
{"TLS DLL" "-shared -melf64ppc --version-script tlsdll.ver" "" "-a64" {tlsdll.s}
{} "tlsdll.so"}
- {"TLS opt 5" "-melf64ppc --gc-sections --no-plt-localentry tmpdir/tlsdll.so" "" "-a64" {tlsopt5.s}
- {{objdump -dr tlsopt5.d}}
- "tlsopt5"}
+ {"TLS opt 5" "-melf64ppc --no-plt-align -shared --gc-sections --no-plt-localentry tmpdir/tlsdll.so" "" "-a64" {tlsopt5.s}
+ {{objdump -dr tlsopt5.d} {readelf -wf tlsopt5.wf}}
+ "tlsopt5"}
{"sym@tocbase" "-shared -melf64ppc" "" "-a64" {symtocbase-1.s symtocbase-2.s}
{{objdump -dj.data symtocbase.d}} "symtocbase.so"}
{"TOC opt" "-melf64ppc" "" "-a64" {tocopt.s}
diff --git a/ld/testsuite/ld-powerpc/ppc476-shared.d b/ld/testsuite/ld-powerpc/ppc476-shared.d
index fe438f4..72f8a3d 100644
--- a/ld/testsuite/ld-powerpc/ppc476-shared.d
+++ b/ld/testsuite/ld-powerpc/ppc476-shared.d
@@ -23,7 +23,7 @@ Disassembly of section \.text:
\.\.\.
3fff0: (42 9f 00 05|05 00 9f 42) bcl .*
3fff4: (7d 28 02 a6|a6 02 28 7d) mflr r9
- 3fff8: (3d 29 00 00|00 00 29 3d) addis r9,r9,0
+ 3fff8: (3d 29 00 01|01 00 29 3d) addis r9,r9,1
3fff[8a]: R_PPC_REL16_HA \.bss\+0x[46]
3fffc: (48 00 00 34|34 00 00 48) b 40030 .*
40000: (3c 60 00 00|00 00 60 3c) lis r3,0
@@ -41,7 +41,7 @@ Disassembly of section \.text:
40024: (4b fe ff dc|dc ff fe 4b) b 30000 .*
40028: (48 00 00 02|02 00 00 48) ba 0 .*
4002c: (48 00 00 02|02 00 00 48) ba 0 .*
- 40030: (39 29 01 50|50 01 29 39) addi r9,r9,336
+ 40030: (39 29 00 0c|0c 00 29 39) addi r9,r9,12
4003[02]: R_PPC_REL16_LO \.bss\+0x3[ce]
40034: (4b ff ff cc|cc ff ff 4b) b 40000 .*
40038: (48 00 00 02|02 00 00 48) ba 0 .*
diff --git a/ld/testsuite/ld-powerpc/ppc476-shared.lnk b/ld/testsuite/ld-powerpc/ppc476-shared.lnk
index 5339358..03e66b3 100644
--- a/ld/testsuite/ld-powerpc/ppc476-shared.lnk
+++ b/ld/testsuite/ld-powerpc/ppc476-shared.lnk
@@ -2,5 +2,5 @@ SECTIONS
{
. = 0xfffc;
.text : { *(.text) }
- .bss : { *(.bss) }
+ .bss : ALIGN (0x10000) { *(.bss) }
}
diff --git a/ld/testsuite/ld-powerpc/ppc476-shared2.d b/ld/testsuite/ld-powerpc/ppc476-shared2.d
index 813ea2e..5bf0a03 100644
--- a/ld/testsuite/ld-powerpc/ppc476-shared2.d
+++ b/ld/testsuite/ld-powerpc/ppc476-shared2.d
@@ -8,9 +8,9 @@
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
-0001000[02] R_PPC_ADDR16_LO \.text\+0x00040144
-0002000[02] R_PPC_ADDR16_LO \.text\+0x00040144
-0003000[02] R_PPC_ADDR16_LO \.text\+0x00040144
-0004000[02] R_PPC_ADDR16_HA \.text\+0x00040144
-0004001[02] R_PPC_ADDR16_HA \.text\+0x00040144
-0004002[02] R_PPC_ADDR16_HA \.text\+0x00040144
+0001000[02] R_PPC_ADDR16_LO \.text\+0x00050000
+0002000[02] R_PPC_ADDR16_LO \.text\+0x00050000
+0003000[02] R_PPC_ADDR16_LO \.text\+0x00050000
+0004000[02] R_PPC_ADDR16_HA \.text\+0x00050000
+0004001[02] R_PPC_ADDR16_HA \.text\+0x00050000
+0004002[02] R_PPC_ADDR16_HA \.text\+0x00050000
diff --git a/ld/testsuite/ld-powerpc/relbrlt.d b/ld/testsuite/ld-powerpc/relbrlt.d
index a5f2437..a00b1ff 100644
--- a/ld/testsuite/ld-powerpc/relbrlt.d
+++ b/ld/testsuite/ld-powerpc/relbrlt.d
@@ -1,6 +1,6 @@
#source: relbrlt.s
#as: -a64
-#ld: -melf64ppc --no-ld-generated-unwind-info --emit-relocs
+#ld: -melf64ppc --no-plt-align --no-ld-generated-unwind-info --emit-relocs
#objdump: -Dr
.*
diff --git a/ld/testsuite/ld-powerpc/tls.d b/ld/testsuite/ld-powerpc/tls.d
index 7082028..563f6b2 100644
--- a/ld/testsuite/ld-powerpc/tls.d
+++ b/ld/testsuite/ld-powerpc/tls.d
@@ -10,44 +10,44 @@
Disassembly of section \.text:
0+100000e8 <\._start>:
-.*: (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
.*: (60 00 00 00|00 00 00 60) nop
-.*: (38 63 90 78|78 90 63 38) addi r3,r3,-28552
-.*: (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.*: (38 6d 90 78|78 90 6d 38) addi r3,r13,-28552
.*: (60 00 00 00|00 00 00 60) nop
-.*: (38 63 10 00|00 10 63 38) addi r3,r3,4096
-.*: (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
.*: (60 00 00 00|00 00 00 60) nop
-.*: (38 63 90 40|40 90 63 38) addi r3,r3,-28608
-.*: (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.*: (38 6d 10 00|00 10 6d 38) addi r3,r13,4096
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (38 6d 90 40|40 90 6d 38) addi r3,r13,-28608
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (38 6d 10 00|00 10 6d 38) addi r3,r13,4096
.*: (60 00 00 00|00 00 00 60) nop
-.*: (38 63 10 00|00 10 63 38) addi r3,r3,4096
.*: (39 23 80 48|48 80 23 39) addi r9,r3,-32696
.*: (3d 23 00 00|00 00 23 3d) addis r9,r3,0
.*: (81 49 80 50|50 80 49 81) lwz r10,-32688\(r9\)
.*: (e9 22 80 10|10 80 22 e9) ld r9,-32752\(r2\)
.*: (7d 49 18 2a|2a 18 49 7d) ldx r10,r9,r3
-.*: (3d 2d 00 00|00 00 2d 3d) addis r9,r13,0
-.*: (a1 49 90 60|60 90 49 a1) lhz r10,-28576\(r9\)
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (a1 4d 90 60|60 90 4d a1) lhz r10,-28576\(r13\)
.*: (89 4d 90 68|68 90 4d 89) lbz r10,-28568\(r13\)
-.*: (3d 2d 00 00|00 00 2d 3d) addis r9,r13,0
-.*: (99 49 90 70|70 90 49 99) stb r10,-28560\(r9\)
-.*: (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
.*: (60 00 00 00|00 00 00 60) nop
-.*: (38 63 90 00|00 90 63 38) addi r3,r3,-28672
-.*: (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.*: (99 4d 90 70|70 90 4d 99) stb r10,-28560\(r13\)
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (38 6d 90 00|00 90 6d 38) addi r3,r13,-28672
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (38 6d 10 00|00 10 6d 38) addi r3,r13,4096
.*: (60 00 00 00|00 00 00 60) nop
-.*: (38 63 10 00|00 10 63 38) addi r3,r3,4096
.*: (f9 43 80 08|08 80 43 f9) std r10,-32760\(r3\)
.*: (3d 23 00 00|00 00 23 3d) addis r9,r3,0
.*: (91 49 80 10|10 80 49 91) stw r10,-32752\(r9\)
.*: (e9 22 80 08|08 80 22 e9) ld r9,-32760\(r2\)
.*: (7d 49 19 2a|2a 19 49 7d) stdx r10,r9,r3
-.*: (3d 2d 00 00|00 00 2d 3d) addis r9,r13,0
-.*: (b1 49 90 60|60 90 49 b1) sth r10,-28576\(r9\)
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (b1 4d 90 60|60 90 4d b1) sth r10,-28576\(r13\)
.*: (e9 4d 90 2a|2a 90 4d e9) lwa r10,-28632\(r13\)
-.*: (3d 2d 00 00|00 00 2d 3d) addis r9,r13,0
-.*: (a9 49 90 30|30 90 49 a9) lha r10,-28624\(r9\)
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (a9 4d 90 30|30 90 4d a9) lha r10,-28624\(r13\)
0+10000180 <\.__tls_get_addr>:
.*: (4e 80 00 20|20 00 80 4e) blr
diff --git a/ld/testsuite/ld-powerpc/tls.s b/ld/testsuite/ld-powerpc/tls.s
index 49828d0..9bf69d3 100644
--- a/ld/testsuite/ld-powerpc/tls.s
+++ b/ld/testsuite/ld-powerpc/tls.s
@@ -29,23 +29,43 @@ _start:
#extern syms
#GD
addi 3,2,gd@got@tlsgd #R_PPC64_GOT_TLSGD16 gd
+ .ifdef TLSMARK
+ bl __tls_get_addr(gd@tlsgd) #R_PPC64_TLSGD gd
+ #R_PPC64_REL24 __tls_get_addr
+ .else
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
+ .endif
nop
#LD
addi 3,2,ld@got@tlsld #R_PPC64_GOT_TLSLD16 ld
+ .ifdef TLSMARK
+ bl __tls_get_addr(ld@tlsld) #R_PPC64_TLSLD ld
+ #R_PPC64_REL24 __tls_get_addr
+ .else
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
+ .endif
nop
#global syms
#GD
addi 3,2,gd0@got@tlsgd #R_PPC64_GOT_TLSGD16 gd0
+ .ifdef TLSMARK
+ bl __tls_get_addr(gd0@tlsgd) #R_PPC64_TLSGD gd0
+ #R_PPC64_REL24 __tls_get_addr
+ .else
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
+ .endif
nop
#LD
addi 3,2,ld0@got@tlsld #R_PPC64_GOT_TLSLD16 ld0
+ .ifdef TLSMARK
+ bl __tls_get_addr(ld0@tlsld) #R_PPC64_TLSLD ld0
+ #R_PPC64_REL24 __tls_get_addr
+ .else
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
+ .endif
nop
addi 9,3,ld0@dtprel #R_PPC64_DTPREL16 ld0
@@ -69,12 +89,22 @@ _start:
#local syms
#GD
addi 3,2,gd4@got@tlsgd #R_PPC64_GOT_TLSGD16 gd4
+ .ifdef TLSMARK
+ bl __tls_get_addr(gd4@tlsgd) #R_PPC64_TLSGD gd4
+ #R_PPC64_REL24 __tls_get_addr
+ .else
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
+ .endif
nop
#LD
addi 3,2,ld4@got@tlsld #R_PPC64_GOT_TLSLD16 ld4
+ .ifdef TLSMARK
+ bl __tls_get_addr(ld4@tlsld) #R_PPC64_TLSLD ld4
+ #R_PPC64_REL24 __tls_get_addr
+ .else
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
+ .endif
nop
std 10,ld4@dtprel(3) #R_PPC64_DTPREL16_DS ld4
@@ -94,4 +124,3 @@ _start:
addis 9,13,le5@tprel@ha #R_PPC64_TPREL16_HA le5
lha 10,le5@tprel@l(9) #R_PPC64_TPREL16_LO le5
-
diff --git a/ld/testsuite/ld-powerpc/tls32.s b/ld/testsuite/ld-powerpc/tls32.s
index b9b8468..1c7a890 100644
--- a/ld/testsuite/ld-powerpc/tls32.s
+++ b/ld/testsuite/ld-powerpc/tls32.s
@@ -33,20 +33,40 @@ _start:
#extern syms
#GD
addi 3,31,gd@got@tlsgd #R_PPC_GOT_TLSGD16 gd
+ .ifdef TLSMARK
+ bl __tls_get_addr(gd@tlsgd) #R_PPC_TLSGD gd
+ #R_PPC_REL24 __tls_get_addr
+ .else
bl __tls_get_addr #R_PPC_REL24 __tls_get_addr
+ .endif
#LD
addi 3,31,ld@got@tlsld #R_PPC_GOT_TLSLD16 ld
+ .ifdef TLSMARK
+ bl __tls_get_addr(ld@tlsld) #R_PPC_TLSLD ld
+ #R_PPC_REL24 __tls_get_addr
+ .else
bl __tls_get_addr #R_PPC_REL24 __tls_get_addr
+ .endif
#global syms
#GD
addi 3,31,gd0@got@tlsgd #R_PPC_GOT_TLSGD16 gd0
- bl __tls_get_addr+0x8000@plt #R_PPC_PLTREL24 __tls_get_addr
+ .ifdef TLSMARK
+ bl __tls_get_addr+0x8000(gd0@tlsgd)@plt #R_PPC_TLSGD gd0
+ #R_PPC_PLTREL24 __tls_get_addr+0x8000
+ .else
+ bl __tls_get_addr+0x8000@plt #R_PPC_PLTREL24 __tls_get_addr+0x8000
+ .endif
#LD
addi 3,31,ld0@got@tlsld #R_PPC_GOT_TLSLD16 ld0
- bl __tls_get_addr+0x8000@plt #R_PPC_PLTREL24 __tls_get_addr
+ .ifdef TLSMARK
+ bl __tls_get_addr+0x8000(ld0@tlsld)@plt #R_PPC_TLSLD ld0
+ #R_PPC_PLTREL24 __tls_get_addr+0x8000
+ .else
+ bl __tls_get_addr+0x8000@plt #R_PPC_PLTREL24 __tls_get_addr+0x8000
+ .endif
addi 9,3,ld0@dtprel #R_PPC_DTPREL16 ld0
@@ -66,11 +86,21 @@ _start:
#local syms, use a different got reg too.
#GD
addi 3,30,gd4@got@tlsgd #R_PPC_GOT_TLSGD16 gd4
+ .ifdef TLSMARK
+ bl __tls_get_addr(gd4@tlsgd) #R_PPC_TLSGD gd4
+ #R_PPC_REL24 __tls_get_addr
+ .else
bl __tls_get_addr #R_PPC_REL24 __tls_get_addr
+ .endif
#LD
addi 3,30,ld4@got@tlsld #R_PPC_GOT_TLSLD16 ld4
+ .ifdef TLSMARK
+ bl __tls_get_addr(ld4@tlsld) #R_PPC_TLSLD ld4
+ #R_PPC_REL24 __tls_get_addr
+ .else
bl __tls_get_addr #R_PPC_REL24 __tls_get_addr
+ .endif
stw 10,ld4@dtprel(3) #R_PPC_DTPREL16 ld4
diff --git a/ld/testsuite/ld-powerpc/tlsexe.d b/ld/testsuite/ld-powerpc/tlsexe.d
index b536622..542b435 100644
--- a/ld/testsuite/ld-powerpc/tlsexe.d
+++ b/ld/testsuite/ld-powerpc/tlsexe.d
@@ -30,43 +30,43 @@ Disassembly of section \.text:
.* <._start>:
.* (e8 62 80 10|10 80 62 e8) ld r3,-32752\(r2\)
-.* (60 00 00 00|00 00 00 60) nop
.* (7c 63 6a 14|14 6a 63 7c) add r3,r3,r13
+.* (60 00 00 00|00 00 00 60) nop
.* (38 62 80 18|18 80 62 38) addi r3,r2,-32744
.* (4b ff ff a9|a9 ff ff 4b) bl .*
.* (60 00 00 00|00 00 00 60) nop
-.* (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
.* (60 00 00 00|00 00 00 60) nop
-.* (38 63 90 38|38 90 63 38) addi r3,r3,-28616
-.* (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.* (38 6d 90 38|38 90 6d 38) addi r3,r13,-28616
+.* (60 00 00 00|00 00 00 60) nop
+.* (60 00 00 00|00 00 00 60) nop
+.* (38 6d 10 00|00 10 6d 38) addi r3,r13,4096
.* (60 00 00 00|00 00 00 60) nop
-.* (38 63 10 00|00 10 63 38) addi r3,r3,4096
.* (39 23 80 40|40 80 23 39) addi r9,r3,-32704
.* (3d 23 00 00|00 00 23 3d) addis r9,r3,0
.* (81 49 80 48|48 80 49 81) lwz r10,-32696\(r9\)
.* (e9 22 80 28|28 80 22 e9) ld r9,-32728\(r2\)
.* (7d 49 18 2a|2a 18 49 7d) ldx r10,r9,r3
-.* (3d 2d 00 00|00 00 2d 3d) addis r9,r13,0
-.* (a1 49 90 58|58 90 49 a1) lhz r10,-28584\(r9\)
+.* (60 00 00 00|00 00 00 60) nop
+.* (a1 4d 90 58|58 90 4d a1) lhz r10,-28584\(r13\)
.* (89 4d 90 60|60 90 4d 89) lbz r10,-28576\(r13\)
-.* (3d 2d 00 00|00 00 2d 3d) addis r9,r13,0
-.* (99 49 90 68|68 90 49 99) stb r10,-28568\(r9\)
-.* (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
.* (60 00 00 00|00 00 00 60) nop
-.* (38 63 90 00|00 90 63 38) addi r3,r3,-28672
-.* (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.* (99 4d 90 68|68 90 4d 99) stb r10,-28568\(r13\)
+.* (60 00 00 00|00 00 00 60) nop
+.* (38 6d 90 00|00 90 6d 38) addi r3,r13,-28672
+.* (60 00 00 00|00 00 00 60) nop
+.* (60 00 00 00|00 00 00 60) nop
+.* (38 6d 10 00|00 10 6d 38) addi r3,r13,4096
.* (60 00 00 00|00 00 00 60) nop
-.* (38 63 10 00|00 10 63 38) addi r3,r3,4096
.* (f9 43 80 08|08 80 43 f9) std r10,-32760\(r3\)
.* (3d 23 00 00|00 00 23 3d) addis r9,r3,0
.* (91 49 80 10|10 80 49 91) stw r10,-32752\(r9\)
.* (e9 22 80 08|08 80 22 e9) ld r9,-32760\(r2\)
.* (7d 49 19 2a|2a 19 49 7d) stdx r10,r9,r3
-.* (3d 2d 00 00|00 00 2d 3d) addis r9,r13,0
-.* (b1 49 90 58|58 90 49 b1) sth r10,-28584\(r9\)
+.* (60 00 00 00|00 00 00 60) nop
+.* (b1 4d 90 58|58 90 4d b1) sth r10,-28584\(r13\)
.* (e9 4d 90 2a|2a 90 4d e9) lwa r10,-28632\(r13\)
-.* (3d 2d 00 00|00 00 2d 3d) addis r9,r13,0
-.* (a9 49 90 30|30 90 49 a9) lha r10,-28624\(r9\)
+.* (60 00 00 00|00 00 00 60) nop
+.* (a9 4d 90 30|30 90 4d a9) lha r10,-28624\(r13\)
.* (00 00 00 00|20 02 01 00) .*
.* (00 01 02 20|00 00 00 00) .*
.* <__glink_PLTresolve>:
diff --git a/ld/testsuite/ld-powerpc/tlsexetoc.d b/ld/testsuite/ld-powerpc/tlsexetoc.d
index 1c70d54..d216a2a 100644
--- a/ld/testsuite/ld-powerpc/tlsexetoc.d
+++ b/ld/testsuite/ld-powerpc/tlsexetoc.d
@@ -35,22 +35,22 @@ Disassembly of section \.text:
.* (38 62 80 18|18 80 62 38) addi r3,r2,-32744
.* (4b ff ff a9|a9 ff ff 4b) bl .*
.* (60 00 00 00|00 00 00 60) nop
-.* (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
.* (60 00 00 00|00 00 00 60) nop
-.* (38 63 90 38|38 90 63 38) addi r3,r3,-28616
-.* (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.* (38 6d 90 38|38 90 6d 38) addi r3,r13,-28616
+.* (60 00 00 00|00 00 00 60) nop
+.* (60 00 00 00|00 00 00 60) nop
+.* (38 6d 10 00|00 10 6d 38) addi r3,r13,4096
.* (60 00 00 00|00 00 00 60) nop
-.* (38 63 10 00|00 10 63 38) addi r3,r3,4096
.* (39 23 80 40|40 80 23 39) addi r9,r3,-32704
.* (3d 23 00 00|00 00 23 3d) addis r9,r3,0
.* (81 49 80 48|48 80 49 81) lwz r10,-32696\(r9\)
.* (e9 22 80 48|48 80 22 e9) ld r9,-32696\(r2\)
.* (7d 49 18 2a|2a 18 49 7d) ldx r10,r9,r3
-.* (3d 2d 00 00|00 00 2d 3d) addis r9,r13,0
-.* (a1 49 90 58|58 90 49 a1) lhz r10,-28584\(r9\)
+.* (60 00 00 00|00 00 00 60) nop
+.* (a1 4d 90 58|58 90 4d a1) lhz r10,-28584\(r13\)
.* (89 4d 90 60|60 90 4d 89) lbz r10,-28576\(r13\)
-.* (3d 2d 00 00|00 00 2d 3d) addis r9,r13,0
-.* (99 49 90 68|68 90 49 99) stb r10,-28568\(r9\)
+.* (60 00 00 00|00 00 00 60) nop
+.* (99 4d 90 68|68 90 4d 99) stb r10,-28568\(r13\)
.* (00 00 00 00|68 02 01 00) .*
.* (00 01 02 68|00 00 00 00) .*
.* <__glink_PLTresolve>:
diff --git a/ld/testsuite/ld-powerpc/tlsld.d b/ld/testsuite/ld-powerpc/tlsld.d
index d66d1db..8eafc2e 100644
--- a/ld/testsuite/ld-powerpc/tlsld.d
+++ b/ld/testsuite/ld-powerpc/tlsld.d
@@ -10,33 +10,33 @@ Disassembly of section \.text:
.*:
.* nop
-.* addis r29,r13,0
+.* nop
.* mr r3,r29
+.* addi r3,r13,4096
.* nop
-.* addi r3,r3,4096
.* addis r3,r3,0
.* ld r3,-32768\(r3\)
.* nop
-.* addis r29,r13,0
+.* nop
.* mr r3,r29
+.* addi r3,r13,4096
.* nop
-.* addi r3,r3,4096
.* ld r3,-32768\(r3\)
.* nop
.* nop
.* nop
.* nop
-.* addis r29,r13,0
+.* nop
.* mr r3,r29
+.* addi r3,r13,-28672
.* nop
-.* addi r3,r3,-28672
.* ld r3,0\(r3\)
.* nop
.* nop
-.* addis r29,r13,0
+.* nop
.* mr r3,r29
+.* addi r3,r13,-28672
.* nop
-.* addi r3,r3,-28672
.* ld r3,0\(r3\)
.* nop
.* nop
diff --git a/ld/testsuite/ld-powerpc/tlsmark.d b/ld/testsuite/ld-powerpc/tlsmark.d
index 786a811..7e10074 100644
--- a/ld/testsuite/ld-powerpc/tlsmark.d
+++ b/ld/testsuite/ld-powerpc/tlsmark.d
@@ -11,26 +11,26 @@ Disassembly of section \.text:
0+100000e8 <_start>:
.*: (48 00 00 18|18 00 00 48) b 10000100 <_start\+0x18>
+.*: (38 6d 90 00|00 90 6d 38) addi r3,r13,-28672
.*: (60 00 00 00|00 00 00 60) nop
-.*: (38 63 90 00|00 90 63 38) addi r3,r3,-28672
.*: (e8 83 00 00|00 00 83 e8) ld r4,0\(r3\)
-.*: (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.*: (60 00 00 00|00 00 00 60) nop
.*: (48 00 00 0c|0c 00 00 48) b 10000108 <_start\+0x20>
-.*: (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.*: (60 00 00 00|00 00 00 60) nop
.*: (4b ff ff e8|e8 ff ff 4b) b 100000ec <_start\+0x4>
+.*: (38 6d 10 00|00 10 6d 38) addi r3,r13,4096
.*: (60 00 00 00|00 00 00 60) nop
-.*: (38 63 10 00|00 10 63 38) addi r3,r3,4096
.*: (e8 83 80 00|00 80 83 e8) ld r4,-32768\(r3\)
-.*: (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.*: (60 00 00 00|00 00 00 60) nop
.*: (48 00 00 0c|0c 00 00 48) b 10000124 <_start\+0x3c>
-.*: (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.*: (60 00 00 00|00 00 00 60) nop
.*: (48 00 00 14|14 00 00 48) b 10000134 <_start\+0x4c>
+.*: (38 6d 90 04|04 90 6d 38) addi r3,r13,-28668
.*: (60 00 00 00|00 00 00 60) nop
-.*: (38 63 90 04|04 90 63 38) addi r3,r3,-28668
.*: (e8 a3 00 00|00 00 a3 e8) ld r5,0\(r3\)
.*: (4b ff ff ec|ec ff ff 4b) b 1000011c <_start\+0x34>
+.*: (38 6d 10 00|00 10 6d 38) addi r3,r13,4096
.*: (60 00 00 00|00 00 00 60) nop
-.*: (38 63 10 00|00 10 63 38) addi r3,r3,4096
.*: (e8 a3 80 04|04 80 a3 e8) ld r5,-32764\(r3\)
0+10000140 <\.__tls_get_addr>:
diff --git a/ld/testsuite/ld-powerpc/tlsopt1_32.d b/ld/testsuite/ld-powerpc/tlsopt1_32.d
index ec9c7ca..fd0f7eb 100644
--- a/ld/testsuite/ld-powerpc/tlsopt1_32.d
+++ b/ld/testsuite/ld-powerpc/tlsopt1_32.d
@@ -15,7 +15,7 @@ Disassembly of section \.text:
Disassembly of section \.no_opt1:
0+1800098 <\.no_opt1>:
-.*: (38 6d ff f4|f4 ff 6d 38) addi r3,r13,-12
+.*: (38 7e ff f4|f4 ff 7e 38) addi r3,r30,-12
.*: (2c 04 00 00|00 00 04 2c) cmpwi r4,0
.*: (41 82 00 0c|0c 00 82 41) beq .*
.*: (4b ff ff f1|f1 ff ff 4b) bl 1800094 <__tls_get_addr>
diff --git a/ld/testsuite/ld-powerpc/tlsopt1_32.s b/ld/testsuite/ld-powerpc/tlsopt1_32.s
index aba2bbc..79d6662 100644
--- a/ld/testsuite/ld-powerpc/tlsopt1_32.s
+++ b/ld/testsuite/ld-powerpc/tlsopt1_32.s
@@ -2,7 +2,7 @@
# this section should not be optimised since we have old-style
# __tls_get_addr without marker relocs, and the arg setup insn
# is shared with two __tls_get_addr calls.
- addi 3,13,gd@got@tlsgd
+ addi 3,30,gd@got@tlsgd
cmpwi 4,0
beq 0f
bl __tls_get_addr
diff --git a/ld/testsuite/ld-powerpc/tlsopt2_32.d b/ld/testsuite/ld-powerpc/tlsopt2_32.d
index baffe91..7dc1bce 100644
--- a/ld/testsuite/ld-powerpc/tlsopt2_32.d
+++ b/ld/testsuite/ld-powerpc/tlsopt2_32.d
@@ -15,9 +15,9 @@ Disassembly of section \.text:
Disassembly of section \.no_opt2:
0+1800098 <\.no_opt2>:
-.*: (38 6d ff f4|f4 ff 6d 38) addi r3,r13,-12
+.*: (38 7e ff f4|f4 ff 7e 38) addi r3,r30,-12
.*: (2c 04 00 00|00 00 04 2c) cmpwi r4,0
.*: (41 82 00 08|08 00 82 41) beq .*
-.*: (38 6d ff f4|f4 ff 6d 38) addi r3,r13,-12
+.*: (38 7e ff f4|f4 ff 7e 38) addi r3,r30,-12
.*: (4b ff ff ed|ed ff ff 4b) bl 1800094 <__tls_get_addr>
#pass
diff --git a/ld/testsuite/ld-powerpc/tlsopt2_32.s b/ld/testsuite/ld-powerpc/tlsopt2_32.s
index bca1247..8c387d0 100644
--- a/ld/testsuite/ld-powerpc/tlsopt2_32.s
+++ b/ld/testsuite/ld-powerpc/tlsopt2_32.s
@@ -2,9 +2,9 @@
# this section should not be optimised since we have old-style
# __tls_get_addr without marker relocs, and two arg setup insns
# feed into one __tls_get_addr call.
- addi 3,13,gd@got@tlsgd
+ addi 3,30,gd@got@tlsgd
cmpwi 4,0
beq 0f
- addi 3,13,gd@got@tlsgd
+ addi 3,30,gd@got@tlsgd
0:
bl __tls_get_addr
diff --git a/ld/testsuite/ld-powerpc/tlsopt3_32.d b/ld/testsuite/ld-powerpc/tlsopt3_32.d
index 55827a2..2bc999f 100644
--- a/ld/testsuite/ld-powerpc/tlsopt3_32.d
+++ b/ld/testsuite/ld-powerpc/tlsopt3_32.d
@@ -15,9 +15,9 @@ Disassembly of section \.text:
Disassembly of section \.no_opt3:
0+1800098 <\.no_opt3>:
-.*: (38 6d ff ec|ec ff 6d 38) addi r3,r13,-20
+.*: (38 7e ff ec|ec ff 7e 38) addi r3,r30,-20
.*: (48 00 00 0c|0c 00 00 48) b .*
-.*: (38 6d ff f4|f4 ff 6d 38) addi r3,r13,-12
+.*: (38 7e ff f4|f4 ff 7e 38) addi r3,r30,-12
.*: (48 00 00 0c|0c 00 00 48) b .*
.*: (4b ff ff ed|ed ff ff 4b) bl 1800094 <__tls_get_addr>
.*: (48 00 00 08|08 00 00 48) b .*
diff --git a/ld/testsuite/ld-powerpc/tlsopt3_32.s b/ld/testsuite/ld-powerpc/tlsopt3_32.s
index 6432c24..c2b5fcd 100644
--- a/ld/testsuite/ld-powerpc/tlsopt3_32.s
+++ b/ld/testsuite/ld-powerpc/tlsopt3_32.s
@@ -5,9 +5,9 @@ gd0: .space 8
.section ".no_opt3", "ax", %progbits
# this section should also not be optimised
- addi 3,13,gd@got@tlsgd
+ addi 3,30,gd@got@tlsgd
b 0f
- addi 3,13,gd0@got@tlsgd
+ addi 3,30,gd0@got@tlsgd
b 1f
0:
bl __tls_get_addr
diff --git a/ld/testsuite/ld-powerpc/tlsopt4.d b/ld/testsuite/ld-powerpc/tlsopt4.d
index 944e97f..7c25655 100644
--- a/ld/testsuite/ld-powerpc/tlsopt4.d
+++ b/ld/testsuite/ld-powerpc/tlsopt4.d
@@ -15,34 +15,34 @@ Disassembly of section \.text:
Disassembly of section \.opt1:
0+100000ec <\.opt1>:
-.*: (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.*: (60 00 00 00|00 00 00 60) nop
.*: (2c 24 00 00|00 00 24 2c) cmpdi r4,0
.*: (41 82 00 10|10 00 82 41) beq .*
+.*: (38 6d 90 10|10 90 6d 38) addi r3,r13,-28656
.*: (60 00 00 00|00 00 00 60) nop
-.*: (38 63 90 10|10 90 63 38) addi r3,r3,-28656
.*: (48 00 00 0c|0c 00 00 48) b .*
+.*: (38 6d 90 10|10 90 6d 38) addi r3,r13,-28656
.*: (60 00 00 00|00 00 00 60) nop
-.*: (38 63 90 10|10 90 63 38) addi r3,r3,-28656
Disassembly of section \.opt2:
0+1000010c <\.opt2>:
-.*: (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.*: (60 00 00 00|00 00 00 60) nop
.*: (2c 24 00 00|00 00 24 2c) cmpdi r4,0
.*: (41 82 00 08|08 00 82 41) beq .*
-.*: (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
.*: (60 00 00 00|00 00 00 60) nop
-.*: (38 63 90 10|10 90 63 38) addi r3,r3,-28656
+.*: (38 6d 90 10|10 90 6d 38) addi r3,r13,-28656
+.*: (60 00 00 00|00 00 00 60) nop
Disassembly of section \.opt3:
0+10000124 <\.opt3>:
-.*: (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.*: (60 00 00 00|00 00 00 60) nop
.*: (48 00 00 0c|0c 00 00 48) b .*
-.*: (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.*: (60 00 00 00|00 00 00 60) nop
.*: (48 00 00 10|10 00 00 48) b .*
+.*: (38 6d 90 10|10 90 6d 38) addi r3,r13,-28656
.*: (60 00 00 00|00 00 00 60) nop
-.*: (38 63 90 10|10 90 63 38) addi r3,r3,-28656
.*: (48 00 00 0c|0c 00 00 48) b .*
+.*: (38 6d 90 08|08 90 6d 38) addi r3,r13,-28664
.*: (60 00 00 00|00 00 00 60) nop
-.*: (38 63 90 08|08 90 63 38) addi r3,r3,-28664
diff --git a/ld/testsuite/ld-powerpc/tlsopt4_32.s b/ld/testsuite/ld-powerpc/tlsopt4_32.s
index 9643fcb..762067e 100644
--- a/ld/testsuite/ld-powerpc/tlsopt4_32.s
+++ b/ld/testsuite/ld-powerpc/tlsopt4_32.s
@@ -4,7 +4,7 @@
gd0: .space 8
.section ".opt1", "ax", %progbits
- addi 3,13,gd@got@tlsgd
+ addi 3,30,gd@got@tlsgd
cmpwi 4,0
beq 0f
bl __tls_get_addr(gd@tlsgd)
@@ -14,17 +14,17 @@ gd0: .space 8
1:
.section ".opt2", "ax", %progbits
- addi 3,13,gd@got@tlsgd
+ addi 3,30,gd@got@tlsgd
cmpwi 4,0
beq 0f
- addi 3,13,gd@got@tlsgd
+ addi 3,30,gd@got@tlsgd
0:
bl __tls_get_addr(gd@tlsgd)
.section ".opt3", "ax", %progbits
- addi 3,13,gd@got@tlsgd
+ addi 3,30,gd@got@tlsgd
b 0f
- addi 3,13,gd0@got@tlsgd
+ addi 3,30,gd0@got@tlsgd
b 1f
0:
bl __tls_get_addr(gd@tlsgd)
diff --git a/ld/testsuite/ld-powerpc/tlsopt5.d b/ld/testsuite/ld-powerpc/tlsopt5.d
index b356a2e..4521a9b 100644
--- a/ld/testsuite/ld-powerpc/tlsopt5.d
+++ b/ld/testsuite/ld-powerpc/tlsopt5.d
@@ -1,6 +1,6 @@
#source: tlsopt5.s
#as: -a64
-#ld: --gc-sections --no-plt-localentry tlsdll.so
+#ld: -shared --gc-sections --no-plt-localentry tlsdll.so
#objdump: -dr
#target: powerpc64*-*-*
@@ -8,7 +8,7 @@
Disassembly of section \.text:
-0000000010000300 <.*\.plt_call\.__tls_get_addr_opt@@GLIBC_2\.22>:
+.* <.*\.plt_call\.__tls_get_addr_opt@@GLIBC_2\.22>:
.*: (00 00 63 e9|e9 63 00 00) ld r11,0\(r3\)
.*: (08 00 83 e9|e9 83 00 08) ld r12,8\(r3\)
.*: (78 1b 60 7c|7c 60 1b 78) mr r0,r3
@@ -27,14 +27,14 @@ Disassembly of section \.text:
.*: (a6 03 68 7d|7d 68 03 a6) mtlr r11
.*: (20 00 80 4e|4e 80 00 20) blr
-0000000010000344 <_start>:
+.* <_start>:
.*: (08 80 62 38|38 62 80 08) addi r3,r2,-32760
.*: (b9 ff ff 4b|4b ff ff b9) bl .*
.*: (00 00 00 60|60 00 00 00) nop
-.*: (b8 02 01 00|00 00 00 00) .*
-.*: (00 00 00 00|00 01 02 b8) .*
+.*
+.*
-0000000010000358 <__glink_PLTresolve>:
+.* <__glink_PLTresolve>:
.*: (a6 02 08 7c|7c 08 02 a6) mflr r0
.*: (05 00 9f 42|42 9f 00 05) bcl .*
.*: (a6 02 68 7d|7d 68 02 a6) mflr r11
@@ -50,5 +50,5 @@ Disassembly of section \.text:
.*: (08 00 6b e9|e9 6b 00 08) ld r11,8\(r11\)
.*: (20 04 80 4e|4e 80 04 20) bctr
-0000000010000390 <__tls_get_addr_opt@plt>:
+.* <__tls_get_addr_opt@plt>:
.*: (c8 ff ff 4b|4b ff ff c8) b .*
diff --git a/ld/testsuite/ld-powerpc/tlsopt5.s b/ld/testsuite/ld-powerpc/tlsopt5.s
index 598bbd9..70902ef 100644
--- a/ld/testsuite/ld-powerpc/tlsopt5.s
+++ b/ld/testsuite/ld-powerpc/tlsopt5.s
@@ -1,5 +1,7 @@
.globl _start
_start:
+ .cfi_startproc
addi 3,2,gd@got@tlsgd
bl __tls_get_addr(gd@tlsgd)
nop
+ .cfi_endproc
diff --git a/ld/testsuite/ld-powerpc/tlsopt5.wf b/ld/testsuite/ld-powerpc/tlsopt5.wf
new file mode 100644
index 0000000..af8cb76
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/tlsopt5.wf
@@ -0,0 +1,28 @@
+Contents of the \.eh_frame section:
+
+0+ 0+10 0+ CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 65
+ Augmentation data: 1b
+
+ DW_CFA_def_cfa: r1 ofs 0
+
+0+14 0+14 0+18 FDE cie=0+ pc=.*
+ DW_CFA_advance_loc: 48 to .*
+ DW_CFA_offset_extended_sf: r65 at cfa\+8
+ DW_CFA_advance_loc: 16 to .*
+ DW_CFA_restore_extended: r65
+
+0+2c 0+14 0+30 FDE cie=0+ pc=.*
+ DW_CFA_advance_loc: 4 to .*
+ DW_CFA_register: r65 in r0
+ DW_CFA_advance_loc: 28 to .*
+ DW_CFA_restore_extended: r65
+
+0+44 0+10 0+48 FDE cie=0+ pc=.*
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
diff --git a/ld/testsuite/ld-powerpc/tlsopt5_32.d b/ld/testsuite/ld-powerpc/tlsopt5_32.d
index 9749248..4f1bf06 100644
--- a/ld/testsuite/ld-powerpc/tlsopt5_32.d
+++ b/ld/testsuite/ld-powerpc/tlsopt5_32.d
@@ -1,6 +1,6 @@
#source: tlsopt5_32.s
#as: -a32
-#ld: --gc-sections --secure-plt tlsdll32.so
+#ld: -shared --gc-sections --secure-plt tlsdll32.so
#objdump: -dr
#target: powerpc*-*-*
@@ -8,12 +8,25 @@
Disassembly of section \.text:
-01800230 <_start>:
-.*: (f8 ff 6d 38|38 6d ff f8) addi r3,r13,-8
-.*: (0d 00 00 48|48 00 00 0d) bl 1800240 <__tls_get_addr_opt@plt>
- \.\.\.
+.* <_start>:
+.*: (f0 ff 21 94|94 21 ff f0) stwu r1,-16\(r1\)
+.*: (a6 02 08 7c|7c 08 02 a6) mflr r0
+.*: (05 00 9f 42|42 9f 00 05) bcl .*
+.*: (08 00 c1 93|93 c1 00 08) stw r30,8\(r1\)
+.*: (a6 02 c8 7f|7f c8 02 a6) mflr r30
+.*: (01 00 de 3f|3f de 00 01) addis r30,r30,1
+.*: (14 00 01 90|90 01 00 14) stw r0,20\(r1\)
+.*: (.. .. de 3b|3b de .. ..) addi r30,r30,.*
+.*: (f8 ff 7e 38|38 7e ff f8) addi r3,r30,-8
+.*: (1d 00 00 48|48 00 00 1d) bl .* <.*__tls_get_addr_opt.*>
+.*: (14 00 01 80|80 01 00 14) lwz r0,20\(r1\)
+.*: (08 00 c1 83|83 c1 00 08) lwz r30,8\(r1\)
+.*: (a6 03 08 7c|7c 08 03 a6) mtlr r0
+.*: (10 00 21 38|38 21 00 10) addi r1,r1,16
+.*: (20 00 80 4e|4e 80 00 20) blr
+.*
-01800240 <__tls_get_addr_opt@plt>:
+.* <.*__tls_get_addr_opt.*>:
.*: (00 00 63 81|81 63 00 00) lwz r11,0\(r3\)
.*: (04 00 83 81|81 83 00 04) lwz r12,4\(r3\)
.*: (78 1b 60 7c|7c 60 1b 78) mr r0,r3
@@ -22,31 +35,31 @@ Disassembly of section \.text:
.*: (20 00 82 4d|4d 82 00 20) beqlr
.*: (78 03 03 7c|7c 03 03 78) mr r3,r0
.*: (00 00 00 60|60 00 00 00) nop
-.*: (81 01 60 3d|3d 60 01 81) lis r11,385
-.*: (9c 03 6b 81|81 6b 03 9c) lwz r11,924\(r11\)
+.*: (0c 00 7e 81|81 7e 00 0c) lwz r11,12\(r30\)
.*: (a6 03 69 7d|7d 69 03 a6) mtctr r11
.*: (20 04 80 4e|4e 80 04 20) bctr
+.*: (00 00 00 60|60 00 00 00) nop
-01800270 <__glink>:
+.* <__glink>:
.*: (00 00 00 60|60 00 00 00) nop
.*: (00 00 00 60|60 00 00 00) nop
.*: (00 00 00 60|60 00 00 00) nop
.*: (00 00 00 60|60 00 00 00) nop
-01800280 <__glink_PLTresolve>:
-.*: (81 01 80 3d|3d 80 01 81) lis r12,385
-.*: (80 fe 6b 3d|3d 6b fe 80) addis r11,r11,-384
-.*: (94 03 0c 80|80 0c 03 94) lwz r0,916\(r12\)
-.*: (90 fd 6b 39|39 6b fd 90) addi r11,r11,-624
+.* <__glink_PLTresolve>:
+.*: (00 00 6b 3d|3d 6b 00 00) addis r11,r11,0
+.*: (a6 02 08 7c|7c 08 02 a6) mflr r0
+.*: (05 00 9f 42|42 9f 00 05) bcl .*
+.*: (1c 00 6b 39|39 6b 00 1c) addi r11,r11,28
+.*: (a6 02 88 7d|7d 88 02 a6) mflr r12
+.*: (a6 03 08 7c|7c 08 03 a6) mtlr r0
+.*: (50 58 6c 7d|7d 6c 58 50) subf r11,r12,r11
+.*: (01 00 8c 3d|3d 8c 00 01) addis r12,r12,1
+.*: (.. .. 0c 80|80 0c .. ..) lwz r0,.*\(r12\)
+.*: (.. .. 8c 81|81 8c .. ..) lwz r12,.*\(r12\)
.*: (a6 03 09 7c|7c 09 03 a6) mtctr r0
.*: (14 5a 0b 7c|7c 0b 5a 14) add r0,r11,r11
-.*: (98 03 8c 81|81 8c 03 98) lwz r12,920\(r12\)
.*: (14 5a 60 7d|7d 60 5a 14) add r11,r0,r11
.*: (20 04 80 4e|4e 80 04 20) bctr
.*: (00 00 00 60|60 00 00 00) nop
.*: (00 00 00 60|60 00 00 00) nop
-.*: (00 00 00 60|60 00 00 00) nop
-.*: (00 00 00 60|60 00 00 00) nop
-.*: (00 00 00 60|60 00 00 00) nop
-.*: (00 00 00 60|60 00 00 00) nop
-.*: (00 00 00 60|60 00 00 00) nop
diff --git a/ld/testsuite/ld-powerpc/tlsopt5_32.s b/ld/testsuite/ld-powerpc/tlsopt5_32.s
index 36b4858..d07b742 100644
--- a/ld/testsuite/ld-powerpc/tlsopt5_32.s
+++ b/ld/testsuite/ld-powerpc/tlsopt5_32.s
@@ -1,4 +1,18 @@
.globl _start
_start:
- addi 3,13,gd@got@tlsgd
- bl __tls_get_addr(gd@tlsgd)
+ stwu 1,-16(1)
+ mflr 0
+ bcl 20,31,.L2
+.L2:
+ stw 30,8(1)
+ mflr 30
+ addis 30,30,_GLOBAL_OFFSET_TABLE_-.L2@ha
+ stw 0,20(1)
+ addi 30,30,_GLOBAL_OFFSET_TABLE_-.L2@l
+ addi 3,30,gd@got@tlsgd
+ bl __tls_get_addr(gd@tlsgd)@plt
+ lwz 0,20(1)
+ lwz 30,8(1)
+ mtlr 0
+ addi 1,1,16
+ blr
diff --git a/ld/testsuite/ld-powerpc/tlstoc.d b/ld/testsuite/ld-powerpc/tlstoc.d
index dccf82e..657c93d 100644
--- a/ld/testsuite/ld-powerpc/tlstoc.d
+++ b/ld/testsuite/ld-powerpc/tlstoc.d
@@ -13,25 +13,25 @@ Disassembly of section \.text:
.* (4e 80 00 20|20 00 80 4e) blr
.* <\._start>:
-.* (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
.* (60 00 00 00|00 00 00 60) nop
-.* (38 63 90 40|40 90 63 38) addi r3,r3,-28608
-.* (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.* (38 6d 90 40|40 90 6d 38) addi r3,r13,-28608
.* (60 00 00 00|00 00 00 60) nop
-.* (38 63 10 00|00 10 63 38) addi r3,r3,4096
-.* (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
.* (60 00 00 00|00 00 00 60) nop
-.* (38 63 90 48|48 90 63 38) addi r3,r3,-28600
-.* (3c 6d 00 00|00 00 6d 3c) addis r3,r13,0
+.* (38 6d 10 00|00 10 6d 38) addi r3,r13,4096
+.* (60 00 00 00|00 00 00 60) nop
+.* (60 00 00 00|00 00 00 60) nop
+.* (38 6d 90 48|48 90 6d 38) addi r3,r13,-28600
+.* (60 00 00 00|00 00 00 60) nop
+.* (60 00 00 00|00 00 00 60) nop
+.* (38 6d 10 00|00 10 6d 38) addi r3,r13,4096
.* (60 00 00 00|00 00 00 60) nop
-.* (38 63 10 00|00 10 63 38) addi r3,r3,4096
.* (39 23 80 50|50 80 23 39) addi r9,r3,-32688
.* (3d 23 00 00|00 00 23 3d) addis r9,r3,0
.* (81 49 80 58|58 80 49 81) lwz r10,-32680\(r9\)
.* (e9 22 80 40|40 80 22 e9) ld r9,-32704\(r2\)
.* (7d 49 18 2a|2a 18 49 7d) ldx r10,r9,r3
-.* (3d 2d 00 00|00 00 2d 3d) addis r9,r13,0
-.* (a1 49 90 68|68 90 49 a1) lhz r10,-28568\(r9\)
+.* (60 00 00 00|00 00 00 60) nop
+.* (a1 4d 90 68|68 90 4d a1) lhz r10,-28568\(r13\)
.* (89 4d 90 70|70 90 4d 89) lbz r10,-28560\(r13\)
-.* (3d 2d 00 00|00 00 2d 3d) addis r9,r13,0
-.* (99 49 90 78|78 90 49 99) stb r10,-28552\(r9\)
+.* (60 00 00 00|00 00 00 60) nop
+.* (99 4d 90 78|78 90 4d 99) stb r10,-28552\(r13\)
diff --git a/ld/testsuite/ld-s390/s390.exp b/ld/testsuite/ld-s390/s390.exp
index 9a375b7..e1796fa 100644
--- a/ld/testsuite/ld-s390/s390.exp
+++ b/ld/testsuite/ld-s390/s390.exp
@@ -36,7 +36,7 @@ if { !([istarget "s390-*-*"] || [istarget "s390x-*-*"]) } {
# readelf: Apply readelf options on result. Compare with regex (last arg).
set s390tests {
- {"TLS -fpic -shared transitions" "-shared -melf_s390" ""
+ {"TLS -fpic -shared transitions" "-shared -melf_s390 --hash-style=sysv" ""
"-m31" {tlspic1.s tlspic2.s}
{{readelf -Ssrl tlspic.rd} {objdump -dzrj.text tlspic.dd}
{objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}}
@@ -44,19 +44,20 @@ set s390tests {
{"Helper shared library" "-shared -melf_s390" ""
"-m31" {tlslib.s} {} "libtlslib.so"}
{"TLS -fpic and -fno-pic exec transitions"
- "-melf_s390 tmpdir/libtlslib.so" "" "-m31" {tlsbinpic.s tlsbin.s}
+ "-melf_s390 tmpdir/libtlslib.so --hash-style=sysv" ""
+ "-m31" {tlsbinpic.s tlsbin.s}
{{readelf -Ssrl tlsbin.rd} {objdump -dzrj.text tlsbin.dd}
{objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}}
"tlsbin"}
{"GOT: symbol address load from got to larl"
- "-shared -melf_s390 --version-script=gotreloc-1.ver" ""
+ "-shared -melf_s390 --hash-style=sysv --version-script=gotreloc-1.ver" ""
"-m31" {gotreloc-1.s}
{{objdump -dzrj.text gotreloc_31-1.dd}}
"gotreloc_31-1"}
}
set s390xtests {
- {"TLS -fpic -shared transitions" "-shared -melf64_s390" ""
+ {"TLS -fpic -shared transitions" "-shared -melf64_s390 --hash-style=sysv" ""
"-m64 -Aesame" {tlspic1_64.s tlspic2_64.s}
{{readelf -WSsrl tlspic_64.rd} {objdump -dzrj.text tlspic_64.dd}
{objdump -sj.got tlspic_64.sd} {objdump -sj.tdata tlspic_64.td}}
@@ -64,13 +65,13 @@ set s390xtests {
{"Helper shared library" "-shared -melf64_s390" ""
"-m64 -Aesame" {tlslib_64.s} {} "libtlslib_64.so"}
{"TLS -fpic and -fno-pic exec transitions"
- "-melf64_s390 tmpdir/libtlslib_64.so" "" "-m64 -Aesame"
- {tlsbinpic_64.s tlsbin_64.s}
+ "-melf64_s390 tmpdir/libtlslib_64.so --hash-style=sysv" ""
+ "-m64 -Aesame" {tlsbinpic_64.s tlsbin_64.s}
{{readelf -WSsrl tlsbin_64.rd} {objdump -dzrj.text tlsbin_64.dd}
{objdump -sj.got tlsbin_64.sd} {objdump -sj.tdata tlsbin_64.td}}
"tlsbin_64"}
{"GOT: symbol address load from got to larl"
- "-shared -melf64_s390 --version-script=gotreloc-1.ver" ""
+ "-shared -melf64_s390 --hash-style=sysv --version-script=gotreloc-1.ver" ""
"-m64" {gotreloc-1.s}
{{objdump -dzrj.text gotreloc_64-1.dd}}
"gotreloc_64-1"}
diff --git a/ld/testsuite/ld-scripts/align.exp b/ld/testsuite/ld-scripts/align.exp
index 297aa13..ba229af 100644
--- a/ld/testsuite/ld-scripts/align.exp
+++ b/ld/testsuite/ld-scripts/align.exp
@@ -19,7 +19,7 @@
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA.
-if [istarget "rs6000-*-aix*"] {
+if {[istarget "powerpc*-*-aix*"] || [istarget "rs6000-*-aix*"]} {
# Target maps .text and .data to other sections.
return
}
@@ -47,6 +47,9 @@ if ![ld_link $ld tmpdir/align "$LDFLAGS -T $srcdir/$subdir/align.t tmpdir/align.
if ![is_aout_format] {
run_dump_test align2a
run_dump_test align2b
+ run_dump_test align3
+ run_dump_test align4
+ run_dump_test align5
}
run_dump_test align2c
set LDFLAGS "$saved_LDFLAGS"
diff --git a/ld/testsuite/ld-scripts/align3.d b/ld/testsuite/ld-scripts/align3.d
new file mode 100644
index 0000000..384d91a
--- /dev/null
+++ b/ld/testsuite/ld-scripts/align3.d
@@ -0,0 +1,3 @@
+# source: align2a.s
+# ld: -T align3.t
+# error: .*:4: syntax error
diff --git a/ld/testsuite/ld-scripts/align3.t b/ld/testsuite/ld-scripts/align3.t
new file mode 100644
index 0000000..5c9e5bf
--- /dev/null
+++ b/ld/testsuite/ld-scripts/align3.t
@@ -0,0 +1,10 @@
+SECTIONS
+{
+ .text : {
+ SORT_BY_ALIGNMENT (*) (.text .text.*)
+ }
+
+ .data : {
+ SORT_BY_ALIGNMENT (*) (.data .data.*)
+ }
+} \ No newline at end of file
diff --git a/ld/testsuite/ld-scripts/align4.d b/ld/testsuite/ld-scripts/align4.d
new file mode 100644
index 0000000..661738a
--- /dev/null
+++ b/ld/testsuite/ld-scripts/align4.d
@@ -0,0 +1,3 @@
+# source: align2a.s
+# ld: -T align4.t
+# error: .*:4: syntax error
diff --git a/ld/testsuite/ld-scripts/align4.t b/ld/testsuite/ld-scripts/align4.t
new file mode 100644
index 0000000..fc80905
--- /dev/null
+++ b/ld/testsuite/ld-scripts/align4.t
@@ -0,0 +1,10 @@
+SECTIONS
+{
+ .text : {
+ SORT_BY_INIT_PRIORITY (*) (.text .text.*)
+ }
+
+ .data : {
+ SORT_BY_INIT_PRIORITY (*) (.data .data.*)
+ }
+} \ No newline at end of file
diff --git a/ld/testsuite/ld-scripts/align5.d b/ld/testsuite/ld-scripts/align5.d
new file mode 100644
index 0000000..880b6fb
--- /dev/null
+++ b/ld/testsuite/ld-scripts/align5.d
@@ -0,0 +1,7 @@
+# source: align2a.s
+# ld: -T align5.t
+# nm: -n
+
+#...
+.*foo
+#... \ No newline at end of file
diff --git a/ld/testsuite/ld-scripts/align5.t b/ld/testsuite/ld-scripts/align5.t
new file mode 100644
index 0000000..a0b33e5
--- /dev/null
+++ b/ld/testsuite/ld-scripts/align5.t
@@ -0,0 +1,12 @@
+SECTIONS
+{
+ .text : {
+ SORT_NONE (*) (.text .text.*)
+ }
+
+ .data : {
+ SORT_NONE (*) (.data .data.*)
+ foo = .;
+ }
+ /DISCARD/ : {*(*)}
+}
diff --git a/ld/testsuite/ld-scripts/assign-loc.d b/ld/testsuite/ld-scripts/assign-loc.d
index bf6b9d8..bc0c5a0 100644
--- a/ld/testsuite/ld-scripts/assign-loc.d
+++ b/ld/testsuite/ld-scripts/assign-loc.d
@@ -1,7 +1,7 @@
#ld: -T assign-loc.t
#source: data.s
#nm: -n
-#notarget: rs6000-*-aix*
+#notarget: powerpc*-*-aix* rs6000-*-aix*
#...
0+0100 A HEAP_SIZE
#...
diff --git a/ld/testsuite/ld-scripts/cross1.t b/ld/testsuite/ld-scripts/cross1.t
index c20e473..0667f25 100644
--- a/ld/testsuite/ld-scripts/cross1.t
+++ b/ld/testsuite/ld-scripts/cross1.t
@@ -4,6 +4,7 @@ SECTIONS
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
.toc : { *(.toc) }
.text : { tmpdir/cross1.o }
.data : { tmpdir/cross2.o }
diff --git a/ld/testsuite/ld-scripts/data.exp b/ld/testsuite/ld-scripts/data.exp
index 1bae4c1..3d8f270 100644
--- a/ld/testsuite/ld-scripts/data.exp
+++ b/ld/testsuite/ld-scripts/data.exp
@@ -29,3 +29,4 @@ if {[is_aout_format]} {
run_dump_test data
run_dump_test fill
+run_dump_test fill16
diff --git a/ld/testsuite/ld-scripts/defined2.d b/ld/testsuite/ld-scripts/defined2.d
index 40728bd..6e6e068 100644
--- a/ld/testsuite/ld-scripts/defined2.d
+++ b/ld/testsuite/ld-scripts/defined2.d
@@ -1,7 +1,6 @@
#ld: -Tdefined2.t
#nm: -B
#source: phdrs.s
-#xfail: "rs6000-*-aix*"
# Check that arithmetic on DEFINED works.
# Matching both A and T accounts for formats that can't tell a .text
diff --git a/ld/testsuite/ld-scripts/defined3.d b/ld/testsuite/ld-scripts/defined3.d
index 61061b6..3401e7c 100644
--- a/ld/testsuite/ld-scripts/defined3.d
+++ b/ld/testsuite/ld-scripts/defined3.d
@@ -2,7 +2,7 @@
#nm: -B
#source: phdrs.s
#source: defined.s
-#xfail: "rs6000-*-aix*"
+#xfail: powerpc*-*-aix* rs6000-*-aix*
# Check that DEFINED matches only symbols defined before its location.
# The ellipsis account for target-specific symbols. Matching both A and T
diff --git a/ld/testsuite/ld-scripts/defined4.d b/ld/testsuite/ld-scripts/defined4.d
index b434e40..2f034cb 100644
--- a/ld/testsuite/ld-scripts/defined4.d
+++ b/ld/testsuite/ld-scripts/defined4.d
@@ -1,7 +1,7 @@
#ld: -Tdefined4.t
#nm: -B
#source: defined4.s
-#xfail: rs6000-*-aix*
+#xfail: powerpc*-*-aix* rs6000-*-aix*
#notarget: mips*-*-* mmix-*-*
# We check that defined and defined1 have the same address. MIPS targets
# use different address. MMIX puts defined and defined1 in text section.
diff --git a/ld/testsuite/ld-scripts/defined5.d b/ld/testsuite/ld-scripts/defined5.d
index 3977c93..8b25743 100644
--- a/ld/testsuite/ld-scripts/defined5.d
+++ b/ld/testsuite/ld-scripts/defined5.d
@@ -1,7 +1,7 @@
#ld: -Tdefined5.t
#nm: -B
#source: defined5.s
-#xfail: rs6000-*-aix*
+#xfail: powerpc*-*-aix* rs6000-*-aix*
# Check that arithmetic on DEFINED works.
#...
diff --git a/ld/testsuite/ld-scripts/exclude-file-5.d b/ld/testsuite/ld-scripts/exclude-file-5.d
new file mode 100644
index 0000000..dc7040b
--- /dev/null
+++ b/ld/testsuite/ld-scripts/exclude-file-5.d
@@ -0,0 +1,5 @@
+#source: exclude-file-a.s
+#source: exclude-file-b.s
+#ld: -T exclude-file-5.t
+#map: exclude-file-5.map
+
diff --git a/ld/testsuite/ld-scripts/exclude-file-5.map b/ld/testsuite/ld-scripts/exclude-file-5.map
new file mode 100644
index 0000000..9148fd6
--- /dev/null
+++ b/ld/testsuite/ld-scripts/exclude-file-5.map
@@ -0,0 +1,8 @@
+#...
+\.data +0x[0-9a-f]+ +0x[0-9a-f]+
+ \*\(SORT_BY_NAME\(EXCLUDE_FILE\(\*-b\.o\) \.data\)\)
+ \.data +0x[0-9a-f]+ +0x[0-9a-f]+ tmpdir/exclude-file-a\.o
+ \*\(SORT_BY_NAME\(EXCLUDE_FILE\(\*-a\.o\) \.data\.\*\)\)
+ \.data\.1 +0x[0-9a-f]+ +0x[0-9a-f]+ tmpdir/exclude-file-b\.o
+
+#... \ No newline at end of file
diff --git a/ld/testsuite/ld-scripts/exclude-file-5.t b/ld/testsuite/ld-scripts/exclude-file-5.t
new file mode 100644
index 0000000..e20f5ae
--- /dev/null
+++ b/ld/testsuite/ld-scripts/exclude-file-5.t
@@ -0,0 +1,11 @@
+SECTIONS
+{
+ .data : {
+ * (SORT_BY_NAME (EXCLUDE_FILE (*-b.o) .data))
+ * (SORT_BY_NAME (SORT_BY_NAME (EXCLUDE_FILE (*-a.o) .data.*)))
+ }
+
+ /DISCARD/ : {
+ * (*)
+ }
+}
diff --git a/ld/testsuite/ld-scripts/exclude-file-6.d b/ld/testsuite/ld-scripts/exclude-file-6.d
new file mode 100644
index 0000000..7bc9d65
--- /dev/null
+++ b/ld/testsuite/ld-scripts/exclude-file-6.d
@@ -0,0 +1,5 @@
+#source: exclude-file-a.s
+#source: exclude-file-b.s
+#ld: -T exclude-file-6.t
+#map: exclude-file-6.map
+
diff --git a/ld/testsuite/ld-scripts/exclude-file-6.map b/ld/testsuite/ld-scripts/exclude-file-6.map
new file mode 100644
index 0000000..42e1b38
--- /dev/null
+++ b/ld/testsuite/ld-scripts/exclude-file-6.map
@@ -0,0 +1,8 @@
+#...
+\.data +0x[0-9a-f]+ +0x[0-9a-f]+
+ \*\(SORT_BY_ALIGNMENT\(SORT_BY_NAME\(EXCLUDE_FILE\(\*-b\.o\) \.data\)\)\)
+ \.data +0x[0-9a-f]+ +0x[0-9a-f]+ tmpdir/exclude-file-a\.o
+ \*\(SORT_BY_NAME\(SORT_BY_ALIGNMENT\(EXCLUDE_FILE\(\*-a\.o\) \.data\.\*\)\)\)
+ \.data\.1 +0x[0-9a-f]+ +0x[0-9a-f]+ tmpdir/exclude-file-b\.o
+
+#... \ No newline at end of file
diff --git a/ld/testsuite/ld-scripts/exclude-file-6.t b/ld/testsuite/ld-scripts/exclude-file-6.t
new file mode 100644
index 0000000..437e240
--- /dev/null
+++ b/ld/testsuite/ld-scripts/exclude-file-6.t
@@ -0,0 +1,11 @@
+SECTIONS
+{
+ .data : {
+ * (SORT_BY_ALIGNMENT (SORT_BY_NAME (EXCLUDE_FILE (*-b.o) .data)))
+ * (SORT_BY_NAME (SORT_BY_ALIGNMENT (EXCLUDE_FILE (*-a.o) .data.*)))
+ }
+
+ /DISCARD/ : {
+ * (*)
+ }
+}
diff --git a/ld/testsuite/ld-scripts/exclude-file-7.d b/ld/testsuite/ld-scripts/exclude-file-7.d
new file mode 100644
index 0000000..8970415
--- /dev/null
+++ b/ld/testsuite/ld-scripts/exclude-file-7.d
@@ -0,0 +1,5 @@
+#source: exclude-file-a.s
+#source: exclude-file-b.s
+#ld: -T exclude-file-7.t
+#map: exclude-file-7.map
+
diff --git a/ld/testsuite/ld-scripts/exclude-file-7.map b/ld/testsuite/ld-scripts/exclude-file-7.map
new file mode 100644
index 0000000..eb1d0a8
--- /dev/null
+++ b/ld/testsuite/ld-scripts/exclude-file-7.map
@@ -0,0 +1,8 @@
+#...
+\.data +0x[0-9a-f]+ +0x[0-9a-f]+
+ \*\(SORT_BY_INIT_PRIORITY\(EXCLUDE_FILE\(\*-b\.o\) \.data\)\)
+ \.data +0x[0-9a-f]+ +0x[0-9a-f]+ tmpdir/exclude-file-a\.o
+ \*\(SORT_BY_ALIGNMENT\(EXCLUDE_FILE\(\*-a\.o\) \.data\.\*\)\)
+ \.data\.1 +0x[0-9a-f]+ +0x[0-9a-f]+ tmpdir/exclude-file-b\.o
+
+#... \ No newline at end of file
diff --git a/ld/testsuite/ld-scripts/exclude-file-7.t b/ld/testsuite/ld-scripts/exclude-file-7.t
new file mode 100644
index 0000000..200096e
--- /dev/null
+++ b/ld/testsuite/ld-scripts/exclude-file-7.t
@@ -0,0 +1,11 @@
+SECTIONS
+{
+ .data : {
+ * (SORT_BY_INIT_PRIORITY (EXCLUDE_FILE (*-b.o) .data))
+ * (SORT_BY_ALIGNMENT (SORT_BY_ALIGNMENT (EXCLUDE_FILE (*-a.o) .data.*)))
+ }
+
+ /DISCARD/ : {
+ * (*)
+ }
+}
diff --git a/ld/testsuite/ld-scripts/expr2.d b/ld/testsuite/ld-scripts/expr2.d
index 26354f6..b05a5d2 100644
--- a/ld/testsuite/ld-scripts/expr2.d
+++ b/ld/testsuite/ld-scripts/expr2.d
@@ -1,6 +1,6 @@
# ld: -T expr2.t
#nm: -B
-#xfail: rs6000-*-aix* arm-*-*aout
+#xfail: arm-*-*aout powerpc*-*-aix* rs6000-*-aix*
#...
.* D defined
diff --git a/ld/testsuite/ld-scripts/fill.d b/ld/testsuite/ld-scripts/fill.d
index 8dd789b..4e42c70 100644
--- a/ld/testsuite/ld-scripts/fill.d
+++ b/ld/testsuite/ld-scripts/fill.d
@@ -3,20 +3,37 @@
#source: fill_2.s
#ld: -T fill.t
#objdump: -s -j .text
-#xfail: ia64-*-* alpha-*-*ecoff m32c-*-* mips*-*-* sh-*-pe sparc*-*-coff
+#notarget: ia64-*-*
+#notarget: mips*-*-irix* mips*-*-linux* mips*-*-freebsd* mips*-*-gnu*
+#notarget: mips*-*-kfreebsd* mips*-*-netbsd* mips*-*-openbsd* mips*-*-sysv4*
+#notarget: tilegx*-*-*
+#notarget: tilepro-*-*
+#notarget: x86_64-*-cygwin x86_64-*-mingw* x86_64-*-pe*
+#xfail: alpha*-*-*ecoff
+#xfail: arm-epoc-pe
+#xfail: m32c-*-*
+#xfail: sh-*-pe
+#xfail: sparc*-*-coff
#xfail: tic30-*-coff tic4x-*-* tic54x-*-*
-#xfail: x86_64-*-pe* x86_64-*-mingw* x86_64-*-cygwin z8k-*-*
-# Breaks on ia64 due to minimum alignment of code. The section alignment
-# could be increased to suit ia64 but then we'd break many coff targets
-# that don't support alignment other than 4 bytes.
-# alpha-linuxecoff always aligns code to 16 bytes.
-# m32c pads out code sections to 8 bytes.
-# mips aligns to 16 bytes
+#xfail: z8k-*-*
+#
+# See also fill16.d. We use `notarget' for configurations unsupported
+# here that are covered there, and `xfail' for configurations that work
+# in neither place. See below for details as to why individual
+# configurations are listed above.
+#
+# alpha-linuxecoff pads out code to 16 bytes.
+# arm-epoc-pe always pads out code to 512 bytes.
+# ia64 aligns code to minimum 16 bytes.
+# m32c pads out code sections with 4 NOPs (see `m32c_md_end').
+# mips aligns to minimum 16 bytes (except for bare-metal ELF and VxWorks).
# sh-pe pads out code sections to 16 bytes
# sparc-coff aligns to 8 bytes
# tic30-coff aligns to 2 bytes
# tic4x has 4 octet bytes
# tic54x doesn't support .p2align
+# tilegx aligns code to minimum 8 bytes.
+# tilepro aligns code to minimum 8 bytes.
# x86_64-pe aligns to 16 bytes
# z8k-coff aligns to 2 bytes
diff --git a/ld/testsuite/ld-scripts/fill16.d b/ld/testsuite/ld-scripts/fill16.d
new file mode 100644
index 0000000..d1e369c
--- /dev/null
+++ b/ld/testsuite/ld-scripts/fill16.d
@@ -0,0 +1,43 @@
+#source: fill16_0.s
+#source: fill16_1.s
+#source: fill16_2.s
+#ld: -T fill.t
+#objdump: -s -j .text
+#notarget: arm-*-coff
+#notarget: i[3-7]86-*-coff
+#xfail: alpha*-*-*ecoff
+#xfail: arm-epoc-pe
+#xfail: m32c-*-*
+#xfail: sh-*-pe
+#xfail: sparc*-*-coff
+#xfail: tic30-*-coff tic4x-*-* tic54x-*-*
+#xfail: z8k-*-*
+#
+# See also fill.d. We use `notarget' for configurations unsupported
+# here that are covered there, and `xfail' for configurations that work
+# with neither place. See below for details as to why individual
+# configurations are listed above.
+#
+# alpha-linuxecoff pads out code to 16 bytes.
+# arm-epoc-pe always pads out code to 512 bytes.
+# arm-coff always aligns code to 4 bytes.
+# i386-coff always aligns code to 4 bytes.
+# m32c pads out code sections with 4 NOPs (see `m32c_md_end').
+# sh-pe pads out code sections to 16 bytes
+# sparc-coff aligns to 8 bytes
+# tic30-coff aligns to 2 bytes
+# tic4x has 4 octet bytes
+# tic54x doesn't support .p2align
+# z8k-coff aligns to 2 bytes
+
+.*: file format .*
+
+Contents of section .text:
+ [0-9a-f]+ cafebabe cafebabe cafebabe cafebabe .*
+ [0-9a-f]+ 01010101 01010101 01010101 01010101 .*
+ [0-9a-f]+ 02020202 02020202 02020202 02020202 .*
+ [0-9a-f]+ 12232323 23232323 23232323 23232323 .*
+ [0-9a-f]+ 03030303 03030303 03030303 03030303 .*
+ [0-9a-f]+ 00345600 00004567 000089ab (deadbeef|efbeadde) .*
+ [0-9a-f]+ 00004567 000089ab 0000cdef 00004567 .*
+ [0-9a-f]+ 000089ab 0000cdef 00000123 .*
diff --git a/ld/testsuite/ld-scripts/fill16_0.s b/ld/testsuite/ld-scripts/fill16_0.s
new file mode 100644
index 0000000..2723728
--- /dev/null
+++ b/ld/testsuite/ld-scripts/fill16_0.s
@@ -0,0 +1,6 @@
+ .text
+ .p2align 4, 0
+ .byte 1,1,1,1
+ .byte 1,1,1,1
+ .byte 1,1,1,1
+ .byte 1,1,1,1
diff --git a/ld/testsuite/ld-scripts/fill16_1.s b/ld/testsuite/ld-scripts/fill16_1.s
new file mode 100644
index 0000000..261ea7e
--- /dev/null
+++ b/ld/testsuite/ld-scripts/fill16_1.s
@@ -0,0 +1,6 @@
+ .text
+ .p2align 4, 0
+ .byte 2,2,2,2
+ .byte 2,2,2,2
+ .byte 2,2,2,2
+ .byte 2,2,2,2
diff --git a/ld/testsuite/ld-scripts/fill16_2.s b/ld/testsuite/ld-scripts/fill16_2.s
new file mode 100644
index 0000000..1ddd145
--- /dev/null
+++ b/ld/testsuite/ld-scripts/fill16_2.s
@@ -0,0 +1,6 @@
+ .text
+ .p2align 4, 0
+ .byte 3,3,3,3
+ .byte 3,3,3,3
+ .byte 3,3,3,3
+ .byte 3,3,3,3
diff --git a/ld/testsuite/ld-scripts/provide.exp b/ld/testsuite/ld-scripts/provide.exp
index f326e73b..f42ec76 100644
--- a/ld/testsuite/ld-scripts/provide.exp
+++ b/ld/testsuite/ld-scripts/provide.exp
@@ -23,7 +23,7 @@
# a.out objdump displays the file header inside the text segment,
# confusing run_dump_test.
-if {[istarget "rs6000-*-aix*"] || [is_aout_format]} {
+if {[istarget "powerpc*-*-aix*"] || [istarget "rs6000-*-aix*"] || [is_aout_format]} {
unsupported provide-1
unsupported provide-2
unsupported provide-3
diff --git a/ld/testsuite/ld-scripts/sane1.d b/ld/testsuite/ld-scripts/sane1.d
index d11a210..e39092e 100644
--- a/ld/testsuite/ld-scripts/sane1.d
+++ b/ld/testsuite/ld-scripts/sane1.d
@@ -1,7 +1,7 @@
# source: data.s
# ld: -T sane1.t
# nm: -B -n
-# notarget: mmix-* pdp11-* rs6000-*-aix* tic30-*-aout
+# notarget: mmix-* pdp11-* powerpc*-*-aix* rs6000-*-aix* tic30-*-aout
# mmix symbol sections are wrong, pdp sign extends 16-bit addresses
# rs6000-aix and tic30 don't like empty .text
diff --git a/ld/testsuite/ld-scripts/size.exp b/ld/testsuite/ld-scripts/size.exp
index 2d1219d..0caa9c8 100644
--- a/ld/testsuite/ld-scripts/size.exp
+++ b/ld/testsuite/ld-scripts/size.exp
@@ -23,7 +23,7 @@
# a.out objdump displays the file header inside the text segment,
# confusing run_dump_test.
-if {[istarget "rs6000-*-aix*"] || [is_aout_format]} {
+if {[istarget "powerpc*-*-aix*"] || [istarget "rs6000-*-aix*"] || [is_aout_format]} {
unsupported size-1
unsupported size-2
return
diff --git a/ld/testsuite/ld-selective/selective.exp b/ld/testsuite/ld-selective/selective.exp
index 8d58c16..11c8f3f 100644
--- a/ld/testsuite/ld-selective/selective.exp
+++ b/ld/testsuite/ld-selective/selective.exp
@@ -102,7 +102,8 @@ foreach testitem $seltests {
# the functionality we try to test for cannot be expected to work.
set version [remote_exec host "$CXX -dumpversion"]
set version [lindex $version 1]
- if [regexp "^(\[1-9\]\[0-9\]+|\[4-9\]|3.(\[1-9\]\[0-9\]+|\[4-9\]))\\." $version] {
+ if { [regexp "^(\[1-9\]\[0-9\]+|\[4-9\]|3.(\[1-9\]\[0-9\]+))\\." $version] \
+ || [regexp "^(\[1-9\]\[0-9\]+|\[4-9\])" $version] } {
set testflags "$cflags $cxxflags"
setup_xfail {*-*-*}
} else {
diff --git a/ld/testsuite/ld-sh/sh-vxworks.exp b/ld/testsuite/ld-sh/sh-vxworks.exp
index 2a6b89d..297abec 100644
--- a/ld/testsuite/ld-sh/sh-vxworks.exp
+++ b/ld/testsuite/ld-sh/sh-vxworks.exp
@@ -26,33 +26,35 @@ set endians { "--big" "-EB" "" "--little" "-EL" "-le" }
foreach { gas_option ld_option suffix } $endians {
set vxworkstests {
- {"VxWorks shared library test 1" "-shared -Tvxworks1.ld $ld_option" ""
+ {"VxWorks shared library test 1"
+ "-shared -Tvxworks1.ld --hash-style=sysv $ld_option" ""
"$gas_option" {vxworks1-lib.s}
{{readelf --relocs vxworks1-lib.rd}
{objdump -dr vxworks1-lib$suffix.dd}
{readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
"libvxworks1.so"}
{"VxWorks executable test 1 (dynamic)" \
- "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic $ld_option" ""
+ "tmpdir/libvxworks1.so -Tvxworks1.ld --hash-style=sysv -q --force-dynamic $ld_option" ""
"$gas_option" {vxworks1.s}
{{readelf --relocs vxworks1.rd} {objdump -dr vxworks1$suffix.dd}}
"vxworks1"}
{"VxWorks executable test 2 (dynamic)" \
- "-Tvxworks1.ld -q --force-dynamic $ld_option" ""
+ "-Tvxworks1.ld --hash-style=sysv -q --force-dynamic $ld_option" ""
"$gas_option" {vxworks2.s}
{{readelf --segments vxworks2.sd}}
"vxworks2"}
{"VxWorks executable test 2 (static)"
- "-Tvxworks1.ld $ld_option" ""
+ "-Tvxworks1.ld --hash-style=sysv $ld_option" ""
"$gas_option" {vxworks2.s}
{{readelf --segments vxworks2-static.sd}}
"vxworks2"}
- {"VxWorks shared library test 3" "-shared -Tvxworks1.ld $ld_option" ""
+ {"VxWorks shared library test 3"
+ "-shared -Tvxworks1.ld --hash-style=sysv $ld_option" ""
"$gas_option" {vxworks3-lib.s}
{{objdump -dr vxworks3-lib$suffix.dd}}
"libvxworks3.so"}
{"VxWorks executable test 3 (dynamic)" \
- "tmpdir/libvxworks3.so -Tvxworks1.ld -q --force-dynamic $ld_option" ""
+ "tmpdir/libvxworks3.so -Tvxworks1.ld --hash-style=sysv -q --force-dynamic $ld_option" ""
"$gas_option" {vxworks3.s}
{{objdump -d vxworks3$suffix.dd}}
"vxworks3"}
diff --git a/ld/testsuite/ld-sh/shared-2.d b/ld/testsuite/ld-sh/shared-2.d
index e65fea4..26d2887 100644
--- a/ld/testsuite/ld-sh/shared-2.d
+++ b/ld/testsuite/ld-sh/shared-2.d
@@ -1,7 +1,7 @@
#source: textrel1.s
#source: textrel2.s
#as: -little
-#ld: -shared -EL
+#ld: -shared -EL --hash-style=sysv
#readelf: -d
#target: sh*-*-elf sh*-*-linux* sh*-*-netbsd*
diff --git a/ld/testsuite/ld-sh/tlsbin-2.d b/ld/testsuite/ld-sh/tlsbin-2.d
index 6958e45..9f18e1d 100644
--- a/ld/testsuite/ld-sh/tlsbin-2.d
+++ b/ld/testsuite/ld-sh/tlsbin-2.d
@@ -1,7 +1,7 @@
#source: tlsbinpic.s
#source: tlsbin.s
#as: -little
-#ld: -EL tmpdir/tlsbin-0-dso.so
+#ld: -EL --hash-style=sysv tmpdir/tlsbin-0-dso.so
#readelf: -Ssrl
#target: sh*-*-linux* sh*-*-netbsd*
diff --git a/ld/testsuite/ld-sh/tlspic-2.d b/ld/testsuite/ld-sh/tlspic-2.d
index 42baf1d..a7d83c0 100644
--- a/ld/testsuite/ld-sh/tlspic-2.d
+++ b/ld/testsuite/ld-sh/tlspic-2.d
@@ -1,7 +1,7 @@
#source: tlspic1.s
#source: tlspic2.s
#as: -little
-#ld: -shared -EL
+#ld: -shared -EL --hash-style=sysv
#readelf: -Ssrl
#target: sh*-*-linux* sh*-*-netbsd*
diff --git a/ld/testsuite/ld-shared/shared.exp b/ld/testsuite/ld-shared/shared.exp
index 723b51c..6d7a0d6 100644
--- a/ld/testsuite/ld-shared/shared.exp
+++ b/ld/testsuite/ld-shared/shared.exp
@@ -282,7 +282,7 @@ if ![ld_compile "$CC $CFLAGS $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o]
setup_xfail "aarch64*-*-linux*"
shared_test shnp "shared (non PIC, load offset)" \
mainnp.o sh1np.o sh2np.o shared \
- "-T $srcdir/$subdir/elf-offset.ld"
+ "-Wl,-T,$srcdir/$subdir/elf-offset.ld,--hash-style=sysv"
} }
# Now compile the code using -fpic.
diff --git a/ld/testsuite/ld-sparc/sparc.exp b/ld/testsuite/ld-sparc/sparc.exp
index 7782900..3828418 100644
--- a/ld/testsuite/ld-sparc/sparc.exp
+++ b/ld/testsuite/ld-sparc/sparc.exp
@@ -24,23 +24,24 @@
if {[istarget "sparc-*-vxworks"]} {
set sparcvxworkstests {
- {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" ""
+ {"VxWorks shared library test 1"
+ "-shared -Tvxworks1.ld --hash-style=sysv" ""
"-KPIC" {vxworks1-lib.s}
{{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
{readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
"libvxworks1.so"}
{"VxWorks executable test 1 (dynamic)" \
- "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" ""
+ "tmpdir/libvxworks1.so -Tvxworks1.ld --hash-style=sysv -q --force-dynamic" ""
"" {vxworks1.s}
{{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
"vxworks1"}
{"VxWorks executable test 2 (dynamic)" \
- "-Tvxworks1.ld -q --force-dynamic" ""
+ "-Tvxworks1.ld --hash-style=sysv -q --force-dynamic" ""
"" {vxworks2.s}
{{readelf --segments vxworks2.sd}}
"vxworks2"}
{"VxWorks executable test 2 (static)"
- "-Tvxworks1.ld" ""
+ "-Tvxworks1.ld --hash-style=sysv" ""
"" {vxworks2.s}
{{readelf --segments vxworks2-static.sd}}
"vxworks2"}
@@ -67,7 +68,8 @@ if { !([istarget "sparc*-*-elf*"]
# readelf: Apply readelf options on result. Compare with regex (last arg).
set sparctests {
- {"32-bit: TLS -fpic -shared transitions" "-shared -melf32_sparc" ""
+ {"32-bit: TLS -fpic -shared transitions"
+ "-shared -melf32_sparc --hash-style=sysv" ""
"--32 -K PIC" {tlssunpic32.s tlspic.s}
{{readelf -WSsrl tlssunpic32.rd} {objdump -drj.text tlssunpic32.dd}
{objdump -sj.got tlssunpic32.sd} {objdump -sj.tdata tlssunpic32.td}}
@@ -77,19 +79,21 @@ set sparctests {
{"32-bit: Another helper shared library" "-shared -melf32_sparc" ""
"--32 -K PIC" {tlssunbinpic32.s} {} "libtlssunbinpic32.so"}
{"32-bit: TLS -fpic and -fno-pic exec transitions"
- "-melf32_sparc tmpdir/libtlslib32.so tmpdir/tlssunbinpic32.o" ""
+ "-melf32_sparc --hash-style=sysv tmpdir/libtlslib32.so tmpdir/tlssunbinpic32.o" ""
"--32" {tlssunbin32.s}
{{readelf -WSsrl tlssunbin32.rd} {objdump -drj.text tlssunbin32.dd}
{objdump -sj.got tlssunbin32.sd} {objdump -sj.tdata tlssunbin32.td}}
"tlssunbin32"}
- {"32-bit: TLS -fno-pic -shared" "-shared -melf32_sparc" ""
+ {"32-bit: TLS -fno-pic -shared"
+ "-shared -melf32_sparc --hash-style=sysv" ""
"--32" {tlssunnopic32.s tlsnopic.s}
{{readelf -WSsrl tlssunnopic32.rd} {objdump -drj.text tlssunnopic32.dd}
{objdump -sj.got tlssunnopic32.sd}} "libtlssunnopic32.so"}
{"32-bit: TLS in debug sections" "-melf32_sparc" ""
"--32" {tlsg32.s}
{{objdump -sj.debug_foobar tlsg32.sd}} "tlsg32"}
- {"32-bit: GOTDATA relocations" "-shared -melf32_sparc" ""
+ {"32-bit: GOTDATA relocations"
+ "-shared -melf32_sparc --hash-style=sysv" ""
"--32 -K PIC" {gotop32.s}
{{readelf -WSsrl gotop32.rd} {objdump -drj.text gotop32.dd}
{objdump -sj.got gotop32.sd} {objdump -sj.data gotop32.td}}
@@ -99,7 +103,8 @@ set sparctests {
{{objdump -dj.wdispcall wdispcall.dd}} "wdispcall"}
}
set sparc64tests {
- {"64-bit: TLS -fpic -shared transitions" "-shared -melf64_sparc" ""
+ {"64-bit: TLS -fpic -shared transitions"
+ "-shared -melf64_sparc --hash-style=sysv" ""
"--64 -Av9 -K PIC" {tlssunpic64.s tlspic.s}
{{readelf -WSsrl tlssunpic64.rd} {objdump -drj.text tlssunpic64.dd}
{objdump -sj.got tlssunpic64.sd} {objdump -sj.tdata tlssunpic64.td}}
@@ -109,19 +114,21 @@ set sparc64tests {
{"64-bit: Another helper shared library" "-shared -melf64_sparc" ""
"--64 -Av9 -K PIC" {tlssunbinpic64.s} {} "libtlssunbinpic64.so"}
{"64-bit: TLS -fpic and -fno-pic exec transitions"
- "-melf64_sparc tmpdir/libtlslib64.so tmpdir/tlssunbinpic64.o" ""
+ "-melf64_sparc --hash-style=sysv tmpdir/libtlslib64.so tmpdir/tlssunbinpic64.o" ""
"--64 -Av9" {tlssunbin64.s}
{{readelf -WSsrl tlssunbin64.rd} {objdump -drj.text tlssunbin64.dd}
{objdump -sj.got tlssunbin64.sd} {objdump -sj.tdata tlssunbin64.td}}
"tlssunbin64"}
- {"64-bit: TLS -fno-pic -shared" "-shared -melf64_sparc" ""
+ {"64-bit: TLS -fno-pic -shared"
+ "-shared -melf64_sparc --hash-style=sysv" ""
"--64 -Av9" {tlssunnopic64.s tlsnopic.s}
{{readelf -WSsrl tlssunnopic64.rd} {objdump -drj.text tlssunnopic64.dd}
{objdump -sj.got tlssunnopic64.sd}} "libtlssunnopic64.so"}
{"64-bit: TLS in debug sections" "-melf64_sparc" ""
"--64 -Av9" {tlsg64.s}
{{objdump -sj.debug_foobar tlsg64.sd}} "tlsg64"}
- {"64-bit: GOTDATA relocations" "-shared -melf64_sparc" ""
+ {"64-bit: GOTDATA relocations"
+ "-shared -melf64_sparc --hash-style=sysv" ""
"--64 -K PIC" {gotop64.s}
{{readelf -WSsrl gotop64.rd} {objdump -drj.text gotop64.dd}
{objdump -sj.got gotop64.sd} {objdump -sj.data gotop64.td}}
diff --git a/ld/testsuite/ld-tic6x/tic6x.exp b/ld/testsuite/ld-tic6x/tic6x.exp
index c1b0608..943fc5a 100644
--- a/ld/testsuite/ld-tic6x/tic6x.exp
+++ b/ld/testsuite/ld-tic6x/tic6x.exp
@@ -31,21 +31,21 @@ foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.d]] {
set shlibtests {
{"C6X shared library without --dsbt-index"
- "-shared -Tdsbt.ld --dsbt-size=3" ""
+ "-shared -Tdsbt.ld --dsbt-size=3 --hash-style=sysv" ""
"-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s}
{{readelf -WSsrld shlib-noindex.rd}
{objdump "-drj.plt -j.text" shlib-noindex.dd}
{objdump -sj.got shlib-noindex.sd}}
"libtestn.so"}
{"C6X shared library, LE, RELA"
- "-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3" ""
+ "-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3 --hash-style=sysv" ""
"-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s}
{{readelf -WSsrld shlib-1.rd}
{objdump "-drj.plt -j.text" shlib-1.dd}
{objdump -sj.got shlib-1.sd}}
"libtest.so"}
{"C6X nonstatic app using shared library, LE, RELA"
- "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtest.so" ""
+ "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtest.so --hash-style=sysv" ""
"-mdsbt -mpic -mpid=near" {shlib-app-1.s}
{{readelf -WSsrld shlib-app-1.rd}
{objdump "-drj.plt -j.text" shlib-app-1.dd}
@@ -53,14 +53,14 @@ set shlibtests {
{objdump -R shlib-app-1.od}}
"shlib-dynapp-1"}
{"C6X shared library, LE, REL"
- "-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3" ""
+ "-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3 --hash-style=sysv" ""
"-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-1.s shlib-2.s}
{{readelf -WSsrld shlib-1r.rd}
{objdump "-drj.plt -j.text" shlib-1r.dd}
{objdump -sj.got shlib-1r.sd}}
"libtestr.so"}
{"C6X nonstatic app using shared library, LE, REL"
- "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestr.so" ""
+ "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 --hash-style=sysv tmpdir/libtestr.so" ""
"-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-app-1r.s}
{{readelf -WSsrld shlib-app-1r.rd}
{objdump "-drj.plt -j.text" shlib-app-1r.dd}
@@ -68,14 +68,14 @@ set shlibtests {
{objdump -R shlib-app-1r.od}}
"shlib-dynapp-1r"}
{"C6X shared library, BE, RELA"
- "-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3" ""
+ "-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3 --hash-style=sysv" ""
"-mdsbt -mpic -mpid=near -mbig-endian" {shlib-1.s shlib-2.s}
{{readelf -WSsrld shlib-1b.rd}
{objdump "-drj.plt -j.text" shlib-1b.dd}
{objdump -sj.got shlib-1b.sd}}
"libtestb.so"}
{"C6X nonstatic app using shared library, BE, RELA"
- "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestb.so" ""
+ "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 --hash-style=sysv tmpdir/libtestb.so" ""
"-mdsbt -mpic -mpid=near -mbig-endian" {shlib-app-1.s}
{{readelf -WSsrld shlib-app-1b.rd}
{objdump "-drj.plt -j.text" shlib-app-1b.dd}
@@ -83,14 +83,14 @@ set shlibtests {
{objdump -R shlib-app-1b.od}}
"shlib-dynapp-1b"}
{"C6X shared library, BE, REL"
- "-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3" ""
+ "-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3 --hash-style=sysv" ""
"-mdsbt -mpic -mpid=near -mgenerate-rel -mbig-endian" {shlib-1.s shlib-2.s}
{{readelf -WSsrld shlib-1rb.rd}
{objdump "-drj.plt -j.text" shlib-1rb.dd}
{objdump -sj.got shlib-1rb.sd}}
"libtestrb.so"}
{"C6X nonstatic app using shared library, BE, REL"
- "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestrb.so" ""
+ "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 --hash-style=sysv tmpdir/libtestrb.so" ""
"-mdsbt -mpic -mpid=near -mgenerate-rel -mbig-endian" {shlib-app-1r.s}
{{readelf -WSsrld shlib-app-1rb.rd}
{objdump "-drj.plt -j.text" shlib-app-1rb.dd}
@@ -99,7 +99,7 @@ set shlibtests {
"shlib-dynapp-1rb"}
{"C6X static app, LE, RELA"
- "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3" ""
+ "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 --hash-style=sysv" ""
"-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s shlib-app-1.s}
{{readelf -WSsrld static-app-1.rd}
{objdump "-drj.plt -j.text" static-app-1.dd}
@@ -107,7 +107,7 @@ set shlibtests {
{objdump -R static-app-1.od}}
"static-app-1"}
{"C6X static app, LE, REL"
- "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3" ""
+ "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 --hash-style=sysv" ""
"-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-1.s shlib-2.s shlib-app-1r.s}
{{readelf -WSsrld static-app-1r.rd}
{objdump "-drj.plt -j.text" static-app-1r.dd}
@@ -115,7 +115,7 @@ set shlibtests {
{objdump -R static-app-1r.od}}
"static-app-1r"}
{"C6X static app, BE, RELA"
- "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3" ""
+ "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 --hash-style=sysv" ""
"-mdsbt -mpic -mpid=near -mbig-endian" {shlib-1.s shlib-2.s shlib-app-1.s}
{{readelf -WSsrld static-app-1b.rd}
{objdump "-drj.plt -j.text" static-app-1b.dd}
@@ -123,7 +123,7 @@ set shlibtests {
{objdump -R static-app-1b.od}}
"static-app-1b"}
{"C6X static app, BE, REL"
- "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3" ""
+ "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 --hash-style=sysv" ""
"-mdsbt -mpic -mpid=near -mbig-endian -mgenerate-rel" {shlib-1.s shlib-2.s shlib-app-1r.s}
{{readelf -WSsrld static-app-1rb.rd}
{objdump "-drj.plt -j.text" static-app-1rb.dd}
diff --git a/ld/testsuite/ld-undefined/fundef.s b/ld/testsuite/ld-undefined/fundef.s
new file mode 100644
index 0000000..96eb668
--- /dev/null
+++ b/ld/testsuite/ld-undefined/fundef.s
@@ -0,0 +1,31 @@
+ .text
+ .type undef_fun_typed %function
+ .ifdef BL
+ bl undef_fun_typed
+ nop
+ bl undef_fun_notype
+ nop
+ .endif
+ .ifdef BLPLT
+ bl undef_fun_typed@plt
+ nop
+ bl undef_fun_notype@plt
+ nop
+ .endif
+ .ifdef CALLPLT
+ call undef_fun_typed@plt
+ call undef_fun_notype@plt
+ .endif
+ .ifdef HPPA
+ bl undef_fun_typed,%r2
+ nop
+ bl undef_fun_notype,%r2
+ nop
+ .endif
+
+ .data
+ .type undef_data %object
+ .dc.a undef_data
+ .type undef_pfun %function
+ .dc.a undef_pfun
+ .dc.a undef_notype
diff --git a/ld/testsuite/ld-undefined/undefined.exp b/ld/testsuite/ld-undefined/undefined.exp
index a9ba9bb..c0c9012 100644
--- a/ld/testsuite/ld-undefined/undefined.exp
+++ b/ld/testsuite/ld-undefined/undefined.exp
@@ -29,119 +29,179 @@ if { ![is_remote host] && [which $CC] == 0 } {
untested $testund
untested $testfn
untested $testline
- return
-}
-
-if ![ld_compile "$CC -g" $srcdir/$subdir/undefined.c tmpdir/undefined.o] {
+} elseif { ![ld_compile "$CC -g" $srcdir/$subdir/undefined.c tmpdir/undefined.o] } {
verbose "Unable to compile test file!" 1
unresolved $testund
unresolved $testfn
unresolved $testline
- return
-}
+} else {
+ remote_file host delete "tmpdir/undefined"
-remote_file host delete "tmpdir/undefined"
+ set flags [big_or_little_endian]
-set flags [big_or_little_endian]
+ # Using -e start prevents the SunOS linker from trying to build a
+ # shared library.
+ send_log "$ld -e start $flags -o tmpdir/undefined tmpdir/undefined.o\n"
+ set exec_output [run_host_cmd "$ld" "-e start $flags -o tmpdir/undefined tmpdir/undefined.o"]
-# Using -e start prevents the SunOS linker from trying to build a
-# shared library.
-send_log "$ld -e start $flags -o tmpdir/undefined tmpdir/undefined.o\n"
-set exec_output [run_host_cmd "$ld" "-e start $flags -o tmpdir/undefined tmpdir/undefined.o"]
+ send_log "$exec_output\n"
+ verbose "$exec_output"
-send_log "$exec_output\n"
-verbose "$exec_output"
+ proc checkund { string testname } {
+ global exec_output
-proc checkund { string testname } {
- global exec_output
-
- if [string match "*$string*" $exec_output] {
- pass $testname
- } else {
- fail $testname
+ if [string match "*$string*" $exec_output] {
+ pass $testname
+ } else {
+ fail $testname
+ }
}
-}
-set mu "undefined reference to `*this_function_is_not_defined'"
-checkund $mu $testund
+ set mu "undefined reference to `*this_function_is_not_defined'"
+ checkund $mu $testund
-# ARM PE defaults to using stabs debugging, which we can't handle for
-# a COFF file.
-#setup_xfail "arm*-*-pe*"
+ # ARM PE defaults to using stabs debugging, which we can't handle
+ # for a COFF file.
+ #setup_xfail "arm*-*-pe*"
-# For Xtensa on GNU Linux systems (or any other system where PIC code is
-# always used), the address of the undefined function is in a literal pool
-# outside the function, so that both the "undefined function" and "undefined
-# line" tests fail.
-setup_xfail xtensa*-*-linux*
+ # For Xtensa on GNU Linux systems (or any other system where PIC
+ # code is always used), the address of the undefined function is
+ # in a literal pool outside the function, so that both the
+ # "undefined function" and "undefined line" tests fail.
+ setup_xfail xtensa*-*-linux*
-set mf "tmpdir/undefined.o* In function `function':"
-checkund $mf $testfn
+ set mf "tmpdir/undefined.o* In function `function':"
+ checkund $mf $testfn
-if ![is_elf_format] {
- # COFF SH gets this test wrong--it reports line 10, because although
- # the jump is at line 9, the function address, and the reloc, is
- # stored at the end of the function.
- setup_xfail "sh-*-*"
+ if ![is_elf_format] {
+ # COFF SH gets this test wrong--it reports line 10, because
+ # although the jump is at line 9, the function address, and
+ # the reloc, is stored at the end of the function.
+ setup_xfail "sh-*-*"
- # ARM PE defaults to using stabs debugging, which we can't handle for
- # a COFF file.
- #setup_xfail "arm*-*-pe*"
+ # ARM PE defaults to using stabs debugging, which we can't
+ # handle for a COFF file.
+ #setup_xfail "arm*-*-pe*"
+ }
+
+ set ml "undefined.c:9: undefined reference to `*this_function_is_not_defined'"
+ # With targets that use elf/dwarf2, such as the arm-elf toolchain,
+ # the code in bfd/elf.c:_bfd_elf_find_nearest_line() is called in
+ # order to locate the file name/line number where the undefined
+ # reference occurs. Unfortunately this tries to use the dwarf2
+ # debug information held in the .debug_info section. This section
+ # contains a series of comp_unit structures, each of which has a
+ # low/high address range representing the span of memory locations
+ # covered by that structure. The structures also index into other
+ # structures held in the .debug_line section and together they can
+ # translate memory locations back into file/function/line number
+ # addresses in the source code. Since the information about the
+ # memory region covered by a comp_unit is only determined at link
+ # time, the low/high addresses in the .debug_info section and the
+ # line addresses in the .debug_line section are computed by
+ # generating relocs against known symbols in the object code.
+ #
+ # When the undefined reference is detected, the relocs in the
+ # dwarf2 debug sections have not yet been resolved, so the
+ # low/high addresses and the line number address are all set at
+ # zero. Thus when _bfd_elf_find_nearest_line() calls
+ # _bfd_dwarf2_find_nearest_line() no comp_unit can be found which
+ # actually covers the address where the reference occurred, and so
+ # _bfd_elf_find_nearest_line() fails.
+ #
+ # The upshot of all of this, is that the error message reported by
+ # the linker, instead of having a source file name & line number
+ # as in:
+ #
+ # undefined.c:9: undefined reference to `this_function_is_not_defined'
+ #
+ # has an object file & section address instead:
+ #
+ # undefined.0(.text+0xc): undefined reference to `this_function_is_not_defined'
+ #
+ # hence the xfails below.
+
+ setup_xfail mcore-*-elf
+ setup_xfail mep-*-*
+ setup_xfail mips-sgi-irix6*
+ setup_xfail "sh64-*-*"
+ # Fails for the MSP430 because it uses SYM_DIFF relocs but it does
+ # not provide a special_function for handling them. If
+ # optimization is enabled then this test passes because
+ # function()'s prologue is eliminated.
+ setup_xfail "msp430-*-*"
+
+ # The undefined test fails on 31 bit s/390 because the address of
+ # the function `this_function_is_not_defined' is stored in the
+ # literal pool of the function. Therefore the line number in the
+ # error message is 8 instead of 9. On 64 bit s/390 this works
+ # because of the new brasl instruction that doesn't need a literal
+ # pool entry.
+ setup_xfail s390-*-*
+
+ # See comments above for Xtensa.
+ setup_xfail xtensa*-*-linux*
+ setup_xfail hppa*64*-*-*
+
+ checkund $ml $testline
}
-set ml "undefined.c:9: undefined reference to `*this_function_is_not_defined'"
-# With targets that use elf/dwarf2, such as the arm-elf
-# toolchain, the code in bfd/elf.c:_bfd_elf_find_nearest_line() is called
-# in order to locate the file name/line number where the undefined
-# reference occurs. Unfortunately this tries to use the dwarf2 debug
-# information held in the .debug_info section. This section contains a series
-# of comp_unit structures, each of which has a low/high address range
-# representing the span of memory locations covered by that structure. The
-# structures also index into other structures held in the .debug_line section
-# and together they can translate memory locations back into file/function/line
-# number addresses in the source code. Since the information about the memory
-# region covered by a comp_unit is only determined at link time, the low/high
-# addresses in the .debug_info section and the line addresses in the .debug_line
-# section are computed by generating relocs against known symbols in the object
-# code.
-#
-# When the undefined reference is detected, the relocs in the dwarf2
-# debug sections have not yet been resolved, so the low/high addresses and the
-# line number address are all set at zero. Thus when _bfd_elf_find_nearest_line()
-# calls _bfd_dwarf2_find_nearest_line() no comp_unit can be found which
-# actually covers the address where the reference occurred, and so
-# _bfd_elf_find_nearest_line() fails.
-#
-# The upshot of all of this, is that the error message reported by the
-# linker, instead of having a source file name & line number as in:
-#
-# undefined.c:9: undefined reference to `this_function_is_not_defined'
-#
-# has an object file & section address instead:
-#
-# undefined.0(.text+0xc): undefined reference to `this_function_is_not_defined'
-#
-# hence the xfails below.
-
-setup_xfail mcore-*-elf
-setup_xfail mep-*-*
-setup_xfail mips-sgi-irix6*
-setup_xfail "sh64-*-*"
-# Fails for the MSP430 because it uses SYM_DIFF relocs but it does
-# not provide a special_function for handling them. If optimization
-# is enabled then this test passes because function()'s prologue is
-# eliminated.
-setup_xfail "msp430-*-*"
-
-# The undefined test fails on 31 bit s/390 because the address of the
-# function `this_function_is_not_defined' is stored in the literal pool of
-# the function. Therefore the line number in the error message is 8 instead
-# of 9. On 64 bit s/390 this works because of the new brasl instruction that
-# doesn't need a literal pool entry.
-setup_xfail s390-*-*
-
-# See comments above for Xtensa.
-setup_xfail xtensa*-*-linux*
-setup_xfail hppa*64*-*-*
-
-checkund $ml $testline
+# Undefined symbols should become dynamic when linking a shared lib.
+set testname "undefined symbols in shared lib"
+
+set asflags ""
+switch -glob $target_triplet {
+ aarch64* -
+ arm* -
+ powerpc64* { set asflags "--defsym BL=1" }
+ powerpc* { set asflags "--defsym BLPLT=1" }
+ hppa* { set asflags "--defsym HPPA=1" }
+ i\[3-7\]86* -
+ x86_64* { set asflags "--defsym CALLPLT=1" }
+}
+
+if { ![is_elf_format] || ![check_shared_lib_support]} then {
+ unsupported $testname
+} elseif {![ld_assemble $as "$asflags $srcdir/$subdir/fundef.s" \
+ tmpdir/fundef.o]} then {
+ fail $testname
+} elseif {![ld_link $ld tmpdir/fundef.so \
+ "-shared --allow-shlib-undefined tmpdir/fundef.o"]} then {
+ setup_xfail tic6x-*-*
+ fail $testname
+} else {
+ if {![is_remote host] && [which $nm] == 0} then {
+ unresolved "$testname (dyn sym)"
+ } else {
+ set exec_output [run_host_cmd "$nm" "-D tmpdir/fundef.so"]
+ set exec_output [prune_warnings $exec_output]
+
+ if { ($asflags == ""
+ || ([regexp ".* undef_fun_typed.*" $exec_output]
+ && [regexp ".* undef_fun_notype.*" $exec_output]))
+ && [regexp ".* undef_data.*" $exec_output]
+ && [regexp ".* undef_pfun.*" $exec_output]
+ && [regexp ".* undef_notype.*" $exec_output]} then {
+ pass "$testname (dyn sym)"
+ } else {
+ fail "$testname (dyn sym)"
+ }
+ }
+
+ global READELF
+ if {![is_remote host] && [which $READELF] == 0} then {
+ unresolved "$testname (dyn reloc)"
+ } else {
+ set exec_output [run_host_cmd "$READELF" "-r tmpdir/fundef.so"]
+ set exec_output [prune_warnings $exec_output]
+
+ # we ought to get two .rel{a}.plt and three .rel{a}.dyn relocs
+ if { ($asflags == "" || [regexp ".* contains 2 .*" $exec_output])
+ && [regexp ".* contains 3 .*" $exec_output]
+ && ![regexp "_NONE" $exec_output]} then {
+ pass "$testname (dyn reloc)"
+ } else {
+ fail "$testname (dyn reloc)"
+ }
+ }
+}
diff --git a/ld/testsuite/ld-unique/pr21529.d b/ld/testsuite/ld-unique/pr21529.d
index 1bcd4fe..ffc1a72 100644
--- a/ld/testsuite/ld-unique/pr21529.d
+++ b/ld/testsuite/ld-unique/pr21529.d
@@ -1,5 +1,6 @@
-#ld: --oformat binary -e main
+#ld: --oformat binary -T pr21529.ld -e main
#objdump: -s -b binary
-#xfail: aarch64*-*-* arm*-*-* hppa-*-* ia64-*-* nds32*-*-* score-*-*
+#notarget: aarch64*-*-* arm*-*-* avr-*-* ia64-*-* m68hc1*-*-* nds32*-*-* score-*-*
+# Skip targets which can't change output format to binary.
#pass
diff --git a/ld/testsuite/ld-unique/pr21529.ld b/ld/testsuite/ld-unique/pr21529.ld
new file mode 100644
index 0000000..113e70b
--- /dev/null
+++ b/ld/testsuite/ld-unique/pr21529.ld
@@ -0,0 +1,5 @@
+SECTIONS
+{
+ .text : { *(.text) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/ld/testsuite/ld-vax-elf/vax-elf.exp b/ld/testsuite/ld-vax-elf/vax-elf.exp
index f70c712..0f58af8 100644
--- a/ld/testsuite/ld-vax-elf/vax-elf.exp
+++ b/ld/testsuite/ld-vax-elf/vax-elf.exp
@@ -25,7 +25,7 @@ if { ![istarget vax-*-*] || ![is_elf_format] } {
run_ld_link_tests [list \
[list "PLT test (shared library)" \
- "-shared -T plt-local-lib.ld" "" \
+ "-shared -T plt-local-lib.ld --hash-style=sysv" "" \
"-k" \
{ plt-local-lib.s } \
{ { objdump -d plt-local-lib.dd } } \
@@ -43,7 +43,7 @@ run_ld_link_tests [list \
{} \
"plt-local-rehidden-pic-r.o"] \
[list "PLT test (executable)" \
- "-T plt-local.ld tmpdir/plt-local-hidden-pic-r.o tmpdir/plt-local-rehidden-pic-r.o tmpdir/plt-local-lib.so" "" \
+ "-T plt-local.ld --hash-style=sysv tmpdir/plt-local-hidden-pic-r.o tmpdir/plt-local-rehidden-pic-r.o tmpdir/plt-local-lib.so" "" \
"" \
{ plt-local.s } \
{ { objdump -d plt-local.dd } } \
@@ -87,7 +87,7 @@ run_ld_link_tests [list \
run_ld_link_tests [list \
[list \
"VAX export class call relocation test" \
- "-shared -Ttext 0x12340000 -T export-class.ld" "" \
+ "-shared -Ttext 0x12340000 -T export-class.ld --hash-style=sysv" "" \
"-k" \
[list export-class-call.s export-class-def.s] \
[list \
@@ -97,7 +97,7 @@ run_ld_link_tests [list \
"export-class-call.so"] \
[list \
"VAX export class data relocation test" \
- "-shared -Ttext 0x12340000 -T export-class.ld" "" \
+ "-shared -Ttext 0x12340000 -T export-class.ld --hash-style=sysv" "" \
"-k" \
[list export-class-data.s export-class-def.s] \
[list \
diff --git a/ld/testsuite/ld-x86-64/bnd-branch-1-now.d b/ld/testsuite/ld-x86-64/bnd-branch-1-now.d
index 50ddf74..6b35219 100644
--- a/ld/testsuite/ld-x86-64/bnd-branch-1-now.d
+++ b/ld/testsuite/ld-x86-64/bnd-branch-1-now.d
@@ -1,6 +1,6 @@
#source: bnd-branch-1.s
#as: --64
-#ld: -z now -shared -melf_x86_64
+#ld: -z now -shared -melf_x86_64 --hash-style=sysv
#objdump: -dw
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d b/ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d
index 73ddc31..f29a40a 100644
--- a/ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d
+++ b/ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d
@@ -1,6 +1,6 @@
#source: bnd-ifunc-1.s
#as: --64 -madd-bnd-prefix
-#ld: -z now -shared -melf_x86_64 -z bndplt
+#ld: -z now -shared -melf_x86_64 -z bndplt --hash-style=sysv
#objdump: -dw
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/bnd-ifunc-1.d b/ld/testsuite/ld-x86-64/bnd-ifunc-1.d
index 273e334..13e86bb 100644
--- a/ld/testsuite/ld-x86-64/bnd-ifunc-1.d
+++ b/ld/testsuite/ld-x86-64/bnd-ifunc-1.d
@@ -1,5 +1,5 @@
#as: --64 -madd-bnd-prefix
-#ld: -shared -melf_x86_64 -z bndplt
+#ld: -shared -melf_x86_64 -z bndplt --hash-style=sysv
#objdump: -dw
#...
diff --git a/ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d b/ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d
index 1fbcd17..bb9a26e 100644
--- a/ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d
+++ b/ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d
@@ -1,6 +1,6 @@
#source: bnd-ifunc-2.s
#as: --64 -madd-bnd-prefix
-#ld: -z now -shared -melf_x86_64 -z bndplt
+#ld: -z now -shared -melf_x86_64 -z bndplt --hash-style=sysv
#objdump: -dw
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/bnd-ifunc-2.d b/ld/testsuite/ld-x86-64/bnd-ifunc-2.d
index fc03c17..caba178 100644
--- a/ld/testsuite/ld-x86-64/bnd-ifunc-2.d
+++ b/ld/testsuite/ld-x86-64/bnd-ifunc-2.d
@@ -1,5 +1,5 @@
#as: --64 -madd-bnd-prefix
-#ld: -shared -melf_x86_64 -z bndplt
+#ld: -shared -melf_x86_64 -z bndplt --hash-style=sysv
#objdump: -dw
#...
diff --git a/ld/testsuite/ld-x86-64/bnd-plt-1-now.d b/ld/testsuite/ld-x86-64/bnd-plt-1-now.d
index 2989f82..9a14a28 100644
--- a/ld/testsuite/ld-x86-64/bnd-plt-1-now.d
+++ b/ld/testsuite/ld-x86-64/bnd-plt-1-now.d
@@ -1,6 +1,6 @@
#source: bnd-branch-1.s
#as: --64
-#ld: -z now -shared -melf_x86_64 -z bndplt
+#ld: -z now -shared -melf_x86_64 -z bndplt --hash-style=sysv
#objdump: -dw
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/bnd-plt-1.d b/ld/testsuite/ld-x86-64/bnd-plt-1.d
index 66efb1a..3f7c88d 100644
--- a/ld/testsuite/ld-x86-64/bnd-plt-1.d
+++ b/ld/testsuite/ld-x86-64/bnd-plt-1.d
@@ -1,6 +1,6 @@
#source: bnd-branch-1.s
#as: --64
-#ld: -shared -melf_x86_64 -z bndplt
+#ld: -shared -melf_x86_64 -z bndplt --hash-style=sysv
#objdump: -dw
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d
index 6147ab4..665eaa5 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d
@@ -1,6 +1,6 @@
#source: ibt-plt-1.s
#as: --x32
-#ld: -shared -m elf32_x86_64
+#ld: -shared -m elf32_x86_64 --hash-style=sysv
#objdump: -dw
.*: +file format .*
@@ -9,8 +9,8 @@
Disassembly of section .plt:
0+1c0 <.plt>:
- +[a-f0-9]+: ff 35 6a 01 20 00 pushq 0x20016a\(%rip\) # 200330 <_GLOBAL_OFFSET_TABLE_\+0x8>
- +[a-f0-9]+: ff 25 6c 01 20 00 jmpq \*0x20016c\(%rip\) # 200338 <_GLOBAL_OFFSET_TABLE_\+0x10>
+ +[a-f0-9]+: ff 35 62 01 20 00 pushq 0x200162\(%rip\) # 200328 <_GLOBAL_OFFSET_TABLE_\+0x8>
+ +[a-f0-9]+: ff 25 64 01 20 00 jmpq \*0x200164\(%rip\) # 200330 <_GLOBAL_OFFSET_TABLE_\+0x10>
+[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\)
+[a-f0-9]+: f3 0f 1e fa endbr64
+[a-f0-9]+: 68 00 00 00 00 pushq \$0x0
@@ -25,12 +25,12 @@ Disassembly of section .plt.sec:
0+1f0 <bar1@plt>:
+[a-f0-9]+: f3 0f 1e fa endbr64
- +[a-f0-9]+: ff 25 46 01 20 00 jmpq \*0x200146\(%rip\) # 200340 <bar1>
+ +[a-f0-9]+: ff 25 3e 01 20 00 jmpq \*0x20013e\(%rip\) # 200338 <bar1>
+[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
0+200 <bar2@plt>:
+[a-f0-9]+: f3 0f 1e fa endbr64
- +[a-f0-9]+: ff 25 3e 01 20 00 jmpq \*0x20013e\(%rip\) # 200348 <bar2>
+ +[a-f0-9]+: ff 25 36 01 20 00 jmpq \*0x200136\(%rip\) # 200340 <bar2>
+[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
Disassembly of section .text:
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-1.d b/ld/testsuite/ld-x86-64/ibt-plt-1.d
index dbec3ed..8c36cfb 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-1.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-1.d
@@ -1,6 +1,6 @@
#source: ibt-plt-1.s
#as: --64 -defsym __64_bit__=1
-#ld: -shared -m elf_x86_64
+#ld: -shared -m elf_x86_64 --hash-style=sysv
#objdump: -dw
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d
index df9dc8e..3d934b5 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d
@@ -1,6 +1,6 @@
#source: ibt-plt-2.s
#as: --x32
-#ld: -shared -m elf32_x86_64 -z ibtplt
+#ld: -shared -m elf32_x86_64 -z ibtplt --hash-style=sysv
#objdump: -dw
.*: +file format .*
@@ -9,8 +9,8 @@
Disassembly of section .plt:
0+1c0 <.plt>:
- +[a-f0-9]+: ff 35 6a 01 20 00 pushq 0x20016a\(%rip\) # 200330 <_GLOBAL_OFFSET_TABLE_\+0x8>
- +[a-f0-9]+: ff 25 6c 01 20 00 jmpq \*0x20016c\(%rip\) # 200338 <_GLOBAL_OFFSET_TABLE_\+0x10>
+ +[a-f0-9]+: ff 35 62 01 20 00 pushq 0x200162\(%rip\) # 200328 <_GLOBAL_OFFSET_TABLE_\+0x8>
+ +[a-f0-9]+: ff 25 64 01 20 00 jmpq \*0x200164\(%rip\) # 200330 <_GLOBAL_OFFSET_TABLE_\+0x10>
+[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\)
+[a-f0-9]+: f3 0f 1e fa endbr64
+[a-f0-9]+: 68 00 00 00 00 pushq \$0x0
@@ -25,12 +25,12 @@ Disassembly of section .plt.sec:
0+1f0 <bar1@plt>:
+[a-f0-9]+: f3 0f 1e fa endbr64
- +[a-f0-9]+: ff 25 46 01 20 00 jmpq \*0x200146\(%rip\) # 200340 <bar1>
+ +[a-f0-9]+: ff 25 3e 01 20 00 jmpq \*0x20013e\(%rip\) # 200338 <bar1>
+[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
0+200 <bar2@plt>:
+[a-f0-9]+: f3 0f 1e fa endbr64
- +[a-f0-9]+: ff 25 3e 01 20 00 jmpq \*0x20013e\(%rip\) # 200348 <bar2>
+ +[a-f0-9]+: ff 25 36 01 20 00 jmpq \*0x200136\(%rip\) # 200340 <bar2>
+[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
Disassembly of section .text:
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2a.d b/ld/testsuite/ld-x86-64/ibt-plt-2a.d
index 0e4f424..4bdf8bd 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-2a.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-2a.d
@@ -1,6 +1,6 @@
#source: ibt-plt-2.s
#as: --64 -defsym __64_bit__=1
-#ld: -shared -m elf_x86_64 -z ibtplt
+#ld: -shared -m elf_x86_64 -z ibtplt --hash-style=sysv
#objdump: -dw
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2b-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-2b-x32.d
index e9e5638..54a708d 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-2b-x32.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-2b-x32.d
@@ -1,7 +1,42 @@
#source: ibt-plt-2.s
#as: --x32
-#ld: -shared -m elf32_x86_64 -z ibtplt
-#readelf: -n
+#ld: -shared -m elf32_x86_64 -z ibtplt --hash-style=sysv
+#readelf: -n -wf
+
+Contents of the .eh_frame section:
+
+0+ 00000014 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 1
+ Data alignment factor: -8
+ Return address column: 16
+ Augmentation data: 1b
+
+ DW_CFA_def_cfa: r7 \(rsp\) ofs 8
+ DW_CFA_offset: r16 \(rip\) at cfa-8
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+18 00000014 0000001c FDE cie=00000000 pc=00000210..00000222
+ DW_CFA_advance_loc: 4 to 00000214
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 9 to 0000021d
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_nop
+
+0+30 00000020 00000034 FDE cie=00000000 pc=000001c0..000001f0
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 6 to 000001c6
+ DW_CFA_def_cfa_offset: 24
+ DW_CFA_advance_loc: 10 to 000001d0
+ DW_CFA_def_cfa_expression \(DW_OP_breg7 \(rsp\): 8; DW_OP_breg16 \(rip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit9; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus\)
+
+0+54 00000010 00000058 FDE cie=00000000 pc=000001f0..00000210
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
Displaying notes found in: .note.gnu.property
Owner Data size Description
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2b.d b/ld/testsuite/ld-x86-64/ibt-plt-2b.d
index 604db82..9cd1462 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-2b.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-2b.d
@@ -1,7 +1,46 @@
#source: ibt-plt-2.s
#as: --64 -defsym __64_bit__=1
-#ld: -shared -m elf_x86_64 -z ibtplt
-#readelf: -n
+#ld: -shared -m elf_x86_64 -z ibtplt --hash-style=sysv
+#readelf: -wf -n
+
+Contents of the .eh_frame section:
+
+0+ 0000000000000014 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 1
+ Data alignment factor: -8
+ Return address column: 16
+ Augmentation data: 1b
+
+ DW_CFA_def_cfa: r7 \(rsp\) ofs 8
+ DW_CFA_offset: r16 \(rip\) at cfa-8
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000002e0..00000000000002f2
+ DW_CFA_advance_loc: 4 to 00000000000002e4
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 9 to 00000000000002ed
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_nop
+
+0+30 0000000000000024 00000034 FDE cie=00000000 pc=0000000000000290..00000000000002c0
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 6 to 0000000000000296
+ DW_CFA_def_cfa_offset: 24
+ DW_CFA_advance_loc: 10 to 00000000000002a0
+ DW_CFA_def_cfa_expression \(DW_OP_breg7 \(rsp\): 8; DW_OP_breg16 \(rip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit10; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus\)
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+58 0000000000000010 0000005c FDE cie=00000000 pc=00000000000002c0..00000000000002e0
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
Displaying notes found in: .note.gnu.property
Owner Data size Description
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d
index e908804..88d6da8 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d
@@ -1,6 +1,6 @@
#source: ibt-plt-2.s
#as: --x32
-#ld: -shared -m elf32_x86_64 -z ibt
+#ld: -shared -m elf32_x86_64 -z ibt --hash-style=sysv
#objdump: -dw
.*: +file format .*
@@ -9,8 +9,8 @@
Disassembly of section .plt:
0+1c0 <.plt>:
- +[a-f0-9]+: ff 35 6a 01 20 00 pushq 0x20016a\(%rip\) # 200330 <_GLOBAL_OFFSET_TABLE_\+0x8>
- +[a-f0-9]+: ff 25 6c 01 20 00 jmpq \*0x20016c\(%rip\) # 200338 <_GLOBAL_OFFSET_TABLE_\+0x10>
+ +[a-f0-9]+: ff 35 62 01 20 00 pushq 0x200162\(%rip\) # 200328 <_GLOBAL_OFFSET_TABLE_\+0x8>
+ +[a-f0-9]+: ff 25 64 01 20 00 jmpq \*0x200164\(%rip\) # 200330 <_GLOBAL_OFFSET_TABLE_\+0x10>
+[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\)
+[a-f0-9]+: f3 0f 1e fa endbr64
+[a-f0-9]+: 68 00 00 00 00 pushq \$0x0
@@ -25,12 +25,12 @@ Disassembly of section .plt.sec:
0+1f0 <bar1@plt>:
+[a-f0-9]+: f3 0f 1e fa endbr64
- +[a-f0-9]+: ff 25 46 01 20 00 jmpq \*0x200146\(%rip\) # 200340 <bar1>
+ +[a-f0-9]+: ff 25 3e 01 20 00 jmpq \*0x20013e\(%rip\) # 200338 <bar1>
+[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
0+200 <bar2@plt>:
+[a-f0-9]+: f3 0f 1e fa endbr64
- +[a-f0-9]+: ff 25 3e 01 20 00 jmpq \*0x20013e\(%rip\) # 200348 <bar2>
+ +[a-f0-9]+: ff 25 36 01 20 00 jmpq \*0x200136\(%rip\) # 200340 <bar2>
+[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
Disassembly of section .text:
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2c.d b/ld/testsuite/ld-x86-64/ibt-plt-2c.d
index 0ef1131..7502d83 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-2c.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-2c.d
@@ -1,6 +1,6 @@
#source: ibt-plt-2.s
#as: --64 -defsym __64_bit__=1
-#ld: -shared -m elf_x86_64 -z ibt
+#ld: -shared -m elf_x86_64 -z ibt --hash-style=sysv
#objdump: -dw
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2d-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-2d-x32.d
index b3be904..f22154a 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-2d-x32.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-2d-x32.d
@@ -1,7 +1,42 @@
#source: ibt-plt-2.s
#as: --x32
-#ld: -shared -m elf32_x86_64 -z ibt
-#readelf: -n
+#ld: -shared -m elf32_x86_64 -z ibt --hash-style=sysv
+#readelf: -n -wf
+
+Contents of the .eh_frame section:
+
+0+ 00000014 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 1
+ Data alignment factor: -8
+ Return address column: 16
+ Augmentation data: 1b
+
+ DW_CFA_def_cfa: r7 \(rsp\) ofs 8
+ DW_CFA_offset: r16 \(rip\) at cfa-8
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+18 00000014 0000001c FDE cie=00000000 pc=00000210..00000222
+ DW_CFA_advance_loc: 4 to 00000214
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 9 to 0000021d
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_nop
+
+0+30 00000020 00000034 FDE cie=00000000 pc=000001c0..000001f0
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 6 to 000001c6
+ DW_CFA_def_cfa_offset: 24
+ DW_CFA_advance_loc: 10 to 000001d0
+ DW_CFA_def_cfa_expression \(DW_OP_breg7 \(rsp\): 8; DW_OP_breg16 \(rip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit9; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus\)
+
+0+54 00000010 00000058 FDE cie=00000000 pc=000001f0..00000210
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
Displaying notes found in: .note.gnu.property
Owner Data size Description
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2d.d b/ld/testsuite/ld-x86-64/ibt-plt-2d.d
index 7226b69..779f754 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-2d.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-2d.d
@@ -1,7 +1,46 @@
#source: ibt-plt-2.s
#as: --64 -defsym __64_bit__=1
-#ld: -shared -m elf_x86_64 -z ibt
-#readelf: -n
+#ld: -shared -m elf_x86_64 -z ibt --hash-style=sysv
+#readelf: -wf -n
+
+Contents of the .eh_frame section:
+
+0+ 0000000000000014 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 1
+ Data alignment factor: -8
+ Return address column: 16
+ Augmentation data: 1b
+
+ DW_CFA_def_cfa: r7 \(rsp\) ofs 8
+ DW_CFA_offset: r16 \(rip\) at cfa-8
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000002e0..00000000000002f2
+ DW_CFA_advance_loc: 4 to 00000000000002e4
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 9 to 00000000000002ed
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_nop
+
+0+30 0000000000000024 00000034 FDE cie=00000000 pc=0000000000000290..00000000000002c0
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 6 to 0000000000000296
+ DW_CFA_def_cfa_offset: 24
+ DW_CFA_advance_loc: 10 to 00000000000002a0
+ DW_CFA_def_cfa_expression \(DW_OP_breg7 \(rsp\): 8; DW_OP_breg16 \(rip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit10; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus\)
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+58 0000000000000010 0000005c FDE cie=00000000 pc=00000000000002c0..00000000000002e0
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
Displaying notes found in: .note.gnu.property
Owner Data size Description
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d
index 0f7835d..4213689 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d
@@ -1,6 +1,6 @@
#source: ibt-plt-3.s
#as: --x32
-#ld: -shared -m elf32_x86_64 -z ibtplt
+#ld: -shared -m elf32_x86_64 -z ibtplt --hash-style=sysv
#objdump: -dw
.*: +file format .*
@@ -9,8 +9,8 @@
Disassembly of section .plt:
0+1a0 <.plt>:
- +[a-f0-9]+: ff 35 52 01 20 00 pushq 0x200152\(%rip\) # 2002f8 <_GLOBAL_OFFSET_TABLE_\+0x8>
- +[a-f0-9]+: ff 25 54 01 20 00 jmpq \*0x200154\(%rip\) # 200300 <_GLOBAL_OFFSET_TABLE_\+0x10>
+ +[a-f0-9]+: ff 35 4a 01 20 00 pushq 0x20014a\(%rip\) # 2002f0 <_GLOBAL_OFFSET_TABLE_\+0x8>
+ +[a-f0-9]+: ff 25 4c 01 20 00 jmpq \*0x20014c\(%rip\) # 2002f8 <_GLOBAL_OFFSET_TABLE_\+0x10>
+[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\)
+[a-f0-9]+: f3 0f 1e fa endbr64
+[a-f0-9]+: 68 00 00 00 00 pushq \$0x0
@@ -25,12 +25,12 @@ Disassembly of section .plt.sec:
0+1d0 <bar1@plt>:
+[a-f0-9]+: f3 0f 1e fa endbr64
- +[a-f0-9]+: ff 25 2e 01 20 00 jmpq \*0x20012e\(%rip\) # 200308 <bar1>
+ +[a-f0-9]+: ff 25 26 01 20 00 jmpq \*0x200126\(%rip\) # 200300 <bar1>
+[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
0+1e0 <bar2@plt>:
+[a-f0-9]+: f3 0f 1e fa endbr64
- +[a-f0-9]+: ff 25 26 01 20 00 jmpq \*0x200126\(%rip\) # 200310 <bar2>
+ +[a-f0-9]+: ff 25 1e 01 20 00 jmpq \*0x20011e\(%rip\) # 200308 <bar2>
+[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
Disassembly of section .text:
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3a.d b/ld/testsuite/ld-x86-64/ibt-plt-3a.d
index b8f2ebc..7ee2f17 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-3a.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-3a.d
@@ -1,6 +1,6 @@
#source: ibt-plt-3.s
#as: --64 -defsym __64_bit__=1
-#ld: -shared -m elf_x86_64 -z ibtplt
+#ld: -shared -m elf_x86_64 -z ibtplt --hash-style=sysv
#objdump: -dw
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3b-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-3b-x32.d
index fb0a834..e55406f 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-3b-x32.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-3b-x32.d
@@ -1,5 +1,39 @@
#source: ibt-plt-3.s
#as: --x32
-#ld: -shared -m elf32_x86_64 -z ibtplt
-#readelf: -n
+#ld: -shared -m elf32_x86_64 -z ibtplt --hash-style=sysv
+#readelf: -wf -n
+
+Contents of the .eh_frame section:
+
+0+ 00000014 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 1
+ Data alignment factor: -8
+ Return address column: 16
+ Augmentation data: 1b
+
+ DW_CFA_def_cfa: r7 \(rsp\) ofs 8
+ DW_CFA_offset: r16 \(rip\) at cfa-8
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+18 00000014 0000001c FDE cie=00000000 pc=000001f0..00000202
+ DW_CFA_advance_loc: 4 to 000001f4
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 9 to 000001fd
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_nop
+
+0+30 00000020 00000034 FDE cie=00000000 pc=000001a0..000001d0
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 6 to 000001a6
+ DW_CFA_def_cfa_offset: 24
+ DW_CFA_advance_loc: 10 to 000001b0
+ DW_CFA_def_cfa_expression \(DW_OP_breg7 \(rsp\): 8; DW_OP_breg16 \(rip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit9; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus\)
+
+0+54 00000010 00000058 FDE cie=00000000 pc=000001d0..000001f0
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3b.d b/ld/testsuite/ld-x86-64/ibt-plt-3b.d
index 5a3843b..220371d 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-3b.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-3b.d
@@ -1,5 +1,43 @@
#source: ibt-plt-3.s
#as: --64 -defsym __64_bit__=1
-#ld: -shared -m elf_x86_64 -z ibtplt
-#readelf: -n
+#ld: -shared -m elf_x86_64 -z ibtplt --hash-style=sysv
+#readelf: -wf -n
+
+Contents of the .eh_frame section:
+
+0+ 0000000000000014 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 1
+ Data alignment factor: -8
+ Return address column: 16
+ Augmentation data: 1b
+
+ DW_CFA_def_cfa: r7 \(rsp\) ofs 8
+ DW_CFA_offset: r16 \(rip\) at cfa-8
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000002a0..00000000000002b2
+ DW_CFA_advance_loc: 4 to 00000000000002a4
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 9 to 00000000000002ad
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_nop
+
+0+30 0000000000000024 00000034 FDE cie=00000000 pc=0000000000000250..0000000000000280
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 6 to 0000000000000256
+ DW_CFA_def_cfa_offset: 24
+ DW_CFA_advance_loc: 10 to 0000000000000260
+ DW_CFA_def_cfa_expression \(DW_OP_breg7 \(rsp\): 8; DW_OP_breg16 \(rip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit10; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus\)
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+58 0000000000000010 0000005c FDE cie=00000000 pc=0000000000000280..00000000000002a0
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d
index 234944d..2f70d04 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d
@@ -1,6 +1,6 @@
#source: ibt-plt-3.s
#as: --x32
-#ld: -shared -m elf32_x86_64 -z ibt
+#ld: -shared -m elf32_x86_64 -z ibt --hash-style=sysv
#objdump: -dw
.*: +file format .*
@@ -9,8 +9,8 @@
Disassembly of section .plt:
0+1c0 <.plt>:
- +[a-f0-9]+: ff 35 6a 01 20 00 pushq 0x20016a\(%rip\) # 200330 <_GLOBAL_OFFSET_TABLE_\+0x8>
- +[a-f0-9]+: ff 25 6c 01 20 00 jmpq \*0x20016c\(%rip\) # 200338 <_GLOBAL_OFFSET_TABLE_\+0x10>
+ +[a-f0-9]+: ff 35 62 01 20 00 pushq 0x200162\(%rip\) # 200328 <_GLOBAL_OFFSET_TABLE_\+0x8>
+ +[a-f0-9]+: ff 25 64 01 20 00 jmpq \*0x200164\(%rip\) # 200330 <_GLOBAL_OFFSET_TABLE_\+0x10>
+[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\)
+[a-f0-9]+: f3 0f 1e fa endbr64
+[a-f0-9]+: 68 00 00 00 00 pushq \$0x0
@@ -25,12 +25,12 @@ Disassembly of section .plt.sec:
0+1f0 <bar1@plt>:
+[a-f0-9]+: f3 0f 1e fa endbr64
- +[a-f0-9]+: ff 25 46 01 20 00 jmpq \*0x200146\(%rip\) # 200340 <bar1>
+ +[a-f0-9]+: ff 25 3e 01 20 00 jmpq \*0x20013e\(%rip\) # 200338 <bar1>
+[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
0+200 <bar2@plt>:
+[a-f0-9]+: f3 0f 1e fa endbr64
- +[a-f0-9]+: ff 25 3e 01 20 00 jmpq \*0x20013e\(%rip\) # 200348 <bar2>
+ +[a-f0-9]+: ff 25 36 01 20 00 jmpq \*0x200136\(%rip\) # 200340 <bar2>
+[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
Disassembly of section .text:
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3c.d b/ld/testsuite/ld-x86-64/ibt-plt-3c.d
index b299f22..d0665ae 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-3c.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-3c.d
@@ -1,6 +1,6 @@
#source: ibt-plt-3.s
#as: --64 -defsym __64_bit__=1
-#ld: -shared -m elf_x86_64 -z ibt
+#ld: -shared -m elf_x86_64 -z ibt --hash-style=sysv
#objdump: -dw
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3d-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-3d-x32.d
index 447e811..ceaf75a 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-3d-x32.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-3d-x32.d
@@ -1,7 +1,42 @@
#source: ibt-plt-3.s
#as: --x32
-#ld: -shared -m elf32_x86_64 -z ibt
-#readelf: -n
+#ld: -shared -m elf32_x86_64 -z ibt --hash-style=sysv
+#readelf: -wf -n
+
+Contents of the .eh_frame section:
+
+0+ 00000014 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 1
+ Data alignment factor: -8
+ Return address column: 16
+ Augmentation data: 1b
+
+ DW_CFA_def_cfa: r7 \(rsp\) ofs 8
+ DW_CFA_offset: r16 \(rip\) at cfa-8
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+18 00000014 0000001c FDE cie=00000000 pc=00000210..00000222
+ DW_CFA_advance_loc: 4 to 00000214
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 9 to 0000021d
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_nop
+
+0+30 00000020 00000034 FDE cie=00000000 pc=000001c0..000001f0
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 6 to 000001c6
+ DW_CFA_def_cfa_offset: 24
+ DW_CFA_advance_loc: 10 to 000001d0
+ DW_CFA_def_cfa_expression \(DW_OP_breg7 \(rsp\): 8; DW_OP_breg16 \(rip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit9; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus\)
+
+0+54 00000010 00000058 FDE cie=00000000 pc=000001f0..00000210
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
Displaying notes found in: .note.gnu.property
Owner Data size Description
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3d.d b/ld/testsuite/ld-x86-64/ibt-plt-3d.d
index 342626a..d5cade0 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-3d.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-3d.d
@@ -1,7 +1,46 @@
#source: ibt-plt-3.s
#as: --64 -defsym __64_bit__=1
-#ld: -shared -m elf_x86_64 -z ibt
-#readelf: -n
+#ld: -shared -m elf_x86_64 -z ibt --hash-style=sysv
+#readelf: -wf -n
+
+Contents of the .eh_frame section:
+
+0+ 0000000000000014 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 1
+ Data alignment factor: -8
+ Return address column: 16
+ Augmentation data: 1b
+
+ DW_CFA_def_cfa: r7 \(rsp\) ofs 8
+ DW_CFA_offset: r16 \(rip\) at cfa-8
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000002e0..00000000000002f2
+ DW_CFA_advance_loc: 4 to 00000000000002e4
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 9 to 00000000000002ed
+ DW_CFA_def_cfa_offset: 8
+ DW_CFA_nop
+
+0+30 0000000000000024 00000034 FDE cie=00000000 pc=0000000000000290..00000000000002c0
+ DW_CFA_def_cfa_offset: 16
+ DW_CFA_advance_loc: 6 to 0000000000000296
+ DW_CFA_def_cfa_offset: 24
+ DW_CFA_advance_loc: 10 to 00000000000002a0
+ DW_CFA_def_cfa_expression \(DW_OP_breg7 \(rsp\): 8; DW_OP_breg16 \(rip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit10; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus\)
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+58 0000000000000010 0000005c FDE cie=00000000 pc=00000000000002c0..00000000000002e0
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
Displaying notes found in: .note.gnu.property
Owner Data size Description
diff --git a/ld/testsuite/ld-x86-64/ilp32-11.d b/ld/testsuite/ld-x86-64/ilp32-11.d
index f6fc86c..bc6c8a8 100644
--- a/ld/testsuite/ld-x86-64/ilp32-11.d
+++ b/ld/testsuite/ld-x86-64/ilp32-11.d
@@ -1,3 +1,3 @@
#as: --x32
#ld: -shared -melf32_x86_64
-#error: .*addend 0x7fffffff in relocation R_X86_64_64 against symbol `func' at 0x0 in section `.data.rel.local' is out of range
+#error: .*addend 0x7fffffff in relocation R_X86_64_64 against symbol `func' at 0 in section `.data.rel.local' is out of range
diff --git a/ld/testsuite/ld-x86-64/ilp32-4-nacl.d b/ld/testsuite/ld-x86-64/ilp32-4-nacl.d
index f560ae3..92c1f9c 100644
--- a/ld/testsuite/ld-x86-64/ilp32-4-nacl.d
+++ b/ld/testsuite/ld-x86-64/ilp32-4-nacl.d
@@ -1,6 +1,6 @@
#source: ilp32-4.s
#as: --x32
-#ld: -m elf32_x86_64_nacl -shared --no-ld-generated-unwind-info
+#ld: -m elf32_x86_64_nacl -shared --no-ld-generated-unwind-info --hash-style=sysv
#readelf: -d -S --wide
#target: x86_64-*-nacl*
diff --git a/ld/testsuite/ld-x86-64/ilp32-4.d b/ld/testsuite/ld-x86-64/ilp32-4.d
index 658ad49..00d54c4 100644
--- a/ld/testsuite/ld-x86-64/ilp32-4.d
+++ b/ld/testsuite/ld-x86-64/ilp32-4.d
@@ -1,5 +1,5 @@
#as: --x32
-#ld: -m elf32_x86_64 -shared --no-ld-generated-unwind-info
+#ld: -m elf32_x86_64 -shared --no-ld-generated-unwind-info --hash-style=sysv
#readelf: -d -S --wide
#target: x86_64-*-linux*
diff --git a/ld/testsuite/ld-x86-64/load1c-nacl.d b/ld/testsuite/ld-x86-64/load1c-nacl.d
index 57bc2c2..1ce80b4 100644
--- a/ld/testsuite/ld-x86-64/load1c-nacl.d
+++ b/ld/testsuite/ld-x86-64/load1c-nacl.d
@@ -1,6 +1,6 @@
#source: load1.s
#as: --64
-#ld: -shared -melf_x86_64
+#ld: -shared -melf_x86_64 --hash-style=sysv
#objdump: -dw
#target: x86_64-*-nacl*
diff --git a/ld/testsuite/ld-x86-64/load1c.d b/ld/testsuite/ld-x86-64/load1c.d
index a4f7d8a..65f7eed 100644
--- a/ld/testsuite/ld-x86-64/load1c.d
+++ b/ld/testsuite/ld-x86-64/load1c.d
@@ -1,6 +1,6 @@
#source: load1.s
#as: --64
-#ld: -shared -melf_x86_64
+#ld: -shared -melf_x86_64 --hash-style=sysv
#objdump: -dw
#notarget: x86_64-*-nacl*
diff --git a/ld/testsuite/ld-x86-64/load1d-nacl.d b/ld/testsuite/ld-x86-64/load1d-nacl.d
index b741917..19fea1a 100644
--- a/ld/testsuite/ld-x86-64/load1d-nacl.d
+++ b/ld/testsuite/ld-x86-64/load1d-nacl.d
@@ -1,6 +1,6 @@
#source: load1.s
#as: --x32
-#ld: -shared -melf32_x86_64
+#ld: -shared -melf32_x86_64 --hash-style=sysv
#objdump: -dw
#target: x86_64-*-nacl*
diff --git a/ld/testsuite/ld-x86-64/load1d.d b/ld/testsuite/ld-x86-64/load1d.d
index ee1e3f0..2620c02 100644
--- a/ld/testsuite/ld-x86-64/load1d.d
+++ b/ld/testsuite/ld-x86-64/load1d.d
@@ -1,6 +1,6 @@
#source: load1.s
#as: --x32
-#ld: -shared -melf32_x86_64
+#ld: -shared -melf32_x86_64 --hash-style=sysv
#objdump: -dw
#notarget: x86_64-*-nacl*
diff --git a/ld/testsuite/ld-x86-64/mpx.exp b/ld/testsuite/ld-x86-64/mpx.exp
index 1ba08e0..e3c0b5e 100644
--- a/ld/testsuite/ld-x86-64/mpx.exp
+++ b/ld/testsuite/ld-x86-64/mpx.exp
@@ -107,23 +107,23 @@ set run_tests {
run_ld_link_tests {
{"Build libcall.so"
- "-m elf_x86_64 -shared -z bndplt" "" "--64"
- {mpx3b.s} {} "libcall.so"}
+ "-m elf_x86_64 -shared -z bndplt" ""
+ "--64" {mpx3b.s} {} "libcall.so"}
{"Build mpx3"
- "-m elf_x86_64 -z bndplt tmpdir/libcall.so" "" "--64"
- {mpx3a.s} {{objdump -dw mpx3.dd}} "mpx3"}
+ "-m elf_x86_64 -z bndplt tmpdir/libcall.so" ""
+ "--64" {mpx3a.s} {{objdump -dw mpx3.dd}} "mpx3"}
{"Build libcall1.so"
- "-m elf_x86_64 -shared -z bndplt" "" "--64"
- {mpx4b.s} {} "libcall1.so"}
+ "-m elf_x86_64 -shared -z bndplt" ""
+ "--64" {mpx4b.s} {} "libcall1.so"}
{"Build mpx4"
- "-m elf_x86_64 -z bndplt tmpdir/libcall1.so" "" "--64"
- {mpx4a.s} {{objdump -dw mpx4.dd}} "mpx4"}
+ "-m elf_x86_64 -z bndplt --hash-style=sysv tmpdir/libcall1.so" ""
+ "--64" {mpx4a.s} {{objdump -dw mpx4.dd}} "mpx4"}
{"Build mpx3 (-z now)"
- "-z now -m elf_x86_64 -z bndplt tmpdir/libcall.so" "" "--64"
- {mpx3a.s} {{objdump -dw mpx3n.dd}} "mpx3n"}
+ "-z now -m elf_x86_64 -z bndplt --hash-style=sysv tmpdir/libcall.so" ""
+ "--64" {mpx3a.s} {{objdump -dw mpx3n.dd}} "mpx3n"}
{"Build mpx4 (-z now)"
- "-z now -m elf_x86_64 -z bndplt tmpdir/libcall1.so" "" "--64"
- {mpx4a.s} {{objdump -dw mpx4n.dd}} "mpx4n"}
+ "-z now -m elf_x86_64 -z bndplt --hash-style=sysv tmpdir/libcall1.so" ""
+ "--64" {mpx4a.s} {{objdump -dw mpx4n.dd}} "mpx4n"}
}
run_ld_link_exec_tests $run_tests
diff --git a/ld/testsuite/ld-x86-64/pie2.d b/ld/testsuite/ld-x86-64/pie2.d
index ef9f58a..9532141 100644
--- a/ld/testsuite/ld-x86-64/pie2.d
+++ b/ld/testsuite/ld-x86-64/pie2.d
@@ -1,3 +1,3 @@
#as: --64
#ld: -pie -melf_x86_64
-#error: .*relocation R_X86_64_32 against symbol `foo' can not be used when making a shared object; recompile with -fPIC
+#error: .*relocation R_X86_64_32 against symbol `foo' can not be used when making a PIE object; recompile with -fPIC
diff --git a/ld/testsuite/ld-x86-64/pie3-nacl.d b/ld/testsuite/ld-x86-64/pie3-nacl.d
new file mode 100644
index 0000000..efb74ed
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pie3-nacl.d
@@ -0,0 +1,14 @@
+#source: pie3.s
+#as: --64
+#ld: -pie -melf_x86_64 --hash-style=sysv
+#objdump: -dw
+#target: x86_64-*-nacl*
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+ +0: 48 8d 05 f9 ff ff ff lea -0x7\(%rip\),%rax # 0 <_start>
+#pass
diff --git a/ld/testsuite/ld-x86-64/pie3.d b/ld/testsuite/ld-x86-64/pie3.d
new file mode 100644
index 0000000..7bc1ccb
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pie3.d
@@ -0,0 +1,13 @@
+#as: --64
+#ld: -pie -melf_x86_64 --hash-style=sysv
+#objdump: -dw
+#notarget: x86_64-*-nacl*
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+191 <_start>:
+ +191: 48 8d 05 68 fe ff ff lea -0x198\(%rip\),%rax # 0 <_start-0x191>
+#pass
diff --git a/ld/testsuite/ld-x86-64/pie3.s b/ld/testsuite/ld-x86-64/pie3.s
new file mode 100644
index 0000000..72914d9
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pie3.s
@@ -0,0 +1,5 @@
+ .text
+ .global _start
+ .weak foo
+_start:
+ leaq foo(%rip), %rax
diff --git a/ld/testsuite/ld-x86-64/plt-main-bnd.dd b/ld/testsuite/ld-x86-64/plt-main-bnd.dd
index 9e03dfd..c5ef1b3 100644
--- a/ld/testsuite/ld-x86-64/plt-main-bnd.dd
+++ b/ld/testsuite/ld-x86-64/plt-main-bnd.dd
@@ -1,7 +1,7 @@
#...
Disassembly of section .plt.got:
-[a-f0-9]+ <[a-z]+@plt>:
+[a-f0-9]+ <[a-z_]+@plt>:
[ ]*[a-f0-9]+: f2 ff 25 .. .. 20 00 bnd jmpq \*0x20....\(%rip\) # ...... <.*>
[ ]*[a-f0-9]+: 90 nop
#pass
diff --git a/ld/testsuite/ld-x86-64/pr14207.d b/ld/testsuite/ld-x86-64/pr14207.d
index f6558e7..b71d705 100644
--- a/ld/testsuite/ld-x86-64/pr14207.d
+++ b/ld/testsuite/ld-x86-64/pr14207.d
@@ -1,6 +1,6 @@
#name: PR ld/14207
#as: --64
-#ld: -melf_x86_64 -shared -z relro -z now
+#ld: -melf_x86_64 -shared -z relro -z now --hash-style=sysv
#readelf: -l --wide
#target: x86_64-*-linux*
diff --git a/ld/testsuite/ld-x86-64/pr17618.d b/ld/testsuite/ld-x86-64/pr17618.d
index b090aa0..e640b40 100644
--- a/ld/testsuite/ld-x86-64/pr17618.d
+++ b/ld/testsuite/ld-x86-64/pr17618.d
@@ -1,5 +1,4 @@
#name: PLT PC-relative offset overflow check
#as: --64
#ld: -shared -melf_x86_64
-#notarget: x86_64-*-linux*-gnux32
#error: .*PC-relative offset overflow in PLT entry for `bar'
diff --git a/ld/testsuite/ld-x86-64/pr19162.d b/ld/testsuite/ld-x86-64/pr19162.d
index 42cd6c3..6916a51 100644
--- a/ld/testsuite/ld-x86-64/pr19162.d
+++ b/ld/testsuite/ld-x86-64/pr19162.d
@@ -1,7 +1,7 @@
#source: pr19162a.s
#source: pr19162b.s
#as: --64
-#ld: -melf_x86_64 -shared -z max-page-size=0x200000 -z common-page-size=0x1000
+#ld: -melf_x86_64 -shared -z max-page-size=0x200000 -z common-page-size=0x1000 --hash-style=sysv
#readelf: -l --wide
#target: x86_64-*-linux*
diff --git a/ld/testsuite/ld-x86-64/pr19609-2a.d b/ld/testsuite/ld-x86-64/pr19609-2a.d
index e2c6c89..2bed641 100644
--- a/ld/testsuite/ld-x86-64/pr19609-2a.d
+++ b/ld/testsuite/ld-x86-64/pr19609-2a.d
@@ -1,4 +1,4 @@
#source: pr19609-2.s
#as: --64 -mrelax-relocations=yes
#ld: -melf_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000
-#error: .*relocation truncated to fit: R_X86_64_32S .*
+#error: failed to convert GOTPCREL relocation; relink with --no-relax
diff --git a/ld/testsuite/ld-x86-64/pr19609-2b.d b/ld/testsuite/ld-x86-64/pr19609-2b.d
index ead4987..3741ebb 100644
--- a/ld/testsuite/ld-x86-64/pr19609-2b.d
+++ b/ld/testsuite/ld-x86-64/pr19609-2b.d
@@ -1,4 +1,4 @@
#source: pr19609-2.s
#as: --x32 -mrelax-relocations=yes
#ld: -melf32_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000
-#error: .*relocation truncated to fit: R_X86_64_32S .*
+#error: failed to convert GOTPCREL relocation; relink with --no-relax
diff --git a/ld/testsuite/ld-x86-64/pr19609-4a.d b/ld/testsuite/ld-x86-64/pr19609-4a.d
index ce952ed..f08843c 100644
--- a/ld/testsuite/ld-x86-64/pr19609-4a.d
+++ b/ld/testsuite/ld-x86-64/pr19609-4a.d
@@ -1,5 +1,4 @@
#source: pr19609-4.s
#as: --64 -mrelax-relocations=yes
#ld: -melf_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000
-#error: .*relocation truncated to fit: R_X86_64_32S .*
-#error: .*relocation truncated to fit: R_X86_64_32S .*
+#error: failed to convert GOTPCREL relocation; relink with --no-relax
diff --git a/ld/testsuite/ld-x86-64/pr19609-4c.d b/ld/testsuite/ld-x86-64/pr19609-4c.d
index ce952ed..f08843c 100644
--- a/ld/testsuite/ld-x86-64/pr19609-4c.d
+++ b/ld/testsuite/ld-x86-64/pr19609-4c.d
@@ -1,5 +1,4 @@
#source: pr19609-4.s
#as: --64 -mrelax-relocations=yes
#ld: -melf_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000
-#error: .*relocation truncated to fit: R_X86_64_32S .*
-#error: .*relocation truncated to fit: R_X86_64_32S .*
+#error: failed to convert GOTPCREL relocation; relink with --no-relax
diff --git a/ld/testsuite/ld-x86-64/pr19609-4e.d b/ld/testsuite/ld-x86-64/pr19609-4e.d
index 527fe5d..f263494 100644
--- a/ld/testsuite/ld-x86-64/pr19609-4e.d
+++ b/ld/testsuite/ld-x86-64/pr19609-4e.d
@@ -9,5 +9,5 @@
Disassembly of section .text:
0+70000000 <_start>:
-[ ]*[a-f0-9]+: 48 8d 05 f9 ff ff 2f lea 0x2ffffff9\(%rip\),%rax # a0000000 <foo>
-[ ]*[a-f0-9]+: 4c 8d 1d f2 ff ff 2f lea 0x2ffffff2\(%rip\),%r11 # a0000000 <foo>
+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov [-]?0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.got>
+[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov [-]?0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <.got>
diff --git a/ld/testsuite/ld-x86-64/pr19609-5d.d b/ld/testsuite/ld-x86-64/pr19609-5d.d
index 959c63e..608c97b 100644
--- a/ld/testsuite/ld-x86-64/pr19609-5d.d
+++ b/ld/testsuite/ld-x86-64/pr19609-5d.d
@@ -1,4 +1,4 @@
#source: pr19609-5.s
#as: --64 -mrelax-relocations=yes
#ld: -melf_x86_64 -Ttext=0x80000000
-#error: .*relocation truncated to fit: R_X86_64_PC32 .*
+#error: failed to convert GOTPCREL relocation; relink with --no-relax
diff --git a/ld/testsuite/ld-x86-64/pr19609-6a.d b/ld/testsuite/ld-x86-64/pr19609-6a.d
index 4802ffe..3c011d9 100644
--- a/ld/testsuite/ld-x86-64/pr19609-6a.d
+++ b/ld/testsuite/ld-x86-64/pr19609-6a.d
@@ -1,4 +1,4 @@
#source: pr19609-6.s
#as: --64 -mrelax-relocations=yes
#ld: -melf_x86_64 --defsym foobar=0x80000000
-#error: .*relocation truncated to fit: R_X86_64_32S .*
+#error: failed to convert GOTPCREL relocation; relink with --no-relax
diff --git a/ld/testsuite/ld-x86-64/pr19609-7a.d b/ld/testsuite/ld-x86-64/pr19609-7a.d
index d960572..015a6ff 100644
--- a/ld/testsuite/ld-x86-64/pr19609-7a.d
+++ b/ld/testsuite/ld-x86-64/pr19609-7a.d
@@ -1,4 +1,4 @@
#source: pr19609-7.s
#as: --64 -mrelax-relocations=yes
#ld: -melf_x86_64 -Ttext=0x80000000
-#error: .*relocation truncated to fit: R_X86_64_PC32 .*
+#error: failed to convert GOTPCREL relocation; relink with --no-relax
diff --git a/ld/testsuite/ld-x86-64/pr19609-7c.d b/ld/testsuite/ld-x86-64/pr19609-7c.d
index 8bd919a..ff60049 100644
--- a/ld/testsuite/ld-x86-64/pr19609-7c.d
+++ b/ld/testsuite/ld-x86-64/pr19609-7c.d
@@ -1,4 +1,4 @@
#source: pr19609-7.s
#as: --x32 -mrelax-relocations=yes
#ld: -melf32_x86_64 -Ttext=0x80000000
-#error: .*relocation truncated to fit: R_X86_64_PC32 .*
+#error: failed to convert GOTPCREL relocation; relink with --no-relax
diff --git a/ld/testsuite/ld-x86-64/pr19636-2d-nacl.d b/ld/testsuite/ld-x86-64/pr19636-2d-nacl.d
index 1bdbd8c..f584bda 100644
--- a/ld/testsuite/ld-x86-64/pr19636-2d-nacl.d
+++ b/ld/testsuite/ld-x86-64/pr19636-2d-nacl.d
@@ -1,6 +1,6 @@
#source: pr19636-2.s
#as: --64 -mrelax-relocations=no
-#ld: -pie -m elf_x86_64 --no-dynamic-linker
+#ld: -pie -m elf_x86_64 --no-dynamic-linker --hash-style=sysv
#objdump: -dw
#target: x86_64-*-nacl*
diff --git a/ld/testsuite/ld-x86-64/pr19636-2d.d b/ld/testsuite/ld-x86-64/pr19636-2d.d
index 4f5c1f0..6f589ab 100644
--- a/ld/testsuite/ld-x86-64/pr19636-2d.d
+++ b/ld/testsuite/ld-x86-64/pr19636-2d.d
@@ -1,6 +1,6 @@
#source: pr19636-2.s
#as: --64 -mrelax-relocations=no
-#ld: -pie -m elf_x86_64 --no-dynamic-linker
+#ld: -pie -m elf_x86_64 --no-dynamic-linker --hash-style=sysv
#objdump: -dw
#notarget: x86_64-*-nacl*
diff --git a/ld/testsuite/ld-x86-64/pr19719.d b/ld/testsuite/ld-x86-64/pr19719.d
index b2daf0e..03cfc15 100644
--- a/ld/testsuite/ld-x86-64/pr19719.d
+++ b/ld/testsuite/ld-x86-64/pr19719.d
@@ -1,3 +1,3 @@
#as: --64
#ld: -pie -melf_x86_64
-#error: .*relocation R_X86_64_32 against undefined symbol `foo' can not be used when making a shared object; recompile with -fPIC
+#error: .*relocation R_X86_64_32 against undefined symbol `foo' can not be used when making a PIE object; recompile with -fPIC
diff --git a/ld/testsuite/ld-x86-64/pr19807-2a.d b/ld/testsuite/ld-x86-64/pr19807-2a.d
index 1357d72..c99852a 100644
--- a/ld/testsuite/ld-x86-64/pr19807-2a.d
+++ b/ld/testsuite/ld-x86-64/pr19807-2a.d
@@ -1,4 +1,4 @@
#source: pr19807-2.s
#as: --64
#ld: -pie -melf_x86_64
-#error: .*relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC
+#error: .*relocation R_X86_64_32 against `.data' can not be used when making a PIE object; recompile with -fPIC
diff --git a/ld/testsuite/ld-x86-64/pr19969.d b/ld/testsuite/ld-x86-64/pr19969.d
index c56af2f..1aea67c 100644
--- a/ld/testsuite/ld-x86-64/pr19969.d
+++ b/ld/testsuite/ld-x86-64/pr19969.d
@@ -1,4 +1,4 @@
#source: pr19969b.S
#as: --64
#ld: -melf_x86_64 tmpdir/pr19969.so
-#error: .*relocation R_X86_64_32 against symbol `foo' can not be used when making a shared object; recompile with -fPIC
+#error: .*relocation R_X86_64_32 against symbol `foo' can not be used when making a PDE object; recompile with -fPIC
diff --git a/ld/testsuite/ld-x86-64/pr20253-1d.d b/ld/testsuite/ld-x86-64/pr20253-1d.d
index 6953c79..158178d 100644
--- a/ld/testsuite/ld-x86-64/pr20253-1d.d
+++ b/ld/testsuite/ld-x86-64/pr20253-1d.d
@@ -1,6 +1,6 @@
#source: pr20253-1.s
#as: --64
-#ld: -pie -melf_x86_64
+#ld: -pie -melf_x86_64 --hash-style=sysv
#objdump: -dw
#notarget: x86_64-*-nacl*
diff --git a/ld/testsuite/ld-x86-64/pr20253-1f.d b/ld/testsuite/ld-x86-64/pr20253-1f.d
index 9319350..f1ffbab 100644
--- a/ld/testsuite/ld-x86-64/pr20253-1f.d
+++ b/ld/testsuite/ld-x86-64/pr20253-1f.d
@@ -1,6 +1,6 @@
#source: pr20253-1.s
#as: --64
-#ld: -shared -melf_x86_64
+#ld: -shared -melf_x86_64 --hash-style=sysv
#objdump: -dw
#notarget: x86_64-*-nacl*
diff --git a/ld/testsuite/ld-x86-64/pr20253-1j.d b/ld/testsuite/ld-x86-64/pr20253-1j.d
index 5662e0c..b22d26a 100644
--- a/ld/testsuite/ld-x86-64/pr20253-1j.d
+++ b/ld/testsuite/ld-x86-64/pr20253-1j.d
@@ -1,6 +1,6 @@
#source: pr20253-1.s
#as: --x32
-#ld: -pie -melf32_x86_64
+#ld: -pie -melf32_x86_64 --hash-style=sysv
#objdump: -dw
#notarget: x86_64-*-nacl*
diff --git a/ld/testsuite/ld-x86-64/pr20253-1l.d b/ld/testsuite/ld-x86-64/pr20253-1l.d
index 83a61db..cef309e 100644
--- a/ld/testsuite/ld-x86-64/pr20253-1l.d
+++ b/ld/testsuite/ld-x86-64/pr20253-1l.d
@@ -1,6 +1,6 @@
#source: pr20253-1.s
#as: --x32
-#ld: -shared -melf32_x86_64
+#ld: -shared -melf32_x86_64 --hash-style=sysv
#objdump: -dw
#notarget: x86_64-*-nacl*
diff --git a/ld/testsuite/ld-x86-64/pr20830a-now.d b/ld/testsuite/ld-x86-64/pr20830a-now.d
index fda0d50..d2e99ab 100644
--- a/ld/testsuite/ld-x86-64/pr20830a-now.d
+++ b/ld/testsuite/ld-x86-64/pr20830a-now.d
@@ -1,7 +1,7 @@
#name: PR ld/20830 (.plt.got, -z now)
#source: pr20830.s
#as: --64
-#ld: -z now -melf_x86_64 -shared -z relro --ld-generated-unwind-info
+#ld: -z now -melf_x86_64 -shared -z relro --ld-generated-unwind-info --hash-style=sysv
#objdump: -dw -Wf
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/pr20830a.d b/ld/testsuite/ld-x86-64/pr20830a.d
index 3122ba7..8ae6b71 100644
--- a/ld/testsuite/ld-x86-64/pr20830a.d
+++ b/ld/testsuite/ld-x86-64/pr20830a.d
@@ -1,7 +1,7 @@
#name: PR ld/20830 (.plt.got)
#source: pr20830.s
#as: --64
-#ld: -melf_x86_64 -shared -z relro --ld-generated-unwind-info
+#ld: -melf_x86_64 -shared -z relro --ld-generated-unwind-info --hash-style=sysv
#objdump: -dw -Wf
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/pr20830b-now.d b/ld/testsuite/ld-x86-64/pr20830b-now.d
index 69120e1..bd9abc4 100644
--- a/ld/testsuite/ld-x86-64/pr20830b-now.d
+++ b/ld/testsuite/ld-x86-64/pr20830b-now.d
@@ -1,7 +1,7 @@
#name: PR ld/20830 (.plt.got, -z now)
#source: pr20830.s
#as: --x32
-#ld: -z now -melf32_x86_64 -shared -z relro --ld-generated-unwind-info
+#ld: -z now -melf32_x86_64 -shared -z relro --ld-generated-unwind-info --hash-style=sysv
#objdump: -dw -Wf
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/pr20830b.d b/ld/testsuite/ld-x86-64/pr20830b.d
index 0bb79a3..83067e0 100644
--- a/ld/testsuite/ld-x86-64/pr20830b.d
+++ b/ld/testsuite/ld-x86-64/pr20830b.d
@@ -1,7 +1,7 @@
#name: PR ld/20830 (.plt.got)
#source: pr20830.s
#as: --x32
-#ld: -melf32_x86_64 -shared -z relro --ld-generated-unwind-info
+#ld: -melf32_x86_64 -shared -z relro --ld-generated-unwind-info --hash-style=sysv
#objdump: -dw -Wf
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/pr21038a-now.d b/ld/testsuite/ld-x86-64/pr21038a-now.d
index ebc5128..1d5bec1 100644
--- a/ld/testsuite/ld-x86-64/pr21038a-now.d
+++ b/ld/testsuite/ld-x86-64/pr21038a-now.d
@@ -1,7 +1,7 @@
#name: PR ld/21038 (.plt.got, -z now)
#source: pr21038a.s
#as: --64
-#ld: -z now -z bndplt -melf_x86_64 -shared -z relro --ld-generated-unwind-info
+#ld: -z now -z bndplt -melf_x86_64 -shared -z relro --ld-generated-unwind-info --hash-style=sysv
#objdump: -dw -Wf
.*: +file format .*
@@ -41,11 +41,7 @@ Contents of the .eh_frame section:
DW_CFA_nop
DW_CFA_nop
-0+58 0000000000000014 0000005c FDE cie=00000000 pc=0000000000000230..0000000000000238
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
+0+58 0000000000000010 0000005c FDE cie=00000000 pc=0000000000000230..0000000000000238
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
diff --git a/ld/testsuite/ld-x86-64/pr21038a.d b/ld/testsuite/ld-x86-64/pr21038a.d
index 81b26cb..01770ec 100644
--- a/ld/testsuite/ld-x86-64/pr21038a.d
+++ b/ld/testsuite/ld-x86-64/pr21038a.d
@@ -1,6 +1,6 @@
#name: PR ld/21038 (.plt.got)
#as: --64
-#ld: -z bndplt -melf_x86_64 -shared -z relro --ld-generated-unwind-info
+#ld: -z bndplt -melf_x86_64 -shared -z relro --ld-generated-unwind-info --hash-style=sysv
#objdump: -dw -Wf
.*: +file format .*
@@ -40,11 +40,7 @@ Contents of the .eh_frame section:
DW_CFA_nop
DW_CFA_nop
-0+58 0000000000000014 0000005c FDE cie=00000000 pc=0000000000000230..0000000000000238
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
+0+58 0000000000000010 0000005c FDE cie=00000000 pc=0000000000000230..0000000000000238
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
diff --git a/ld/testsuite/ld-x86-64/pr21038b-now.d b/ld/testsuite/ld-x86-64/pr21038b-now.d
index b9a8c4d..914b123 100644
--- a/ld/testsuite/ld-x86-64/pr21038b-now.d
+++ b/ld/testsuite/ld-x86-64/pr21038b-now.d
@@ -1,7 +1,7 @@
#name: PR ld/21038 (.plt.sec, -z now)
#source: pr21038b.s
#as: --64
-#ld: -z now -z bndplt -melf_x86_64 -shared -z relro --ld-generated-unwind-info
+#ld: -z now -z bndplt -melf_x86_64 -shared -z relro --ld-generated-unwind-info --hash-style=sysv
#objdump: -dw -Wf
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/pr21038b.d b/ld/testsuite/ld-x86-64/pr21038b.d
index 3457d4d..faeaf45 100644
--- a/ld/testsuite/ld-x86-64/pr21038b.d
+++ b/ld/testsuite/ld-x86-64/pr21038b.d
@@ -1,6 +1,6 @@
#name: PR ld/21038 (.plt.sec)
#as: --64
-#ld: -z bndplt -melf_x86_64 -shared -z relro --ld-generated-unwind-info
+#ld: -z bndplt -melf_x86_64 -shared -z relro --ld-generated-unwind-info --hash-style=sysv
#objdump: -dw -Wf
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/pr21038c-now.d b/ld/testsuite/ld-x86-64/pr21038c-now.d
index 4b6db6f..640e821 100644
--- a/ld/testsuite/ld-x86-64/pr21038c-now.d
+++ b/ld/testsuite/ld-x86-64/pr21038c-now.d
@@ -1,7 +1,7 @@
#name: PR ld/21038 (.plt.got and .plt.sec, -z now)
#source: pr21038c.s
#as: --64
-#ld: -z now -z bndplt -melf_x86_64 -shared -z relro --ld-generated-unwind-info
+#ld: -z now -z bndplt -melf_x86_64 -shared -z relro --ld-generated-unwind-info --hash-style=sysv
#objdump: -dw -Wf
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/pr21038c.d b/ld/testsuite/ld-x86-64/pr21038c.d
index eb6f207..4b0bd89 100644
--- a/ld/testsuite/ld-x86-64/pr21038c.d
+++ b/ld/testsuite/ld-x86-64/pr21038c.d
@@ -1,6 +1,6 @@
#name: PR ld/21038 (.plt.got and .plt.sec)
#as: --64
-#ld: -z bndplt -melf_x86_64 -shared -z relro --ld-generated-unwind-info
+#ld: -z bndplt -melf_x86_64 -shared -z relro --ld-generated-unwind-info --hash-style=sysv
#objdump: -dw -Wf
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/pr21884-nacl.d b/ld/testsuite/ld-x86-64/pr21884-nacl.d
new file mode 100644
index 0000000..8883505
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr21884-nacl.d
@@ -0,0 +1,10 @@
+#source: dummy.s
+#as: --64
+#ld: -m elf_x86_64 -T pr21884-nacl.t -b binary
+#objdump: -b binary -s
+#target: x86_64-*-nacl*
+
+.*: file format binary
+
+Contents of section .data:
+#pass
diff --git a/ld/testsuite/ld-x86-64/pr21884-nacl.t b/ld/testsuite/ld-x86-64/pr21884-nacl.t
new file mode 100644
index 0000000..722312e
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr21884-nacl.t
@@ -0,0 +1,11 @@
+OUTPUT_FORMAT("elf64-x86-64-nacl");
+OUTPUT_ARCH(i386:x86-64);
+
+ENTRY(_start);
+SECTIONS {
+ . = 0x10000;
+ _start = . ;
+ .data : {
+ *(.data)
+ }
+}
diff --git a/ld/testsuite/ld-x86-64/pr21884.d b/ld/testsuite/ld-x86-64/pr21884.d
new file mode 100644
index 0000000..7a2a3f3
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr21884.d
@@ -0,0 +1,10 @@
+#source: dummy.s
+#as: --64
+#ld: -m elf_x86_64 -T pr21884.t -b binary
+#objdump: -b binary -s
+#notarget: x86_64-*-nacl*
+
+.*: file format binary
+
+Contents of section .data:
+#pass
diff --git a/ld/testsuite/ld-x86-64/pr21884.t b/ld/testsuite/ld-x86-64/pr21884.t
new file mode 100644
index 0000000..edd2070
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr21884.t
@@ -0,0 +1,11 @@
+OUTPUT_FORMAT("elf64-x86-64");
+OUTPUT_ARCH(i386:x86-64);
+
+ENTRY(_start);
+SECTIONS {
+ . = 0x10000;
+ _start = . ;
+ .data : {
+ *(.data)
+ }
+}
diff --git a/ld/testsuite/ld-x86-64/pr21997-1a.S b/ld/testsuite/ld-x86-64/pr21997-1a.S
new file mode 100644
index 0000000..cab99a9
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr21997-1a.S
@@ -0,0 +1,24 @@
+ .text
+ .p2align 4,,15
+ .globl get_protected
+ .type get_protected, @function
+get_protected:
+ movl protected(%rip), %eax
+ ret
+ .size get_protected, .-get_protected
+ .p2align 4,,15
+ .globl get_protected_p
+ .type get_protected_p, @function
+get_protected_p:
+ leaq protected(%rip), %rax
+ ret
+ .size get_protected_p, .-get_protected_p
+ .protected protected
+ .globl protected
+ .data
+ .align 4
+ .type protected, @object
+ .size protected, 4
+protected:
+ .long 1
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/pr21997-1a.err b/ld/testsuite/ld-x86-64/pr21997-1a.err
new file mode 100644
index 0000000..5d663a3
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr21997-1a.err
@@ -0,0 +1,2 @@
+.*relocation R_X86_64_PC32 against protected symbol `protected' can not be used when making a P(D|I)E object; recompile with -fPIC
+#...
diff --git a/ld/testsuite/ld-x86-64/pr21997-1b.c b/ld/testsuite/ld-x86-64/pr21997-1b.c
new file mode 100644
index 0000000..ffed117
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr21997-1b.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+
+extern int protected;
+extern int get_protected (void);
+
+int
+main ()
+{
+ if (protected == get_protected ())
+ printf ("PASS\n");
+
+ return 0;
+}
diff --git a/ld/testsuite/ld-x86-64/pr21997-1b.err b/ld/testsuite/ld-x86-64/pr21997-1b.err
new file mode 100644
index 0000000..365de67
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr21997-1b.err
@@ -0,0 +1,2 @@
+.*relocation R_X86_64_32S against protected symbol `protected' can not be used when making a P(D|I)E object; recompile with -fPIC
+#...
diff --git a/ld/testsuite/ld-x86-64/pr21997-1c.c b/ld/testsuite/ld-x86-64/pr21997-1c.c
new file mode 100644
index 0000000..6d7b9dc
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr21997-1c.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+
+extern int protected;
+extern int* get_protected_p (void);
+
+int
+main ()
+{
+ if (&protected == get_protected_p ())
+ printf ("PASS\n");
+
+ return 0;
+}
diff --git a/ld/testsuite/ld-x86-64/pr22001-1a.c b/ld/testsuite/ld-x86-64/pr22001-1a.c
new file mode 100644
index 0000000..2b55ea8
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22001-1a.c
@@ -0,0 +1,13 @@
+int copy = 1;
+
+int
+get_copy ()
+{
+ return copy;
+}
+
+int *
+get_copy_p ()
+{
+ return &copy;
+}
diff --git a/ld/testsuite/ld-x86-64/pr22001-1a.err b/ld/testsuite/ld-x86-64/pr22001-1a.err
new file mode 100644
index 0000000..640aa07
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22001-1a.err
@@ -0,0 +1,2 @@
+.*relocation R_X86_64_PC32 against symbol `copy' can not be used when making a P(D|I)E object; recompile with -fPIC
+#...
diff --git a/ld/testsuite/ld-x86-64/pr22001-1b.c b/ld/testsuite/ld-x86-64/pr22001-1b.c
new file mode 100644
index 0000000..a172236
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22001-1b.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+
+extern int copy;
+extern int get_copy (void);
+
+int
+main ()
+{
+ if (copy == get_copy ())
+ printf ("PASS\n");
+
+ return 0;
+}
diff --git a/ld/testsuite/ld-x86-64/pr22001-1b.err b/ld/testsuite/ld-x86-64/pr22001-1b.err
new file mode 100644
index 0000000..9617e73
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22001-1b.err
@@ -0,0 +1,2 @@
+.*relocation R_X86_64_32S against symbol `copy' can not be used when making a P(D|I)E object; recompile with -fPIC
+#...
diff --git a/ld/testsuite/ld-x86-64/pr22001-1c.c b/ld/testsuite/ld-x86-64/pr22001-1c.c
new file mode 100644
index 0000000..8fd925c
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22001-1c.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+extern int copy;
+extern int* get_copy_p (void);
+
+int main()
+{
+ if (&copy == get_copy_p ())
+ printf ("PASS\n");
+
+ return 0;
+}
diff --git a/ld/testsuite/ld-x86-64/pr22048.d b/ld/testsuite/ld-x86-64/pr22048.d
new file mode 100644
index 0000000..063d305
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22048.d
@@ -0,0 +1,25 @@
+#source: pr22048a.s
+#source: pr22048b.s
+#as: --64
+#ld: -melf_x86_64 -Ttext 0x400078
+#readelf: -wf
+
+Contents of the .eh_frame section:
+
+0+0000 0+014 0+0000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 1
+ Data alignment factor: -8
+ Return address column: 16
+ Augmentation data: 1b
+
+ DW_CFA_def_cfa: r7 \(rsp\) ofs 8
+ DW_CFA_offset: r16 \(rip\) at cfa-8
+ DW_CFA_nop
+ DW_CFA_nop
+
+0+0018 0+0010 0+001c FDE cie=0+0000 pc=0+400078\.\.0+40007a
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
diff --git a/ld/testsuite/ld-x86-64/pr22048a.s b/ld/testsuite/ld-x86-64/pr22048a.s
new file mode 100644
index 0000000..060bd01
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22048a.s
@@ -0,0 +1,4 @@
+ .section .eh_frame,"a",@progbits
+ .align 4
+ .zero 4
+ .ident "GCC"
diff --git a/ld/testsuite/ld-x86-64/pr22048b.s b/ld/testsuite/ld-x86-64/pr22048b.s
new file mode 100644
index 0000000..eae6752
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22048b.s
@@ -0,0 +1,8 @@
+ .text
+ .globl _start
+ .type _start, @function
+_start:
+ .cfi_startproc
+ rep ret
+ .cfi_endproc
+ .size _start, .-_start
diff --git a/ld/testsuite/ld-x86-64/pr22064a.S b/ld/testsuite/ld-x86-64/pr22064a.S
new file mode 100644
index 0000000..8065a11
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22064a.S
@@ -0,0 +1,33 @@
+ .section .rodata.str1.1,"aMS",@progbits,1
+.LC0:
+ .string "PASS"
+ .text
+ .globl main
+ .type main, @function
+main:
+ movq foo@GOTPCREL(%rip), %rax
+ cmpl $0, (%rax)
+ jne .L4
+ subq $8, %rsp
+ call foo_p@PLT
+ cmpq foo@GOTPCREL(%rip), %rax
+ jne .L2
+ movq bar@GOTPCREL(%rip), %rax
+ cmpl $-1, (%rax)
+ jne .L2
+ call bar_p@PLT
+ cmpq bar@GOTPCREL(%rip), %rax
+ jne .L2
+ leaq .LC0(%rip), %rdi
+ call puts@PLT
+.L2:
+ movl $0, %eax
+ addq $8, %rsp
+ ret
+.L4:
+ movl $0, %eax
+ ret
+ .size main, .-main
+ .comm bar,8,4
+ .comm foo,4,4
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/pr22064b.c b/ld/testsuite/ld-x86-64/pr22064b.c
new file mode 100644
index 0000000..d906545
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22064b.c
@@ -0,0 +1,14 @@
+int foo[2];
+int bar[2] = { -1, -1 };
+
+int *
+foo_p (void)
+{
+ return foo;
+}
+
+int *
+bar_p (void)
+{
+ return bar;
+}
diff --git a/ld/testsuite/ld-x86-64/pr22071.d b/ld/testsuite/ld-x86-64/pr22071.d
new file mode 100644
index 0000000..741a722
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22071.d
@@ -0,0 +1,8 @@
+#as: --64
+#ld: -melf_x86_64 -shared
+#readelf: -d --wide
+
+#...
+.*\(TLSDESC_PLT\).*
+.*\(TLSDESC_GOT\).*
+#pass
diff --git a/ld/testsuite/ld-x86-64/pr22071.s b/ld/testsuite/ld-x86-64/pr22071.s
new file mode 100644
index 0000000..0e0b4e0
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22071.s
@@ -0,0 +1,78 @@
+ .text
+ .p2align 4,,15
+ .globl get_ld
+ .type get_ld, @function
+get_ld:
+ subq $8, %rsp
+ leaq _TLS_MODULE_BASE_@TLSDESC(%rip), %rax
+ call *_TLS_MODULE_BASE_@TLSCALL(%rax)
+ addq $8, %rsp
+ addq $ld@dtpoff, %rax
+ addq %fs:0, %rax
+ ret
+ .size get_ld, .-get_ld
+ .p2align 4,,15
+ .globl set_ld
+ .type set_ld, @function
+set_ld:
+ subq $8, %rsp
+ leaq _TLS_MODULE_BASE_@TLSDESC(%rip), %rax
+ call *_TLS_MODULE_BASE_@TLSCALL(%rax)
+ movl %edi, %fs:ld@dtpoff(%rax)
+ addq $8, %rsp
+ ret
+ .size set_ld, .-set_ld
+ .p2align 4,,15
+ .globl test_ld
+ .type test_ld, @function
+test_ld:
+ subq $8, %rsp
+ leaq _TLS_MODULE_BASE_@TLSDESC(%rip), %rax
+ call *_TLS_MODULE_BASE_@TLSCALL(%rax)
+ cmpl %edi, %fs:ld@dtpoff(%rax)
+ sete %al
+ addq $8, %rsp
+ movzbl %al, %eax
+ ret
+ .size test_ld, .-test_ld
+ .p2align 4,,15
+ .globl get_gd
+ .type get_gd, @function
+get_gd:
+ subq $8, %rsp
+ leaq gd@TLSDESC(%rip), %rax
+ call *gd@TLSCALL(%rax)
+ addq $8, %rsp
+ addq %fs:0, %rax
+ ret
+ .size get_gd, .-get_gd
+ .p2align 4,,15
+ .globl set_gd
+ .type set_gd, @function
+set_gd:
+ subq $8, %rsp
+ leaq gd@TLSDESC(%rip), %rax
+ call *gd@TLSCALL(%rax)
+ movl %edi, %fs:(%rax)
+ addq $8, %rsp
+ ret
+ .size set_gd, .-set_gd
+ .p2align 4,,15
+ .globl test_gd
+ .type test_gd, @function
+test_gd:
+ subq $8, %rsp
+ leaq gd@TLSDESC(%rip), %rax
+ call *gd@TLSCALL(%rax)
+ cmpl %edi, %fs:(%rax)
+ sete %al
+ addq $8, %rsp
+ movzbl %al, %eax
+ ret
+ .size test_gd, .-test_gd
+ .section .tbss,"awT",@nobits
+ .align 4
+ .type ld, @object
+ .size ld, 4
+ld:
+ .zero 4
diff --git a/ld/testsuite/ld-x86-64/pr22115-1.s b/ld/testsuite/ld-x86-64/pr22115-1.s
new file mode 100644
index 0000000..8c01e50
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22115-1.s
@@ -0,0 +1,7 @@
+ .text
+ .globl _start
+ .type _start, @function
+_start:
+ movq __ehdr_start@GOTPCREL(%rip), %rax
+ .size _start, .-_start
+ .weak __ehdr_start
diff --git a/ld/testsuite/ld-x86-64/pr22115-1a-x32.d b/ld/testsuite/ld-x86-64/pr22115-1a-x32.d
new file mode 100644
index 0000000..8232589
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22115-1a-x32.d
@@ -0,0 +1,13 @@
+#source: pr22115-1.s
+#as: --x32 -mrelax-relocations=yes
+#ld: -pie -z text -m elf32_x86_64
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+ +[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea -?0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__ehdr_start>
+#pass
diff --git a/ld/testsuite/ld-x86-64/pr22115-1a.d b/ld/testsuite/ld-x86-64/pr22115-1a.d
new file mode 100644
index 0000000..43dc787
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22115-1a.d
@@ -0,0 +1,13 @@
+#source: pr22115-1.s
+#as: --64 -mrelax-relocations=yes
+#ld: -pie -z text -m elf_x86_64
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+ +[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea -?0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__ehdr_start>
+#pass
diff --git a/ld/testsuite/ld-x86-64/pr22115-1b-x32.d b/ld/testsuite/ld-x86-64/pr22115-1b-x32.d
new file mode 100644
index 0000000..949dc5f
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22115-1b-x32.d
@@ -0,0 +1,6 @@
+#source: pr22115-1.s
+#as: --x32 -mrelax-relocations=yes
+#ld: -pie -z text -m elf32_x86_64
+#readelf: -r
+
+There are no relocations in this file.
diff --git a/ld/testsuite/ld-x86-64/pr22115-1b.d b/ld/testsuite/ld-x86-64/pr22115-1b.d
new file mode 100644
index 0000000..f1aaf72
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22115-1b.d
@@ -0,0 +1,6 @@
+#source: pr22115-1.s
+#as: --64 -mrelax-relocations=yes
+#ld: -pie -z text -m elf_x86_64
+#readelf: -r
+
+There are no relocations in this file.
diff --git a/ld/testsuite/ld-x86-64/pr22115-1c-x32.d b/ld/testsuite/ld-x86-64/pr22115-1c-x32.d
new file mode 100644
index 0000000..384f8f4
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22115-1c-x32.d
@@ -0,0 +1,13 @@
+#source: pr22115-1.s
+#as: --x32 -mrelax-relocations=yes
+#ld: -pie -z text -m elf32_x86_64 --no-dynamic-linker
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+ +[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea -?0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__ehdr_start>
+#pass
diff --git a/ld/testsuite/ld-x86-64/pr22115-1c.d b/ld/testsuite/ld-x86-64/pr22115-1c.d
new file mode 100644
index 0000000..ac147f8
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22115-1c.d
@@ -0,0 +1,13 @@
+#source: pr22115-1.s
+#as: --64 -mrelax-relocations=yes
+#ld: -pie -z text -m elf_x86_64 --no-dynamic-linker
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+ +[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea -?0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__ehdr_start>
+#pass
diff --git a/ld/testsuite/ld-x86-64/pr22115-1d-x32.d b/ld/testsuite/ld-x86-64/pr22115-1d-x32.d
new file mode 100644
index 0000000..755c827
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22115-1d-x32.d
@@ -0,0 +1,6 @@
+#source: pr22115-1.s
+#as: --x32 -mrelax-relocations=yes
+#ld: -pie -z text -m elf32_x86_64 --no-dynamic-linker
+#readelf: -r
+
+There are no relocations in this file.
diff --git a/ld/testsuite/ld-x86-64/pr22115-1d.d b/ld/testsuite/ld-x86-64/pr22115-1d.d
new file mode 100644
index 0000000..2cb1c65
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22115-1d.d
@@ -0,0 +1,6 @@
+#source: pr22115-1.s
+#as: --64 -mrelax-relocations=yes
+#ld: -pie -z text -m elf_x86_64 --no-dynamic-linker
+#readelf: -r
+
+There are no relocations in this file.
diff --git a/ld/testsuite/ld-x86-64/pr22135.d b/ld/testsuite/ld-x86-64/pr22135.d
new file mode 100644
index 0000000..2cd6861
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22135.d
@@ -0,0 +1,12 @@
+#as: --64
+#ld: -pie -melf_x86_64 --no-keep-memory
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+#...
+[ ]*[a-f0-9]+: 8d 05 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%eax # [a-f0-9]+ <foo>
+#pass
diff --git a/ld/testsuite/ld-x86-64/pr22135.s b/ld/testsuite/ld-x86-64/pr22135.s
new file mode 100644
index 0000000..f4dff5c
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr22135.s
@@ -0,0 +1,11 @@
+ .text
+ .globl foo
+ .type foo, @function
+foo:
+ ret
+ .size foo, .-foo
+ .globl _start
+ .type _start, @function
+_start:
+ movl foo@GOTPCREL(%rip), %eax
+ .size _start, .-_start
diff --git a/ld/testsuite/ld-x86-64/protected8.d b/ld/testsuite/ld-x86-64/protected8.d
new file mode 100644
index 0000000..22a36ac
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/protected8.d
@@ -0,0 +1,13 @@
+#as: --64
+#ld: -shared -melf_x86_64
+#objdump: -drw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+[a-f0-9]+ <bar>:
+[ ]*[a-f0-9]+: 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%eax # [a-f0-9]+ <foo>
+[ ]*[a-f0-9]+: c3 retq *
+#pass
diff --git a/ld/testsuite/ld-x86-64/protected8.s b/ld/testsuite/ld-x86-64/protected8.s
new file mode 100644
index 0000000..314433d
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/protected8.s
@@ -0,0 +1,31 @@
+ .protected foo
+.globl foo
+ .data
+ .align 4
+ .type foo, @object
+ .size foo, 4
+foo:
+ .long 1
+ .text
+.globl bar
+ .type bar, @function
+bar:
+ movl foo(%rip), %eax
+ ret
+ .size bar, .-bar
+
+ .section ".note.gnu.property", "a"
+ .p2align 3
+ .long 1f - 0f /* name length. */
+ .long 3f - 2f /* data length. */
+ /* NT_GNU_PROPERTY_TYPE_0 */
+ .long 5 /* note type. */
+0: .asciz "GNU" /* vendor name. */
+1:
+ .p2align 3
+2:
+ /* GNU_PROPERTY_NO_COPY_ON_PROTECTED */
+ .long 2 /* pr_type. */
+ .long 0 /* pr_datasz. */
+ .p2align 3
+3:
diff --git a/ld/testsuite/ld-x86-64/tls.exp b/ld/testsuite/ld-x86-64/tls.exp
index 4263d95..7896451 100644
--- a/ld/testsuite/ld-x86-64/tls.exp
+++ b/ld/testsuite/ld-x86-64/tls.exp
@@ -206,17 +206,31 @@ if { ![check_gnu2_tls_available] } {
return
}
+if { [at_least_gcc_version 5 0] } {
+ run_ld_link_exec_tests [list \
+ [list \
+ "Run tlsdesc1" \
+ "-Wl,--no-as-needed tmpdir/libtlsdesc1.so" \
+ "" \
+ { tlsdesc1a.c } \
+ "tlsdesc1a" \
+ "pass.out" \
+ "$GNU2_CFLAGS" \
+ ] \
+ [list \
+ "Run tlsdesc1 with PIE" \
+ "-pie -Wl,--no-as-needed tmpdir/libtlsdesc1.so" \
+ "" \
+ { tlsdesc1a.c } \
+ "tlsdesc1c" \
+ "pass.out" \
+ "-fPIE $GNU2_CFLAGS" \
+ ] \
+ ]
+}
+
run_ld_link_exec_tests [list \
[list \
- "Run tlsdesc1" \
- "-Wl,--no-as-needed tmpdir/libtlsdesc1.so" \
- "" \
- { tlsdesc1a.c } \
- "tlsdesc1a" \
- "pass.out" \
- "$GNU2_CFLAGS" \
- ] \
- [list \
"Run tlsdesc1 (-z now)" \
"-Wl,-z,now -Wl,--no-as-needed tmpdir/libtlsdesc1n.so" \
"" \
@@ -226,15 +240,6 @@ run_ld_link_exec_tests [list \
"$GNU2_CFLAGS" \
] \
[list \
- "Run tlsdesc1 with PIE" \
- "-pie -Wl,--no-as-needed tmpdir/libtlsdesc1.so" \
- "" \
- { tlsdesc1a.c } \
- "tlsdesc1c" \
- "pass.out" \
- "-fPIE $GNU2_CFLAGS" \
- ] \
- [list \
"Run tlsdesc1 with PIE (-z now)" \
"-pie -Wl,-z,now -Wl,--no-as-needed tmpdir/libtlsdesc1n.so" \
"" \
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index 9b83e1c..676d44a 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -50,20 +50,20 @@ set x86_64tests {
"-melf_x86_64 tmpdir/libpltlib.so" "" "--64" {plt.s}
{{objdump -drj.plt plt.pd}} "plt"}
{"TLS -fpic -shared transitions"
- "-shared -melf_x86_64 --no-ld-generated-unwind-info" ""
+ "-shared -melf_x86_64 --no-ld-generated-unwind-info --hash-style=sysv" ""
"--64" {tlspic1.s tlspic2.s}
{{readelf -WSsrl tlspic.rd} {objdump -drj.text\ -Mintel64 tlspic.dd}
{objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}}
"libtlspic.so"}
{"TLS -fpic -shared transitions with r15 as GOT base"
- "-shared -melf_x86_64 --no-ld-generated-unwind-info" ""
+ "-shared -melf_x86_64 --no-ld-generated-unwind-info --hash-style=sysv" ""
"--64 -mrelax-relocations=yes"
{tlspic3.s tlspic2.s}
{{readelf -WSsrl tlspic2.rd} {objdump -drj.text\ -Mintel64 tlspic2.dd}
{objdump -sj.got tlspic2.sd} {objdump -sj.tdata tlspic2.td}}
"libtlspic2.so"}
{"TLS descriptor -fpic -shared transitions"
- "-shared -melf_x86_64 --no-ld-generated-unwind-info" ""
+ "-shared -melf_x86_64 --no-ld-generated-unwind-info --hash-style=sysv" ""
"--64" {tlsdesc.s tlspic2.s}
{{readelf -WSsrld tlsdesc.rd} {objdump -drj.text tlsdesc.dd}
{objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td}
@@ -71,25 +71,25 @@ set x86_64tests {
{"Helper shared library" "-shared -melf_x86_64" ""
"--64" {tlslib.s} {} "libtlslib.so"}
{"TLS -fpic and -fno-pic exec transitions"
- "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info" ""
+ "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info --hash-style=sysv" ""
"--64" {tlsbinpic.s tlsbin.s}
{{readelf -WSsrl tlsbin.rd} {objdump -drj.text tlsbin.dd}
{objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}}
"tlsbin"}
{"TLS -fpic and -fno-pic exec transitions without PLT"
- "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info" ""
+ "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info --hash-style=sysv" ""
"-mrelax-relocations=yes --64" {tlsbinpic2.s tlsbin.s}
{{readelf -WSsrl tlsbin2.rd} {objdump -drj.text tlsbin2.dd}
{objdump -sj.got tlsbin2.sd} {objdump -sj.tdata tlsbin2.td}}
"tlsbin2"}
{"TLS descriptor -fpic and -fno-pic exec transitions"
- "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info" ""
+ "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info --hash-style=sysv" ""
"--64" {tlsbindesc.s tlsbin.s}
{{readelf -WSsrl tlsbindesc.rd} {objdump -drj.text tlsbindesc.dd}
{objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}}
"tlsbindesc"}
{"TLS with global dynamic and descriptors"
- "-shared -melf_x86_64 --no-ld-generated-unwind-info" ""
+ "-shared -melf_x86_64 --no-ld-generated-unwind-info --hash-style=sysv" ""
"--64" {tlsgdesc.s}
{{readelf -WSsrl tlsgdesc.rd} {objdump -drj.text\ -Mintel64 tlsgdesc.dd}}
"libtlsgdesc.so"}
@@ -291,6 +291,7 @@ run_dump_test "protected6a"
run_dump_test "protected6b"
run_dump_test "protected7a"
run_dump_test "protected7b"
+run_dump_test "protected8"
run_dump_test "tlsle1"
run_dump_test "tlspie1"
run_dump_test "tlspie2a"
@@ -310,6 +311,8 @@ run_dump_test "pr14207"
run_dump_test "gotplt1"
run_dump_test "pie1"
run_dump_test "pie2"
+run_dump_test "pie3"
+run_dump_test "pie3-nacl"
run_dump_test "pic1"
run_dump_test "largecomm-1a"
run_dump_test "largecomm-1b"
@@ -363,6 +366,18 @@ run_dump_test "property-x86-shstk4"
run_dump_test "property-x86-shstk4-x32"
run_dump_test "property-x86-shstk5"
run_dump_test "property-x86-shstk5-x32"
+run_dump_test "pr21884"
+run_dump_test "pr21884-nacl"
+run_dump_test "pr22071"
+run_dump_test "pr22115-1a"
+run_dump_test "pr22115-1a-x32"
+run_dump_test "pr22115-1b"
+run_dump_test "pr22115-1b-x32"
+run_dump_test "pr22115-1c"
+run_dump_test "pr22115-1c-x32"
+run_dump_test "pr22115-1d"
+run_dump_test "pr22115-1d-x32"
+run_dump_test "pr22135"
if { ![istarget "x86_64-*-linux*"] && ![istarget "x86_64-*-nacl*"]} {
return
@@ -565,6 +580,7 @@ run_dump_test "pr20253-4f"
run_dump_test "pr20253-5a"
run_dump_test "pr20253-5b"
run_dump_test "tlsdesc2"
+run_dump_test "pr22048"
proc undefined_weak {cflags ldflags} {
set testname "Undefined weak symbol"
@@ -572,8 +588,8 @@ proc undefined_weak {cflags ldflags} {
set testname "$testname ($cflags $ldflags)"
}
- if { [ regexp "\-fPIE" $cflags]
- && ![ regexp "nodynamic-undefined-weak" $ldflags] } {
+ if { [string match "*-fPIE*" $cflags]
+ && ![string match "*nodynamic-undefined-weak*" $ldflags] } {
set weak_symbol "Weak defined"
} else {
set weak_symbol "Weak undefined"
@@ -1035,8 +1051,96 @@ if { [isnative] && [which $CC] != 0 } {
{{readelf {-n} property-7.r}} \
"property-7b.o" \
] \
+ [list \
+ "Build pr22001-1.so" \
+ "-shared" \
+ "-fPIC" \
+ { pr22001-1a.c } \
+ {} \
+ "pr22001-1.so" \
+ ] \
+ [list \
+ "Build pr22001-1a" \
+ "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
+ "$NOPIE_CFLAGS" \
+ { pr22001-1b.c } \
+ {{error_output "pr22001-1a.err"}} \
+ "pr22001-1a" \
+ ] \
+ [list \
+ "Build pr21997-1.so" \
+ "-shared" \
+ "" \
+ { property-stack.S property-no-copy.S pr21997-1a.S } \
+ {} \
+ "pr21997-1.so" \
+ ] \
+ [list \
+ "Build pr21997-1a" \
+ "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr21997-1.so" \
+ "$NOPIE_CFLAGS" \
+ { pr21997-1b.c } \
+ {{error_output "pr21997-1a.err"}} \
+ "pr21997-1a" \
+ ] \
+ [list \
+ "Build pr22064a.o" \
+ "" \
+ "" \
+ { pr22064a.S } \
+ ] \
+ [list \
+ "Build pr22064.so" \
+ "-shared" \
+ "-fPIC" \
+ { pr22064b.c } \
+ {} \
+ "pr22064.so" \
+ ] \
]
+ if {[istarget "x86_64-*-linux*-gnux32"]} {
+ run_ld_link_exec_tests [list \
+ [list \
+ "Run pr22001-1b" \
+ "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
+ "" \
+ { pr22001-1c.c } \
+ "pr22001-1b" \
+ "pass.out" \
+ "$NOPIE_CFLAGS" \
+ ] \
+ [list \
+ "Run pr21997-1b" \
+ "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr21997-1.so" \
+ "" \
+ { pr21997-1c.c } \
+ "pr21997-1b" \
+ "pass.out" \
+ "$NOPIE_CFLAGS" \
+ ] \
+ ]
+ } else {
+ run_cc_link_tests [list \
+ [list \
+ "Build pr22001-1b" \
+ "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
+ "$NOPIE_CFLAGS" \
+ { pr22001-1c.c } \
+ {{error_output "pr22001-1b.err"}} \
+ "pr22001-1b" \
+ ] \
+ [list \
+ "Build pr21997-1b" \
+ "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr21997-1.so" \
+ "$NOPIE_CFLAGS" \
+ { pr21997-1c.c } \
+ {{error_output "pr21997-1b.err"}} \
+ "pr21997-1b" \
+ ] \
+ ]
+ }
+
run_ld_link_exec_tests [list \
[list \
"Run plt-main" \
@@ -1211,6 +1315,87 @@ if { [isnative] && [which $CC] != 0 } {
{property-x86-2.S property-x86-1.S pass.c property-stack.S} \
"property-5-static" "pass.out" \
] \
+ [list \
+ "Run pr22001-1a (PIC 1)" \
+ "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
+ "" \
+ { pr22001-1b.c } \
+ "pr22001-1a-pic-1" \
+ "pass.out" \
+ "-fPIC" \
+ ] \
+ [list \
+ "Run pr22001-1a (PIC 2)" \
+ "-pie -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
+ "" \
+ { pr22001-1b.c } \
+ "pr22001-1a-pic-2" \
+ "pass.out" \
+ "-fPIC" \
+ ] \
+ [list \
+ "Run pr22001-1b (PIC 1)" \
+ "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
+ "" \
+ { pr22001-1c.c } \
+ "pr22001-1b-pic-1" \
+ "pass.out" \
+ "-fPIC" \
+ ] \
+ [list \
+ "Run pr22001-1b (PIC 2)" \
+ "-pie -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
+ "" \
+ { pr22001-1c.c } \
+ "pr22001-1b-pic-2" \
+ "pass.out" \
+ "-fPIC" \
+ ] \
+ [list \
+ "Run pr21997-1a (PIC 1)" \
+ "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr21997-1.so" \
+ "" \
+ { pr21997-1b.c } \
+ "pr21997-1a-pic-1" \
+ "pass.out" \
+ "-fPIC" \
+ ] \
+ [list \
+ "Run pr21997-1a (PIC 2)" \
+ "-pie -Wl,--no-as-needed tmpdir/pr21997-1.so" \
+ "" \
+ { pr21997-1b.c } \
+ "pr21997-1a-pic-2" \
+ "pass.out" \
+ "-fPIC" \
+ ] \
+ [list \
+ "Run pr21997-1b (PIC 1)" \
+ "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr21997-1.so" \
+ "" \
+ { pr21997-1c.c } \
+ "pr21997-1b-pic-1" \
+ "pass.out" \
+ "-fPIC" \
+ ] \
+ [list \
+ "Run pr21997-1b (PIC 2)" \
+ "-pie -Wl,--no-as-needed tmpdir/pr21997-1.so" \
+ "" \
+ { pr21997-1c.c } \
+ "pr21997-1b-pic-2" \
+ "pass.out" \
+ "-fPIC" \
+ ] \
+ [list \
+ "Run pr22064" \
+ "-pie -Wl,--no-as-needed tmpdir/pr22064a.o tmpdir/pr22064.so" \
+ "" \
+ { dummy.s } \
+ "pr22064-pie" \
+ "pass.out" \
+ "-fPIE" \
+ ] \
]
# Run-time tests which require working ifunc attribute support.
@@ -1542,7 +1727,7 @@ if { ![istarget "x86_64-*-linux*"]} {
run_ld_link_tests [list \
[list \
"basic PLT generation (-z now)" \
- "-z now -melf_x86_64 tmpdir/libpltlib.so" \
+ "-z now -melf_x86_64 --hash-style=sysv tmpdir/libpltlib.so" \
"" \
"--64" \
{plt2.s} \
@@ -1570,7 +1755,11 @@ run_ld_link_tests [list \
]
# Linux only tests
-run_dump_test "pr17618"
+global LD_CLASS
+if { "$LD_CLASS" == "64bit" } then {
+ # This test needs 64-bit linker.
+ run_dump_test "pr17618"
+}
run_dump_test "pltgot-1"
run_dump_test "pltgot-2"
run_dump_test "pr20830a"
diff --git a/ld/testsuite/ld-xtensa/xtensa.exp b/ld/testsuite/ld-xtensa/xtensa.exp
index 750979b..487abbc 100644
--- a/ld/testsuite/ld-xtensa/xtensa.exp
+++ b/ld/testsuite/ld-xtensa/xtensa.exp
@@ -34,7 +34,8 @@ if { !([istarget "xtensa*-*-linux*"]) } {
set xtensatests {
{"TLS -shared transitions"
- "-shared -melf32xtensa" "" "" {tlspic1.s tlspic2.s}
+ "-shared -melf32xtensa --hash-style=sysv" ""
+ "" {tlspic1.s tlspic2.s}
{{readelf -WSsrl tlspic.rd}
{objdump "-drj.text --start-address=0x350" tlspic.dd}
{objdump "-sj.text --stop-address=0x350" tlspic.sd}
@@ -43,7 +44,8 @@ set xtensatests {
{"Helper shared library" "-shared -melf32xtensa" ""
"" {tlslib.s} {} "libtlslib.so"}
{"TLS exec transitions"
- "-melf32xtensa tmpdir/libtlslib.so" "" "" {tlsbin.s}
+ "-melf32xtensa tmpdir/libtlslib.so --hash-style=sysv" ""
+ "" {tlsbin.s}
{{readelf -WSsrl tlsbin.rd}
{objdump "-drj.text --start-address=0x400238" tlsbin.dd}
{objdump "-sj.text --stop-address=0x400238" tlsbin.sd}
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index cddcaf8..c240410 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -976,7 +976,7 @@ proc run_dump_test { name {extra_options {}} } {
&& (($cmdret == 0) == ($check_ld(terminal) == 0)) \
&& ((($check_ld(source) == "regex") \
&& ($check_ld(regex) == "") == ($comp_output == "") \
- && [regexp $check_ld(regex) $comp_output]) \
+ && [regexp -- $check_ld(regex) $comp_output]) \
|| (($check_ld(source) == "file") \
&& (![regexp_diff "tmpdir/ld.messages" "$srcdir/$subdir/$check_ld(file)"]))) } {
# We have the expected output from ld.