aboutsummaryrefslogtreecommitdiff
path: root/ld/emultempl
diff options
context:
space:
mode:
authornobody <>2013-09-18 10:39:47 +0000
committernobody <>2013-09-18 10:39:47 +0000
commit42cae617abbc05543c25ef5107bbcf91d93aa999 (patch)
treed0082570109dd15c22569c0787801d11abc5c077 /ld/emultempl
parent4f9545368bc44f2dfd320a99f096401d14c266b2 (diff)
downloadgdb-cygwin-1_7_25-release.zip
gdb-cygwin-1_7_25-release.tar.gz
gdb-cygwin-1_7_25-release.tar.bz2
This commit was manufactured by cvs2svn to create tag 'cygwin-cygwin-1_7_25-release
1_7_25-release'. Sprout from binutils-2_24-branch 2013-09-18 10:39:39 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'binutils-' Cherrypick from master 2013-08-09 10:40:04 UTC Nick Clifton <nickc@redhat.com> ' * elf32-rl78.c (rl78_elf_merge_private_bfd_data): Complain if G10': include/elf/ChangeLog include/elf/mips.h Delete: COPYING3 COPYING3.LIB bfd/.gitignore bfd/COPYING bfd/ChangeLog bfd/ChangeLog-0001 bfd/ChangeLog-0203 bfd/ChangeLog-2004 bfd/ChangeLog-2005 bfd/ChangeLog-2006 bfd/ChangeLog-2007 bfd/ChangeLog-2008 bfd/ChangeLog-2009 bfd/ChangeLog-2010 bfd/ChangeLog-2011 bfd/ChangeLog-2012 bfd/ChangeLog-9193 bfd/ChangeLog-9495 bfd/ChangeLog-9697 bfd/ChangeLog-9899 bfd/MAINTAINERS bfd/Makefile.am bfd/Makefile.in bfd/PORTING bfd/README bfd/TODO bfd/acinclude.m4 bfd/aclocal.m4 bfd/aix386-core.c bfd/aix5ppc-core.c bfd/aout-adobe.c bfd/aout-arm.c bfd/aout-cris.c bfd/aout-ns32k.c bfd/aout-sparcle.c bfd/aout-target.h bfd/aout-tic30.c bfd/aout0.c bfd/aout32.c bfd/aout64.c bfd/aoutf1.h bfd/aoutx.h bfd/archive.c bfd/archive64.c bfd/archures.c bfd/armnetbsd.c bfd/bfd-in.h bfd/bfd-in2.h bfd/bfd.c bfd/bfd.m4 bfd/bfdio.c bfd/bfdwin.c bfd/binary.c bfd/bout.c bfd/cache.c bfd/cf-i386lynx.c bfd/cf-sparclynx.c bfd/cisco-core.c bfd/coff-alpha.c bfd/coff-apollo.c bfd/coff-arm.c bfd/coff-aux.c bfd/coff-go32.c bfd/coff-h8300.c bfd/coff-h8500.c bfd/coff-i386.c bfd/coff-i860.c bfd/coff-i960.c bfd/coff-ia64.c bfd/coff-m68k.c bfd/coff-m88k.c bfd/coff-mcore.c bfd/coff-mips.c bfd/coff-or32.c bfd/coff-ppc.c bfd/coff-rs6000.c bfd/coff-sh.c bfd/coff-sparc.c bfd/coff-stgo32.c bfd/coff-svm68k.c bfd/coff-tic30.c bfd/coff-tic4x.c bfd/coff-tic54x.c bfd/coff-tic80.c bfd/coff-u68k.c bfd/coff-w65.c bfd/coff-we32k.c bfd/coff-x86_64.c bfd/coff-z80.c bfd/coff-z8k.c bfd/coff64-rs6000.c bfd/coffcode.h bfd/coffgen.c bfd/cofflink.c bfd/coffswap.h bfd/compress.c bfd/config.bfd bfd/config.in bfd/configure bfd/configure.com bfd/configure.host bfd/configure.in bfd/corefile.c bfd/cpu-aarch64.c bfd/cpu-alpha.c bfd/cpu-arc.c bfd/cpu-arm.c bfd/cpu-avr.c bfd/cpu-bfin.c bfd/cpu-cr16.c bfd/cpu-cr16c.c bfd/cpu-cris.c bfd/cpu-crx.c bfd/cpu-d10v.c bfd/cpu-d30v.c bfd/cpu-dlx.c bfd/cpu-epiphany.c bfd/cpu-fr30.c bfd/cpu-frv.c bfd/cpu-h8300.c bfd/cpu-h8500.c bfd/cpu-hppa.c bfd/cpu-i370.c bfd/cpu-i386.c bfd/cpu-i860.c bfd/cpu-i960.c bfd/cpu-ia64-opc.c bfd/cpu-ia64.c bfd/cpu-ip2k.c bfd/cpu-iq2000.c bfd/cpu-k1om.c bfd/cpu-l1om.c bfd/cpu-lm32.c bfd/cpu-m10200.c bfd/cpu-m10300.c bfd/cpu-m32c.c bfd/cpu-m32r.c bfd/cpu-m68hc11.c bfd/cpu-m68hc12.c bfd/cpu-m68k.c bfd/cpu-m88k.c bfd/cpu-m9s12x.c bfd/cpu-m9s12xg.c bfd/cpu-mcore.c bfd/cpu-mep.c bfd/cpu-metag.c bfd/cpu-microblaze.c bfd/cpu-mips.c bfd/cpu-mmix.c bfd/cpu-moxie.c bfd/cpu-msp430.c bfd/cpu-mt.c bfd/cpu-nios2.c bfd/cpu-ns32k.c bfd/cpu-openrisc.c bfd/cpu-or32.c bfd/cpu-pdp11.c bfd/cpu-pj.c bfd/cpu-plugin.c bfd/cpu-powerpc.c bfd/cpu-rl78.c bfd/cpu-rs6000.c bfd/cpu-rx.c bfd/cpu-s390.c bfd/cpu-score.c bfd/cpu-sh.c bfd/cpu-sparc.c bfd/cpu-spu.c bfd/cpu-tic30.c bfd/cpu-tic4x.c bfd/cpu-tic54x.c bfd/cpu-tic6x.c bfd/cpu-tic80.c bfd/cpu-tilegx.c bfd/cpu-tilepro.c bfd/cpu-v850.c bfd/cpu-v850_rh850.c bfd/cpu-vax.c bfd/cpu-w65.c bfd/cpu-we32k.c bfd/cpu-xc16x.c bfd/cpu-xgate.c bfd/cpu-xstormy16.c bfd/cpu-xtensa.c bfd/cpu-z80.c bfd/cpu-z8k.c bfd/demo64.c bfd/dep-in.sed bfd/doc/ChangeLog bfd/doc/ChangeLog-9103 bfd/doc/Makefile.am bfd/doc/Makefile.in bfd/doc/bfd.texinfo bfd/doc/bfdint.texi bfd/doc/bfdsumm.texi bfd/doc/chew.c bfd/doc/doc.str bfd/doc/fdl.texi bfd/doc/header.sed bfd/doc/makefile.vms bfd/doc/proto.str bfd/dwarf1.c bfd/dwarf2.c bfd/ecoff.c bfd/ecofflink.c bfd/ecoffswap.h bfd/elf-attrs.c bfd/elf-bfd.h bfd/elf-eh-frame.c bfd/elf-hppa.h bfd/elf-ifunc.c bfd/elf-linux-psinfo.h bfd/elf-m10200.c bfd/elf-m10300.c bfd/elf-nacl.c bfd/elf-nacl.h bfd/elf-s390-common.c bfd/elf-strtab.c bfd/elf-vxworks.c bfd/elf-vxworks.h bfd/elf.c bfd/elf32-am33lin.c bfd/elf32-arc.c bfd/elf32-arm.c bfd/elf32-avr.c bfd/elf32-avr.h bfd/elf32-bfin.c bfd/elf32-cr16.c bfd/elf32-cr16c.c bfd/elf32-cris.c bfd/elf32-crx.c bfd/elf32-d10v.c bfd/elf32-d30v.c bfd/elf32-dlx.c bfd/elf32-epiphany.c bfd/elf32-fr30.c bfd/elf32-frv.c bfd/elf32-gen.c bfd/elf32-h8300.c bfd/elf32-hppa.c bfd/elf32-hppa.h bfd/elf32-i370.c bfd/elf32-i386.c bfd/elf32-i860.c bfd/elf32-i960.c bfd/elf32-ip2k.c bfd/elf32-iq2000.c bfd/elf32-lm32.c bfd/elf32-m32c.c bfd/elf32-m32r.c bfd/elf32-m68hc11.c bfd/elf32-m68hc12.c bfd/elf32-m68hc1x.c bfd/elf32-m68hc1x.h bfd/elf32-m68k.c bfd/elf32-m88k.c bfd/elf32-mcore.c bfd/elf32-mep.c bfd/elf32-metag.c bfd/elf32-metag.h bfd/elf32-microblaze.c bfd/elf32-mips.c bfd/elf32-moxie.c bfd/elf32-msp430.c bfd/elf32-mt.c bfd/elf32-nios2.c bfd/elf32-openrisc.c bfd/elf32-or32.c bfd/elf32-pj.c bfd/elf32-ppc.c bfd/elf32-ppc.h bfd/elf32-rl78.c bfd/elf32-rx.c bfd/elf32-s390.c bfd/elf32-score.c bfd/elf32-score.h bfd/elf32-score7.c bfd/elf32-sh-relocs.h bfd/elf32-sh-symbian.c bfd/elf32-sh.c bfd/elf32-sh64-com.c bfd/elf32-sh64.c bfd/elf32-sh64.h bfd/elf32-sparc.c bfd/elf32-spu.c bfd/elf32-spu.h bfd/elf32-tic6x.c bfd/elf32-tic6x.h bfd/elf32-tilegx.c bfd/elf32-tilegx.h bfd/elf32-tilepro.c bfd/elf32-tilepro.h bfd/elf32-v850.c bfd/elf32-vax.c bfd/elf32-xc16x.c bfd/elf32-xgate.c bfd/elf32-xgate.h bfd/elf32-xstormy16.c bfd/elf32-xtensa.c bfd/elf32.c bfd/elf64-alpha.c bfd/elf64-gen.c bfd/elf64-hppa.c bfd/elf64-hppa.h bfd/elf64-ia64-vms.c bfd/elf64-mips.c bfd/elf64-mmix.c bfd/elf64-ppc.c bfd/elf64-ppc.h bfd/elf64-s390.c bfd/elf64-sh64.c bfd/elf64-sparc.c bfd/elf64-tilegx.c bfd/elf64-tilegx.h bfd/elf64-x86-64.c bfd/elf64.c bfd/elfcode.h bfd/elfcore.h bfd/elflink.c bfd/elfn32-mips.c bfd/elfnn-aarch64.c bfd/elfnn-ia64.c bfd/elfxx-aarch64.c bfd/elfxx-aarch64.h bfd/elfxx-ia64.c bfd/elfxx-ia64.h bfd/elfxx-mips.c bfd/elfxx-mips.h bfd/elfxx-sparc.c bfd/elfxx-sparc.h bfd/elfxx-target.h bfd/elfxx-tilegx.c bfd/elfxx-tilegx.h bfd/epoc-pe-arm.c bfd/epoc-pei-arm.c bfd/format.c bfd/freebsd.h bfd/gen-aout.c bfd/genlink.h bfd/go32stub.h bfd/hash.c bfd/host-aout.c bfd/hosts/alphalinux.h bfd/hosts/alphavms.h bfd/hosts/decstation.h bfd/hosts/delta68.h bfd/hosts/dpx2.h bfd/hosts/hp300bsd.h bfd/hosts/i386bsd.h bfd/hosts/i386linux.h bfd/hosts/i386mach3.h bfd/hosts/i386sco.h bfd/hosts/i860mach3.h bfd/hosts/m68kaux.h bfd/hosts/m68klinux.h bfd/hosts/m88kmach3.h bfd/hosts/mipsbsd.h bfd/hosts/mipsmach3.h bfd/hosts/news-mips.h bfd/hosts/news.h bfd/hosts/pc532mach.h bfd/hosts/riscos.h bfd/hosts/symmetry.h bfd/hosts/tahoe.h bfd/hosts/vaxbsd.h bfd/hosts/vaxlinux.h bfd/hosts/vaxult.h bfd/hosts/vaxult2.h bfd/hosts/x86-64linux.h bfd/hp300bsd.c bfd/hp300hpux.c bfd/hppabsd-core.c bfd/hpux-core.c bfd/i386aout.c bfd/i386bsd.c bfd/i386dynix.c bfd/i386freebsd.c bfd/i386linux.c bfd/i386lynx.c bfd/i386mach3.c bfd/i386msdos.c bfd/i386netbsd.c bfd/i386os9k.c bfd/ieee.c bfd/ihex.c bfd/init.c bfd/irix-core.c bfd/libaout.h bfd/libbfd-in.h bfd/libbfd.c bfd/libbfd.h bfd/libcoff-in.h bfd/libcoff.h bfd/libecoff.h bfd/libhppa.h bfd/libieee.h bfd/libnlm.h bfd/liboasys.h bfd/libpei.h bfd/libxcoff.h bfd/linker.c bfd/lynx-core.c bfd/m68k4knetbsd.c bfd/m68klinux.c bfd/m68knetbsd.c bfd/m88kmach3.c bfd/m88kopenbsd.c bfd/mach-o-i386.c bfd/mach-o-target.c bfd/mach-o-x86-64.c bfd/mach-o.c bfd/mach-o.h bfd/makefile.vms bfd/mep-relocs.pl bfd/merge.c bfd/mipsbsd.c bfd/mmo.c bfd/netbsd-core.c bfd/netbsd.h bfd/newsos3.c bfd/nlm-target.h bfd/nlm.c bfd/nlm32-alpha.c bfd/nlm32-i386.c bfd/nlm32-ppc.c bfd/nlm32-sparc.c bfd/nlm32.c bfd/nlm64.c bfd/nlmcode.h bfd/nlmswap.h bfd/ns32k.h bfd/ns32knetbsd.c bfd/oasys.c bfd/opncls.c bfd/osf-core.c bfd/pc532-mach.c bfd/pdp11.c bfd/pe-arm-wince.c bfd/pe-arm.c bfd/pe-i386.c bfd/pe-mcore.c bfd/pe-mips.c bfd/pe-ppc.c bfd/pe-sh.c bfd/pe-x86_64.c bfd/peXXigen.c bfd/pef-traceback.h bfd/pef.c bfd/pef.h bfd/pei-arm-wince.c bfd/pei-arm.c bfd/pei-i386.c bfd/pei-ia64.c bfd/pei-mcore.c bfd/pei-mips.c bfd/pei-ppc.c bfd/pei-sh.c bfd/pei-x86_64.c bfd/peicode.h bfd/plugin.c bfd/plugin.h bfd/po/.cvsignore bfd/po/BLD-POTFILES.in bfd/po/Make-in bfd/po/SRC-POTFILES.in bfd/po/bfd.pot bfd/po/da.po bfd/po/es.po bfd/po/fi.po bfd/po/fr.po bfd/po/id.po bfd/po/ja.po bfd/po/ro.po bfd/po/ru.po bfd/po/rw.po bfd/po/sv.po bfd/po/tr.po bfd/po/uk.po bfd/po/vi.po bfd/po/zh_CN.po bfd/ppcboot.c bfd/ptrace-core.c bfd/reloc.c bfd/reloc16.c bfd/riscix.c bfd/rs6000-core.c bfd/sco5-core.c bfd/section.c bfd/simple.c bfd/som.c bfd/som.h bfd/sparclinux.c bfd/sparclynx.c bfd/sparcnetbsd.c bfd/srec.c bfd/stab-syms.c bfd/stabs.c bfd/stamp-h.in bfd/sunos.c bfd/syms.c bfd/sysdep.h bfd/targets.c bfd/targmatch.sed bfd/tekhex.c bfd/ticoff.h bfd/trad-core.c bfd/vax1knetbsd.c bfd/vaxbsd.c bfd/vaxnetbsd.c bfd/verilog.c bfd/versados.c bfd/version.h bfd/vms-alpha.c bfd/vms-lib.c bfd/vms-misc.c bfd/vms.h bfd/warning.m4 bfd/xcofflink.c bfd/xsym.c bfd/xsym.h bfd/xtensa-isa.c bfd/xtensa-modules.c binutils/.gitignore binutils/BRANCHES binutils/ChangeLog binutils/ChangeLog-0001 binutils/ChangeLog-0203 binutils/ChangeLog-2004 binutils/ChangeLog-2005 binutils/ChangeLog-2006 binutils/ChangeLog-2007 binutils/ChangeLog-2008 binutils/ChangeLog-2009 binutils/ChangeLog-2010 binutils/ChangeLog-2011 binutils/ChangeLog-2012 binutils/ChangeLog-9197 binutils/ChangeLog-9899 binutils/MAINTAINERS binutils/Makefile.am binutils/Makefile.in binutils/NEWS binutils/README binutils/aclocal.m4 binutils/addr2line.c binutils/ar.c binutils/arlex.l binutils/arparse.y binutils/arsup.c binutils/arsup.h binutils/bfdtest1.c binutils/bfdtest2.c binutils/bin2c.c binutils/binemul.c binutils/binemul.h binutils/bucomm.c binutils/bucomm.h binutils/budbg.h binutils/coffdump.c binutils/coffgrok.c binutils/coffgrok.h binutils/config.in binutils/configure binutils/configure.com binutils/configure.in binutils/configure.tgt binutils/cxxfilt.c binutils/debug.c binutils/debug.h binutils/deflex.l binutils/defparse.y binutils/dep-in.sed binutils/dlltool.c binutils/dlltool.h binutils/dllwrap.c binutils/doc/Makefile.am binutils/doc/Makefile.in binutils/doc/binutils.texi binutils/doc/fdl.texi binutils/dwarf-mode.el binutils/dwarf.c binutils/dwarf.h binutils/elfcomm.c binutils/elfcomm.h binutils/elfedit.c binutils/embedspu.sh binutils/emul_aix.c binutils/emul_vanilla.c binutils/filemode.c binutils/ieee.c binutils/is-ranlib.c binutils/is-strip.c binutils/makefile.vms binutils/maybe-ranlib.c binutils/maybe-strip.c binutils/mclex.c binutils/mcparse.y binutils/nlmconv.c binutils/nlmconv.h binutils/nlmheader.y binutils/nm.c binutils/not-ranlib.c binutils/not-strip.c binutils/objcopy.c binutils/objdump.c binutils/objdump.h binutils/od-macho.c binutils/od-xcoff.c binutils/po/.cvsignore binutils/po/Make-in binutils/po/POTFILES.in binutils/po/bg.po binutils/po/binutils.pot binutils/po/da.po binutils/po/es.po binutils/po/fi.po binutils/po/fr.po binutils/po/hr.po binutils/po/id.po binutils/po/it.po binutils/po/ja.po binutils/po/ro.po binutils/po/ru.po binutils/po/rw.po binutils/po/sk.po binutils/po/sv.po binutils/po/tr.po binutils/po/uk.po binutils/po/vi.po binutils/po/zh_CN.po binutils/po/zh_TW.po binutils/prdbg.c binutils/ranlib.sh binutils/rclex.c binutils/rcparse.y binutils/rdcoff.c binutils/rddbg.c binutils/readelf.c binutils/rename.c binutils/resbin.c binutils/rescoff.c binutils/resrc.c binutils/resres.c binutils/sanity.sh binutils/size.c binutils/srconv.c binutils/stabs.c binutils/stamp-h.in binutils/strings.c binutils/sysdep.h binutils/sysdump.c binutils/sysinfo.y binutils/syslex.l binutils/syslex_wrap.c binutils/sysroff.info binutils/testsuite/ChangeLog binutils/testsuite/ChangeLog-0411 binutils/testsuite/ChangeLog-9303 binutils/testsuite/binutils-all/add-empty-section.d binutils/testsuite/binutils-all/add-section.d binutils/testsuite/binutils-all/alias-2.def binutils/testsuite/binutils-all/alias.def binutils/testsuite/binutils-all/ar.exp binutils/testsuite/binutils-all/arm/objdump.exp binutils/testsuite/binutils-all/arm/simple.s binutils/testsuite/binutils-all/arm/thumb2-cond.s binutils/testsuite/binutils-all/bfin/objdump.exp binutils/testsuite/binutils-all/bfin/unknown-mode.s binutils/testsuite/binutils-all/bintest.s binutils/testsuite/binutils-all/compress.exp binutils/testsuite/binutils-all/copy-1.d binutils/testsuite/binutils-all/copy-1.s binutils/testsuite/binutils-all/copy-2.d binutils/testsuite/binutils-all/copy-3.d binutils/testsuite/binutils-all/copy-4.d binutils/testsuite/binutils-all/copytest.s binutils/testsuite/binutils-all/dlltool.exp binutils/testsuite/binutils-all/dumptest.s binutils/testsuite/binutils-all/dw2-1.S binutils/testsuite/binutils-all/dw2-1.W binutils/testsuite/binutils-all/dw2-2.S binutils/testsuite/binutils-all/dw2-compressed.S binutils/testsuite/binutils-all/dw2-decodedline.S binutils/testsuite/binutils-all/dw2-empty.S binutils/testsuite/binutils-all/elfedit-1.d binutils/testsuite/binutils-all/elfedit-2.d binutils/testsuite/binutils-all/elfedit-3.d binutils/testsuite/binutils-all/elfedit-4.d binutils/testsuite/binutils-all/elfedit.exp binutils/testsuite/binutils-all/empty-file binutils/testsuite/binutils-all/empty.s binutils/testsuite/binutils-all/exclude-1.s binutils/testsuite/binutils-all/exclude-1a.d binutils/testsuite/binutils-all/exclude-1b.d binutils/testsuite/binutils-all/fastcall.def binutils/testsuite/binutils-all/group-2.s binutils/testsuite/binutils-all/group-3.s binutils/testsuite/binutils-all/group-4.s binutils/testsuite/binutils-all/group-5.d binutils/testsuite/binutils-all/group-5.s binutils/testsuite/binutils-all/group-6.d binutils/testsuite/binutils-all/group-6.s binutils/testsuite/binutils-all/group.s binutils/testsuite/binutils-all/hppa/addendbug.s binutils/testsuite/binutils-all/hppa/freg.s binutils/testsuite/binutils-all/hppa/objdump.exp binutils/testsuite/binutils-all/i386/compressed-1.s binutils/testsuite/binutils-all/i386/compressed-1a.d binutils/testsuite/binutils-all/i386/compressed-1b.d binutils/testsuite/binutils-all/i386/compressed-1c.d binutils/testsuite/binutils-all/i386/i386.exp binutils/testsuite/binutils-all/libdw2-compressed.out binutils/testsuite/binutils-all/libdw2.out binutils/testsuite/binutils-all/link-order.s binutils/testsuite/binutils-all/localize-hidden-1.d binutils/testsuite/binutils-all/localize-hidden-1.s binutils/testsuite/binutils-all/localize-hidden-2.d binutils/testsuite/binutils-all/localize-hidden-2.s binutils/testsuite/binutils-all/m68k/fnop.s binutils/testsuite/binutils-all/m68k/movem.s binutils/testsuite/binutils-all/m68k/objdump.exp binutils/testsuite/binutils-all/mips/mips.exp binutils/testsuite/binutils-all/mips/mixed-micromips.d binutils/testsuite/binutils-all/mips/mixed-micromips.s binutils/testsuite/binutils-all/mips/mixed-mips16.d binutils/testsuite/binutils-all/mips/mixed-mips16.s binutils/testsuite/binutils-all/needed-by-reloc.s binutils/testsuite/binutils-all/nm-1.s binutils/testsuite/binutils-all/nm-elf-1.s binutils/testsuite/binutils-all/nm.exp binutils/testsuite/binutils-all/note-1.d binutils/testsuite/binutils-all/objcopy.exp binutils/testsuite/binutils-all/objdump.W binutils/testsuite/binutils-all/objdump.WL binutils/testsuite/binutils-all/objdump.exp binutils/testsuite/binutils-all/objdump.s binutils/testsuite/binutils-all/readelf.exp binutils/testsuite/binutils-all/readelf.h binutils/testsuite/binutils-all/readelf.n binutils/testsuite/binutils-all/readelf.r binutils/testsuite/binutils-all/readelf.r-64 binutils/testsuite/binutils-all/readelf.s binutils/testsuite/binutils-all/readelf.s-64 binutils/testsuite/binutils-all/readelf.ss binutils/testsuite/binutils-all/readelf.ss-64 binutils/testsuite/binutils-all/readelf.ss-mips binutils/testsuite/binutils-all/readelf.ss-tmips binutils/testsuite/binutils-all/readelf.wa binutils/testsuite/binutils-all/size.exp binutils/testsuite/binutils-all/strip-1.d binutils/testsuite/binutils-all/strip-10.d binutils/testsuite/binutils-all/strip-2.d binutils/testsuite/binutils-all/strip-3.d binutils/testsuite/binutils-all/strip-4.d binutils/testsuite/binutils-all/strip-5.d binutils/testsuite/binutils-all/strip-6.d binutils/testsuite/binutils-all/strip-7.d binutils/testsuite/binutils-all/strip-8.d binutils/testsuite/binutils-all/strip-9.d binutils/testsuite/binutils-all/testprog.c binutils/testsuite/binutils-all/testranges-ia64.d binutils/testsuite/binutils-all/testranges-ia64.s binutils/testsuite/binutils-all/testranges.d binutils/testsuite/binutils-all/testranges.s binutils/testsuite/binutils-all/unique.s binutils/testsuite/binutils-all/unknown.s binutils/testsuite/binutils-all/vax/entrymask.s binutils/testsuite/binutils-all/vax/objdump.exp binutils/testsuite/binutils-all/version.def binutils/testsuite/binutils-all/version.s binutils/testsuite/binutils-all/windres/MSG00001.bin binutils/testsuite/binutils-all/windres/README binutils/testsuite/binutils-all/windres/bmp1.bmp binutils/testsuite/binutils-all/windres/bmpalign.rc binutils/testsuite/binutils-all/windres/bmpalign.rsd binutils/testsuite/binutils-all/windres/capstyle.rc binutils/testsuite/binutils-all/windres/capstyle.rsd binutils/testsuite/binutils-all/windres/checkbox.rc binutils/testsuite/binutils-all/windres/checkbox.rsd binutils/testsuite/binutils-all/windres/combobox.rc binutils/testsuite/binutils-all/windres/combobox.rsd binutils/testsuite/binutils-all/windres/deflang.rc binutils/testsuite/binutils-all/windres/deflang.rsd binutils/testsuite/binutils-all/windres/dialog0.rc binutils/testsuite/binutils-all/windres/dialog0.rsd binutils/testsuite/binutils-all/windres/dialog1.rc binutils/testsuite/binutils-all/windres/dialog1.rsd binutils/testsuite/binutils-all/windres/dialogid.rc binutils/testsuite/binutils-all/windres/dialogid.rsd binutils/testsuite/binutils-all/windres/dialogsignature.rc binutils/testsuite/binutils-all/windres/dialogsignature.rsd binutils/testsuite/binutils-all/windres/dlgfont.rc binutils/testsuite/binutils-all/windres/dlgfont.rsd binutils/testsuite/binutils-all/windres/edittext.rc binutils/testsuite/binutils-all/windres/edittext.rsd binutils/testsuite/binutils-all/windres/escapea.rc binutils/testsuite/binutils-all/windres/escapea.rsd binutils/testsuite/binutils-all/windres/escapex-2.rc binutils/testsuite/binutils-all/windres/escapex-2.rsd binutils/testsuite/binutils-all/windres/escapex.rc binutils/testsuite/binutils-all/windres/escapex.rsd binutils/testsuite/binutils-all/windres/html.rc binutils/testsuite/binutils-all/windres/html.rsd binutils/testsuite/binutils-all/windres/html1.hm binutils/testsuite/binutils-all/windres/html2.hm binutils/testsuite/binutils-all/windres/lang.rc binutils/testsuite/binutils-all/windres/lang.rsd binutils/testsuite/binutils-all/windres/listbox.rc binutils/testsuite/binutils-all/windres/listbox.rsd binutils/testsuite/binutils-all/windres/messagetable.rc binutils/testsuite/binutils-all/windres/messagetable.rsd binutils/testsuite/binutils-all/windres/msupdate binutils/testsuite/binutils-all/windres/nocaption.rc binutils/testsuite/binutils-all/windres/nocaption.rsd binutils/testsuite/binutils-all/windres/printstyle.rc binutils/testsuite/binutils-all/windres/printstyle.rsd binutils/testsuite/binutils-all/windres/quoteclass.rc binutils/testsuite/binutils-all/windres/scrollbar.rc binutils/testsuite/binutils-all/windres/scrollbar.rsd binutils/testsuite/binutils-all/windres/strtab1.rc binutils/testsuite/binutils-all/windres/strtab1.rsd binutils/testsuite/binutils-all/windres/strtab2.rc binutils/testsuite/binutils-all/windres/strtab2.rsd binutils/testsuite/binutils-all/windres/strtab3.rc binutils/testsuite/binutils-all/windres/strtab3.rsd binutils/testsuite/binutils-all/windres/strtab4.rc binutils/testsuite/binutils-all/windres/strtab4.rsd binutils/testsuite/binutils-all/windres/sublang.rc binutils/testsuite/binutils-all/windres/sublang.rsd binutils/testsuite/binutils-all/windres/version.rc binutils/testsuite/binutils-all/windres/version.rsd binutils/testsuite/binutils-all/windres/version_cat.rc binutils/testsuite/binutils-all/windres/version_cat.rsd binutils/testsuite/binutils-all/windres/version_mlang.rc binutils/testsuite/binutils-all/windres/version_mlang.rsd binutils/testsuite/binutils-all/windres/version_small.rc binutils/testsuite/binutils-all/windres/version_small.rsd binutils/testsuite/binutils-all/windres/windres.exp binutils/testsuite/binutils-all/x86-64/compressed-1.s binutils/testsuite/binutils-all/x86-64/compressed-1a.d binutils/testsuite/binutils-all/x86-64/compressed-1b.d binutils/testsuite/binutils-all/x86-64/compressed-1c.d binutils/testsuite/binutils-all/x86-64/x86-64.exp binutils/testsuite/config/default.exp binutils/testsuite/config/hppa.sed binutils/testsuite/lib/binutils-common.exp binutils/testsuite/lib/utils-lib.exp binutils/unwind-ia64.c binutils/unwind-ia64.h binutils/version.c binutils/windint.h binutils/windmc.c binutils/windmc.h binutils/windres.c binutils/windres.h binutils/winduni.c binutils/winduni.h binutils/wrstabs.c config.rpath configure.ac cpu/ChangeLog cpu/cris.cpu cpu/epiphany.cpu cpu/epiphany.opc cpu/fr30.cpu cpu/fr30.opc cpu/frv.cpu cpu/frv.opc cpu/ip2k.cpu cpu/ip2k.opc cpu/iq10.cpu cpu/iq2000.cpu cpu/iq2000.opc cpu/iq2000m.cpu cpu/lm32.cpu cpu/lm32.opc cpu/m32c.cpu cpu/m32c.opc cpu/m32r.cpu cpu/m32r.opc cpu/mep-avc.cpu cpu/mep-avc2.cpu cpu/mep-c5.cpu cpu/mep-core.cpu cpu/mep-default.cpu cpu/mep-ext-cop.cpu cpu/mep-fmax.cpu cpu/mep-h1.cpu cpu/mep-ivc2.cpu cpu/mep-rhcop.cpu cpu/mep-sample-ucidsp.cpu cpu/mep.cpu cpu/mep.opc cpu/mt.cpu cpu/mt.opc cpu/openrisc.cpu cpu/openrisc.opc cpu/sh.cpu cpu/sh.opc cpu/sh64-compact.cpu cpu/sh64-media.cpu cpu/simplify.inc cpu/xc16x.cpu cpu/xc16x.opc cpu/xstormy16.cpu cpu/xstormy16.opc elfcpp/ChangeLog elfcpp/README elfcpp/arm.h elfcpp/dwarf.h elfcpp/elfcpp.h elfcpp/elfcpp_file.h elfcpp/elfcpp_internal.h elfcpp/elfcpp_swap.h elfcpp/i386.h elfcpp/mips.h elfcpp/powerpc.h elfcpp/sparc.h elfcpp/tilegx.h elfcpp/x86_64.h gas/.gitignore gas/CONTRIBUTORS gas/COPYING gas/ChangeLog gas/ChangeLog-0001 gas/ChangeLog-0203 gas/ChangeLog-2004 gas/ChangeLog-2005 gas/ChangeLog-2006 gas/ChangeLog-2007 gas/ChangeLog-2008 gas/ChangeLog-2009 gas/ChangeLog-2010 gas/ChangeLog-2011 gas/ChangeLog-2012 gas/ChangeLog-9295 gas/ChangeLog-9697 gas/ChangeLog-9899 gas/MAINTAINERS gas/Makefile.am gas/Makefile.in gas/NEWS gas/README gas/acinclude.m4 gas/aclocal.m4 gas/app.c gas/as.c gas/as.h gas/asintl.h gas/atof-generic.c gas/bignum.h gas/bit_fix.h gas/cgen.c gas/cgen.h gas/compress-debug.c gas/compress-debug.h gas/cond.c gas/config.in gas/config/aout_gnu.h gas/config/atof-ieee.c gas/config/atof-vax.c gas/config/bfin-aux.h gas/config/bfin-defs.h gas/config/bfin-lex-wrapper.c gas/config/bfin-lex.l gas/config/bfin-parse.y gas/config/e-crisaout.c gas/config/e-criself.c gas/config/e-i386aout.c gas/config/e-i386coff.c gas/config/e-i386elf.c gas/config/e-mipself.c gas/config/itbl-mips.h gas/config/m68k-parse.h gas/config/m68k-parse.y gas/config/obj-aout.c gas/config/obj-aout.h gas/config/obj-coff-seh.c gas/config/obj-coff-seh.h gas/config/obj-coff.c gas/config/obj-coff.h gas/config/obj-ecoff.c gas/config/obj-ecoff.h gas/config/obj-elf.c gas/config/obj-elf.h gas/config/obj-evax.c gas/config/obj-evax.h gas/config/obj-fdpicelf.c gas/config/obj-fdpicelf.h gas/config/obj-macho.c gas/config/obj-macho.h gas/config/obj-multi.c gas/config/obj-multi.h gas/config/obj-som.c gas/config/obj-som.h gas/config/rl78-defs.h gas/config/rl78-parse.y gas/config/rx-defs.h gas/config/rx-parse.y gas/config/tc-aarch64.c gas/config/tc-aarch64.h gas/config/tc-alpha.c gas/config/tc-alpha.h gas/config/tc-arc.c gas/config/tc-arc.h gas/config/tc-arm.c gas/config/tc-arm.h gas/config/tc-avr.c gas/config/tc-avr.h gas/config/tc-bfin.c gas/config/tc-bfin.h gas/config/tc-cr16.c gas/config/tc-cr16.h gas/config/tc-cris.c gas/config/tc-cris.h gas/config/tc-crx.c gas/config/tc-crx.h gas/config/tc-d10v.c gas/config/tc-d10v.h gas/config/tc-d30v.c gas/config/tc-d30v.h gas/config/tc-dlx.c gas/config/tc-dlx.h gas/config/tc-epiphany.c gas/config/tc-epiphany.h gas/config/tc-fr30.c gas/config/tc-fr30.h gas/config/tc-frv.c gas/config/tc-frv.h gas/config/tc-generic.c gas/config/tc-generic.h gas/config/tc-h8300.c gas/config/tc-h8300.h gas/config/tc-hppa.c gas/config/tc-hppa.h gas/config/tc-i370.c gas/config/tc-i370.h gas/config/tc-i386-intel.c gas/config/tc-i386.c gas/config/tc-i386.h gas/config/tc-i860.c gas/config/tc-i860.h gas/config/tc-i960.c gas/config/tc-i960.h gas/config/tc-ia64.c gas/config/tc-ia64.h gas/config/tc-ip2k.c gas/config/tc-ip2k.h gas/config/tc-iq2000.c gas/config/tc-iq2000.h gas/config/tc-lm32.c gas/config/tc-lm32.h gas/config/tc-m32c.c gas/config/tc-m32c.h gas/config/tc-m32r.c gas/config/tc-m32r.h gas/config/tc-m68851.h gas/config/tc-m68hc11.c gas/config/tc-m68hc11.h gas/config/tc-m68k.c gas/config/tc-m68k.h gas/config/tc-mcore.c gas/config/tc-mcore.h gas/config/tc-mep.c gas/config/tc-mep.h gas/config/tc-metag.c gas/config/tc-metag.h gas/config/tc-microblaze.c gas/config/tc-microblaze.h gas/config/tc-mips.c gas/config/tc-mips.h gas/config/tc-mmix.c gas/config/tc-mmix.h gas/config/tc-mn10200.c gas/config/tc-mn10200.h gas/config/tc-mn10300.c gas/config/tc-mn10300.h gas/config/tc-moxie.c gas/config/tc-moxie.h gas/config/tc-msp430.c gas/config/tc-msp430.h gas/config/tc-mt.c gas/config/tc-mt.h gas/config/tc-nios2.c gas/config/tc-nios2.h gas/config/tc-ns32k.c gas/config/tc-ns32k.h gas/config/tc-openrisc.c gas/config/tc-openrisc.h gas/config/tc-or32.c gas/config/tc-or32.h gas/config/tc-pdp11.c gas/config/tc-pdp11.h gas/config/tc-pj.c gas/config/tc-pj.h gas/config/tc-ppc.c gas/config/tc-ppc.h gas/config/tc-rl78.c gas/config/tc-rl78.h gas/config/tc-rx.c gas/config/tc-rx.h gas/config/tc-s390.c gas/config/tc-s390.h gas/config/tc-score.c gas/config/tc-score.h gas/config/tc-score7.c gas/config/tc-sh.c gas/config/tc-sh.h gas/config/tc-sh64.c gas/config/tc-sh64.h gas/config/tc-sparc.c gas/config/tc-sparc.h gas/config/tc-spu.c gas/config/tc-spu.h gas/config/tc-tic30.c gas/config/tc-tic30.h gas/config/tc-tic4x.c gas/config/tc-tic4x.h gas/config/tc-tic54x.c gas/config/tc-tic54x.h gas/config/tc-tic6x.c gas/config/tc-tic6x.h gas/config/tc-tilegx.c gas/config/tc-tilegx.h gas/config/tc-tilepro.c gas/config/tc-tilepro.h gas/config/tc-v850.c gas/config/tc-v850.h gas/config/tc-vax.c gas/config/tc-vax.h gas/config/tc-xc16x.c gas/config/tc-xc16x.h gas/config/tc-xgate.c gas/config/tc-xgate.h gas/config/tc-xstormy16.c gas/config/tc-xstormy16.h gas/config/tc-xtensa.c gas/config/tc-xtensa.h gas/config/tc-z80.c gas/config/tc-z80.h gas/config/tc-z8k.c gas/config/tc-z8k.h gas/config/te-386bsd.h gas/config/te-aix5.h gas/config/te-armeabi.h gas/config/te-armlinuxeabi.h gas/config/te-dragonfly.h gas/config/te-dynix.h gas/config/te-epoc-pe.h gas/config/te-freebsd.h gas/config/te-generic.h gas/config/te-gnu.h gas/config/te-go32.h gas/config/te-hppa.h gas/config/te-hppa64.h gas/config/te-hppalinux64.h gas/config/te-hpux.h gas/config/te-i386aix.h gas/config/te-ia64aix.h gas/config/te-interix.h gas/config/te-irix.h gas/config/te-linux.h gas/config/te-lynx.h gas/config/te-mach.h gas/config/te-macos.h gas/config/te-nacl.h gas/config/te-nbsd.h gas/config/te-nbsd532.h gas/config/te-netware.h gas/config/te-pc532mach.h gas/config/te-pe.h gas/config/te-pep.h gas/config/te-psos.h gas/config/te-riscix.h gas/config/te-solaris.h gas/config/te-sparcaout.h gas/config/te-sun3.h gas/config/te-svr4.h gas/config/te-symbian.h gas/config/te-tmips.h gas/config/te-uclinux.h gas/config/te-vms.c gas/config/te-vms.h gas/config/te-vxworks.h gas/config/te-wince-pe.h gas/config/vax-inst.h gas/config/xtensa-istack.h gas/config/xtensa-relax.c gas/config/xtensa-relax.h gas/configure gas/configure.com gas/configure.in gas/configure.tgt gas/debug.c gas/dep-in.sed gas/depend.c gas/doc/Makefile.am gas/doc/Makefile.in gas/doc/all.texi gas/doc/as.texinfo gas/doc/c-aarch64.texi gas/doc/c-alpha.texi gas/doc/c-arc.texi gas/doc/c-arm.texi gas/doc/c-avr.texi gas/doc/c-bfin.texi gas/doc/c-cr16.texi gas/doc/c-cris.texi gas/doc/c-d10v.texi gas/doc/c-d30v.texi gas/doc/c-epiphany.texi gas/doc/c-h8300.texi gas/doc/c-hppa.texi gas/doc/c-i370.texi gas/doc/c-i386.texi gas/doc/c-i860.texi gas/doc/c-i960.texi gas/doc/c-ia64.texi gas/doc/c-ip2k.texi gas/doc/c-lm32.texi gas/doc/c-m32c.texi gas/doc/c-m32r.texi gas/doc/c-m68hc11.texi gas/doc/c-m68k.texi gas/doc/c-metag.texi gas/doc/c-microblaze.texi gas/doc/c-mips.texi gas/doc/c-mmix.texi gas/doc/c-msp430.texi gas/doc/c-mt.texi gas/doc/c-nios2.texi gas/doc/c-ns32k.texi gas/doc/c-pdp11.texi gas/doc/c-pj.texi gas/doc/c-ppc.texi gas/doc/c-rl78.texi gas/doc/c-rx.texi gas/doc/c-s390.texi gas/doc/c-score.texi gas/doc/c-sh.texi gas/doc/c-sh64.texi gas/doc/c-sparc.texi gas/doc/c-tic54x.texi gas/doc/c-tic6x.texi gas/doc/c-tilegx.texi gas/doc/c-tilepro.texi gas/doc/c-v850.texi gas/doc/c-vax.texi gas/doc/c-xc16x.texi gas/doc/c-xgate.texi gas/doc/c-xstormy16.texi gas/doc/c-xtensa.texi gas/doc/c-z80.texi gas/doc/c-z8k.texi gas/doc/fdl.texi gas/doc/h8.texi gas/doc/internals.texi gas/dw2gencfi.c gas/dw2gencfi.h gas/dwarf2dbg.c gas/dwarf2dbg.h gas/ecoff.c gas/ecoff.h gas/ehopt.c gas/emul-target.h gas/emul.h gas/expr.c gas/expr.h gas/flonum-copy.c gas/flonum-konst.c gas/flonum-mult.c gas/flonum.h gas/frags.c gas/frags.h gas/gdbinit.in gas/hash.c gas/hash.h gas/input-file.c gas/input-file.h gas/input-scrub.c gas/itbl-lex-wrapper.c gas/itbl-lex.h gas/itbl-lex.l gas/itbl-ops.c gas/itbl-ops.h gas/itbl-parse.y gas/listing.c gas/listing.h gas/literal.c gas/macro.c gas/macro.h gas/makefile.vms gas/messages.c gas/obj.h gas/output-file.c gas/output-file.h gas/po/.cvsignore gas/po/Make-in gas/po/POTFILES.in gas/po/es.po gas/po/fi.po gas/po/fr.po gas/po/gas.pot gas/po/id.po gas/po/ja.po gas/po/ru.po gas/po/rw.po gas/po/tr.po gas/read.c gas/read.h gas/remap.c gas/sb.c gas/sb.h gas/stabs.c gas/stamp-h.in gas/struc-symbol.h gas/subsegs.c gas/subsegs.h gas/symbols.c gas/symbols.h gas/tc.h gas/testsuite/ChangeLog gas/testsuite/ChangeLog-2004 gas/testsuite/ChangeLog-2005 gas/testsuite/ChangeLog-2006 gas/testsuite/ChangeLog-2007 gas/testsuite/ChangeLog-2008 gas/testsuite/ChangeLog-2009 gas/testsuite/ChangeLog-2010 gas/testsuite/ChangeLog-2011 gas/testsuite/ChangeLog-2012 gas/testsuite/ChangeLog-9303 gas/testsuite/config/default.exp gas/testsuite/gas/aarch64/aarch64.exp gas/testsuite/gas/aarch64/addsub.d gas/testsuite/gas/aarch64/addsub.s gas/testsuite/gas/aarch64/adr_1.d gas/testsuite/gas/aarch64/adr_1.s gas/testsuite/gas/aarch64/advsimd-across.d gas/testsuite/gas/aarch64/advsimd-across.s gas/testsuite/gas/aarch64/advsimd-misc.d gas/testsuite/gas/aarch64/advsimd-misc.s gas/testsuite/gas/aarch64/advsisd-copy.d gas/testsuite/gas/aarch64/advsisd-copy.s gas/testsuite/gas/aarch64/advsisd-misc.d gas/testsuite/gas/aarch64/advsisd-misc.s gas/testsuite/gas/aarch64/alias.d gas/testsuite/gas/aarch64/alias.s gas/testsuite/gas/aarch64/b_1.d gas/testsuite/gas/aarch64/b_1.s gas/testsuite/gas/aarch64/beq_1.d gas/testsuite/gas/aarch64/beq_1.s gas/testsuite/gas/aarch64/bitfield-alias.d gas/testsuite/gas/aarch64/bitfield-alias.s gas/testsuite/gas/aarch64/bitfield-bfm.d gas/testsuite/gas/aarch64/bitfield-bfm.s gas/testsuite/gas/aarch64/bitfield-dump gas/testsuite/gas/aarch64/bitfield-no-aliases.d gas/testsuite/gas/aarch64/crc32.d gas/testsuite/gas/aarch64/crc32.s gas/testsuite/gas/aarch64/crypto.d gas/testsuite/gas/aarch64/crypto.s gas/testsuite/gas/aarch64/diagnostic.d gas/testsuite/gas/aarch64/diagnostic.l gas/testsuite/gas/aarch64/diagnostic.s gas/testsuite/gas/aarch64/floatdp2.d gas/testsuite/gas/aarch64/floatdp2.s gas/testsuite/gas/aarch64/fp_cvt_int.d gas/testsuite/gas/aarch64/fp_cvt_int.s gas/testsuite/gas/aarch64/fpmov.d gas/testsuite/gas/aarch64/fpmov.s gas/testsuite/gas/aarch64/illegal-2.d gas/testsuite/gas/aarch64/illegal-2.l gas/testsuite/gas/aarch64/illegal-2.s gas/testsuite/gas/aarch64/illegal.d gas/testsuite/gas/aarch64/illegal.l gas/testsuite/gas/aarch64/illegal.s gas/testsuite/gas/aarch64/ilp32-basic.d gas/testsuite/gas/aarch64/ilp32-basic.s gas/testsuite/gas/aarch64/inst-directive.d gas/testsuite/gas/aarch64/inst-directive.s gas/testsuite/gas/aarch64/int-insns.d gas/testsuite/gas/aarch64/int-insns.s gas/testsuite/gas/aarch64/ldr_1.d gas/testsuite/gas/aarch64/ldr_1.s gas/testsuite/gas/aarch64/ldst-exclusive.d gas/testsuite/gas/aarch64/ldst-exclusive.s gas/testsuite/gas/aarch64/ldst-reg-imm-post-ind.d gas/testsuite/gas/aarch64/ldst-reg-imm-post-ind.s gas/testsuite/gas/aarch64/ldst-reg-imm-pre-ind.d gas/testsuite/gas/aarch64/ldst-reg-imm-pre-ind.s gas/testsuite/gas/aarch64/ldst-reg-pair.d gas/testsuite/gas/aarch64/ldst-reg-pair.s gas/testsuite/gas/aarch64/ldst-reg-reg-offset.d gas/testsuite/gas/aarch64/ldst-reg-reg-offset.s gas/testsuite/gas/aarch64/ldst-reg-uns-imm.d gas/testsuite/gas/aarch64/ldst-reg-uns-imm.s gas/testsuite/gas/aarch64/ldst-reg-unscaled-imm.d gas/testsuite/gas/aarch64/ldst-reg-unscaled-imm.s gas/testsuite/gas/aarch64/legacy_reg_names.d gas/testsuite/gas/aarch64/legacy_reg_names.l gas/testsuite/gas/aarch64/legacy_reg_names.s gas/testsuite/gas/aarch64/mapmisc.d gas/testsuite/gas/aarch64/mapmisc.dat gas/testsuite/gas/aarch64/mapmisc.s gas/testsuite/gas/aarch64/mapping.d gas/testsuite/gas/aarch64/mapping.s gas/testsuite/gas/aarch64/mapping2.d gas/testsuite/gas/aarch64/mapping2.s gas/testsuite/gas/aarch64/mapping3.d gas/testsuite/gas/aarch64/mapping3.s gas/testsuite/gas/aarch64/mapping4.d gas/testsuite/gas/aarch64/mapping4.s gas/testsuite/gas/aarch64/mov-no-aliases.d gas/testsuite/gas/aarch64/mov.d gas/testsuite/gas/aarch64/mov.s gas/testsuite/gas/aarch64/movi.d gas/testsuite/gas/aarch64/movi.s gas/testsuite/gas/aarch64/msr.d gas/testsuite/gas/aarch64/msr.s gas/testsuite/gas/aarch64/neon-fp-cvt-int.d gas/testsuite/gas/aarch64/neon-fp-cvt-int.s gas/testsuite/gas/aarch64/neon-frint.d gas/testsuite/gas/aarch64/neon-frint.s gas/testsuite/gas/aarch64/neon-ins.d gas/testsuite/gas/aarch64/neon-ins.s gas/testsuite/gas/aarch64/neon-not.d gas/testsuite/gas/aarch64/neon-not.s gas/testsuite/gas/aarch64/neon-vfp-reglist-post.d gas/testsuite/gas/aarch64/neon-vfp-reglist-post.s gas/testsuite/gas/aarch64/neon-vfp-reglist.d gas/testsuite/gas/aarch64/neon-vfp-reglist.s gas/testsuite/gas/aarch64/no-aliases.d gas/testsuite/gas/aarch64/optional.d gas/testsuite/gas/aarch64/optional.s gas/testsuite/gas/aarch64/programmer-friendly.d gas/testsuite/gas/aarch64/programmer-friendly.s gas/testsuite/gas/aarch64/reloc-data.d gas/testsuite/gas/aarch64/reloc-data.s gas/testsuite/gas/aarch64/reloc-insn.d gas/testsuite/gas/aarch64/reloc-insn.s gas/testsuite/gas/aarch64/shifted.d gas/testsuite/gas/aarch64/shifted.s gas/testsuite/gas/aarch64/symbol.d gas/testsuite/gas/aarch64/symbol.s gas/testsuite/gas/aarch64/sysreg-1.d gas/testsuite/gas/aarch64/sysreg-1.s gas/testsuite/gas/aarch64/sysreg.d gas/testsuite/gas/aarch64/sysreg.s gas/testsuite/gas/aarch64/system.d gas/testsuite/gas/aarch64/system.s gas/testsuite/gas/aarch64/tbz_1.d gas/testsuite/gas/aarch64/tbz_1.s gas/testsuite/gas/aarch64/tlbi_op.d gas/testsuite/gas/aarch64/tlbi_op.s gas/testsuite/gas/aarch64/tls.d gas/testsuite/gas/aarch64/tls.s gas/testsuite/gas/aarch64/verbose-error.d gas/testsuite/gas/aarch64/verbose-error.l gas/testsuite/gas/aarch64/verbose-error.s gas/testsuite/gas/all/align.d gas/testsuite/gas/all/align.s gas/testsuite/gas/all/align2.d gas/testsuite/gas/all/align2.s gas/testsuite/gas/all/altmac2.d gas/testsuite/gas/all/altmac2.s gas/testsuite/gas/all/altmacro.d gas/testsuite/gas/all/altmacro.s gas/testsuite/gas/all/assign-bad.s gas/testsuite/gas/all/assign-ok.s gas/testsuite/gas/all/assign.d gas/testsuite/gas/all/assign.s gas/testsuite/gas/all/byte.d gas/testsuite/gas/all/byte.l gas/testsuite/gas/all/byte.s gas/testsuite/gas/all/cofftag.d gas/testsuite/gas/all/cofftag.s gas/testsuite/gas/all/comment.s gas/testsuite/gas/all/cond.l gas/testsuite/gas/all/cond.s gas/testsuite/gas/all/diff1.s gas/testsuite/gas/all/equ-bad.s gas/testsuite/gas/all/equ-ok.s gas/testsuite/gas/all/equiv1.s gas/testsuite/gas/all/equiv2.s gas/testsuite/gas/all/eqv-bad.s gas/testsuite/gas/all/eqv-ok.s gas/testsuite/gas/all/err-1.s gas/testsuite/gas/all/eval.d gas/testsuite/gas/all/eval.s gas/testsuite/gas/all/excl.s gas/testsuite/gas/all/fastcall.s gas/testsuite/gas/all/float.s gas/testsuite/gas/all/forward.d gas/testsuite/gas/all/forward.s gas/testsuite/gas/all/fwdexp.d gas/testsuite/gas/all/fwdexp.s gas/testsuite/gas/all/gas.exp gas/testsuite/gas/all/incbin.d gas/testsuite/gas/all/incbin.dat gas/testsuite/gas/all/incbin.s gas/testsuite/gas/all/itbl gas/testsuite/gas/all/itbl-test.c gas/testsuite/gas/all/itbl.s gas/testsuite/gas/all/octa.d gas/testsuite/gas/all/octa.s gas/testsuite/gas/all/p1480.s gas/testsuite/gas/all/p2425.s gas/testsuite/gas/all/quad.d gas/testsuite/gas/all/quad.s gas/testsuite/gas/all/redef.d gas/testsuite/gas/all/redef.s gas/testsuite/gas/all/redef2.d gas/testsuite/gas/all/redef2.s gas/testsuite/gas/all/redef3.d gas/testsuite/gas/all/redef3.s gas/testsuite/gas/all/redef4.s gas/testsuite/gas/all/redef5.s gas/testsuite/gas/all/relax.d gas/testsuite/gas/all/relax.s gas/testsuite/gas/all/sleb128-2.d gas/testsuite/gas/all/sleb128-2.s gas/testsuite/gas/all/sleb128-3.d gas/testsuite/gas/all/sleb128-3.s gas/testsuite/gas/all/sleb128-4.d gas/testsuite/gas/all/sleb128-4.s gas/testsuite/gas/all/sleb128-5.d gas/testsuite/gas/all/sleb128-5.s gas/testsuite/gas/all/sleb128-7.d gas/testsuite/gas/all/sleb128-7.s gas/testsuite/gas/all/sleb128.d gas/testsuite/gas/all/sleb128.s gas/testsuite/gas/all/string.d gas/testsuite/gas/all/string.s gas/testsuite/gas/all/struct.d gas/testsuite/gas/all/struct.s gas/testsuite/gas/all/test-example.c gas/testsuite/gas/all/test-gen.c gas/testsuite/gas/all/warn-1.s gas/testsuite/gas/all/weakref1.d gas/testsuite/gas/all/weakref1.s gas/testsuite/gas/all/weakref1g.d gas/testsuite/gas/all/weakref1l.d gas/testsuite/gas/all/weakref1u.d gas/testsuite/gas/all/weakref1w.d gas/testsuite/gas/all/weakref2.s gas/testsuite/gas/all/weakref3.s gas/testsuite/gas/all/weakref4.s gas/testsuite/gas/all/x930509.s gas/testsuite/gas/alpha/alpha.exp gas/testsuite/gas/alpha/auto-align-1.d gas/testsuite/gas/alpha/auto-align-1.s gas/testsuite/gas/alpha/elf-reloc-1.d gas/testsuite/gas/alpha/elf-reloc-1.s gas/testsuite/gas/alpha/elf-reloc-2.l gas/testsuite/gas/alpha/elf-reloc-2.s gas/testsuite/gas/alpha/elf-reloc-3.l gas/testsuite/gas/alpha/elf-reloc-3.s gas/testsuite/gas/alpha/elf-reloc-4.d gas/testsuite/gas/alpha/elf-reloc-4.s gas/testsuite/gas/alpha/elf-reloc-5.d gas/testsuite/gas/alpha/elf-reloc-5.s gas/testsuite/gas/alpha/elf-reloc-6.l gas/testsuite/gas/alpha/elf-reloc-6.s gas/testsuite/gas/alpha/elf-reloc-7.d gas/testsuite/gas/alpha/elf-reloc-7.s gas/testsuite/gas/alpha/elf-reloc-8.d gas/testsuite/gas/alpha/elf-reloc-8.s gas/testsuite/gas/alpha/elf-tls-1.d gas/testsuite/gas/alpha/elf-tls-1.s gas/testsuite/gas/alpha/elf-tls-2.l gas/testsuite/gas/alpha/elf-tls-2.s gas/testsuite/gas/alpha/elf-tls-3.l gas/testsuite/gas/alpha/elf-tls-3.s gas/testsuite/gas/alpha/elf-usepv-1.d gas/testsuite/gas/alpha/elf-usepv-1.s gas/testsuite/gas/alpha/elf-usepv-2.l gas/testsuite/gas/alpha/elf-usepv-2.s gas/testsuite/gas/alpha/fp.d gas/testsuite/gas/alpha/fp.s gas/testsuite/gas/alpha/unop.d gas/testsuite/gas/alpha/unop.s gas/testsuite/gas/arc/adc.d gas/testsuite/gas/arc/adc.s gas/testsuite/gas/arc/add.d gas/testsuite/gas/arc/add.s gas/testsuite/gas/arc/alias.d gas/testsuite/gas/arc/alias.s gas/testsuite/gas/arc/and.d gas/testsuite/gas/arc/and.s gas/testsuite/gas/arc/arc.exp gas/testsuite/gas/arc/asl.d gas/testsuite/gas/arc/asl.s gas/testsuite/gas/arc/asr.d gas/testsuite/gas/arc/asr.s gas/testsuite/gas/arc/b.d gas/testsuite/gas/arc/b.s gas/testsuite/gas/arc/bic.d gas/testsuite/gas/arc/bic.s gas/testsuite/gas/arc/bl.d gas/testsuite/gas/arc/bl.s gas/testsuite/gas/arc/branch.d gas/testsuite/gas/arc/branch.s gas/testsuite/gas/arc/brk.d gas/testsuite/gas/arc/brk.s gas/testsuite/gas/arc/extb.d gas/testsuite/gas/arc/extb.s gas/testsuite/gas/arc/extensions.d gas/testsuite/gas/arc/extensions.s gas/testsuite/gas/arc/extw.d gas/testsuite/gas/arc/extw.s gas/testsuite/gas/arc/flag.d gas/testsuite/gas/arc/flag.s gas/testsuite/gas/arc/insn3.d gas/testsuite/gas/arc/insn3.s gas/testsuite/gas/arc/j.d gas/testsuite/gas/arc/j.s gas/testsuite/gas/arc/jl.d gas/testsuite/gas/arc/jl.s gas/testsuite/gas/arc/ld.d gas/testsuite/gas/arc/ld.s gas/testsuite/gas/arc/ld2.d gas/testsuite/gas/arc/ld2.s gas/testsuite/gas/arc/lp.d gas/testsuite/gas/arc/lp.s gas/testsuite/gas/arc/lsr.d gas/testsuite/gas/arc/lsr.s gas/testsuite/gas/arc/math.d gas/testsuite/gas/arc/math.s gas/testsuite/gas/arc/mov.d gas/testsuite/gas/arc/mov.s gas/testsuite/gas/arc/nop.d gas/testsuite/gas/arc/nop.s gas/testsuite/gas/arc/or.d gas/testsuite/gas/arc/or.s gas/testsuite/gas/arc/rlc.d gas/testsuite/gas/arc/rlc.s gas/testsuite/gas/arc/ror.d gas/testsuite/gas/arc/ror.s gas/testsuite/gas/arc/rrc.d gas/testsuite/gas/arc/rrc.s gas/testsuite/gas/arc/sbc.d gas/testsuite/gas/arc/sbc.s gas/testsuite/gas/arc/sexb.d gas/testsuite/gas/arc/sexb.s gas/testsuite/gas/arc/sexw.d gas/testsuite/gas/arc/sexw.s gas/testsuite/gas/arc/sleep.d gas/testsuite/gas/arc/sleep.s gas/testsuite/gas/arc/sshift.d gas/testsuite/gas/arc/sshift.s gas/testsuite/gas/arc/st.d gas/testsuite/gas/arc/st.s gas/testsuite/gas/arc/sub.d gas/testsuite/gas/arc/sub.s gas/testsuite/gas/arc/swi.d gas/testsuite/gas/arc/swi.s gas/testsuite/gas/arc/warn.exp gas/testsuite/gas/arc/warn.s gas/testsuite/gas/arc/xor.d gas/testsuite/gas/arc/xor.s gas/testsuite/gas/arm/abs12.d gas/testsuite/gas/arm/abs12.s gas/testsuite/gas/arm/addsw-bad.d gas/testsuite/gas/arm/addsw-bad.l gas/testsuite/gas/arm/addsw-bad.s gas/testsuite/gas/arm/addthumb2err.d gas/testsuite/gas/arm/addthumb2err.l gas/testsuite/gas/arm/addthumb2err.s gas/testsuite/gas/arm/adr-invalid.d gas/testsuite/gas/arm/adr-invalid.l gas/testsuite/gas/arm/adr-invalid.s gas/testsuite/gas/arm/adr.d gas/testsuite/gas/arm/adr.s gas/testsuite/gas/arm/adrl.d gas/testsuite/gas/arm/adrl.s gas/testsuite/gas/arm/align.d gas/testsuite/gas/arm/align.s gas/testsuite/gas/arm/align64.d gas/testsuite/gas/arm/align64.s gas/testsuite/gas/arm/any-idiv.d gas/testsuite/gas/arm/any-idiv.s gas/testsuite/gas/arm/arch4t-eabi.d gas/testsuite/gas/arm/arch4t.d gas/testsuite/gas/arm/arch4t.s gas/testsuite/gas/arm/arch5tej.d gas/testsuite/gas/arm/arch5tej.s gas/testsuite/gas/arm/arch6zk.d gas/testsuite/gas/arm/arch6zk.s gas/testsuite/gas/arm/arch7.d gas/testsuite/gas/arm/arch7.s gas/testsuite/gas/arm/arch7a-mp.d gas/testsuite/gas/arm/arch7ar-mp.s gas/testsuite/gas/arm/arch7em-bad.d gas/testsuite/gas/arm/arch7em-bad.l gas/testsuite/gas/arm/arch7em.d gas/testsuite/gas/arm/arch7em.s gas/testsuite/gas/arm/arch7m-bad.d gas/testsuite/gas/arm/arch7m-bad.l gas/testsuite/gas/arm/arch7m-bad.s gas/testsuite/gas/arm/arch7r-mp.d gas/testsuite/gas/arm/archv6.d gas/testsuite/gas/arm/archv6.s gas/testsuite/gas/arm/archv6m.d gas/testsuite/gas/arm/archv6m.s gas/testsuite/gas/arm/archv6s-m-bad.d gas/testsuite/gas/arm/archv6s-m-bad.l gas/testsuite/gas/arm/archv6s-m.d gas/testsuite/gas/arm/archv6s-m.s gas/testsuite/gas/arm/archv6t2-bad.d gas/testsuite/gas/arm/archv6t2-bad.l gas/testsuite/gas/arm/archv6t2-bad.s gas/testsuite/gas/arm/archv6t2.d gas/testsuite/gas/arm/archv6t2.s gas/testsuite/gas/arm/arm-idiv-bad.d gas/testsuite/gas/arm/arm-idiv-bad.l gas/testsuite/gas/arm/arm-idiv-bad.s gas/testsuite/gas/arm/arm-idiv.d gas/testsuite/gas/arm/arm-idiv.s gas/testsuite/gas/arm/arm-it-auto-2.d gas/testsuite/gas/arm/arm-it-auto-2.s gas/testsuite/gas/arm/arm-it-auto-3.d gas/testsuite/gas/arm/arm-it-auto-3.s gas/testsuite/gas/arm/arm-it-auto.d gas/testsuite/gas/arm/arm-it-auto.s gas/testsuite/gas/arm/arm-it-bad-2.d gas/testsuite/gas/arm/arm-it-bad-2.l gas/testsuite/gas/arm/arm-it-bad-2.s gas/testsuite/gas/arm/arm-it-bad-3.d gas/testsuite/gas/arm/arm-it-bad-3.l gas/testsuite/gas/arm/arm-it-bad-3.s gas/testsuite/gas/arm/arm-it-bad.d gas/testsuite/gas/arm/arm-it-bad.l gas/testsuite/gas/arm/arm-it-bad.s gas/testsuite/gas/arm/arm-it.d gas/testsuite/gas/arm/arm-it.s gas/testsuite/gas/arm/arm.exp gas/testsuite/gas/arm/arm3-bad.d gas/testsuite/gas/arm/arm3-bad.l gas/testsuite/gas/arm/arm3-bad.s gas/testsuite/gas/arm/arm3.d gas/testsuite/gas/arm/arm3.s gas/testsuite/gas/arm/arm6.d gas/testsuite/gas/arm/arm6.s gas/testsuite/gas/arm/arm7-bad.d gas/testsuite/gas/arm/arm7-bad.l gas/testsuite/gas/arm/arm7-bad.s gas/testsuite/gas/arm/arm7dm.d gas/testsuite/gas/arm/arm7dm.s gas/testsuite/gas/arm/arm7t.d gas/testsuite/gas/arm/arm7t.s gas/testsuite/gas/arm/armv1-bad.d gas/testsuite/gas/arm/armv1-bad.l gas/testsuite/gas/arm/armv1-bad.s gas/testsuite/gas/arm/armv1.d gas/testsuite/gas/arm/armv1.l gas/testsuite/gas/arm/armv1.s gas/testsuite/gas/arm/armv2-mp-bad.d gas/testsuite/gas/arm/armv2-mp-bad.l gas/testsuite/gas/arm/armv7-a+idiv.d gas/testsuite/gas/arm/armv7-a+idiv.s gas/testsuite/gas/arm/armv7-a+virt.d gas/testsuite/gas/arm/armv7-a+virt.s gas/testsuite/gas/arm/armv8-a+crypto.d gas/testsuite/gas/arm/armv8-a+crypto.s gas/testsuite/gas/arm/armv8-a+fp.d gas/testsuite/gas/arm/armv8-a+fp.s gas/testsuite/gas/arm/armv8-a+simd.d gas/testsuite/gas/arm/armv8-a+simd.s gas/testsuite/gas/arm/armv8-a-bad.d gas/testsuite/gas/arm/armv8-a-bad.l gas/testsuite/gas/arm/armv8-a-bad.s gas/testsuite/gas/arm/armv8-a-barrier-arm.d gas/testsuite/gas/arm/armv8-a-barrier-thumb.d gas/testsuite/gas/arm/armv8-a-barrier.s gas/testsuite/gas/arm/armv8-a-it-bad.d gas/testsuite/gas/arm/armv8-a-it-bad.l gas/testsuite/gas/arm/armv8-a-it-bad.s gas/testsuite/gas/arm/armv8-a.d gas/testsuite/gas/arm/armv8-a.s gas/testsuite/gas/arm/attr-any-armv4t.d gas/testsuite/gas/arm/attr-any-armv4t.s gas/testsuite/gas/arm/attr-any-thumbv6.d gas/testsuite/gas/arm/attr-any-thumbv6.s gas/testsuite/gas/arm/attr-cpu-directive.d gas/testsuite/gas/arm/attr-cpu-directive.s gas/testsuite/gas/arm/attr-default.d gas/testsuite/gas/arm/attr-march-all.d gas/testsuite/gas/arm/attr-march-armv1.d gas/testsuite/gas/arm/attr-march-armv2.d gas/testsuite/gas/arm/attr-march-armv2a.d gas/testsuite/gas/arm/attr-march-armv2s.d gas/testsuite/gas/arm/attr-march-armv3.d gas/testsuite/gas/arm/attr-march-armv3m.d gas/testsuite/gas/arm/attr-march-armv4.d gas/testsuite/gas/arm/attr-march-armv4t.d gas/testsuite/gas/arm/attr-march-armv4txm.d gas/testsuite/gas/arm/attr-march-armv4xm.d gas/testsuite/gas/arm/attr-march-armv5.d gas/testsuite/gas/arm/attr-march-armv5t.d gas/testsuite/gas/arm/attr-march-armv5te.d gas/testsuite/gas/arm/attr-march-armv5tej.d gas/testsuite/gas/arm/attr-march-armv5texp.d gas/testsuite/gas/arm/attr-march-armv5txm.d gas/testsuite/gas/arm/attr-march-armv6-m+os.d gas/testsuite/gas/arm/attr-march-armv6-m.d gas/testsuite/gas/arm/attr-march-armv6.d gas/testsuite/gas/arm/attr-march-armv6j.d gas/testsuite/gas/arm/attr-march-armv6k+sec.d gas/testsuite/gas/arm/attr-march-armv6k.d gas/testsuite/gas/arm/attr-march-armv6kt2.d gas/testsuite/gas/arm/attr-march-armv6s-m.d gas/testsuite/gas/arm/attr-march-armv6t2.d gas/testsuite/gas/arm/attr-march-armv6z.d gas/testsuite/gas/arm/attr-march-armv6zk.d gas/testsuite/gas/arm/attr-march-armv6zkt2.d gas/testsuite/gas/arm/attr-march-armv6zt2.d gas/testsuite/gas/arm/attr-march-armv7-a+idiv.d gas/testsuite/gas/arm/attr-march-armv7-a+mp.d gas/testsuite/gas/arm/attr-march-armv7-a+sec+virt.d gas/testsuite/gas/arm/attr-march-armv7-a+sec.d gas/testsuite/gas/arm/attr-march-armv7-a+virt.d gas/testsuite/gas/arm/attr-march-armv7-a.d gas/testsuite/gas/arm/attr-march-armv7-m.d gas/testsuite/gas/arm/attr-march-armv7-r+mp.d gas/testsuite/gas/arm/attr-march-armv7-r.d gas/testsuite/gas/arm/attr-march-armv7.d gas/testsuite/gas/arm/attr-march-armv7a.d gas/testsuite/gas/arm/attr-march-armv7em.d gas/testsuite/gas/arm/attr-march-armv7m.d gas/testsuite/gas/arm/attr-march-armv7r.d gas/testsuite/gas/arm/attr-march-armv8-a+crypto.d gas/testsuite/gas/arm/attr-march-armv8-a+fp.d gas/testsuite/gas/arm/attr-march-armv8-a+simd.d gas/testsuite/gas/arm/attr-march-armv8-a.d gas/testsuite/gas/arm/attr-march-iwmmxt.d gas/testsuite/gas/arm/attr-march-iwmmxt2.d gas/testsuite/gas/arm/attr-march-xscale.d gas/testsuite/gas/arm/attr-mcpu.d gas/testsuite/gas/arm/attr-mfpu-arm1020e.d gas/testsuite/gas/arm/attr-mfpu-arm1020t.d gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d gas/testsuite/gas/arm/attr-mfpu-fpa.d gas/testsuite/gas/arm/attr-mfpu-fpa10.d gas/testsuite/gas/arm/attr-mfpu-fpa11.d gas/testsuite/gas/arm/attr-mfpu-fpe.d gas/testsuite/gas/arm/attr-mfpu-fpe2.d gas/testsuite/gas/arm/attr-mfpu-fpe3.d gas/testsuite/gas/arm/attr-mfpu-maverick.d gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d gas/testsuite/gas/arm/attr-mfpu-neon.d gas/testsuite/gas/arm/attr-mfpu-softfpa.d gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d gas/testsuite/gas/arm/attr-mfpu-softvfp.d gas/testsuite/gas/arm/attr-mfpu-vfp.d gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d gas/testsuite/gas/arm/attr-mfpu-vfp10.d gas/testsuite/gas/arm/attr-mfpu-vfp3.d gas/testsuite/gas/arm/attr-mfpu-vfp9.d gas/testsuite/gas/arm/attr-mfpu-vfpv2.d gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d gas/testsuite/gas/arm/attr-mfpu-vfpv3.d gas/testsuite/gas/arm/attr-mfpu-vfpv4-d16.d gas/testsuite/gas/arm/attr-mfpu-vfpv4.d gas/testsuite/gas/arm/attr-mfpu-vfpxd.d gas/testsuite/gas/arm/attr-names.d gas/testsuite/gas/arm/attr-names.s gas/testsuite/gas/arm/attr-order.d gas/testsuite/gas/arm/attr-order.s gas/testsuite/gas/arm/attr-override-cpu-directive.d gas/testsuite/gas/arm/attr-override-cpu-directive.s gas/testsuite/gas/arm/attr-override-mcpu.d gas/testsuite/gas/arm/attr-override-mcpu.s gas/testsuite/gas/arm/attr-syntax.d gas/testsuite/gas/arm/attr-syntax.s gas/testsuite/gas/arm/backslash-at.d gas/testsuite/gas/arm/backslash-at.s gas/testsuite/gas/arm/barrier-bad-thumb.d gas/testsuite/gas/arm/barrier-bad.d gas/testsuite/gas/arm/barrier-bad.l gas/testsuite/gas/arm/barrier-bad.s gas/testsuite/gas/arm/barrier-thumb.d gas/testsuite/gas/arm/barrier.d gas/testsuite/gas/arm/barrier.s gas/testsuite/gas/arm/bignum1.d gas/testsuite/gas/arm/bignum1.s gas/testsuite/gas/arm/bl-local-2.d gas/testsuite/gas/arm/bl-local-2.s gas/testsuite/gas/arm/bl-local-v4t.d gas/testsuite/gas/arm/bl-local-v4t.s gas/testsuite/gas/arm/blank.s gas/testsuite/gas/arm/blx-bad.d gas/testsuite/gas/arm/blx-bad.s gas/testsuite/gas/arm/blx-local-thumb.l gas/testsuite/gas/arm/blx-local.d gas/testsuite/gas/arm/blx-local.l gas/testsuite/gas/arm/blx-local.s gas/testsuite/gas/arm/branch-reloc.d gas/testsuite/gas/arm/branch-reloc.l gas/testsuite/gas/arm/branch-reloc.s gas/testsuite/gas/arm/bundle-lock.d gas/testsuite/gas/arm/bundle-lock.s gas/testsuite/gas/arm/bundle.d gas/testsuite/gas/arm/bundle.s gas/testsuite/gas/arm/cmdline-bad-arch.d gas/testsuite/gas/arm/cmdline-bad-cpu.d gas/testsuite/gas/arm/copro.d gas/testsuite/gas/arm/copro.s gas/testsuite/gas/arm/crc32-bad.d gas/testsuite/gas/arm/crc32-bad.l gas/testsuite/gas/arm/crc32-bad.s gas/testsuite/gas/arm/crc32.d gas/testsuite/gas/arm/crc32.s gas/testsuite/gas/arm/depr-swp.d gas/testsuite/gas/arm/depr-swp.l gas/testsuite/gas/arm/depr-swp.s gas/testsuite/gas/arm/dis-data.d gas/testsuite/gas/arm/dis-data.s gas/testsuite/gas/arm/dis-data2.d gas/testsuite/gas/arm/dis-data2.s gas/testsuite/gas/arm/dis-data3.d gas/testsuite/gas/arm/dis-data3.s gas/testsuite/gas/arm/eabi_attr_1.d gas/testsuite/gas/arm/eabi_attr_1.s gas/testsuite/gas/arm/el_segundo.d gas/testsuite/gas/arm/el_segundo.s gas/testsuite/gas/arm/float.d gas/testsuite/gas/arm/float.s gas/testsuite/gas/arm/fp-save.d gas/testsuite/gas/arm/fp-save.s gas/testsuite/gas/arm/fpa-dyadic.d gas/testsuite/gas/arm/fpa-dyadic.s gas/testsuite/gas/arm/fpa-mem.d gas/testsuite/gas/arm/fpa-mem.s gas/testsuite/gas/arm/fpa-monadic.d gas/testsuite/gas/arm/fpa-monadic.s gas/testsuite/gas/arm/got_prel.d gas/testsuite/gas/arm/got_prel.s gas/testsuite/gas/arm/group-reloc-alu-encoding-bad.d gas/testsuite/gas/arm/group-reloc-alu-encoding-bad.l gas/testsuite/gas/arm/group-reloc-alu-encoding-bad.s gas/testsuite/gas/arm/group-reloc-alu-parsing-bad.d gas/testsuite/gas/arm/group-reloc-alu-parsing-bad.l gas/testsuite/gas/arm/group-reloc-alu-parsing-bad.s gas/testsuite/gas/arm/group-reloc-alu.d gas/testsuite/gas/arm/group-reloc-alu.s gas/testsuite/gas/arm/group-reloc-ldc-encoding-bad.d gas/testsuite/gas/arm/group-reloc-ldc-encoding-bad.l gas/testsuite/gas/arm/group-reloc-ldc-encoding-bad.s gas/testsuite/gas/arm/group-reloc-ldc-parsing-bad.d gas/testsuite/gas/arm/group-reloc-ldc-parsing-bad.l gas/testsuite/gas/arm/group-reloc-ldc-parsing-bad.s gas/testsuite/gas/arm/group-reloc-ldc.d gas/testsuite/gas/arm/group-reloc-ldc.s gas/testsuite/gas/arm/group-reloc-ldr-encoding-bad.d gas/testsuite/gas/arm/group-reloc-ldr-encoding-bad.l gas/testsuite/gas/arm/group-reloc-ldr-encoding-bad.s gas/testsuite/gas/arm/group-reloc-ldr-parsing-bad.d gas/testsuite/gas/arm/group-reloc-ldr-parsing-bad.l gas/testsuite/gas/arm/group-reloc-ldr-parsing-bad.s gas/testsuite/gas/arm/group-reloc-ldr.d gas/testsuite/gas/arm/group-reloc-ldr.s gas/testsuite/gas/arm/group-reloc-ldrs-encoding-bad.d gas/testsuite/gas/arm/group-reloc-ldrs-encoding-bad.l gas/testsuite/gas/arm/group-reloc-ldrs-encoding-bad.s gas/testsuite/gas/arm/group-reloc-ldrs-parsing-bad.d gas/testsuite/gas/arm/group-reloc-ldrs-parsing-bad.l gas/testsuite/gas/arm/group-reloc-ldrs-parsing-bad.s gas/testsuite/gas/arm/group-reloc-ldrs.d gas/testsuite/gas/arm/group-reloc-ldrs.s gas/testsuite/gas/arm/half-prec-neon.d gas/testsuite/gas/arm/half-prec-neon.s gas/testsuite/gas/arm/half-prec-psyntax.d gas/testsuite/gas/arm/half-prec-psyntax.s gas/testsuite/gas/arm/half-prec-vfpv3.d gas/testsuite/gas/arm/half-prec-vfpv3.s gas/testsuite/gas/arm/immed.d gas/testsuite/gas/arm/immed.s gas/testsuite/gas/arm/immed2.d gas/testsuite/gas/arm/immed2.s gas/testsuite/gas/arm/insn-error-a.d gas/testsuite/gas/arm/insn-error-a.l gas/testsuite/gas/arm/insn-error-a.s gas/testsuite/gas/arm/insn-error-t.d gas/testsuite/gas/arm/insn-error-t.l gas/testsuite/gas/arm/insn-error-t.s gas/testsuite/gas/arm/inst-po-2.d gas/testsuite/gas/arm/inst-po-2.l gas/testsuite/gas/arm/inst-po-2.s gas/testsuite/gas/arm/inst-po-3.d gas/testsuite/gas/arm/inst-po-3.s gas/testsuite/gas/arm/inst-po-be.d gas/testsuite/gas/arm/inst-po.d gas/testsuite/gas/arm/inst-po.s gas/testsuite/gas/arm/inst.d gas/testsuite/gas/arm/inst.s gas/testsuite/gas/arm/itblock.s gas/testsuite/gas/arm/iwmmxt-bad.d gas/testsuite/gas/arm/iwmmxt-bad.l gas/testsuite/gas/arm/iwmmxt-bad.s gas/testsuite/gas/arm/iwmmxt-bad2.d gas/testsuite/gas/arm/iwmmxt-bad2.l gas/testsuite/gas/arm/iwmmxt-bad2.s gas/testsuite/gas/arm/iwmmxt-wldsttbh.d gas/testsuite/gas/arm/iwmmxt-wldsttbh.s gas/testsuite/gas/arm/iwmmxt.d gas/testsuite/gas/arm/iwmmxt.s gas/testsuite/gas/arm/iwmmxt2.d gas/testsuite/gas/arm/iwmmxt2.s gas/testsuite/gas/arm/ld-sp-warn-cortex-m3.d gas/testsuite/gas/arm/ld-sp-warn-cortex-m3.l gas/testsuite/gas/arm/ld-sp-warn-cortex-m4.d gas/testsuite/gas/arm/ld-sp-warn-cortex-m4.l gas/testsuite/gas/arm/ld-sp-warn-v7.d gas/testsuite/gas/arm/ld-sp-warn-v7.l gas/testsuite/gas/arm/ld-sp-warn-v7a.d gas/testsuite/gas/arm/ld-sp-warn-v7a.l gas/testsuite/gas/arm/ld-sp-warn-v7e-m.l gas/testsuite/gas/arm/ld-sp-warn-v7em.d gas/testsuite/gas/arm/ld-sp-warn-v7m.d gas/testsuite/gas/arm/ld-sp-warn-v7m.l gas/testsuite/gas/arm/ld-sp-warn-v7r.d gas/testsuite/gas/arm/ld-sp-warn-v7r.l gas/testsuite/gas/arm/ld-sp-warn.d gas/testsuite/gas/arm/ld-sp-warn.l gas/testsuite/gas/arm/ld-sp-warn.s gas/testsuite/gas/arm/ldconst.d gas/testsuite/gas/arm/ldconst.s gas/testsuite/gas/arm/ldgesb-bad.d gas/testsuite/gas/arm/ldgesb-bad.l gas/testsuite/gas/arm/ldgesb-bad.s gas/testsuite/gas/arm/ldgesh-bad.d gas/testsuite/gas/arm/ldgesh-bad.l gas/testsuite/gas/arm/ldgesh-bad.s gas/testsuite/gas/arm/ldr-bad.d gas/testsuite/gas/arm/ldr-bad.l gas/testsuite/gas/arm/ldr-bad.s gas/testsuite/gas/arm/ldr-global.d gas/testsuite/gas/arm/ldr-global.s gas/testsuite/gas/arm/ldr-t-bad.d gas/testsuite/gas/arm/ldr-t-bad.l gas/testsuite/gas/arm/ldr-t-bad.s gas/testsuite/gas/arm/ldr-t.d gas/testsuite/gas/arm/ldr-t.s gas/testsuite/gas/arm/ldr.d gas/testsuite/gas/arm/ldr.s gas/testsuite/gas/arm/ldrd-unpredictable.d gas/testsuite/gas/arm/ldrd-unpredictable.l gas/testsuite/gas/arm/ldrd-unpredictable.s gas/testsuite/gas/arm/ldsgeb.d gas/testsuite/gas/arm/ldsgeb.l gas/testsuite/gas/arm/ldsgeb.s gas/testsuite/gas/arm/ldsgeh.d gas/testsuite/gas/arm/ldsgeh.l gas/testsuite/gas/arm/ldsgeh.s gas/testsuite/gas/arm/ldst-offset0.d gas/testsuite/gas/arm/ldst-offset0.s gas/testsuite/gas/arm/ldst-pc.d gas/testsuite/gas/arm/ldst-pc.s gas/testsuite/gas/arm/le-fpconst.d gas/testsuite/gas/arm/le-fpconst.s gas/testsuite/gas/arm/local_function.d gas/testsuite/gas/arm/local_function.s gas/testsuite/gas/arm/local_label_coff.d gas/testsuite/gas/arm/local_label_coff.s gas/testsuite/gas/arm/local_label_elf.d gas/testsuite/gas/arm/local_label_elf.s gas/testsuite/gas/arm/local_label_wince.d gas/testsuite/gas/arm/local_label_wince.s gas/testsuite/gas/arm/macro-pld.d gas/testsuite/gas/arm/macro-pld.s gas/testsuite/gas/arm/macro-vld1.d gas/testsuite/gas/arm/macro-vld1.s gas/testsuite/gas/arm/macro1.d gas/testsuite/gas/arm/macro1.s gas/testsuite/gas/arm/mapdir.d gas/testsuite/gas/arm/mapdir.s gas/testsuite/gas/arm/mapmisc.d gas/testsuite/gas/arm/mapmisc.dat gas/testsuite/gas/arm/mapmisc.s gas/testsuite/gas/arm/mapping.d gas/testsuite/gas/arm/mapping.s gas/testsuite/gas/arm/mapping2.d gas/testsuite/gas/arm/mapping2.s gas/testsuite/gas/arm/mapping3.d gas/testsuite/gas/arm/mapping3.s gas/testsuite/gas/arm/mapping4.d gas/testsuite/gas/arm/mapping4.s gas/testsuite/gas/arm/mapsecs.d gas/testsuite/gas/arm/mapsecs.s gas/testsuite/gas/arm/mapshort-eabi.d gas/testsuite/gas/arm/mapshort-elf.d gas/testsuite/gas/arm/mapshort.s gas/testsuite/gas/arm/maverick.c gas/testsuite/gas/arm/maverick.d gas/testsuite/gas/arm/maverick.s gas/testsuite/gas/arm/missing.d gas/testsuite/gas/arm/missing.l gas/testsuite/gas/arm/missing.s gas/testsuite/gas/arm/mov-highregs-any.d gas/testsuite/gas/arm/mov-highregs-any.s gas/testsuite/gas/arm/mov-lowregs-any.d gas/testsuite/gas/arm/mov-lowregs-any.s gas/testsuite/gas/arm/movw-local.d gas/testsuite/gas/arm/movw-local.s gas/testsuite/gas/arm/mrs-msr-arm-v6.d gas/testsuite/gas/arm/mrs-msr-arm-v6.s gas/testsuite/gas/arm/mrs-msr-arm-v7-a-bad.d gas/testsuite/gas/arm/mrs-msr-arm-v7-a-bad.l gas/testsuite/gas/arm/mrs-msr-arm-v7-a-bad.s gas/testsuite/gas/arm/mrs-msr-arm-v7-a.d gas/testsuite/gas/arm/mrs-msr-arm-v7-a.s gas/testsuite/gas/arm/mrs-msr-thumb-v6t2.d gas/testsuite/gas/arm/mrs-msr-thumb-v6t2.s gas/testsuite/gas/arm/mrs-msr-thumb-v7-m-bad.d gas/testsuite/gas/arm/mrs-msr-thumb-v7-m-bad.l gas/testsuite/gas/arm/mrs-msr-thumb-v7-m-bad.s gas/testsuite/gas/arm/mrs-msr-thumb-v7-m.d gas/testsuite/gas/arm/mrs-msr-thumb-v7-m.s gas/testsuite/gas/arm/mrs-msr-thumb-v7e-m.d gas/testsuite/gas/arm/mrs-msr-thumb-v7e-m.s gas/testsuite/gas/arm/msr-imm-bad.d gas/testsuite/gas/arm/msr-imm-bad.l gas/testsuite/gas/arm/msr-imm.d gas/testsuite/gas/arm/msr-imm.s gas/testsuite/gas/arm/msr-reg-bad.d gas/testsuite/gas/arm/msr-reg-bad.l gas/testsuite/gas/arm/msr-reg-thumb.d gas/testsuite/gas/arm/msr-reg.d gas/testsuite/gas/arm/msr-reg.s gas/testsuite/gas/arm/mul-overlap-v6.d gas/testsuite/gas/arm/mul-overlap-v6.s gas/testsuite/gas/arm/mul-overlap.d gas/testsuite/gas/arm/mul-overlap.l gas/testsuite/gas/arm/mul-overlap.s gas/testsuite/gas/arm/neon-addressing-bad.d gas/testsuite/gas/arm/neon-addressing-bad.l gas/testsuite/gas/arm/neon-addressing-bad.s gas/testsuite/gas/arm/neon-cond-bad-inc.s gas/testsuite/gas/arm/neon-cond-bad.d gas/testsuite/gas/arm/neon-cond-bad.l gas/testsuite/gas/arm/neon-cond-bad.s gas/testsuite/gas/arm/neon-cond-bad_t2.d gas/testsuite/gas/arm/neon-cond-bad_t2.s gas/testsuite/gas/arm/neon-cond.d gas/testsuite/gas/arm/neon-cond.s gas/testsuite/gas/arm/neon-const.d gas/testsuite/gas/arm/neon-const.s gas/testsuite/gas/arm/neon-cov.d gas/testsuite/gas/arm/neon-cov.s gas/testsuite/gas/arm/neon-fma-cov.d gas/testsuite/gas/arm/neon-fma-cov.s gas/testsuite/gas/arm/neon-ldst-align-bad.d gas/testsuite/gas/arm/neon-ldst-align-bad.l gas/testsuite/gas/arm/neon-ldst-align-bad.s gas/testsuite/gas/arm/neon-ldst-es-bad.d gas/testsuite/gas/arm/neon-ldst-es-bad.l gas/testsuite/gas/arm/neon-ldst-es-bad.s gas/testsuite/gas/arm/neon-ldst-es.d gas/testsuite/gas/arm/neon-ldst-es.s gas/testsuite/gas/arm/neon-ldst-rm.d gas/testsuite/gas/arm/neon-ldst-rm.s gas/testsuite/gas/arm/neon-logic.d gas/testsuite/gas/arm/neon-logic.s gas/testsuite/gas/arm/neon-omit.d gas/testsuite/gas/arm/neon-omit.s gas/testsuite/gas/arm/neon-psyn.d gas/testsuite/gas/arm/neon-psyn.s gas/testsuite/gas/arm/neon-suffix-bad.d gas/testsuite/gas/arm/neon-suffix-bad.l gas/testsuite/gas/arm/neon-suffix-bad.s gas/testsuite/gas/arm/neon-vmov-bad.d gas/testsuite/gas/arm/neon-vmov-bad.l gas/testsuite/gas/arm/neon-vmov-bad.s gas/testsuite/gas/arm/noarm.d gas/testsuite/gas/arm/noarm.l gas/testsuite/gas/arm/noarm.s gas/testsuite/gas/arm/nomapping.d gas/testsuite/gas/arm/nomapping.s gas/testsuite/gas/arm/offset-1.d gas/testsuite/gas/arm/offset-1.s gas/testsuite/gas/arm/offset.d gas/testsuite/gas/arm/offset.s gas/testsuite/gas/arm/pic.d gas/testsuite/gas/arm/pic.s gas/testsuite/gas/arm/pic_vxworks.d gas/testsuite/gas/arm/plt-1.d gas/testsuite/gas/arm/plt-1.s gas/testsuite/gas/arm/pr12198-1.d gas/testsuite/gas/arm/pr12198-1.s gas/testsuite/gas/arm/pr12198-2.d gas/testsuite/gas/arm/pr12198-2.s gas/testsuite/gas/arm/pr9722.d gas/testsuite/gas/arm/pr9722.s gas/testsuite/gas/arm/push-pop.d gas/testsuite/gas/arm/push-pop.s gas/testsuite/gas/arm/r15-bad.d gas/testsuite/gas/arm/r15-bad.l gas/testsuite/gas/arm/r15-bad.s gas/testsuite/gas/arm/reg-alias.d gas/testsuite/gas/arm/reg-alias.s gas/testsuite/gas/arm/relax_branch_align.d gas/testsuite/gas/arm/relax_branch_align.s gas/testsuite/gas/arm/relax_load_align.d gas/testsuite/gas/arm/relax_load_align.s gas/testsuite/gas/arm/reloc-bad.d gas/testsuite/gas/arm/reloc-bad.l gas/testsuite/gas/arm/reloc-bad.s gas/testsuite/gas/arm/req.d gas/testsuite/gas/arm/req.l gas/testsuite/gas/arm/req.s gas/testsuite/gas/arm/shift-bad.d gas/testsuite/gas/arm/shift-bad.l gas/testsuite/gas/arm/shift-bad.s gas/testsuite/gas/arm/sp-pc-usage-t.d gas/testsuite/gas/arm/sp-pc-usage-t.s gas/testsuite/gas/arm/sp-pc-validations-bad-t.d gas/testsuite/gas/arm/sp-pc-validations-bad-t.l gas/testsuite/gas/arm/sp-pc-validations-bad-t.s gas/testsuite/gas/arm/sp-pc-validations-bad.d gas/testsuite/gas/arm/sp-pc-validations-bad.l gas/testsuite/gas/arm/sp-pc-validations-bad.s gas/testsuite/gas/arm/srs-arm.d gas/testsuite/gas/arm/srs-arm.l gas/testsuite/gas/arm/srs-arm.s gas/testsuite/gas/arm/srs-t2.d gas/testsuite/gas/arm/srs-t2.l gas/testsuite/gas/arm/srs-t2.s gas/testsuite/gas/arm/stm-ldm.d gas/testsuite/gas/arm/stm-ldm.s gas/testsuite/gas/arm/strex-bad-t.d gas/testsuite/gas/arm/strex-bad-t.l gas/testsuite/gas/arm/strex-bad-t.s gas/testsuite/gas/arm/strex-t.d gas/testsuite/gas/arm/strex-t.s gas/testsuite/gas/arm/svc.d gas/testsuite/gas/arm/svc.s gas/testsuite/gas/arm/t16-bad.d gas/testsuite/gas/arm/t16-bad.l gas/testsuite/gas/arm/t16-bad.s gas/testsuite/gas/arm/t2-branch-global.d gas/testsuite/gas/arm/t2-branch-global.s gas/testsuite/gas/arm/target-reloc-1.d gas/testsuite/gas/arm/target-reloc-1.s gas/testsuite/gas/arm/tcompat.d gas/testsuite/gas/arm/tcompat.s gas/testsuite/gas/arm/tcompat2.d gas/testsuite/gas/arm/tcompat2.s gas/testsuite/gas/arm/thumb-b-bad.d gas/testsuite/gas/arm/thumb-b-bad.l gas/testsuite/gas/arm/thumb-b-bad.s gas/testsuite/gas/arm/thumb-eabi.d gas/testsuite/gas/arm/thumb-nop.d gas/testsuite/gas/arm/thumb-nop.s gas/testsuite/gas/arm/thumb-w-bad.d gas/testsuite/gas/arm/thumb-w-bad.l gas/testsuite/gas/arm/thumb-w-bad.s gas/testsuite/gas/arm/thumb-w-good.d gas/testsuite/gas/arm/thumb-w-good.s gas/testsuite/gas/arm/thumb.d gas/testsuite/gas/arm/thumb.s gas/testsuite/gas/arm/thumb1_unified.d gas/testsuite/gas/arm/thumb1_unified.s gas/testsuite/gas/arm/thumb2_add.d gas/testsuite/gas/arm/thumb2_add.s gas/testsuite/gas/arm/thumb2_bad_reg.d gas/testsuite/gas/arm/thumb2_bad_reg.l gas/testsuite/gas/arm/thumb2_bad_reg.s gas/testsuite/gas/arm/thumb2_bcond.d gas/testsuite/gas/arm/thumb2_bcond.s gas/testsuite/gas/arm/thumb2_invert.d gas/testsuite/gas/arm/thumb2_invert.s gas/testsuite/gas/arm/thumb2_it.d gas/testsuite/gas/arm/thumb2_it.s gas/testsuite/gas/arm/thumb2_it_auto.d gas/testsuite/gas/arm/thumb2_it_bad.d gas/testsuite/gas/arm/thumb2_it_bad.l gas/testsuite/gas/arm/thumb2_it_bad.s gas/testsuite/gas/arm/thumb2_it_bad_auto.d gas/testsuite/gas/arm/thumb2_ldmstm.d gas/testsuite/gas/arm/thumb2_ldmstm.s gas/testsuite/gas/arm/thumb2_ldmstm_bad.d gas/testsuite/gas/arm/thumb2_ldmstm_bad.l gas/testsuite/gas/arm/thumb2_ldmstm_bad.s gas/testsuite/gas/arm/thumb2_ldstd_unpredictable.d gas/testsuite/gas/arm/thumb2_ldstd_unpredictable.l gas/testsuite/gas/arm/thumb2_ldstd_unpredictable.s gas/testsuite/gas/arm/thumb2_mul-bad.d gas/testsuite/gas/arm/thumb2_mul-bad.l gas/testsuite/gas/arm/thumb2_mul-bad.s gas/testsuite/gas/arm/thumb2_mul.d gas/testsuite/gas/arm/thumb2_mul.s gas/testsuite/gas/arm/thumb2_pool.d gas/testsuite/gas/arm/thumb2_pool.s gas/testsuite/gas/arm/thumb2_relax.d gas/testsuite/gas/arm/thumb2_relax.s gas/testsuite/gas/arm/thumb2_str-bad.d gas/testsuite/gas/arm/thumb2_str-bad.l gas/testsuite/gas/arm/thumb2_str-bad.s gas/testsuite/gas/arm/thumb32.d gas/testsuite/gas/arm/thumb32.l gas/testsuite/gas/arm/thumb32.s gas/testsuite/gas/arm/thumbrel.d gas/testsuite/gas/arm/thumbrel.s gas/testsuite/gas/arm/thumbv6.d gas/testsuite/gas/arm/thumbv6.s gas/testsuite/gas/arm/thumbv6k.d gas/testsuite/gas/arm/thumbv6k.s gas/testsuite/gas/arm/thumbver.d gas/testsuite/gas/arm/thumbver.s gas/testsuite/gas/arm/tls.d gas/testsuite/gas/arm/tls.s gas/testsuite/gas/arm/tls_vxworks.d gas/testsuite/gas/arm/udf-bad.d gas/testsuite/gas/arm/udf-bad.l gas/testsuite/gas/arm/udf-bad.s gas/testsuite/gas/arm/udf.d gas/testsuite/gas/arm/udf.l gas/testsuite/gas/arm/udf.s gas/testsuite/gas/arm/undefined.d gas/testsuite/gas/arm/undefined.l gas/testsuite/gas/arm/undefined.s gas/testsuite/gas/arm/undefined_coff.d gas/testsuite/gas/arm/undefined_coff.l gas/testsuite/gas/arm/undefined_coff.s gas/testsuite/gas/arm/unpredictable.d gas/testsuite/gas/arm/unpredictable.s gas/testsuite/gas/arm/unwind.d gas/testsuite/gas/arm/unwind.s gas/testsuite/gas/arm/unwind_vxworks.d gas/testsuite/gas/arm/v4bx.d gas/testsuite/gas/arm/v4bx.s gas/testsuite/gas/arm/vcvt-bad.d gas/testsuite/gas/arm/vcvt-bad.l gas/testsuite/gas/arm/vcvt-bad.s gas/testsuite/gas/arm/vcvt.d gas/testsuite/gas/arm/vcvt.s gas/testsuite/gas/arm/vfma1.d gas/testsuite/gas/arm/vfma1.s gas/testsuite/gas/arm/vfp-bad.d gas/testsuite/gas/arm/vfp-bad.l gas/testsuite/gas/arm/vfp-bad.s gas/testsuite/gas/arm/vfp-bad_t2.d gas/testsuite/gas/arm/vfp-bad_t2.l gas/testsuite/gas/arm/vfp-bad_t2.s gas/testsuite/gas/arm/vfp-fma-arm.d gas/testsuite/gas/arm/vfp-fma-arm.s gas/testsuite/gas/arm/vfp-fma-inc.s gas/testsuite/gas/arm/vfp-fma-thumb.d gas/testsuite/gas/arm/vfp-fma-thumb.s gas/testsuite/gas/arm/vfp-neon-overlap.d gas/testsuite/gas/arm/vfp-neon-overlap.s gas/testsuite/gas/arm/vfp-neon-syntax-inc.s gas/testsuite/gas/arm/vfp-neon-syntax.d gas/testsuite/gas/arm/vfp-neon-syntax.s gas/testsuite/gas/arm/vfp-neon-syntax_t2.d gas/testsuite/gas/arm/vfp-neon-syntax_t2.s gas/testsuite/gas/arm/vfp1.d gas/testsuite/gas/arm/vfp1.s gas/testsuite/gas/arm/vfp1_t2.d gas/testsuite/gas/arm/vfp1_t2.s gas/testsuite/gas/arm/vfp1xD.d gas/testsuite/gas/arm/vfp1xD.s gas/testsuite/gas/arm/vfp1xD_t2.d gas/testsuite/gas/arm/vfp1xD_t2.s gas/testsuite/gas/arm/vfp2.d gas/testsuite/gas/arm/vfp2.s gas/testsuite/gas/arm/vfp2_t2.d gas/testsuite/gas/arm/vfp2_t2.s gas/testsuite/gas/arm/vfpv3-32drs.d gas/testsuite/gas/arm/vfpv3-32drs.s gas/testsuite/gas/arm/vfpv3-const-conv.d gas/testsuite/gas/arm/vfpv3-const-conv.s gas/testsuite/gas/arm/vfpv3-d16-bad.d gas/testsuite/gas/arm/vfpv3-d16-bad.l gas/testsuite/gas/arm/vfpv3xd.d gas/testsuite/gas/arm/vfpv3xd.s gas/testsuite/gas/arm/vldm-arm.d gas/testsuite/gas/arm/vldm-thumb-bad.d gas/testsuite/gas/arm/vldm-thumb-bad.l gas/testsuite/gas/arm/vldm.s gas/testsuite/gas/arm/vldmw-arm-bad.d gas/testsuite/gas/arm/vldmw-bad.l gas/testsuite/gas/arm/vldmw-bad.s gas/testsuite/gas/arm/vldmw-thumb-bad.d gas/testsuite/gas/arm/vldr.d gas/testsuite/gas/arm/vldr.s gas/testsuite/gas/arm/vstr-arm-bad.d gas/testsuite/gas/arm/vstr-arm-bad.l gas/testsuite/gas/arm/vstr-bad.s gas/testsuite/gas/arm/vstr-thumb-bad.d gas/testsuite/gas/arm/vstr-thumb-bad.l gas/testsuite/gas/arm/weakdef-1.d gas/testsuite/gas/arm/weakdef-1.s gas/testsuite/gas/arm/weakdef-2.d gas/testsuite/gas/arm/weakdef-2.l gas/testsuite/gas/arm/weakdef-2.s gas/testsuite/gas/arm/wince.d gas/testsuite/gas/arm/wince.s gas/testsuite/gas/arm/wince_inst.d gas/testsuite/gas/arm/xscale.d gas/testsuite/gas/arm/xscale.s gas/testsuite/gas/bfin/allinsn16.d gas/testsuite/gas/bfin/allinsn16.s gas/testsuite/gas/bfin/arith_mode.d gas/testsuite/gas/bfin/arith_mode.s gas/testsuite/gas/bfin/arithmetic.d gas/testsuite/gas/bfin/arithmetic.s gas/testsuite/gas/bfin/bfin.exp gas/testsuite/gas/bfin/bit.d gas/testsuite/gas/bfin/bit.s gas/testsuite/gas/bfin/bit2.d gas/testsuite/gas/bfin/bit2.s gas/testsuite/gas/bfin/cache.d gas/testsuite/gas/bfin/cache.s gas/testsuite/gas/bfin/cache2.d gas/testsuite/gas/bfin/cache2.s gas/testsuite/gas/bfin/control_code.d gas/testsuite/gas/bfin/control_code.s gas/testsuite/gas/bfin/control_code2.d gas/testsuite/gas/bfin/control_code2.s gas/testsuite/gas/bfin/error.exp gas/testsuite/gas/bfin/event.d gas/testsuite/gas/bfin/event.s gas/testsuite/gas/bfin/event2.d gas/testsuite/gas/bfin/event2.s gas/testsuite/gas/bfin/expected_comparison_errors.l gas/testsuite/gas/bfin/expected_comparison_errors.s gas/testsuite/gas/bfin/expected_errors.l gas/testsuite/gas/bfin/expected_errors.s gas/testsuite/gas/bfin/expected_move_errors.l gas/testsuite/gas/bfin/expected_move_errors.s gas/testsuite/gas/bfin/flow.d gas/testsuite/gas/bfin/flow.s gas/testsuite/gas/bfin/flow2.d gas/testsuite/gas/bfin/flow2.s gas/testsuite/gas/bfin/invalid_arith_mode.l gas/testsuite/gas/bfin/invalid_arith_mode.s gas/testsuite/gas/bfin/line_number.l gas/testsuite/gas/bfin/line_number.s gas/testsuite/gas/bfin/load.d gas/testsuite/gas/bfin/load.s gas/testsuite/gas/bfin/logical.d gas/testsuite/gas/bfin/logical.s gas/testsuite/gas/bfin/logical2.d gas/testsuite/gas/bfin/logical2.s gas/testsuite/gas/bfin/loop.d gas/testsuite/gas/bfin/loop.s gas/testsuite/gas/bfin/loop2.d gas/testsuite/gas/bfin/loop2.s gas/testsuite/gas/bfin/loop3.d gas/testsuite/gas/bfin/loop3.s gas/testsuite/gas/bfin/loop_label.d gas/testsuite/gas/bfin/loop_label.s gas/testsuite/gas/bfin/loop_label2.d gas/testsuite/gas/bfin/loop_label2.s gas/testsuite/gas/bfin/loop_temps.d gas/testsuite/gas/bfin/loop_temps.s gas/testsuite/gas/bfin/misc.d gas/testsuite/gas/bfin/misc.s gas/testsuite/gas/bfin/move.d gas/testsuite/gas/bfin/move.s gas/testsuite/gas/bfin/move2.d gas/testsuite/gas/bfin/move2.s gas/testsuite/gas/bfin/parallel.d gas/testsuite/gas/bfin/parallel.s gas/testsuite/gas/bfin/parallel2.d gas/testsuite/gas/bfin/parallel2.s gas/testsuite/gas/bfin/parallel3.d gas/testsuite/gas/bfin/parallel3.s gas/testsuite/gas/bfin/parallel4.d gas/testsuite/gas/bfin/parallel4.s gas/testsuite/gas/bfin/parallel5.s gas/testsuite/gas/bfin/parallel_illegal.d gas/testsuite/gas/bfin/parallel_illegal.s gas/testsuite/gas/bfin/pseudo.d gas/testsuite/gas/bfin/pseudo.s gas/testsuite/gas/bfin/reloc.d gas/testsuite/gas/bfin/reloc.s gas/testsuite/gas/bfin/resource_conflict.l gas/testsuite/gas/bfin/resource_conflict.s gas/testsuite/gas/bfin/shift.d gas/testsuite/gas/bfin/shift.s gas/testsuite/gas/bfin/shift2.d gas/testsuite/gas/bfin/shift2.s gas/testsuite/gas/bfin/stack.d gas/testsuite/gas/bfin/stack.s gas/testsuite/gas/bfin/stack2.d gas/testsuite/gas/bfin/stack2.s gas/testsuite/gas/bfin/store.d gas/testsuite/gas/bfin/store.s gas/testsuite/gas/bfin/vector.d gas/testsuite/gas/bfin/vector.s gas/testsuite/gas/bfin/vector2.d gas/testsuite/gas/bfin/vector2.s gas/testsuite/gas/bfin/video.d gas/testsuite/gas/bfin/video.s gas/testsuite/gas/bfin/video2.d gas/testsuite/gas/bfin/video2.s gas/testsuite/gas/cfi/cfi-alpha-1.d gas/testsuite/gas/cfi/cfi-alpha-1.s gas/testsuite/gas/cfi/cfi-alpha-2.d gas/testsuite/gas/cfi/cfi-alpha-2.s gas/testsuite/gas/cfi/cfi-alpha-3.d gas/testsuite/gas/cfi/cfi-alpha-3.s gas/testsuite/gas/cfi/cfi-arm-1.d gas/testsuite/gas/cfi/cfi-arm-1.s gas/testsuite/gas/cfi/cfi-common-1.d gas/testsuite/gas/cfi/cfi-common-1.s gas/testsuite/gas/cfi/cfi-common-2.d gas/testsuite/gas/cfi/cfi-common-2.s gas/testsuite/gas/cfi/cfi-common-3.d gas/testsuite/gas/cfi/cfi-common-3.s gas/testsuite/gas/cfi/cfi-common-4.d gas/testsuite/gas/cfi/cfi-common-4.s gas/testsuite/gas/cfi/cfi-common-5.d gas/testsuite/gas/cfi/cfi-common-5.s gas/testsuite/gas/cfi/cfi-common-6.d gas/testsuite/gas/cfi/cfi-common-6.s gas/testsuite/gas/cfi/cfi-common-7.d gas/testsuite/gas/cfi/cfi-common-7.s gas/testsuite/gas/cfi/cfi-diag-1.l gas/testsuite/gas/cfi/cfi-diag-1.s gas/testsuite/gas/cfi/cfi-hppa-1.d gas/testsuite/gas/cfi/cfi-hppa-1.s gas/testsuite/gas/cfi/cfi-i386-2.d gas/testsuite/gas/cfi/cfi-i386-2.s gas/testsuite/gas/cfi/cfi-i386.d gas/testsuite/gas/cfi/cfi-i386.s gas/testsuite/gas/cfi/cfi-m68k.d gas/testsuite/gas/cfi/cfi-m68k.s gas/testsuite/gas/cfi/cfi-mips-1.d gas/testsuite/gas/cfi/cfi-mips-1.s gas/testsuite/gas/cfi/cfi-ppc-1.d gas/testsuite/gas/cfi/cfi-ppc-1.s gas/testsuite/gas/cfi/cfi-s390-1.d gas/testsuite/gas/cfi/cfi-s390-1.s gas/testsuite/gas/cfi/cfi-s390x-1.d gas/testsuite/gas/cfi/cfi-s390x-1.s gas/testsuite/gas/cfi/cfi-sh-1.d gas/testsuite/gas/cfi/cfi-sh-1.s gas/testsuite/gas/cfi/cfi-sparc-1.d gas/testsuite/gas/cfi/cfi-sparc-1.s gas/testsuite/gas/cfi/cfi-sparc64-1.d gas/testsuite/gas/cfi/cfi-sparc64-1.s gas/testsuite/gas/cfi/cfi-x86_64.d gas/testsuite/gas/cfi/cfi-x86_64.s gas/testsuite/gas/cfi/cfi.exp gas/testsuite/gas/cfi/reloc-pe-i386.d gas/testsuite/gas/cfi/reloc-pe-i386.s gas/testsuite/gas/cr16/add_test.d gas/testsuite/gas/cr16/add_test.s gas/testsuite/gas/cr16/and_test.d gas/testsuite/gas/cr16/and_test.s gas/testsuite/gas/cr16/ash_test.d gas/testsuite/gas/cr16/ash_test.s gas/testsuite/gas/cr16/bal_test.d gas/testsuite/gas/cr16/bal_test.s gas/testsuite/gas/cr16/bcc_test.d gas/testsuite/gas/cr16/bcc_test.s gas/testsuite/gas/cr16/beq0_test.d gas/testsuite/gas/cr16/beq0_test.s gas/testsuite/gas/cr16/cbitb_test.d gas/testsuite/gas/cr16/cbitb_test.s gas/testsuite/gas/cr16/cbitw_test.d gas/testsuite/gas/cr16/cbitw_test.s gas/testsuite/gas/cr16/cinv_test.d gas/testsuite/gas/cr16/cinv_test.s gas/testsuite/gas/cr16/cmp_test.d gas/testsuite/gas/cr16/cmp_test.s gas/testsuite/gas/cr16/cr16.exp gas/testsuite/gas/cr16/excp_test.d gas/testsuite/gas/cr16/excp_test.s gas/testsuite/gas/cr16/jal_test.d gas/testsuite/gas/cr16/jal_test.s gas/testsuite/gas/cr16/jcc_test.d gas/testsuite/gas/cr16/jcc_test.s gas/testsuite/gas/cr16/loadb_test.d gas/testsuite/gas/cr16/loadb_test.s gas/testsuite/gas/cr16/loadd_test.d gas/testsuite/gas/cr16/loadd_test.s gas/testsuite/gas/cr16/loadm_test.d gas/testsuite/gas/cr16/loadm_test.s gas/testsuite/gas/cr16/loadw_test.d gas/testsuite/gas/cr16/loadw_test.s gas/testsuite/gas/cr16/lpsp_test.d gas/testsuite/gas/cr16/lpsp_test.s gas/testsuite/gas/cr16/lsh_test.d gas/testsuite/gas/cr16/lsh_test.s gas/testsuite/gas/cr16/mov_test.d gas/testsuite/gas/cr16/mov_test.s gas/testsuite/gas/cr16/mul_test.d gas/testsuite/gas/cr16/mul_test.s gas/testsuite/gas/cr16/or_test.d gas/testsuite/gas/cr16/or_test.s gas/testsuite/gas/cr16/pic.exp gas/testsuite/gas/cr16/pic1.d gas/testsuite/gas/cr16/pic1.s gas/testsuite/gas/cr16/pic2.d gas/testsuite/gas/cr16/pic2.s gas/testsuite/gas/cr16/pop_test.d gas/testsuite/gas/cr16/pop_test.s gas/testsuite/gas/cr16/popret_test.d gas/testsuite/gas/cr16/popret_test.s gas/testsuite/gas/cr16/push_test.d gas/testsuite/gas/cr16/push_test.s gas/testsuite/gas/cr16/sbitb_test.d gas/testsuite/gas/cr16/sbitb_test.s gas/testsuite/gas/cr16/sbitw_test.d gas/testsuite/gas/cr16/sbitw_test.s gas/testsuite/gas/cr16/scc_test.d gas/testsuite/gas/cr16/scc_test.s gas/testsuite/gas/cr16/storb_test.d gas/testsuite/gas/cr16/storb_test.s gas/testsuite/gas/cr16/stord_test.d gas/testsuite/gas/cr16/stord_test.s gas/testsuite/gas/cr16/storm_test.d gas/testsuite/gas/cr16/storm_test.s gas/testsuite/gas/cr16/storw_test.d gas/testsuite/gas/cr16/storw_test.s gas/testsuite/gas/cr16/sub_test.d gas/testsuite/gas/cr16/sub_test.s gas/testsuite/gas/cr16/tbit_test.d gas/testsuite/gas/cr16/tbit_test.s gas/testsuite/gas/cr16/tbitb_test.d gas/testsuite/gas/cr16/tbitb_test.s gas/testsuite/gas/cr16/tbitw_test.d gas/testsuite/gas/cr16/tbitw_test.s gas/testsuite/gas/cr16/xor_test.d gas/testsuite/gas/cr16/xor_test.s gas/testsuite/gas/cris/abs32-1.s gas/testsuite/gas/cris/addi.d gas/testsuite/gas/cris/addi.s gas/testsuite/gas/cris/arch-err-1.s gas/testsuite/gas/cris/arch-err-2.s gas/testsuite/gas/cris/arch-err-3.s gas/testsuite/gas/cris/arch-err-4.s gas/testsuite/gas/cris/arch-err-5.s gas/testsuite/gas/cris/binop-cmpmove.d gas/testsuite/gas/cris/binop-cmpmovx.d gas/testsuite/gas/cris/binop-extx.d gas/testsuite/gas/cris/binop-segref.s gas/testsuite/gas/cris/binop.d gas/testsuite/gas/cris/binop.s gas/testsuite/gas/cris/bork.d gas/testsuite/gas/cris/bork.s gas/testsuite/gas/cris/bound-err-1.s gas/testsuite/gas/cris/branch-warn-1.s gas/testsuite/gas/cris/branch-warn-2.s gas/testsuite/gas/cris/branch-warn-3.s gas/testsuite/gas/cris/branch.d gas/testsuite/gas/cris/branch.s gas/testsuite/gas/cris/break.d gas/testsuite/gas/cris/break.s gas/testsuite/gas/cris/brokw-1.d gas/testsuite/gas/cris/brokw-1.s gas/testsuite/gas/cris/brokw-2.d gas/testsuite/gas/cris/brokw-2.s gas/testsuite/gas/cris/brokw-3.d gas/testsuite/gas/cris/brokw-3.s gas/testsuite/gas/cris/brokw-3b.s gas/testsuite/gas/cris/bwtest-err-1.s gas/testsuite/gas/cris/ccr.d gas/testsuite/gas/cris/ccr.s gas/testsuite/gas/cris/clear.d gas/testsuite/gas/cris/continue.d gas/testsuite/gas/cris/continue.s gas/testsuite/gas/cris/cris.exp gas/testsuite/gas/cris/diffexp-ovwr.d gas/testsuite/gas/cris/diffexp-ovwr.s gas/testsuite/gas/cris/fragtest.d gas/testsuite/gas/cris/fragtest.s gas/testsuite/gas/cris/jump-type.d gas/testsuite/gas/cris/labfloat.d gas/testsuite/gas/cris/labfloat.s gas/testsuite/gas/cris/macroat.d gas/testsuite/gas/cris/macroat.s gas/testsuite/gas/cris/march-err-1.s gas/testsuite/gas/cris/march-err-2.s gas/testsuite/gas/cris/movem-to-reg.d gas/testsuite/gas/cris/mulbug-err-1.s gas/testsuite/gas/cris/nosep.d gas/testsuite/gas/cris/nosep.s gas/testsuite/gas/cris/oneop-type.d gas/testsuite/gas/cris/operand-err-1.s gas/testsuite/gas/cris/pic-err-1.s gas/testsuite/gas/cris/pic-err-2.s gas/testsuite/gas/cris/pic-err-3.s gas/testsuite/gas/cris/prefix.d gas/testsuite/gas/cris/prefix.s gas/testsuite/gas/cris/push-err-1.s gas/testsuite/gas/cris/push-err-2.s gas/testsuite/gas/cris/pushpop-byte-sreg.d gas/testsuite/gas/cris/pushpop-dcr1-sreg.d gas/testsuite/gas/cris/pushpop-dword-sreg.d gas/testsuite/gas/cris/pushpop-word-sreg.d gas/testsuite/gas/cris/pushpop.d gas/testsuite/gas/cris/pushpop.s gas/testsuite/gas/cris/pushpopv32.s gas/testsuite/gas/cris/quick-s6.d gas/testsuite/gas/cris/quick-u5.d gas/testsuite/gas/cris/quick-u6.d gas/testsuite/gas/cris/quick.s gas/testsuite/gas/cris/range-err-1.s gas/testsuite/gas/cris/range-err-2.s gas/testsuite/gas/cris/rd-abs32-1.d gas/testsuite/gas/cris/rd-abs32-2.d gas/testsuite/gas/cris/rd-arch-1.d gas/testsuite/gas/cris/rd-arch-2.d gas/testsuite/gas/cris/rd-arch-3.d gas/testsuite/gas/cris/rd-bcnst-pic.d gas/testsuite/gas/cris/rd-bcnst.d gas/testsuite/gas/cris/rd-bcnst.s gas/testsuite/gas/cris/rd-bcnst2-pic.d gas/testsuite/gas/cris/rd-bcnst2.d gas/testsuite/gas/cris/rd-bcnst2.s gas/testsuite/gas/cris/rd-bkw1b.d gas/testsuite/gas/cris/rd-bkw2b.d gas/testsuite/gas/cris/rd-bkw3b.d gas/testsuite/gas/cris/rd-bkw4.d gas/testsuite/gas/cris/rd-bkw4.s gas/testsuite/gas/cris/rd-bkw4v32.d gas/testsuite/gas/cris/rd-bkw5.d gas/testsuite/gas/cris/rd-bkw5.s gas/testsuite/gas/cris/rd-bkw5b.d gas/testsuite/gas/cris/rd-bkw5bpic.d gas/testsuite/gas/cris/rd-bkw5bv32.d gas/testsuite/gas/cris/rd-bkw5bv32pic.d gas/testsuite/gas/cris/rd-bkw5pic.d gas/testsuite/gas/cris/rd-bkw5v32.d gas/testsuite/gas/cris/rd-bkw5v32pic.d gas/testsuite/gas/cris/rd-bound1.d gas/testsuite/gas/cris/rd-bound1.s gas/testsuite/gas/cris/rd-bound2.d gas/testsuite/gas/cris/rd-bound3.d gas/testsuite/gas/cris/rd-bound4.d gas/testsuite/gas/cris/rd-branch-pic.d gas/testsuite/gas/cris/rd-break32.d gas/testsuite/gas/cris/rd-brokw-pic-1.d gas/testsuite/gas/cris/rd-brokw-pic-2.d gas/testsuite/gas/cris/rd-brokw-pic-3.d gas/testsuite/gas/cris/rd-dtpoffd1.d gas/testsuite/gas/cris/rd-dtpoffd1.s gas/testsuite/gas/cris/rd-dw2-1.d gas/testsuite/gas/cris/rd-dw2-10.d gas/testsuite/gas/cris/rd-dw2-11.d gas/testsuite/gas/cris/rd-dw2-12.d gas/testsuite/gas/cris/rd-dw2-13.d gas/testsuite/gas/cris/rd-dw2-14.d gas/testsuite/gas/cris/rd-dw2-15.d gas/testsuite/gas/cris/rd-dw2-2.d gas/testsuite/gas/cris/rd-dw2-3.d gas/testsuite/gas/cris/rd-dw2-4.d gas/testsuite/gas/cris/rd-dw2-5.d gas/testsuite/gas/cris/rd-dw2-6.d gas/testsuite/gas/cris/rd-dw2-7.d gas/testsuite/gas/cris/rd-dw2-8.d gas/testsuite/gas/cris/rd-dw2-9.d gas/testsuite/gas/cris/rd-fragtest-pic.d gas/testsuite/gas/cris/rd-mulbug-1.d gas/testsuite/gas/cris/rd-pcplus.d gas/testsuite/gas/cris/rd-pcplus.s gas/testsuite/gas/cris/rd-pcrel1.d gas/testsuite/gas/cris/rd-pcrel1.s gas/testsuite/gas/cris/rd-pcrel2.d gas/testsuite/gas/cris/rd-pcrel2.s gas/testsuite/gas/cris/rd-pic-1.d gas/testsuite/gas/cris/rd-pic-1.s gas/testsuite/gas/cris/rd-pic-2.d gas/testsuite/gas/cris/rd-pic-2.s gas/testsuite/gas/cris/rd-ppv1032.d gas/testsuite/gas/cris/rd-ppv32.d gas/testsuite/gas/cris/rd-regprefix-1.d gas/testsuite/gas/cris/rd-regprefix-1.s gas/testsuite/gas/cris/rd-regprefix-1b.d gas/testsuite/gas/cris/rd-spr-1.d gas/testsuite/gas/cris/rd-spr-1.s gas/testsuite/gas/cris/rd-tls-1.d gas/testsuite/gas/cris/rd-tls-1.s gas/testsuite/gas/cris/rd-tls-2.d gas/testsuite/gas/cris/rd-tls-2.s gas/testsuite/gas/cris/rd-usp-1.d gas/testsuite/gas/cris/rd-usp-1b.d gas/testsuite/gas/cris/rd-v10_32o-1.d gas/testsuite/gas/cris/rd-v10_32o-2.d gas/testsuite/gas/cris/rd-v10_32o-2.s gas/testsuite/gas/cris/rd-v32-b1.d gas/testsuite/gas/cris/rd-v32-b1.s gas/testsuite/gas/cris/rd-v32-b2.d gas/testsuite/gas/cris/rd-v32-b2.s gas/testsuite/gas/cris/rd-v32-b3.d gas/testsuite/gas/cris/rd-v32-b3.s gas/testsuite/gas/cris/rd-v32-f1.d gas/testsuite/gas/cris/rd-v32-f1.s gas/testsuite/gas/cris/rd-v32-i1.d gas/testsuite/gas/cris/rd-v32-i1.s gas/testsuite/gas/cris/rd-v32-l1.d gas/testsuite/gas/cris/rd-v32-l1.s gas/testsuite/gas/cris/rd-v32-l3.d gas/testsuite/gas/cris/rd-v32-l3.s gas/testsuite/gas/cris/rd-v32-l4.d gas/testsuite/gas/cris/rd-v32-l4.s gas/testsuite/gas/cris/rd-v32o-1.d gas/testsuite/gas/cris/rd-v32s-1.d gas/testsuite/gas/cris/rd-v32s-2.d gas/testsuite/gas/cris/rd-v32s-2.s gas/testsuite/gas/cris/rd-v32s-3.d gas/testsuite/gas/cris/rd-v32s-3.s gas/testsuite/gas/cris/rd-v32s-4.d gas/testsuite/gas/cris/rd-v32s-4.s gas/testsuite/gas/cris/rd-vao-1.d gas/testsuite/gas/cris/reg-to-mem.d gas/testsuite/gas/cris/regprefix-err-1.s gas/testsuite/gas/cris/regreg.d gas/testsuite/gas/cris/regreg.s gas/testsuite/gas/cris/return.d gas/testsuite/gas/cris/return.s gas/testsuite/gas/cris/scc.d gas/testsuite/gas/cris/scc.s gas/testsuite/gas/cris/sep-err-1.s gas/testsuite/gas/cris/sep-err-2.s gas/testsuite/gas/cris/sep-err-3.s gas/testsuite/gas/cris/separator.d gas/testsuite/gas/cris/separator.s gas/testsuite/gas/cris/shexpr-1.d gas/testsuite/gas/cris/shexpr-1.s gas/testsuite/gas/cris/sreg-to-x.d gas/testsuite/gas/cris/string-1.d gas/testsuite/gas/cris/string-1.s gas/testsuite/gas/cris/string-2.d gas/testsuite/gas/cris/string-2.s gas/testsuite/gas/cris/test.d gas/testsuite/gas/cris/tls-err-1.s gas/testsuite/gas/cris/tls-err-2.s gas/testsuite/gas/cris/tls-err-3.s gas/testsuite/gas/cris/unimplemented.d gas/testsuite/gas/cris/unimplemented.s gas/testsuite/gas/cris/unop-mem.d gas/testsuite/gas/cris/unop.s gas/testsuite/gas/cris/us-err-1.s gas/testsuite/gas/cris/us-err-2.s gas/testsuite/gas/cris/us-err-3.s gas/testsuite/gas/cris/v32-err-1.s gas/testsuite/gas/cris/v32-err-10.s gas/testsuite/gas/cris/v32-err-11.s gas/testsuite/gas/cris/v32-err-2.s gas/testsuite/gas/cris/v32-err-3.s gas/testsuite/gas/cris/v32-err-4.s gas/testsuite/gas/cris/v32-err-5.s gas/testsuite/gas/cris/v32-err-6.s gas/testsuite/gas/cris/v32-err-7.s gas/testsuite/gas/cris/v32-err-8.s gas/testsuite/gas/cris/v32-err-9.s gas/testsuite/gas/cris/x-to-byte-sreg.d gas/testsuite/gas/cris/x-to-dcr1-sreg.d gas/testsuite/gas/cris/x-to-dword-sreg.d gas/testsuite/gas/cris/x-to-word-sreg.d gas/testsuite/gas/crx/allinsn.exp gas/testsuite/gas/crx/arith_insn.d gas/testsuite/gas/crx/arith_insn.s gas/testsuite/gas/crx/beq_insn.d gas/testsuite/gas/crx/beq_insn.s gas/testsuite/gas/crx/bit_insn.d gas/testsuite/gas/crx/bit_insn.s gas/testsuite/gas/crx/br_insn.d gas/testsuite/gas/crx/br_insn.s gas/testsuite/gas/crx/cmov_insn.d gas/testsuite/gas/crx/cmov_insn.s gas/testsuite/gas/crx/cmpbr_insn.d gas/testsuite/gas/crx/cmpbr_insn.s gas/testsuite/gas/crx/cop_insn.d gas/testsuite/gas/crx/cop_insn.s gas/testsuite/gas/crx/gas-segfault.d gas/testsuite/gas/crx/gas-segfault.s gas/testsuite/gas/crx/jscond_insn.d gas/testsuite/gas/crx/jscond_insn.s gas/testsuite/gas/crx/list_insn.d gas/testsuite/gas/crx/list_insn.s gas/testsuite/gas/crx/load_stor_insn.d gas/testsuite/gas/crx/load_stor_insn.s gas/testsuite/gas/crx/misc_insn.d gas/testsuite/gas/crx/misc_insn.s gas/testsuite/gas/crx/no_op_insn.d gas/testsuite/gas/crx/no_op_insn.s gas/testsuite/gas/crx/shift_insn.d gas/testsuite/gas/crx/shift_insn.s gas/testsuite/gas/d10v/address-001.d gas/testsuite/gas/d10v/address-001.s gas/testsuite/gas/d10v/address-002.l gas/testsuite/gas/d10v/address-002.s gas/testsuite/gas/d10v/address-003.l gas/testsuite/gas/d10v/address-003.s gas/testsuite/gas/d10v/address-004.l gas/testsuite/gas/d10v/address-004.s gas/testsuite/gas/d10v/address-005.l gas/testsuite/gas/d10v/address-005.s gas/testsuite/gas/d10v/address-006.l gas/testsuite/gas/d10v/address-006.s gas/testsuite/gas/d10v/address-007.l gas/testsuite/gas/d10v/address-007.s gas/testsuite/gas/d10v/address-008.l gas/testsuite/gas/d10v/address-008.s gas/testsuite/gas/d10v/address-009.l gas/testsuite/gas/d10v/address-009.s gas/testsuite/gas/d10v/address-010.l gas/testsuite/gas/d10v/address-010.s gas/testsuite/gas/d10v/address-011.l gas/testsuite/gas/d10v/address-011.s gas/testsuite/gas/d10v/address-012.l gas/testsuite/gas/d10v/address-012.s gas/testsuite/gas/d10v/address-013.l gas/testsuite/gas/d10v/address-013.s gas/testsuite/gas/d10v/address-014.l gas/testsuite/gas/d10v/address-014.s gas/testsuite/gas/d10v/address-015.l gas/testsuite/gas/d10v/address-015.s gas/testsuite/gas/d10v/address-016.l gas/testsuite/gas/d10v/address-016.s gas/testsuite/gas/d10v/address-017.l gas/testsuite/gas/d10v/address-017.s gas/testsuite/gas/d10v/address-018.l gas/testsuite/gas/d10v/address-018.s gas/testsuite/gas/d10v/address-019.l gas/testsuite/gas/d10v/address-019.s gas/testsuite/gas/d10v/address-020.l gas/testsuite/gas/d10v/address-020.s gas/testsuite/gas/d10v/address-021.l gas/testsuite/gas/d10v/address-021.s gas/testsuite/gas/d10v/address-022.l gas/testsuite/gas/d10v/address-022.s gas/testsuite/gas/d10v/address-023.l gas/testsuite/gas/d10v/address-023.s gas/testsuite/gas/d10v/address-024.l gas/testsuite/gas/d10v/address-024.s gas/testsuite/gas/d10v/address-025.l gas/testsuite/gas/d10v/address-025.s gas/testsuite/gas/d10v/address-026.l gas/testsuite/gas/d10v/address-026.s gas/testsuite/gas/d10v/address-027.l gas/testsuite/gas/d10v/address-027.s gas/testsuite/gas/d10v/address-028.l gas/testsuite/gas/d10v/address-028.s gas/testsuite/gas/d10v/address-029.l gas/testsuite/gas/d10v/address-029.s gas/testsuite/gas/d10v/address-030.l gas/testsuite/gas/d10v/address-030.s gas/testsuite/gas/d10v/address-031.l gas/testsuite/gas/d10v/address-031.s gas/testsuite/gas/d10v/address-032.l gas/testsuite/gas/d10v/address-032.s gas/testsuite/gas/d10v/address-033.l gas/testsuite/gas/d10v/address-033.s gas/testsuite/gas/d10v/address-034.l gas/testsuite/gas/d10v/address-034.s gas/testsuite/gas/d10v/address-035.l gas/testsuite/gas/d10v/address-035.s gas/testsuite/gas/d10v/address-036.l gas/testsuite/gas/d10v/address-036.s gas/testsuite/gas/d10v/address-037.l gas/testsuite/gas/d10v/address-037.s gas/testsuite/gas/d10v/address-038.l gas/testsuite/gas/d10v/address-038.s gas/testsuite/gas/d10v/address-039.l gas/testsuite/gas/d10v/address-039.s gas/testsuite/gas/d10v/address-040.l gas/testsuite/gas/d10v/address-040.s gas/testsuite/gas/d10v/address-041.l gas/testsuite/gas/d10v/address-041.s gas/testsuite/gas/d10v/control-001.d gas/testsuite/gas/d10v/control-001.s gas/testsuite/gas/d10v/d10v.exp gas/testsuite/gas/d10v/error-001.d gas/testsuite/gas/d10v/error-001.s gas/testsuite/gas/d10v/error-002.d gas/testsuite/gas/d10v/error-002.s gas/testsuite/gas/d10v/immediate-001.d gas/testsuite/gas/d10v/immediate-001.s gas/testsuite/gas/d10v/immediate-002.d gas/testsuite/gas/d10v/immediate-002.s gas/testsuite/gas/d10v/immediate-003.d gas/testsuite/gas/d10v/immediate-003.s gas/testsuite/gas/d10v/immediate-004.d gas/testsuite/gas/d10v/immediate-004.s gas/testsuite/gas/d10v/immediate-005.d gas/testsuite/gas/d10v/immediate-005.s gas/testsuite/gas/d10v/immediate-006.d gas/testsuite/gas/d10v/immediate-006.s gas/testsuite/gas/d10v/immediate-007.d gas/testsuite/gas/d10v/immediate-007.s gas/testsuite/gas/d10v/inst.d gas/testsuite/gas/d10v/inst.s gas/testsuite/gas/d10v/instruction_packing-001.d gas/testsuite/gas/d10v/instruction_packing-001.s gas/testsuite/gas/d10v/instruction_packing-002.d gas/testsuite/gas/d10v/instruction_packing-002.s gas/testsuite/gas/d10v/instruction_packing-003.d gas/testsuite/gas/d10v/instruction_packing-003.s gas/testsuite/gas/d10v/instruction_packing-004.d gas/testsuite/gas/d10v/instruction_packing-004.s gas/testsuite/gas/d10v/instruction_packing-005.d gas/testsuite/gas/d10v/instruction_packing-005.s gas/testsuite/gas/d10v/instruction_packing-006.d gas/testsuite/gas/d10v/instruction_packing-006.s gas/testsuite/gas/d10v/instruction_packing-007.d gas/testsuite/gas/d10v/instruction_packing-007.s gas/testsuite/gas/d10v/instruction_packing-008.d gas/testsuite/gas/d10v/instruction_packing-009.d gas/testsuite/gas/d10v/instruction_packing-010.d gas/testsuite/gas/d10v/instruction_packing.d gas/testsuite/gas/d10v/instruction_packing.s gas/testsuite/gas/d10v/label-001.d gas/testsuite/gas/d10v/label-001.s gas/testsuite/gas/d10v/warning-001.d gas/testsuite/gas/d10v/warning-001.s gas/testsuite/gas/d10v/warning-002.d gas/testsuite/gas/d10v/warning-002.s gas/testsuite/gas/d10v/warning-003.d gas/testsuite/gas/d10v/warning-003.s gas/testsuite/gas/d10v/warning-004.d gas/testsuite/gas/d10v/warning-004.s gas/testsuite/gas/d10v/warning-005.d gas/testsuite/gas/d10v/warning-005.s gas/testsuite/gas/d10v/warning-006.d gas/testsuite/gas/d10v/warning-006.s gas/testsuite/gas/d10v/warning-007.d gas/testsuite/gas/d10v/warning-007.s gas/testsuite/gas/d10v/warning-008.d gas/testsuite/gas/d10v/warning-008.s gas/testsuite/gas/d10v/warning-009.d gas/testsuite/gas/d10v/warning-009.s gas/testsuite/gas/d10v/warning-010.d gas/testsuite/gas/d10v/warning-010.s gas/testsuite/gas/d10v/warning-011.d gas/testsuite/gas/d10v/warning-011.s gas/testsuite/gas/d10v/warning-012.d gas/testsuite/gas/d10v/warning-012.s gas/testsuite/gas/d10v/warning-013.d gas/testsuite/gas/d10v/warning-013.s gas/testsuite/gas/d10v/warning-014.d gas/testsuite/gas/d10v/warning-014.s gas/testsuite/gas/d10v/warning-015.d gas/testsuite/gas/d10v/warning-016.d gas/testsuite/gas/d10v/warning-016.s gas/testsuite/gas/d10v/warning-017.d gas/testsuite/gas/d10v/warning-017.s gas/testsuite/gas/d10v/warning-018.d gas/testsuite/gas/d10v/warning-018.s gas/testsuite/gas/d10v/warning-019.d gas/testsuite/gas/d10v/warning-019.s gas/testsuite/gas/d30v/align.d gas/testsuite/gas/d30v/align.s gas/testsuite/gas/d30v/array.d gas/testsuite/gas/d30v/array.s gas/testsuite/gas/d30v/bittest.d gas/testsuite/gas/d30v/bittest.l gas/testsuite/gas/d30v/bittest.s gas/testsuite/gas/d30v/d30.exp gas/testsuite/gas/d30v/guard-debug.d gas/testsuite/gas/d30v/guard-debug.s gas/testsuite/gas/d30v/guard.d gas/testsuite/gas/d30v/guard.s gas/testsuite/gas/d30v/inst.d gas/testsuite/gas/d30v/inst.s gas/testsuite/gas/d30v/label-debug.d gas/testsuite/gas/d30v/label-debug.s gas/testsuite/gas/d30v/label.d gas/testsuite/gas/d30v/label.s gas/testsuite/gas/d30v/mul.d gas/testsuite/gas/d30v/mul.s gas/testsuite/gas/d30v/opt.d gas/testsuite/gas/d30v/opt.s gas/testsuite/gas/d30v/reloc.d gas/testsuite/gas/d30v/reloc.s gas/testsuite/gas/d30v/serial.l gas/testsuite/gas/d30v/serial.s gas/testsuite/gas/d30v/serial2.l gas/testsuite/gas/d30v/serial2.s gas/testsuite/gas/d30v/serial2O.l gas/testsuite/gas/d30v/serial2O.s gas/testsuite/gas/d30v/warn_oddreg.l gas/testsuite/gas/d30v/warn_oddreg.s gas/testsuite/gas/dlx/alltests.exp gas/testsuite/gas/dlx/branch.d gas/testsuite/gas/dlx/branch.s gas/testsuite/gas/dlx/itype.d gas/testsuite/gas/dlx/itype.s gas/testsuite/gas/dlx/lhi.d gas/testsuite/gas/dlx/lhi.s gas/testsuite/gas/dlx/load.d gas/testsuite/gas/dlx/load.s gas/testsuite/gas/dlx/lohi.d gas/testsuite/gas/dlx/lohi.s gas/testsuite/gas/dlx/rtype.d gas/testsuite/gas/dlx/rtype.s gas/testsuite/gas/dlx/store.d gas/testsuite/gas/dlx/store.s gas/testsuite/gas/elf/bad-group.d gas/testsuite/gas/elf/bad-group.err gas/testsuite/gas/elf/bad-group.s gas/testsuite/gas/elf/bad-section-flag.d gas/testsuite/gas/elf/bad-section-flag.err gas/testsuite/gas/elf/bad-section-flag.s gas/testsuite/gas/elf/bad-size.d gas/testsuite/gas/elf/bad-size.err gas/testsuite/gas/elf/bad-size.s gas/testsuite/gas/elf/common1.d gas/testsuite/gas/elf/common1.l gas/testsuite/gas/elf/common1.s gas/testsuite/gas/elf/common2.d gas/testsuite/gas/elf/common2.l gas/testsuite/gas/elf/common2.s gas/testsuite/gas/elf/dwarf2-1.d gas/testsuite/gas/elf/dwarf2-1.s gas/testsuite/gas/elf/dwarf2-2.d gas/testsuite/gas/elf/dwarf2-2.s gas/testsuite/gas/elf/dwarf2-3.d gas/testsuite/gas/elf/dwarf2-3.s gas/testsuite/gas/elf/dwarf2-4.d gas/testsuite/gas/elf/dwarf2-4.s gas/testsuite/gas/elf/ehopt0.d gas/testsuite/gas/elf/ehopt0.s gas/testsuite/gas/elf/elf.exp gas/testsuite/gas/elf/equ-reloc.d gas/testsuite/gas/elf/equ-reloc.s gas/testsuite/gas/elf/file.d gas/testsuite/gas/elf/file.s gas/testsuite/gas/elf/group0.s gas/testsuite/gas/elf/group0a.d gas/testsuite/gas/elf/group0b.d gas/testsuite/gas/elf/group0c.d gas/testsuite/gas/elf/group1.s gas/testsuite/gas/elf/group1a.d gas/testsuite/gas/elf/group1b.d gas/testsuite/gas/elf/groupauto.s gas/testsuite/gas/elf/groupautoa.d gas/testsuite/gas/elf/groupautob.d gas/testsuite/gas/elf/ifunc-1.d gas/testsuite/gas/elf/ifunc-1.s gas/testsuite/gas/elf/pseudo.d gas/testsuite/gas/elf/pseudo.l gas/testsuite/gas/elf/pseudo.s gas/testsuite/gas/elf/redef.d gas/testsuite/gas/elf/redef.s gas/testsuite/gas/elf/section0.d gas/testsuite/gas/elf/section0.s gas/testsuite/gas/elf/section1.d gas/testsuite/gas/elf/section1.s gas/testsuite/gas/elf/section2.e gas/testsuite/gas/elf/section2.e-armeabi gas/testsuite/gas/elf/section2.e-armelf gas/testsuite/gas/elf/section2.e-m32r gas/testsuite/gas/elf/section2.e-mips gas/testsuite/gas/elf/section2.e-miwmmxt gas/testsuite/gas/elf/section2.e-msp430 gas/testsuite/gas/elf/section2.e-rx gas/testsuite/gas/elf/section2.e-score gas/testsuite/gas/elf/section2.e-tic6x gas/testsuite/gas/elf/section2.e-xtensa gas/testsuite/gas/elf/section2.l gas/testsuite/gas/elf/section2.s gas/testsuite/gas/elf/section3.d gas/testsuite/gas/elf/section3.s gas/testsuite/gas/elf/section4.d gas/testsuite/gas/elf/section4.s gas/testsuite/gas/elf/section5.e gas/testsuite/gas/elf/section5.l gas/testsuite/gas/elf/section5.s gas/testsuite/gas/elf/section6.d gas/testsuite/gas/elf/section6.s gas/testsuite/gas/elf/section7.d gas/testsuite/gas/elf/section7.s gas/testsuite/gas/elf/section8.d gas/testsuite/gas/elf/section8.s gas/testsuite/gas/elf/section9.d gas/testsuite/gas/elf/section9.s gas/testsuite/gas/elf/struct.d gas/testsuite/gas/elf/struct.s gas/testsuite/gas/elf/syms.d gas/testsuite/gas/elf/syms.s gas/testsuite/gas/elf/symtab.d gas/testsuite/gas/elf/symtab.s gas/testsuite/gas/elf/symver.d gas/testsuite/gas/elf/symver.s gas/testsuite/gas/elf/type-noifunc.e gas/testsuite/gas/elf/type-noifunc.s gas/testsuite/gas/elf/type.e gas/testsuite/gas/elf/type.s gas/testsuite/gas/elf/warn-2.s gas/testsuite/gas/epiphany/addr-syntax.d gas/testsuite/gas/epiphany/addr-syntax.s gas/testsuite/gas/epiphany/allinsn.d gas/testsuite/gas/epiphany/allinsn.exp gas/testsuite/gas/epiphany/allinsn.s gas/testsuite/gas/epiphany/badpostmod.s gas/testsuite/gas/epiphany/badrelax.d gas/testsuite/gas/epiphany/badrelax.s gas/testsuite/gas/epiphany/branch_lit.d gas/testsuite/gas/epiphany/branch_lit.s gas/testsuite/gas/epiphany/regression.d gas/testsuite/gas/epiphany/regression.s gas/testsuite/gas/epiphany/sample.d gas/testsuite/gas/epiphany/sample.s gas/testsuite/gas/fr30/allinsn.d gas/testsuite/gas/fr30/allinsn.exp gas/testsuite/gas/fr30/allinsn.s gas/testsuite/gas/fr30/fr30.exp gas/testsuite/gas/frv/allinsn.d gas/testsuite/gas/frv/allinsn.exp gas/testsuite/gas/frv/allinsn.s gas/testsuite/gas/frv/fdpic.d gas/testsuite/gas/frv/fdpic.s gas/testsuite/gas/frv/fr405-insn.d gas/testsuite/gas/frv/fr405-insn.l gas/testsuite/gas/frv/fr405-insn.s gas/testsuite/gas/frv/fr450-insn.d gas/testsuite/gas/frv/fr450-insn.l gas/testsuite/gas/frv/fr450-insn.s gas/testsuite/gas/frv/fr450-media-issue.l gas/testsuite/gas/frv/fr450-media-issue.s gas/testsuite/gas/frv/fr450-spr.d gas/testsuite/gas/frv/fr450-spr.s gas/testsuite/gas/frv/fr550-pack1.d gas/testsuite/gas/frv/fr550-pack1.s gas/testsuite/gas/frv/immediates.d gas/testsuite/gas/frv/immediates.s gas/testsuite/gas/frv/reloc1.d gas/testsuite/gas/frv/reloc1.s gas/testsuite/gas/h8300/addsub.s gas/testsuite/gas/h8300/addsubh.s gas/testsuite/gas/h8300/addsubrxcheck.s gas/testsuite/gas/h8300/addsubs.s gas/testsuite/gas/h8300/bitops1.s gas/testsuite/gas/h8300/bitops1h.s gas/testsuite/gas/h8300/bitops1s.s gas/testsuite/gas/h8300/bitops2.s gas/testsuite/gas/h8300/bitops2h.s gas/testsuite/gas/h8300/bitops2s.s gas/testsuite/gas/h8300/bitops3.s gas/testsuite/gas/h8300/bitops3h.s gas/testsuite/gas/h8300/bitops3s.s gas/testsuite/gas/h8300/bitops4.s gas/testsuite/gas/h8300/bitops4h.s gas/testsuite/gas/h8300/bitops4s.s gas/testsuite/gas/h8300/branch-coff.s gas/testsuite/gas/h8300/branch-elf.s gas/testsuite/gas/h8300/branchh-coff.s gas/testsuite/gas/h8300/branchh-elf.s gas/testsuite/gas/h8300/branchs-coff.s gas/testsuite/gas/h8300/branchs-elf.s gas/testsuite/gas/h8300/cbranch.s gas/testsuite/gas/h8300/cbranchh.s gas/testsuite/gas/h8300/cbranchs.s gas/testsuite/gas/h8300/cmpsi2.s gas/testsuite/gas/h8300/compare.s gas/testsuite/gas/h8300/compareh.s gas/testsuite/gas/h8300/compares.s gas/testsuite/gas/h8300/decimal.s gas/testsuite/gas/h8300/decimalh.s gas/testsuite/gas/h8300/decimals.s gas/testsuite/gas/h8300/divmul.s gas/testsuite/gas/h8300/divmulh.s gas/testsuite/gas/h8300/divmuls.s gas/testsuite/gas/h8300/extendh.s gas/testsuite/gas/h8300/extends.s gas/testsuite/gas/h8300/ffxx1-coff.d gas/testsuite/gas/h8300/ffxx1-coff.s gas/testsuite/gas/h8300/ffxx1-elf.d gas/testsuite/gas/h8300/ffxx1-elf.s gas/testsuite/gas/h8300/h8300-coff.exp gas/testsuite/gas/h8300/h8300-elf.exp gas/testsuite/gas/h8300/h8300.exp gas/testsuite/gas/h8300/h8sx_disp2.d gas/testsuite/gas/h8300/h8sx_disp2.s gas/testsuite/gas/h8300/h8sx_mov_imm.d gas/testsuite/gas/h8300/h8sx_mov_imm.s gas/testsuite/gas/h8300/h8sx_rtsl.d gas/testsuite/gas/h8300/h8sx_rtsl.s gas/testsuite/gas/h8300/incdec.s gas/testsuite/gas/h8300/incdech.s gas/testsuite/gas/h8300/incdecs.s gas/testsuite/gas/h8300/logical.s gas/testsuite/gas/h8300/logicalh.s gas/testsuite/gas/h8300/logicals.s gas/testsuite/gas/h8300/macs.s gas/testsuite/gas/h8300/misc.s gas/testsuite/gas/h8300/misch.s gas/testsuite/gas/h8300/miscs.s gas/testsuite/gas/h8300/mov32bug.s gas/testsuite/gas/h8300/movb.s gas/testsuite/gas/h8300/movbh.s gas/testsuite/gas/h8300/movbs.s gas/testsuite/gas/h8300/movlh.s gas/testsuite/gas/h8300/movls.s gas/testsuite/gas/h8300/movw.s gas/testsuite/gas/h8300/movwh.s gas/testsuite/gas/h8300/movws.s gas/testsuite/gas/h8300/multiples.s gas/testsuite/gas/h8300/pr3134.d gas/testsuite/gas/h8300/pr3134.s gas/testsuite/gas/h8300/pushpop.s gas/testsuite/gas/h8300/pushpoph.s gas/testsuite/gas/h8300/pushpops.s gas/testsuite/gas/h8300/rotsh.s gas/testsuite/gas/h8300/rotshh.s gas/testsuite/gas/h8300/rotshs.s gas/testsuite/gas/h8300/symaddgen.s gas/testsuite/gas/h8300/t01_mov.exp gas/testsuite/gas/h8300/t01_mov.s gas/testsuite/gas/h8300/t02_mova.exp gas/testsuite/gas/h8300/t02_mova.s gas/testsuite/gas/h8300/t03_add.exp gas/testsuite/gas/h8300/t03_add.s gas/testsuite/gas/h8300/t04_sub.exp gas/testsuite/gas/h8300/t04_sub.s gas/testsuite/gas/h8300/t05_cmp.exp gas/testsuite/gas/h8300/t05_cmp.s gas/testsuite/gas/h8300/t06_ari2.exp gas/testsuite/gas/h8300/t06_ari2.s gas/testsuite/gas/h8300/t07_ari3.exp gas/testsuite/gas/h8300/t07_ari3.s gas/testsuite/gas/h8300/t08_or.exp gas/testsuite/gas/h8300/t08_or.s gas/testsuite/gas/h8300/t09_xor.exp gas/testsuite/gas/h8300/t09_xor.s gas/testsuite/gas/h8300/t10_and.exp gas/testsuite/gas/h8300/t10_and.s gas/testsuite/gas/h8300/t11_logs.exp gas/testsuite/gas/h8300/t11_logs.s gas/testsuite/gas/h8300/t12_bit.exp gas/testsuite/gas/h8300/t12_bit.s gas/testsuite/gas/h8300/t13_otr.exp gas/testsuite/gas/h8300/t13_otr.s gas/testsuite/gas/hppa/README gas/testsuite/gas/hppa/basic/add.s gas/testsuite/gas/hppa/basic/add2.s gas/testsuite/gas/hppa/basic/addi.s gas/testsuite/gas/hppa/basic/basic.exp gas/testsuite/gas/hppa/basic/branch.s gas/testsuite/gas/hppa/basic/branch2.s gas/testsuite/gas/hppa/basic/comclr.s gas/testsuite/gas/hppa/basic/copr.s gas/testsuite/gas/hppa/basic/coprmem.s gas/testsuite/gas/hppa/basic/dcor.s gas/testsuite/gas/hppa/basic/dcor2.s gas/testsuite/gas/hppa/basic/deposit.s gas/testsuite/gas/hppa/basic/deposit2.s gas/testsuite/gas/hppa/basic/deposit3.s gas/testsuite/gas/hppa/basic/ds.s gas/testsuite/gas/hppa/basic/extract.s gas/testsuite/gas/hppa/basic/extract2.s gas/testsuite/gas/hppa/basic/extract3.s gas/testsuite/gas/hppa/basic/fmem.s gas/testsuite/gas/hppa/basic/fmemLRbug.s gas/testsuite/gas/hppa/basic/fp_comp.s gas/testsuite/gas/hppa/basic/fp_comp2.s gas/testsuite/gas/hppa/basic/fp_conv.s gas/testsuite/gas/hppa/basic/fp_fcmp.s gas/testsuite/gas/hppa/basic/fp_misc.s gas/testsuite/gas/hppa/basic/imem.s gas/testsuite/gas/hppa/basic/immed.s gas/testsuite/gas/hppa/basic/logical.s gas/testsuite/gas/hppa/basic/media.s gas/testsuite/gas/hppa/basic/perf.s gas/testsuite/gas/hppa/basic/purge.s gas/testsuite/gas/hppa/basic/purge2.s gas/testsuite/gas/hppa/basic/sh1add.s gas/testsuite/gas/hppa/basic/sh2add.s gas/testsuite/gas/hppa/basic/sh3add.s gas/testsuite/gas/hppa/basic/shift.s gas/testsuite/gas/hppa/basic/shift2.s gas/testsuite/gas/hppa/basic/shift3.s gas/testsuite/gas/hppa/basic/shladd.s gas/testsuite/gas/hppa/basic/shladd2.s gas/testsuite/gas/hppa/basic/special.s gas/testsuite/gas/hppa/basic/spop.s gas/testsuite/gas/hppa/basic/sub.s gas/testsuite/gas/hppa/basic/sub2.s gas/testsuite/gas/hppa/basic/subi.s gas/testsuite/gas/hppa/basic/system.s gas/testsuite/gas/hppa/basic/system2.s gas/testsuite/gas/hppa/basic/unit.s gas/testsuite/gas/hppa/basic/unit2.s gas/testsuite/gas/hppa/basic/weird.s gas/testsuite/gas/hppa/parse/align1.s gas/testsuite/gas/hppa/parse/align2.s gas/testsuite/gas/hppa/parse/appbug.s gas/testsuite/gas/hppa/parse/badfmpyadd.s gas/testsuite/gas/hppa/parse/block1.s gas/testsuite/gas/hppa/parse/block2.s gas/testsuite/gas/hppa/parse/calldatabug.s gas/testsuite/gas/hppa/parse/callinfobug.s gas/testsuite/gas/hppa/parse/defbug.s gas/testsuite/gas/hppa/parse/entrybug.s gas/testsuite/gas/hppa/parse/exportbug.s gas/testsuite/gas/hppa/parse/exprbug.s gas/testsuite/gas/hppa/parse/fixup7bug.s gas/testsuite/gas/hppa/parse/global.s gas/testsuite/gas/hppa/parse/labelbug.s gas/testsuite/gas/hppa/parse/linesepbug.s gas/testsuite/gas/hppa/parse/lselbug.s gas/testsuite/gas/hppa/parse/nosubspace.s gas/testsuite/gas/hppa/parse/parse.exp gas/testsuite/gas/hppa/parse/procbug.s gas/testsuite/gas/hppa/parse/regpopbug.s gas/testsuite/gas/hppa/parse/space.s gas/testsuite/gas/hppa/parse/spacebug.s gas/testsuite/gas/hppa/parse/ssbug.s gas/testsuite/gas/hppa/parse/stdreg.s gas/testsuite/gas/hppa/parse/stringer.s gas/testsuite/gas/hppa/parse/undefbug.s gas/testsuite/gas/hppa/parse/versionbug.s gas/testsuite/gas/hppa/parse/xmpyubug.s gas/testsuite/gas/hppa/reloc/applybug.s gas/testsuite/gas/hppa/reloc/blebug.s gas/testsuite/gas/hppa/reloc/blebug2.s gas/testsuite/gas/hppa/reloc/blebug3.s gas/testsuite/gas/hppa/reloc/exitbug.s gas/testsuite/gas/hppa/reloc/fixupbug.s gas/testsuite/gas/hppa/reloc/funcrelocbug.s gas/testsuite/gas/hppa/reloc/labelopbug.s gas/testsuite/gas/hppa/reloc/longcall.s gas/testsuite/gas/hppa/reloc/picreloc.s gas/testsuite/gas/hppa/reloc/plabelbug.s gas/testsuite/gas/hppa/reloc/r_no_reloc.s gas/testsuite/gas/hppa/reloc/reduce.s gas/testsuite/gas/hppa/reloc/reduce2.s gas/testsuite/gas/hppa/reloc/reduce3.s gas/testsuite/gas/hppa/reloc/reloc.exp gas/testsuite/gas/hppa/reloc/roundmode.s gas/testsuite/gas/hppa/reloc/selectorbug.s gas/testsuite/gas/hppa/unsorted/align3.s gas/testsuite/gas/hppa/unsorted/align4.s gas/testsuite/gas/hppa/unsorted/brlenbug.s gas/testsuite/gas/hppa/unsorted/common.s gas/testsuite/gas/hppa/unsorted/fragbug.s gas/testsuite/gas/hppa/unsorted/globalbug.s gas/testsuite/gas/hppa/unsorted/importbug.s gas/testsuite/gas/hppa/unsorted/labeldiffs.s gas/testsuite/gas/hppa/unsorted/locallabel.s gas/testsuite/gas/hppa/unsorted/ss_align.s gas/testsuite/gas/hppa/unsorted/unsorted.exp gas/testsuite/gas/i386/287.d gas/testsuite/gas/i386/287.s gas/testsuite/gas/i386/387.d gas/testsuite/gas/i386/387.s gas/testsuite/gas/i386/8087.d gas/testsuite/gas/i386/8087.s gas/testsuite/gas/i386/absrel.d gas/testsuite/gas/i386/absrel.s gas/testsuite/gas/i386/addr16.d gas/testsuite/gas/i386/addr16.s gas/testsuite/gas/i386/addr32.d gas/testsuite/gas/i386/addr32.s gas/testsuite/gas/i386/adx-intel.d gas/testsuite/gas/i386/adx.d gas/testsuite/gas/i386/adx.s gas/testsuite/gas/i386/aes-intel.d gas/testsuite/gas/i386/aes.d gas/testsuite/gas/i386/aes.s gas/testsuite/gas/i386/amd.d gas/testsuite/gas/i386/amd.s gas/testsuite/gas/i386/amdfam10.d gas/testsuite/gas/i386/amdfam10.s gas/testsuite/gas/i386/arch-1.d gas/testsuite/gas/i386/arch-1.s gas/testsuite/gas/i386/arch-10-1.l gas/testsuite/gas/i386/arch-10-1.s gas/testsuite/gas/i386/arch-10-2.l gas/testsuite/gas/i386/arch-10-2.s gas/testsuite/gas/i386/arch-10-3.l gas/testsuite/gas/i386/arch-10-3.s gas/testsuite/gas/i386/arch-10-4.l gas/testsuite/gas/i386/arch-10-4.s gas/testsuite/gas/i386/arch-10-bdver1.d gas/testsuite/gas/i386/arch-10-bdver2.d gas/testsuite/gas/i386/arch-10-bdver3.d gas/testsuite/gas/i386/arch-10-btver1.d gas/testsuite/gas/i386/arch-10-btver2.d gas/testsuite/gas/i386/arch-10-lzcnt.d gas/testsuite/gas/i386/arch-10-prefetchw.d gas/testsuite/gas/i386/arch-10.d gas/testsuite/gas/i386/arch-10.s gas/testsuite/gas/i386/arch-11.d gas/testsuite/gas/i386/arch-11.s gas/testsuite/gas/i386/arch-12.d gas/testsuite/gas/i386/arch-12.s gas/testsuite/gas/i386/arch-2.d gas/testsuite/gas/i386/arch-2.s gas/testsuite/gas/i386/arch-3.d gas/testsuite/gas/i386/arch-3.s gas/testsuite/gas/i386/arch-4.d gas/testsuite/gas/i386/arch-4.s gas/testsuite/gas/i386/arch-5.d gas/testsuite/gas/i386/arch-5.s gas/testsuite/gas/i386/arch-6.d gas/testsuite/gas/i386/arch-6.s gas/testsuite/gas/i386/arch-7.d gas/testsuite/gas/i386/arch-7.s gas/testsuite/gas/i386/arch-9.d gas/testsuite/gas/i386/arch-9.s gas/testsuite/gas/i386/arch-avx-1-1.l gas/testsuite/gas/i386/arch-avx-1-1.s gas/testsuite/gas/i386/arch-avx-1-2.l gas/testsuite/gas/i386/arch-avx-1-2.s gas/testsuite/gas/i386/arch-avx-1-3.l gas/testsuite/gas/i386/arch-avx-1-3.s gas/testsuite/gas/i386/arch-avx-1-4.l gas/testsuite/gas/i386/arch-avx-1-4.s gas/testsuite/gas/i386/arch-avx-1-5.l gas/testsuite/gas/i386/arch-avx-1-5.s gas/testsuite/gas/i386/arch-avx-1-6.l gas/testsuite/gas/i386/arch-avx-1-6.s gas/testsuite/gas/i386/arch-avx-1.d gas/testsuite/gas/i386/arch-avx-1.s gas/testsuite/gas/i386/att-regs.d gas/testsuite/gas/i386/att-regs.s gas/testsuite/gas/i386/avx-gather-intel.d gas/testsuite/gas/i386/avx-gather.d gas/testsuite/gas/i386/avx-gather.s gas/testsuite/gas/i386/avx-intel.d gas/testsuite/gas/i386/avx-scalar-intel.d gas/testsuite/gas/i386/avx-scalar.d gas/testsuite/gas/i386/avx-scalar.s gas/testsuite/gas/i386/avx.d gas/testsuite/gas/i386/avx.s gas/testsuite/gas/i386/avx2-intel.d gas/testsuite/gas/i386/avx2.d gas/testsuite/gas/i386/avx2.s gas/testsuite/gas/i386/avx256int-intel.d gas/testsuite/gas/i386/avx256int.d gas/testsuite/gas/i386/avx256int.s gas/testsuite/gas/i386/avx512cd-intel.d gas/testsuite/gas/i386/avx512cd.d gas/testsuite/gas/i386/avx512cd.s gas/testsuite/gas/i386/avx512er-intel.d gas/testsuite/gas/i386/avx512er.d gas/testsuite/gas/i386/avx512er.s gas/testsuite/gas/i386/avx512f-intel.d gas/testsuite/gas/i386/avx512f-nondef.d gas/testsuite/gas/i386/avx512f-nondef.s gas/testsuite/gas/i386/avx512f-opts-intel.d gas/testsuite/gas/i386/avx512f-opts.d gas/testsuite/gas/i386/avx512f-opts.s gas/testsuite/gas/i386/avx512f.d gas/testsuite/gas/i386/avx512f.s gas/testsuite/gas/i386/avx512pf-intel.d gas/testsuite/gas/i386/avx512pf.d gas/testsuite/gas/i386/avx512pf.s gas/testsuite/gas/i386/bad-size.d gas/testsuite/gas/i386/bad-size.s gas/testsuite/gas/i386/bad-size.warn gas/testsuite/gas/i386/bmi-intel.d gas/testsuite/gas/i386/bmi.d gas/testsuite/gas/i386/bmi.s gas/testsuite/gas/i386/bmi2-intel.d gas/testsuite/gas/i386/bmi2.d gas/testsuite/gas/i386/bmi2.s gas/testsuite/gas/i386/bss.d gas/testsuite/gas/i386/bss.s gas/testsuite/gas/i386/bundle-bad.d gas/testsuite/gas/i386/bundle-bad.l gas/testsuite/gas/i386/bundle-bad.s gas/testsuite/gas/i386/bundle-lock.d gas/testsuite/gas/i386/bundle-lock.s gas/testsuite/gas/i386/bundle.d gas/testsuite/gas/i386/bundle.s gas/testsuite/gas/i386/clmul-intel.d gas/testsuite/gas/i386/clmul.d gas/testsuite/gas/i386/clmul.s gas/testsuite/gas/i386/compat-intel.d gas/testsuite/gas/i386/compat.d gas/testsuite/gas/i386/compat.s gas/testsuite/gas/i386/cr-err.l gas/testsuite/gas/i386/cr-err.s gas/testsuite/gas/i386/crc32-intel.d gas/testsuite/gas/i386/crc32.d gas/testsuite/gas/i386/crc32.s gas/testsuite/gas/i386/crx.d gas/testsuite/gas/i386/crx.s gas/testsuite/gas/i386/debug1.d gas/testsuite/gas/i386/debug1.s gas/testsuite/gas/i386/disp-intel.d gas/testsuite/gas/i386/disp.d gas/testsuite/gas/i386/disp.s gas/testsuite/gas/i386/disp32.d gas/testsuite/gas/i386/disp32.s gas/testsuite/gas/i386/divide.d gas/testsuite/gas/i386/divide.s gas/testsuite/gas/i386/dw2-compress-1.d gas/testsuite/gas/i386/dw2-compress-1.s gas/testsuite/gas/i386/dw2-compress-2.d gas/testsuite/gas/i386/dw2-compress-2.s gas/testsuite/gas/i386/ept-intel.d gas/testsuite/gas/i386/ept.d gas/testsuite/gas/i386/ept.s gas/testsuite/gas/i386/equ.d gas/testsuite/gas/i386/equ.s gas/testsuite/gas/i386/evex-lig.s gas/testsuite/gas/i386/evex-lig256-intel.d gas/testsuite/gas/i386/evex-lig256.d gas/testsuite/gas/i386/evex-lig512-intel.d gas/testsuite/gas/i386/evex-lig512.d gas/testsuite/gas/i386/evex-wig.s gas/testsuite/gas/i386/evex-wig1-intel.d gas/testsuite/gas/i386/evex-wig1.d gas/testsuite/gas/i386/f16c-intel.d gas/testsuite/gas/i386/f16c.d gas/testsuite/gas/i386/f16c.s gas/testsuite/gas/i386/float.l gas/testsuite/gas/i386/float.s gas/testsuite/gas/i386/fma-intel.d gas/testsuite/gas/i386/fma-scalar-intel.d gas/testsuite/gas/i386/fma-scalar.d gas/testsuite/gas/i386/fma-scalar.s gas/testsuite/gas/i386/fma.d gas/testsuite/gas/i386/fma.s gas/testsuite/gas/i386/fma4.d gas/testsuite/gas/i386/fma4.s gas/testsuite/gas/i386/fp.d gas/testsuite/gas/i386/fp.s gas/testsuite/gas/i386/fsgs-intel.d gas/testsuite/gas/i386/fsgs.d gas/testsuite/gas/i386/fsgs.s gas/testsuite/gas/i386/general.l gas/testsuite/gas/i386/general.s gas/testsuite/gas/i386/gotpc.d gas/testsuite/gas/i386/gotpc.s gas/testsuite/gas/i386/hle-intel.d gas/testsuite/gas/i386/hle.d gas/testsuite/gas/i386/hle.s gas/testsuite/gas/i386/hlebad.l gas/testsuite/gas/i386/hlebad.s gas/testsuite/gas/i386/i386.d gas/testsuite/gas/i386/i386.exp gas/testsuite/gas/i386/i386.s gas/testsuite/gas/i386/ifunc-2.l gas/testsuite/gas/i386/ifunc-2.s gas/testsuite/gas/i386/ifunc-3.d gas/testsuite/gas/i386/ifunc-3.s gas/testsuite/gas/i386/ifunc.d gas/testsuite/gas/i386/ifunc.s gas/testsuite/gas/i386/ilp32/cfi/cfi-common-1.d gas/testsuite/gas/i386/ilp32/cfi/cfi-common-2.d gas/testsuite/gas/i386/ilp32/cfi/cfi-common-3.d gas/testsuite/gas/i386/ilp32/cfi/cfi-common-4.d gas/testsuite/gas/i386/ilp32/cfi/cfi-common-5.d gas/testsuite/gas/i386/ilp32/cfi/cfi-common-6.d gas/testsuite/gas/i386/ilp32/cfi/cfi-common-7.d gas/testsuite/gas/i386/ilp32/cfi/cfi-x86_64.d gas/testsuite/gas/i386/ilp32/cfi/ilp32.exp gas/testsuite/gas/i386/ilp32/elf/ehopt0.d gas/testsuite/gas/i386/ilp32/elf/equ-reloc.d gas/testsuite/gas/i386/ilp32/elf/file.d gas/testsuite/gas/i386/ilp32/elf/group0a.d gas/testsuite/gas/i386/ilp32/elf/group0b.d gas/testsuite/gas/i386/ilp32/elf/group1a.d gas/testsuite/gas/i386/ilp32/elf/group1b.d gas/testsuite/gas/i386/ilp32/elf/ifunc-1.d gas/testsuite/gas/i386/ilp32/elf/ilp32.exp gas/testsuite/gas/i386/ilp32/elf/redef.d gas/testsuite/gas/i386/ilp32/elf/section0.d gas/testsuite/gas/i386/ilp32/elf/section1.d gas/testsuite/gas/i386/ilp32/elf/section3.d gas/testsuite/gas/i386/ilp32/elf/section4.d gas/testsuite/gas/i386/ilp32/elf/section6.d gas/testsuite/gas/i386/ilp32/elf/section7.d gas/testsuite/gas/i386/ilp32/elf/struct.d gas/testsuite/gas/i386/ilp32/elf/symtab.d gas/testsuite/gas/i386/ilp32/elf/symver.d gas/testsuite/gas/i386/ilp32/ilp32.exp gas/testsuite/gas/i386/ilp32/immed64.d gas/testsuite/gas/i386/ilp32/immed64.s gas/testsuite/gas/i386/ilp32/lns/ilp32.exp gas/testsuite/gas/i386/ilp32/lns/lns-common-1.d gas/testsuite/gas/i386/ilp32/lns/lns-duplicate.d gas/testsuite/gas/i386/ilp32/mixed-mode-reloc64.d gas/testsuite/gas/i386/ilp32/quad.d gas/testsuite/gas/i386/ilp32/quad.s gas/testsuite/gas/i386/ilp32/reloc64.d gas/testsuite/gas/i386/ilp32/reloc64.l gas/testsuite/gas/i386/ilp32/reloc64.s gas/testsuite/gas/i386/ilp32/rex.d gas/testsuite/gas/i386/ilp32/rexw.d gas/testsuite/gas/i386/ilp32/svme64.d gas/testsuite/gas/i386/ilp32/x86-64-addr32-intel.d gas/testsuite/gas/i386/ilp32/x86-64-addr32.d gas/testsuite/gas/i386/ilp32/x86-64-aes-intel.d gas/testsuite/gas/i386/ilp32/x86-64-aes.d gas/testsuite/gas/i386/ilp32/x86-64-amdfam10.d gas/testsuite/gas/i386/ilp32/x86-64-arch-1.d gas/testsuite/gas/i386/ilp32/x86-64-arch-2.d gas/testsuite/gas/i386/ilp32/x86-64-avx-intel.d gas/testsuite/gas/i386/ilp32/x86-64-avx-swap-intel.d gas/testsuite/gas/i386/ilp32/x86-64-avx-swap.d gas/testsuite/gas/i386/ilp32/x86-64-avx.d gas/testsuite/gas/i386/ilp32/x86-64-branch.d gas/testsuite/gas/i386/ilp32/x86-64-cbw-intel.d gas/testsuite/gas/i386/ilp32/x86-64-cbw.d gas/testsuite/gas/i386/ilp32/x86-64-clmul-intel.d gas/testsuite/gas/i386/ilp32/x86-64-clmul.d gas/testsuite/gas/i386/ilp32/x86-64-crc32-intel.d gas/testsuite/gas/i386/ilp32/x86-64-crc32.d gas/testsuite/gas/i386/ilp32/x86-64-crx-suffix.d gas/testsuite/gas/i386/ilp32/x86-64-crx.d gas/testsuite/gas/i386/ilp32/x86-64-dc_a.d gas/testsuite/gas/i386/ilp32/x86-64-dc_a.s gas/testsuite/gas/i386/ilp32/x86-64-disp-intel.d gas/testsuite/gas/i386/ilp32/x86-64-disp.d gas/testsuite/gas/i386/ilp32/x86-64-drx-suffix.d gas/testsuite/gas/i386/ilp32/x86-64-drx.d gas/testsuite/gas/i386/ilp32/x86-64-ept-intel.d gas/testsuite/gas/i386/ilp32/x86-64-ept.d gas/testsuite/gas/i386/ilp32/x86-64-fma-intel.d gas/testsuite/gas/i386/ilp32/x86-64-fma.d gas/testsuite/gas/i386/ilp32/x86-64-fma4.d gas/testsuite/gas/i386/ilp32/x86-64-gidt.d gas/testsuite/gas/i386/ilp32/x86-64-ifunc.d gas/testsuite/gas/i386/ilp32/x86-64-intel64.d gas/testsuite/gas/i386/ilp32/x86-64-io-intel.d gas/testsuite/gas/i386/ilp32/x86-64-io-suffix.d gas/testsuite/gas/i386/ilp32/x86-64-io.d gas/testsuite/gas/i386/ilp32/x86-64-localpic.d gas/testsuite/gas/i386/ilp32/x86-64-mem-intel.d gas/testsuite/gas/i386/ilp32/x86-64-mem.d gas/testsuite/gas/i386/ilp32/x86-64-movbe-intel.d gas/testsuite/gas/i386/ilp32/x86-64-movbe.d gas/testsuite/gas/i386/ilp32/x86-64-nops-1-core2.d gas/testsuite/gas/i386/ilp32/x86-64-nops-1-k8.d gas/testsuite/gas/i386/ilp32/x86-64-nops-1-nocona.d gas/testsuite/gas/i386/ilp32/x86-64-nops-1-pentium.d gas/testsuite/gas/i386/ilp32/x86-64-nops-1.d gas/testsuite/gas/i386/ilp32/x86-64-nops-2.d gas/testsuite/gas/i386/ilp32/x86-64-nops-3.d gas/testsuite/gas/i386/ilp32/x86-64-nops-4-core2.d gas/testsuite/gas/i386/ilp32/x86-64-nops-4-k8.d gas/testsuite/gas/i386/ilp32/x86-64-nops-4.d gas/testsuite/gas/i386/ilp32/x86-64-nops-5-k8.d gas/testsuite/gas/i386/ilp32/x86-64-nops-5.d gas/testsuite/gas/i386/ilp32/x86-64-nops.d gas/testsuite/gas/i386/ilp32/x86-64-opcode-inval-intel.d gas/testsuite/gas/i386/ilp32/x86-64-opcode-inval.d gas/testsuite/gas/i386/ilp32/x86-64-opcode.d gas/testsuite/gas/i386/ilp32/x86-64-opts-intel.d gas/testsuite/gas/i386/ilp32/x86-64-opts.d gas/testsuite/gas/i386/ilp32/x86-64-pcrel.d gas/testsuite/gas/i386/ilp32/x86-64-pcrel.s gas/testsuite/gas/i386/ilp32/x86-64-reg-intel.d gas/testsuite/gas/i386/ilp32/x86-64-reg.d gas/testsuite/gas/i386/ilp32/x86-64-rep-suffix.d gas/testsuite/gas/i386/ilp32/x86-64-rep.d gas/testsuite/gas/i386/ilp32/x86-64-rip-intel.d gas/testsuite/gas/i386/ilp32/x86-64-rip.d gas/testsuite/gas/i386/ilp32/x86-64-sib-intel.d gas/testsuite/gas/i386/ilp32/x86-64-sib.d gas/testsuite/gas/i386/ilp32/x86-64-simd-intel.d gas/testsuite/gas/i386/ilp32/x86-64-simd-suffix.d gas/testsuite/gas/i386/ilp32/x86-64-simd.d gas/testsuite/gas/i386/ilp32/x86-64-size-1.d gas/testsuite/gas/i386/ilp32/x86-64-size-2.d gas/testsuite/gas/i386/ilp32/x86-64-size-3.d gas/testsuite/gas/i386/ilp32/x86-64-size-4.d gas/testsuite/gas/i386/ilp32/x86-64-size-5.d gas/testsuite/gas/i386/ilp32/x86-64-sse-check-none.d gas/testsuite/gas/i386/ilp32/x86-64-sse-check-warn.d gas/testsuite/gas/i386/ilp32/x86-64-sse-check.d gas/testsuite/gas/i386/ilp32/x86-64-sse-noavx.d gas/testsuite/gas/i386/ilp32/x86-64-sse2avx-opts-intel.d gas/testsuite/gas/i386/ilp32/x86-64-sse2avx-opts.d gas/testsuite/gas/i386/ilp32/x86-64-sse2avx.d gas/testsuite/gas/i386/ilp32/x86-64-sse3.d gas/testsuite/gas/i386/ilp32/x86-64-sse4_1-intel.d gas/testsuite/gas/i386/ilp32/x86-64-sse4_1.d gas/testsuite/gas/i386/ilp32/x86-64-sse4_2-intel.d gas/testsuite/gas/i386/ilp32/x86-64-sse4_2.d gas/testsuite/gas/i386/ilp32/x86-64-ssse3.d gas/testsuite/gas/i386/ilp32/x86-64-stack-intel.d gas/testsuite/gas/i386/ilp32/x86-64-stack-suffix.d gas/testsuite/gas/i386/ilp32/x86-64-stack.d gas/testsuite/gas/i386/ilp32/x86-64-unwind.d gas/testsuite/gas/i386/ilp32/x86-64-vmx.d gas/testsuite/gas/i386/ilp32/x86-64-xsave-intel.d gas/testsuite/gas/i386/ilp32/x86-64-xsave.d gas/testsuite/gas/i386/ilp32/x86-64.d gas/testsuite/gas/i386/ilp32/x86-64.s gas/testsuite/gas/i386/immed32.d gas/testsuite/gas/i386/immed32.s gas/testsuite/gas/i386/immed64.d gas/testsuite/gas/i386/immed64.s gas/testsuite/gas/i386/intel-expr.d gas/testsuite/gas/i386/intel-expr.s gas/testsuite/gas/i386/intel-got32.d gas/testsuite/gas/i386/intel-got32.s gas/testsuite/gas/i386/intel-got64.d gas/testsuite/gas/i386/intel-got64.s gas/testsuite/gas/i386/intel-regs.d gas/testsuite/gas/i386/intel-regs.s gas/testsuite/gas/i386/intel.d gas/testsuite/gas/i386/intel.e gas/testsuite/gas/i386/intel.s gas/testsuite/gas/i386/intel16.d gas/testsuite/gas/i386/intel16.s gas/testsuite/gas/i386/intelbad.l gas/testsuite/gas/i386/intelbad.s gas/testsuite/gas/i386/intelok.d gas/testsuite/gas/i386/intelok.s gas/testsuite/gas/i386/intelpic.d gas/testsuite/gas/i386/intelpic.s gas/testsuite/gas/i386/inval-avx.l gas/testsuite/gas/i386/inval-avx.s gas/testsuite/gas/i386/inval-avx512f.l gas/testsuite/gas/i386/inval-avx512f.s gas/testsuite/gas/i386/inval-crc32.l gas/testsuite/gas/i386/inval-crc32.s gas/testsuite/gas/i386/inval-ept.l gas/testsuite/gas/i386/inval-ept.s gas/testsuite/gas/i386/inval-equ-1.l gas/testsuite/gas/i386/inval-equ-1.s gas/testsuite/gas/i386/inval-equ-2.l gas/testsuite/gas/i386/inval-equ-2.s gas/testsuite/gas/i386/inval-invpcid.l gas/testsuite/gas/i386/inval-invpcid.s gas/testsuite/gas/i386/inval-movbe.l gas/testsuite/gas/i386/inval-movbe.s gas/testsuite/gas/i386/inval-reg.l gas/testsuite/gas/i386/inval-reg.s gas/testsuite/gas/i386/inval-rep.l gas/testsuite/gas/i386/inval-rep.s gas/testsuite/gas/i386/inval-seg.l gas/testsuite/gas/i386/inval-seg.s gas/testsuite/gas/i386/inval.l gas/testsuite/gas/i386/inval.s gas/testsuite/gas/i386/invpcid-intel.d gas/testsuite/gas/i386/invpcid.d gas/testsuite/gas/i386/invpcid.s gas/testsuite/gas/i386/jump.d gas/testsuite/gas/i386/jump.s gas/testsuite/gas/i386/jump16.d gas/testsuite/gas/i386/jump16.s gas/testsuite/gas/i386/k1om-inval.l gas/testsuite/gas/i386/k1om-inval.s gas/testsuite/gas/i386/k1om.d gas/testsuite/gas/i386/katmai.d gas/testsuite/gas/i386/katmai.s gas/testsuite/gas/i386/l1om-inval.l gas/testsuite/gas/i386/l1om-inval.s gas/testsuite/gas/i386/l1om.d gas/testsuite/gas/i386/list-1.l gas/testsuite/gas/i386/list-1.s gas/testsuite/gas/i386/list-2.l gas/testsuite/gas/i386/list-2.s gas/testsuite/gas/i386/list-3.l gas/testsuite/gas/i386/list-3.s gas/testsuite/gas/i386/localpic.d gas/testsuite/gas/i386/localpic.s gas/testsuite/gas/i386/lock-1-intel.d gas/testsuite/gas/i386/lock-1.d gas/testsuite/gas/i386/lock-1.s gas/testsuite/gas/i386/lockbad-1.l gas/testsuite/gas/i386/lockbad-1.s gas/testsuite/gas/i386/long-1-intel.d gas/testsuite/gas/i386/long-1.d gas/testsuite/gas/i386/long-1.s gas/testsuite/gas/i386/lwp.d gas/testsuite/gas/i386/lwp.s gas/testsuite/gas/i386/mem-intel.d gas/testsuite/gas/i386/mem.d gas/testsuite/gas/i386/mem.s gas/testsuite/gas/i386/mixed-mode-reloc.s gas/testsuite/gas/i386/mixed-mode-reloc32.d gas/testsuite/gas/i386/mixed-mode-reloc64.d gas/testsuite/gas/i386/modrm.l gas/testsuite/gas/i386/modrm.s gas/testsuite/gas/i386/movbe-intel.d gas/testsuite/gas/i386/movbe.d gas/testsuite/gas/i386/movbe.s gas/testsuite/gas/i386/mpx-add-bnd-prefix.d gas/testsuite/gas/i386/mpx-add-bnd-prefix.s gas/testsuite/gas/i386/mpx-inval-1.l gas/testsuite/gas/i386/mpx-inval-1.s gas/testsuite/gas/i386/mpx.d gas/testsuite/gas/i386/mpx.s gas/testsuite/gas/i386/naked.d gas/testsuite/gas/i386/naked.s gas/testsuite/gas/i386/no87-2.l gas/testsuite/gas/i386/no87-2.s gas/testsuite/gas/i386/no87.l gas/testsuite/gas/i386/no87.s gas/testsuite/gas/i386/nops-1-bdver1.d gas/testsuite/gas/i386/nops-1-bdver2.d gas/testsuite/gas/i386/nops-1-bdver3.d gas/testsuite/gas/i386/nops-1-btver1.d gas/testsuite/gas/i386/nops-1-btver2.d gas/testsuite/gas/i386/nops-1-core2.d gas/testsuite/gas/i386/nops-1-i386-i686.d gas/testsuite/gas/i386/nops-1-i386.d gas/testsuite/gas/i386/nops-1-i686.d gas/testsuite/gas/i386/nops-1-k8.d gas/testsuite/gas/i386/nops-1.d gas/testsuite/gas/i386/nops-1.s gas/testsuite/gas/i386/nops-2-core2.d gas/testsuite/gas/i386/nops-2-i386.d gas/testsuite/gas/i386/nops-2.d gas/testsuite/gas/i386/nops-2.s gas/testsuite/gas/i386/nops-3-i386.d gas/testsuite/gas/i386/nops-3-i686.d gas/testsuite/gas/i386/nops-3.d gas/testsuite/gas/i386/nops-3.s gas/testsuite/gas/i386/nops-4-i386.d gas/testsuite/gas/i386/nops-4-i686.d gas/testsuite/gas/i386/nops-4.d gas/testsuite/gas/i386/nops-4.s gas/testsuite/gas/i386/nops-4a-i686.d gas/testsuite/gas/i386/nops-5-i686.d gas/testsuite/gas/i386/nops-5.d gas/testsuite/gas/i386/nops-5.s gas/testsuite/gas/i386/nops-6.d gas/testsuite/gas/i386/nops-6.s gas/testsuite/gas/i386/nops.d gas/testsuite/gas/i386/nops.s gas/testsuite/gas/i386/nops16-1.d gas/testsuite/gas/i386/nops16-1.s gas/testsuite/gas/i386/opcode-intel.d gas/testsuite/gas/i386/opcode-suffix.d gas/testsuite/gas/i386/opcode.d gas/testsuite/gas/i386/opcode.s gas/testsuite/gas/i386/opts-intel.d gas/testsuite/gas/i386/opts.d gas/testsuite/gas/i386/opts.s gas/testsuite/gas/i386/padlock.d gas/testsuite/gas/i386/padlock.s gas/testsuite/gas/i386/pcrel.d gas/testsuite/gas/i386/pcrel.s gas/testsuite/gas/i386/pr12589-1.d gas/testsuite/gas/i386/pr12589-1.s gas/testsuite/gas/i386/prefetch-intel.d gas/testsuite/gas/i386/prefetch.d gas/testsuite/gas/i386/prefetch.s gas/testsuite/gas/i386/prefix.d gas/testsuite/gas/i386/prefix.s gas/testsuite/gas/i386/rdrnd-intel.d gas/testsuite/gas/i386/rdrnd.d gas/testsuite/gas/i386/rdrnd.s gas/testsuite/gas/i386/rdseed-intel.d gas/testsuite/gas/i386/rdseed.d gas/testsuite/gas/i386/rdseed.s gas/testsuite/gas/i386/reg-bad.l gas/testsuite/gas/i386/reg-bad.s gas/testsuite/gas/i386/reg-intel.d gas/testsuite/gas/i386/reg.d gas/testsuite/gas/i386/reg.s gas/testsuite/gas/i386/relax-1.d gas/testsuite/gas/i386/relax-1.s gas/testsuite/gas/i386/relax-2.d gas/testsuite/gas/i386/relax-2.s gas/testsuite/gas/i386/relax.d gas/testsuite/gas/i386/relax.s gas/testsuite/gas/i386/reloc.d gas/testsuite/gas/i386/reloc.s gas/testsuite/gas/i386/reloc32.d gas/testsuite/gas/i386/reloc32.l gas/testsuite/gas/i386/reloc32.s gas/testsuite/gas/i386/reloc64.d gas/testsuite/gas/i386/reloc64.l gas/testsuite/gas/i386/reloc64.s gas/testsuite/gas/i386/rep-suffix.d gas/testsuite/gas/i386/rep-suffix.s gas/testsuite/gas/i386/rep.d gas/testsuite/gas/i386/rep.s gas/testsuite/gas/i386/rept.d gas/testsuite/gas/i386/rept.s gas/testsuite/gas/i386/rex.d gas/testsuite/gas/i386/rex.s gas/testsuite/gas/i386/rexw.d gas/testsuite/gas/i386/rexw.s gas/testsuite/gas/i386/rtm-intel.d gas/testsuite/gas/i386/rtm.d gas/testsuite/gas/i386/rtm.s gas/testsuite/gas/i386/secrel.d gas/testsuite/gas/i386/secrel.s gas/testsuite/gas/i386/segment.l gas/testsuite/gas/i386/segment.s gas/testsuite/gas/i386/sha.d gas/testsuite/gas/i386/sha.s gas/testsuite/gas/i386/sib-intel.d gas/testsuite/gas/i386/sib.d gas/testsuite/gas/i386/sib.s gas/testsuite/gas/i386/simd-intel.d gas/testsuite/gas/i386/simd-suffix.d gas/testsuite/gas/i386/simd.d gas/testsuite/gas/i386/simd.s gas/testsuite/gas/i386/size-1.d gas/testsuite/gas/i386/size-1.s gas/testsuite/gas/i386/size-2.d gas/testsuite/gas/i386/size-2.s gas/testsuite/gas/i386/size-3.d gas/testsuite/gas/i386/size-3.s gas/testsuite/gas/i386/size-4.d gas/testsuite/gas/i386/size-4.s gas/testsuite/gas/i386/smap.d gas/testsuite/gas/i386/smap.s gas/testsuite/gas/i386/smx.d gas/testsuite/gas/i386/smx.s gas/testsuite/gas/i386/space1.l gas/testsuite/gas/i386/space1.s gas/testsuite/gas/i386/sse-check-error.l gas/testsuite/gas/i386/sse-check-error.s gas/testsuite/gas/i386/sse-check-none.d gas/testsuite/gas/i386/sse-check-none.s gas/testsuite/gas/i386/sse-check-warn.d gas/testsuite/gas/i386/sse-check-warn.e gas/testsuite/gas/i386/sse-check.d gas/testsuite/gas/i386/sse-check.s gas/testsuite/gas/i386/sse-noavx.d gas/testsuite/gas/i386/sse-noavx.s gas/testsuite/gas/i386/sse2.d gas/testsuite/gas/i386/sse2.s gas/testsuite/gas/i386/sse2avx-opts-intel.d gas/testsuite/gas/i386/sse2avx-opts.d gas/testsuite/gas/i386/sse2avx.d gas/testsuite/gas/i386/sse2avx.s gas/testsuite/gas/i386/sse3.d gas/testsuite/gas/i386/sse3.s gas/testsuite/gas/i386/sse4_1-intel.d gas/testsuite/gas/i386/sse4_1.d gas/testsuite/gas/i386/sse4_1.s gas/testsuite/gas/i386/sse4_2-intel.d gas/testsuite/gas/i386/sse4_2.d gas/testsuite/gas/i386/sse4_2.s gas/testsuite/gas/i386/ssemmx2.d gas/testsuite/gas/i386/ssemmx2.s gas/testsuite/gas/i386/ssse3.d gas/testsuite/gas/i386/ssse3.s gas/testsuite/gas/i386/string-bad.l gas/testsuite/gas/i386/string-bad.s gas/testsuite/gas/i386/string-ok.d gas/testsuite/gas/i386/string-ok.e gas/testsuite/gas/i386/string-ok.s gas/testsuite/gas/i386/sub.d gas/testsuite/gas/i386/sub.s gas/testsuite/gas/i386/suffix.d gas/testsuite/gas/i386/suffix.s gas/testsuite/gas/i386/svme.d gas/testsuite/gas/i386/svme.s gas/testsuite/gas/i386/svme64.d gas/testsuite/gas/i386/tbm-intel.d gas/testsuite/gas/i386/tbm.d gas/testsuite/gas/i386/tbm.s gas/testsuite/gas/i386/tlsd.d gas/testsuite/gas/i386/tlsd.s gas/testsuite/gas/i386/tlsnopic.d gas/testsuite/gas/i386/tlsnopic.s gas/testsuite/gas/i386/tlspic.d gas/testsuite/gas/i386/tlspic.s gas/testsuite/gas/i386/vgather-check-error.l gas/testsuite/gas/i386/vgather-check-error.s gas/testsuite/gas/i386/vgather-check-none.d gas/testsuite/gas/i386/vgather-check-none.s gas/testsuite/gas/i386/vgather-check-warn.d gas/testsuite/gas/i386/vgather-check-warn.e gas/testsuite/gas/i386/vgather-check.d gas/testsuite/gas/i386/vgather-check.s gas/testsuite/gas/i386/vmfunc.d gas/testsuite/gas/i386/vmfunc.s gas/testsuite/gas/i386/vmx.d gas/testsuite/gas/i386/vmx.s gas/testsuite/gas/i386/white.l gas/testsuite/gas/i386/white.s gas/testsuite/gas/i386/x86-64-addr32-intel.d gas/testsuite/gas/i386/x86-64-addr32.d gas/testsuite/gas/i386/x86-64-addr32.s gas/testsuite/gas/i386/x86-64-adx-intel.d gas/testsuite/gas/i386/x86-64-adx.d gas/testsuite/gas/i386/x86-64-adx.s gas/testsuite/gas/i386/x86-64-aes-intel.d gas/testsuite/gas/i386/x86-64-aes.d gas/testsuite/gas/i386/x86-64-aes.s gas/testsuite/gas/i386/x86-64-amdfam10.d gas/testsuite/gas/i386/x86-64-amdfam10.s gas/testsuite/gas/i386/x86-64-arch-1.d gas/testsuite/gas/i386/x86-64-arch-1.s gas/testsuite/gas/i386/x86-64-arch-2-1.l gas/testsuite/gas/i386/x86-64-arch-2-1.s gas/testsuite/gas/i386/x86-64-arch-2-2.l gas/testsuite/gas/i386/x86-64-arch-2-2.s gas/testsuite/gas/i386/x86-64-arch-2-bdver1.d gas/testsuite/gas/i386/x86-64-arch-2-bdver2.d gas/testsuite/gas/i386/x86-64-arch-2-bdver3.d gas/testsuite/gas/i386/x86-64-arch-2-btver1.d gas/testsuite/gas/i386/x86-64-arch-2-btver2.d gas/testsuite/gas/i386/x86-64-arch-2-lzcnt.d gas/testsuite/gas/i386/x86-64-arch-2-prefetchw.d gas/testsuite/gas/i386/x86-64-arch-2.d gas/testsuite/gas/i386/x86-64-arch-2.s gas/testsuite/gas/i386/x86-64-avx-gather-intel.d gas/testsuite/gas/i386/x86-64-avx-gather.d gas/testsuite/gas/i386/x86-64-avx-gather.s gas/testsuite/gas/i386/x86-64-avx-intel.d gas/testsuite/gas/i386/x86-64-avx-scalar-intel.d gas/testsuite/gas/i386/x86-64-avx-scalar.d gas/testsuite/gas/i386/x86-64-avx-scalar.s gas/testsuite/gas/i386/x86-64-avx-swap-intel.d gas/testsuite/gas/i386/x86-64-avx-swap.d gas/testsuite/gas/i386/x86-64-avx-swap.s gas/testsuite/gas/i386/x86-64-avx.d gas/testsuite/gas/i386/x86-64-avx.s gas/testsuite/gas/i386/x86-64-avx2-intel.d gas/testsuite/gas/i386/x86-64-avx2.d gas/testsuite/gas/i386/x86-64-avx2.s gas/testsuite/gas/i386/x86-64-avx256int-intel.d gas/testsuite/gas/i386/x86-64-avx256int.d gas/testsuite/gas/i386/x86-64-avx256int.s gas/testsuite/gas/i386/x86-64-avx512cd-intel.d gas/testsuite/gas/i386/x86-64-avx512cd.d gas/testsuite/gas/i386/x86-64-avx512cd.s gas/testsuite/gas/i386/x86-64-avx512er-intel.d gas/testsuite/gas/i386/x86-64-avx512er.d gas/testsuite/gas/i386/x86-64-avx512er.s gas/testsuite/gas/i386/x86-64-avx512f-intel.d gas/testsuite/gas/i386/x86-64-avx512f-nondef.d gas/testsuite/gas/i386/x86-64-avx512f-nondef.s gas/testsuite/gas/i386/x86-64-avx512f-opts-intel.d gas/testsuite/gas/i386/x86-64-avx512f-opts.d gas/testsuite/gas/i386/x86-64-avx512f-opts.s gas/testsuite/gas/i386/x86-64-avx512f.d gas/testsuite/gas/i386/x86-64-avx512f.s gas/testsuite/gas/i386/x86-64-avx512pf-intel.d gas/testsuite/gas/i386/x86-64-avx512pf.d gas/testsuite/gas/i386/x86-64-avx512pf.s gas/testsuite/gas/i386/x86-64-bmi-intel.d gas/testsuite/gas/i386/x86-64-bmi.d gas/testsuite/gas/i386/x86-64-bmi.s gas/testsuite/gas/i386/x86-64-bmi2-intel.d gas/testsuite/gas/i386/x86-64-bmi2.d gas/testsuite/gas/i386/x86-64-bmi2.s gas/testsuite/gas/i386/x86-64-branch.d gas/testsuite/gas/i386/x86-64-branch.s gas/testsuite/gas/i386/x86-64-bundle.d gas/testsuite/gas/i386/x86-64-bundle.s gas/testsuite/gas/i386/x86-64-cbw-intel.d gas/testsuite/gas/i386/x86-64-cbw.d gas/testsuite/gas/i386/x86-64-cbw.s gas/testsuite/gas/i386/x86-64-clmul-intel.d gas/testsuite/gas/i386/x86-64-clmul.d gas/testsuite/gas/i386/x86-64-clmul.s gas/testsuite/gas/i386/x86-64-crc32-intel.d gas/testsuite/gas/i386/x86-64-crc32.d gas/testsuite/gas/i386/x86-64-crc32.s gas/testsuite/gas/i386/x86-64-crx-suffix.d gas/testsuite/gas/i386/x86-64-crx.d gas/testsuite/gas/i386/x86-64-crx.s gas/testsuite/gas/i386/x86-64-disp-intel.d gas/testsuite/gas/i386/x86-64-disp.d gas/testsuite/gas/i386/x86-64-disp.s gas/testsuite/gas/i386/x86-64-disp32.d gas/testsuite/gas/i386/x86-64-disp32.s gas/testsuite/gas/i386/x86-64-drx-suffix.d gas/testsuite/gas/i386/x86-64-drx.d gas/testsuite/gas/i386/x86-64-drx.s gas/testsuite/gas/i386/x86-64-dw2-compress-2.d gas/testsuite/gas/i386/x86-64-dw2-compress-2.s gas/testsuite/gas/i386/x86-64-ept-intel.d gas/testsuite/gas/i386/x86-64-ept.d gas/testsuite/gas/i386/x86-64-ept.s gas/testsuite/gas/i386/x86-64-evex-lig.s gas/testsuite/gas/i386/x86-64-evex-lig256-intel.d gas/testsuite/gas/i386/x86-64-evex-lig256.d gas/testsuite/gas/i386/x86-64-evex-lig512-intel.d gas/testsuite/gas/i386/x86-64-evex-lig512.d gas/testsuite/gas/i386/x86-64-evex-wig.s gas/testsuite/gas/i386/x86-64-evex-wig1-intel.d gas/testsuite/gas/i386/x86-64-evex-wig1.d gas/testsuite/gas/i386/x86-64-f16c-intel.d gas/testsuite/gas/i386/x86-64-f16c.d gas/testsuite/gas/i386/x86-64-f16c.s gas/testsuite/gas/i386/x86-64-fma-intel.d gas/testsuite/gas/i386/x86-64-fma-scalar-intel.d gas/testsuite/gas/i386/x86-64-fma-scalar.d gas/testsuite/gas/i386/x86-64-fma-scalar.s gas/testsuite/gas/i386/x86-64-fma.d gas/testsuite/gas/i386/x86-64-fma.s gas/testsuite/gas/i386/x86-64-fma4.d gas/testsuite/gas/i386/x86-64-fma4.s gas/testsuite/gas/i386/x86-64-fsgs-intel.d gas/testsuite/gas/i386/x86-64-fsgs.d gas/testsuite/gas/i386/x86-64-fsgs.s gas/testsuite/gas/i386/x86-64-fxsave-intel.d gas/testsuite/gas/i386/x86-64-fxsave.d gas/testsuite/gas/i386/x86-64-fxsave.s gas/testsuite/gas/i386/x86-64-gidt.d gas/testsuite/gas/i386/x86-64-gidt.s gas/testsuite/gas/i386/x86-64-hle-intel.d gas/testsuite/gas/i386/x86-64-hle.d gas/testsuite/gas/i386/x86-64-hle.s gas/testsuite/gas/i386/x86-64-hlebad.l gas/testsuite/gas/i386/x86-64-hlebad.s gas/testsuite/gas/i386/x86-64-ifunc.d gas/testsuite/gas/i386/x86-64-intel64.d gas/testsuite/gas/i386/x86-64-intel64.s gas/testsuite/gas/i386/x86-64-inval-avx.l gas/testsuite/gas/i386/x86-64-inval-avx.s gas/testsuite/gas/i386/x86-64-inval-avx512f.l gas/testsuite/gas/i386/x86-64-inval-avx512f.s gas/testsuite/gas/i386/x86-64-inval-crc32.l gas/testsuite/gas/i386/x86-64-inval-crc32.s gas/testsuite/gas/i386/x86-64-inval-ept.l gas/testsuite/gas/i386/x86-64-inval-ept.s gas/testsuite/gas/i386/x86-64-inval-invpcid.l gas/testsuite/gas/i386/x86-64-inval-invpcid.s gas/testsuite/gas/i386/x86-64-inval-movbe.l gas/testsuite/gas/i386/x86-64-inval-movbe.s gas/testsuite/gas/i386/x86-64-inval-rep.l gas/testsuite/gas/i386/x86-64-inval-rep.s gas/testsuite/gas/i386/x86-64-inval-seg.l gas/testsuite/gas/i386/x86-64-inval-seg.s gas/testsuite/gas/i386/x86-64-inval.l gas/testsuite/gas/i386/x86-64-inval.s gas/testsuite/gas/i386/x86-64-invpcid-intel.d gas/testsuite/gas/i386/x86-64-invpcid.d gas/testsuite/gas/i386/x86-64-invpcid.s gas/testsuite/gas/i386/x86-64-io-intel.d gas/testsuite/gas/i386/x86-64-io-suffix.d gas/testsuite/gas/i386/x86-64-io.d gas/testsuite/gas/i386/x86-64-io.s gas/testsuite/gas/i386/x86-64-localpic.d gas/testsuite/gas/i386/x86-64-localpic.s gas/testsuite/gas/i386/x86-64-lock-1-intel.d gas/testsuite/gas/i386/x86-64-lock-1.d gas/testsuite/gas/i386/x86-64-lock-1.s gas/testsuite/gas/i386/x86-64-lockbad-1.l gas/testsuite/gas/i386/x86-64-lockbad-1.s gas/testsuite/gas/i386/x86-64-long-1-intel.d gas/testsuite/gas/i386/x86-64-long-1.d gas/testsuite/gas/i386/x86-64-long-1.s gas/testsuite/gas/i386/x86-64-lwp.d gas/testsuite/gas/i386/x86-64-lwp.s gas/testsuite/gas/i386/x86-64-mem-intel.d gas/testsuite/gas/i386/x86-64-mem.d gas/testsuite/gas/i386/x86-64-mem.s gas/testsuite/gas/i386/x86-64-movbe-intel.d gas/testsuite/gas/i386/x86-64-movbe.d gas/testsuite/gas/i386/x86-64-movbe.s gas/testsuite/gas/i386/x86-64-mpx-add-bnd-prefix.d gas/testsuite/gas/i386/x86-64-mpx-add-bnd-prefix.s gas/testsuite/gas/i386/x86-64-mpx-addr32.d gas/testsuite/gas/i386/x86-64-mpx-addr32.s gas/testsuite/gas/i386/x86-64-mpx-inval-1.l gas/testsuite/gas/i386/x86-64-mpx-inval-1.s gas/testsuite/gas/i386/x86-64-mpx-inval-2.l gas/testsuite/gas/i386/x86-64-mpx-inval-2.s gas/testsuite/gas/i386/x86-64-mpx.d gas/testsuite/gas/i386/x86-64-mpx.s gas/testsuite/gas/i386/x86-64-nops-1-bdver1.d gas/testsuite/gas/i386/x86-64-nops-1-bdver2.d gas/testsuite/gas/i386/x86-64-nops-1-bdver3.d gas/testsuite/gas/i386/x86-64-nops-1-btver1.d gas/testsuite/gas/i386/x86-64-nops-1-btver2.d gas/testsuite/gas/i386/x86-64-nops-1-core2.d gas/testsuite/gas/i386/x86-64-nops-1-g64.d gas/testsuite/gas/i386/x86-64-nops-1-k8.d gas/testsuite/gas/i386/x86-64-nops-1-nocona.d gas/testsuite/gas/i386/x86-64-nops-1-pentium.d gas/testsuite/gas/i386/x86-64-nops-1.d gas/testsuite/gas/i386/x86-64-nops-2.d gas/testsuite/gas/i386/x86-64-nops-3.d gas/testsuite/gas/i386/x86-64-nops-4-core2.d gas/testsuite/gas/i386/x86-64-nops-4-k8.d gas/testsuite/gas/i386/x86-64-nops-4.d gas/testsuite/gas/i386/x86-64-nops-5-k8.d gas/testsuite/gas/i386/x86-64-nops-5.d gas/testsuite/gas/i386/x86-64-nops.d gas/testsuite/gas/i386/x86-64-nops.s gas/testsuite/gas/i386/x86-64-opcode-inval-intel.d gas/testsuite/gas/i386/x86-64-opcode-inval.d gas/testsuite/gas/i386/x86-64-opcode-inval.s gas/testsuite/gas/i386/x86-64-opcode.d gas/testsuite/gas/i386/x86-64-opcode.s gas/testsuite/gas/i386/x86-64-opts-intel.d gas/testsuite/gas/i386/x86-64-opts.d gas/testsuite/gas/i386/x86-64-opts.s gas/testsuite/gas/i386/x86-64-pcrel.d gas/testsuite/gas/i386/x86-64-pcrel.s gas/testsuite/gas/i386/x86-64-prefetch-intel.d gas/testsuite/gas/i386/x86-64-prefetch.d gas/testsuite/gas/i386/x86-64-rdrnd-intel.d gas/testsuite/gas/i386/x86-64-rdrnd.d gas/testsuite/gas/i386/x86-64-rdrnd.s gas/testsuite/gas/i386/x86-64-rdseed-intel.d gas/testsuite/gas/i386/x86-64-rdseed.d gas/testsuite/gas/i386/x86-64-rdseed.s gas/testsuite/gas/i386/x86-64-reg-intel.d gas/testsuite/gas/i386/x86-64-reg.d gas/testsuite/gas/i386/x86-64-reg.s gas/testsuite/gas/i386/x86-64-relax-1.d gas/testsuite/gas/i386/x86-64-relax-1.s gas/testsuite/gas/i386/x86-64-rep-suffix.d gas/testsuite/gas/i386/x86-64-rep-suffix.s gas/testsuite/gas/i386/x86-64-rep.d gas/testsuite/gas/i386/x86-64-rep.s gas/testsuite/gas/i386/x86-64-rip-intel.d gas/testsuite/gas/i386/x86-64-rip.d gas/testsuite/gas/i386/x86-64-rip.s gas/testsuite/gas/i386/x86-64-rtm-intel.d gas/testsuite/gas/i386/x86-64-rtm.d gas/testsuite/gas/i386/x86-64-rtm.s gas/testsuite/gas/i386/x86-64-segment.l gas/testsuite/gas/i386/x86-64-segment.s gas/testsuite/gas/i386/x86-64-segovr.d gas/testsuite/gas/i386/x86-64-segovr.s gas/testsuite/gas/i386/x86-64-sha.d gas/testsuite/gas/i386/x86-64-sha.s gas/testsuite/gas/i386/x86-64-sib-intel.d gas/testsuite/gas/i386/x86-64-sib.d gas/testsuite/gas/i386/x86-64-sib.s gas/testsuite/gas/i386/x86-64-simd-intel.d gas/testsuite/gas/i386/x86-64-simd-suffix.d gas/testsuite/gas/i386/x86-64-simd.d gas/testsuite/gas/i386/x86-64-simd.s gas/testsuite/gas/i386/x86-64-size-1.d gas/testsuite/gas/i386/x86-64-size-2.d gas/testsuite/gas/i386/x86-64-size-3.d gas/testsuite/gas/i386/x86-64-size-4.d gas/testsuite/gas/i386/x86-64-size-5.d gas/testsuite/gas/i386/x86-64-size-5.s gas/testsuite/gas/i386/x86-64-size-inval-1.l gas/testsuite/gas/i386/x86-64-size-inval-1.s gas/testsuite/gas/i386/x86-64-smap.d gas/testsuite/gas/i386/x86-64-specific-reg.l gas/testsuite/gas/i386/x86-64-specific-reg.s gas/testsuite/gas/i386/x86-64-sse-check-error.l gas/testsuite/gas/i386/x86-64-sse-check-error.s gas/testsuite/gas/i386/x86-64-sse-check-none.d gas/testsuite/gas/i386/x86-64-sse-check-warn.d gas/testsuite/gas/i386/x86-64-sse-check.d gas/testsuite/gas/i386/x86-64-sse-noavx.d gas/testsuite/gas/i386/x86-64-sse-noavx.s gas/testsuite/gas/i386/x86-64-sse2avx-opts-intel.d gas/testsuite/gas/i386/x86-64-sse2avx-opts.d gas/testsuite/gas/i386/x86-64-sse2avx.d gas/testsuite/gas/i386/x86-64-sse2avx.s gas/testsuite/gas/i386/x86-64-sse3.d gas/testsuite/gas/i386/x86-64-sse3.s gas/testsuite/gas/i386/x86-64-sse4_1-intel.d gas/testsuite/gas/i386/x86-64-sse4_1.d gas/testsuite/gas/i386/x86-64-sse4_1.s gas/testsuite/gas/i386/x86-64-sse4_2-intel.d gas/testsuite/gas/i386/x86-64-sse4_2.d gas/testsuite/gas/i386/x86-64-sse4_2.s gas/testsuite/gas/i386/x86-64-ssse3.d gas/testsuite/gas/i386/x86-64-ssse3.s gas/testsuite/gas/i386/x86-64-stack-intel.d gas/testsuite/gas/i386/x86-64-stack-suffix.d gas/testsuite/gas/i386/x86-64-stack.d gas/testsuite/gas/i386/x86-64-stack.s gas/testsuite/gas/i386/x86-64-tbm-intel.d gas/testsuite/gas/i386/x86-64-tbm.d gas/testsuite/gas/i386/x86-64-tbm.s gas/testsuite/gas/i386/x86-64-unwind.d gas/testsuite/gas/i386/x86-64-unwind.s gas/testsuite/gas/i386/x86-64-vgather-check-error.l gas/testsuite/gas/i386/x86-64-vgather-check-error.s gas/testsuite/gas/i386/x86-64-vgather-check-none.d gas/testsuite/gas/i386/x86-64-vgather-check-none.s gas/testsuite/gas/i386/x86-64-vgather-check-warn.d gas/testsuite/gas/i386/x86-64-vgather-check-warn.e gas/testsuite/gas/i386/x86-64-vgather-check.d gas/testsuite/gas/i386/x86-64-vgather-check.s gas/testsuite/gas/i386/x86-64-vmfunc.d gas/testsuite/gas/i386/x86-64-vmx.d gas/testsuite/gas/i386/x86-64-vmx.s gas/testsuite/gas/i386/x86-64-w64-pcrel.d gas/testsuite/gas/i386/x86-64-xop.d gas/testsuite/gas/i386/x86-64-xop.s gas/testsuite/gas/i386/x86-64-xsave-intel.d gas/testsuite/gas/i386/x86-64-xsave.d gas/testsuite/gas/i386/x86-64-xsave.s gas/testsuite/gas/i386/x86_64.d gas/testsuite/gas/i386/x86_64.s gas/testsuite/gas/i386/xop.d gas/testsuite/gas/i386/xop.s gas/testsuite/gas/i386/xsave-intel.d gas/testsuite/gas/i386/xsave.d gas/testsuite/gas/i386/xsave.s gas/testsuite/gas/i860/README.i860 gas/testsuite/gas/i860/bitwise.d gas/testsuite/gas/i860/bitwise.s gas/testsuite/gas/i860/branch.d gas/testsuite/gas/i860/branch.s gas/testsuite/gas/i860/bte.d gas/testsuite/gas/i860/bte.s gas/testsuite/gas/i860/dir-align01.d gas/testsuite/gas/i860/dir-align01.s gas/testsuite/gas/i860/dir-intel01.d gas/testsuite/gas/i860/dir-intel01.s gas/testsuite/gas/i860/dir-intel02.d gas/testsuite/gas/i860/dir-intel02.s gas/testsuite/gas/i860/dir-intel03-err.l gas/testsuite/gas/i860/dir-intel03-err.s gas/testsuite/gas/i860/dual01.d gas/testsuite/gas/i860/dual01.s gas/testsuite/gas/i860/dual02-err.l gas/testsuite/gas/i860/dual02-err.s gas/testsuite/gas/i860/dual03.d gas/testsuite/gas/i860/dual03.s gas/testsuite/gas/i860/fldst01.d gas/testsuite/gas/i860/fldst01.s gas/testsuite/gas/i860/fldst02.d gas/testsuite/gas/i860/fldst02.s gas/testsuite/gas/i860/fldst03.d gas/testsuite/gas/i860/fldst03.s gas/testsuite/gas/i860/fldst04.d gas/testsuite/gas/i860/fldst04.s gas/testsuite/gas/i860/fldst05.d gas/testsuite/gas/i860/fldst05.s gas/testsuite/gas/i860/fldst06.d gas/testsuite/gas/i860/fldst06.s gas/testsuite/gas/i860/fldst07.d gas/testsuite/gas/i860/fldst07.s gas/testsuite/gas/i860/fldst08.d gas/testsuite/gas/i860/fldst08.s gas/testsuite/gas/i860/float01.d gas/testsuite/gas/i860/float01.s gas/testsuite/gas/i860/float02.d gas/testsuite/gas/i860/float02.s gas/testsuite/gas/i860/float03.d gas/testsuite/gas/i860/float03.s gas/testsuite/gas/i860/float04.d gas/testsuite/gas/i860/float04.s gas/testsuite/gas/i860/form.d gas/testsuite/gas/i860/form.s gas/testsuite/gas/i860/i860.exp gas/testsuite/gas/i860/iarith.d gas/testsuite/gas/i860/iarith.s gas/testsuite/gas/i860/ldst01.d gas/testsuite/gas/i860/ldst01.s gas/testsuite/gas/i860/ldst02.d gas/testsuite/gas/i860/ldst02.s gas/testsuite/gas/i860/ldst03.d gas/testsuite/gas/i860/ldst03.s gas/testsuite/gas/i860/ldst04.d gas/testsuite/gas/i860/ldst04.s gas/testsuite/gas/i860/ldst05.d gas/testsuite/gas/i860/ldst05.s gas/testsuite/gas/i860/ldst06.d gas/testsuite/gas/i860/ldst06.s gas/testsuite/gas/i860/pfam.d gas/testsuite/gas/i860/pfam.s gas/testsuite/gas/i860/pfmam.d gas/testsuite/gas/i860/pfmam.s gas/testsuite/gas/i860/pfmsm.d gas/testsuite/gas/i860/pfmsm.s gas/testsuite/gas/i860/pfsm.d gas/testsuite/gas/i860/pfsm.s gas/testsuite/gas/i860/pseudo-ops01.d gas/testsuite/gas/i860/pseudo-ops01.s gas/testsuite/gas/i860/regress01.d gas/testsuite/gas/i860/regress01.s gas/testsuite/gas/i860/shift.d gas/testsuite/gas/i860/shift.s gas/testsuite/gas/i860/simd.d gas/testsuite/gas/i860/simd.s gas/testsuite/gas/i860/system.d gas/testsuite/gas/i860/system.s gas/testsuite/gas/i860/xp.d gas/testsuite/gas/i860/xp.s gas/testsuite/gas/ia64/alias-ilp32.d gas/testsuite/gas/ia64/alias.d gas/testsuite/gas/ia64/alias.s gas/testsuite/gas/ia64/align.d gas/testsuite/gas/ia64/align.s gas/testsuite/gas/ia64/alloc.l gas/testsuite/gas/ia64/alloc.s gas/testsuite/gas/ia64/bundling.d gas/testsuite/gas/ia64/bundling.s gas/testsuite/gas/ia64/dependency-1.d gas/testsuite/gas/ia64/dependency-1.s gas/testsuite/gas/ia64/dv-branch.d gas/testsuite/gas/ia64/dv-branch.s gas/testsuite/gas/ia64/dv-entry-err.l gas/testsuite/gas/ia64/dv-entry-err.s gas/testsuite/gas/ia64/dv-imply.d gas/testsuite/gas/ia64/dv-imply.s gas/testsuite/gas/ia64/dv-mutex-err.l gas/testsuite/gas/ia64/dv-mutex-err.s gas/testsuite/gas/ia64/dv-mutex.d gas/testsuite/gas/ia64/dv-mutex.s gas/testsuite/gas/ia64/dv-raw-err.l gas/testsuite/gas/ia64/dv-raw-err.s gas/testsuite/gas/ia64/dv-safe.d gas/testsuite/gas/ia64/dv-safe.s gas/testsuite/gas/ia64/dv-srlz.d gas/testsuite/gas/ia64/dv-srlz.s gas/testsuite/gas/ia64/dv-war-err.l gas/testsuite/gas/ia64/dv-war-err.s gas/testsuite/gas/ia64/dv-waw-err.l gas/testsuite/gas/ia64/dv-waw-err.s gas/testsuite/gas/ia64/fixup-dump.pl gas/testsuite/gas/ia64/forward.d gas/testsuite/gas/ia64/forward.s gas/testsuite/gas/ia64/global.d gas/testsuite/gas/ia64/global.s gas/testsuite/gas/ia64/group-1.d gas/testsuite/gas/ia64/group-1.s gas/testsuite/gas/ia64/group-2.d gas/testsuite/gas/ia64/group-2.s gas/testsuite/gas/ia64/hint.b-err.l gas/testsuite/gas/ia64/hint.b-err.s gas/testsuite/gas/ia64/hint.b-warn.l gas/testsuite/gas/ia64/hint.b-warn.s gas/testsuite/gas/ia64/ia64.exp gas/testsuite/gas/ia64/index.l gas/testsuite/gas/ia64/index.s gas/testsuite/gas/ia64/invalid-ar.l gas/testsuite/gas/ia64/invalid-ar.s gas/testsuite/gas/ia64/label.l gas/testsuite/gas/ia64/label.s gas/testsuite/gas/ia64/last.l gas/testsuite/gas/ia64/last.s gas/testsuite/gas/ia64/ldxmov-1.d gas/testsuite/gas/ia64/ldxmov-1.s gas/testsuite/gas/ia64/ldxmov-2.l gas/testsuite/gas/ia64/ldxmov-2.s gas/testsuite/gas/ia64/ltoff22x-1.d gas/testsuite/gas/ia64/ltoff22x-1.s gas/testsuite/gas/ia64/ltoff22x-2.d gas/testsuite/gas/ia64/ltoff22x-2.s gas/testsuite/gas/ia64/ltoff22x-3.d gas/testsuite/gas/ia64/ltoff22x-3.s gas/testsuite/gas/ia64/ltoff22x-4.d gas/testsuite/gas/ia64/ltoff22x-4.s gas/testsuite/gas/ia64/ltoff22x-5.d gas/testsuite/gas/ia64/ltoff22x-5.s gas/testsuite/gas/ia64/mov-ar.d gas/testsuite/gas/ia64/mov-ar.s gas/testsuite/gas/ia64/no-fit.l gas/testsuite/gas/ia64/no-fit.s gas/testsuite/gas/ia64/nop_x.d gas/testsuite/gas/ia64/nop_x.s gas/testsuite/gas/ia64/nostkreg.d gas/testsuite/gas/ia64/nostkreg.s gas/testsuite/gas/ia64/opc-a-err.l gas/testsuite/gas/ia64/opc-a-err.s gas/testsuite/gas/ia64/opc-a.d gas/testsuite/gas/ia64/opc-a.pl gas/testsuite/gas/ia64/opc-a.s gas/testsuite/gas/ia64/opc-b.d gas/testsuite/gas/ia64/opc-b.pl gas/testsuite/gas/ia64/opc-b.s gas/testsuite/gas/ia64/opc-f.d gas/testsuite/gas/ia64/opc-f.pl gas/testsuite/gas/ia64/opc-f.s gas/testsuite/gas/ia64/opc-i.d gas/testsuite/gas/ia64/opc-i.pl gas/testsuite/gas/ia64/opc-i.s gas/testsuite/gas/ia64/opc-m.d gas/testsuite/gas/ia64/opc-m.pl gas/testsuite/gas/ia64/opc-m.s gas/testsuite/gas/ia64/opc-x.d gas/testsuite/gas/ia64/opc-x.s gas/testsuite/gas/ia64/operand-or.d gas/testsuite/gas/ia64/operand-or.s gas/testsuite/gas/ia64/operands.l gas/testsuite/gas/ia64/operands.s gas/testsuite/gas/ia64/order.d gas/testsuite/gas/ia64/order.s gas/testsuite/gas/ia64/pcrel.d gas/testsuite/gas/ia64/pcrel.s gas/testsuite/gas/ia64/pound.l gas/testsuite/gas/ia64/pound.s gas/testsuite/gas/ia64/pr13167.d gas/testsuite/gas/ia64/pr13167.s gas/testsuite/gas/ia64/pred-rel.s gas/testsuite/gas/ia64/proc.l gas/testsuite/gas/ia64/proc.s gas/testsuite/gas/ia64/pseudo.d gas/testsuite/gas/ia64/pseudo.s gas/testsuite/gas/ia64/psn.d gas/testsuite/gas/ia64/psn.s gas/testsuite/gas/ia64/radix.l gas/testsuite/gas/ia64/radix.s gas/testsuite/gas/ia64/real.d gas/testsuite/gas/ia64/real.s gas/testsuite/gas/ia64/reg-err.l gas/testsuite/gas/ia64/reg-err.s gas/testsuite/gas/ia64/regs.d gas/testsuite/gas/ia64/regs.pl gas/testsuite/gas/ia64/regs.s gas/testsuite/gas/ia64/regval.l gas/testsuite/gas/ia64/regval.s gas/testsuite/gas/ia64/reloc-bad.l gas/testsuite/gas/ia64/reloc-bad.s gas/testsuite/gas/ia64/reloc-mlx.d gas/testsuite/gas/ia64/reloc-mlx.s gas/testsuite/gas/ia64/reloc-uw-ilp32.d gas/testsuite/gas/ia64/reloc-uw.d gas/testsuite/gas/ia64/reloc-uw.s gas/testsuite/gas/ia64/reloc.d gas/testsuite/gas/ia64/reloc.s gas/testsuite/gas/ia64/rotX.l gas/testsuite/gas/ia64/rotX.s gas/testsuite/gas/ia64/secname-ilp32.d gas/testsuite/gas/ia64/secname.d gas/testsuite/gas/ia64/secname.s gas/testsuite/gas/ia64/slot2.l gas/testsuite/gas/ia64/slot2.s gas/testsuite/gas/ia64/slotcount.d gas/testsuite/gas/ia64/slotcount.s gas/testsuite/gas/ia64/strange.d gas/testsuite/gas/ia64/strange.s gas/testsuite/gas/ia64/tls.d gas/testsuite/gas/ia64/tls.s gas/testsuite/gas/ia64/unwind-bad.l gas/testsuite/gas/ia64/unwind-bad.s gas/testsuite/gas/ia64/unwind-err.l gas/testsuite/gas/ia64/unwind-err.s gas/testsuite/gas/ia64/unwind-ilp32.d gas/testsuite/gas/ia64/unwind-ok.d gas/testsuite/gas/ia64/unwind-ok.s gas/testsuite/gas/ia64/unwind.d gas/testsuite/gas/ia64/unwind.s gas/testsuite/gas/ia64/xdata-ilp32.d gas/testsuite/gas/ia64/xdata.d gas/testsuite/gas/ia64/xdata.s gas/testsuite/gas/ieee-fp/x930509a.exp gas/testsuite/gas/ieee-fp/x930509a.s gas/testsuite/gas/iq2000/allinsn.d gas/testsuite/gas/iq2000/allinsn.exp gas/testsuite/gas/iq2000/allinsn.s gas/testsuite/gas/iq2000/hazard0.s gas/testsuite/gas/iq2000/hazard1.s gas/testsuite/gas/iq2000/hazard2.s gas/testsuite/gas/iq2000/hazard3.s gas/testsuite/gas/iq2000/hazard4.s gas/testsuite/gas/iq2000/hazard5.s gas/testsuite/gas/iq2000/load-hazards.exp gas/testsuite/gas/iq2000/nohazard.s gas/testsuite/gas/iq2000/noyield.s gas/testsuite/gas/iq2000/odd-ldw.exp gas/testsuite/gas/iq2000/odd-sdw.exp gas/testsuite/gas/iq2000/oddldw.s gas/testsuite/gas/iq2000/oddsdw.s gas/testsuite/gas/iq2000/yield.exp gas/testsuite/gas/iq2000/yield0.s gas/testsuite/gas/iq2000/yield1.s gas/testsuite/gas/iq2000/yield2.s gas/testsuite/gas/lm32/all.exp gas/testsuite/gas/lm32/csr.d gas/testsuite/gas/lm32/csr.s gas/testsuite/gas/lm32/insn.d gas/testsuite/gas/lm32/insn.s gas/testsuite/gas/lns/lns-big-delta.d gas/testsuite/gas/lns/lns-big-delta.s gas/testsuite/gas/lns/lns-common-1-alt.d gas/testsuite/gas/lns/lns-common-1-ia64.s gas/testsuite/gas/lns/lns-common-1.d gas/testsuite/gas/lns/lns-common-1.s gas/testsuite/gas/lns/lns-diag-1.l gas/testsuite/gas/lns/lns-diag-1.s gas/testsuite/gas/lns/lns-duplicate.d gas/testsuite/gas/lns/lns-duplicate.s gas/testsuite/gas/lns/lns.exp gas/testsuite/gas/m32r/allinsn.d gas/testsuite/gas/m32r/allinsn.exp gas/testsuite/gas/m32r/allinsn.s gas/testsuite/gas/m32r/error.exp gas/testsuite/gas/m32r/fslot.d gas/testsuite/gas/m32r/fslot.s gas/testsuite/gas/m32r/fslotx.d gas/testsuite/gas/m32r/fslotx.s gas/testsuite/gas/m32r/high-1.d gas/testsuite/gas/m32r/high-1.s gas/testsuite/gas/m32r/interfere.s gas/testsuite/gas/m32r/m32r.exp gas/testsuite/gas/m32r/m32r2.d gas/testsuite/gas/m32r/m32r2.exp gas/testsuite/gas/m32r/m32r2.s gas/testsuite/gas/m32r/m32rx.d gas/testsuite/gas/m32r/m32rx.exp gas/testsuite/gas/m32r/m32rx.s gas/testsuite/gas/m32r/outofrange.s gas/testsuite/gas/m32r/parallel-2.d gas/testsuite/gas/m32r/parallel-2.s gas/testsuite/gas/m32r/parallel.s gas/testsuite/gas/m32r/pic.d gas/testsuite/gas/m32r/pic.exp gas/testsuite/gas/m32r/pic.s gas/testsuite/gas/m32r/pic2.d gas/testsuite/gas/m32r/pic2.s gas/testsuite/gas/m32r/rel32-err.s gas/testsuite/gas/m32r/rel32-pic.d gas/testsuite/gas/m32r/rel32-pic.s gas/testsuite/gas/m32r/rel32.d gas/testsuite/gas/m32r/rel32.exp gas/testsuite/gas/m32r/rel32.s gas/testsuite/gas/m32r/rela-1.d gas/testsuite/gas/m32r/rela-1.s gas/testsuite/gas/m32r/relax-1.d gas/testsuite/gas/m32r/relax-1.s gas/testsuite/gas/m32r/relax-2.d gas/testsuite/gas/m32r/relax-2.s gas/testsuite/gas/m32r/seth.d gas/testsuite/gas/m32r/seth.s gas/testsuite/gas/m32r/signed-relocs.d gas/testsuite/gas/m32r/signed-relocs.s gas/testsuite/gas/m32r/uppercase.d gas/testsuite/gas/m32r/uppercase.s gas/testsuite/gas/m32r/wrongsize.s gas/testsuite/gas/m68hc11/9s12x-exg-sex-tfr.d gas/testsuite/gas/m68hc11/9s12x-exg-sex-tfr.s gas/testsuite/gas/m68hc11/9s12x-mov.d gas/testsuite/gas/m68hc11/9s12x-mov.s gas/testsuite/gas/m68hc11/abi-m68hc11-16-32.d gas/testsuite/gas/m68hc11/abi-m68hc11-16-64.d gas/testsuite/gas/m68hc11/abi-m68hc11-32-32.d gas/testsuite/gas/m68hc11/abi-m68hc11-32-64.d gas/testsuite/gas/m68hc11/abi.s gas/testsuite/gas/m68hc11/all_insns.d gas/testsuite/gas/m68hc11/all_insns.s gas/testsuite/gas/m68hc11/branchs12.d gas/testsuite/gas/m68hc11/branchs12.s gas/testsuite/gas/m68hc11/bug-1825.d gas/testsuite/gas/m68hc11/bug-1825.s gas/testsuite/gas/m68hc11/hexprefix.d gas/testsuite/gas/m68hc11/hexprefix.s gas/testsuite/gas/m68hc11/indexed12.d gas/testsuite/gas/m68hc11/indexed12.s gas/testsuite/gas/m68hc11/insns-dwarf2.d gas/testsuite/gas/m68hc11/insns.d gas/testsuite/gas/m68hc11/insns.s gas/testsuite/gas/m68hc11/insns12.d gas/testsuite/gas/m68hc11/insns12.s gas/testsuite/gas/m68hc11/insns9s12x.d gas/testsuite/gas/m68hc11/insns9s12x.s gas/testsuite/gas/m68hc11/insns9s12xg.d gas/testsuite/gas/m68hc11/insns9s12xg.s gas/testsuite/gas/m68hc11/lbranch-dwarf2.d gas/testsuite/gas/m68hc11/lbranch.d gas/testsuite/gas/m68hc11/lbranch.s gas/testsuite/gas/m68hc11/m68hc11.exp gas/testsuite/gas/m68hc11/malis-include.s gas/testsuite/gas/m68hc11/malis.d gas/testsuite/gas/m68hc11/malis.s gas/testsuite/gas/m68hc11/movb.d gas/testsuite/gas/m68hc11/movb.s gas/testsuite/gas/m68hc11/opers12-dwarf2.d gas/testsuite/gas/m68hc11/opers12.d gas/testsuite/gas/m68hc11/opers12.s gas/testsuite/gas/m68k-coff/gas.exp gas/testsuite/gas/m68k-coff/p2389.s gas/testsuite/gas/m68k-coff/p2389a.s gas/testsuite/gas/m68k-coff/p2430.s gas/testsuite/gas/m68k-coff/p2430a.s gas/testsuite/gas/m68k-coff/t1.s gas/testsuite/gas/m68k/all.exp gas/testsuite/gas/m68k/arch-cpu-1.d gas/testsuite/gas/m68k/arch-cpu-1.s gas/testsuite/gas/m68k/bitfield.d gas/testsuite/gas/m68k/bitfield.s gas/testsuite/gas/m68k/br-isaa.d gas/testsuite/gas/m68k/br-isaa.s gas/testsuite/gas/m68k/br-isab.d gas/testsuite/gas/m68k/br-isab.s gas/testsuite/gas/m68k/br-isac.d gas/testsuite/gas/m68k/br-isac.s gas/testsuite/gas/m68k/cas.d gas/testsuite/gas/m68k/cas.s gas/testsuite/gas/m68k/cpu32.d gas/testsuite/gas/m68k/cpu32.s gas/testsuite/gas/m68k/ctrl-1.d gas/testsuite/gas/m68k/ctrl-1.s gas/testsuite/gas/m68k/ctrl-2.d gas/testsuite/gas/m68k/ctrl-2.s gas/testsuite/gas/m68k/disperr.s gas/testsuite/gas/m68k/fido.d gas/testsuite/gas/m68k/fido.s gas/testsuite/gas/m68k/fmoveml.d gas/testsuite/gas/m68k/fmoveml.s gas/testsuite/gas/m68k/link.d gas/testsuite/gas/m68k/link.s gas/testsuite/gas/m68k/mcf-coproc.d gas/testsuite/gas/m68k/mcf-coproc.s gas/testsuite/gas/m68k/mcf-emac.d gas/testsuite/gas/m68k/mcf-emac.s gas/testsuite/gas/m68k/mcf-fpu.d gas/testsuite/gas/m68k/mcf-fpu.s gas/testsuite/gas/m68k/mcf-mac.d gas/testsuite/gas/m68k/mcf-mac.s gas/testsuite/gas/m68k/mcf-mov3q.d gas/testsuite/gas/m68k/mcf-mov3q.s gas/testsuite/gas/m68k/mcf-movsr.d gas/testsuite/gas/m68k/mcf-movsr.s gas/testsuite/gas/m68k/mcf-trap.d gas/testsuite/gas/m68k/mcf-trap.s gas/testsuite/gas/m68k/mcf-wdebug.d gas/testsuite/gas/m68k/mcf-wdebug.s gas/testsuite/gas/m68k/mode5.d gas/testsuite/gas/m68k/mode5.s gas/testsuite/gas/m68k/movem-offset.d gas/testsuite/gas/m68k/movem-offset.s gas/testsuite/gas/m68k/op68000.d gas/testsuite/gas/m68k/operands.d gas/testsuite/gas/m68k/operands.s gas/testsuite/gas/m68k/p11673.s gas/testsuite/gas/m68k/p2410.s gas/testsuite/gas/m68k/p2663.s gas/testsuite/gas/m68k/p3041.d gas/testsuite/gas/m68k/p3041.s gas/testsuite/gas/m68k/p3041data.d gas/testsuite/gas/m68k/p3041data.s gas/testsuite/gas/m68k/p3041pcrel.d gas/testsuite/gas/m68k/p3041pcrel.s gas/testsuite/gas/m68k/pcrel.d gas/testsuite/gas/m68k/pcrel.s gas/testsuite/gas/m68k/pic1.s gas/testsuite/gas/m68k/pmove.d gas/testsuite/gas/m68k/pmove.s gas/testsuite/gas/m68k/pr11676.d gas/testsuite/gas/m68k/pr11676.s gas/testsuite/gas/m68k/t2.d gas/testsuite/gas/m68k/t2.s gas/testsuite/gas/m68k/tls-gd-3.d gas/testsuite/gas/m68k/tls-gd-3.s gas/testsuite/gas/mach-o/comm-1.d gas/testsuite/gas/mach-o/comm-1.s gas/testsuite/gas/mach-o/dysymtab-1-64.d gas/testsuite/gas/mach-o/dysymtab-1.d gas/testsuite/gas/mach-o/dysymtab-2.d gas/testsuite/gas/mach-o/dysymtab-3.d gas/testsuite/gas/mach-o/empty.s gas/testsuite/gas/mach-o/err-sections-1.s gas/testsuite/gas/mach-o/err-sections-2.s gas/testsuite/gas/mach-o/err-syms-1.s gas/testsuite/gas/mach-o/err-syms-2.s gas/testsuite/gas/mach-o/err-syms-3.s gas/testsuite/gas/mach-o/err-syms-4.s gas/testsuite/gas/mach-o/err-syms-5.s gas/testsuite/gas/mach-o/err-syms-6.s gas/testsuite/gas/mach-o/lcomm-1.d gas/testsuite/gas/mach-o/lcomm-1.s gas/testsuite/gas/mach-o/mach-o.exp gas/testsuite/gas/mach-o/macro-irp.d gas/testsuite/gas/mach-o/macro-repeat.d gas/testsuite/gas/mach-o/macro-rept.d gas/testsuite/gas/mach-o/macro-test2.d gas/testsuite/gas/mach-o/macro-vararg.d gas/testsuite/gas/mach-o/redef2.d gas/testsuite/gas/mach-o/redef3.d gas/testsuite/gas/mach-o/sections-1.d gas/testsuite/gas/mach-o/sections-1.s gas/testsuite/gas/mach-o/sections-2.d gas/testsuite/gas/mach-o/sections-3.d gas/testsuite/gas/mach-o/sections-3.s gas/testsuite/gas/mach-o/subsect-via-symbols-0.d gas/testsuite/gas/mach-o/subsect-via-symbols-1.d gas/testsuite/gas/mach-o/subsect-via-symbols.s gas/testsuite/gas/mach-o/symbols-1-64.d gas/testsuite/gas/mach-o/symbols-1.d gas/testsuite/gas/mach-o/symbols-2.d gas/testsuite/gas/mach-o/symbols-2.s gas/testsuite/gas/mach-o/symbols-3.s gas/testsuite/gas/mach-o/symbols-4.s gas/testsuite/gas/mach-o/symbols-5.d gas/testsuite/gas/mach-o/symbols-5.s gas/testsuite/gas/mach-o/symbols-6-64.d gas/testsuite/gas/mach-o/symbols-6-64.s gas/testsuite/gas/mach-o/symbols-6.d gas/testsuite/gas/mach-o/symbols-6.s gas/testsuite/gas/mach-o/symbols-7.s gas/testsuite/gas/mach-o/symbols-base-64.s gas/testsuite/gas/mach-o/symbols-base.s gas/testsuite/gas/mach-o/warn-1.s gas/testsuite/gas/mach-o/zerofill-1.d gas/testsuite/gas/mach-o/zerofill-1.s gas/testsuite/gas/mach-o/zerofill-2.d gas/testsuite/gas/macros/altmacro.d gas/testsuite/gas/macros/altmacro.s gas/testsuite/gas/macros/and.s gas/testsuite/gas/macros/app1.d gas/testsuite/gas/macros/app1.s gas/testsuite/gas/macros/app2.d gas/testsuite/gas/macros/app2.s gas/testsuite/gas/macros/app3.d gas/testsuite/gas/macros/app3.s gas/testsuite/gas/macros/app4.d gas/testsuite/gas/macros/app4.s gas/testsuite/gas/macros/app4b.s gas/testsuite/gas/macros/badarg.l gas/testsuite/gas/macros/badarg.s gas/testsuite/gas/macros/dot.l gas/testsuite/gas/macros/dot.s gas/testsuite/gas/macros/end.l gas/testsuite/gas/macros/end.s gas/testsuite/gas/macros/err.s gas/testsuite/gas/macros/exit.s gas/testsuite/gas/macros/irp.d gas/testsuite/gas/macros/irp.s gas/testsuite/gas/macros/macros.exp gas/testsuite/gas/macros/paren.d gas/testsuite/gas/macros/paren.s gas/testsuite/gas/macros/purge.l gas/testsuite/gas/macros/purge.s gas/testsuite/gas/macros/redef.l gas/testsuite/gas/macros/redef.s gas/testsuite/gas/macros/repeat.d gas/testsuite/gas/macros/repeat.s gas/testsuite/gas/macros/rept.d gas/testsuite/gas/macros/rept.s gas/testsuite/gas/macros/semi.d gas/testsuite/gas/macros/semi.s gas/testsuite/gas/macros/strings.d gas/testsuite/gas/macros/strings.s gas/testsuite/gas/macros/test1.d gas/testsuite/gas/macros/test1.s gas/testsuite/gas/macros/test2.d gas/testsuite/gas/macros/test2.s gas/testsuite/gas/macros/test3.d gas/testsuite/gas/macros/test3.s gas/testsuite/gas/macros/vararg.d gas/testsuite/gas/macros/vararg.s gas/testsuite/gas/mcore/allinsn.d gas/testsuite/gas/mcore/allinsn.exp gas/testsuite/gas/mcore/allinsn.s gas/testsuite/gas/mep/allinsn.be.d gas/testsuite/gas/mep/allinsn.exp gas/testsuite/gas/mep/allinsn.le.d gas/testsuite/gas/mep/allinsn.s gas/testsuite/gas/mep/branch1.be.d gas/testsuite/gas/mep/branch1.le.d gas/testsuite/gas/mep/branch1.s gas/testsuite/gas/mep/complex-relocs.exp gas/testsuite/gas/mep/dj1.be.d gas/testsuite/gas/mep/dj1.le.d gas/testsuite/gas/mep/dj1.s gas/testsuite/gas/mep/dj2.be.d gas/testsuite/gas/mep/dj2.le.d gas/testsuite/gas/mep/dj2.s gas/testsuite/gas/mep/relocs-bad3.s gas/testsuite/gas/mep/relocs-junk1.s gas/testsuite/gas/mep/relocs-junk2.s gas/testsuite/gas/mep/relocs-refs.s gas/testsuite/gas/mep/relocs-syms.s gas/testsuite/gas/mep/relocs.d gas/testsuite/gas/metag/labelarithmetic.d gas/testsuite/gas/metag/labelarithmetic.s gas/testsuite/gas/metag/metacore12.d gas/testsuite/gas/metag/metacore12.s gas/testsuite/gas/metag/metacore21-invalid.l gas/testsuite/gas/metag/metacore21-invalid.s gas/testsuite/gas/metag/metacore21.d gas/testsuite/gas/metag/metacore21.s gas/testsuite/gas/metag/metacore21ext.d gas/testsuite/gas/metag/metacore21ext.s gas/testsuite/gas/metag/metadsp21-invalid.l gas/testsuite/gas/metag/metadsp21-invalid.s gas/testsuite/gas/metag/metadsp21.d gas/testsuite/gas/metag/metadsp21.s gas/testsuite/gas/metag/metadsp21ext.d gas/testsuite/gas/metag/metadsp21ext.s gas/testsuite/gas/metag/metafpu21.d gas/testsuite/gas/metag/metafpu21.s gas/testsuite/gas/metag/metafpu21ext.d gas/testsuite/gas/metag/metafpu21ext.s gas/testsuite/gas/metag/metag.exp gas/testsuite/gas/metag/tls.d gas/testsuite/gas/metag/tls.s gas/testsuite/gas/microblaze/allinsn.d gas/testsuite/gas/microblaze/allinsn.exp gas/testsuite/gas/microblaze/allinsn.s gas/testsuite/gas/microblaze/endian.exp gas/testsuite/gas/microblaze/endian.s gas/testsuite/gas/microblaze/endian_be.d gas/testsuite/gas/microblaze/endian_le.d gas/testsuite/gas/microblaze/endian_le_elf.d gas/testsuite/gas/microblaze/relax_size.elf gas/testsuite/gas/microblaze/relax_size.exp gas/testsuite/gas/microblaze/relax_size.s gas/testsuite/gas/microblaze/relax_size2.elf gas/testsuite/gas/microblaze/relax_size2.s gas/testsuite/gas/microblaze/reloc_strongsym.s gas/testsuite/gas/microblaze/reloc_sym.d gas/testsuite/gas/microblaze/reloc_sym.exp gas/testsuite/gas/microblaze/reloc_weaksym.s gas/testsuite/gas/microblaze/special_reg.d gas/testsuite/gas/microblaze/special_reg.exp gas/testsuite/gas/microblaze/special_reg.s gas/testsuite/gas/mips/24k-branch-delay-1.d gas/testsuite/gas/mips/24k-branch-delay-1.s gas/testsuite/gas/mips/24k-triple-stores-1.d gas/testsuite/gas/mips/24k-triple-stores-1.s gas/testsuite/gas/mips/24k-triple-stores-10.d gas/testsuite/gas/mips/24k-triple-stores-10.s gas/testsuite/gas/mips/24k-triple-stores-11.d gas/testsuite/gas/mips/24k-triple-stores-11.s gas/testsuite/gas/mips/24k-triple-stores-2-llsc.d gas/testsuite/gas/mips/24k-triple-stores-2-llsc.s gas/testsuite/gas/mips/24k-triple-stores-2.d gas/testsuite/gas/mips/24k-triple-stores-2.s gas/testsuite/gas/mips/24k-triple-stores-3.d gas/testsuite/gas/mips/24k-triple-stores-3.s gas/testsuite/gas/mips/24k-triple-stores-4.d gas/testsuite/gas/mips/24k-triple-stores-4.s gas/testsuite/gas/mips/24k-triple-stores-5.d gas/testsuite/gas/mips/24k-triple-stores-5.s gas/testsuite/gas/mips/24k-triple-stores-6.d gas/testsuite/gas/mips/24k-triple-stores-6.s gas/testsuite/gas/mips/24k-triple-stores-7.d gas/testsuite/gas/mips/24k-triple-stores-7.s gas/testsuite/gas/mips/24k-triple-stores-8.d gas/testsuite/gas/mips/24k-triple-stores-8.s gas/testsuite/gas/mips/24k-triple-stores-9.d gas/testsuite/gas/mips/24k-triple-stores-9.s gas/testsuite/gas/mips/abs.d gas/testsuite/gas/mips/abs.s gas/testsuite/gas/mips/add.d gas/testsuite/gas/mips/add.s gas/testsuite/gas/mips/aent.d gas/testsuite/gas/mips/aent.s gas/testsuite/gas/mips/align.d gas/testsuite/gas/mips/align.s gas/testsuite/gas/mips/align2-el.d gas/testsuite/gas/mips/align2.d gas/testsuite/gas/mips/align2.s gas/testsuite/gas/mips/align3.d gas/testsuite/gas/mips/align3.s gas/testsuite/gas/mips/alnv_ps-swap.d gas/testsuite/gas/mips/alnv_ps-swap.s gas/testsuite/gas/mips/and.d gas/testsuite/gas/mips/and.s gas/testsuite/gas/mips/ase-errors-1.l gas/testsuite/gas/mips/ase-errors-1.s gas/testsuite/gas/mips/ase-errors-2.l gas/testsuite/gas/mips/ase-errors-2.s gas/testsuite/gas/mips/ase-errors-3.l gas/testsuite/gas/mips/ase-errors-3.s gas/testsuite/gas/mips/ase-errors-4.l gas/testsuite/gas/mips/ase-errors-4.s gas/testsuite/gas/mips/at-1.d gas/testsuite/gas/mips/at-1.s gas/testsuite/gas/mips/at-2.l gas/testsuite/gas/mips/at-2.s gas/testsuite/gas/mips/baddata1.l gas/testsuite/gas/mips/baddata1.s gas/testsuite/gas/mips/beq.d gas/testsuite/gas/mips/beq.s gas/testsuite/gas/mips/bge.d gas/testsuite/gas/mips/bge.s gas/testsuite/gas/mips/bgeu.d gas/testsuite/gas/mips/bgeu.s gas/testsuite/gas/mips/blt.d gas/testsuite/gas/mips/blt.s gas/testsuite/gas/mips/bltu.d gas/testsuite/gas/mips/bltu.s gas/testsuite/gas/mips/bltzal.l gas/testsuite/gas/mips/bltzal.s gas/testsuite/gas/mips/branch-likely.d gas/testsuite/gas/mips/branch-likely.s gas/testsuite/gas/mips/branch-misc-1.d gas/testsuite/gas/mips/branch-misc-1.s gas/testsuite/gas/mips/branch-misc-2-64.d gas/testsuite/gas/mips/branch-misc-2.d gas/testsuite/gas/mips/branch-misc-2.s gas/testsuite/gas/mips/branch-misc-2pic-64.d gas/testsuite/gas/mips/branch-misc-2pic.d gas/testsuite/gas/mips/branch-misc-3.d gas/testsuite/gas/mips/branch-misc-3.s gas/testsuite/gas/mips/branch-misc-4-64.d gas/testsuite/gas/mips/branch-misc-4.d gas/testsuite/gas/mips/branch-misc-4.s gas/testsuite/gas/mips/branch-swap-2.l gas/testsuite/gas/mips/branch-swap-2.s gas/testsuite/gas/mips/branch-swap.d gas/testsuite/gas/mips/branch-swap.s gas/testsuite/gas/mips/break20.d gas/testsuite/gas/mips/break20.s gas/testsuite/gas/mips/cache.d gas/testsuite/gas/mips/cache.s gas/testsuite/gas/mips/call-nonpic-1.d gas/testsuite/gas/mips/call-nonpic-1.s gas/testsuite/gas/mips/cfi-n64-1.d gas/testsuite/gas/mips/cfi-n64-1.s gas/testsuite/gas/mips/cp0-names-mips32.d gas/testsuite/gas/mips/cp0-names-mips32r2.d gas/testsuite/gas/mips/cp0-names-mips64.d gas/testsuite/gas/mips/cp0-names-mips64r2.d gas/testsuite/gas/mips/cp0-names-numeric.d gas/testsuite/gas/mips/cp0-names-r3000.d gas/testsuite/gas/mips/cp0-names-r4000.d gas/testsuite/gas/mips/cp0-names-sb1.d gas/testsuite/gas/mips/cp0-names.s gas/testsuite/gas/mips/cp0sel-names-mips32.d gas/testsuite/gas/mips/cp0sel-names-mips32r2.d gas/testsuite/gas/mips/cp0sel-names-mips64.d gas/testsuite/gas/mips/cp0sel-names-mips64r2.d gas/testsuite/gas/mips/cp0sel-names-numeric.d gas/testsuite/gas/mips/cp0sel-names-sb1.d gas/testsuite/gas/mips/cp0sel-names.s gas/testsuite/gas/mips/daddi.d gas/testsuite/gas/mips/daddi.s gas/testsuite/gas/mips/delay.d gas/testsuite/gas/mips/delay.s gas/testsuite/gas/mips/div-ilocks.d gas/testsuite/gas/mips/div.d gas/testsuite/gas/mips/div.s gas/testsuite/gas/mips/dla-reloc.d gas/testsuite/gas/mips/dla-reloc.s gas/testsuite/gas/mips/dli.d gas/testsuite/gas/mips/dli.s gas/testsuite/gas/mips/dot-1.d gas/testsuite/gas/mips/dot-1.s gas/testsuite/gas/mips/e32-rel2.d gas/testsuite/gas/mips/e32-rel4.d gas/testsuite/gas/mips/e32el-rel2.d gas/testsuite/gas/mips/ecoff@ld-forward.d gas/testsuite/gas/mips/ecoff@ld-zero-3.d gas/testsuite/gas/mips/ecoff@ld.d gas/testsuite/gas/mips/ecoff@sd-forward.d gas/testsuite/gas/mips/ecoff@sd.d gas/testsuite/gas/mips/ehword.d gas/testsuite/gas/mips/ehword.s gas/testsuite/gas/mips/elf-consthilo.d gas/testsuite/gas/mips/elf-consthilo.s gas/testsuite/gas/mips/elf-rel-got-n32.d gas/testsuite/gas/mips/elf-rel-got-n32.s gas/testsuite/gas/mips/elf-rel-got-n64.d gas/testsuite/gas/mips/elf-rel-got-n64.s gas/testsuite/gas/mips/elf-rel-xgot-n32.d gas/testsuite/gas/mips/elf-rel-xgot-n64.d gas/testsuite/gas/mips/elf-rel.d gas/testsuite/gas/mips/elf-rel.s gas/testsuite/gas/mips/elf-rel10.d gas/testsuite/gas/mips/elf-rel10.s gas/testsuite/gas/mips/elf-rel11.d gas/testsuite/gas/mips/elf-rel11.s gas/testsuite/gas/mips/elf-rel12.d gas/testsuite/gas/mips/elf-rel12.s gas/testsuite/gas/mips/elf-rel13-mips16.d gas/testsuite/gas/mips/elf-rel13-mips16.s gas/testsuite/gas/mips/elf-rel13.d gas/testsuite/gas/mips/elf-rel13.s gas/testsuite/gas/mips/elf-rel14.d gas/testsuite/gas/mips/elf-rel14.s gas/testsuite/gas/mips/elf-rel15.d gas/testsuite/gas/mips/elf-rel15.s gas/testsuite/gas/mips/elf-rel16.d gas/testsuite/gas/mips/elf-rel16.s gas/testsuite/gas/mips/elf-rel17.d gas/testsuite/gas/mips/elf-rel17.s gas/testsuite/gas/mips/elf-rel18.d gas/testsuite/gas/mips/elf-rel18.s gas/testsuite/gas/mips/elf-rel19.d gas/testsuite/gas/mips/elf-rel19.s gas/testsuite/gas/mips/elf-rel2.d gas/testsuite/gas/mips/elf-rel2.s gas/testsuite/gas/mips/elf-rel20.d gas/testsuite/gas/mips/elf-rel20.s gas/testsuite/gas/mips/elf-rel21.d gas/testsuite/gas/mips/elf-rel21.s gas/testsuite/gas/mips/elf-rel22.d gas/testsuite/gas/mips/elf-rel22.s gas/testsuite/gas/mips/elf-rel23.d gas/testsuite/gas/mips/elf-rel23.s gas/testsuite/gas/mips/elf-rel23a.d gas/testsuite/gas/mips/elf-rel23b.d gas/testsuite/gas/mips/elf-rel24.d gas/testsuite/gas/mips/elf-rel24.s gas/testsuite/gas/mips/elf-rel25.d gas/testsuite/gas/mips/elf-rel25.s gas/testsuite/gas/mips/elf-rel25a.d gas/testsuite/gas/mips/elf-rel26.d gas/testsuite/gas/mips/elf-rel26.s gas/testsuite/gas/mips/elf-rel27.d gas/testsuite/gas/mips/elf-rel27.s gas/testsuite/gas/mips/elf-rel28-n32.d gas/testsuite/gas/mips/elf-rel28-n64.d gas/testsuite/gas/mips/elf-rel28.s gas/testsuite/gas/mips/elf-rel29.d gas/testsuite/gas/mips/elf-rel29.s gas/testsuite/gas/mips/elf-rel3.d gas/testsuite/gas/mips/elf-rel3.s gas/testsuite/gas/mips/elf-rel30.l gas/testsuite/gas/mips/elf-rel30.s gas/testsuite/gas/mips/elf-rel4.d gas/testsuite/gas/mips/elf-rel4.s gas/testsuite/gas/mips/elf-rel5.d gas/testsuite/gas/mips/elf-rel5.s gas/testsuite/gas/mips/elf-rel6-n32.d gas/testsuite/gas/mips/elf-rel6-n64.d gas/testsuite/gas/mips/elf-rel6.d gas/testsuite/gas/mips/elf-rel6.s gas/testsuite/gas/mips/elf-rel7.d gas/testsuite/gas/mips/elf-rel7.s gas/testsuite/gas/mips/elf-rel8-mips16.d gas/testsuite/gas/mips/elf-rel8-mips16.s gas/testsuite/gas/mips/elf-rel8.d gas/testsuite/gas/mips/elf-rel8.s gas/testsuite/gas/mips/elf-rel9-mips16.d gas/testsuite/gas/mips/elf-rel9-mips16.s gas/testsuite/gas/mips/elf-rel9.d gas/testsuite/gas/mips/elf-rel9.s gas/testsuite/gas/mips/elf_arch_mips1.d gas/testsuite/gas/mips/elf_arch_mips2.d gas/testsuite/gas/mips/elf_arch_mips3.d gas/testsuite/gas/mips/elf_arch_mips32.d gas/testsuite/gas/mips/elf_arch_mips32r2.d gas/testsuite/gas/mips/elf_arch_mips4.d gas/testsuite/gas/mips/elf_arch_mips5.d gas/testsuite/gas/mips/elf_arch_mips64.d gas/testsuite/gas/mips/elf_arch_mips64r2.d gas/testsuite/gas/mips/elf_ase_micromips-2.d gas/testsuite/gas/mips/elf_ase_micromips.d gas/testsuite/gas/mips/elf_ase_mips16-2.d gas/testsuite/gas/mips/elf_ase_mips16.d gas/testsuite/gas/mips/elf_e_flags.c gas/testsuite/gas/mips/elf_e_flags.s gas/testsuite/gas/mips/elf_e_flags1.d gas/testsuite/gas/mips/elf_e_flags2.d gas/testsuite/gas/mips/elf_e_flags3.d gas/testsuite/gas/mips/elf_e_flags4.d gas/testsuite/gas/mips/elfel-rel.d gas/testsuite/gas/mips/elfel-rel2.d gas/testsuite/gas/mips/elfel-rel3.d gas/testsuite/gas/mips/empty.s gas/testsuite/gas/mips/eret-1.d gas/testsuite/gas/mips/eret-1.s gas/testsuite/gas/mips/eret-2.d gas/testsuite/gas/mips/eret-2.s gas/testsuite/gas/mips/eret-3.d gas/testsuite/gas/mips/eret-3.s gas/testsuite/gas/mips/eva.d gas/testsuite/gas/mips/eva.s gas/testsuite/gas/mips/expr1.d gas/testsuite/gas/mips/expr1.s gas/testsuite/gas/mips/ext-ill.l gas/testsuite/gas/mips/ext-ill.s gas/testsuite/gas/mips/fpr-names-32.d gas/testsuite/gas/mips/fpr-names-64.d gas/testsuite/gas/mips/fpr-names-n32.d gas/testsuite/gas/mips/fpr-names-numeric.d gas/testsuite/gas/mips/fpr-names.s gas/testsuite/gas/mips/gpr-names-32.d gas/testsuite/gas/mips/gpr-names-64.d gas/testsuite/gas/mips/gpr-names-n32.d gas/testsuite/gas/mips/gpr-names-numeric.d gas/testsuite/gas/mips/gpr-names.s gas/testsuite/gas/mips/hilo-diff-eb-n32.d gas/testsuite/gas/mips/hilo-diff-eb-n64.d gas/testsuite/gas/mips/hilo-diff-eb.d gas/testsuite/gas/mips/hilo-diff-el-n32.d gas/testsuite/gas/mips/hilo-diff-el-n64.d gas/testsuite/gas/mips/hilo-diff-el.d gas/testsuite/gas/mips/hilo-diff.s gas/testsuite/gas/mips/hwr-names-mips32r2.d gas/testsuite/gas/mips/hwr-names-mips64r2.d gas/testsuite/gas/mips/hwr-names-numeric.d gas/testsuite/gas/mips/hwr-names.s gas/testsuite/gas/mips/illegal.l gas/testsuite/gas/mips/illegal.s gas/testsuite/gas/mips/itbl gas/testsuite/gas/mips/itbl.s gas/testsuite/gas/mips/jal-mask-1.s gas/testsuite/gas/mips/jal-mask-11.d gas/testsuite/gas/mips/jal-mask-12.d gas/testsuite/gas/mips/jal-mask-2.s gas/testsuite/gas/mips/jal-mask-21.d gas/testsuite/gas/mips/jal-mask-22.d gas/testsuite/gas/mips/jal-newabi.d gas/testsuite/gas/mips/jal-newabi.s gas/testsuite/gas/mips/jal-range.l gas/testsuite/gas/mips/jal-range.s gas/testsuite/gas/mips/jal-svr4pic-noreorder.d gas/testsuite/gas/mips/jal-svr4pic-noreorder.s gas/testsuite/gas/mips/jal-svr4pic.d gas/testsuite/gas/mips/jal-svr4pic.s gas/testsuite/gas/mips/jal-xgot.d gas/testsuite/gas/mips/jal.d gas/testsuite/gas/mips/jal.s gas/testsuite/gas/mips/jalr.l gas/testsuite/gas/mips/jalr.s gas/testsuite/gas/mips/jalr2.d gas/testsuite/gas/mips/jalr2.s gas/testsuite/gas/mips/jalr3-n32.d gas/testsuite/gas/mips/jalr3-n64.d gas/testsuite/gas/mips/jalr3.d gas/testsuite/gas/mips/jalr3.s gas/testsuite/gas/mips/l_d-forward-n32.d gas/testsuite/gas/mips/l_d-forward-n64.d gas/testsuite/gas/mips/l_d-forward.d gas/testsuite/gas/mips/l_d-n32.d gas/testsuite/gas/mips/l_d-n64.d gas/testsuite/gas/mips/l_d-reloc.d gas/testsuite/gas/mips/l_d-reloc.s gas/testsuite/gas/mips/l_d-single.d gas/testsuite/gas/mips/l_d.d gas/testsuite/gas/mips/la-reloc.d gas/testsuite/gas/mips/la-reloc.s gas/testsuite/gas/mips/la-svr4pic.d gas/testsuite/gas/mips/la-xgot.d gas/testsuite/gas/mips/la.d gas/testsuite/gas/mips/la.s gas/testsuite/gas/mips/lb-pic.s gas/testsuite/gas/mips/lb-svr4pic-ilocks.d gas/testsuite/gas/mips/lb-svr4pic.d gas/testsuite/gas/mips/lb-xgot-ilocks.d gas/testsuite/gas/mips/lb-xgot.d gas/testsuite/gas/mips/lb.d gas/testsuite/gas/mips/lb.s gas/testsuite/gas/mips/lca-svr4pic.d gas/testsuite/gas/mips/lca-xgot.d gas/testsuite/gas/mips/lca.s gas/testsuite/gas/mips/ld-forward-n32.d gas/testsuite/gas/mips/ld-forward-n64.d gas/testsuite/gas/mips/ld-forward.d gas/testsuite/gas/mips/ld-n32.d gas/testsuite/gas/mips/ld-n64.d gas/testsuite/gas/mips/ld-pic.s gas/testsuite/gas/mips/ld-reloc.d gas/testsuite/gas/mips/ld-reloc.s gas/testsuite/gas/mips/ld-svr4pic.d gas/testsuite/gas/mips/ld-xgot.d gas/testsuite/gas/mips/ld-zero-2.d gas/testsuite/gas/mips/ld-zero-2.s gas/testsuite/gas/mips/ld-zero-3.d gas/testsuite/gas/mips/ld-zero-3.s gas/testsuite/gas/mips/ld-zero-q.d gas/testsuite/gas/mips/ld-zero-q.s gas/testsuite/gas/mips/ld-zero-u.d gas/testsuite/gas/mips/ld-zero-u.s gas/testsuite/gas/mips/ld-zero.d gas/testsuite/gas/mips/ld-zero.s gas/testsuite/gas/mips/ld.d gas/testsuite/gas/mips/ld.s gas/testsuite/gas/mips/ldc1-forward-n32.d gas/testsuite/gas/mips/ldc1-forward-n64.d gas/testsuite/gas/mips/ldc1-forward.d gas/testsuite/gas/mips/ldc1-n32.d gas/testsuite/gas/mips/ldc1-n64.d gas/testsuite/gas/mips/ldc1.d gas/testsuite/gas/mips/ldstla-32-1.l gas/testsuite/gas/mips/ldstla-32-1.s gas/testsuite/gas/mips/ldstla-32-mips3-1.l gas/testsuite/gas/mips/ldstla-32-mips3-1.s gas/testsuite/gas/mips/ldstla-32-mips3-shared.d gas/testsuite/gas/mips/ldstla-32-mips3.d gas/testsuite/gas/mips/ldstla-32-mips3.s gas/testsuite/gas/mips/ldstla-32-shared.d gas/testsuite/gas/mips/ldstla-32.d gas/testsuite/gas/mips/ldstla-32.s gas/testsuite/gas/mips/ldstla-eabi64.d gas/testsuite/gas/mips/ldstla-n64-shared.d gas/testsuite/gas/mips/ldstla-n64-sym32.d gas/testsuite/gas/mips/ldstla-n64.d gas/testsuite/gas/mips/ldstla-n64.s gas/testsuite/gas/mips/ldstla-sym32.s gas/testsuite/gas/mips/li.d gas/testsuite/gas/mips/li.s gas/testsuite/gas/mips/lif-svr4pic.d gas/testsuite/gas/mips/lif-xgot.d gas/testsuite/gas/mips/lifloat.d gas/testsuite/gas/mips/lifloat.s gas/testsuite/gas/mips/lineno.d gas/testsuite/gas/mips/lineno.s gas/testsuite/gas/mips/loc-swap-2.d gas/testsuite/gas/mips/loc-swap-2.s gas/testsuite/gas/mips/loc-swap-3.d gas/testsuite/gas/mips/loc-swap-3.s gas/testsuite/gas/mips/loc-swap-dis.d gas/testsuite/gas/mips/loc-swap.d gas/testsuite/gas/mips/loc-swap.s gas/testsuite/gas/mips/loongson-2e.d gas/testsuite/gas/mips/loongson-2e.s gas/testsuite/gas/mips/loongson-2f-2.d gas/testsuite/gas/mips/loongson-2f-2.s gas/testsuite/gas/mips/loongson-2f-3.d gas/testsuite/gas/mips/loongson-2f-3.s gas/testsuite/gas/mips/loongson-2f.d gas/testsuite/gas/mips/loongson-2f.s gas/testsuite/gas/mips/loongson-3a-2.d gas/testsuite/gas/mips/loongson-3a-2.s gas/testsuite/gas/mips/loongson-3a-3.d gas/testsuite/gas/mips/loongson-3a-3.s gas/testsuite/gas/mips/loongson-3a.d gas/testsuite/gas/mips/loongson-3a.s gas/testsuite/gas/mips/lui-1.l gas/testsuite/gas/mips/lui-1.s gas/testsuite/gas/mips/lui-2.l gas/testsuite/gas/mips/lui-2.s gas/testsuite/gas/mips/lui.d gas/testsuite/gas/mips/lui.s gas/testsuite/gas/mips/macro-warn-1-n32.d gas/testsuite/gas/mips/macro-warn-1-n32.l gas/testsuite/gas/mips/macro-warn-1.d gas/testsuite/gas/mips/macro-warn-1.l gas/testsuite/gas/mips/macro-warn-1.s gas/testsuite/gas/mips/macro-warn-2-n32.d gas/testsuite/gas/mips/macro-warn-2.d gas/testsuite/gas/mips/macro-warn-2.l gas/testsuite/gas/mips/macro-warn-2.s gas/testsuite/gas/mips/macro-warn-3.d gas/testsuite/gas/mips/macro-warn-3.l gas/testsuite/gas/mips/macro-warn-3.s gas/testsuite/gas/mips/macro-warn-4.d gas/testsuite/gas/mips/macro-warn-4.l gas/testsuite/gas/mips/macro-warn-4.s gas/testsuite/gas/mips/mcu.d gas/testsuite/gas/mips/mcu.s gas/testsuite/gas/mips/micromips-b16.d gas/testsuite/gas/mips/micromips-b16.s gas/testsuite/gas/mips/micromips-branch-delay.d gas/testsuite/gas/mips/micromips-branch-delay.l gas/testsuite/gas/mips/micromips-branch-delay.s gas/testsuite/gas/mips/micromips-branch-relax-pic.d gas/testsuite/gas/mips/micromips-branch-relax-pic.l gas/testsuite/gas/mips/micromips-branch-relax.d gas/testsuite/gas/mips/micromips-branch-relax.l gas/testsuite/gas/mips/micromips-branch-relax.s gas/testsuite/gas/mips/micromips-ill.l gas/testsuite/gas/mips/micromips-ill.s gas/testsuite/gas/mips/micromips-insn32.d gas/testsuite/gas/mips/micromips-noinsn32.d gas/testsuite/gas/mips/micromips-size-0.l gas/testsuite/gas/mips/micromips-size-0.s gas/testsuite/gas/mips/micromips-size-1.d gas/testsuite/gas/mips/micromips-size-1.l gas/testsuite/gas/mips/micromips-size-1.s gas/testsuite/gas/mips/micromips-trap.d gas/testsuite/gas/mips/micromips-warn-branch-delay-1.d gas/testsuite/gas/mips/micromips-warn-branch-delay-1.s gas/testsuite/gas/mips/micromips-warn-branch-delay.d gas/testsuite/gas/mips/micromips-warn-branch-delay.l gas/testsuite/gas/mips/micromips-warn-branch-delay.s gas/testsuite/gas/mips/micromips-warn.l gas/testsuite/gas/mips/micromips.d gas/testsuite/gas/mips/micromips.l gas/testsuite/gas/mips/micromips.s gas/testsuite/gas/mips/micromips@24k-branch-delay-1.d gas/testsuite/gas/mips/micromips@24k-triple-stores-1.d gas/testsuite/gas/mips/micromips@24k-triple-stores-10.d gas/testsuite/gas/mips/micromips@24k-triple-stores-11.d gas/testsuite/gas/mips/micromips@24k-triple-stores-2-llsc.d gas/testsuite/gas/mips/micromips@24k-triple-stores-2.d gas/testsuite/gas/mips/micromips@24k-triple-stores-3.d gas/testsuite/gas/mips/micromips@24k-triple-stores-4.d gas/testsuite/gas/mips/micromips@24k-triple-stores-5.d gas/testsuite/gas/mips/micromips@24k-triple-stores-6.d gas/testsuite/gas/mips/micromips@24k-triple-stores-7.d gas/testsuite/gas/mips/micromips@24k-triple-stores-8.d gas/testsuite/gas/mips/micromips@24k-triple-stores-9.d gas/testsuite/gas/mips/micromips@abs.d gas/testsuite/gas/mips/micromips@add.d gas/testsuite/gas/mips/micromips@alnv_ps-swap.d gas/testsuite/gas/mips/micromips@and.d gas/testsuite/gas/mips/micromips@beq.d gas/testsuite/gas/mips/micromips@bge.d gas/testsuite/gas/mips/micromips@bgeu.d gas/testsuite/gas/mips/micromips@blt.d gas/testsuite/gas/mips/micromips@bltu.d gas/testsuite/gas/mips/micromips@branch-likely.d gas/testsuite/gas/mips/micromips@branch-misc-1.d gas/testsuite/gas/mips/micromips@branch-misc-2-64.d gas/testsuite/gas/mips/micromips@branch-misc-2.d gas/testsuite/gas/mips/micromips@branch-misc-2pic-64.d gas/testsuite/gas/mips/micromips@branch-misc-2pic.d gas/testsuite/gas/mips/micromips@branch-misc-4-64.d gas/testsuite/gas/mips/micromips@branch-misc-4.d gas/testsuite/gas/mips/micromips@branch-self.d gas/testsuite/gas/mips/micromips@cache.d gas/testsuite/gas/mips/micromips@daddi.d gas/testsuite/gas/mips/micromips@dli.d gas/testsuite/gas/mips/micromips@dot-1.d gas/testsuite/gas/mips/micromips@elf-rel2.d gas/testsuite/gas/mips/micromips@elf-rel29.d gas/testsuite/gas/mips/micromips@elf-rel4.d gas/testsuite/gas/mips/micromips@elfel-rel2.d gas/testsuite/gas/mips/micromips@eva.d gas/testsuite/gas/mips/micromips@hilo-diff-eb-n32.d gas/testsuite/gas/mips/micromips@hilo-diff-eb-n64.d gas/testsuite/gas/mips/micromips@hilo-diff-eb.d gas/testsuite/gas/mips/micromips@hilo-diff-el-n32.d gas/testsuite/gas/mips/micromips@hilo-diff-el-n64.d gas/testsuite/gas/mips/micromips@hilo-diff-el.d gas/testsuite/gas/mips/micromips@jal-mask-11.d gas/testsuite/gas/mips/micromips@jal-mask-12.d gas/testsuite/gas/mips/micromips@jal-svr4pic-noreorder.d gas/testsuite/gas/mips/micromips@jal-svr4pic.d gas/testsuite/gas/mips/micromips@jal.d gas/testsuite/gas/mips/micromips@lb-svr4pic-ilocks.d gas/testsuite/gas/mips/micromips@ld-zero-2.d gas/testsuite/gas/mips/micromips@ld-zero-3.d gas/testsuite/gas/mips/micromips@li.d gas/testsuite/gas/mips/micromips@loc-swap-2.d gas/testsuite/gas/mips/micromips@loc-swap-dis.d gas/testsuite/gas/mips/micromips@loc-swap.d gas/testsuite/gas/mips/micromips@lui.d gas/testsuite/gas/mips/micromips@mcu.d gas/testsuite/gas/mips/micromips@mips1-fp.d gas/testsuite/gas/mips/micromips@mips32-cp2.d gas/testsuite/gas/mips/micromips@mips32-cp2.s gas/testsuite/gas/mips/micromips@mips32-dsp.d gas/testsuite/gas/mips/micromips@mips32-dspr2.d gas/testsuite/gas/mips/micromips@mips32-imm.d gas/testsuite/gas/mips/micromips@mips32-imm.s gas/testsuite/gas/mips/micromips@mips32-sf32.d gas/testsuite/gas/mips/micromips@mips32.d gas/testsuite/gas/mips/micromips@mips32r2-cp2.d gas/testsuite/gas/mips/micromips@mips32r2-cp2.s gas/testsuite/gas/mips/micromips@mips32r2-fp32.d gas/testsuite/gas/mips/micromips@mips32r2-sync.d gas/testsuite/gas/mips/micromips@mips32r2.d gas/testsuite/gas/mips/micromips@mips4-branch-likely.d gas/testsuite/gas/mips/micromips@mips4-fp.d gas/testsuite/gas/mips/micromips@mips4.d gas/testsuite/gas/mips/micromips@mips5-fp.d gas/testsuite/gas/mips/micromips@mips64-cp2.d gas/testsuite/gas/mips/micromips@mips64-cp2.s gas/testsuite/gas/mips/micromips@mips64.d gas/testsuite/gas/mips/micromips@mips64r2.d gas/testsuite/gas/mips/micromips@pref.d gas/testsuite/gas/mips/micromips@relax-at.d gas/testsuite/gas/mips/micromips@relax-swap3.d gas/testsuite/gas/mips/micromips@relax.d gas/testsuite/gas/mips/micromips@rol-hw.d gas/testsuite/gas/mips/micromips@uld2-eb.d gas/testsuite/gas/mips/micromips@uld2-el.d gas/testsuite/gas/mips/micromips@ulh2-eb.d gas/testsuite/gas/mips/micromips@ulh2-el.d gas/testsuite/gas/mips/micromips@ulw-reloc.d gas/testsuite/gas/mips/micromips@ulw2-eb-ilocks.d gas/testsuite/gas/mips/micromips@ulw2-el-ilocks.d gas/testsuite/gas/mips/micromips@virt.d gas/testsuite/gas/mips/micromips@virt64.d gas/testsuite/gas/mips/mips-abi32-pic.d gas/testsuite/gas/mips/mips-abi32-pic.s gas/testsuite/gas/mips/mips-abi32-pic2.d gas/testsuite/gas/mips/mips-abi32-pic2.s gas/testsuite/gas/mips/mips-abi32.d gas/testsuite/gas/mips/mips-abi32.s gas/testsuite/gas/mips/mips-double-float-flag.l gas/testsuite/gas/mips/mips-double-float-flag.s gas/testsuite/gas/mips/mips-gp32-fp32-pic.d gas/testsuite/gas/mips/mips-gp32-fp32-pic.s gas/testsuite/gas/mips/mips-gp32-fp32.d gas/testsuite/gas/mips/mips-gp32-fp32.s gas/testsuite/gas/mips/mips-gp32-fp64-pic.d gas/testsuite/gas/mips/mips-gp32-fp64-pic.s gas/testsuite/gas/mips/mips-gp32-fp64.d gas/testsuite/gas/mips/mips-gp32-fp64.l gas/testsuite/gas/mips/mips-gp32-fp64.s gas/testsuite/gas/mips/mips-gp64-fp32-pic.d gas/testsuite/gas/mips/mips-gp64-fp32-pic.l gas/testsuite/gas/mips/mips-gp64-fp32-pic.s gas/testsuite/gas/mips/mips-gp64-fp32.d gas/testsuite/gas/mips/mips-gp64-fp32.l gas/testsuite/gas/mips/mips-gp64-fp32.s gas/testsuite/gas/mips/mips-gp64-fp64-pic.d gas/testsuite/gas/mips/mips-gp64-fp64-pic.s gas/testsuite/gas/mips/mips-gp64-fp64.d gas/testsuite/gas/mips/mips-gp64-fp64.l gas/testsuite/gas/mips/mips-gp64-fp64.s gas/testsuite/gas/mips/mips-hard-float-flag.l gas/testsuite/gas/mips/mips-hard-float-flag.s gas/testsuite/gas/mips/mips-jalx-2.d gas/testsuite/gas/mips/mips-jalx-2.s gas/testsuite/gas/mips/mips-jalx.d gas/testsuite/gas/mips/mips-jalx.s gas/testsuite/gas/mips/mips-macro-ill-nofp.l gas/testsuite/gas/mips/mips-macro-ill-nofp.s gas/testsuite/gas/mips/mips-macro-ill-sfp.l gas/testsuite/gas/mips/mips-macro-ill-sfp.s gas/testsuite/gas/mips/mips.exp gas/testsuite/gas/mips/mips1-fp.d gas/testsuite/gas/mips/mips1-fp.l gas/testsuite/gas/mips/mips1-fp.s gas/testsuite/gas/mips/mips16-64.d gas/testsuite/gas/mips/mips16-dwarf2-n32.d gas/testsuite/gas/mips/mips16-dwarf2.d gas/testsuite/gas/mips/mips16-dwarf2.s gas/testsuite/gas/mips/mips16-e.d gas/testsuite/gas/mips/mips16-e.s gas/testsuite/gas/mips/mips16-f.d gas/testsuite/gas/mips/mips16-f.s gas/testsuite/gas/mips/mips16-hilo-match.d gas/testsuite/gas/mips/mips16-hilo-match.s gas/testsuite/gas/mips/mips16-hilo-n32.d gas/testsuite/gas/mips/mips16-hilo.d gas/testsuite/gas/mips/mips16-hilo.s gas/testsuite/gas/mips/mips16-intermix.d gas/testsuite/gas/mips/mips16-intermix.s gas/testsuite/gas/mips/mips16-jalx.d gas/testsuite/gas/mips/mips16-jalx.s gas/testsuite/gas/mips/mips16-macro.d gas/testsuite/gas/mips/mips16-macro.s gas/testsuite/gas/mips/mips16-stabs.d gas/testsuite/gas/mips/mips16-stabs.s gas/testsuite/gas/mips/mips16-vis-1.d gas/testsuite/gas/mips/mips16-vis-1.s gas/testsuite/gas/mips/mips16.d gas/testsuite/gas/mips/mips16.s gas/testsuite/gas/mips/mips16@dot-1.d gas/testsuite/gas/mips/mips16@hilo-diff-eb-n32.d gas/testsuite/gas/mips/mips16@hilo-diff-eb-n64.d gas/testsuite/gas/mips/mips16@hilo-diff-eb.d gas/testsuite/gas/mips/mips16@hilo-diff-el-n32.d gas/testsuite/gas/mips/mips16@hilo-diff-el-n64.d gas/testsuite/gas/mips/mips16@hilo-diff-el.d gas/testsuite/gas/mips/mips16@loc-swap-2.d gas/testsuite/gas/mips/mips16@loc-swap-dis.d gas/testsuite/gas/mips/mips16@loc-swap.d gas/testsuite/gas/mips/mips16@relax-swap3.d gas/testsuite/gas/mips/mips16e-64.d gas/testsuite/gas/mips/mips16e-64.l gas/testsuite/gas/mips/mips16e-64.s gas/testsuite/gas/mips/mips16e-jrc.d gas/testsuite/gas/mips/mips16e-jrc.s gas/testsuite/gas/mips/mips16e-save-err.l gas/testsuite/gas/mips/mips16e-save-err.s gas/testsuite/gas/mips/mips16e-save.d gas/testsuite/gas/mips/mips16e-save.s gas/testsuite/gas/mips/mips16e.d gas/testsuite/gas/mips/mips16e.s gas/testsuite/gas/mips/mips1@ecoff@sd-forward.d gas/testsuite/gas/mips/mips1@ecoff@sd.d gas/testsuite/gas/mips/mips1@jal-svr4pic-noreorder.d gas/testsuite/gas/mips/mips1@jal-svr4pic.d gas/testsuite/gas/mips/mips1@l_d-forward.d gas/testsuite/gas/mips/mips1@l_d.d gas/testsuite/gas/mips/mips1@ld-forward.d gas/testsuite/gas/mips/mips1@ld.d gas/testsuite/gas/mips/mips1@s_d-forward.d gas/testsuite/gas/mips/mips1@s_d.d gas/testsuite/gas/mips/mips2@ecoff@ld-forward.d gas/testsuite/gas/mips/mips2@ecoff@ld.d gas/testsuite/gas/mips/mips2@ecoff@sd-forward.d gas/testsuite/gas/mips/mips2@ecoff@sd.d gas/testsuite/gas/mips/mips32-cp2.d gas/testsuite/gas/mips/mips32-cp2.s gas/testsuite/gas/mips/mips32-dsp.d gas/testsuite/gas/mips/mips32-dsp.s gas/testsuite/gas/mips/mips32-dspr2.d gas/testsuite/gas/mips/mips32-dspr2.s gas/testsuite/gas/mips/mips32-imm.d gas/testsuite/gas/mips/mips32-imm.s gas/testsuite/gas/mips/mips32-mt.d gas/testsuite/gas/mips/mips32-mt.s gas/testsuite/gas/mips/mips32-sf32.d gas/testsuite/gas/mips/mips32-sf32.l gas/testsuite/gas/mips/mips32-sf32.s gas/testsuite/gas/mips/mips32-sync.d gas/testsuite/gas/mips/mips32-sync.s gas/testsuite/gas/mips/mips32.d gas/testsuite/gas/mips/mips32.s gas/testsuite/gas/mips/mips32@ecoff@ld-forward.d gas/testsuite/gas/mips/mips32@ecoff@ld.d gas/testsuite/gas/mips/mips32@ecoff@sd-forward.d gas/testsuite/gas/mips/mips32@ecoff@sd.d gas/testsuite/gas/mips/mips32r2-cp2.d gas/testsuite/gas/mips/mips32r2-cp2.s gas/testsuite/gas/mips/mips32r2-fp32.d gas/testsuite/gas/mips/mips32r2-fp32.l gas/testsuite/gas/mips/mips32r2-fp32.s gas/testsuite/gas/mips/mips32r2-ill-fp64.l gas/testsuite/gas/mips/mips32r2-ill-fp64.s gas/testsuite/gas/mips/mips32r2-ill-nofp.l gas/testsuite/gas/mips/mips32r2-ill-nofp.s gas/testsuite/gas/mips/mips32r2-ill.l gas/testsuite/gas/mips/mips32r2-ill.s gas/testsuite/gas/mips/mips32r2-sync.d gas/testsuite/gas/mips/mips32r2-sync.s gas/testsuite/gas/mips/mips32r2.d gas/testsuite/gas/mips/mips32r2.s gas/testsuite/gas/mips/mips32r2@ecoff@ld-forward.d gas/testsuite/gas/mips/mips32r2@ecoff@ld.d gas/testsuite/gas/mips/mips32r2@ecoff@sd-forward.d gas/testsuite/gas/mips/mips32r2@ecoff@sd.d gas/testsuite/gas/mips/mips4-branch-likely.d gas/testsuite/gas/mips/mips4-branch-likely.l gas/testsuite/gas/mips/mips4-branch-likely.s gas/testsuite/gas/mips/mips4-fp.d gas/testsuite/gas/mips/mips4-fp.l gas/testsuite/gas/mips/mips4-fp.s gas/testsuite/gas/mips/mips4.d gas/testsuite/gas/mips/mips4.s gas/testsuite/gas/mips/mips4010.d gas/testsuite/gas/mips/mips4010.s gas/testsuite/gas/mips/mips4100.d gas/testsuite/gas/mips/mips4100.s gas/testsuite/gas/mips/mips4650.d gas/testsuite/gas/mips/mips4650.s gas/testsuite/gas/mips/mips5-fp.d gas/testsuite/gas/mips/mips5-fp.l gas/testsuite/gas/mips/mips5-fp.s gas/testsuite/gas/mips/mips64-cp2.d gas/testsuite/gas/mips/mips64-cp2.s gas/testsuite/gas/mips/mips64-dsp.d gas/testsuite/gas/mips/mips64-dsp.s gas/testsuite/gas/mips/mips64-mdmx.d gas/testsuite/gas/mips/mips64-mdmx.s gas/testsuite/gas/mips/mips64-mips3d-incl.d gas/testsuite/gas/mips/mips64-mips3d.d gas/testsuite/gas/mips/mips64-mips3d.l gas/testsuite/gas/mips/mips64-mips3d.s gas/testsuite/gas/mips/mips64.d gas/testsuite/gas/mips/mips64.s gas/testsuite/gas/mips/mips64r2-ill.l gas/testsuite/gas/mips/mips64r2-ill.s gas/testsuite/gas/mips/mips64r2.d gas/testsuite/gas/mips/mips64r2.s gas/testsuite/gas/mips/mipsel16-e.d gas/testsuite/gas/mips/mipsel16-f.d gas/testsuite/gas/mips/mul-ilocks.d gas/testsuite/gas/mips/mul.d gas/testsuite/gas/mips/mul.s gas/testsuite/gas/mips/n32-consec.d gas/testsuite/gas/mips/n32-consec.s gas/testsuite/gas/mips/nan-2008-1.d gas/testsuite/gas/mips/nan-2008-2.d gas/testsuite/gas/mips/nan-2008-3.d gas/testsuite/gas/mips/nan-2008-4.d gas/testsuite/gas/mips/nan-2008-override.s gas/testsuite/gas/mips/nan-2008.s gas/testsuite/gas/mips/nan-error-1.l gas/testsuite/gas/mips/nan-error-1.s gas/testsuite/gas/mips/nan-error-2.l gas/testsuite/gas/mips/nan-error-2.s gas/testsuite/gas/mips/nan-legacy-1.d gas/testsuite/gas/mips/nan-legacy-2.d gas/testsuite/gas/mips/nan-legacy-3.d gas/testsuite/gas/mips/nan-legacy-4.d gas/testsuite/gas/mips/nan-legacy-5.d gas/testsuite/gas/mips/nan-legacy-override.s gas/testsuite/gas/mips/nan-legacy.s gas/testsuite/gas/mips/noat-1.d gas/testsuite/gas/mips/noat-1.s gas/testsuite/gas/mips/noat-2.l gas/testsuite/gas/mips/noat-2.s gas/testsuite/gas/mips/noat-3.l gas/testsuite/gas/mips/noat-3.s gas/testsuite/gas/mips/noat-4.l gas/testsuite/gas/mips/noat-4.s gas/testsuite/gas/mips/noat-5.l gas/testsuite/gas/mips/noat-5.s gas/testsuite/gas/mips/noat-6.l gas/testsuite/gas/mips/noat-6.s gas/testsuite/gas/mips/noat-7.l gas/testsuite/gas/mips/noat-7.s gas/testsuite/gas/mips/nodelay.d gas/testsuite/gas/mips/nop.s gas/testsuite/gas/mips/noreorder.d gas/testsuite/gas/mips/noreorder.s gas/testsuite/gas/mips/octeon-ill.l gas/testsuite/gas/mips/octeon-ill.s gas/testsuite/gas/mips/octeon-pref.d gas/testsuite/gas/mips/octeon-pref.s gas/testsuite/gas/mips/octeon-saa-saad.d gas/testsuite/gas/mips/octeon-saa-saad.s gas/testsuite/gas/mips/octeon.d gas/testsuite/gas/mips/octeon.s gas/testsuite/gas/mips/octeon2.d gas/testsuite/gas/mips/octeon2.s gas/testsuite/gas/mips/octeon@mips32r2-sync.d gas/testsuite/gas/mips/odd-float.d gas/testsuite/gas/mips/odd-float.s gas/testsuite/gas/mips/perfcount.d gas/testsuite/gas/mips/perfcount.s gas/testsuite/gas/mips/pr12915.d gas/testsuite/gas/mips/pr12915.s gas/testsuite/gas/mips/pref.d gas/testsuite/gas/mips/r3000@ecoff@sd-forward.d gas/testsuite/gas/mips/r3000@ecoff@sd.d gas/testsuite/gas/mips/r3000@jal-svr4pic-noreorder.d gas/testsuite/gas/mips/r3000@jal-svr4pic.d gas/testsuite/gas/mips/r3000@l_d-forward.d gas/testsuite/gas/mips/r3000@l_d.d gas/testsuite/gas/mips/r3000@ld-forward.d gas/testsuite/gas/mips/r3000@ld.d gas/testsuite/gas/mips/r3000@s_d-forward.d gas/testsuite/gas/mips/r3000@s_d.d gas/testsuite/gas/mips/r3900@ecoff@ld-forward.d gas/testsuite/gas/mips/r3900@ecoff@ld.d gas/testsuite/gas/mips/r3900@ecoff@sd-forward.d gas/testsuite/gas/mips/r3900@ecoff@sd.d gas/testsuite/gas/mips/r3900@l_d-forward.d gas/testsuite/gas/mips/r3900@l_d.d gas/testsuite/gas/mips/r3900@s_d-forward.d gas/testsuite/gas/mips/r3900@s_d.d gas/testsuite/gas/mips/r5900-all-vu0.d gas/testsuite/gas/mips/r5900-all-vu0.s gas/testsuite/gas/mips/r5900-error-vu0.l gas/testsuite/gas/mips/r5900-error-vu0.s gas/testsuite/gas/mips/r5900-full-vu0.d gas/testsuite/gas/mips/r5900-full-vu0.s gas/testsuite/gas/mips/r5900-full.d gas/testsuite/gas/mips/r5900-full.s gas/testsuite/gas/mips/r5900-nollsc.l gas/testsuite/gas/mips/r5900-nollsc.s gas/testsuite/gas/mips/r5900-vu0.d gas/testsuite/gas/mips/r5900-vu0.s gas/testsuite/gas/mips/r5900.d gas/testsuite/gas/mips/r5900.s gas/testsuite/gas/mips/reginfo-1.s gas/testsuite/gas/mips/reginfo-1a.d gas/testsuite/gas/mips/reginfo-1b.d gas/testsuite/gas/mips/relax-at.d gas/testsuite/gas/mips/relax-bc1any.l gas/testsuite/gas/mips/relax-bc1any.s gas/testsuite/gas/mips/relax-bposge.l gas/testsuite/gas/mips/relax-bposge.s gas/testsuite/gas/mips/relax-swap1-mips1.d gas/testsuite/gas/mips/relax-swap1-mips2.d gas/testsuite/gas/mips/relax-swap1.l gas/testsuite/gas/mips/relax-swap1.s gas/testsuite/gas/mips/relax-swap2.d gas/testsuite/gas/mips/relax-swap2.l gas/testsuite/gas/mips/relax-swap2.s gas/testsuite/gas/mips/relax-swap3.d gas/testsuite/gas/mips/relax-swap3.s gas/testsuite/gas/mips/relax.d gas/testsuite/gas/mips/relax.l gas/testsuite/gas/mips/relax.s gas/testsuite/gas/mips/rm7000.d gas/testsuite/gas/mips/rm7000.s gas/testsuite/gas/mips/rol-hw.d gas/testsuite/gas/mips/rol.d gas/testsuite/gas/mips/rol.s gas/testsuite/gas/mips/rol64-hw.d gas/testsuite/gas/mips/rol64.d gas/testsuite/gas/mips/rol64.s gas/testsuite/gas/mips/s_d-forward-n32.d gas/testsuite/gas/mips/s_d-forward-n64.d gas/testsuite/gas/mips/s_d-forward.d gas/testsuite/gas/mips/s_d-n32.d gas/testsuite/gas/mips/s_d-n64.d gas/testsuite/gas/mips/s_d-single.d gas/testsuite/gas/mips/s_d.d gas/testsuite/gas/mips/sb.d gas/testsuite/gas/mips/sb.s gas/testsuite/gas/mips/sb1-ext-mdmx.d gas/testsuite/gas/mips/sb1-ext-mdmx.s gas/testsuite/gas/mips/sb1-ext-ps.d gas/testsuite/gas/mips/sb1-ext-ps.s gas/testsuite/gas/mips/sd-forward-n32.d gas/testsuite/gas/mips/sd-forward-n64.d gas/testsuite/gas/mips/sd-forward.d gas/testsuite/gas/mips/sd-n32.d gas/testsuite/gas/mips/sd-n64.d gas/testsuite/gas/mips/sd.d gas/testsuite/gas/mips/sdc1-forward-n32.d gas/testsuite/gas/mips/sdc1-forward-n64.d gas/testsuite/gas/mips/sdc1-forward.d gas/testsuite/gas/mips/sdc1-n32.d gas/testsuite/gas/mips/sdc1-n64.d gas/testsuite/gas/mips/sdc1.d gas/testsuite/gas/mips/set-arch.d gas/testsuite/gas/mips/set-arch.l gas/testsuite/gas/mips/set-arch.s gas/testsuite/gas/mips/smartmips.d gas/testsuite/gas/mips/smartmips.s gas/testsuite/gas/mips/sync.d gas/testsuite/gas/mips/sync.s gas/testsuite/gas/mips/tls-ill.l gas/testsuite/gas/mips/tls-ill.s gas/testsuite/gas/mips/tls-o32.d gas/testsuite/gas/mips/tls-o32.s gas/testsuite/gas/mips/tls-relw.d gas/testsuite/gas/mips/tls-relw.s gas/testsuite/gas/mips/tmips16-e.d gas/testsuite/gas/mips/tmips16-f.d gas/testsuite/gas/mips/tmipsel16-e.d gas/testsuite/gas/mips/tmipsel16-f.d gas/testsuite/gas/mips/trap20.d gas/testsuite/gas/mips/trap20.s gas/testsuite/gas/mips/trunc.d gas/testsuite/gas/mips/trunc.s gas/testsuite/gas/mips/uld.d gas/testsuite/gas/mips/uld.s gas/testsuite/gas/mips/uld2-eb.d gas/testsuite/gas/mips/uld2-el.d gas/testsuite/gas/mips/uld2.s gas/testsuite/gas/mips/ulh-pic.s gas/testsuite/gas/mips/ulh-reloc.d gas/testsuite/gas/mips/ulh-reloc.s gas/testsuite/gas/mips/ulh-svr4pic.d gas/testsuite/gas/mips/ulh-xgot.d gas/testsuite/gas/mips/ulh.d gas/testsuite/gas/mips/ulh.s gas/testsuite/gas/mips/ulh2-eb.d gas/testsuite/gas/mips/ulh2-el.d gas/testsuite/gas/mips/ulh2.s gas/testsuite/gas/mips/ulw-reloc.d gas/testsuite/gas/mips/ulw-reloc.s gas/testsuite/gas/mips/ulw.d gas/testsuite/gas/mips/ulw.s gas/testsuite/gas/mips/ulw2-eb-ilocks.d gas/testsuite/gas/mips/ulw2-eb.d gas/testsuite/gas/mips/ulw2-el-ilocks.d gas/testsuite/gas/mips/ulw2-el.d gas/testsuite/gas/mips/ulw2.s gas/testsuite/gas/mips/usd.d gas/testsuite/gas/mips/usd.s gas/testsuite/gas/mips/ush.d gas/testsuite/gas/mips/ush.s gas/testsuite/gas/mips/usw.d gas/testsuite/gas/mips/usw.s gas/testsuite/gas/mips/virt.d gas/testsuite/gas/mips/virt.s gas/testsuite/gas/mips/virt64.d gas/testsuite/gas/mips/virt64.s gas/testsuite/gas/mips/vr4111.d gas/testsuite/gas/mips/vr4111.s gas/testsuite/gas/mips/vr4120-2.d gas/testsuite/gas/mips/vr4120-2.s gas/testsuite/gas/mips/vr4120.d gas/testsuite/gas/mips/vr4120.s gas/testsuite/gas/mips/vr4130.d gas/testsuite/gas/mips/vr4130.s gas/testsuite/gas/mips/vr5400-ill.l gas/testsuite/gas/mips/vr5400-ill.s gas/testsuite/gas/mips/vr5400.d gas/testsuite/gas/mips/vr5400.s gas/testsuite/gas/mips/vr5500.d gas/testsuite/gas/mips/vr5500.s gas/testsuite/gas/mips/vxworks1-el.d gas/testsuite/gas/mips/vxworks1-xgot-el.d gas/testsuite/gas/mips/vxworks1-xgot.d gas/testsuite/gas/mips/vxworks1.d gas/testsuite/gas/mips/vxworks1.s gas/testsuite/gas/mips/xlr-ext.d gas/testsuite/gas/mips/xlr-ext.s gas/testsuite/gas/mmix/1cjmp1b-n.d gas/testsuite/gas/mmix/1cjmp1b-r.d gas/testsuite/gas/mmix/1cjmp1b.d gas/testsuite/gas/mmix/1cjmp1b.l gas/testsuite/gas/mmix/1cjmp1b.s gas/testsuite/gas/mmix/1cjmp1brn.d gas/testsuite/gas/mmix/1hjmp1b.d gas/testsuite/gas/mmix/1hjmp1b.l gas/testsuite/gas/mmix/1hjmp1b.s gas/testsuite/gas/mmix/align-1.d gas/testsuite/gas/mmix/align-1.s gas/testsuite/gas/mmix/basep-1.d gas/testsuite/gas/mmix/basep-1.s gas/testsuite/gas/mmix/basep-10.d gas/testsuite/gas/mmix/basep-10.s gas/testsuite/gas/mmix/basep-11.d gas/testsuite/gas/mmix/basep-11.s gas/testsuite/gas/mmix/basep-1b.d gas/testsuite/gas/mmix/basep-2.d gas/testsuite/gas/mmix/basep-2.s gas/testsuite/gas/mmix/basep-2b.d gas/testsuite/gas/mmix/basep-3.d gas/testsuite/gas/mmix/basep-3.s gas/testsuite/gas/mmix/basep-3b.d gas/testsuite/gas/mmix/basep-4.d gas/testsuite/gas/mmix/basep-5.d gas/testsuite/gas/mmix/basep-6.d gas/testsuite/gas/mmix/basep-7.d gas/testsuite/gas/mmix/basep-8.d gas/testsuite/gas/mmix/basep-8.s gas/testsuite/gas/mmix/basep-9.d gas/testsuite/gas/mmix/basep-9.s gas/testsuite/gas/mmix/bspec-1.d gas/testsuite/gas/mmix/bspec-1.s gas/testsuite/gas/mmix/bspec-2.d gas/testsuite/gas/mmix/bspec-2.s gas/testsuite/gas/mmix/builtin1.d gas/testsuite/gas/mmix/builtin1.s gas/testsuite/gas/mmix/builtin2.d gas/testsuite/gas/mmix/builtin3.d gas/testsuite/gas/mmix/byte-1.d gas/testsuite/gas/mmix/byte-1.s gas/testsuite/gas/mmix/bz-c.d gas/testsuite/gas/mmix/bz-c.s gas/testsuite/gas/mmix/comment-1.d gas/testsuite/gas/mmix/comment-1.s gas/testsuite/gas/mmix/comment-2.d gas/testsuite/gas/mmix/comment-2.s gas/testsuite/gas/mmix/comment-3.d gas/testsuite/gas/mmix/comment-3.s gas/testsuite/gas/mmix/cons-1.d gas/testsuite/gas/mmix/cons-1.s gas/testsuite/gas/mmix/cons-2.d gas/testsuite/gas/mmix/cons-2.s gas/testsuite/gas/mmix/err-bpo1.s gas/testsuite/gas/mmix/err-bpo2.s gas/testsuite/gas/mmix/err-bpo3.s gas/testsuite/gas/mmix/err-bpo4.s gas/testsuite/gas/mmix/err-bpo5.s gas/testsuite/gas/mmix/err-bpo6.s gas/testsuite/gas/mmix/err-bspec-1.s gas/testsuite/gas/mmix/err-bspec-2.s gas/testsuite/gas/mmix/err-bspec-3.s gas/testsuite/gas/mmix/err-bspec-4.s gas/testsuite/gas/mmix/err-bspec-5.s gas/testsuite/gas/mmix/err-builtin.s gas/testsuite/gas/mmix/err-byte1.s gas/testsuite/gas/mmix/err-byte2.s gas/testsuite/gas/mmix/err-case.s gas/testsuite/gas/mmix/err-fb-1.s gas/testsuite/gas/mmix/err-fb-2.s gas/testsuite/gas/mmix/err-greg1.s gas/testsuite/gas/mmix/err-insn.s gas/testsuite/gas/mmix/err-is-1.s gas/testsuite/gas/mmix/err-loc-1.s gas/testsuite/gas/mmix/err-loc-10.s gas/testsuite/gas/mmix/err-loc-2.s gas/testsuite/gas/mmix/err-loc-3.s gas/testsuite/gas/mmix/err-loc-4.s gas/testsuite/gas/mmix/err-loc-5.s gas/testsuite/gas/mmix/err-loc-6.s gas/testsuite/gas/mmix/err-loc-7.s gas/testsuite/gas/mmix/err-loc-8.s gas/testsuite/gas/mmix/err-loc-9.s gas/testsuite/gas/mmix/err-local1.s gas/testsuite/gas/mmix/err-local2.s gas/testsuite/gas/mmix/err-ser-1.s gas/testsuite/gas/mmix/err-set.s gas/testsuite/gas/mmix/err-swym1.s gas/testsuite/gas/mmix/expr-1.d gas/testsuite/gas/mmix/expr-1.s gas/testsuite/gas/mmix/fb-1.d gas/testsuite/gas/mmix/fb-1.s gas/testsuite/gas/mmix/fb-2.d gas/testsuite/gas/mmix/fb-2.s gas/testsuite/gas/mmix/get-op-r.d gas/testsuite/gas/mmix/get-op.d gas/testsuite/gas/mmix/get-op.l gas/testsuite/gas/mmix/get-op.s gas/testsuite/gas/mmix/geta-c.d gas/testsuite/gas/mmix/geta-c.s gas/testsuite/gas/mmix/geta-op-r.d gas/testsuite/gas/mmix/geta-op.d gas/testsuite/gas/mmix/geta-op.l gas/testsuite/gas/mmix/geta-op.s gas/testsuite/gas/mmix/geta-opn.d gas/testsuite/gas/mmix/geta-oprn.d gas/testsuite/gas/mmix/greg1.d gas/testsuite/gas/mmix/greg1.s gas/testsuite/gas/mmix/greg1a.d gas/testsuite/gas/mmix/greg2.d gas/testsuite/gas/mmix/greg2.s gas/testsuite/gas/mmix/greg2a.d gas/testsuite/gas/mmix/greg3.d gas/testsuite/gas/mmix/greg3.s gas/testsuite/gas/mmix/greg4.d gas/testsuite/gas/mmix/greg4.s gas/testsuite/gas/mmix/greg5.d gas/testsuite/gas/mmix/greg5.s gas/testsuite/gas/mmix/greg6.d gas/testsuite/gas/mmix/greg6.s gas/testsuite/gas/mmix/greg7.d gas/testsuite/gas/mmix/greg7.s gas/testsuite/gas/mmix/greg8.d gas/testsuite/gas/mmix/greg8.s gas/testsuite/gas/mmix/greg9.d gas/testsuite/gas/mmix/greg9.s gas/testsuite/gas/mmix/group-1.d gas/testsuite/gas/mmix/group-1.s gas/testsuite/gas/mmix/hex-r.d gas/testsuite/gas/mmix/hex.d gas/testsuite/gas/mmix/hex.l gas/testsuite/gas/mmix/hex.s gas/testsuite/gas/mmix/hex2.d gas/testsuite/gas/mmix/hex2.s gas/testsuite/gas/mmix/is-1.d gas/testsuite/gas/mmix/is-1.s gas/testsuite/gas/mmix/jmp-op-n.d gas/testsuite/gas/mmix/jmp-op-r.d gas/testsuite/gas/mmix/jmp-op.d gas/testsuite/gas/mmix/jmp-op.l gas/testsuite/gas/mmix/jmp-op.s gas/testsuite/gas/mmix/jmp-oprn.d gas/testsuite/gas/mmix/jump-c.d gas/testsuite/gas/mmix/jump-c.s gas/testsuite/gas/mmix/list-in-n.d gas/testsuite/gas/mmix/list-in-r.d gas/testsuite/gas/mmix/list-in-rn.d gas/testsuite/gas/mmix/list-insns.d gas/testsuite/gas/mmix/list-insns.l gas/testsuite/gas/mmix/list-insns.s gas/testsuite/gas/mmix/list-pseudoints.l gas/testsuite/gas/mmix/list-pseudoints.s gas/testsuite/gas/mmix/list-textfirst gas/testsuite/gas/mmix/list-textfirst.l gas/testsuite/gas/mmix/list-textfirst.s gas/testsuite/gas/mmix/loc-1.d gas/testsuite/gas/mmix/loc-1.s gas/testsuite/gas/mmix/loc-2.d gas/testsuite/gas/mmix/loc-2.s gas/testsuite/gas/mmix/loc-3.d gas/testsuite/gas/mmix/loc-3.s gas/testsuite/gas/mmix/loc-4.d gas/testsuite/gas/mmix/loc-4.s gas/testsuite/gas/mmix/loc-5.d gas/testsuite/gas/mmix/loc-5.s gas/testsuite/gas/mmix/loc-6.d gas/testsuite/gas/mmix/loc-6.s gas/testsuite/gas/mmix/loc-7.d gas/testsuite/gas/mmix/loc-7.s gas/testsuite/gas/mmix/local-1.d gas/testsuite/gas/mmix/local-1.s gas/testsuite/gas/mmix/locall1.d gas/testsuite/gas/mmix/locall1.s gas/testsuite/gas/mmix/mmix-err.exp gas/testsuite/gas/mmix/mmix-list.exp gas/testsuite/gas/mmix/mmix.exp gas/testsuite/gas/mmix/odd-1.d gas/testsuite/gas/mmix/odd-1.s gas/testsuite/gas/mmix/op-0-1.d gas/testsuite/gas/mmix/op-0-1.s gas/testsuite/gas/mmix/op-0-1s.d gas/testsuite/gas/mmix/op-0-2.d gas/testsuite/gas/mmix/pop-op-r.d gas/testsuite/gas/mmix/pop-op.d gas/testsuite/gas/mmix/pop-op.l gas/testsuite/gas/mmix/pop-op.s gas/testsuite/gas/mmix/prefix1.d gas/testsuite/gas/mmix/prefix1.s gas/testsuite/gas/mmix/prefix2.d gas/testsuite/gas/mmix/prefix2.s gas/testsuite/gas/mmix/prefix3.d gas/testsuite/gas/mmix/prefix3.s gas/testsuite/gas/mmix/pseudo-1.d gas/testsuite/gas/mmix/pseudo-1.s gas/testsuite/gas/mmix/pushgo-op-r.d gas/testsuite/gas/mmix/pushgo-op.d gas/testsuite/gas/mmix/pushgo-op.l gas/testsuite/gas/mmix/pushgo-op.s gas/testsuite/gas/mmix/pushj-c.d gas/testsuite/gas/mmix/pushj-c.s gas/testsuite/gas/mmix/pushj-cs.d gas/testsuite/gas/mmix/put-op-r.d gas/testsuite/gas/mmix/put-op.d gas/testsuite/gas/mmix/put-op.l gas/testsuite/gas/mmix/put-op.s gas/testsuite/gas/mmix/reg-op-r.d gas/testsuite/gas/mmix/reg-op.d gas/testsuite/gas/mmix/reg-op.l gas/testsuite/gas/mmix/reg-op.s gas/testsuite/gas/mmix/reg3-op-r.d gas/testsuite/gas/mmix/reg3-op.d gas/testsuite/gas/mmix/reg3-op.l gas/testsuite/gas/mmix/reg3-op.s gas/testsuite/gas/mmix/regt-op-r.d gas/testsuite/gas/mmix/regt-op.d gas/testsuite/gas/mmix/regt-op.l gas/testsuite/gas/mmix/regt-op.s gas/testsuite/gas/mmix/regx-op-r.d gas/testsuite/gas/mmix/regx-op.d gas/testsuite/gas/mmix/regx-op.l gas/testsuite/gas/mmix/regx-op.s gas/testsuite/gas/mmix/regy-op-r.d gas/testsuite/gas/mmix/regy-op.d gas/testsuite/gas/mmix/regy-op.l gas/testsuite/gas/mmix/regy-op.s gas/testsuite/gas/mmix/relax1-n.d gas/testsuite/gas/mmix/relax1-r.d gas/testsuite/gas/mmix/relax1-rn.d gas/testsuite/gas/mmix/relax1.d gas/testsuite/gas/mmix/relax1.l gas/testsuite/gas/mmix/relax1.s gas/testsuite/gas/mmix/relax2.d gas/testsuite/gas/mmix/relax2.s gas/testsuite/gas/mmix/reloc16-n.d gas/testsuite/gas/mmix/reloc16-r.d gas/testsuite/gas/mmix/reloc16.d gas/testsuite/gas/mmix/reloc16.l gas/testsuite/gas/mmix/reloc16.s gas/testsuite/gas/mmix/reloc8-r.d gas/testsuite/gas/mmix/reloc8.d gas/testsuite/gas/mmix/reloc8.l gas/testsuite/gas/mmix/reloc8.s gas/testsuite/gas/mmix/relocl-n.d gas/testsuite/gas/mmix/reloclab-r.d gas/testsuite/gas/mmix/reloclab-rs.d gas/testsuite/gas/mmix/reloclab-s.d gas/testsuite/gas/mmix/reloclab.d gas/testsuite/gas/mmix/reloclab.l gas/testsuite/gas/mmix/reloclab.s gas/testsuite/gas/mmix/reloclrn.d gas/testsuite/gas/mmix/relocxrn.d gas/testsuite/gas/mmix/resume-op-r.d gas/testsuite/gas/mmix/resume-op.d gas/testsuite/gas/mmix/resume-op.l gas/testsuite/gas/mmix/resume-op.s gas/testsuite/gas/mmix/round2-op-r.d gas/testsuite/gas/mmix/round2-op.d gas/testsuite/gas/mmix/round2-op.l gas/testsuite/gas/mmix/round2-op.s gas/testsuite/gas/mmix/roundi-op-r.d gas/testsuite/gas/mmix/roundi-op.d gas/testsuite/gas/mmix/roundi-op.l gas/testsuite/gas/mmix/roundi-op.s gas/testsuite/gas/mmix/roundr-op-r.d gas/testsuite/gas/mmix/roundr-op.d gas/testsuite/gas/mmix/roundr-op.l gas/testsuite/gas/mmix/roundr-op.s gas/testsuite/gas/mmix/save-op-r.d gas/testsuite/gas/mmix/save-op.d gas/testsuite/gas/mmix/save-op.l gas/testsuite/gas/mmix/save-op.s gas/testsuite/gas/mmix/set-r.d gas/testsuite/gas/mmix/set.d gas/testsuite/gas/mmix/set.l gas/testsuite/gas/mmix/set.s gas/testsuite/gas/mmix/swym-op-r.d gas/testsuite/gas/mmix/swym-op.d gas/testsuite/gas/mmix/swym-op.l gas/testsuite/gas/mmix/swym-op.s gas/testsuite/gas/mmix/swym-opreg1.d gas/testsuite/gas/mmix/swym-opreg1.s gas/testsuite/gas/mmix/swym-opreg2.d gas/testsuite/gas/mmix/swym-opreg2.s gas/testsuite/gas/mmix/sym-1.d gas/testsuite/gas/mmix/sym-1.s gas/testsuite/gas/mmix/sync-op-r.d gas/testsuite/gas/mmix/sync-op.d gas/testsuite/gas/mmix/sync-op.l gas/testsuite/gas/mmix/sync-op.s gas/testsuite/gas/mmix/two-op-r.d gas/testsuite/gas/mmix/two-op.d gas/testsuite/gas/mmix/two-op.l gas/testsuite/gas/mmix/two-op.s gas/testsuite/gas/mmix/unsave-op-r.d gas/testsuite/gas/mmix/unsave-op.d gas/testsuite/gas/mmix/unsave-op.l gas/testsuite/gas/mmix/unsave-op.s gas/testsuite/gas/mmix/weak1-s.d gas/testsuite/gas/mmix/weak1.d gas/testsuite/gas/mmix/weak1.s gas/testsuite/gas/mmix/zerop-1.d gas/testsuite/gas/mmix/zerop-1.s gas/testsuite/gas/mn10200/add.s gas/testsuite/gas/mn10200/basic.exp gas/testsuite/gas/mn10200/bcc.s gas/testsuite/gas/mn10200/bccx.s gas/testsuite/gas/mn10200/bit.s gas/testsuite/gas/mn10200/cmp.s gas/testsuite/gas/mn10200/ext.s gas/testsuite/gas/mn10200/logical.s gas/testsuite/gas/mn10200/mov1.s gas/testsuite/gas/mn10200/mov2.s gas/testsuite/gas/mn10200/mov3.s gas/testsuite/gas/mn10200/mov4.s gas/testsuite/gas/mn10200/movb.s gas/testsuite/gas/mn10200/movbu.s gas/testsuite/gas/mn10200/movx.s gas/testsuite/gas/mn10200/muldiv.s gas/testsuite/gas/mn10200/other.s gas/testsuite/gas/mn10200/shift.s gas/testsuite/gas/mn10200/sub.s gas/testsuite/gas/mn10300/add.s gas/testsuite/gas/mn10300/am33-2.c gas/testsuite/gas/mn10300/am33-2.d gas/testsuite/gas/mn10300/am33-2.s gas/testsuite/gas/mn10300/am33.s gas/testsuite/gas/mn10300/am33_2.s gas/testsuite/gas/mn10300/am33_3.s gas/testsuite/gas/mn10300/am33_4.s gas/testsuite/gas/mn10300/am33_5.s gas/testsuite/gas/mn10300/am33_6.s gas/testsuite/gas/mn10300/am33_7.s gas/testsuite/gas/mn10300/am33_8.s gas/testsuite/gas/mn10300/basic.exp gas/testsuite/gas/mn10300/bcc.s gas/testsuite/gas/mn10300/bit.s gas/testsuite/gas/mn10300/cmp.s gas/testsuite/gas/mn10300/ext.s gas/testsuite/gas/mn10300/extend.s gas/testsuite/gas/mn10300/logical.s gas/testsuite/gas/mn10300/loop.s gas/testsuite/gas/mn10300/mov1.s gas/testsuite/gas/mn10300/mov2.s gas/testsuite/gas/mn10300/mov3.s gas/testsuite/gas/mn10300/mov4.s gas/testsuite/gas/mn10300/mov5.s gas/testsuite/gas/mn10300/movbu.s gas/testsuite/gas/mn10300/movhu.s gas/testsuite/gas/mn10300/movm.s gas/testsuite/gas/mn10300/movpc.l gas/testsuite/gas/mn10300/movpc.s gas/testsuite/gas/mn10300/muldiv.s gas/testsuite/gas/mn10300/other.s gas/testsuite/gas/mn10300/pr11973.d gas/testsuite/gas/mn10300/pr11973.s gas/testsuite/gas/mn10300/pr997.l gas/testsuite/gas/mn10300/pr997.s gas/testsuite/gas/mn10300/relax.d gas/testsuite/gas/mn10300/relax.s gas/testsuite/gas/mn10300/shift.s gas/testsuite/gas/mn10300/sub.s gas/testsuite/gas/mn10300/udf.s gas/testsuite/gas/mri/char.d gas/testsuite/gas/mri/char.s gas/testsuite/gas/mri/comment.d gas/testsuite/gas/mri/comment.s gas/testsuite/gas/mri/common.d gas/testsuite/gas/mri/common.s gas/testsuite/gas/mri/constants.d gas/testsuite/gas/mri/constants.s gas/testsuite/gas/mri/empty.s gas/testsuite/gas/mri/equ.d gas/testsuite/gas/mri/equ.s gas/testsuite/gas/mri/expr.d gas/testsuite/gas/mri/expr.s gas/testsuite/gas/mri/float.d gas/testsuite/gas/mri/float.s gas/testsuite/gas/mri/for.d gas/testsuite/gas/mri/for.s gas/testsuite/gas/mri/if.d gas/testsuite/gas/mri/if.s gas/testsuite/gas/mri/immconst.d gas/testsuite/gas/mri/label.d gas/testsuite/gas/mri/label.s gas/testsuite/gas/mri/moveml.d gas/testsuite/gas/mri/moveml.s gas/testsuite/gas/mri/mri.exp gas/testsuite/gas/mri/repeat.d gas/testsuite/gas/mri/repeat.s gas/testsuite/gas/mri/semi.d gas/testsuite/gas/mri/semi.s gas/testsuite/gas/mri/while.d gas/testsuite/gas/mri/while.s gas/testsuite/gas/msp430/msp430.exp gas/testsuite/gas/msp430/msp430x.d gas/testsuite/gas/msp430/msp430x.s gas/testsuite/gas/msp430/opcode.d gas/testsuite/gas/msp430/opcode.s gas/testsuite/gas/mt/allinsn.d gas/testsuite/gas/mt/allinsn.s gas/testsuite/gas/mt/badinsn.s gas/testsuite/gas/mt/badinsn1.s gas/testsuite/gas/mt/badoffsethigh.s gas/testsuite/gas/mt/badoffsetlow.s gas/testsuite/gas/mt/badorder.s gas/testsuite/gas/mt/badreg.s gas/testsuite/gas/mt/badsignedimmhigh.s gas/testsuite/gas/mt/badsignedimmlow.s gas/testsuite/gas/mt/badsyntax.s gas/testsuite/gas/mt/badsyntax1.s gas/testsuite/gas/mt/badunsignedimmhigh.s gas/testsuite/gas/mt/badunsignedimmlow.s gas/testsuite/gas/mt/errors.exp gas/testsuite/gas/mt/ldst.s gas/testsuite/gas/mt/misc.d gas/testsuite/gas/mt/misc.s gas/testsuite/gas/mt/ms1-16-003.d gas/testsuite/gas/mt/ms1-16-003.s gas/testsuite/gas/mt/ms2.d gas/testsuite/gas/mt/ms2.s gas/testsuite/gas/mt/msys.d gas/testsuite/gas/mt/msys.s gas/testsuite/gas/mt/mt.exp gas/testsuite/gas/mt/relocs.d gas/testsuite/gas/mt/relocs.exp gas/testsuite/gas/mt/relocs1.s gas/testsuite/gas/mt/relocs2.s gas/testsuite/gas/nios2/add.d gas/testsuite/gas/nios2/add.s gas/testsuite/gas/nios2/align_fill.d gas/testsuite/gas/nios2/align_fill.s gas/testsuite/gas/nios2/align_text.d gas/testsuite/gas/nios2/align_text.s gas/testsuite/gas/nios2/and.d gas/testsuite/gas/nios2/and.s gas/testsuite/gas/nios2/branch.d gas/testsuite/gas/nios2/branch.s gas/testsuite/gas/nios2/break.d gas/testsuite/gas/nios2/break.s gas/testsuite/gas/nios2/bret.d gas/testsuite/gas/nios2/bret.s gas/testsuite/gas/nios2/cache.d gas/testsuite/gas/nios2/cache.s gas/testsuite/gas/nios2/call.d gas/testsuite/gas/nios2/call.s gas/testsuite/gas/nios2/call26.d gas/testsuite/gas/nios2/call26.s gas/testsuite/gas/nios2/cmp.d gas/testsuite/gas/nios2/cmp.s gas/testsuite/gas/nios2/comments.d gas/testsuite/gas/nios2/comments.s gas/testsuite/gas/nios2/complex.d gas/testsuite/gas/nios2/complex.s gas/testsuite/gas/nios2/ctl.d gas/testsuite/gas/nios2/ctl.s gas/testsuite/gas/nios2/custom.d gas/testsuite/gas/nios2/custom.s gas/testsuite/gas/nios2/etbt.d gas/testsuite/gas/nios2/etbt.s gas/testsuite/gas/nios2/flushda.d gas/testsuite/gas/nios2/flushda.s gas/testsuite/gas/nios2/illegal.l gas/testsuite/gas/nios2/illegal.s gas/testsuite/gas/nios2/jmp.d gas/testsuite/gas/nios2/jmp.s gas/testsuite/gas/nios2/ldb.d gas/testsuite/gas/nios2/ldb.s gas/testsuite/gas/nios2/ldh.d gas/testsuite/gas/nios2/ldh.s gas/testsuite/gas/nios2/ldw.d gas/testsuite/gas/nios2/ldw.s gas/testsuite/gas/nios2/lineseparator.d gas/testsuite/gas/nios2/lineseparator.s gas/testsuite/gas/nios2/movi.d gas/testsuite/gas/nios2/movi.s gas/testsuite/gas/nios2/movia.d gas/testsuite/gas/nios2/movia.s gas/testsuite/gas/nios2/mul.d gas/testsuite/gas/nios2/mul.s gas/testsuite/gas/nios2/nios2.exp gas/testsuite/gas/nios2/nor.d gas/testsuite/gas/nios2/nor.s gas/testsuite/gas/nios2/or.d gas/testsuite/gas/nios2/or.s gas/testsuite/gas/nios2/rdprs.d gas/testsuite/gas/nios2/rdprs.s gas/testsuite/gas/nios2/registers.d gas/testsuite/gas/nios2/registers.s gas/testsuite/gas/nios2/ret.d gas/testsuite/gas/nios2/ret.s gas/testsuite/gas/nios2/rotate.d gas/testsuite/gas/nios2/rotate.s gas/testsuite/gas/nios2/stb.d gas/testsuite/gas/nios2/stb.s gas/testsuite/gas/nios2/sth.d gas/testsuite/gas/nios2/sth.s gas/testsuite/gas/nios2/stw.d gas/testsuite/gas/nios2/stw.s gas/testsuite/gas/nios2/sub.d gas/testsuite/gas/nios2/sub.s gas/testsuite/gas/nios2/sync.d gas/testsuite/gas/nios2/sync.s gas/testsuite/gas/nios2/trap.d gas/testsuite/gas/nios2/trap.s gas/testsuite/gas/nios2/tret.d gas/testsuite/gas/nios2/tret.s gas/testsuite/gas/nios2/warn_noat.l gas/testsuite/gas/nios2/warn_noat.s gas/testsuite/gas/nios2/warn_nobreak.l gas/testsuite/gas/nios2/warn_nobreak.s gas/testsuite/gas/nios2/wrprs.d gas/testsuite/gas/nios2/wrprs.s gas/testsuite/gas/nios2/xor.d gas/testsuite/gas/nios2/xor.s gas/testsuite/gas/openrisc/addi.d gas/testsuite/gas/openrisc/addi.s gas/testsuite/gas/openrisc/allinsn.d gas/testsuite/gas/openrisc/allinsn.exp gas/testsuite/gas/openrisc/allinsn.s gas/testsuite/gas/openrisc/lohi.d gas/testsuite/gas/openrisc/lohi.s gas/testsuite/gas/openrisc/store.d gas/testsuite/gas/openrisc/store.s gas/testsuite/gas/pdp11/absreloc.d gas/testsuite/gas/pdp11/absreloc.s gas/testsuite/gas/pdp11/opcode.d gas/testsuite/gas/pdp11/opcode.s gas/testsuite/gas/pdp11/pdp11.exp gas/testsuite/gas/pe/aligncomm-a.d gas/testsuite/gas/pe/aligncomm-a.s gas/testsuite/gas/pe/aligncomm-b.d gas/testsuite/gas/pe/aligncomm-b.s gas/testsuite/gas/pe/aligncomm-c.d gas/testsuite/gas/pe/aligncomm-c.s gas/testsuite/gas/pe/aligncomm-d.d gas/testsuite/gas/pe/aligncomm-d.s gas/testsuite/gas/pe/pe.exp gas/testsuite/gas/pe/peseh-x64-2.d gas/testsuite/gas/pe/peseh-x64-2.s gas/testsuite/gas/pe/peseh-x64-3.d gas/testsuite/gas/pe/peseh-x64-3.s gas/testsuite/gas/pe/peseh-x64-4.d gas/testsuite/gas/pe/peseh-x64-4.s gas/testsuite/gas/pe/peseh-x64-5.d gas/testsuite/gas/pe/peseh-x64-6.d gas/testsuite/gas/pe/peseh-x64.d gas/testsuite/gas/pe/peseh-x64.s gas/testsuite/gas/pe/section-align-1.d gas/testsuite/gas/pe/section-align-1.s gas/testsuite/gas/pe/section-align-3.d gas/testsuite/gas/pe/section-align-3.s gas/testsuite/gas/pe/section-exclude.d gas/testsuite/gas/pe/section-exclude.s gas/testsuite/gas/pe/seh-x64-err-1.l gas/testsuite/gas/pe/seh-x64-err-1.s gas/testsuite/gas/pj/ops.d gas/testsuite/gas/pj/ops.s gas/testsuite/gas/pj/pj.exp gas/testsuite/gas/ppc/476.d gas/testsuite/gas/ppc/476.s gas/testsuite/gas/ppc/a2.d gas/testsuite/gas/ppc/a2.s gas/testsuite/gas/ppc/aix.exp gas/testsuite/gas/ppc/align.s gas/testsuite/gas/ppc/altivec.d gas/testsuite/gas/ppc/altivec.s gas/testsuite/gas/ppc/altivec2.d gas/testsuite/gas/ppc/altivec2.s gas/testsuite/gas/ppc/altivec_and_spe.d gas/testsuite/gas/ppc/altivec_and_spe.s gas/testsuite/gas/ppc/altivec_xcoff.d gas/testsuite/gas/ppc/altivec_xcoff.s gas/testsuite/gas/ppc/altivec_xcoff64.d gas/testsuite/gas/ppc/altivec_xcoff64.s gas/testsuite/gas/ppc/astest.d gas/testsuite/gas/ppc/astest.s gas/testsuite/gas/ppc/astest2.d gas/testsuite/gas/ppc/astest2.s gas/testsuite/gas/ppc/astest2_64.d gas/testsuite/gas/ppc/astest2_64.s gas/testsuite/gas/ppc/astest64.d gas/testsuite/gas/ppc/astest64.s gas/testsuite/gas/ppc/booke.d gas/testsuite/gas/ppc/booke.s gas/testsuite/gas/ppc/booke_xcoff.d gas/testsuite/gas/ppc/booke_xcoff.s gas/testsuite/gas/ppc/cell.d gas/testsuite/gas/ppc/cell.s gas/testsuite/gas/ppc/common.d gas/testsuite/gas/ppc/common.s gas/testsuite/gas/ppc/e500.d gas/testsuite/gas/ppc/e500.s gas/testsuite/gas/ppc/e500mc.d gas/testsuite/gas/ppc/e500mc.s gas/testsuite/gas/ppc/e500mc64_nop.d gas/testsuite/gas/ppc/e500mc64_nop.s gas/testsuite/gas/ppc/e5500_nop.d gas/testsuite/gas/ppc/e5500_nop.s gas/testsuite/gas/ppc/e6500.d gas/testsuite/gas/ppc/e6500.s gas/testsuite/gas/ppc/e6500_nop.d gas/testsuite/gas/ppc/e6500_nop.s gas/testsuite/gas/ppc/generate.sh gas/testsuite/gas/ppc/htm.d gas/testsuite/gas/ppc/htm.s gas/testsuite/gas/ppc/machine.d gas/testsuite/gas/ppc/machine.s gas/testsuite/gas/ppc/power4.d gas/testsuite/gas/ppc/power4.s gas/testsuite/gas/ppc/power4_32.d gas/testsuite/gas/ppc/power4_32.s gas/testsuite/gas/ppc/power6.d gas/testsuite/gas/ppc/power6.s gas/testsuite/gas/ppc/power7.d gas/testsuite/gas/ppc/power7.s gas/testsuite/gas/ppc/power8.d gas/testsuite/gas/ppc/power8.s gas/testsuite/gas/ppc/ppc.exp gas/testsuite/gas/ppc/ppc750ps.d gas/testsuite/gas/ppc/ppc750ps.s gas/testsuite/gas/ppc/range.l gas/testsuite/gas/ppc/range.s gas/testsuite/gas/ppc/range64.l gas/testsuite/gas/ppc/range64.s gas/testsuite/gas/ppc/regnames.d gas/testsuite/gas/ppc/regnames.s gas/testsuite/gas/ppc/reloc.d gas/testsuite/gas/ppc/reloc.s gas/testsuite/gas/ppc/simpshft.d gas/testsuite/gas/ppc/simpshft.s gas/testsuite/gas/ppc/test1elf.asm gas/testsuite/gas/ppc/test1elf32.d gas/testsuite/gas/ppc/test1elf32.s gas/testsuite/gas/ppc/test1elf64.d gas/testsuite/gas/ppc/test1elf64.s gas/testsuite/gas/ppc/test1xcoff.asm gas/testsuite/gas/ppc/test1xcoff32.d gas/testsuite/gas/ppc/test1xcoff32.s gas/testsuite/gas/ppc/test2xcoff32.d gas/testsuite/gas/ppc/test2xcoff32.s gas/testsuite/gas/ppc/textalign-xcoff-001.d gas/testsuite/gas/ppc/textalign-xcoff-001.s gas/testsuite/gas/ppc/textalign-xcoff-002.d gas/testsuite/gas/ppc/titan.d gas/testsuite/gas/ppc/titan.s gas/testsuite/gas/ppc/vle-reloc.d gas/testsuite/gas/ppc/vle-reloc.s gas/testsuite/gas/ppc/vle-simple-1.d gas/testsuite/gas/ppc/vle-simple-1.s gas/testsuite/gas/ppc/vle-simple-2.d gas/testsuite/gas/ppc/vle-simple-2.s gas/testsuite/gas/ppc/vle-simple-3.d gas/testsuite/gas/ppc/vle-simple-3.s gas/testsuite/gas/ppc/vle-simple-4.d gas/testsuite/gas/ppc/vle-simple-4.s gas/testsuite/gas/ppc/vle-simple-5.d gas/testsuite/gas/ppc/vle-simple-5.s gas/testsuite/gas/ppc/vle-simple-6.d gas/testsuite/gas/ppc/vle-simple-6.s gas/testsuite/gas/ppc/vle.d gas/testsuite/gas/ppc/vle.s gas/testsuite/gas/ppc/vsx.d gas/testsuite/gas/ppc/vsx.s gas/testsuite/gas/ppc/vsx2.d gas/testsuite/gas/ppc/vsx2.s gas/testsuite/gas/ppc/xcoff-br16-1.d gas/testsuite/gas/ppc/xcoff-br16-1.s gas/testsuite/gas/ppc/xcoff-br16-2.d gas/testsuite/gas/ppc/xcoff-br16-2.s gas/testsuite/gas/ppc/xcoff-branch-1-32.d gas/testsuite/gas/ppc/xcoff-branch-1-64.d gas/testsuite/gas/ppc/xcoff-branch-1.s gas/testsuite/gas/ppc/xcoff-dwsect-1-32.d gas/testsuite/gas/ppc/xcoff-dwsect-1-64.d gas/testsuite/gas/ppc/xcoff-dwsect-1.s gas/testsuite/gas/ppc/xcoff-ref-1.l gas/testsuite/gas/ppc/xcoff-ref-1.s gas/testsuite/gas/ppc/xcoff-toc-1.d gas/testsuite/gas/ppc/xcoff-toc-1.s gas/testsuite/gas/rx/abs.d gas/testsuite/gas/rx/abs.sm gas/testsuite/gas/rx/adc.d gas/testsuite/gas/rx/adc.sm gas/testsuite/gas/rx/add.d gas/testsuite/gas/rx/add.sm gas/testsuite/gas/rx/and.d gas/testsuite/gas/rx/and.sm gas/testsuite/gas/rx/bclr.d gas/testsuite/gas/rx/bclr.sm gas/testsuite/gas/rx/bcnd.d gas/testsuite/gas/rx/bcnd.sm gas/testsuite/gas/rx/bmcnd.d gas/testsuite/gas/rx/bmcnd.sm gas/testsuite/gas/rx/bnot.d gas/testsuite/gas/rx/bnot.sm gas/testsuite/gas/rx/bra.d gas/testsuite/gas/rx/bra.sm gas/testsuite/gas/rx/brk.d gas/testsuite/gas/rx/brk.sm gas/testsuite/gas/rx/bset.d gas/testsuite/gas/rx/bset.sm gas/testsuite/gas/rx/bsr.d gas/testsuite/gas/rx/bsr.sm gas/testsuite/gas/rx/btst.d gas/testsuite/gas/rx/btst.sm gas/testsuite/gas/rx/clrpsw.d gas/testsuite/gas/rx/clrpsw.sm gas/testsuite/gas/rx/cmp.d gas/testsuite/gas/rx/cmp.sm gas/testsuite/gas/rx/dbt.d gas/testsuite/gas/rx/dbt.sm gas/testsuite/gas/rx/div.d gas/testsuite/gas/rx/div.sm gas/testsuite/gas/rx/divu.d gas/testsuite/gas/rx/divu.sm gas/testsuite/gas/rx/emul.d gas/testsuite/gas/rx/emul.sm gas/testsuite/gas/rx/emulu.d gas/testsuite/gas/rx/emulu.sm gas/testsuite/gas/rx/explode gas/testsuite/gas/rx/fadd.d gas/testsuite/gas/rx/fadd.sm gas/testsuite/gas/rx/fcmp.d gas/testsuite/gas/rx/fcmp.sm gas/testsuite/gas/rx/fdiv.d gas/testsuite/gas/rx/fdiv.sm gas/testsuite/gas/rx/fmul.d gas/testsuite/gas/rx/fmul.sm gas/testsuite/gas/rx/fsub.d gas/testsuite/gas/rx/fsub.sm gas/testsuite/gas/rx/ftoi.d gas/testsuite/gas/rx/ftoi.sm gas/testsuite/gas/rx/gprel.d gas/testsuite/gas/rx/gprel.sm gas/testsuite/gas/rx/int.d gas/testsuite/gas/rx/int.sm gas/testsuite/gas/rx/itof.d gas/testsuite/gas/rx/itof.sm gas/testsuite/gas/rx/jmp.d gas/testsuite/gas/rx/jmp.sm gas/testsuite/gas/rx/jsr.d gas/testsuite/gas/rx/jsr.sm gas/testsuite/gas/rx/machi.d gas/testsuite/gas/rx/machi.sm gas/testsuite/gas/rx/maclo.d gas/testsuite/gas/rx/maclo.sm gas/testsuite/gas/rx/macros.inc gas/testsuite/gas/rx/make-d gas/testsuite/gas/rx/max.d gas/testsuite/gas/rx/max.sm gas/testsuite/gas/rx/min.d gas/testsuite/gas/rx/min.sm gas/testsuite/gas/rx/mov.d gas/testsuite/gas/rx/mov.sm gas/testsuite/gas/rx/movu.d gas/testsuite/gas/rx/movu.sm gas/testsuite/gas/rx/mul.d gas/testsuite/gas/rx/mul.sm gas/testsuite/gas/rx/mulhi.d gas/testsuite/gas/rx/mulhi.sm gas/testsuite/gas/rx/mullo.d gas/testsuite/gas/rx/mullo.sm gas/testsuite/gas/rx/mvfachi.d gas/testsuite/gas/rx/mvfachi.sm gas/testsuite/gas/rx/mvfaclo.d gas/testsuite/gas/rx/mvfaclo.sm gas/testsuite/gas/rx/mvfacmi.d gas/testsuite/gas/rx/mvfacmi.sm gas/testsuite/gas/rx/mvfc.d gas/testsuite/gas/rx/mvfc.sm gas/testsuite/gas/rx/mvfcp.d gas/testsuite/gas/rx/mvfcp.sm gas/testsuite/gas/rx/mvtachi.d gas/testsuite/gas/rx/mvtachi.sm gas/testsuite/gas/rx/mvtaclo.d gas/testsuite/gas/rx/mvtaclo.sm gas/testsuite/gas/rx/mvtc.d gas/testsuite/gas/rx/mvtc.sm gas/testsuite/gas/rx/mvtcp.d gas/testsuite/gas/rx/mvtcp.sm gas/testsuite/gas/rx/neg.d gas/testsuite/gas/rx/neg.sm gas/testsuite/gas/rx/nop.d gas/testsuite/gas/rx/nop.sm gas/testsuite/gas/rx/not.d gas/testsuite/gas/rx/not.sm gas/testsuite/gas/rx/opecp.d gas/testsuite/gas/rx/opecp.sm gas/testsuite/gas/rx/or.d gas/testsuite/gas/rx/or.sm gas/testsuite/gas/rx/pop.d gas/testsuite/gas/rx/pop.sm gas/testsuite/gas/rx/popc.d gas/testsuite/gas/rx/popc.sm gas/testsuite/gas/rx/popm.d gas/testsuite/gas/rx/popm.sm gas/testsuite/gas/rx/push.d gas/testsuite/gas/rx/push.sm gas/testsuite/gas/rx/pushc.d gas/testsuite/gas/rx/pushc.sm gas/testsuite/gas/rx/pushm.d gas/testsuite/gas/rx/pushm.sm gas/testsuite/gas/rx/r-bcc.d gas/testsuite/gas/rx/r-bcc.sm gas/testsuite/gas/rx/r-bra.d gas/testsuite/gas/rx/r-bra.sm gas/testsuite/gas/rx/racw.d gas/testsuite/gas/rx/racw.sm gas/testsuite/gas/rx/revl.d gas/testsuite/gas/rx/revl.sm gas/testsuite/gas/rx/revw.d gas/testsuite/gas/rx/revw.sm gas/testsuite/gas/rx/rmpa.d gas/testsuite/gas/rx/rmpa.sm gas/testsuite/gas/rx/rolc.d gas/testsuite/gas/rx/rolc.sm gas/testsuite/gas/rx/rorc.d gas/testsuite/gas/rx/rorc.sm gas/testsuite/gas/rx/rotl.d gas/testsuite/gas/rx/rotl.sm gas/testsuite/gas/rx/rotr.d gas/testsuite/gas/rx/rotr.sm gas/testsuite/gas/rx/round.d gas/testsuite/gas/rx/round.sm gas/testsuite/gas/rx/rte.d gas/testsuite/gas/rx/rte.sm gas/testsuite/gas/rx/rtfi.d gas/testsuite/gas/rx/rtfi.sm gas/testsuite/gas/rx/rts.d gas/testsuite/gas/rx/rts.sm gas/testsuite/gas/rx/rtsd.d gas/testsuite/gas/rx/rtsd.sm gas/testsuite/gas/rx/rx-asm-bad.l gas/testsuite/gas/rx/rx-asm-bad.s gas/testsuite/gas/rx/rx-asm-good.d gas/testsuite/gas/rx/rx-asm-good.inc gas/testsuite/gas/rx/rx-asm-good.s gas/testsuite/gas/rx/rx.exp gas/testsuite/gas/rx/sat.d gas/testsuite/gas/rx/sat.sm gas/testsuite/gas/rx/satr.d gas/testsuite/gas/rx/satr.sm gas/testsuite/gas/rx/sbb.d gas/testsuite/gas/rx/sbb.sm gas/testsuite/gas/rx/sccnd.d gas/testsuite/gas/rx/sccnd.sm gas/testsuite/gas/rx/scmpu.d gas/testsuite/gas/rx/scmpu.sm gas/testsuite/gas/rx/setpsw.d gas/testsuite/gas/rx/setpsw.sm gas/testsuite/gas/rx/shar.d gas/testsuite/gas/rx/shar.sm gas/testsuite/gas/rx/shll.d gas/testsuite/gas/rx/shll.sm gas/testsuite/gas/rx/shlr.d gas/testsuite/gas/rx/shlr.sm gas/testsuite/gas/rx/smovb.d gas/testsuite/gas/rx/smovb.sm gas/testsuite/gas/rx/smovf.d gas/testsuite/gas/rx/smovf.sm gas/testsuite/gas/rx/smovu.d gas/testsuite/gas/rx/smovu.sm gas/testsuite/gas/rx/sstr.d gas/testsuite/gas/rx/sstr.sm gas/testsuite/gas/rx/stnz.d gas/testsuite/gas/rx/stnz.sm gas/testsuite/gas/rx/stz.d gas/testsuite/gas/rx/stz.sm gas/testsuite/gas/rx/sub.d gas/testsuite/gas/rx/sub.sm gas/testsuite/gas/rx/suntil.d gas/testsuite/gas/rx/suntil.sm gas/testsuite/gas/rx/swhile.d gas/testsuite/gas/rx/swhile.sm gas/testsuite/gas/rx/tst.d gas/testsuite/gas/rx/tst.sm gas/testsuite/gas/rx/wait.d gas/testsuite/gas/rx/wait.sm gas/testsuite/gas/rx/xchg.d gas/testsuite/gas/rx/xchg.sm gas/testsuite/gas/rx/xor.d gas/testsuite/gas/rx/xor.sm gas/testsuite/gas/s390/esa-g5.d gas/testsuite/gas/s390/esa-g5.s gas/testsuite/gas/s390/esa-operands.d gas/testsuite/gas/s390/esa-operands.s gas/testsuite/gas/s390/esa-reloc.d gas/testsuite/gas/s390/esa-reloc.s gas/testsuite/gas/s390/esa-z9-109.d gas/testsuite/gas/s390/esa-z9-109.s gas/testsuite/gas/s390/esa-z900.d gas/testsuite/gas/s390/esa-z900.s gas/testsuite/gas/s390/esa-z990.d gas/testsuite/gas/s390/esa-z990.s gas/testsuite/gas/s390/s390.exp gas/testsuite/gas/s390/zarch-machine.d gas/testsuite/gas/s390/zarch-machine.s gas/testsuite/gas/s390/zarch-operands.d gas/testsuite/gas/s390/zarch-operands.s gas/testsuite/gas/s390/zarch-reloc.d gas/testsuite/gas/s390/zarch-reloc.s gas/testsuite/gas/s390/zarch-z10.d gas/testsuite/gas/s390/zarch-z10.s gas/testsuite/gas/s390/zarch-z196.d gas/testsuite/gas/s390/zarch-z196.s gas/testsuite/gas/s390/zarch-z9-109-err.l gas/testsuite/gas/s390/zarch-z9-109-err.s gas/testsuite/gas/s390/zarch-z9-109.d gas/testsuite/gas/s390/zarch-z9-109.s gas/testsuite/gas/s390/zarch-z9-ec.d gas/testsuite/gas/s390/zarch-z9-ec.s gas/testsuite/gas/s390/zarch-z900.d gas/testsuite/gas/s390/zarch-z900.s gas/testsuite/gas/s390/zarch-z990.d gas/testsuite/gas/s390/zarch-z990.s gas/testsuite/gas/s390/zarch-zEC12.d gas/testsuite/gas/s390/zarch-zEC12.s gas/testsuite/gas/score/addi.d gas/testsuite/gas/score/addi.s gas/testsuite/gas/score/arith_32-lt.d gas/testsuite/gas/score/arith_32.d gas/testsuite/gas/score/arith_32.s gas/testsuite/gas/score/b.d gas/testsuite/gas/score/b.s gas/testsuite/gas/score/bit_32-lt.d gas/testsuite/gas/score/bit_32.d gas/testsuite/gas/score/bit_32.s gas/testsuite/gas/score/bittst.d gas/testsuite/gas/score/bittst.s gas/testsuite/gas/score/br.d gas/testsuite/gas/score/br.s gas/testsuite/gas/score/branch_32-lt.d gas/testsuite/gas/score/branch_32.d gas/testsuite/gas/score/branch_32.s gas/testsuite/gas/score/cmp_32-lt.d gas/testsuite/gas/score/cmp_32.d gas/testsuite/gas/score/cmp_32.s gas/testsuite/gas/score/ldi.d gas/testsuite/gas/score/ldi.s gas/testsuite/gas/score/load_store_32-lt.d gas/testsuite/gas/score/load_store_32.d gas/testsuite/gas/score/load_store_32.s gas/testsuite/gas/score/logical_32-lt.d gas/testsuite/gas/score/logical_32.d gas/testsuite/gas/score/logical_32.s gas/testsuite/gas/score/ls32ls16.d gas/testsuite/gas/score/ls32ls16.s gas/testsuite/gas/score/ls32ls16p.d gas/testsuite/gas/score/ls32ls16p.s gas/testsuite/gas/score/move.d gas/testsuite/gas/score/move.s gas/testsuite/gas/score/mv_32-lt.d gas/testsuite/gas/score/mv_32.d gas/testsuite/gas/score/mv_32.s gas/testsuite/gas/score/nop.d gas/testsuite/gas/score/nop.s gas/testsuite/gas/score/postlw.d gas/testsuite/gas/score/postlw.s gas/testsuite/gas/score/presw.d gas/testsuite/gas/score/presw.s gas/testsuite/gas/score/rD_rA.d gas/testsuite/gas/score/rD_rA.s gas/testsuite/gas/score/rD_rA_BN.d gas/testsuite/gas/score/rD_rA_BN.s gas/testsuite/gas/score/rD_rA_rB.d gas/testsuite/gas/score/rD_rA_rB.s gas/testsuite/gas/score/relax.exp gas/testsuite/gas/score/relax_32.exp gas/testsuite/gas/score/relaxation_macro.h gas/testsuite/gas/score/shift_32-lt.d gas/testsuite/gas/score/shift_32.d gas/testsuite/gas/score/shift_32.s gas/testsuite/gas/score/syscontrol_32-lt.d gas/testsuite/gas/score/syscontrol_32.d gas/testsuite/gas/score/syscontrol_32.s gas/testsuite/gas/score/tcond.d gas/testsuite/gas/score/tcond.s gas/testsuite/gas/sh/arch/arch.exp gas/testsuite/gas/sh/arch/arch_expected.txt gas/testsuite/gas/sh/arch/sh-dsp.s gas/testsuite/gas/sh/arch/sh.s gas/testsuite/gas/sh/arch/sh2.s gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh3-nommu.s gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s gas/testsuite/gas/sh/arch/sh2a-nofpu.s gas/testsuite/gas/sh/arch/sh2a-or-sh3e.s gas/testsuite/gas/sh/arch/sh2a-or-sh4.s gas/testsuite/gas/sh/arch/sh2a.s gas/testsuite/gas/sh/arch/sh2e.s gas/testsuite/gas/sh/arch/sh3-dsp.s gas/testsuite/gas/sh/arch/sh3-nommu.s gas/testsuite/gas/sh/arch/sh3.s gas/testsuite/gas/sh/arch/sh3e.s gas/testsuite/gas/sh/arch/sh4-nofpu.s gas/testsuite/gas/sh/arch/sh4-nommu-nofpu.s gas/testsuite/gas/sh/arch/sh4.s gas/testsuite/gas/sh/arch/sh4a-nofpu.s gas/testsuite/gas/sh/arch/sh4a.s gas/testsuite/gas/sh/arch/sh4al-dsp.s gas/testsuite/gas/sh/basic.exp gas/testsuite/gas/sh/dsp.d gas/testsuite/gas/sh/dsp.s gas/testsuite/gas/sh/err-1.s gas/testsuite/gas/sh/err-at.s gas/testsuite/gas/sh/err-be.s gas/testsuite/gas/sh/err-le.s gas/testsuite/gas/sh/err-mova.s gas/testsuite/gas/sh/err-sh4a-fp.s gas/testsuite/gas/sh/err-sh4a.s gas/testsuite/gas/sh/err-sh4al-dsp.s gas/testsuite/gas/sh/err.exp gas/testsuite/gas/sh/fdpic.d gas/testsuite/gas/sh/fdpic.s gas/testsuite/gas/sh/fp.s gas/testsuite/gas/sh/pcrel-coff.d gas/testsuite/gas/sh/pcrel-coff.s gas/testsuite/gas/sh/pcrel-hms.d gas/testsuite/gas/sh/pcrel.d gas/testsuite/gas/sh/pcrel.l gas/testsuite/gas/sh/pcrel.s gas/testsuite/gas/sh/pcrel2.d gas/testsuite/gas/sh/pcrel2.s gas/testsuite/gas/sh/pic.d gas/testsuite/gas/sh/pic.s gas/testsuite/gas/sh/reg-prefix.d gas/testsuite/gas/sh/reg-prefix.s gas/testsuite/gas/sh/renesas-1.d gas/testsuite/gas/sh/renesas-1.s gas/testsuite/gas/sh/sh2a-pic.d gas/testsuite/gas/sh/sh2a-pic.s gas/testsuite/gas/sh/sh2a.d gas/testsuite/gas/sh/sh2a.s gas/testsuite/gas/sh/sh4a-dsp.d gas/testsuite/gas/sh/sh4a-dsp.s gas/testsuite/gas/sh/sh4a-fp.d gas/testsuite/gas/sh/sh4a-fp.s gas/testsuite/gas/sh/sh4a.d gas/testsuite/gas/sh/sh4a.s gas/testsuite/gas/sh/sh4al-dsp.d gas/testsuite/gas/sh/sh4al-dsp.s gas/testsuite/gas/sh/sh64/abi-32.d gas/testsuite/gas/sh/sh64/abi-32.s gas/testsuite/gas/sh/sh64/abi-64.d gas/testsuite/gas/sh/sh64/abi-64.s gas/testsuite/gas/sh/sh64/basic-1.d gas/testsuite/gas/sh/sh64/basic-1.s gas/testsuite/gas/sh/sh64/case-1.d gas/testsuite/gas/sh/sh64/case-1.s gas/testsuite/gas/sh/sh64/case-noexp-1.d gas/testsuite/gas/sh/sh64/crange1-1.d gas/testsuite/gas/sh/sh64/crange1-2.d gas/testsuite/gas/sh/sh64/crange1.s gas/testsuite/gas/sh/sh64/crange2-1.d gas/testsuite/gas/sh/sh64/crange2-2.d gas/testsuite/gas/sh/sh64/crange2-noexp-1.d gas/testsuite/gas/sh/sh64/crange2.s gas/testsuite/gas/sh/sh64/crange3-1.d gas/testsuite/gas/sh/sh64/crange3.s gas/testsuite/gas/sh/sh64/crange4-1.d gas/testsuite/gas/sh/sh64/crange4.s gas/testsuite/gas/sh/sh64/crange5-1.d gas/testsuite/gas/sh/sh64/crange5.s gas/testsuite/gas/sh/sh64/creg-1.d gas/testsuite/gas/sh/sh64/creg-1.s gas/testsuite/gas/sh/sh64/creg-2.d gas/testsuite/gas/sh/sh64/creg-2.s gas/testsuite/gas/sh/sh64/datal-1.s gas/testsuite/gas/sh/sh64/datal-2.d gas/testsuite/gas/sh/sh64/datal-2.s gas/testsuite/gas/sh/sh64/datal-3.s gas/testsuite/gas/sh/sh64/datal32-1.d gas/testsuite/gas/sh/sh64/datal32-3.d gas/testsuite/gas/sh/sh64/datal64-1.d gas/testsuite/gas/sh/sh64/datal64-3.d gas/testsuite/gas/sh/sh64/eh-1.d gas/testsuite/gas/sh/sh64/eh-1.s gas/testsuite/gas/sh/sh64/endian-1.d gas/testsuite/gas/sh/sh64/endian-1.s gas/testsuite/gas/sh/sh64/endian-2.d gas/testsuite/gas/sh/sh64/endian-2.s gas/testsuite/gas/sh/sh64/err-1.s gas/testsuite/gas/sh/sh64/err-2.s gas/testsuite/gas/sh/sh64/err-3.s gas/testsuite/gas/sh/sh64/err-4.s gas/testsuite/gas/sh/sh64/err-abi-32.s gas/testsuite/gas/sh/sh64/err-abi-64.s gas/testsuite/gas/sh/sh64/err-dsp.s gas/testsuite/gas/sh/sh64/err-movi-noexp-1.s gas/testsuite/gas/sh/sh64/err-noexp-cmd1.s gas/testsuite/gas/sh/sh64/err-pt-1.s gas/testsuite/gas/sh/sh64/err-pt32-cmd1.s gas/testsuite/gas/sh/sh64/err-pt32-cmd2.s gas/testsuite/gas/sh/sh64/err-pt32-cmd3.s gas/testsuite/gas/sh/sh64/err-ptb-1.s gas/testsuite/gas/sh/sh64/err-ptb-2.s gas/testsuite/gas/sh/sh64/err.exp gas/testsuite/gas/sh/sh64/immexpr1.s gas/testsuite/gas/sh/sh64/immexpr2.s gas/testsuite/gas/sh/sh64/immexpr32-1.d gas/testsuite/gas/sh/sh64/immexpr32-2.d gas/testsuite/gas/sh/sh64/immexpr64-1.d gas/testsuite/gas/sh/sh64/immexpr64-2.d gas/testsuite/gas/sh/sh64/lineno.d gas/testsuite/gas/sh/sh64/lineno.s gas/testsuite/gas/sh/sh64/localcom-1.d gas/testsuite/gas/sh/sh64/localcom-1.s gas/testsuite/gas/sh/sh64/mix-1.d gas/testsuite/gas/sh/sh64/mix-1.s gas/testsuite/gas/sh/sh64/mix-noexp-1.d gas/testsuite/gas/sh/sh64/movi-1.s gas/testsuite/gas/sh/sh64/movi-2.s gas/testsuite/gas/sh/sh64/movi-3.d gas/testsuite/gas/sh/sh64/movi-3.s gas/testsuite/gas/sh/sh64/movi32-1.d gas/testsuite/gas/sh/sh64/movi32-2.d gas/testsuite/gas/sh/sh64/movi32-noexp-2.d gas/testsuite/gas/sh/sh64/movi64-1.d gas/testsuite/gas/sh/sh64/movi64-2.d gas/testsuite/gas/sh/sh64/movi64-2.s gas/testsuite/gas/sh/sh64/movi64-3.d gas/testsuite/gas/sh/sh64/movi64-noexp-2.d gas/testsuite/gas/sh/sh64/pt-1.d gas/testsuite/gas/sh/sh64/pt-1.s gas/testsuite/gas/sh/sh64/pt-2.s gas/testsuite/gas/sh/sh64/pt-noexp-1.d gas/testsuite/gas/sh/sh64/pt32-1.d gas/testsuite/gas/sh/sh64/pt32-noexp-2.d gas/testsuite/gas/sh/sh64/pt64-1.d gas/testsuite/gas/sh/sh64/pt64-32-1.d gas/testsuite/gas/sh/sh64/pt64-32-2.d gas/testsuite/gas/sh/sh64/pt64-noexp-2.d gas/testsuite/gas/sh/sh64/ptc-1.s gas/testsuite/gas/sh/sh64/ptc32-1.d gas/testsuite/gas/sh/sh64/ptc32-noexp-1.d gas/testsuite/gas/sh/sh64/ptc64-1.d gas/testsuite/gas/sh/sh64/ptc64-32-1.d gas/testsuite/gas/sh/sh64/ptc64-noexp-1.d gas/testsuite/gas/sh/sh64/ptext-1.s gas/testsuite/gas/sh/sh64/ptext32-1.d gas/testsuite/gas/sh/sh64/ptext32-noexp-1.d gas/testsuite/gas/sh/sh64/ptext64-1.d gas/testsuite/gas/sh/sh64/ptext64-32-1.d gas/testsuite/gas/sh/sh64/ptext64-noexp-1.d gas/testsuite/gas/sh/sh64/rel-1.s gas/testsuite/gas/sh/sh64/rel-2.s gas/testsuite/gas/sh/sh64/rel-3.s gas/testsuite/gas/sh/sh64/rel-4.s gas/testsuite/gas/sh/sh64/rel-5.s gas/testsuite/gas/sh/sh64/rel32-1.d gas/testsuite/gas/sh/sh64/rel32-2.d gas/testsuite/gas/sh/sh64/rel32-3.d gas/testsuite/gas/sh/sh64/rel32-4.d gas/testsuite/gas/sh/sh64/rel32-5.d gas/testsuite/gas/sh/sh64/rel64-1.d gas/testsuite/gas/sh/sh64/rel64-2.d gas/testsuite/gas/sh/sh64/rel64-3.d gas/testsuite/gas/sh/sh64/rel64-4.d gas/testsuite/gas/sh/sh64/rel64-5.d gas/testsuite/gas/sh/sh64/relax-1.d gas/testsuite/gas/sh/sh64/relax-1.s gas/testsuite/gas/sh/sh64/relax-2.d gas/testsuite/gas/sh/sh64/relax-2.s gas/testsuite/gas/sh/sh64/relax-3.d gas/testsuite/gas/sh/sh64/relax-3.s gas/testsuite/gas/sh/sh64/sh64.exp gas/testsuite/gas/sh/sh64/shift-1.s gas/testsuite/gas/sh/sh64/shift-2.s gas/testsuite/gas/sh/sh64/shift-3.s gas/testsuite/gas/sh/sh64/shift32-1.d gas/testsuite/gas/sh/sh64/shift32-3.d gas/testsuite/gas/sh/sh64/shift32-noexp-3.d gas/testsuite/gas/sh/sh64/shift64-1.d gas/testsuite/gas/sh/sh64/shift64-2.d gas/testsuite/gas/sh/sh64/shift64-3.d gas/testsuite/gas/sh/sh64/shift64-noexp-3.d gas/testsuite/gas/sh/sh64/syntax-1.d gas/testsuite/gas/sh/sh64/syntax-1.s gas/testsuite/gas/sh/sh64/syntax-2.d gas/testsuite/gas/sh/sh64/syntax-2.s gas/testsuite/gas/sh/sh64/ua-1.s gas/testsuite/gas/sh/sh64/ua32-1.d gas/testsuite/gas/sh/sh64/ua64-1.d gas/testsuite/gas/sh/sign-extension.d gas/testsuite/gas/sh/sign-extension.s gas/testsuite/gas/sh/tlsd.d gas/testsuite/gas/sh/tlsd.s gas/testsuite/gas/sh/tlsnopic.d gas/testsuite/gas/sh/tlsnopic.s gas/testsuite/gas/sh/tlspic.d gas/testsuite/gas/sh/tlspic.s gas/testsuite/gas/sh/too_large.d gas/testsuite/gas/sh/too_large.s gas/testsuite/gas/sparc-solaris/addend.exp gas/testsuite/gas/sparc-solaris/addend.s gas/testsuite/gas/sparc-solaris/gas.exp gas/testsuite/gas/sparc-solaris/sol-cc.s gas/testsuite/gas/sparc-solaris/sol-gcc.s gas/testsuite/gas/sparc/asi.d gas/testsuite/gas/sparc/asi.s gas/testsuite/gas/sparc/cbcond.d gas/testsuite/gas/sparc/cbcond.s gas/testsuite/gas/sparc/cfr.d gas/testsuite/gas/sparc/cfr.s gas/testsuite/gas/sparc/crypto.d gas/testsuite/gas/sparc/crypto.s gas/testsuite/gas/sparc/edge.d gas/testsuite/gas/sparc/edge.s gas/testsuite/gas/sparc/flush.d gas/testsuite/gas/sparc/flush.s gas/testsuite/gas/sparc/gotop32.d gas/testsuite/gas/sparc/gotop32.s gas/testsuite/gas/sparc/gotop64.d gas/testsuite/gas/sparc/gotop64.s gas/testsuite/gas/sparc/hpcvis3.d gas/testsuite/gas/sparc/hpcvis3.s gas/testsuite/gas/sparc/ima.d gas/testsuite/gas/sparc/ima.s gas/testsuite/gas/sparc/imm-plus-rreg.d gas/testsuite/gas/sparc/imm-plus-rreg.s gas/testsuite/gas/sparc/ldd_std.d gas/testsuite/gas/sparc/ldd_std.s gas/testsuite/gas/sparc/ldtw_sttw.d gas/testsuite/gas/sparc/ldtw_sttw.s gas/testsuite/gas/sparc/membar.d gas/testsuite/gas/sparc/membar.s gas/testsuite/gas/sparc/mism-1.s gas/testsuite/gas/sparc/mismatch.exp gas/testsuite/gas/sparc/pause.d gas/testsuite/gas/sparc/pause.s gas/testsuite/gas/sparc/pc2210.d gas/testsuite/gas/sparc/pc2210.s gas/testsuite/gas/sparc/pcrel.d gas/testsuite/gas/sparc/pcrel.s gas/testsuite/gas/sparc/pcrel64.d gas/testsuite/gas/sparc/pcrel64.s gas/testsuite/gas/sparc/plt.d gas/testsuite/gas/sparc/plt.s gas/testsuite/gas/sparc/plt64.d gas/testsuite/gas/sparc/plt64.s gas/testsuite/gas/sparc/pr4587.l gas/testsuite/gas/sparc/pr4587.s gas/testsuite/gas/sparc/prefetch.d gas/testsuite/gas/sparc/prefetch.s gas/testsuite/gas/sparc/rdhpr.d gas/testsuite/gas/sparc/rdhpr.s gas/testsuite/gas/sparc/rdpr.d gas/testsuite/gas/sparc/rdpr.s gas/testsuite/gas/sparc/reloc64.d gas/testsuite/gas/sparc/reloc64.s gas/testsuite/gas/sparc/save-args.d gas/testsuite/gas/sparc/save-args.s gas/testsuite/gas/sparc/set64.d gas/testsuite/gas/sparc/set64.s gas/testsuite/gas/sparc/sparc.exp gas/testsuite/gas/sparc/splet-2.d gas/testsuite/gas/sparc/splet-2.s gas/testsuite/gas/sparc/splet.d gas/testsuite/gas/sparc/splet.s gas/testsuite/gas/sparc/synth.d gas/testsuite/gas/sparc/synth.s gas/testsuite/gas/sparc/synth64.d gas/testsuite/gas/sparc/synth64.s gas/testsuite/gas/sparc/ticc-imm-reg.d gas/testsuite/gas/sparc/ticc-imm-reg.s gas/testsuite/gas/sparc/unalign.d gas/testsuite/gas/sparc/unalign.s gas/testsuite/gas/sparc/v8-movwr-imm.d gas/testsuite/gas/sparc/v8-movwr-imm.s gas/testsuite/gas/sparc/v9branch1.d gas/testsuite/gas/sparc/v9branch1.s gas/testsuite/gas/sparc/v9branch2.d gas/testsuite/gas/sparc/v9branch2.s gas/testsuite/gas/sparc/v9branch3.d gas/testsuite/gas/sparc/v9branch3.s gas/testsuite/gas/sparc/v9branch4.d gas/testsuite/gas/sparc/v9branch4.s gas/testsuite/gas/sparc/v9branch5.d gas/testsuite/gas/sparc/v9branch5.s gas/testsuite/gas/sparc/vxworks-pic.d gas/testsuite/gas/sparc/vxworks-pic.s gas/testsuite/gas/sparc/window.d gas/testsuite/gas/sparc/window.s gas/testsuite/gas/sparc/wrhpr.d gas/testsuite/gas/sparc/wrhpr.s gas/testsuite/gas/sparc/wrpr.d gas/testsuite/gas/sparc/wrpr.s gas/testsuite/gas/sun4/addend.d gas/testsuite/gas/sun4/addend.exp gas/testsuite/gas/sun4/addend.s gas/testsuite/gas/symver/symver.exp gas/testsuite/gas/symver/symver0.d gas/testsuite/gas/symver/symver0.s gas/testsuite/gas/symver/symver1.d gas/testsuite/gas/symver/symver1.s gas/testsuite/gas/symver/symver2.l gas/testsuite/gas/symver/symver2.s gas/testsuite/gas/symver/symver3.l gas/testsuite/gas/symver/symver3.s gas/testsuite/gas/symver/symver4.l gas/testsuite/gas/symver/symver4.s gas/testsuite/gas/symver/symver5.l gas/testsuite/gas/symver/symver5.s gas/testsuite/gas/symver/symver6.l gas/testsuite/gas/symver/symver6.s gas/testsuite/gas/template gas/testsuite/gas/tic4x/addressing.s gas/testsuite/gas/tic4x/addressing_c3x.d gas/testsuite/gas/tic4x/addressing_c4x.d gas/testsuite/gas/tic4x/allopcodes.S gas/testsuite/gas/tic4x/data.d gas/testsuite/gas/tic4x/data.s gas/testsuite/gas/tic4x/float.d gas/testsuite/gas/tic4x/float.s gas/testsuite/gas/tic4x/opclasses.h gas/testsuite/gas/tic4x/opcodes.s gas/testsuite/gas/tic4x/opcodes_c3x.d gas/testsuite/gas/tic4x/opcodes_c4x.d gas/testsuite/gas/tic4x/opcodes_new.d gas/testsuite/gas/tic4x/rebuild.sh gas/testsuite/gas/tic4x/registers.s gas/testsuite/gas/tic4x/registers_c3x.d gas/testsuite/gas/tic4x/registers_c4x.d gas/testsuite/gas/tic4x/tic4x.exp gas/testsuite/gas/tic4x/zeros.d gas/testsuite/gas/tic4x/zeros.s gas/testsuite/gas/tic54x/address.d gas/testsuite/gas/tic54x/address.s gas/testsuite/gas/tic54x/addrfar.d gas/testsuite/gas/tic54x/align.d gas/testsuite/gas/tic54x/align.s gas/testsuite/gas/tic54x/all-opcodes.d gas/testsuite/gas/tic54x/all-opcodes.s gas/testsuite/gas/tic54x/asg.d gas/testsuite/gas/tic54x/asg.s gas/testsuite/gas/tic54x/cons.d gas/testsuite/gas/tic54x/cons.s gas/testsuite/gas/tic54x/consfar.d gas/testsuite/gas/tic54x/extaddr.d gas/testsuite/gas/tic54x/extaddr.s gas/testsuite/gas/tic54x/field.d gas/testsuite/gas/tic54x/field.s gas/testsuite/gas/tic54x/in_mlib.asm gas/testsuite/gas/tic54x/labels.d gas/testsuite/gas/tic54x/labels.inc gas/testsuite/gas/tic54x/labels.s gas/testsuite/gas/tic54x/loop.d gas/testsuite/gas/tic54x/loop.s gas/testsuite/gas/tic54x/lp.d gas/testsuite/gas/tic54x/lp.s gas/testsuite/gas/tic54x/macro.d gas/testsuite/gas/tic54x/macro.s gas/testsuite/gas/tic54x/macro1.s gas/testsuite/gas/tic54x/macros.lib gas/testsuite/gas/tic54x/math.d gas/testsuite/gas/tic54x/math.s gas/testsuite/gas/tic54x/opcodes.d gas/testsuite/gas/tic54x/opcodes.s gas/testsuite/gas/tic54x/sections.d gas/testsuite/gas/tic54x/sections.s gas/testsuite/gas/tic54x/set.d gas/testsuite/gas/tic54x/set.s gas/testsuite/gas/tic54x/struct.d gas/testsuite/gas/tic54x/struct.s gas/testsuite/gas/tic54x/subsym.d gas/testsuite/gas/tic54x/subsym.s gas/testsuite/gas/tic54x/subsym1.s gas/testsuite/gas/tic54x/tic54x.exp gas/testsuite/gas/tic6x/align-1-be.d gas/testsuite/gas/tic6x/align-1.d gas/testsuite/gas/tic6x/align-1.s gas/testsuite/gas/tic6x/align-2.d gas/testsuite/gas/tic6x/align-2.s gas/testsuite/gas/tic6x/arch-invalid-1.d gas/testsuite/gas/tic6x/arch-invalid-1.l gas/testsuite/gas/tic6x/arch-invalid-2.d gas/testsuite/gas/tic6x/arch-invalid-2.l gas/testsuite/gas/tic6x/arch-invalid-2.s gas/testsuite/gas/tic6x/attr-arch-directive-1.d gas/testsuite/gas/tic6x/attr-arch-directive-1.s gas/testsuite/gas/tic6x/attr-arch-directive-2.d gas/testsuite/gas/tic6x/attr-arch-directive-2.s gas/testsuite/gas/tic6x/attr-arch-directive-3.d gas/testsuite/gas/tic6x/attr-arch-directive-3.s gas/testsuite/gas/tic6x/attr-arch-directive-4.d gas/testsuite/gas/tic6x/attr-arch-directive-4.s gas/testsuite/gas/tic6x/attr-arch-directive-5.d gas/testsuite/gas/tic6x/attr-arch-directive-5.s gas/testsuite/gas/tic6x/attr-arch-opts-c62x.d gas/testsuite/gas/tic6x/attr-arch-opts-c64x+.d gas/testsuite/gas/tic6x/attr-arch-opts-c64x.d gas/testsuite/gas/tic6x/attr-arch-opts-c674x.d gas/testsuite/gas/tic6x/attr-arch-opts-c67x+.d gas/testsuite/gas/tic6x/attr-arch-opts-c67x.d gas/testsuite/gas/tic6x/attr-arch-opts-none-1.d gas/testsuite/gas/tic6x/attr-arch-opts-none-2.d gas/testsuite/gas/tic6x/attr-arch-opts-override-1.d gas/testsuite/gas/tic6x/attr-arch-opts-override-2.d gas/testsuite/gas/tic6x/attr-array-directive-1.d gas/testsuite/gas/tic6x/attr-array-directive-1.s gas/testsuite/gas/tic6x/attr-array-directive-2.d gas/testsuite/gas/tic6x/attr-array-directive-2.s gas/testsuite/gas/tic6x/attr-array-directive-3.d gas/testsuite/gas/tic6x/attr-array-directive-3.s gas/testsuite/gas/tic6x/attr-array-directive-4.d gas/testsuite/gas/tic6x/attr-array-directive-4.s gas/testsuite/gas/tic6x/attr-compatibility-directive-1.d gas/testsuite/gas/tic6x/attr-compatibility-directive-1.s gas/testsuite/gas/tic6x/attr-compatibility-directive-2.d gas/testsuite/gas/tic6x/attr-compatibility-directive-2.s gas/testsuite/gas/tic6x/attr-conformance-directive-1.d gas/testsuite/gas/tic6x/attr-conformance-directive-1.s gas/testsuite/gas/tic6x/attr-conformance-directive-2.d gas/testsuite/gas/tic6x/attr-conformance-directive-2.s gas/testsuite/gas/tic6x/attr-dsbt-directive-1.d gas/testsuite/gas/tic6x/attr-dsbt-directive-1.s gas/testsuite/gas/tic6x/attr-dsbt-directive-2.d gas/testsuite/gas/tic6x/attr-dsbt-directive-2.s gas/testsuite/gas/tic6x/attr-dsbt-opts-mdsbt.d gas/testsuite/gas/tic6x/attr-dsbt-opts-mno-dsbt.d gas/testsuite/gas/tic6x/attr-pic-directive-1.d gas/testsuite/gas/tic6x/attr-pic-directive-1.s gas/testsuite/gas/tic6x/attr-pic-directive-2.d gas/testsuite/gas/tic6x/attr-pic-directive-2.s gas/testsuite/gas/tic6x/attr-pic-opts-mno-pic.d gas/testsuite/gas/tic6x/attr-pic-opts-mpic.d gas/testsuite/gas/tic6x/attr-pid-directive-1.d gas/testsuite/gas/tic6x/attr-pid-directive-1.s gas/testsuite/gas/tic6x/attr-pid-directive-2.d gas/testsuite/gas/tic6x/attr-pid-directive-2.s gas/testsuite/gas/tic6x/attr-pid-opts-mpid-far.d gas/testsuite/gas/tic6x/attr-pid-opts-mpid-near.d gas/testsuite/gas/tic6x/attr-pid-opts-mpid-no.d gas/testsuite/gas/tic6x/attr-stack-directive-1.d gas/testsuite/gas/tic6x/attr-stack-directive-1.s gas/testsuite/gas/tic6x/attr-stack-directive-2.d gas/testsuite/gas/tic6x/attr-stack-directive-2.s gas/testsuite/gas/tic6x/attr-wchar-directive-1.d gas/testsuite/gas/tic6x/attr-wchar-directive-1.s gas/testsuite/gas/tic6x/attr-wchar-directive-2.d gas/testsuite/gas/tic6x/attr-wchar-directive-2.s gas/testsuite/gas/tic6x/data-reloc.d gas/testsuite/gas/tic6x/data-reloc.s gas/testsuite/gas/tic6x/dir-junk.d gas/testsuite/gas/tic6x/dir-junk.l gas/testsuite/gas/tic6x/dir-junk.s gas/testsuite/gas/tic6x/dummy.s gas/testsuite/gas/tic6x/empty.s gas/testsuite/gas/tic6x/endian-1.d gas/testsuite/gas/tic6x/endian-2.d gas/testsuite/gas/tic6x/endian-3.d gas/testsuite/gas/tic6x/got-reloc.d gas/testsuite/gas/tic6x/got-reloc.s gas/testsuite/gas/tic6x/insns-atomic.d gas/testsuite/gas/tic6x/insns-atomic.s gas/testsuite/gas/tic6x/insns-bad-1.d gas/testsuite/gas/tic6x/insns-bad-1.l gas/testsuite/gas/tic6x/insns-bad-1.s gas/testsuite/gas/tic6x/insns-bad-2.d gas/testsuite/gas/tic6x/insns-bad-2.l gas/testsuite/gas/tic6x/insns-bad-2.s gas/testsuite/gas/tic6x/insns-c674x-pcrel.d gas/testsuite/gas/tic6x/insns-c674x-pcrel.s gas/testsuite/gas/tic6x/insns-c674x-reloc.d gas/testsuite/gas/tic6x/insns-c674x-reloc.s gas/testsuite/gas/tic6x/insns-c674x-sploop.d gas/testsuite/gas/tic6x/insns-c674x-sploop.s gas/testsuite/gas/tic6x/insns-c674x.d gas/testsuite/gas/tic6x/insns-c674x.s gas/testsuite/gas/tic6x/insns-parallel-be.d gas/testsuite/gas/tic6x/insns-parallel-le.d gas/testsuite/gas/tic6x/insns-parallel-multi.d gas/testsuite/gas/tic6x/insns-parallel-multi.s gas/testsuite/gas/tic6x/insns-parallel.s gas/testsuite/gas/tic6x/insns-predicate.d gas/testsuite/gas/tic6x/insns-predicate.s gas/testsuite/gas/tic6x/insns16-d-unit.d gas/testsuite/gas/tic6x/insns16-d-unit.s gas/testsuite/gas/tic6x/insns16-ddec.d gas/testsuite/gas/tic6x/insns16-ddec.s gas/testsuite/gas/tic6x/insns16-dinc.d gas/testsuite/gas/tic6x/insns16-dinc.s gas/testsuite/gas/tic6x/insns16-dind.d gas/testsuite/gas/tic6x/insns16-dind.s gas/testsuite/gas/tic6x/insns16-doff4.d gas/testsuite/gas/tic6x/insns16-doff4.s gas/testsuite/gas/tic6x/insns16-l-unit.d gas/testsuite/gas/tic6x/insns16-l-unit.s gas/testsuite/gas/tic6x/insns16-lsd-unit.d gas/testsuite/gas/tic6x/insns16-lsd-unit.s gas/testsuite/gas/tic6x/insns16-m-unit.d gas/testsuite/gas/tic6x/insns16-m-unit.s gas/testsuite/gas/tic6x/insns16-s-unit-pcrel.d gas/testsuite/gas/tic6x/insns16-s-unit-pcrel.s gas/testsuite/gas/tic6x/insns16-s-unit.d gas/testsuite/gas/tic6x/insns16-s-unit.s gas/testsuite/gas/tic6x/parallel-bad-1.d gas/testsuite/gas/tic6x/parallel-bad-1.l gas/testsuite/gas/tic6x/parallel-bad-1.s gas/testsuite/gas/tic6x/parallel-bad-2.d gas/testsuite/gas/tic6x/parallel-bad-2.l gas/testsuite/gas/tic6x/parallel-bad-2.s gas/testsuite/gas/tic6x/parallel-bad-3.d gas/testsuite/gas/tic6x/parallel-bad-3.l gas/testsuite/gas/tic6x/parallel-bad-3.s gas/testsuite/gas/tic6x/parallel-bad-4.d gas/testsuite/gas/tic6x/parallel-bad-4.l gas/testsuite/gas/tic6x/parallel-bad-4.s gas/testsuite/gas/tic6x/pcr-relocs-undef.d gas/testsuite/gas/tic6x/pcr-relocs-undef.s gas/testsuite/gas/tic6x/pcr-relocs.d gas/testsuite/gas/tic6x/pcr-relocs.s gas/testsuite/gas/tic6x/predicate-bad-1.d gas/testsuite/gas/tic6x/predicate-bad-1.l gas/testsuite/gas/tic6x/predicate-bad-1.s gas/testsuite/gas/tic6x/predicate-bad-2.d gas/testsuite/gas/tic6x/predicate-bad-2.l gas/testsuite/gas/tic6x/predicate-bad-2.s gas/testsuite/gas/tic6x/predicate-bad-3.d gas/testsuite/gas/tic6x/predicate-bad-3.l gas/testsuite/gas/tic6x/predicate-bad-3.s gas/testsuite/gas/tic6x/reloc-bad-1.d gas/testsuite/gas/tic6x/reloc-bad-1.l gas/testsuite/gas/tic6x/reloc-bad-1.s gas/testsuite/gas/tic6x/reloc-bad-2.d gas/testsuite/gas/tic6x/reloc-bad-2.l gas/testsuite/gas/tic6x/reloc-bad-2.s gas/testsuite/gas/tic6x/reloc-bad-3.d gas/testsuite/gas/tic6x/reloc-bad-3.l gas/testsuite/gas/tic6x/reloc-bad-3.s gas/testsuite/gas/tic6x/reloc-bad-4.d gas/testsuite/gas/tic6x/reloc-bad-4.l gas/testsuite/gas/tic6x/reloc-bad-4.s gas/testsuite/gas/tic6x/reloc-bad-5.d gas/testsuite/gas/tic6x/reloc-bad-5.l gas/testsuite/gas/tic6x/reloc-bad-5.s gas/testsuite/gas/tic6x/reloc-bad-6.d gas/testsuite/gas/tic6x/reloc-bad-6.l gas/testsuite/gas/tic6x/reloc-bad-6.s gas/testsuite/gas/tic6x/resource-func-unit-1.d gas/testsuite/gas/tic6x/resource-func-unit-1.l gas/testsuite/gas/tic6x/resource-func-unit-1.s gas/testsuite/gas/tic6x/resource-func-unit-2.d gas/testsuite/gas/tic6x/resource-func-unit-2.l gas/testsuite/gas/tic6x/resource-func-unit-2.s gas/testsuite/gas/tic6x/scomm-directive-1.d gas/testsuite/gas/tic6x/scomm-directive-1.s gas/testsuite/gas/tic6x/scomm-directive-2.d gas/testsuite/gas/tic6x/scomm-directive-2.s gas/testsuite/gas/tic6x/scomm-directive-3.d gas/testsuite/gas/tic6x/scomm-directive-3.s gas/testsuite/gas/tic6x/scomm-directive-4.d gas/testsuite/gas/tic6x/scomm-directive-4.s gas/testsuite/gas/tic6x/scomm-directive-5.d gas/testsuite/gas/tic6x/scomm-directive-5.s gas/testsuite/gas/tic6x/scomm-directive-6.d gas/testsuite/gas/tic6x/scomm-directive-6.s gas/testsuite/gas/tic6x/scomm-directive-7.d gas/testsuite/gas/tic6x/scomm-directive-7.s gas/testsuite/gas/tic6x/scomm-directive-8.d gas/testsuite/gas/tic6x/scomm-directive-8.s gas/testsuite/gas/tic6x/sploop-bad-1.d gas/testsuite/gas/tic6x/sploop-bad-1.l gas/testsuite/gas/tic6x/sploop-bad-1.s gas/testsuite/gas/tic6x/sploop-bad-2.d gas/testsuite/gas/tic6x/sploop-bad-2.l gas/testsuite/gas/tic6x/sploop-bad-2.s gas/testsuite/gas/tic6x/sploop-bad-3.d gas/testsuite/gas/tic6x/sploop-bad-3.l gas/testsuite/gas/tic6x/sploop-bad-3.s gas/testsuite/gas/tic6x/sploop-bad-4.d gas/testsuite/gas/tic6x/sploop-bad-4.l gas/testsuite/gas/tic6x/sploop-bad-4.s gas/testsuite/gas/tic6x/sploop-bad-5.d gas/testsuite/gas/tic6x/sploop-bad-5.l gas/testsuite/gas/tic6x/sploop-bad-5.s gas/testsuite/gas/tic6x/sploop-bad-6.d gas/testsuite/gas/tic6x/sploop-bad-6.l gas/testsuite/gas/tic6x/sploop-bad-6.s gas/testsuite/gas/tic6x/sploop-bad-7.d gas/testsuite/gas/tic6x/sploop-bad-7.l gas/testsuite/gas/tic6x/sploop-bad-7.s gas/testsuite/gas/tic6x/syntax.d gas/testsuite/gas/tic6x/syntax.s gas/testsuite/gas/tic6x/tic6x.exp gas/testsuite/gas/tic6x/unwind-1.d gas/testsuite/gas/tic6x/unwind-1.s gas/testsuite/gas/tic6x/unwind-2.d gas/testsuite/gas/tic6x/unwind-2.s gas/testsuite/gas/tic6x/unwind-3.d gas/testsuite/gas/tic6x/unwind-3.s gas/testsuite/gas/tic6x/unwind-bad-1.d gas/testsuite/gas/tic6x/unwind-bad-1.l gas/testsuite/gas/tic6x/unwind-bad-1.s gas/testsuite/gas/tic6x/unwind-bad-2.d gas/testsuite/gas/tic6x/unwind-bad-2.l gas/testsuite/gas/tic6x/unwind-bad-2.s gas/testsuite/gas/tilegx/t_insns.d gas/testsuite/gas/tilegx/t_insns.s gas/testsuite/gas/tilegx/tilegx.exp gas/testsuite/gas/tilepro/t_constants.d gas/testsuite/gas/tilepro/t_constants.s gas/testsuite/gas/tilepro/t_insns.d gas/testsuite/gas/tilepro/t_insns.s gas/testsuite/gas/tilepro/tilepro.exp gas/testsuite/gas/v850/arith.s gas/testsuite/gas/v850/basic.exp gas/testsuite/gas/v850/bit.s gas/testsuite/gas/v850/branch.s gas/testsuite/gas/v850/compare.s gas/testsuite/gas/v850/fepsw.s gas/testsuite/gas/v850/hilo.s gas/testsuite/gas/v850/hilo2.s gas/testsuite/gas/v850/jumps.s gas/testsuite/gas/v850/logical.s gas/testsuite/gas/v850/mem.s gas/testsuite/gas/v850/misc.s gas/testsuite/gas/v850/move.s gas/testsuite/gas/v850/range.s gas/testsuite/gas/v850/reloc.s gas/testsuite/gas/v850/split-lo16.d gas/testsuite/gas/v850/split-lo16.s gas/testsuite/gas/v850/v850e1.d gas/testsuite/gas/v850/v850e1.s gas/testsuite/gas/vax/elf-rel.d gas/testsuite/gas/vax/elf-rel.s gas/testsuite/gas/vax/flonum.d gas/testsuite/gas/vax/flonum.s gas/testsuite/gas/vax/quad.s gas/testsuite/gas/vax/quad_elf.s gas/testsuite/gas/vax/vax.exp gas/testsuite/gas/xc16x/add.s gas/testsuite/gas/xc16x/add_test.s gas/testsuite/gas/xc16x/addb.s gas/testsuite/gas/xc16x/addc.s gas/testsuite/gas/xc16x/addcb.s gas/testsuite/gas/xc16x/and.s gas/testsuite/gas/xc16x/andb.s gas/testsuite/gas/xc16x/bfldl.s gas/testsuite/gas/xc16x/bit.s gas/testsuite/gas/xc16x/calla.s gas/testsuite/gas/xc16x/calli.s gas/testsuite/gas/xc16x/cmp.s gas/testsuite/gas/xc16x/cmp_test.s gas/testsuite/gas/xc16x/cmpb.s gas/testsuite/gas/xc16x/cmpi.s gas/testsuite/gas/xc16x/cpl.s gas/testsuite/gas/xc16x/div.s gas/testsuite/gas/xc16x/jmpa.s gas/testsuite/gas/xc16x/jmpi.s gas/testsuite/gas/xc16x/jmpr.s gas/testsuite/gas/xc16x/mov.s gas/testsuite/gas/xc16x/mov_test.s gas/testsuite/gas/xc16x/movb.s gas/testsuite/gas/xc16x/movbs.s gas/testsuite/gas/xc16x/movbz.s gas/testsuite/gas/xc16x/mul.s gas/testsuite/gas/xc16x/neg.s gas/testsuite/gas/xc16x/nop.s gas/testsuite/gas/xc16x/or.s gas/testsuite/gas/xc16x/orb.s gas/testsuite/gas/xc16x/prior.s gas/testsuite/gas/xc16x/pushpop.s gas/testsuite/gas/xc16x/ret.s gas/testsuite/gas/xc16x/scxt.s gas/testsuite/gas/xc16x/shlrol.s gas/testsuite/gas/xc16x/sub.s gas/testsuite/gas/xc16x/sub_test.s gas/testsuite/gas/xc16x/subb.s gas/testsuite/gas/xc16x/subc.s gas/testsuite/gas/xc16x/subcb.s gas/testsuite/gas/xc16x/syscontrol1.s gas/testsuite/gas/xc16x/syscontrol2.s gas/testsuite/gas/xc16x/trap.s gas/testsuite/gas/xc16x/xc16x.exp gas/testsuite/gas/xc16x/xor.s gas/testsuite/gas/xc16x/xorb.s gas/testsuite/gas/xgate/abi-xgate-16-32.d gas/testsuite/gas/xgate/abi-xgate-16-64.d gas/testsuite/gas/xgate/abi-xgate-32-32.d gas/testsuite/gas/xgate/abi-xgate-32-64.d gas/testsuite/gas/xgate/abi.s gas/testsuite/gas/xgate/all_insns.d gas/testsuite/gas/xgate/all_insns.s gas/testsuite/gas/xgate/hilo.d gas/testsuite/gas/xgate/hilo.s gas/testsuite/gas/xgate/insns-dwarf2.d gas/testsuite/gas/xgate/insns.d gas/testsuite/gas/xgate/insns.s gas/testsuite/gas/xgate/xgate.exp gas/testsuite/gas/xstormy16/allinsn.d gas/testsuite/gas/xstormy16/allinsn.exp gas/testsuite/gas/xstormy16/allinsn.s gas/testsuite/gas/xstormy16/allinsn.sh gas/testsuite/gas/xstormy16/gcc.d gas/testsuite/gas/xstormy16/gcc.s gas/testsuite/gas/xstormy16/gcc.sh gas/testsuite/gas/xstormy16/reloc-1.d gas/testsuite/gas/xstormy16/reloc-1.s gas/testsuite/gas/xstormy16/reloc-2.d gas/testsuite/gas/xstormy16/reloc-2.s gas/testsuite/gas/xtensa/all.exp gas/testsuite/gas/xtensa/entry_align.s gas/testsuite/gas/xtensa/entry_misalign.s gas/testsuite/gas/xtensa/entry_misalign2.s gas/testsuite/gas/xtensa/err-pcrel.s gas/testsuite/gas/xtensa/j_too_far.s gas/testsuite/gas/xtensa/jlong.d gas/testsuite/gas/xtensa/jlong.s gas/testsuite/gas/xtensa/loop_align.s gas/testsuite/gas/xtensa/loop_misalign.s gas/testsuite/gas/xtensa/pcrel.d gas/testsuite/gas/xtensa/pcrel.s gas/testsuite/gas/xtensa/short_branch_offset.d gas/testsuite/gas/xtensa/short_branch_offset.s gas/testsuite/gas/xtensa/weak-call.d gas/testsuite/gas/xtensa/weak-call.s gas/testsuite/gas/xtensa/xtensa-err.exp gas/testsuite/gas/z80/arith.d gas/testsuite/gas/z80/arith.s gas/testsuite/gas/z80/atend.d gas/testsuite/gas/z80/atend.s gas/testsuite/gas/z80/bit.d gas/testsuite/gas/z80/bit.s gas/testsuite/gas/z80/block.d gas/testsuite/gas/z80/block.s gas/testsuite/gas/z80/branch.d gas/testsuite/gas/z80/branch.s gas/testsuite/gas/z80/djnz-backf.s gas/testsuite/gas/z80/equ.d gas/testsuite/gas/z80/equ.s gas/testsuite/gas/z80/ill_op.s gas/testsuite/gas/z80/inout.d gas/testsuite/gas/z80/inout.s gas/testsuite/gas/z80/jr-backf.s gas/testsuite/gas/z80/jr-forwf.s gas/testsuite/gas/z80/ld-group.d gas/testsuite/gas/z80/ld-group.s gas/testsuite/gas/z80/misc.d gas/testsuite/gas/z80/misc.s gas/testsuite/gas/z80/offset.d gas/testsuite/gas/z80/offset.s gas/testsuite/gas/z80/quotes.d gas/testsuite/gas/z80/quotes.s gas/testsuite/gas/z80/redef.d gas/testsuite/gas/z80/redef.s gas/testsuite/gas/z80/rotate.d gas/testsuite/gas/z80/rotate.s gas/testsuite/gas/z80/suffix.d gas/testsuite/gas/z80/suffix.s gas/testsuite/gas/z80/z80.exp gas/testsuite/gas/z8k/calr-backf.s gas/testsuite/gas/z8k/calr-forwf.s gas/testsuite/gas/z8k/calr.d gas/testsuite/gas/z8k/calr.s gas/testsuite/gas/z8k/ctrl-names.d gas/testsuite/gas/z8k/ctrl-names.s gas/testsuite/gas/z8k/dec.s gas/testsuite/gas/z8k/decbf.s gas/testsuite/gas/z8k/decf.s gas/testsuite/gas/z8k/djnz-backf.s gas/testsuite/gas/z8k/djnz-backf2.s gas/testsuite/gas/z8k/djnz.d gas/testsuite/gas/z8k/djnz.s gas/testsuite/gas/z8k/eidi.s gas/testsuite/gas/z8k/eidif.s gas/testsuite/gas/z8k/inc.s gas/testsuite/gas/z8k/incbf.s gas/testsuite/gas/z8k/incf.s gas/testsuite/gas/z8k/inout.d gas/testsuite/gas/z8k/inout.s gas/testsuite/gas/z8k/jmp-cc.d gas/testsuite/gas/z8k/jmp-cc.s gas/testsuite/gas/z8k/jr-back.d gas/testsuite/gas/z8k/jr-back.s gas/testsuite/gas/z8k/jr-backf.s gas/testsuite/gas/z8k/jr-forw.d gas/testsuite/gas/z8k/jr-forw.s gas/testsuite/gas/z8k/jr-forwf.s gas/testsuite/gas/z8k/ldk.s gas/testsuite/gas/z8k/ldkf.s gas/testsuite/gas/z8k/reglabel.d gas/testsuite/gas/z8k/reglabel.s gas/testsuite/gas/z8k/ret-cc.d gas/testsuite/gas/z8k/ret-cc.s gas/testsuite/gas/z8k/translate-ops.d gas/testsuite/gas/z8k/translate-ops.s gas/testsuite/gas/z8k/z8k.exp gas/testsuite/lib/doboth gas/testsuite/lib/doobjcmp gas/testsuite/lib/dostriptest gas/testsuite/lib/dotest gas/testsuite/lib/dounsreloc gas/testsuite/lib/dounssym gas/testsuite/lib/gas-defs.exp gas/testsuite/lib/gas-dg.exp gas/write.c gas/write.h gold/ChangeLog gold/Makefile.am gold/Makefile.in gold/NEWS gold/README gold/TODO gold/aclocal.m4 gold/archive.cc gold/archive.h gold/arm-reloc-property.cc gold/arm-reloc-property.h gold/arm-reloc.def gold/arm.cc gold/attributes.cc gold/attributes.h gold/binary.cc gold/binary.h gold/common.cc gold/common.h gold/compressed_output.cc gold/compressed_output.h gold/config.in gold/configure gold/configure.ac gold/configure.tgt gold/copy-relocs.cc gold/copy-relocs.h gold/cref.cc gold/cref.h gold/debug.h gold/defstd.cc gold/defstd.h gold/descriptors.cc gold/descriptors.h gold/dirsearch.cc gold/dirsearch.h gold/dwarf_reader.cc gold/dwarf_reader.h gold/dwp.cc gold/dwp.h gold/dynobj.cc gold/dynobj.h gold/ehframe.cc gold/ehframe.h gold/errors.cc gold/errors.h gold/expression.cc gold/ffsll.c gold/fileread.cc gold/fileread.h gold/freebsd.h gold/ftruncate.c gold/gc.cc gold/gc.h gold/gdb-index.cc gold/gdb-index.h gold/gold-threads.cc gold/gold-threads.h gold/gold.cc gold/gold.h gold/i386.cc gold/icf.cc gold/icf.h gold/incremental-dump.cc gold/incremental.cc gold/incremental.h gold/int_encoding.cc gold/int_encoding.h gold/layout.cc gold/layout.h gold/main.cc gold/mapfile.cc gold/mapfile.h gold/merge.cc gold/merge.h gold/mremap.c gold/nacl.cc gold/nacl.h gold/object.cc gold/object.h gold/options.cc gold/options.h gold/output.cc gold/output.h gold/parameters.cc gold/parameters.h gold/plugin.cc gold/plugin.h gold/po/Make-in gold/po/POTFILES.in gold/po/es.po gold/po/fi.po gold/po/gold.pot gold/po/id.po gold/po/it.po gold/po/vi.po gold/powerpc.cc gold/pread.c gold/readsyms.cc gold/readsyms.h gold/reduced_debug_output.cc gold/reduced_debug_output.h gold/reloc-types.h gold/reloc.cc gold/reloc.h gold/resolve.cc gold/script-c.h gold/script-sections.cc gold/script-sections.h gold/script.cc gold/script.h gold/sparc.cc gold/stringpool.cc gold/stringpool.h gold/symtab.cc gold/symtab.h gold/system.h gold/target-reloc.h gold/target-select.cc gold/target-select.h gold/target.cc gold/target.h gold/testsuite/Makefile.am gold/testsuite/Makefile.in gold/testsuite/arm_abs_global.s gold/testsuite/arm_abs_global.sh gold/testsuite/arm_abs_lib.s gold/testsuite/arm_attr_merge.sh gold/testsuite/arm_attr_merge_6a.s gold/testsuite/arm_attr_merge_6b.s gold/testsuite/arm_attr_merge_7a.s gold/testsuite/arm_attr_merge_7b.s gold/testsuite/arm_bl_in_range.s gold/testsuite/arm_bl_out_of_range.s gold/testsuite/arm_branch_in_range.sh gold/testsuite/arm_branch_out_of_range.sh gold/testsuite/arm_branch_range.t gold/testsuite/arm_cortex_a8.sh gold/testsuite/arm_cortex_a8_b.s gold/testsuite/arm_cortex_a8_b_cond.s gold/testsuite/arm_cortex_a8_b_local.s gold/testsuite/arm_cortex_a8_bl.s gold/testsuite/arm_cortex_a8_blx.s gold/testsuite/arm_cortex_a8_local.s gold/testsuite/arm_cortex_a8_local_reloc.s gold/testsuite/arm_exidx_test.s gold/testsuite/arm_exidx_test.sh gold/testsuite/arm_farcall_arm_arm.s gold/testsuite/arm_farcall_arm_arm.sh gold/testsuite/arm_farcall_arm_thumb.s gold/testsuite/arm_farcall_arm_thumb.sh gold/testsuite/arm_farcall_thumb_arm.s gold/testsuite/arm_farcall_thumb_arm.sh gold/testsuite/arm_farcall_thumb_thumb.s gold/testsuite/arm_farcall_thumb_thumb.sh gold/testsuite/arm_fix_1176.s gold/testsuite/arm_fix_1176.sh gold/testsuite/arm_fix_v4bx.s gold/testsuite/arm_fix_v4bx.sh gold/testsuite/arm_thm_jump11.s gold/testsuite/arm_thm_jump11.t gold/testsuite/arm_thm_jump8.s gold/testsuite/arm_thm_jump8.t gold/testsuite/arm_unaligned_reloc.s gold/testsuite/arm_unaligned_reloc.sh gold/testsuite/basic_test.cc gold/testsuite/binary.in gold/testsuite/binary_test.cc gold/testsuite/binary_unittest.cc gold/testsuite/common_test_1.c gold/testsuite/common_test_1_v1.c gold/testsuite/common_test_1_v2.c gold/testsuite/common_test_2.c gold/testsuite/common_test_3.c gold/testsuite/constructor_test.cc gold/testsuite/copy_test.cc gold/testsuite/copy_test_1.cc gold/testsuite/copy_test_2.cc gold/testsuite/copy_test_v1.cc gold/testsuite/debug_msg.cc gold/testsuite/debug_msg.sh gold/testsuite/discard_locals_relocatable_test.c gold/testsuite/discard_locals_test.c gold/testsuite/discard_locals_test.sh gold/testsuite/dwp_test.h gold/testsuite/dwp_test_1.cc gold/testsuite/dwp_test_1.s gold/testsuite/dwp_test_1.sh gold/testsuite/dwp_test_1b.cc gold/testsuite/dwp_test_1b.s gold/testsuite/dwp_test_2.cc gold/testsuite/dwp_test_2.s gold/testsuite/dwp_test_2.sh gold/testsuite/dwp_test_main.cc gold/testsuite/dwp_test_main.s gold/testsuite/dyn_weak_ref.sh gold/testsuite/dyn_weak_ref_1.c gold/testsuite/dyn_weak_ref_2.c gold/testsuite/dynamic_list.sh gold/testsuite/dynamic_list.t gold/testsuite/exception_test.h gold/testsuite/exception_test_1.cc gold/testsuite/exception_test_2.cc gold/testsuite/exception_test_main.cc gold/testsuite/exclude_libs_test.c gold/testsuite/exclude_libs_test.sh gold/testsuite/exclude_libs_test_1.c gold/testsuite/exclude_libs_test_2.c gold/testsuite/exclude_libs_test_3.c gold/testsuite/final_layout.cc gold/testsuite/final_layout.sh gold/testsuite/gc_comdat_test.sh gold/testsuite/gc_comdat_test_1.cc gold/testsuite/gc_comdat_test_2.cc gold/testsuite/gc_orphan_section_test.cc gold/testsuite/gc_orphan_section_test.sh gold/testsuite/gc_tls_test.cc gold/testsuite/gc_tls_test.sh gold/testsuite/gdb_index_test.cc gold/testsuite/gdb_index_test_1.sh gold/testsuite/gdb_index_test_2.sh gold/testsuite/gdb_index_test_3.c gold/testsuite/gdb_index_test_3.sh gold/testsuite/gdb_index_test_4.sh gold/testsuite/gdb_index_test_comm.sh gold/testsuite/hidden_test.sh gold/testsuite/hidden_test_1.c gold/testsuite/hidden_test_main.c gold/testsuite/icf_keep_unique_test.cc gold/testsuite/icf_keep_unique_test.sh gold/testsuite/icf_preemptible_functions_test.cc gold/testsuite/icf_preemptible_functions_test.sh gold/testsuite/icf_safe_so_test.cc gold/testsuite/icf_safe_so_test.sh gold/testsuite/icf_safe_test.cc gold/testsuite/icf_safe_test.sh gold/testsuite/icf_sht_rel_addend_test.sh gold/testsuite/icf_sht_rel_addend_test_1.cc gold/testsuite/icf_sht_rel_addend_test_2.cc gold/testsuite/icf_string_merge_test.cc gold/testsuite/icf_string_merge_test.sh gold/testsuite/icf_test.cc gold/testsuite/icf_test.sh gold/testsuite/icf_virtual_function_folding_test.cc gold/testsuite/ifunc-sel.h gold/testsuite/ifuncdep2.c gold/testsuite/ifuncmain1.c gold/testsuite/ifuncmain1vis.c gold/testsuite/ifuncmain2.c gold/testsuite/ifuncmain3.c gold/testsuite/ifuncmain4.c gold/testsuite/ifuncmain5.c gold/testsuite/ifuncmain6pie.c gold/testsuite/ifuncmain7.c gold/testsuite/ifuncmod1.c gold/testsuite/ifuncmod3.c gold/testsuite/ifuncmod5.c gold/testsuite/ifuncmod6.c gold/testsuite/ifuncvar1.c gold/testsuite/ifuncvar2.c gold/testsuite/ifuncvar3.c gold/testsuite/incr_comdat_test_1.cc gold/testsuite/incr_comdat_test_2_v1.cc gold/testsuite/incr_comdat_test_2_v2.cc gold/testsuite/incr_comdat_test_2_v3.cc gold/testsuite/incremental_test.sh gold/testsuite/incremental_test_1.c gold/testsuite/incremental_test_2.c gold/testsuite/initpri1.c gold/testsuite/initpri2.c gold/testsuite/initpri3.c gold/testsuite/justsyms.t gold/testsuite/justsyms_1.cc gold/testsuite/justsyms_2.cc gold/testsuite/justsyms_exec.c gold/testsuite/justsyms_lib.c gold/testsuite/large.c gold/testsuite/large_symbol_alignment.cc gold/testsuite/leb128_unittest.cc gold/testsuite/many_sections_test.cc gold/testsuite/memory_test.s gold/testsuite/memory_test.sh gold/testsuite/memory_test.t gold/testsuite/merge_string_literals.sh gold/testsuite/merge_string_literals_1.c gold/testsuite/merge_string_literals_2.c gold/testsuite/missing_key_func.cc gold/testsuite/missing_key_func.sh gold/testsuite/no_version_test.c gold/testsuite/no_version_test.sh gold/testsuite/object_unittest.cc gold/testsuite/odr_header1.h gold/testsuite/odr_header2.h gold/testsuite/odr_violation1.cc gold/testsuite/odr_violation2.cc gold/testsuite/plugin_common_test_1.c gold/testsuite/plugin_common_test_2.c gold/testsuite/plugin_final_layout.cc gold/testsuite/plugin_final_layout.sh gold/testsuite/plugin_section_order.c gold/testsuite/plugin_test.c gold/testsuite/plugin_test_1.sh gold/testsuite/plugin_test_2.sh gold/testsuite/plugin_test_3.sh gold/testsuite/plugin_test_4.sh gold/testsuite/plugin_test_6.sh gold/testsuite/plugin_test_7.sh gold/testsuite/plugin_test_7_1.c gold/testsuite/plugin_test_7_2.c gold/testsuite/plugin_test_tls.sh gold/testsuite/pr12826.sh gold/testsuite/pr12826_1.s gold/testsuite/pr12826_2.s gold/testsuite/pr14265.c gold/testsuite/pr14265.sh gold/testsuite/pr14265.t gold/testsuite/protected_1.cc gold/testsuite/protected_2.cc gold/testsuite/protected_3.cc gold/testsuite/protected_4.cc gold/testsuite/protected_main_1.cc gold/testsuite/protected_main_2.cc gold/testsuite/protected_main_3.cc gold/testsuite/relro_script_test.t gold/testsuite/relro_test.cc gold/testsuite/relro_test.sh gold/testsuite/relro_test_main.cc gold/testsuite/retain_symbols_file_test.sh gold/testsuite/script_test_1.cc gold/testsuite/script_test_1.t gold/testsuite/script_test_10.s gold/testsuite/script_test_10.sh gold/testsuite/script_test_10.t gold/testsuite/script_test_11.c gold/testsuite/script_test_11.t gold/testsuite/script_test_2.cc gold/testsuite/script_test_2.t gold/testsuite/script_test_2a.cc gold/testsuite/script_test_2b.cc gold/testsuite/script_test_3.sh gold/testsuite/script_test_3.t gold/testsuite/script_test_4.sh gold/testsuite/script_test_4.t gold/testsuite/script_test_5.cc gold/testsuite/script_test_5.sh gold/testsuite/script_test_5.t gold/testsuite/script_test_6.sh gold/testsuite/script_test_6.t gold/testsuite/script_test_7.sh gold/testsuite/script_test_7.t gold/testsuite/script_test_8.sh gold/testsuite/script_test_9.cc gold/testsuite/script_test_9.sh gold/testsuite/script_test_9.t gold/testsuite/searched_file_test.cc gold/testsuite/searched_file_test_lib.cc gold/testsuite/section_sorting_name.cc gold/testsuite/section_sorting_name.sh gold/testsuite/split_i386.sh gold/testsuite/split_i386_1.s gold/testsuite/split_i386_2.s gold/testsuite/split_i386_3.s gold/testsuite/split_i386_4.s gold/testsuite/split_i386_n.s gold/testsuite/split_x86_64.sh gold/testsuite/split_x86_64_1.s gold/testsuite/split_x86_64_2.s gold/testsuite/split_x86_64_3.s gold/testsuite/split_x86_64_4.s gold/testsuite/split_x86_64_n.s gold/testsuite/start_lib_test_1.c gold/testsuite/start_lib_test_2.c gold/testsuite/start_lib_test_3.c gold/testsuite/start_lib_test_main.c gold/testsuite/strong_ref_weak_def.sh gold/testsuite/strong_ref_weak_def_1.c gold/testsuite/strong_ref_weak_def_2.c gold/testsuite/test.cc gold/testsuite/test.h gold/testsuite/testfile.cc gold/testsuite/testfile.h gold/testsuite/testmain.cc gold/testsuite/text_section_grouping.cc gold/testsuite/text_section_grouping.sh gold/testsuite/thin_archive_main.cc gold/testsuite/thin_archive_test_1.cc gold/testsuite/thin_archive_test_2.cc gold/testsuite/thin_archive_test_3.cc gold/testsuite/thin_archive_test_4.cc gold/testsuite/thumb2_branch_range.t gold/testsuite/thumb_bl_in_range.s gold/testsuite/thumb_bl_out_of_range.s gold/testsuite/thumb_bl_out_of_range_local.s gold/testsuite/thumb_blx_in_range.s gold/testsuite/thumb_blx_out_of_range.s gold/testsuite/thumb_branch_range.t gold/testsuite/tls_test.cc gold/testsuite/tls_test.h gold/testsuite/tls_test_c.c gold/testsuite/tls_test_file2.cc gold/testsuite/tls_test_main.cc gold/testsuite/two_file_shared.sh gold/testsuite/two_file_test.h gold/testsuite/two_file_test_1.cc gold/testsuite/two_file_test_1_v1.cc gold/testsuite/two_file_test_1b.cc gold/testsuite/two_file_test_1b_v1.cc gold/testsuite/two_file_test_2.cc gold/testsuite/two_file_test_2_tls.cc gold/testsuite/two_file_test_2_v1.cc gold/testsuite/two_file_test_main.cc gold/testsuite/two_file_test_tls.cc gold/testsuite/undef_symbol.cc gold/testsuite/undef_symbol.sh gold/testsuite/undef_symbol_main.cc gold/testsuite/ver_matching_def.cc gold/testsuite/ver_matching_test.sh gold/testsuite/ver_test.h gold/testsuite/ver_test_1.cc gold/testsuite/ver_test_1.sh gold/testsuite/ver_test_10.script gold/testsuite/ver_test_10.sh gold/testsuite/ver_test_2.cc gold/testsuite/ver_test_2.script gold/testsuite/ver_test_2.sh gold/testsuite/ver_test_3.cc gold/testsuite/ver_test_4.cc gold/testsuite/ver_test_4.script gold/testsuite/ver_test_4.sh gold/testsuite/ver_test_5.cc gold/testsuite/ver_test_5.script gold/testsuite/ver_test_5.sh gold/testsuite/ver_test_6.c gold/testsuite/ver_test_7.cc gold/testsuite/ver_test_7.sh gold/testsuite/ver_test_8.script gold/testsuite/ver_test_9.cc gold/testsuite/ver_test_main.cc gold/testsuite/ver_test_main_2.cc gold/testsuite/version_script.map gold/testsuite/weak_alias_test.script gold/testsuite/weak_alias_test_1.cc gold/testsuite/weak_alias_test_2.cc gold/testsuite/weak_alias_test_3.cc gold/testsuite/weak_alias_test_4.cc gold/testsuite/weak_alias_test_5.cc gold/testsuite/weak_alias_test_main.cc gold/testsuite/weak_plt.sh gold/testsuite/weak_plt_main.cc gold/testsuite/weak_plt_shared.cc gold/testsuite/weak_test.cc gold/testsuite/weak_undef.h gold/testsuite/weak_undef_file1.cc gold/testsuite/weak_undef_file2.cc gold/testsuite/weak_undef_test.cc gold/tilegx.cc gold/timer.cc gold/timer.h gold/tls.h gold/token.h gold/version.cc gold/workqueue-internal.h gold/workqueue-threads.cc gold/workqueue.cc gold/workqueue.h gold/x86_64.cc gold/yyscript.y gprof/.gdbinit gprof/.gitignore gprof/ChangeLog gprof/ChangeLog-2004 gprof/ChangeLog-2005 gprof/ChangeLog-2006 gprof/ChangeLog-2007 gprof/ChangeLog-2008 gprof/ChangeLog-2009 gprof/ChangeLog-2010 gprof/ChangeLog-2011 gprof/ChangeLog-2012 gprof/ChangeLog-9203 gprof/MAINTAINERS gprof/Makefile.am gprof/Makefile.in gprof/README gprof/TEST gprof/TODO gprof/aarch64.c gprof/aclocal.m4 gprof/alpha.c gprof/basic_blocks.c gprof/basic_blocks.h gprof/bb_exit_func.c gprof/bbconv.pl gprof/bsd_callg_bl.m gprof/call_graph.c gprof/call_graph.h gprof/cg_arcs.c gprof/cg_arcs.h gprof/cg_dfn.c gprof/cg_dfn.h gprof/cg_print.c gprof/cg_print.h gprof/configure gprof/configure.in gprof/corefile.c gprof/corefile.h gprof/dep-in.sed gprof/fdl.texi gprof/flat_bl.m gprof/fsf_callg_bl.m gprof/gconfig.in gprof/gen-c-prog.awk gprof/gmon.h gprof/gmon_io.c gprof/gmon_io.h gprof/gmon_out.h gprof/gprof.c gprof/gprof.h gprof/gprof.texi gprof/hertz.c gprof/hertz.h gprof/hist.c gprof/hist.h gprof/i386.c gprof/mips.c gprof/po/.cvsignore gprof/po/Make-in gprof/po/POTFILES.in gprof/po/bg.po gprof/po/da.po gprof/po/de.po gprof/po/eo.po gprof/po/es.po gprof/po/fi.po gprof/po/fr.po gprof/po/ga.po gprof/po/gprof.pot gprof/po/id.po gprof/po/it.po gprof/po/ja.po gprof/po/ms.po gprof/po/nl.po gprof/po/pt_BR.po gprof/po/ro.po gprof/po/ru.po gprof/po/rw.po gprof/po/sr.po gprof/po/sv.po gprof/po/tr.po gprof/po/uk.po gprof/po/vi.po gprof/search_list.c gprof/search_list.h gprof/source.c gprof/source.h gprof/sparc.c gprof/stamp-h.in gprof/sym_ids.c gprof/sym_ids.h gprof/symtab.c gprof/symtab.h gprof/tahoe.c gprof/utils.c gprof/utils.h gprof/vax.c intl/ChangeLog intl/Makefile.in intl/README intl/VERSION intl/aclocal.m4 intl/bindtextdom.c intl/config.h.in intl/config.intl.in intl/configure intl/configure.ac intl/dcgettext.c intl/dcigettext.c intl/dcngettext.c intl/dgettext.c intl/dngettext.c intl/eval-plural.h intl/explodename.c intl/finddomain.c intl/gettext.c intl/gettextP.h intl/gmo.h intl/hash-string.h intl/intl-compat.c intl/l10nflist.c intl/libgnuintl.h intl/loadinfo.h intl/loadmsgcat.c intl/localcharset.c intl/localcharset.h intl/locale.alias intl/localealias.c intl/localename.c intl/log.c intl/ngettext.c intl/osdep.c intl/plural-exp.c intl/plural-exp.h intl/plural.c intl/plural.y intl/relocatable.c intl/relocatable.h intl/textdomain.c ld/.gitignore ld/ChangeLog ld/ChangeLog-0001 ld/ChangeLog-0203 ld/ChangeLog-2004 ld/ChangeLog-2005 ld/ChangeLog-2006 ld/ChangeLog-2007 ld/ChangeLog-2008 ld/ChangeLog-2009 ld/ChangeLog-2010 ld/ChangeLog-2011 ld/ChangeLog-2012 ld/ChangeLog-9197 ld/ChangeLog-9899 ld/MAINTAINERS ld/Makefile.am ld/Makefile.in ld/NEWS ld/README ld/TODO ld/aclocal.m4 ld/config.in ld/configure ld/configure.host ld/configure.in ld/configure.tgt ld/deffile.h ld/deffilep.y ld/dep-in.sed ld/elf-hints-local.h ld/emulparams/README ld/emulparams/aarch64elf.sh ld/emulparams/aarch64elf32.sh ld/emulparams/aarch64elf32b.sh ld/emulparams/aarch64elfb.sh ld/emulparams/aarch64linux.sh ld/emulparams/aarch64linuxb.sh ld/emulparams/aix5ppc.sh ld/emulparams/aix5rs6.sh ld/emulparams/aixppc.sh ld/emulparams/aixrs6.sh ld/emulparams/alpha.sh ld/emulparams/alphavms.sh ld/emulparams/arcelf.sh ld/emulparams/arm_epoc_pe.sh ld/emulparams/arm_wince_pe.sh ld/emulparams/armaoutb.sh ld/emulparams/armaoutl.sh ld/emulparams/armcoff.sh ld/emulparams/armelf.sh ld/emulparams/armelf_fbsd.sh ld/emulparams/armelf_linux.sh ld/emulparams/armelf_linux_eabi.sh ld/emulparams/armelf_nacl.sh ld/emulparams/armelf_nbsd.sh ld/emulparams/armelf_vxworks.sh ld/emulparams/armelfb.sh ld/emulparams/armelfb_linux.sh ld/emulparams/armelfb_linux_eabi.sh ld/emulparams/armelfb_nacl.sh ld/emulparams/armelfb_nbsd.sh ld/emulparams/armnbsd.sh ld/emulparams/armnto.sh ld/emulparams/armpe.sh ld/emulparams/armsymbian.sh ld/emulparams/avr1.sh ld/emulparams/avr2.sh ld/emulparams/avr25.sh ld/emulparams/avr3.sh ld/emulparams/avr31.sh ld/emulparams/avr35.sh ld/emulparams/avr4.sh ld/emulparams/avr5.sh ld/emulparams/avr51.sh ld/emulparams/avr6.sh ld/emulparams/avrxmega1.sh ld/emulparams/avrxmega2.sh ld/emulparams/avrxmega3.sh ld/emulparams/avrxmega4.sh ld/emulparams/avrxmega5.sh ld/emulparams/avrxmega6.sh ld/emulparams/avrxmega7.sh ld/emulparams/bfin.sh ld/emulparams/coff_i860.sh ld/emulparams/coff_sparc.sh ld/emulparams/crisaout.sh ld/emulparams/criself.sh ld/emulparams/crislinux.sh ld/emulparams/d10velf.sh ld/emulparams/d30v_e.sh ld/emulparams/d30v_o.sh ld/emulparams/d30velf.sh ld/emulparams/delta68.sh ld/emulparams/elf32_dlx.sh ld/emulparams/elf32_i860.sh ld/emulparams/elf32_i960.sh ld/emulparams/elf32_sparc.sh ld/emulparams/elf32_sparc_sol2.sh ld/emulparams/elf32_sparc_vxworks.sh ld/emulparams/elf32_spu.sh ld/emulparams/elf32_tic6x_be.sh ld/emulparams/elf32_tic6x_elf_be.sh ld/emulparams/elf32_tic6x_elf_le.sh ld/emulparams/elf32_tic6x_le.sh ld/emulparams/elf32_tic6x_linux_be.sh ld/emulparams/elf32_tic6x_linux_le.sh ld/emulparams/elf32_x86_64.sh ld/emulparams/elf32_x86_64_nacl.sh ld/emulparams/elf32am33lin.sh ld/emulparams/elf32b4300.sh ld/emulparams/elf32bfinfd.sh ld/emulparams/elf32bmip.sh ld/emulparams/elf32bmipn32-defs.sh ld/emulparams/elf32bmipn32.sh ld/emulparams/elf32bsmip.sh ld/emulparams/elf32btsmip.sh ld/emulparams/elf32btsmip_fbsd.sh ld/emulparams/elf32btsmipn32.sh ld/emulparams/elf32btsmipn32_fbsd.sh ld/emulparams/elf32cr16.sh ld/emulparams/elf32cr16c.sh ld/emulparams/elf32crx.sh ld/emulparams/elf32ebmip.sh ld/emulparams/elf32ebmipvxworks.sh ld/emulparams/elf32elmip.sh ld/emulparams/elf32elmipvxworks.sh ld/emulparams/elf32epiphany.sh ld/emulparams/elf32epiphany_4x4.sh ld/emulparams/elf32fr30.sh ld/emulparams/elf32frv.sh ld/emulparams/elf32frvfd.sh ld/emulparams/elf32i370.sh ld/emulparams/elf32ip2k.sh ld/emulparams/elf32iq10.sh ld/emulparams/elf32iq2000.sh ld/emulparams/elf32l4300.sh ld/emulparams/elf32lm32.sh ld/emulparams/elf32lm32fd.sh ld/emulparams/elf32lmip.sh ld/emulparams/elf32lppc.sh ld/emulparams/elf32lppclinux.sh ld/emulparams/elf32lppcnto.sh ld/emulparams/elf32lppcsim.sh ld/emulparams/elf32lr5900.sh ld/emulparams/elf32lr5900n32.sh ld/emulparams/elf32lsmip.sh ld/emulparams/elf32ltsmip.sh ld/emulparams/elf32ltsmip_fbsd.sh ld/emulparams/elf32ltsmipn32.sh ld/emulparams/elf32ltsmipn32_fbsd.sh ld/emulparams/elf32m32c.sh ld/emulparams/elf32mb_linux.sh ld/emulparams/elf32mbel_linux.sh ld/emulparams/elf32mcore.sh ld/emulparams/elf32mep.sh ld/emulparams/elf32metag.sh ld/emulparams/elf32microblaze.sh ld/emulparams/elf32microblazeel.sh ld/emulparams/elf32mipswindiss.sh ld/emulparams/elf32moxie.sh ld/emulparams/elf32mt.sh ld/emulparams/elf32openrisc.sh ld/emulparams/elf32ppc.sh ld/emulparams/elf32ppc_fbsd.sh ld/emulparams/elf32ppccommon.sh ld/emulparams/elf32ppclinux.sh ld/emulparams/elf32ppcnto.sh ld/emulparams/elf32ppcsim.sh ld/emulparams/elf32ppcvxworks.sh ld/emulparams/elf32ppcwindiss.sh ld/emulparams/elf32rl78.sh ld/emulparams/elf32rx.sh ld/emulparams/elf32tilegx.sh ld/emulparams/elf32tilegx_be.sh ld/emulparams/elf32tilepro.sh ld/emulparams/elf32vax.sh ld/emulparams/elf32xc16x.sh ld/emulparams/elf32xc16xl.sh ld/emulparams/elf32xc16xs.sh ld/emulparams/elf32xstormy16.sh ld/emulparams/elf32xtensa.sh ld/emulparams/elf64_aix.sh ld/emulparams/elf64_ia64.sh ld/emulparams/elf64_ia64_fbsd.sh ld/emulparams/elf64_ia64_vms.sh ld/emulparams/elf64_s390.sh ld/emulparams/elf64_sparc.sh ld/emulparams/elf64_sparc_fbsd.sh ld/emulparams/elf64_sparc_sol2.sh ld/emulparams/elf64alpha.sh ld/emulparams/elf64alpha_fbsd.sh ld/emulparams/elf64alpha_nbsd.sh ld/emulparams/elf64bmip-defs.sh ld/emulparams/elf64bmip.sh ld/emulparams/elf64btsmip.sh ld/emulparams/elf64btsmip_fbsd.sh ld/emulparams/elf64hppa.sh ld/emulparams/elf64lppc.sh ld/emulparams/elf64ltsmip.sh ld/emulparams/elf64ltsmip_fbsd.sh ld/emulparams/elf64mmix.sh ld/emulparams/elf64ppc.sh ld/emulparams/elf64ppc_fbsd.sh ld/emulparams/elf64rdos.sh ld/emulparams/elf64tilegx.sh ld/emulparams/elf64tilegx_be.sh ld/emulparams/elf_fbsd.sh ld/emulparams/elf_i386.sh ld/emulparams/elf_i386_be.sh ld/emulparams/elf_i386_chaos.sh ld/emulparams/elf_i386_fbsd.sh ld/emulparams/elf_i386_ldso.sh ld/emulparams/elf_i386_nacl.sh ld/emulparams/elf_i386_sol2.sh ld/emulparams/elf_i386_vxworks.sh ld/emulparams/elf_k1om.sh ld/emulparams/elf_k1om_fbsd.sh ld/emulparams/elf_l1om.sh ld/emulparams/elf_l1om_fbsd.sh ld/emulparams/elf_nacl.sh ld/emulparams/elf_s390.sh ld/emulparams/elf_x86_64.sh ld/emulparams/elf_x86_64_fbsd.sh ld/emulparams/elf_x86_64_nacl.sh ld/emulparams/elf_x86_64_sol2.sh ld/emulparams/gld960.sh ld/emulparams/gld960coff.sh ld/emulparams/h8300.sh ld/emulparams/h8300elf.sh ld/emulparams/h8300h.sh ld/emulparams/h8300helf.sh ld/emulparams/h8300hn.sh ld/emulparams/h8300hnelf.sh ld/emulparams/h8300s.sh ld/emulparams/h8300self.sh ld/emulparams/h8300sn.sh ld/emulparams/h8300snelf.sh ld/emulparams/h8300sx.sh ld/emulparams/h8300sxelf.sh ld/emulparams/h8300sxn.sh ld/emulparams/h8300sxnelf.sh ld/emulparams/h8500.sh ld/emulparams/h8500b.sh ld/emulparams/h8500c.sh ld/emulparams/h8500m.sh ld/emulparams/h8500s.sh ld/emulparams/hp300bsd.sh ld/emulparams/hp3hpux.sh ld/emulparams/hppa64linux.sh ld/emulparams/hppaelf.sh ld/emulparams/hppalinux.sh ld/emulparams/hppanbsd.sh ld/emulparams/hppaobsd.sh ld/emulparams/i386aout.sh ld/emulparams/i386beos.sh ld/emulparams/i386bsd.sh ld/emulparams/i386coff.sh ld/emulparams/i386go32.sh ld/emulparams/i386linux.sh ld/emulparams/i386lynx.sh ld/emulparams/i386mach.sh ld/emulparams/i386moss.sh ld/emulparams/i386msdos.sh ld/emulparams/i386nbsd.sh ld/emulparams/i386nto.sh ld/emulparams/i386nw.sh ld/emulparams/i386pe.sh ld/emulparams/i386pe_posix.sh ld/emulparams/i386pep.sh ld/emulparams/lnk960.sh ld/emulparams/m32relf.sh ld/emulparams/m32relf_linux.sh ld/emulparams/m32rlelf.sh ld/emulparams/m32rlelf_linux.sh ld/emulparams/m68hc11elf.sh ld/emulparams/m68hc11elfb.sh ld/emulparams/m68hc12elf.sh ld/emulparams/m68hc12elfb.sh ld/emulparams/m68k4knbsd.sh ld/emulparams/m68kaout.sh ld/emulparams/m68kaux.sh ld/emulparams/m68kcoff.sh ld/emulparams/m68kelf.sh ld/emulparams/m68kelfnbsd.sh ld/emulparams/m68klinux.sh ld/emulparams/m68knbsd.sh ld/emulparams/m68kpsos.sh ld/emulparams/m88kbcs.sh ld/emulparams/mcorepe.sh ld/emulparams/mmo.sh ld/emulparams/mn10200.sh ld/emulparams/mn10300.sh ld/emulparams/msp430all.sh ld/emulparams/news.sh ld/emulparams/nios2elf.sh ld/emulparams/ns32knbsd.sh ld/emulparams/or32.sh ld/emulparams/or32elf.sh ld/emulparams/pc532macha.sh ld/emulparams/pdp11.sh ld/emulparams/pjelf.sh ld/emulparams/pjlelf.sh ld/emulparams/plt_unwind.sh ld/emulparams/ppclynx.sh ld/emulparams/ppcmacos.sh ld/emulparams/ppcnw.sh ld/emulparams/ppcpe.sh ld/emulparams/riscix.sh ld/emulparams/scoreelf.sh ld/emulparams/sh.sh ld/emulparams/shelf.sh ld/emulparams/shelf32.sh ld/emulparams/shelf32_linux.sh ld/emulparams/shelf32_nbsd.sh ld/emulparams/shelf64.sh ld/emulparams/shelf64_nbsd.sh ld/emulparams/shelf_fd.sh ld/emulparams/shelf_linux.sh ld/emulparams/shelf_nbsd.sh ld/emulparams/shelf_nto.sh ld/emulparams/shelf_uclinux.sh ld/emulparams/shelf_vxworks.sh ld/emulparams/shl.sh ld/emulparams/shlelf.sh ld/emulparams/shlelf32.sh ld/emulparams/shlelf32_linux.sh ld/emulparams/shlelf32_nbsd.sh ld/emulparams/shlelf64.sh ld/emulparams/shlelf64_nbsd.sh ld/emulparams/shlelf_fd.sh ld/emulparams/shlelf_linux.sh ld/emulparams/shlelf_nbsd.sh ld/emulparams/shlelf_nto.sh ld/emulparams/shlelf_vxworks.sh ld/emulparams/shlsymbian.sh ld/emulparams/shpe.sh ld/emulparams/solaris2.sh ld/emulparams/sparcaout.sh ld/emulparams/sparclinux.sh ld/emulparams/sparcnbsd.sh ld/emulparams/st2000.sh ld/emulparams/sun3.sh ld/emulparams/sun4.sh ld/emulparams/tic30aout.sh ld/emulparams/tic30coff.sh ld/emulparams/tic3xcoff.sh ld/emulparams/tic3xcoff_onchip.sh ld/emulparams/tic4xcoff.sh ld/emulparams/tic54xcoff.sh ld/emulparams/tic80coff.sh ld/emulparams/v850.sh ld/emulparams/v850_rh850.sh ld/emulparams/vanilla.sh ld/emulparams/vax.sh ld/emulparams/vaxnbsd.sh ld/emulparams/vsta.sh ld/emulparams/vxworks.sh ld/emulparams/w65.sh ld/emulparams/xgateelf.sh ld/emulparams/z80.sh ld/emulparams/z8001.sh ld/emulparams/z8002.sh ld/emultempl/README ld/emultempl/aarch64elf.em ld/emultempl/aix.em ld/emultempl/alphaelf.em ld/emultempl/armcoff.em ld/emultempl/armelf.em ld/emultempl/astring.sed ld/emultempl/avrelf.em ld/emultempl/beos.em ld/emultempl/bfin.em ld/emultempl/cr16elf.em ld/emultempl/crxelf.em ld/emultempl/elf-generic.em ld/emultempl/elf32.em ld/emultempl/epiphanyelf_4x4.em ld/emultempl/genelf.em ld/emultempl/generic.em ld/emultempl/gld960.em ld/emultempl/gld960c.em ld/emultempl/hppaelf.em ld/emultempl/ia64elf.em ld/emultempl/irix.em ld/emultempl/linux.em ld/emultempl/lnk960.em ld/emultempl/m68hc1xelf.em ld/emultempl/m68kcoff.em ld/emultempl/m68kelf.em ld/emultempl/metagelf.em ld/emultempl/mipself.em ld/emultempl/mmix-elfnmmo.em ld/emultempl/mmixelf.em ld/emultempl/mmo.em ld/emultempl/needrelax.em ld/emultempl/netbsd.em ld/emultempl/ostring.sed ld/emultempl/pe.em ld/emultempl/pep.em ld/emultempl/ppc32elf.em ld/emultempl/ppc64elf.em ld/emultempl/rxelf.em ld/emultempl/scoreelf.em ld/emultempl/sh64elf.em ld/emultempl/solaris2.em ld/emultempl/spu_icache.S ld/emultempl/spu_icache.o_c ld/emultempl/spu_ovl.S ld/emultempl/spu_ovl.o_c ld/emultempl/spuelf.em ld/emultempl/sunos.em ld/emultempl/tic6xdsbt.em ld/emultempl/ticoff.em ld/emultempl/vanilla.em ld/emultempl/vms.em ld/emultempl/vxworks.em ld/emultempl/xtensaelf.em ld/emultempl/z80.em ld/fdl.texi ld/gen-doc.texi ld/genscrba.sh ld/genscripts.sh ld/h8-doc.texi ld/ld.h ld/ld.texinfo ld/ldcref.c ld/ldctor.c ld/ldctor.h ld/ldemul.c ld/ldemul.h ld/ldexp.c ld/ldexp.h ld/ldfile.c ld/ldfile.h ld/ldgram.y ld/ldint.texinfo ld/ldlang.c ld/ldlang.h ld/ldlex-wrapper.c ld/ldlex.h ld/ldlex.l ld/ldmain.c ld/ldmain.h ld/ldmisc.c ld/ldmisc.h ld/ldver.c ld/ldver.h ld/ldwrite.c ld/ldwrite.h ld/lexsup.c ld/mri.c ld/mri.h ld/pe-dll.c ld/pe-dll.h ld/pep-dll.c ld/pep-dll.h ld/plugin.c ld/plugin.h ld/po/.cvsignore ld/po/Make-in ld/po/POTFILES.in ld/po/bg.po ld/po/da.po ld/po/es.po ld/po/fi.po ld/po/fr.po ld/po/ga.po ld/po/id.po ld/po/it.po ld/po/ja.po ld/po/ld.pot ld/po/sv.po ld/po/tr.po ld/po/uk.po ld/po/vi.po ld/po/zh_CN.po ld/po/zh_TW.po ld/scripttempl/DWARF.sc ld/scripttempl/README ld/scripttempl/aix.sc ld/scripttempl/alpha.sc ld/scripttempl/alphavms.sc ld/scripttempl/aout.sc ld/scripttempl/armaout.sc ld/scripttempl/armbpabi.sc ld/scripttempl/armcoff.sc ld/scripttempl/avr.sc ld/scripttempl/crisaout.sc ld/scripttempl/delta68.sc ld/scripttempl/dlx.sc ld/scripttempl/elf.sc ld/scripttempl/elf32cr16.sc ld/scripttempl/elf32cr16c.sc ld/scripttempl/elf32crx.sc ld/scripttempl/elf32msp430.sc ld/scripttempl/elf32msp430_3.sc ld/scripttempl/elf32sh-symbian.sc ld/scripttempl/elf32xc16x.sc ld/scripttempl/elf32xc16xl.sc ld/scripttempl/elf32xc16xs.sc ld/scripttempl/elf64hppa.sc ld/scripttempl/elf_chaos.sc ld/scripttempl/elfd10v.sc ld/scripttempl/elfd30v.sc ld/scripttempl/elfi370.sc ld/scripttempl/elfm68hc11.sc ld/scripttempl/elfm68hc12.sc ld/scripttempl/elfmicroblaze.sc ld/scripttempl/elfxgate.sc ld/scripttempl/elfxtensa.sc ld/scripttempl/epiphany_4x4.sc ld/scripttempl/epocpe.sc ld/scripttempl/h8300.sc ld/scripttempl/h8300h.sc ld/scripttempl/h8300hn.sc ld/scripttempl/h8300s.sc ld/scripttempl/h8300sn.sc ld/scripttempl/h8300sx.sc ld/scripttempl/h8300sxn.sc ld/scripttempl/h8500.sc ld/scripttempl/h8500b.sc ld/scripttempl/h8500c.sc ld/scripttempl/h8500m.sc ld/scripttempl/h8500s.sc ld/scripttempl/hppaelf.sc ld/scripttempl/i386beos.sc ld/scripttempl/i386coff.sc ld/scripttempl/i386go32.sc ld/scripttempl/i386msdos.sc ld/scripttempl/i860coff.sc ld/scripttempl/i960.sc ld/scripttempl/ia64vms.sc ld/scripttempl/ip2k.sc ld/scripttempl/iq2000.sc ld/scripttempl/m68kaux.sc ld/scripttempl/m68kcoff.sc ld/scripttempl/m88kbcs.sc ld/scripttempl/mcorepe.sc ld/scripttempl/mep.sc ld/scripttempl/mips.sc ld/scripttempl/mipsbsd.sc ld/scripttempl/mmo.sc ld/scripttempl/moxie.sc ld/scripttempl/nw.sc ld/scripttempl/or32.sc ld/scripttempl/pe.sc ld/scripttempl/pep.sc ld/scripttempl/pj.sc ld/scripttempl/ppcpe.sc ld/scripttempl/psos.sc ld/scripttempl/riscix.sc ld/scripttempl/sh.sc ld/scripttempl/sparccoff.sc ld/scripttempl/st2000.sc ld/scripttempl/tic30aout.sc ld/scripttempl/tic30coff.sc ld/scripttempl/tic4xcoff.sc ld/scripttempl/tic54xcoff.sc ld/scripttempl/tic80coff.sc ld/scripttempl/v850.sc ld/scripttempl/v850_rh850.sc ld/scripttempl/vanilla.sc ld/scripttempl/w65.sc ld/scripttempl/xstormy16.sc ld/scripttempl/z80.sc ld/scripttempl/z8000.sc ld/stamp-h.in ld/sysdep.h ld/testplug.c ld/testsuite/ChangeLog ld/testsuite/ChangeLog-2004 ld/testsuite/ChangeLog-2005 ld/testsuite/ChangeLog-2006 ld/testsuite/ChangeLog-2007 ld/testsuite/ChangeLog-2008 ld/testsuite/ChangeLog-2009 ld/testsuite/ChangeLog-2010 ld/testsuite/ChangeLog-2011 ld/testsuite/ChangeLog-2012 ld/testsuite/ChangeLog-9303 ld/testsuite/config/default.exp ld/testsuite/ld-aarch64/aarch64-elf.exp ld/testsuite/ld-aarch64/aarch64.ld ld/testsuite/ld-aarch64/eh-frame-bar.s ld/testsuite/ld-aarch64/eh-frame-foo.s ld/testsuite/ld-aarch64/eh-frame.d ld/testsuite/ld-aarch64/emit-relocs-257-be.d ld/testsuite/ld-aarch64/emit-relocs-257.d ld/testsuite/ld-aarch64/emit-relocs-257.s ld/testsuite/ld-aarch64/emit-relocs-260-be.d ld/testsuite/ld-aarch64/emit-relocs-260.d ld/testsuite/ld-aarch64/emit-relocs-260.s ld/testsuite/ld-aarch64/emit-relocs-262.d ld/testsuite/ld-aarch64/emit-relocs-262.s ld/testsuite/ld-aarch64/emit-relocs-263.d ld/testsuite/ld-aarch64/emit-relocs-263.s ld/testsuite/ld-aarch64/emit-relocs-264.d ld/testsuite/ld-aarch64/emit-relocs-264.s ld/testsuite/ld-aarch64/emit-relocs-265.d ld/testsuite/ld-aarch64/emit-relocs-265.s ld/testsuite/ld-aarch64/emit-relocs-266.d ld/testsuite/ld-aarch64/emit-relocs-266.s ld/testsuite/ld-aarch64/emit-relocs-267.d ld/testsuite/ld-aarch64/emit-relocs-267.s ld/testsuite/ld-aarch64/emit-relocs-268.d ld/testsuite/ld-aarch64/emit-relocs-268.s ld/testsuite/ld-aarch64/emit-relocs-269.d ld/testsuite/ld-aarch64/emit-relocs-269.s ld/testsuite/ld-aarch64/emit-relocs-270-bad.d ld/testsuite/ld-aarch64/emit-relocs-270.d ld/testsuite/ld-aarch64/emit-relocs-270.s ld/testsuite/ld-aarch64/emit-relocs-271.d ld/testsuite/ld-aarch64/emit-relocs-271.s ld/testsuite/ld-aarch64/emit-relocs-272.d ld/testsuite/ld-aarch64/emit-relocs-272.s ld/testsuite/ld-aarch64/emit-relocs-273.d ld/testsuite/ld-aarch64/emit-relocs-273.s ld/testsuite/ld-aarch64/emit-relocs-274.d ld/testsuite/ld-aarch64/emit-relocs-274.s ld/testsuite/ld-aarch64/emit-relocs-275.d ld/testsuite/ld-aarch64/emit-relocs-275.s ld/testsuite/ld-aarch64/emit-relocs-276.d ld/testsuite/ld-aarch64/emit-relocs-276.s ld/testsuite/ld-aarch64/emit-relocs-277.d ld/testsuite/ld-aarch64/emit-relocs-277.s ld/testsuite/ld-aarch64/emit-relocs-278.d ld/testsuite/ld-aarch64/emit-relocs-278.s ld/testsuite/ld-aarch64/emit-relocs-279-bad.d ld/testsuite/ld-aarch64/emit-relocs-279.d ld/testsuite/ld-aarch64/emit-relocs-279.s ld/testsuite/ld-aarch64/emit-relocs-280.d ld/testsuite/ld-aarch64/emit-relocs-280.s ld/testsuite/ld-aarch64/emit-relocs-282.d ld/testsuite/ld-aarch64/emit-relocs-282.s ld/testsuite/ld-aarch64/emit-relocs-283.d ld/testsuite/ld-aarch64/emit-relocs-283.s ld/testsuite/ld-aarch64/emit-relocs-284.d ld/testsuite/ld-aarch64/emit-relocs-284.s ld/testsuite/ld-aarch64/emit-relocs-285.d ld/testsuite/ld-aarch64/emit-relocs-285.s ld/testsuite/ld-aarch64/emit-relocs-286-bad.d ld/testsuite/ld-aarch64/emit-relocs-286.d ld/testsuite/ld-aarch64/emit-relocs-286.s ld/testsuite/ld-aarch64/emit-relocs-287.d ld/testsuite/ld-aarch64/emit-relocs-287.s ld/testsuite/ld-aarch64/emit-relocs-299.d ld/testsuite/ld-aarch64/emit-relocs-299.s ld/testsuite/ld-aarch64/emit-relocs-309-low-bad.d ld/testsuite/ld-aarch64/emit-relocs-309-low.d ld/testsuite/ld-aarch64/emit-relocs-309-up-bad.d ld/testsuite/ld-aarch64/emit-relocs-309-up.d ld/testsuite/ld-aarch64/emit-relocs-309.s ld/testsuite/ld-aarch64/emit-relocs-311.d ld/testsuite/ld-aarch64/emit-relocs-311.s ld/testsuite/ld-aarch64/emit-relocs-312.d ld/testsuite/ld-aarch64/emit-relocs-312.s ld/testsuite/ld-aarch64/emit-relocs1.s ld/testsuite/ld-aarch64/farcall-b-none-function.d ld/testsuite/ld-aarch64/farcall-b-none-function.s ld/testsuite/ld-aarch64/farcall-b.d ld/testsuite/ld-aarch64/farcall-b.s ld/testsuite/ld-aarch64/farcall-back.d ld/testsuite/ld-aarch64/farcall-back.s ld/testsuite/ld-aarch64/farcall-bl-none-function.d ld/testsuite/ld-aarch64/farcall-bl-none-function.s ld/testsuite/ld-aarch64/farcall-bl.d ld/testsuite/ld-aarch64/farcall-bl.s ld/testsuite/ld-aarch64/farcall-section.d ld/testsuite/ld-aarch64/farcall-section.s ld/testsuite/ld-aarch64/gc-got-relocs.d ld/testsuite/ld-aarch64/gc-plt-hidden.s ld/testsuite/ld-aarch64/gc-plt-main.s ld/testsuite/ld-aarch64/gc-plt-relocs.d ld/testsuite/ld-aarch64/gc-plt1.s ld/testsuite/ld-aarch64/gc-plt2.s ld/testsuite/ld-aarch64/gc-relocs-257-dyn.d ld/testsuite/ld-aarch64/gc-relocs-257.d ld/testsuite/ld-aarch64/gc-relocs-257.s ld/testsuite/ld-aarch64/gc-relocs-309.s ld/testsuite/ld-aarch64/gc-relocs-311.s ld/testsuite/ld-aarch64/gc-relocs-312.s ld/testsuite/ld-aarch64/gc-relocs-tlsdesc.s ld/testsuite/ld-aarch64/gc-relocs-tlsgd.s ld/testsuite/ld-aarch64/gc-relocs-tlsie.s ld/testsuite/ld-aarch64/gc-relocs-tlsle.s ld/testsuite/ld-aarch64/gc-start.s ld/testsuite/ld-aarch64/gc-tls-relocs.d ld/testsuite/ld-aarch64/limit-b.d ld/testsuite/ld-aarch64/limit-b.s ld/testsuite/ld-aarch64/limit-bl.d ld/testsuite/ld-aarch64/limit-bl.s ld/testsuite/ld-aarch64/relocs.ld ld/testsuite/ld-aarch64/tls-desc-ie.d ld/testsuite/ld-aarch64/tls-desc-ie.s ld/testsuite/ld-aarch64/tls-relax-all.d ld/testsuite/ld-aarch64/tls-relax-all.s ld/testsuite/ld-aarch64/tls-relax-gd-ie.d ld/testsuite/ld-aarch64/tls-relax-gd-ie.s ld/testsuite/ld-aarch64/tls-relax-gd-le.d ld/testsuite/ld-aarch64/tls-relax-gd-le.s ld/testsuite/ld-aarch64/tls-relax-gdesc-ie-2.d ld/testsuite/ld-aarch64/tls-relax-gdesc-ie-2.s ld/testsuite/ld-aarch64/tls-relax-gdesc-ie.d ld/testsuite/ld-aarch64/tls-relax-gdesc-ie.s ld/testsuite/ld-aarch64/tls-relax-gdesc-le-2.d ld/testsuite/ld-aarch64/tls-relax-gdesc-le-2.s ld/testsuite/ld-aarch64/tls-relax-gdesc-le.d ld/testsuite/ld-aarch64/tls-relax-gdesc-le.s ld/testsuite/ld-aarch64/tls-relax-ie-le-2.d ld/testsuite/ld-aarch64/tls-relax-ie-le-2.s ld/testsuite/ld-aarch64/tls-relax-ie-le-3.d ld/testsuite/ld-aarch64/tls-relax-ie-le-3.s ld/testsuite/ld-aarch64/tls-relax-ie-le.d ld/testsuite/ld-aarch64/tls-relax-ie-le.s ld/testsuite/ld-aarch64/tlsle-symbol-offset.d ld/testsuite/ld-aarch64/tlsle-symbol-offset.s ld/testsuite/ld-aarch64/weak-undefined.d ld/testsuite/ld-aarch64/weak-undefined.s ld/testsuite/ld-alpha/align.s ld/testsuite/ld-alpha/alpha.exp ld/testsuite/ld-alpha/emptygot.nm ld/testsuite/ld-alpha/emptygot.s ld/testsuite/ld-alpha/tlsbin.dd ld/testsuite/ld-alpha/tlsbin.rd ld/testsuite/ld-alpha/tlsbin.s ld/testsuite/ld-alpha/tlsbin.sd ld/testsuite/ld-alpha/tlsbin.td ld/testsuite/ld-alpha/tlsbinpic.s ld/testsuite/ld-alpha/tlsbinr.dd ld/testsuite/ld-alpha/tlsbinr.rd ld/testsuite/ld-alpha/tlsbinr.sd ld/testsuite/ld-alpha/tlsg.s ld/testsuite/ld-alpha/tlsg.sd ld/testsuite/ld-alpha/tlslib.s ld/testsuite/ld-alpha/tlspic.dd ld/testsuite/ld-alpha/tlspic.rd ld/testsuite/ld-alpha/tlspic.sd ld/testsuite/ld-alpha/tlspic.td ld/testsuite/ld-alpha/tlspic1.s ld/testsuite/ld-alpha/tlspic2.s ld/testsuite/ld-arm/abs-call-1.d ld/testsuite/ld-arm/abs-call-1.s ld/testsuite/ld-arm/arch-v6.s ld/testsuite/ld-arm/arch-v6k.s ld/testsuite/ld-arm/arch-v6t2.s ld/testsuite/ld-arm/arm-app-abs32.d ld/testsuite/ld-arm/arm-app-abs32.r ld/testsuite/ld-arm/arm-app-abs32.s ld/testsuite/ld-arm/arm-app-movw.s ld/testsuite/ld-arm/arm-app.d ld/testsuite/ld-arm/arm-app.r ld/testsuite/ld-arm/arm-app.s ld/testsuite/ld-arm/arm-be8.d ld/testsuite/ld-arm/arm-be8.s ld/testsuite/ld-arm/arm-call.d ld/testsuite/ld-arm/arm-call1.s ld/testsuite/ld-arm/arm-call2.s ld/testsuite/ld-arm/arm-dyn.ld ld/testsuite/ld-arm/arm-elf.exp ld/testsuite/ld-arm/arm-export-class.rd ld/testsuite/ld-arm/arm-export-class.xd ld/testsuite/ld-arm/arm-lib-plt-2.dd ld/testsuite/ld-arm/arm-lib-plt-2.rd ld/testsuite/ld-arm/arm-lib-plt-2a.s ld/testsuite/ld-arm/arm-lib-plt-2b.s ld/testsuite/ld-arm/arm-lib-plt32.d ld/testsuite/ld-arm/arm-lib-plt32.r ld/testsuite/ld-arm/arm-lib-plt32.s ld/testsuite/ld-arm/arm-lib.d ld/testsuite/ld-arm/arm-lib.ld ld/testsuite/ld-arm/arm-lib.r ld/testsuite/ld-arm/arm-lib.s ld/testsuite/ld-arm/arm-movwt.d ld/testsuite/ld-arm/arm-movwt.s ld/testsuite/ld-arm/arm-no-rel-plt.ld ld/testsuite/ld-arm/arm-no-rel-plt.out ld/testsuite/ld-arm/arm-pic-veneer.d ld/testsuite/ld-arm/arm-pic-veneer.s ld/testsuite/ld-arm/arm-rel31.d ld/testsuite/ld-arm/arm-rel31.s ld/testsuite/ld-arm/arm-rel32.d ld/testsuite/ld-arm/arm-rel32.s ld/testsuite/ld-arm/arm-static-app.d ld/testsuite/ld-arm/arm-static-app.r ld/testsuite/ld-arm/arm-static-app.s ld/testsuite/ld-arm/arm-target1-abs.d ld/testsuite/ld-arm/arm-target1-rel.d ld/testsuite/ld-arm/arm-target1.s ld/testsuite/ld-arm/arm-target2-abs.d ld/testsuite/ld-arm/arm-target2-got-rel.d ld/testsuite/ld-arm/arm-target2-rel.d ld/testsuite/ld-arm/arm-target2.s ld/testsuite/ld-arm/arm.ld ld/testsuite/ld-arm/armthumb-lib.d ld/testsuite/ld-arm/armthumb-lib.sym ld/testsuite/ld-arm/armv4-bx.d ld/testsuite/ld-arm/armv4-bx.s ld/testsuite/ld-arm/attr-merge-2.attr ld/testsuite/ld-arm/attr-merge-2a.s ld/testsuite/ld-arm/attr-merge-2b.s ld/testsuite/ld-arm/attr-merge-3.attr ld/testsuite/ld-arm/attr-merge-3a.s ld/testsuite/ld-arm/attr-merge-3b.s ld/testsuite/ld-arm/attr-merge-4.attr ld/testsuite/ld-arm/attr-merge-4a.s ld/testsuite/ld-arm/attr-merge-4b.s ld/testsuite/ld-arm/attr-merge-5.attr ld/testsuite/ld-arm/attr-merge-5.s ld/testsuite/ld-arm/attr-merge-6.attr ld/testsuite/ld-arm/attr-merge-6a.s ld/testsuite/ld-arm/attr-merge-6b.s ld/testsuite/ld-arm/attr-merge-7.attr ld/testsuite/ld-arm/attr-merge-7a.s ld/testsuite/ld-arm/attr-merge-7b.s ld/testsuite/ld-arm/attr-merge-arch-1.attr ld/testsuite/ld-arm/attr-merge-arch-2.attr ld/testsuite/ld-arm/attr-merge-div-0.s ld/testsuite/ld-arm/attr-merge-div-00.d ld/testsuite/ld-arm/attr-merge-div-01-m3.d ld/testsuite/ld-arm/attr-merge-div-01.d ld/testsuite/ld-arm/attr-merge-div-02.d ld/testsuite/ld-arm/attr-merge-div-1.s ld/testsuite/ld-arm/attr-merge-div-10-m3.d ld/testsuite/ld-arm/attr-merge-div-10.d ld/testsuite/ld-arm/attr-merge-div-11.d ld/testsuite/ld-arm/attr-merge-div-12.d ld/testsuite/ld-arm/attr-merge-div-120.d ld/testsuite/ld-arm/attr-merge-div-2.s ld/testsuite/ld-arm/attr-merge-div-20.d ld/testsuite/ld-arm/attr-merge-div-21.d ld/testsuite/ld-arm/attr-merge-div-22.d ld/testsuite/ld-arm/attr-merge-incompatible.d ld/testsuite/ld-arm/attr-merge-incompatiblea.s ld/testsuite/ld-arm/attr-merge-incompatibleb.s ld/testsuite/ld-arm/attr-merge-unknown-1.d ld/testsuite/ld-arm/attr-merge-unknown-1.s ld/testsuite/ld-arm/attr-merge-unknown-2.d ld/testsuite/ld-arm/attr-merge-unknown-2.s ld/testsuite/ld-arm/attr-merge-unknown-2r.d ld/testsuite/ld-arm/attr-merge-unknown-3.d ld/testsuite/ld-arm/attr-merge-vfp-1.d ld/testsuite/ld-arm/attr-merge-vfp-1r.d ld/testsuite/ld-arm/attr-merge-vfp-2.d ld/testsuite/ld-arm/attr-merge-vfp-2.s ld/testsuite/ld-arm/attr-merge-vfp-2r.d ld/testsuite/ld-arm/attr-merge-vfp-3-d16.s ld/testsuite/ld-arm/attr-merge-vfp-3.d ld/testsuite/ld-arm/attr-merge-vfp-3.s ld/testsuite/ld-arm/attr-merge-vfp-3r.d ld/testsuite/ld-arm/attr-merge-vfp-4-d16.s ld/testsuite/ld-arm/attr-merge-vfp-4.d ld/testsuite/ld-arm/attr-merge-vfp-4.s ld/testsuite/ld-arm/attr-merge-vfp-4r.d ld/testsuite/ld-arm/attr-merge-vfp-5.d ld/testsuite/ld-arm/attr-merge-vfp-5r.d ld/testsuite/ld-arm/attr-merge-vfp-6.d ld/testsuite/ld-arm/attr-merge-vfp-6r.d ld/testsuite/ld-arm/attr-merge-vfp-7.d ld/testsuite/ld-arm/attr-merge-vfp-7r.d ld/testsuite/ld-arm/attr-merge-vfp-armv8-hard.s ld/testsuite/ld-arm/attr-merge-vfp-armv8.s ld/testsuite/ld-arm/attr-merge-vfpv3xd.s ld/testsuite/ld-arm/attr-merge-wchar-0.s ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d ld/testsuite/ld-arm/attr-merge-wchar-00.d ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d ld/testsuite/ld-arm/attr-merge-wchar-02.d ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d ld/testsuite/ld-arm/attr-merge-wchar-04.d ld/testsuite/ld-arm/attr-merge-wchar-2.s ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d ld/testsuite/ld-arm/attr-merge-wchar-20.d ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d ld/testsuite/ld-arm/attr-merge-wchar-22.d ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d ld/testsuite/ld-arm/attr-merge-wchar-24.d ld/testsuite/ld-arm/attr-merge-wchar-4.s ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d ld/testsuite/ld-arm/attr-merge-wchar-40.d ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d ld/testsuite/ld-arm/attr-merge-wchar-42.d ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d ld/testsuite/ld-arm/attr-merge-wchar-44.d ld/testsuite/ld-arm/attr-merge.attr ld/testsuite/ld-arm/attr-merge.s ld/testsuite/ld-arm/blank.s ld/testsuite/ld-arm/branch-lks-sym.ld ld/testsuite/ld-arm/callweak-2.d ld/testsuite/ld-arm/callweak-2.s ld/testsuite/ld-arm/callweak.d ld/testsuite/ld-arm/callweak.s ld/testsuite/ld-arm/cortex-a8-arm-target.s ld/testsuite/ld-arm/cortex-a8-far-1.s ld/testsuite/ld-arm/cortex-a8-far-2.s ld/testsuite/ld-arm/cortex-a8-far-3.s ld/testsuite/ld-arm/cortex-a8-far.d ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d ld/testsuite/ld-arm/cortex-a8-fix-b-plt.s ld/testsuite/ld-arm/cortex-a8-fix-b-rel-arm.d ld/testsuite/ld-arm/cortex-a8-fix-b-rel-thumb.d ld/testsuite/ld-arm/cortex-a8-fix-b-rel.s ld/testsuite/ld-arm/cortex-a8-fix-b.d ld/testsuite/ld-arm/cortex-a8-fix-b.s ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.s ld/testsuite/ld-arm/cortex-a8-fix-bcc-rel-thumb.d ld/testsuite/ld-arm/cortex-a8-fix-bcc-rel.s ld/testsuite/ld-arm/cortex-a8-fix-bcc.d ld/testsuite/ld-arm/cortex-a8-fix-bcc.s ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.d ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.s ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-arm.d ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-thumb.d ld/testsuite/ld-arm/cortex-a8-fix-bl-rel.s ld/testsuite/ld-arm/cortex-a8-fix-bl.d ld/testsuite/ld-arm/cortex-a8-fix-bl.s ld/testsuite/ld-arm/cortex-a8-fix-blx-bcond.d ld/testsuite/ld-arm/cortex-a8-fix-blx-bcond.s ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.d ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.s ld/testsuite/ld-arm/cortex-a8-fix-blx-rel-arm.d ld/testsuite/ld-arm/cortex-a8-fix-blx-rel-thumb.d ld/testsuite/ld-arm/cortex-a8-fix-blx-rel.s ld/testsuite/ld-arm/cortex-a8-fix-blx.d ld/testsuite/ld-arm/cortex-a8-fix-blx.s ld/testsuite/ld-arm/cortex-a8-fix-hdr.d ld/testsuite/ld-arm/cortex-a8-fix-hdr.s ld/testsuite/ld-arm/cortex-a8-fix-hdr.t ld/testsuite/ld-arm/cortex-a8-fix-plt.ld ld/testsuite/ld-arm/cortex-a8-thumb-target.s ld/testsuite/ld-arm/data-only-map.d ld/testsuite/ld-arm/data-only-map.ld ld/testsuite/ld-arm/data-only-map.s ld/testsuite/ld-arm/discard-unwind.ld ld/testsuite/ld-arm/eabi-hard-float.d ld/testsuite/ld-arm/eabi-hard-float.s ld/testsuite/ld-arm/eabi-soft-float-ABI4.d ld/testsuite/ld-arm/eabi-soft-float-r.d ld/testsuite/ld-arm/eabi-soft-float.d ld/testsuite/ld-arm/eabi-soft-float.s ld/testsuite/ld-arm/emit-relocs1-vxworks.d ld/testsuite/ld-arm/emit-relocs1.d ld/testsuite/ld-arm/emit-relocs1.s ld/testsuite/ld-arm/exec-got-1.d ld/testsuite/ld-arm/exec-got-1a.s ld/testsuite/ld-arm/exec-got-1b.s ld/testsuite/ld-arm/export-class.exp ld/testsuite/ld-arm/farcall-arm-arm-pic-veneer.d ld/testsuite/ld-arm/farcall-arm-arm.d ld/testsuite/ld-arm/farcall-arm-arm.s ld/testsuite/ld-arm/farcall-arm-nacl-pic.d ld/testsuite/ld-arm/farcall-arm-nacl.d ld/testsuite/ld-arm/farcall-arm-thumb-blx-pic-veneer.d ld/testsuite/ld-arm/farcall-arm-thumb-blx.d ld/testsuite/ld-arm/farcall-arm-thumb-pic-veneer.d ld/testsuite/ld-arm/farcall-arm-thumb.d ld/testsuite/ld-arm/farcall-arm-thumb.s ld/testsuite/ld-arm/farcall-data-nacl.d ld/testsuite/ld-arm/farcall-data.d ld/testsuite/ld-arm/farcall-data.s ld/testsuite/ld-arm/farcall-group-limit.d ld/testsuite/ld-arm/farcall-group-size2.d ld/testsuite/ld-arm/farcall-group.d ld/testsuite/ld-arm/farcall-group.s ld/testsuite/ld-arm/farcall-group2.s ld/testsuite/ld-arm/farcall-group3.s ld/testsuite/ld-arm/farcall-group4.s ld/testsuite/ld-arm/farcall-mix.d ld/testsuite/ld-arm/farcall-mix.s ld/testsuite/ld-arm/farcall-mix2.d ld/testsuite/ld-arm/farcall-mix2.s ld/testsuite/ld-arm/farcall-mixed-app-v5.d ld/testsuite/ld-arm/farcall-mixed-app.d ld/testsuite/ld-arm/farcall-mixed-app.r ld/testsuite/ld-arm/farcall-mixed-app.s ld/testsuite/ld-arm/farcall-mixed-app.sym ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d ld/testsuite/ld-arm/farcall-mixed-lib.d ld/testsuite/ld-arm/farcall-mixed-lib.r ld/testsuite/ld-arm/farcall-mixed-lib1.s ld/testsuite/ld-arm/farcall-mixed-lib2.s ld/testsuite/ld-arm/farcall-section.d ld/testsuite/ld-arm/farcall-section.s ld/testsuite/ld-arm/farcall-thumb-arm-blx-pic-veneer.d ld/testsuite/ld-arm/farcall-thumb-arm-blx.d ld/testsuite/ld-arm/farcall-thumb-arm-pic-veneer.d ld/testsuite/ld-arm/farcall-thumb-arm-short.d ld/testsuite/ld-arm/farcall-thumb-arm-short.s ld/testsuite/ld-arm/farcall-thumb-arm.d ld/testsuite/ld-arm/farcall-thumb-arm.s ld/testsuite/ld-arm/farcall-thumb-thumb-blx-pic-veneer.d ld/testsuite/ld-arm/farcall-thumb-thumb-blx.d ld/testsuite/ld-arm/farcall-thumb-thumb-m-pic-veneer.d ld/testsuite/ld-arm/farcall-thumb-thumb-m.d ld/testsuite/ld-arm/farcall-thumb-thumb-pic-veneer.d ld/testsuite/ld-arm/farcall-thumb-thumb.d ld/testsuite/ld-arm/farcall-thumb-thumb.s ld/testsuite/ld-arm/fix-arm1176-off.d ld/testsuite/ld-arm/fix-arm1176-on.d ld/testsuite/ld-arm/fix-arm1176.s ld/testsuite/ld-arm/gc-hidden-1.d ld/testsuite/ld-arm/gc-thumb-lib.s ld/testsuite/ld-arm/gc-thumb.d ld/testsuite/ld-arm/gc-thumb.s ld/testsuite/ld-arm/gc-unwind.d ld/testsuite/ld-arm/gc-unwind.s ld/testsuite/ld-arm/gcdfn.s ld/testsuite/ld-arm/group-relocs-alu-bad-2.d ld/testsuite/ld-arm/group-relocs-alu-bad-2.s ld/testsuite/ld-arm/group-relocs-alu-bad.d ld/testsuite/ld-arm/group-relocs-alu-bad.s ld/testsuite/ld-arm/group-relocs-ldc-bad-2.d ld/testsuite/ld-arm/group-relocs-ldc-bad-2.s ld/testsuite/ld-arm/group-relocs-ldc-bad.d ld/testsuite/ld-arm/group-relocs-ldc-bad.s ld/testsuite/ld-arm/group-relocs-ldr-bad-2.d ld/testsuite/ld-arm/group-relocs-ldr-bad-2.s ld/testsuite/ld-arm/group-relocs-ldr-bad.d ld/testsuite/ld-arm/group-relocs-ldr-bad.s ld/testsuite/ld-arm/group-relocs-ldrs-bad-2.d ld/testsuite/ld-arm/group-relocs-ldrs-bad-2.s ld/testsuite/ld-arm/group-relocs-ldrs-bad.d ld/testsuite/ld-arm/group-relocs-ldrs-bad.s ld/testsuite/ld-arm/group-relocs.d ld/testsuite/ld-arm/group-relocs.s ld/testsuite/ld-arm/hideall.ld ld/testsuite/ld-arm/hidfn.s ld/testsuite/ld-arm/ifunc-1.dd ld/testsuite/ld-arm/ifunc-1.gd ld/testsuite/ld-arm/ifunc-1.rd ld/testsuite/ld-arm/ifunc-1.s ld/testsuite/ld-arm/ifunc-10.dd ld/testsuite/ld-arm/ifunc-10.gd ld/testsuite/ld-arm/ifunc-10.rd ld/testsuite/ld-arm/ifunc-10.s ld/testsuite/ld-arm/ifunc-11.dd ld/testsuite/ld-arm/ifunc-11.gd ld/testsuite/ld-arm/ifunc-11.rd ld/testsuite/ld-arm/ifunc-11.s ld/testsuite/ld-arm/ifunc-12.dd ld/testsuite/ld-arm/ifunc-12.gd ld/testsuite/ld-arm/ifunc-12.rd ld/testsuite/ld-arm/ifunc-12.s ld/testsuite/ld-arm/ifunc-13.dd ld/testsuite/ld-arm/ifunc-13.gd ld/testsuite/ld-arm/ifunc-13.rd ld/testsuite/ld-arm/ifunc-13.s ld/testsuite/ld-arm/ifunc-14.dd ld/testsuite/ld-arm/ifunc-14.gd ld/testsuite/ld-arm/ifunc-14.rd ld/testsuite/ld-arm/ifunc-14.s ld/testsuite/ld-arm/ifunc-15.dd ld/testsuite/ld-arm/ifunc-15.gd ld/testsuite/ld-arm/ifunc-15.rd ld/testsuite/ld-arm/ifunc-15.s ld/testsuite/ld-arm/ifunc-16.dd ld/testsuite/ld-arm/ifunc-16.gd ld/testsuite/ld-arm/ifunc-16.rd ld/testsuite/ld-arm/ifunc-16.s ld/testsuite/ld-arm/ifunc-17.dd ld/testsuite/ld-arm/ifunc-17.gd ld/testsuite/ld-arm/ifunc-17.rd ld/testsuite/ld-arm/ifunc-17.s ld/testsuite/ld-arm/ifunc-2.dd ld/testsuite/ld-arm/ifunc-2.gd ld/testsuite/ld-arm/ifunc-2.rd ld/testsuite/ld-arm/ifunc-2.s ld/testsuite/ld-arm/ifunc-3.dd ld/testsuite/ld-arm/ifunc-3.gd ld/testsuite/ld-arm/ifunc-3.rd ld/testsuite/ld-arm/ifunc-3.s ld/testsuite/ld-arm/ifunc-4.dd ld/testsuite/ld-arm/ifunc-4.gd ld/testsuite/ld-arm/ifunc-4.rd ld/testsuite/ld-arm/ifunc-4.s ld/testsuite/ld-arm/ifunc-5.dd ld/testsuite/ld-arm/ifunc-5.gd ld/testsuite/ld-arm/ifunc-5.rd ld/testsuite/ld-arm/ifunc-5.s ld/testsuite/ld-arm/ifunc-6.dd ld/testsuite/ld-arm/ifunc-6.gd ld/testsuite/ld-arm/ifunc-6.rd ld/testsuite/ld-arm/ifunc-6.s ld/testsuite/ld-arm/ifunc-7.dd ld/testsuite/ld-arm/ifunc-7.gd ld/testsuite/ld-arm/ifunc-7.rd ld/testsuite/ld-arm/ifunc-7.s ld/testsuite/ld-arm/ifunc-8.dd ld/testsuite/ld-arm/ifunc-8.gd ld/testsuite/ld-arm/ifunc-8.rd ld/testsuite/ld-arm/ifunc-8.s ld/testsuite/ld-arm/ifunc-9.dd ld/testsuite/ld-arm/ifunc-9.gd ld/testsuite/ld-arm/ifunc-9.rd ld/testsuite/ld-arm/ifunc-9.s ld/testsuite/ld-arm/ifunc-dynamic.ld ld/testsuite/ld-arm/ifunc-static.ld ld/testsuite/ld-arm/jump-reloc-veneers-long.d ld/testsuite/ld-arm/jump-reloc-veneers-short1.d ld/testsuite/ld-arm/jump-reloc-veneers-short2.d ld/testsuite/ld-arm/jump-reloc-veneers.s ld/testsuite/ld-arm/jump19.d ld/testsuite/ld-arm/jump19.s ld/testsuite/ld-arm/main.s ld/testsuite/ld-arm/mixed-app-v5.d ld/testsuite/ld-arm/mixed-app.d ld/testsuite/ld-arm/mixed-app.r ld/testsuite/ld-arm/mixed-app.s ld/testsuite/ld-arm/mixed-app.sym ld/testsuite/ld-arm/mixed-lib.d ld/testsuite/ld-arm/mixed-lib.r ld/testsuite/ld-arm/mixed-lib.s ld/testsuite/ld-arm/mixed-lib.sym ld/testsuite/ld-arm/movw-merge.d ld/testsuite/ld-arm/movw-merge.s ld/testsuite/ld-arm/movw-shared-1.d ld/testsuite/ld-arm/movw-shared-1.s ld/testsuite/ld-arm/movw-shared-2.d ld/testsuite/ld-arm/movw-shared-2.s ld/testsuite/ld-arm/movw-shared-3.d ld/testsuite/ld-arm/movw-shared-3.s ld/testsuite/ld-arm/movw-shared-4.d ld/testsuite/ld-arm/movw-shared-4.s ld/testsuite/ld-arm/preempt-app.s ld/testsuite/ld-arm/preempt-app.sym ld/testsuite/ld-arm/reloc-boundaries.d ld/testsuite/ld-arm/reloc-boundaries.s ld/testsuite/ld-arm/rodata-merge-map.ld ld/testsuite/ld-arm/rodata-merge-map.sym ld/testsuite/ld-arm/rodata-merge-map1.s ld/testsuite/ld-arm/rodata-merge-map2.s ld/testsuite/ld-arm/rodata-merge-map3.s ld/testsuite/ld-arm/script-type.ld ld/testsuite/ld-arm/script-type.s ld/testsuite/ld-arm/script-type.sym ld/testsuite/ld-arm/symbian-seg1.d ld/testsuite/ld-arm/symbian-seg1.s ld/testsuite/ld-arm/thumb-b-lks-sym.d ld/testsuite/ld-arm/thumb-b-lks-sym.s ld/testsuite/ld-arm/thumb-bl-lks-sym.d ld/testsuite/ld-arm/thumb-bl-lks-sym.s ld/testsuite/ld-arm/thumb-entry.d ld/testsuite/ld-arm/thumb-entry.s ld/testsuite/ld-arm/thumb-rel32.d ld/testsuite/ld-arm/thumb-rel32.s ld/testsuite/ld-arm/thumb1-bl.d ld/testsuite/ld-arm/thumb1-bl.s ld/testsuite/ld-arm/thumb2-b-interwork.d ld/testsuite/ld-arm/thumb2-b-interwork.s ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad-noeabi.d ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.d ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.s ld/testsuite/ld-arm/thumb2-bl-bad-noeabi.d ld/testsuite/ld-arm/thumb2-bl-bad.d ld/testsuite/ld-arm/thumb2-bl-bad.s ld/testsuite/ld-arm/thumb2-bl-blx-interwork.d ld/testsuite/ld-arm/thumb2-bl-blx-interwork.s ld/testsuite/ld-arm/thumb2-bl-undefweak.d ld/testsuite/ld-arm/thumb2-bl-undefweak.s ld/testsuite/ld-arm/thumb2-bl-undefweak1.d ld/testsuite/ld-arm/thumb2-bl-undefweak1.s ld/testsuite/ld-arm/thumb2-bl.d ld/testsuite/ld-arm/thumb2-bl.s ld/testsuite/ld-arm/tls-app.d ld/testsuite/ld-arm/tls-app.r ld/testsuite/ld-arm/tls-app.s ld/testsuite/ld-arm/tls-descrelax-be32.d ld/testsuite/ld-arm/tls-descrelax-be32.s ld/testsuite/ld-arm/tls-descrelax-be8.d ld/testsuite/ld-arm/tls-descrelax-be8.s ld/testsuite/ld-arm/tls-descrelax-v7.d ld/testsuite/ld-arm/tls-descrelax-v7.s ld/testsuite/ld-arm/tls-descrelax.d ld/testsuite/ld-arm/tls-descrelax.s ld/testsuite/ld-arm/tls-descseq.d ld/testsuite/ld-arm/tls-descseq.r ld/testsuite/ld-arm/tls-descseq.s ld/testsuite/ld-arm/tls-gdesc-got.d ld/testsuite/ld-arm/tls-gdesc-got.s ld/testsuite/ld-arm/tls-gdesc-nlazy.g ld/testsuite/ld-arm/tls-gdesc-nlazy.s ld/testsuite/ld-arm/tls-gdesc.d ld/testsuite/ld-arm/tls-gdesc.r ld/testsuite/ld-arm/tls-gdesc.s ld/testsuite/ld-arm/tls-gdierelax.d ld/testsuite/ld-arm/tls-gdierelax.s ld/testsuite/ld-arm/tls-gdierelax2.d ld/testsuite/ld-arm/tls-gdierelax2.s ld/testsuite/ld-arm/tls-gdlerelax.d ld/testsuite/ld-arm/tls-gdlerelax.s ld/testsuite/ld-arm/tls-lib-loc.d ld/testsuite/ld-arm/tls-lib-loc.r ld/testsuite/ld-arm/tls-lib-loc.s ld/testsuite/ld-arm/tls-lib.d ld/testsuite/ld-arm/tls-lib.r ld/testsuite/ld-arm/tls-lib.s ld/testsuite/ld-arm/tls-local-static.d ld/testsuite/ld-arm/tls-local-static.s ld/testsuite/ld-arm/tls-longplt-lib.d ld/testsuite/ld-arm/tls-longplt-lib.s ld/testsuite/ld-arm/tls-longplt.d ld/testsuite/ld-arm/tls-longplt.s ld/testsuite/ld-arm/tls-mixed.r ld/testsuite/ld-arm/tls-mixed.s ld/testsuite/ld-arm/tls-thumb1.d ld/testsuite/ld-arm/tls-thumb1.s ld/testsuite/ld-arm/unresolved-1-dyn.d ld/testsuite/ld-arm/unresolved-1.d ld/testsuite/ld-arm/unresolved-1.s ld/testsuite/ld-arm/unresolved-2.d ld/testsuite/ld-arm/unresolved-2.s ld/testsuite/ld-arm/unwind-1.d ld/testsuite/ld-arm/unwind-1.s ld/testsuite/ld-arm/unwind-2.d ld/testsuite/ld-arm/unwind-2.s ld/testsuite/ld-arm/unwind-3.d ld/testsuite/ld-arm/unwind-3.s ld/testsuite/ld-arm/unwind-4.d ld/testsuite/ld-arm/unwind-4.s ld/testsuite/ld-arm/unwind-5.d ld/testsuite/ld-arm/unwind-5.s ld/testsuite/ld-arm/use-thumb-lib.s ld/testsuite/ld-arm/use-thumb-lib.sym ld/testsuite/ld-arm/vfp11-fix-none.d ld/testsuite/ld-arm/vfp11-fix-none.s ld/testsuite/ld-arm/vfp11-fix-scalar.d ld/testsuite/ld-arm/vfp11-fix-scalar.s ld/testsuite/ld-arm/vfp11-fix-vector.d ld/testsuite/ld-arm/vfp11-fix-vector.s ld/testsuite/ld-arm/vxworks1-lib.dd ld/testsuite/ld-arm/vxworks1-lib.nd ld/testsuite/ld-arm/vxworks1-lib.rd ld/testsuite/ld-arm/vxworks1-lib.s ld/testsuite/ld-arm/vxworks1-lib.td ld/testsuite/ld-arm/vxworks1-static.d ld/testsuite/ld-arm/vxworks1.dd ld/testsuite/ld-arm/vxworks1.ld ld/testsuite/ld-arm/vxworks1.rd ld/testsuite/ld-arm/vxworks1.s ld/testsuite/ld-arm/vxworks2-static.sd ld/testsuite/ld-arm/vxworks2.s ld/testsuite/ld-arm/vxworks2.sd ld/testsuite/ld-auto-import/auto-import.exp ld/testsuite/ld-auto-import/client.c ld/testsuite/ld-auto-import/dll.c ld/testsuite/ld-bootstrap/bootstrap.exp ld/testsuite/ld-cdtest/cdtest-bar.cc ld/testsuite/ld-cdtest/cdtest-foo.cc ld/testsuite/ld-cdtest/cdtest-foo.h ld/testsuite/ld-cdtest/cdtest-main.cc ld/testsuite/ld-cdtest/cdtest-nrv.dat ld/testsuite/ld-cdtest/cdtest.dat ld/testsuite/ld-cdtest/cdtest.exp ld/testsuite/ld-checks/asm.s ld/testsuite/ld-checks/checks.exp ld/testsuite/ld-checks/script ld/testsuite/ld-cris/badgotr1.d ld/testsuite/ld-cris/comref1.s ld/testsuite/ld-cris/cris.exp ld/testsuite/ld-cris/def2.d ld/testsuite/ld-cris/def3.d ld/testsuite/ld-cris/dso-1.s ld/testsuite/ld-cris/dso-1b.s ld/testsuite/ld-cris/dso-2.s ld/testsuite/ld-cris/dso-3.s ld/testsuite/ld-cris/dso-pltdis1.d ld/testsuite/ld-cris/dso-pltdis2.d ld/testsuite/ld-cris/dso12-pltdis.d ld/testsuite/ld-cris/dsofn4g.s ld/testsuite/ld-cris/dsofnf.s ld/testsuite/ld-cris/dsofnf2.s ld/testsuite/ld-cris/dsofng.s ld/testsuite/ld-cris/dsov32-1.s ld/testsuite/ld-cris/dsov32-2.s ld/testsuite/ld-cris/dsov32-3.s ld/testsuite/ld-cris/dsov32-4.s ld/testsuite/ld-cris/euwref1.s ld/testsuite/ld-cris/expalltst3 ld/testsuite/ld-cris/expdref1.s ld/testsuite/ld-cris/expdref2.s ld/testsuite/ld-cris/expdref3.s ld/testsuite/ld-cris/expdref4.s ld/testsuite/ld-cris/expdyn1.d ld/testsuite/ld-cris/expdyn1.s ld/testsuite/ld-cris/expdyn1w.s ld/testsuite/ld-cris/expdyn2.d ld/testsuite/ld-cris/expdyn2.s ld/testsuite/ld-cris/expdyn3.d ld/testsuite/ld-cris/expdyn4.d ld/testsuite/ld-cris/expdyn5.d ld/testsuite/ld-cris/expdyn6.d ld/testsuite/ld-cris/expdyn7.d ld/testsuite/ld-cris/globsym1ref.s ld/testsuite/ld-cris/globsymw1.s ld/testsuite/ld-cris/globsymw2.s ld/testsuite/ld-cris/got7.s ld/testsuite/ld-cris/gotplt1.d ld/testsuite/ld-cris/gotplt2.d ld/testsuite/ld-cris/gotplt3.d ld/testsuite/ld-cris/gotrel1.s ld/testsuite/ld-cris/gotrel2.s ld/testsuite/ld-cris/hiddef1.d ld/testsuite/ld-cris/hiddef1.s ld/testsuite/ld-cris/hide1 ld/testsuite/ld-cris/hidedsofns2468 ld/testsuite/ld-cris/hidrefgotplt1.s ld/testsuite/ld-cris/init.s ld/testsuite/ld-cris/ldsym1.d ld/testsuite/ld-cris/libdso-1.d ld/testsuite/ld-cris/libdso-10.d ld/testsuite/ld-cris/libdso-11.d ld/testsuite/ld-cris/libdso-12.d ld/testsuite/ld-cris/libdso-12b.d ld/testsuite/ld-cris/libdso-12c.d ld/testsuite/ld-cris/libdso-13.d ld/testsuite/ld-cris/libdso-13b.d ld/testsuite/ld-cris/libdso-14.d ld/testsuite/ld-cris/libdso-15.d ld/testsuite/ld-cris/libdso-15b.d ld/testsuite/ld-cris/libdso-1b.d ld/testsuite/ld-cris/libdso-1c.d ld/testsuite/ld-cris/libdso-1d.d ld/testsuite/ld-cris/libdso-2.d ld/testsuite/ld-cris/libdso-3.d ld/testsuite/ld-cris/libdso-4.d ld/testsuite/ld-cris/locref1.d ld/testsuite/ld-cris/locref1.s ld/testsuite/ld-cris/locref2.d ld/testsuite/ld-cris/locref2.s ld/testsuite/ld-cris/move-1.s ld/testsuite/ld-cris/nodyn4.d ld/testsuite/ld-cris/nodyn5.d ld/testsuite/ld-cris/noglob1.d ld/testsuite/ld-cris/noglob1.s ld/testsuite/ld-cris/noov.d ld/testsuite/ld-cris/noov.s ld/testsuite/ld-cris/pcrelcp-1.d ld/testsuite/ld-cris/pcrelcp-1.s ld/testsuite/ld-cris/pic-gc-72.d ld/testsuite/ld-cris/pic-gc-72.s ld/testsuite/ld-cris/pic-gc-73.d ld/testsuite/ld-cris/pic-gc-73.s ld/testsuite/ld-cris/pv32-1.d ld/testsuite/ld-cris/pv32.s ld/testsuite/ld-cris/stabs1.s ld/testsuite/ld-cris/start1.s ld/testsuite/ld-cris/tls-commx.s ld/testsuite/ld-cris/tls-dso-dtpoffd2.d ld/testsuite/ld-cris/tls-dso-dtpoffd4.d ld/testsuite/ld-cris/tls-dso-tpoffgotcomm1.d ld/testsuite/ld-cris/tls-dso-tpoffgotcomm1.s ld/testsuite/ld-cris/tls-dso-x1x2-1.d ld/testsuite/ld-cris/tls-dso-xz-1.d ld/testsuite/ld-cris/tls-dtpoffdx.s ld/testsuite/ld-cris/tls-dtprelm.s ld/testsuite/ld-cris/tls-e-20.d ld/testsuite/ld-cris/tls-e-20a.d ld/testsuite/ld-cris/tls-e-21.d ld/testsuite/ld-cris/tls-e-22.d ld/testsuite/ld-cris/tls-e-23.d ld/testsuite/ld-cris/tls-e-66.d ld/testsuite/ld-cris/tls-e-80.d ld/testsuite/ld-cris/tls-e-dtpoffd1.d ld/testsuite/ld-cris/tls-e-dtpoffd3.d ld/testsuite/ld-cris/tls-e-tpiecomm1.d ld/testsuite/ld-cris/tls-e-tpiecomm1.s ld/testsuite/ld-cris/tls-e-tpoffcomm1.d ld/testsuite/ld-cris/tls-e-tpoffcomm1.s ld/testsuite/ld-cris/tls-e-tpoffgotcomm1.d ld/testsuite/ld-cris/tls-err-20x.d ld/testsuite/ld-cris/tls-err-24.d ld/testsuite/ld-cris/tls-err-25.d ld/testsuite/ld-cris/tls-err-26.d ld/testsuite/ld-cris/tls-err-27.d ld/testsuite/ld-cris/tls-err-28.d ld/testsuite/ld-cris/tls-err-29.d ld/testsuite/ld-cris/tls-err-31.d ld/testsuite/ld-cris/tls-err-33.d ld/testsuite/ld-cris/tls-err-35.d ld/testsuite/ld-cris/tls-err-37.d ld/testsuite/ld-cris/tls-err-39.d ld/testsuite/ld-cris/tls-err-40.d ld/testsuite/ld-cris/tls-err-41.d ld/testsuite/ld-cris/tls-err-43.d ld/testsuite/ld-cris/tls-err-44.d ld/testsuite/ld-cris/tls-err-45.d ld/testsuite/ld-cris/tls-err-47.d ld/testsuite/ld-cris/tls-err-48.d ld/testsuite/ld-cris/tls-err-49.d ld/testsuite/ld-cris/tls-err-51.d ld/testsuite/ld-cris/tls-err-52.d ld/testsuite/ld-cris/tls-err-53.d ld/testsuite/ld-cris/tls-err-55.d ld/testsuite/ld-cris/tls-err-55.s ld/testsuite/ld-cris/tls-err-56.d ld/testsuite/ld-cris/tls-err-56.s ld/testsuite/ld-cris/tls-err-62.d ld/testsuite/ld-cris/tls-err-62.s ld/testsuite/ld-cris/tls-err-65.d ld/testsuite/ld-cris/tls-err-67.d ld/testsuite/ld-cris/tls-err-77.d ld/testsuite/ld-cris/tls-gc-68.d ld/testsuite/ld-cris/tls-gc-69.d ld/testsuite/ld-cris/tls-gc-70.d ld/testsuite/ld-cris/tls-gc-71.d ld/testsuite/ld-cris/tls-gc-71.s ld/testsuite/ld-cris/tls-gc-75.d ld/testsuite/ld-cris/tls-gc-76.d ld/testsuite/ld-cris/tls-gc-76.s ld/testsuite/ld-cris/tls-gc-79.d ld/testsuite/ld-cris/tls-gd-1.d ld/testsuite/ld-cris/tls-gd-1.s ld/testsuite/ld-cris/tls-gd-1h.d ld/testsuite/ld-cris/tls-gd-2.d ld/testsuite/ld-cris/tls-gd-2.s ld/testsuite/ld-cris/tls-gd-2h.d ld/testsuite/ld-cris/tls-gd-3.d ld/testsuite/ld-cris/tls-gd-3.s ld/testsuite/ld-cris/tls-gd-3h.d ld/testsuite/ld-cris/tls-gdgotrelm.s ld/testsuite/ld-cris/tls-global-74.d ld/testsuite/ld-cris/tls-gottprelm.s ld/testsuite/ld-cris/tls-hx.s ld/testsuite/ld-cris/tls-hx1x2.s ld/testsuite/ld-cris/tls-ie-10.d ld/testsuite/ld-cris/tls-ie-10.s ld/testsuite/ld-cris/tls-ie-11.d ld/testsuite/ld-cris/tls-ie-11.s ld/testsuite/ld-cris/tls-ie-78.d ld/testsuite/ld-cris/tls-ie-8.d ld/testsuite/ld-cris/tls-ie-8.s ld/testsuite/ld-cris/tls-ie-8e.s ld/testsuite/ld-cris/tls-ie-8e1.d ld/testsuite/ld-cris/tls-ie-9.d ld/testsuite/ld-cris/tls-ie-9.s ld/testsuite/ld-cris/tls-js1.d ld/testsuite/ld-cris/tls-ld-4.d ld/testsuite/ld-cris/tls-ld-4.s ld/testsuite/ld-cris/tls-ld-5.d ld/testsuite/ld-cris/tls-ld-5.s ld/testsuite/ld-cris/tls-ld-6.d ld/testsuite/ld-cris/tls-ld-6.s ld/testsuite/ld-cris/tls-ld-7.d ld/testsuite/ld-cris/tls-ld-7.s ld/testsuite/ld-cris/tls-ldgd-14.d ld/testsuite/ld-cris/tls-ldgd-14.s ld/testsuite/ld-cris/tls-ldgd-15.d ld/testsuite/ld-cris/tls-ldgd-15.s ld/testsuite/ld-cris/tls-ldgde-14.d ld/testsuite/ld-cris/tls-ldgde-15.d ld/testsuite/ld-cris/tls-ldgdex-14.d ld/testsuite/ld-cris/tls-ldgdex-15.d ld/testsuite/ld-cris/tls-ldgdx-14.d ld/testsuite/ld-cris/tls-ldgdx-15.d ld/testsuite/ld-cris/tls-le-12.d ld/testsuite/ld-cris/tls-le-12.s ld/testsuite/ld-cris/tls-le-12s.d ld/testsuite/ld-cris/tls-le-12s.s ld/testsuite/ld-cris/tls-le-13.d ld/testsuite/ld-cris/tls-le-13.s ld/testsuite/ld-cris/tls-le-13s.d ld/testsuite/ld-cris/tls-le-13s.s ld/testsuite/ld-cris/tls-legd-16.d ld/testsuite/ld-cris/tls-legd-16.s ld/testsuite/ld-cris/tls-legd-17.d ld/testsuite/ld-cris/tls-legdx-16.d ld/testsuite/ld-cris/tls-legdx-17.d ld/testsuite/ld-cris/tls-leie-18.d ld/testsuite/ld-cris/tls-leie-19.d ld/testsuite/ld-cris/tls-leie-19.s ld/testsuite/ld-cris/tls-local-54.d ld/testsuite/ld-cris/tls-local-54.s ld/testsuite/ld-cris/tls-local-57.d ld/testsuite/ld-cris/tls-local-57.s ld/testsuite/ld-cris/tls-local-58.d ld/testsuite/ld-cris/tls-local-58.s ld/testsuite/ld-cris/tls-local-59.d ld/testsuite/ld-cris/tls-local-59.s ld/testsuite/ld-cris/tls-local-60.d ld/testsuite/ld-cris/tls-local-61.d ld/testsuite/ld-cris/tls-local-63.d ld/testsuite/ld-cris/tls-local-64.d ld/testsuite/ld-cris/tls-ok-30.d ld/testsuite/ld-cris/tls-ok-32.d ld/testsuite/ld-cris/tls-ok-34.d ld/testsuite/ld-cris/tls-ok-36.d ld/testsuite/ld-cris/tls-tbss64.s ld/testsuite/ld-cris/tls-tprelm.s ld/testsuite/ld-cris/tls-und-38.d ld/testsuite/ld-cris/tls-und-42.d ld/testsuite/ld-cris/tls-und-46.d ld/testsuite/ld-cris/tls-und-50.d ld/testsuite/ld-cris/tls-x.s ld/testsuite/ld-cris/tls-x1x2.s ld/testsuite/ld-cris/tls-z.s ld/testsuite/ld-cris/tls128.s ld/testsuite/ld-cris/tls128g.s ld/testsuite/ld-cris/undef1.d ld/testsuite/ld-cris/undef2.d ld/testsuite/ld-cris/undef3.d ld/testsuite/ld-cris/v10-v32.d ld/testsuite/ld-cris/v10-va.d ld/testsuite/ld-cris/v32-ba-1.d ld/testsuite/ld-cris/v32-ba-1.s ld/testsuite/ld-cris/v32-bin-1.d ld/testsuite/ld-cris/v32-bin-1.s ld/testsuite/ld-cris/v32-v10.d ld/testsuite/ld-cris/v32-va.d ld/testsuite/ld-cris/va-v10.d ld/testsuite/ld-cris/va-v32.d ld/testsuite/ld-cris/warn1.d ld/testsuite/ld-cris/warn2.d ld/testsuite/ld-cris/warn3.d ld/testsuite/ld-cris/warn4.d ld/testsuite/ld-cris/weakhid.s ld/testsuite/ld-cris/weakhiddso.d ld/testsuite/ld-cris/weakref1.d ld/testsuite/ld-cris/weakref2.d ld/testsuite/ld-cris/weakref3.d ld/testsuite/ld-cris/weakref4.d ld/testsuite/ld-crx/crx.exp ld/testsuite/ld-crx/crx.ld ld/testsuite/ld-crx/reloc-abs32.d ld/testsuite/ld-crx/reloc-abs32.s ld/testsuite/ld-crx/reloc-imm16.d ld/testsuite/ld-crx/reloc-imm16.s ld/testsuite/ld-crx/reloc-imm32.d ld/testsuite/ld-crx/reloc-imm32.s ld/testsuite/ld-crx/reloc-num16.d ld/testsuite/ld-crx/reloc-num16.s ld/testsuite/ld-crx/reloc-num32.d ld/testsuite/ld-crx/reloc-num32.s ld/testsuite/ld-crx/reloc-num8.d ld/testsuite/ld-crx/reloc-num8.s ld/testsuite/ld-crx/reloc-regrel12.d ld/testsuite/ld-crx/reloc-regrel12.s ld/testsuite/ld-crx/reloc-regrel22.d ld/testsuite/ld-crx/reloc-regrel22.s ld/testsuite/ld-crx/reloc-regrel28.d ld/testsuite/ld-crx/reloc-regrel28.s ld/testsuite/ld-crx/reloc-regrel32.d ld/testsuite/ld-crx/reloc-regrel32.s ld/testsuite/ld-crx/reloc-rel16.d ld/testsuite/ld-crx/reloc-rel16.s ld/testsuite/ld-crx/reloc-rel24.d ld/testsuite/ld-crx/reloc-rel24.s ld/testsuite/ld-crx/reloc-rel32.d ld/testsuite/ld-crx/reloc-rel32.s ld/testsuite/ld-crx/reloc-rel4.d ld/testsuite/ld-crx/reloc-rel4.s ld/testsuite/ld-crx/reloc-rel8-cmp.d ld/testsuite/ld-crx/reloc-rel8-cmp.s ld/testsuite/ld-crx/reloc-rel8.d ld/testsuite/ld-crx/reloc-rel8.s ld/testsuite/ld-cygwin/exe-export.exp ld/testsuite/ld-cygwin/testdll.c ld/testsuite/ld-cygwin/testdll.def ld/testsuite/ld-cygwin/testexe.c ld/testsuite/ld-cygwin/testexe.def ld/testsuite/ld-d10v/d10v.exp ld/testsuite/ld-d10v/default_layout.d ld/testsuite/ld-d10v/linktest-001.s ld/testsuite/ld-d10v/linktest-002.lt ld/testsuite/ld-d10v/linktest-002.s ld/testsuite/ld-d10v/regression-001.lt ld/testsuite/ld-d10v/regression-001.s ld/testsuite/ld-d10v/reloc-001.d ld/testsuite/ld-d10v/reloc-001.ld ld/testsuite/ld-d10v/reloc-001.s ld/testsuite/ld-d10v/reloc-002.d ld/testsuite/ld-d10v/reloc-002.ld ld/testsuite/ld-d10v/reloc-003.d ld/testsuite/ld-d10v/reloc-003.ld ld/testsuite/ld-d10v/reloc-004.d ld/testsuite/ld-d10v/reloc-004.ld ld/testsuite/ld-d10v/reloc-005.d ld/testsuite/ld-d10v/reloc-005.ld ld/testsuite/ld-d10v/reloc-005.s ld/testsuite/ld-d10v/reloc-006.d ld/testsuite/ld-d10v/reloc-006.ld ld/testsuite/ld-d10v/reloc-007.d ld/testsuite/ld-d10v/reloc-007.ld ld/testsuite/ld-d10v/reloc-008.d ld/testsuite/ld-d10v/reloc-008.ld ld/testsuite/ld-d10v/reloc-009.d ld/testsuite/ld-d10v/reloc-009.ld ld/testsuite/ld-d10v/reloc-009.s ld/testsuite/ld-d10v/reloc-010.d ld/testsuite/ld-d10v/reloc-010.ld ld/testsuite/ld-d10v/reloc-011.d ld/testsuite/ld-d10v/reloc-011.ld ld/testsuite/ld-d10v/reloc-012.d ld/testsuite/ld-d10v/reloc-012.ld ld/testsuite/ld-d10v/reloc-013.d ld/testsuite/ld-d10v/reloc-013.ld ld/testsuite/ld-d10v/reloc-014.d ld/testsuite/ld-d10v/reloc-014.ld ld/testsuite/ld-d10v/reloc-015.d ld/testsuite/ld-d10v/reloc-015.ld ld/testsuite/ld-d10v/reloc-016.d ld/testsuite/ld-d10v/reloc-016.ld ld/testsuite/ld-d10v/simple.s ld/testsuite/ld-discard/discard.exp ld/testsuite/ld-discard/discard.ld ld/testsuite/ld-discard/exit.s ld/testsuite/ld-discard/extern.d ld/testsuite/ld-discard/extern.s ld/testsuite/ld-discard/start.d ld/testsuite/ld-discard/start.s ld/testsuite/ld-discard/static.d ld/testsuite/ld-discard/static.s ld/testsuite/ld-discard/zero-range.d ld/testsuite/ld-discard/zero-range.s ld/testsuite/ld-discard/zero-rel.d ld/testsuite/ld-discard/zero-rel.s ld/testsuite/ld-elf/audit.exp ld/testsuite/ld-elf/audit.rd ld/testsuite/ld-elf/begin.c ld/testsuite/ld-elf/beginwarn.c ld/testsuite/ld-elf/binutils.exp ld/testsuite/ld-elf/comm-data.exp ld/testsuite/ld-elf/comm-data1.s ld/testsuite/ld-elf/comm-data1.sd ld/testsuite/ld-elf/comm-data2.ld ld/testsuite/ld-elf/comm-data2.rd ld/testsuite/ld-elf/comm-data2.s ld/testsuite/ld-elf/comm-data2.sd ld/testsuite/ld-elf/comm-data2.xd ld/testsuite/ld-elf/comm-data2r.rd ld/testsuite/ld-elf/comm-data2r.sd ld/testsuite/ld-elf/comm-data2r.xd ld/testsuite/ld-elf/comm-data3.sd ld/testsuite/ld-elf/comm-data3a.s ld/testsuite/ld-elf/comm-data3b.s ld/testsuite/ld-elf/comm-data4.d ld/testsuite/ld-elf/comm-data4.s ld/testsuite/ld-elf/comm-data5.d ld/testsuite/ld-elf/comm-data5.s ld/testsuite/ld-elf/comm1.c ld/testsuite/ld-elf/commonpage1.d ld/testsuite/ld-elf/commonpage2.d ld/testsuite/ld-elf/compress.exp ld/testsuite/ld-elf/compress1.s ld/testsuite/ld-elf/compress1a.d ld/testsuite/ld-elf/compress1b.d ld/testsuite/ld-elf/compress1c.d ld/testsuite/ld-elf/data1.c ld/testsuite/ld-elf/data1.h ld/testsuite/ld-elf/data2.c ld/testsuite/ld-elf/del.cc ld/testsuite/ld-elf/depaudit.rd ld/testsuite/ld-elf/depaudit2.rd ld/testsuite/ld-elf/discard.ld ld/testsuite/ld-elf/discard1.d ld/testsuite/ld-elf/discard1.s ld/testsuite/ld-elf/discard2.d ld/testsuite/ld-elf/discard2.s ld/testsuite/ld-elf/discard3.d ld/testsuite/ld-elf/dl1.c ld/testsuite/ld-elf/dl1.list ld/testsuite/ld-elf/dl1.out ld/testsuite/ld-elf/dl1main.c ld/testsuite/ld-elf/dl2.c ld/testsuite/ld-elf/dl2.list ld/testsuite/ld-elf/dl2a.list ld/testsuite/ld-elf/dl2a.out ld/testsuite/ld-elf/dl2b.out ld/testsuite/ld-elf/dl2main.c ld/testsuite/ld-elf/dl2xxx.c ld/testsuite/ld-elf/dl2xxx.list ld/testsuite/ld-elf/dl3.cc ld/testsuite/ld-elf/dl3.list ld/testsuite/ld-elf/dl3a.out ld/testsuite/ld-elf/dl3b.out ld/testsuite/ld-elf/dl3header.h ld/testsuite/ld-elf/dl3main.cc ld/testsuite/ld-elf/dl4.c ld/testsuite/ld-elf/dl4.list ld/testsuite/ld-elf/dl4a.out ld/testsuite/ld-elf/dl4b.out ld/testsuite/ld-elf/dl4main.c ld/testsuite/ld-elf/dl4xxx.c ld/testsuite/ld-elf/dl4xxx.list ld/testsuite/ld-elf/dl5.cc ld/testsuite/ld-elf/dl5.out ld/testsuite/ld-elf/dl6.c ld/testsuite/ld-elf/dl6a.out ld/testsuite/ld-elf/dl6amain.c ld/testsuite/ld-elf/dl6b.out ld/testsuite/ld-elf/dl6bmain.c ld/testsuite/ld-elf/dl6cmain.c ld/testsuite/ld-elf/dl6dmain.c ld/testsuite/ld-elf/dummy.c ld/testsuite/ld-elf/dwarf.exp ld/testsuite/ld-elf/dwarf1.c ld/testsuite/ld-elf/dwarf1.h ld/testsuite/ld-elf/dwarf1.out ld/testsuite/ld-elf/dwarf1main.c ld/testsuite/ld-elf/dynamic1.d ld/testsuite/ld-elf/dynamic1.ld ld/testsuite/ld-elf/dynamic1.s ld/testsuite/ld-elf/dynbss1.c ld/testsuite/ld-elf/dynsym1.d ld/testsuite/ld-elf/eh-frame-hdr.d ld/testsuite/ld-elf/eh-frame-hdr.s ld/testsuite/ld-elf/eh-group.exp ld/testsuite/ld-elf/eh-group1.s ld/testsuite/ld-elf/eh-group2.s ld/testsuite/ld-elf/eh1.d ld/testsuite/ld-elf/eh1.s ld/testsuite/ld-elf/eh1a.s ld/testsuite/ld-elf/eh2.d ld/testsuite/ld-elf/eh2a.s ld/testsuite/ld-elf/eh3.d ld/testsuite/ld-elf/eh3.s ld/testsuite/ld-elf/eh3a.s ld/testsuite/ld-elf/eh4.d ld/testsuite/ld-elf/eh4.s ld/testsuite/ld-elf/eh4a.s ld/testsuite/ld-elf/eh5.d ld/testsuite/ld-elf/eh5.s ld/testsuite/ld-elf/eh5a.s ld/testsuite/ld-elf/eh5b.s ld/testsuite/ld-elf/eh6.d ld/testsuite/ld-elf/eh6.s ld/testsuite/ld-elf/ehdr_start.d ld/testsuite/ld-elf/ehdr_start.s ld/testsuite/ld-elf/elf.exp ld/testsuite/ld-elf/empty.d ld/testsuite/ld-elf/empty.s ld/testsuite/ld-elf/empty2.d ld/testsuite/ld-elf/empty2.s ld/testsuite/ld-elf/end.c ld/testsuite/ld-elf/endhidden.c ld/testsuite/ld-elf/endprotected.c ld/testsuite/ld-elf/exclude.exp ld/testsuite/ld-elf/exclude1.s ld/testsuite/ld-elf/exclude2.s ld/testsuite/ld-elf/exclude3.s ld/testsuite/ld-elf/exclude3a.d ld/testsuite/ld-elf/exclude3b.d ld/testsuite/ld-elf/exclude3c.d ld/testsuite/ld-elf/export-class-def.s ld/testsuite/ld-elf/export-class-dep.s ld/testsuite/ld-elf/export-class-lib.s ld/testsuite/ld-elf/export-class-lib.ver ld/testsuite/ld-elf/export-class-ref.s ld/testsuite/ld-elf/export-class.exp ld/testsuite/ld-elf/export-class.sd ld/testsuite/ld-elf/export-class.vd ld/testsuite/ld-elf/expr1.d ld/testsuite/ld-elf/expr1.s ld/testsuite/ld-elf/expr1.t ld/testsuite/ld-elf/extract-symbol-1.ld ld/testsuite/ld-elf/extract-symbol-1.s ld/testsuite/ld-elf/extract-symbol-1sec.d ld/testsuite/ld-elf/extract-symbol-1sym.d ld/testsuite/ld-elf/fini.c ld/testsuite/ld-elf/fini.out ld/testsuite/ld-elf/fini0.s ld/testsuite/ld-elf/fini1.s ld/testsuite/ld-elf/fini2.s ld/testsuite/ld-elf/fini3.s ld/testsuite/ld-elf/finin.s ld/testsuite/ld-elf/flags1.d ld/testsuite/ld-elf/flags1.ld ld/testsuite/ld-elf/flags1.s ld/testsuite/ld-elf/foo.c ld/testsuite/ld-elf/foo.map ld/testsuite/ld-elf/foo0.s ld/testsuite/ld-elf/foo1.s ld/testsuite/ld-elf/foo2.s ld/testsuite/ld-elf/foo3.s ld/testsuite/ld-elf/foon.s ld/testsuite/ld-elf/frame.exp ld/testsuite/ld-elf/frame.s ld/testsuite/ld-elf/func1.c ld/testsuite/ld-elf/global1.d ld/testsuite/ld-elf/group.ld ld/testsuite/ld-elf/group1.d ld/testsuite/ld-elf/group10.d ld/testsuite/ld-elf/group10.s ld/testsuite/ld-elf/group1a.s ld/testsuite/ld-elf/group1b.s ld/testsuite/ld-elf/group2.d ld/testsuite/ld-elf/group3a.d ld/testsuite/ld-elf/group3a.s ld/testsuite/ld-elf/group3b.d ld/testsuite/ld-elf/group3b.s ld/testsuite/ld-elf/group4.d ld/testsuite/ld-elf/group5.d ld/testsuite/ld-elf/group6.d ld/testsuite/ld-elf/group7.d ld/testsuite/ld-elf/group8.s ld/testsuite/ld-elf/group8a.d ld/testsuite/ld-elf/group8b.d ld/testsuite/ld-elf/group9.s ld/testsuite/ld-elf/group9a.d ld/testsuite/ld-elf/group9b.d ld/testsuite/ld-elf/hash.d ld/testsuite/ld-elf/header.d ld/testsuite/ld-elf/header.s ld/testsuite/ld-elf/header.t ld/testsuite/ld-elf/hidden.out ld/testsuite/ld-elf/indirect.exp ld/testsuite/ld-elf/indirect1a.c ld/testsuite/ld-elf/indirect1b.c ld/testsuite/ld-elf/indirect1c.c ld/testsuite/ld-elf/indirect2.c ld/testsuite/ld-elf/indirect3.out ld/testsuite/ld-elf/indirect3a.c ld/testsuite/ld-elf/indirect3b.c ld/testsuite/ld-elf/indirect3c.c ld/testsuite/ld-elf/indirect4.out ld/testsuite/ld-elf/indirect4a.c ld/testsuite/ld-elf/indirect4b.c ld/testsuite/ld-elf/indirect4c.c ld/testsuite/ld-elf/init-fini-arrays.d ld/testsuite/ld-elf/init-fini-arrays.s ld/testsuite/ld-elf/init-mixed.c ld/testsuite/ld-elf/init-mixed.out ld/testsuite/ld-elf/init.c ld/testsuite/ld-elf/init.out ld/testsuite/ld-elf/init0.s ld/testsuite/ld-elf/init1.s ld/testsuite/ld-elf/init2.s ld/testsuite/ld-elf/init3.s ld/testsuite/ld-elf/initn.s ld/testsuite/ld-elf/libbarw.rd ld/testsuite/ld-elf/linkonce1.d ld/testsuite/ld-elf/linkonce1a.s ld/testsuite/ld-elf/linkonce1b.s ld/testsuite/ld-elf/linkonce2.d ld/testsuite/ld-elf/linkoncerdiff.d ld/testsuite/ld-elf/linkoncerdiff1.s ld/testsuite/ld-elf/linkoncerdiff2.s ld/testsuite/ld-elf/lma.lnk ld/testsuite/ld-elf/lma.s ld/testsuite/ld-elf/loadaddr.s ld/testsuite/ld-elf/loadaddr.t ld/testsuite/ld-elf/loadaddr1.d ld/testsuite/ld-elf/loadaddr1.t ld/testsuite/ld-elf/loadaddr2.d ld/testsuite/ld-elf/loadaddr2.t ld/testsuite/ld-elf/loadaddr3.t ld/testsuite/ld-elf/loadaddr3a.d ld/testsuite/ld-elf/loadaddr3b.d ld/testsuite/ld-elf/local1.d ld/testsuite/ld-elf/local1.map ld/testsuite/ld-elf/local1.s ld/testsuite/ld-elf/main.c ld/testsuite/ld-elf/maxpage1.d ld/testsuite/ld-elf/maxpage1.s ld/testsuite/ld-elf/maxpage2.d ld/testsuite/ld-elf/maxpage3.t ld/testsuite/ld-elf/maxpage3a.d ld/testsuite/ld-elf/maxpage3b.d ld/testsuite/ld-elf/maxpage3c.d ld/testsuite/ld-elf/maxpage4.d ld/testsuite/ld-elf/maxpage4.t ld/testsuite/ld-elf/maxpage5.d ld/testsuite/ld-elf/maxpage5.s ld/testsuite/ld-elf/maxpage5.t ld/testsuite/ld-elf/merge.d ld/testsuite/ld-elf/merge.ld ld/testsuite/ld-elf/merge.s ld/testsuite/ld-elf/merge2.d ld/testsuite/ld-elf/merge2.s ld/testsuite/ld-elf/multibss1.d ld/testsuite/ld-elf/multibss1.s ld/testsuite/ld-elf/needed1.out ld/testsuite/ld-elf/needed1a.c ld/testsuite/ld-elf/needed1b.c ld/testsuite/ld-elf/needed1c.c ld/testsuite/ld-elf/new.cc ld/testsuite/ld-elf/nobits-1.d ld/testsuite/ld-elf/nobits-1.s ld/testsuite/ld-elf/nobits-1.t ld/testsuite/ld-elf/noload-1.d ld/testsuite/ld-elf/noload-1.s ld/testsuite/ld-elf/noload-1.t ld/testsuite/ld-elf/noload-2.d ld/testsuite/ld-elf/noload-3.d ld/testsuite/ld-elf/noload-3.s ld/testsuite/ld-elf/noload-3.t ld/testsuite/ld-elf/normal.out ld/testsuite/ld-elf/note-1.d ld/testsuite/ld-elf/note-1.s ld/testsuite/ld-elf/note-1.t ld/testsuite/ld-elf/note-2.d ld/testsuite/ld-elf/note-2.s ld/testsuite/ld-elf/note-2.t ld/testsuite/ld-elf/note-3.l ld/testsuite/ld-elf/note-3.s ld/testsuite/ld-elf/note-3.t ld/testsuite/ld-elf/now-1.d ld/testsuite/ld-elf/now-2.d ld/testsuite/ld-elf/now-3.d ld/testsuite/ld-elf/now-4.d ld/testsuite/ld-elf/orphan-region.d ld/testsuite/ld-elf/orphan-region.ld ld/testsuite/ld-elf/orphan-region.s ld/testsuite/ld-elf/orphan.d ld/testsuite/ld-elf/orphan.ld ld/testsuite/ld-elf/orphan.s ld/testsuite/ld-elf/orphan2.d ld/testsuite/ld-elf/orphan2.s ld/testsuite/ld-elf/orphan3.d ld/testsuite/ld-elf/orphan3a.s ld/testsuite/ld-elf/orphan3b.s ld/testsuite/ld-elf/orphan3c.s ld/testsuite/ld-elf/orphan3d.s ld/testsuite/ld-elf/orphan3e.s ld/testsuite/ld-elf/orphan3f.s ld/testsuite/ld-elf/orphan4.d ld/testsuite/ld-elf/orphan4.ld ld/testsuite/ld-elf/orphan4.s ld/testsuite/ld-elf/overlay.d ld/testsuite/ld-elf/overlay.s ld/testsuite/ld-elf/overlay.t ld/testsuite/ld-elf/pass.out ld/testsuite/ld-elf/pr11138-1.c ld/testsuite/ld-elf/pr11138-1.map ld/testsuite/ld-elf/pr11138-2.c ld/testsuite/ld-elf/pr11138-2.map ld/testsuite/ld-elf/pr11138.out ld/testsuite/ld-elf/pr11304.d ld/testsuite/ld-elf/pr11304a.s ld/testsuite/ld-elf/pr11304b.s ld/testsuite/ld-elf/pr12851.d ld/testsuite/ld-elf/pr12851.s ld/testsuite/ld-elf/pr12975.d ld/testsuite/ld-elf/pr12975.s ld/testsuite/ld-elf/pr12975.t ld/testsuite/ld-elf/pr13177.d ld/testsuite/ld-elf/pr13177.s ld/testsuite/ld-elf/pr13195.c ld/testsuite/ld-elf/pr13195.d ld/testsuite/ld-elf/pr13195.s ld/testsuite/ld-elf/pr13195.t ld/testsuite/ld-elf/pr13250-1.c ld/testsuite/ld-elf/pr13250-2.c ld/testsuite/ld-elf/pr13250-3.c ld/testsuite/ld-elf/pr13839.d ld/testsuite/ld-elf/pr13839.s ld/testsuite/ld-elf/pr13839.t ld/testsuite/ld-elf/pr14052.d ld/testsuite/ld-elf/pr14052.t ld/testsuite/ld-elf/pr14156a.d ld/testsuite/ld-elf/pr14156b.d ld/testsuite/ld-elf/pr14156c.d ld/testsuite/ld-elf/pr14156c.t ld/testsuite/ld-elf/pr14170a.s ld/testsuite/ld-elf/pr14170b.s ld/testsuite/ld-elf/pr14170c.s ld/testsuite/ld-elf/pr14323-1.c ld/testsuite/ld-elf/pr14323-2.c ld/testsuite/ld-elf/pr14525.c ld/testsuite/ld-elf/pr14525.out ld/testsuite/ld-elf/pr14862-1.c ld/testsuite/ld-elf/pr14862-2.c ld/testsuite/ld-elf/pr14862.map ld/testsuite/ld-elf/pr14862.out ld/testsuite/ld-elf/pr14926.d ld/testsuite/ld-elf/pr14926.s ld/testsuite/ld-elf/pr349-1.s ld/testsuite/ld-elf/pr349-2.s ld/testsuite/ld-elf/pr349.d ld/testsuite/ld-elf/pr9676-1.c ld/testsuite/ld-elf/pr9676-2.c ld/testsuite/ld-elf/pr9676-3.c ld/testsuite/ld-elf/pr9676-4.c ld/testsuite/ld-elf/pr9676.rd ld/testsuite/ld-elf/pr9679-1.c ld/testsuite/ld-elf/pr9679-2.c ld/testsuite/ld-elf/pr9679.rd ld/testsuite/ld-elf/preinit.c ld/testsuite/ld-elf/preinit.out ld/testsuite/ld-elf/provide-hidden-1.ld ld/testsuite/ld-elf/provide-hidden-1.s ld/testsuite/ld-elf/provide-hidden-2.ld ld/testsuite/ld-elf/provide-hidden-2.s ld/testsuite/ld-elf/provide-hidden-3.s ld/testsuite/ld-elf/provide-hidden-4.s ld/testsuite/ld-elf/provide-hidden-abs.nd ld/testsuite/ld-elf/provide-hidden-def.nd ld/testsuite/ld-elf/provide-hidden-dyn.nd ld/testsuite/ld-elf/provide-hidden-dynabs.nd ld/testsuite/ld-elf/provide-hidden-dynsec.nd ld/testsuite/ld-elf/provide-hidden-s.ld ld/testsuite/ld-elf/provide-hidden-s.nd ld/testsuite/ld-elf/provide-hidden-sec.nd ld/testsuite/ld-elf/provide-hidden.exp ld/testsuite/ld-elf/rel.c ld/testsuite/ld-elf/relmain.c ld/testsuite/ld-elf/relmain.out ld/testsuite/ld-elf/relocatable.d ld/testsuite/ld-elf/relocatable.t ld/testsuite/ld-elf/relro1.s ld/testsuite/ld-elf/relro2.s ld/testsuite/ld-elf/rpath-1.d ld/testsuite/ld-elf/rpath-2.d ld/testsuite/ld-elf/runpath-1.d ld/testsuite/ld-elf/runpath-2.d ld/testsuite/ld-elf/sec-to-seg-script-adjoining-pages.t ld/testsuite/ld-elf/sec-to-seg-script-disjoint-pages.t ld/testsuite/ld-elf/sec-to-seg-script-same-page.t ld/testsuite/ld-elf/sec-to-seg.exp ld/testsuite/ld-elf/sec-to-seg1.s ld/testsuite/ld-elf/sec-to-seg2.s ld/testsuite/ld-elf/sec64k.exp ld/testsuite/ld-elf/seg.d ld/testsuite/ld-elf/seg.s ld/testsuite/ld-elf/seg.t ld/testsuite/ld-elf/shared.exp ld/testsuite/ld-elf/simple.s ld/testsuite/ld-elf/stab.d ld/testsuite/ld-elf/stack-exec.rd ld/testsuite/ld-elf/stack-size.rd ld/testsuite/ld-elf/stack.s ld/testsuite/ld-elf/start.s ld/testsuite/ld-elf/symbol1ref.s ld/testsuite/ld-elf/symbol1w.s ld/testsuite/ld-elf/symbol2ref.s ld/testsuite/ld-elf/symbol2w.s ld/testsuite/ld-elf/symbol3.s ld/testsuite/ld-elf/symbol3w.s ld/testsuite/ld-elf/table.s ld/testsuite/ld-elf/tbss.s ld/testsuite/ld-elf/tbss1.s ld/testsuite/ld-elf/tbss2.s ld/testsuite/ld-elf/tbss3.s ld/testsuite/ld-elf/tdata1.s ld/testsuite/ld-elf/tdata2.s ld/testsuite/ld-elf/tdata3.s ld/testsuite/ld-elf/textaddr1.d ld/testsuite/ld-elf/textaddr2.d ld/testsuite/ld-elf/textaddr3.d ld/testsuite/ld-elf/textaddr4.d ld/testsuite/ld-elf/textaddr5.d ld/testsuite/ld-elf/textaddr6.d ld/testsuite/ld-elf/textaddr7.d ld/testsuite/ld-elf/tls_common.exp ld/testsuite/ld-elf/tls_common.s ld/testsuite/ld-elf/tls_gc.s ld/testsuite/ld-elf/unknown.d ld/testsuite/ld-elf/unknown2.d ld/testsuite/ld-elf/unknown2.s ld/testsuite/ld-elf/var1.d ld/testsuite/ld-elf/var1.s ld/testsuite/ld-elf/var1.t ld/testsuite/ld-elf/warn.out ld/testsuite/ld-elf/warn1.d ld/testsuite/ld-elf/warn2.d ld/testsuite/ld-elf/warn3.d ld/testsuite/ld-elf/weak-dyn-1.ld ld/testsuite/ld-elf/weak-dyn-1.rd ld/testsuite/ld-elf/weak-dyn-1a.s ld/testsuite/ld-elf/weak-dyn-1b.s ld/testsuite/ld-elf/weakdef1.c ld/testsuite/ld-elf/wrap.exp ld/testsuite/ld-elf/wrap1.c ld/testsuite/ld-elf/wrap1.out ld/testsuite/ld-elf/wrap1a.c ld/testsuite/ld-elf/wrap1b.c ld/testsuite/ld-elfcomm/common1a.c ld/testsuite/ld-elfcomm/common1b.c ld/testsuite/ld-elfcomm/elfcomm.exp ld/testsuite/ld-elfcomm/sort-common.s ld/testsuite/ld-elfvers/vers.exp ld/testsuite/ld-elfvers/vers.h ld/testsuite/ld-elfvers/vers1.c ld/testsuite/ld-elfvers/vers1.dsym ld/testsuite/ld-elfvers/vers1.map ld/testsuite/ld-elfvers/vers1.sym ld/testsuite/ld-elfvers/vers1.ver ld/testsuite/ld-elfvers/vers13.asym ld/testsuite/ld-elfvers/vers15.c ld/testsuite/ld-elfvers/vers15.dsym ld/testsuite/ld-elfvers/vers15.sym ld/testsuite/ld-elfvers/vers15.ver ld/testsuite/ld-elfvers/vers16.c ld/testsuite/ld-elfvers/vers16.dsym ld/testsuite/ld-elfvers/vers16.map ld/testsuite/ld-elfvers/vers16a.c ld/testsuite/ld-elfvers/vers16a.dsym ld/testsuite/ld-elfvers/vers16a.ver ld/testsuite/ld-elfvers/vers17.c ld/testsuite/ld-elfvers/vers17.dsym ld/testsuite/ld-elfvers/vers17.map ld/testsuite/ld-elfvers/vers17.ver ld/testsuite/ld-elfvers/vers18.c ld/testsuite/ld-elfvers/vers18.dsym ld/testsuite/ld-elfvers/vers18.map ld/testsuite/ld-elfvers/vers18.sym ld/testsuite/ld-elfvers/vers18.ver ld/testsuite/ld-elfvers/vers19.c ld/testsuite/ld-elfvers/vers19.dsym ld/testsuite/ld-elfvers/vers19.ver ld/testsuite/ld-elfvers/vers2.c ld/testsuite/ld-elfvers/vers2.dsym ld/testsuite/ld-elfvers/vers2.map ld/testsuite/ld-elfvers/vers2.ver ld/testsuite/ld-elfvers/vers20.c ld/testsuite/ld-elfvers/vers20.dsym ld/testsuite/ld-elfvers/vers20.map ld/testsuite/ld-elfvers/vers20.ver ld/testsuite/ld-elfvers/vers20a.ver ld/testsuite/ld-elfvers/vers21.c ld/testsuite/ld-elfvers/vers21.dsym ld/testsuite/ld-elfvers/vers21.map ld/testsuite/ld-elfvers/vers21.sym ld/testsuite/ld-elfvers/vers21.ver ld/testsuite/ld-elfvers/vers22.c ld/testsuite/ld-elfvers/vers22.dsym ld/testsuite/ld-elfvers/vers22.map ld/testsuite/ld-elfvers/vers22.ver ld/testsuite/ld-elfvers/vers22a.c ld/testsuite/ld-elfvers/vers22a.dsym ld/testsuite/ld-elfvers/vers22a.sym ld/testsuite/ld-elfvers/vers22a.ver ld/testsuite/ld-elfvers/vers22b.c ld/testsuite/ld-elfvers/vers22b.dsym ld/testsuite/ld-elfvers/vers22b.ver ld/testsuite/ld-elfvers/vers23.c ld/testsuite/ld-elfvers/vers23.dsym ld/testsuite/ld-elfvers/vers23.ver ld/testsuite/ld-elfvers/vers23a.c ld/testsuite/ld-elfvers/vers23a.dsym ld/testsuite/ld-elfvers/vers23a.map ld/testsuite/ld-elfvers/vers23a.sym ld/testsuite/ld-elfvers/vers23a.ver ld/testsuite/ld-elfvers/vers23b.c ld/testsuite/ld-elfvers/vers23b.dsym ld/testsuite/ld-elfvers/vers23b.map ld/testsuite/ld-elfvers/vers23b.ver ld/testsuite/ld-elfvers/vers23c.ver ld/testsuite/ld-elfvers/vers23d.dsym ld/testsuite/ld-elfvers/vers24.map ld/testsuite/ld-elfvers/vers24.rd ld/testsuite/ld-elfvers/vers24a.c ld/testsuite/ld-elfvers/vers24b.c ld/testsuite/ld-elfvers/vers24c.c ld/testsuite/ld-elfvers/vers25a.c ld/testsuite/ld-elfvers/vers25a.dsym ld/testsuite/ld-elfvers/vers25a.map ld/testsuite/ld-elfvers/vers25a.ver ld/testsuite/ld-elfvers/vers25b.c ld/testsuite/ld-elfvers/vers25b.dsym ld/testsuite/ld-elfvers/vers25b.ver ld/testsuite/ld-elfvers/vers26a.c ld/testsuite/ld-elfvers/vers26a.dsym ld/testsuite/ld-elfvers/vers26a.map ld/testsuite/ld-elfvers/vers26a.ver ld/testsuite/ld-elfvers/vers26b.c ld/testsuite/ld-elfvers/vers26b.dsym ld/testsuite/ld-elfvers/vers26b.ver ld/testsuite/ld-elfvers/vers27a.c ld/testsuite/ld-elfvers/vers27a.dsym ld/testsuite/ld-elfvers/vers27a.map ld/testsuite/ld-elfvers/vers27a.ver ld/testsuite/ld-elfvers/vers27b.c ld/testsuite/ld-elfvers/vers27b.dsym ld/testsuite/ld-elfvers/vers27b.ver ld/testsuite/ld-elfvers/vers27c.c ld/testsuite/ld-elfvers/vers27c.dsym ld/testsuite/ld-elfvers/vers27c.ver ld/testsuite/ld-elfvers/vers27d.dsym ld/testsuite/ld-elfvers/vers27d.sym ld/testsuite/ld-elfvers/vers27d.ver ld/testsuite/ld-elfvers/vers27d1.c ld/testsuite/ld-elfvers/vers27d2.c ld/testsuite/ld-elfvers/vers27d3.c ld/testsuite/ld-elfvers/vers27d4.dsym ld/testsuite/ld-elfvers/vers27d4.ver ld/testsuite/ld-elfvers/vers28a.c ld/testsuite/ld-elfvers/vers28a.dsym ld/testsuite/ld-elfvers/vers28a.ver ld/testsuite/ld-elfvers/vers28b.c ld/testsuite/ld-elfvers/vers28b.dsym ld/testsuite/ld-elfvers/vers28b.map ld/testsuite/ld-elfvers/vers28b.ver ld/testsuite/ld-elfvers/vers28c.c ld/testsuite/ld-elfvers/vers28c.dsym ld/testsuite/ld-elfvers/vers28c.ver ld/testsuite/ld-elfvers/vers29.c ld/testsuite/ld-elfvers/vers29.dsym ld/testsuite/ld-elfvers/vers29.ver ld/testsuite/ld-elfvers/vers3.c ld/testsuite/ld-elfvers/vers3.dsym ld/testsuite/ld-elfvers/vers3.ver ld/testsuite/ld-elfvers/vers30.c ld/testsuite/ld-elfvers/vers30.dsym ld/testsuite/ld-elfvers/vers30.map ld/testsuite/ld-elfvers/vers30.ver ld/testsuite/ld-elfvers/vers31.c ld/testsuite/ld-elfvers/vers31.dsym ld/testsuite/ld-elfvers/vers31.map ld/testsuite/ld-elfvers/vers31.ver ld/testsuite/ld-elfvers/vers32.map ld/testsuite/ld-elfvers/vers32a.c ld/testsuite/ld-elfvers/vers32a.dsym ld/testsuite/ld-elfvers/vers32a.ver ld/testsuite/ld-elfvers/vers32b.c ld/testsuite/ld-elfvers/vers32b.dsym ld/testsuite/ld-elfvers/vers32b.ver ld/testsuite/ld-elfvers/vers4.c ld/testsuite/ld-elfvers/vers4.sym ld/testsuite/ld-elfvers/vers4a.dsym ld/testsuite/ld-elfvers/vers4a.sym ld/testsuite/ld-elfvers/vers4a.ver ld/testsuite/ld-elfvers/vers5.c ld/testsuite/ld-elfvers/vers6.c ld/testsuite/ld-elfvers/vers6.dsym ld/testsuite/ld-elfvers/vers6.sym ld/testsuite/ld-elfvers/vers6.ver ld/testsuite/ld-elfvers/vers7.c ld/testsuite/ld-elfvers/vers7.map ld/testsuite/ld-elfvers/vers7a.c ld/testsuite/ld-elfvers/vers7a.dsym ld/testsuite/ld-elfvers/vers7a.sym ld/testsuite/ld-elfvers/vers7a.ver ld/testsuite/ld-elfvers/vers8.c ld/testsuite/ld-elfvers/vers8.map ld/testsuite/ld-elfvers/vers8.ver ld/testsuite/ld-elfvers/vers9.c ld/testsuite/ld-elfvers/vers9.dsym ld/testsuite/ld-elfvers/vers9.sym ld/testsuite/ld-elfvers/vers9.ver ld/testsuite/ld-elfvsb/common.c ld/testsuite/ld-elfvsb/define.s ld/testsuite/ld-elfvsb/elf-offset.ld ld/testsuite/ld-elfvsb/elfvsb.dat ld/testsuite/ld-elfvsb/elfvsb.exp ld/testsuite/ld-elfvsb/hidden0.d ld/testsuite/ld-elfvsb/hidden1.d ld/testsuite/ld-elfvsb/hidden2.d ld/testsuite/ld-elfvsb/hidden2.ld ld/testsuite/ld-elfvsb/hidden2.s ld/testsuite/ld-elfvsb/internal0.d ld/testsuite/ld-elfvsb/internal1.d ld/testsuite/ld-elfvsb/main.c ld/testsuite/ld-elfvsb/protected0.d ld/testsuite/ld-elfvsb/protected1.d ld/testsuite/ld-elfvsb/sh1.c ld/testsuite/ld-elfvsb/sh2.c ld/testsuite/ld-elfvsb/sh3.c ld/testsuite/ld-elfvsb/test.c ld/testsuite/ld-elfvsb/undef.s ld/testsuite/ld-elfweak/bar.c ld/testsuite/ld-elfweak/bar1a.c ld/testsuite/ld-elfweak/bar1b.c ld/testsuite/ld-elfweak/bar1c.c ld/testsuite/ld-elfweak/dso.dsym ld/testsuite/ld-elfweak/dsodata.dsym ld/testsuite/ld-elfweak/dsow.dsym ld/testsuite/ld-elfweak/dsowdata.dsym ld/testsuite/ld-elfweak/elfweak.exp ld/testsuite/ld-elfweak/foo.c ld/testsuite/ld-elfweak/foo1a.c ld/testsuite/ld-elfweak/foo1b.c ld/testsuite/ld-elfweak/main.c ld/testsuite/ld-elfweak/main1.c ld/testsuite/ld-elfweak/size.dat ld/testsuite/ld-elfweak/size2.d ld/testsuite/ld-elfweak/size2a.s ld/testsuite/ld-elfweak/size2b.s ld/testsuite/ld-elfweak/size_bar.c ld/testsuite/ld-elfweak/size_foo.c ld/testsuite/ld-elfweak/size_main.c ld/testsuite/ld-elfweak/strong.dat ld/testsuite/ld-elfweak/strong.sym ld/testsuite/ld-elfweak/strongcomm.sym ld/testsuite/ld-elfweak/strongdata.dat ld/testsuite/ld-elfweak/strongdata.sym ld/testsuite/ld-elfweak/weak.dat ld/testsuite/ld-elfweak/weak.dsym ld/testsuite/ld-elfweak/weakdata.dat ld/testsuite/ld-elfweak/weakdata.dsym ld/testsuite/ld-fastcall/export.s ld/testsuite/ld-fastcall/fastcall.exp ld/testsuite/ld-fastcall/import.s ld/testsuite/ld-frv/fdpic-pie-1.d ld/testsuite/ld-frv/fdpic-pie-2.d ld/testsuite/ld-frv/fdpic-pie-5.d ld/testsuite/ld-frv/fdpic-pie-6-fail.d ld/testsuite/ld-frv/fdpic-pie-6.d ld/testsuite/ld-frv/fdpic-pie-7.d ld/testsuite/ld-frv/fdpic-pie-8.d ld/testsuite/ld-frv/fdpic-shared-1.d ld/testsuite/ld-frv/fdpic-shared-2-fail.d ld/testsuite/ld-frv/fdpic-shared-2.d ld/testsuite/ld-frv/fdpic-shared-3.d ld/testsuite/ld-frv/fdpic-shared-4.d ld/testsuite/ld-frv/fdpic-shared-5.d ld/testsuite/ld-frv/fdpic-shared-6-fail.d ld/testsuite/ld-frv/fdpic-shared-6.d ld/testsuite/ld-frv/fdpic-shared-7.d ld/testsuite/ld-frv/fdpic-shared-8-fail.d ld/testsuite/ld-frv/fdpic-shared-8.d ld/testsuite/ld-frv/fdpic-shared-local-2.d ld/testsuite/ld-frv/fdpic-shared-local-8.d ld/testsuite/ld-frv/fdpic-static-1.d ld/testsuite/ld-frv/fdpic-static-2.d ld/testsuite/ld-frv/fdpic-static-5.d ld/testsuite/ld-frv/fdpic-static-6.d ld/testsuite/ld-frv/fdpic-static-7.d ld/testsuite/ld-frv/fdpic-static-8.d ld/testsuite/ld-frv/fdpic.exp ld/testsuite/ld-frv/fdpic1.s ld/testsuite/ld-frv/fdpic2.ldv ld/testsuite/ld-frv/fdpic2.s ld/testsuite/ld-frv/fdpic2min.ldv ld/testsuite/ld-frv/fdpic3.s ld/testsuite/ld-frv/fdpic4.s ld/testsuite/ld-frv/fdpic5.s ld/testsuite/ld-frv/fdpic6.ldv ld/testsuite/ld-frv/fdpic6.s ld/testsuite/ld-frv/fdpic7.s ld/testsuite/ld-frv/fdpic8.ldv ld/testsuite/ld-frv/fdpic8.s ld/testsuite/ld-frv/fdpic8min.ldv ld/testsuite/ld-frv/fr450-link.d ld/testsuite/ld-frv/fr450-linka.s ld/testsuite/ld-frv/fr450-linkb.s ld/testsuite/ld-frv/fr450-linkc.s ld/testsuite/ld-frv/frv-elf.exp ld/testsuite/ld-frv/tls-1-dep.s ld/testsuite/ld-frv/tls-1-shared.lds ld/testsuite/ld-frv/tls-1.s ld/testsuite/ld-frv/tls-2.s ld/testsuite/ld-frv/tls-3.s ld/testsuite/ld-frv/tls-dynamic-1.d ld/testsuite/ld-frv/tls-dynamic-2.d ld/testsuite/ld-frv/tls-dynamic-3.d ld/testsuite/ld-frv/tls-initial-shared-2.d ld/testsuite/ld-frv/tls-pie-1.d ld/testsuite/ld-frv/tls-pie-3.d ld/testsuite/ld-frv/tls-relax-dynamic-1.d ld/testsuite/ld-frv/tls-relax-dynamic-2.d ld/testsuite/ld-frv/tls-relax-dynamic-3.d ld/testsuite/ld-frv/tls-relax-initial-shared-2.d ld/testsuite/ld-frv/tls-relax-pie-1.d ld/testsuite/ld-frv/tls-relax-pie-3.d ld/testsuite/ld-frv/tls-relax-shared-1.d ld/testsuite/ld-frv/tls-relax-shared-2.d ld/testsuite/ld-frv/tls-relax-shared-3.d ld/testsuite/ld-frv/tls-relax-static-1.d ld/testsuite/ld-frv/tls-relax-static-3.d ld/testsuite/ld-frv/tls-shared-1-fail.d ld/testsuite/ld-frv/tls-shared-1.d ld/testsuite/ld-frv/tls-shared-2.d ld/testsuite/ld-frv/tls-shared-3.d ld/testsuite/ld-frv/tls-static-1.d ld/testsuite/ld-frv/tls-static-3.d ld/testsuite/ld-frv/tls.exp ld/testsuite/ld-gc/abi-note.d ld/testsuite/ld-gc/abi-note.s ld/testsuite/ld-gc/dummy.s ld/testsuite/ld-gc/gc.c ld/testsuite/ld-gc/gc.exp ld/testsuite/ld-gc/libpersonality.s ld/testsuite/ld-gc/noent.d ld/testsuite/ld-gc/noent.s ld/testsuite/ld-gc/personality.d ld/testsuite/ld-gc/personality.s ld/testsuite/ld-gc/pr11218-1.c ld/testsuite/ld-gc/pr11218-2.c ld/testsuite/ld-gc/pr11218.d ld/testsuite/ld-gc/pr13683.c ld/testsuite/ld-gc/pr13683.d ld/testsuite/ld-gc/pr14265.c ld/testsuite/ld-gc/pr14265.d ld/testsuite/ld-gc/pr14265.t ld/testsuite/ld-gc/start.d ld/testsuite/ld-gc/start.s ld/testsuite/ld-h8300/gcsection.d ld/testsuite/ld-h8300/gcsection.s ld/testsuite/ld-h8300/h8300.exp ld/testsuite/ld-h8300/relax-2.d ld/testsuite/ld-h8300/relax-2.s ld/testsuite/ld-h8300/relax-3-coff.d ld/testsuite/ld-h8300/relax-3.d ld/testsuite/ld-h8300/relax-3.s ld/testsuite/ld-h8300/relax-4-coff.d ld/testsuite/ld-h8300/relax-4.d ld/testsuite/ld-h8300/relax-4.s ld/testsuite/ld-h8300/relax-5-coff.d ld/testsuite/ld-h8300/relax-5.d ld/testsuite/ld-h8300/relax-5.s ld/testsuite/ld-h8300/relax-6-coff.d ld/testsuite/ld-h8300/relax-6.d ld/testsuite/ld-h8300/relax-6.s ld/testsuite/ld-h8300/relax-7.d ld/testsuite/ld-h8300/relax-7a.s ld/testsuite/ld-h8300/relax-7b.s ld/testsuite/ld-h8300/relax.d ld/testsuite/ld-h8300/relax.s ld/testsuite/ld-i386/abs.d ld/testsuite/ld-i386/abs.s ld/testsuite/ld-i386/alloc.d ld/testsuite/ld-i386/alloc.s ld/testsuite/ld-i386/alloc.t ld/testsuite/ld-i386/combreloc.d ld/testsuite/ld-i386/combreloc.s ld/testsuite/ld-i386/compressed1.d ld/testsuite/ld-i386/compressed1.s ld/testsuite/ld-i386/discarded1.d ld/testsuite/ld-i386/discarded1.s ld/testsuite/ld-i386/discarded1.t ld/testsuite/ld-i386/emit-relocs-nacl.rd ld/testsuite/ld-i386/emit-relocs.rd ld/testsuite/ld-i386/emit-relocs.s ld/testsuite/ld-i386/export-class.exp ld/testsuite/ld-i386/hidden1.d ld/testsuite/ld-i386/hidden1.s ld/testsuite/ld-i386/hidden2.d ld/testsuite/ld-i386/hidden2.s ld/testsuite/ld-i386/hidden3.d ld/testsuite/ld-i386/hidden3.s ld/testsuite/ld-i386/i386-export-class.rd ld/testsuite/ld-i386/i386-export-class.xd ld/testsuite/ld-i386/i386.exp ld/testsuite/ld-i386/lea1.s ld/testsuite/ld-i386/lea1a.d ld/testsuite/ld-i386/lea1b.d ld/testsuite/ld-i386/lea1c.d ld/testsuite/ld-i386/lea1d.d ld/testsuite/ld-i386/lea1e.d ld/testsuite/ld-i386/lea1f.d ld/testsuite/ld-i386/mov1.s ld/testsuite/ld-i386/mov1a.d ld/testsuite/ld-i386/mov1b.d ld/testsuite/ld-i386/nogot1.d ld/testsuite/ld-i386/nogot1.s ld/testsuite/ld-i386/nogot2.d ld/testsuite/ld-i386/nogot2.s ld/testsuite/ld-i386/pcrel16.d ld/testsuite/ld-i386/pcrel16.s ld/testsuite/ld-i386/pcrel16abs.d ld/testsuite/ld-i386/pcrel16abs.s ld/testsuite/ld-i386/pcrel8.d ld/testsuite/ld-i386/pcrel8.s ld/testsuite/ld-i386/plt-nacl.pd ld/testsuite/ld-i386/plt-pic-nacl.pd ld/testsuite/ld-i386/plt-pic.pd ld/testsuite/ld-i386/plt-pic.s ld/testsuite/ld-i386/plt.pd ld/testsuite/ld-i386/plt.s ld/testsuite/ld-i386/pltlib.s ld/testsuite/ld-i386/pr12570a.d ld/testsuite/ld-i386/pr12570a.s ld/testsuite/ld-i386/pr12570b.d ld/testsuite/ld-i386/pr12570b.s ld/testsuite/ld-i386/pr12627.d ld/testsuite/ld-i386/pr12627.s ld/testsuite/ld-i386/pr12627.t ld/testsuite/ld-i386/pr12718.d ld/testsuite/ld-i386/pr12718.s ld/testsuite/ld-i386/pr12921.d ld/testsuite/ld-i386/pr12921.s ld/testsuite/ld-i386/pr13302.d ld/testsuite/ld-i386/pr13302.s ld/testsuite/ld-i386/pr14215.d ld/testsuite/ld-i386/pr14215.s ld/testsuite/ld-i386/protected1.d ld/testsuite/ld-i386/protected1.s ld/testsuite/ld-i386/protected2.d ld/testsuite/ld-i386/protected2.s ld/testsuite/ld-i386/protected3.d ld/testsuite/ld-i386/protected3.s ld/testsuite/ld-i386/protected4.d ld/testsuite/ld-i386/protected4.s ld/testsuite/ld-i386/protected5.d ld/testsuite/ld-i386/protected5.s ld/testsuite/ld-i386/reloc.d ld/testsuite/ld-i386/reloc.s ld/testsuite/ld-i386/tlsbin-nacl.rd ld/testsuite/ld-i386/tlsbin.dd ld/testsuite/ld-i386/tlsbin.rd ld/testsuite/ld-i386/tlsbin.s ld/testsuite/ld-i386/tlsbin.sd ld/testsuite/ld-i386/tlsbin.td ld/testsuite/ld-i386/tlsbindesc-nacl.rd ld/testsuite/ld-i386/tlsbindesc.dd ld/testsuite/ld-i386/tlsbindesc.rd ld/testsuite/ld-i386/tlsbindesc.s ld/testsuite/ld-i386/tlsbindesc.sd ld/testsuite/ld-i386/tlsbindesc.td ld/testsuite/ld-i386/tlsbinpic.s ld/testsuite/ld-i386/tlsdesc-nacl.rd ld/testsuite/ld-i386/tlsdesc.dd ld/testsuite/ld-i386/tlsdesc.rd ld/testsuite/ld-i386/tlsdesc.s ld/testsuite/ld-i386/tlsdesc.sd ld/testsuite/ld-i386/tlsdesc.td ld/testsuite/ld-i386/tlsg.s ld/testsuite/ld-i386/tlsg.sd ld/testsuite/ld-i386/tlsgd1.dd ld/testsuite/ld-i386/tlsgd1.s ld/testsuite/ld-i386/tlsgd2.d ld/testsuite/ld-i386/tlsgd2.s ld/testsuite/ld-i386/tlsgdesc-nacl.rd ld/testsuite/ld-i386/tlsgdesc.dd ld/testsuite/ld-i386/tlsgdesc.rd ld/testsuite/ld-i386/tlsgdesc.s ld/testsuite/ld-i386/tlsie1.dd ld/testsuite/ld-i386/tlsie1.s ld/testsuite/ld-i386/tlsie2.d ld/testsuite/ld-i386/tlsie2.s ld/testsuite/ld-i386/tlsie3.d ld/testsuite/ld-i386/tlsie3.s ld/testsuite/ld-i386/tlsie4.d ld/testsuite/ld-i386/tlsie4.s ld/testsuite/ld-i386/tlsie5.d ld/testsuite/ld-i386/tlsie5.s ld/testsuite/ld-i386/tlsindntpoff.dd ld/testsuite/ld-i386/tlsindntpoff.s ld/testsuite/ld-i386/tlsld1.dd ld/testsuite/ld-i386/tlsld1.s ld/testsuite/ld-i386/tlslib.s ld/testsuite/ld-i386/tlsnopic-nacl.rd ld/testsuite/ld-i386/tlsnopic.dd ld/testsuite/ld-i386/tlsnopic.rd ld/testsuite/ld-i386/tlsnopic.sd ld/testsuite/ld-i386/tlsnopic1.s ld/testsuite/ld-i386/tlsnopic2.s ld/testsuite/ld-i386/tlspic-nacl.rd ld/testsuite/ld-i386/tlspic.dd ld/testsuite/ld-i386/tlspic.rd ld/testsuite/ld-i386/tlspic.sd ld/testsuite/ld-i386/tlspic.td ld/testsuite/ld-i386/tlspic1.s ld/testsuite/ld-i386/tlspic2.s ld/testsuite/ld-i386/tlspie1.d ld/testsuite/ld-i386/tlspie1.s ld/testsuite/ld-i386/tlspie2.d ld/testsuite/ld-i386/tlspie2.s ld/testsuite/ld-i386/vxworks1-lib.dd ld/testsuite/ld-i386/vxworks1-lib.nd ld/testsuite/ld-i386/vxworks1-lib.rd ld/testsuite/ld-i386/vxworks1-lib.s ld/testsuite/ld-i386/vxworks1-lib.td ld/testsuite/ld-i386/vxworks1-static.d ld/testsuite/ld-i386/vxworks1.dd ld/testsuite/ld-i386/vxworks1.ld ld/testsuite/ld-i386/vxworks1.rd ld/testsuite/ld-i386/vxworks1.s ld/testsuite/ld-i386/vxworks2-static.sd ld/testsuite/ld-i386/vxworks2.s ld/testsuite/ld-i386/vxworks2.sd ld/testsuite/ld-i386/warn1.d ld/testsuite/ld-i386/warn1.s ld/testsuite/ld-i386/zero.s ld/testsuite/ld-ia64/ia64.exp ld/testsuite/ld-ia64/line.exp ld/testsuite/ld-ia64/link-order.d ld/testsuite/ld-ia64/local1.d ld/testsuite/ld-ia64/local1.map ld/testsuite/ld-ia64/local1.s ld/testsuite/ld-ia64/merge1.d ld/testsuite/ld-ia64/merge1.s ld/testsuite/ld-ia64/merge2.d ld/testsuite/ld-ia64/merge2.s ld/testsuite/ld-ia64/merge3.d ld/testsuite/ld-ia64/merge3.s ld/testsuite/ld-ia64/merge4.d ld/testsuite/ld-ia64/merge4.s ld/testsuite/ld-ia64/merge5.d ld/testsuite/ld-ia64/merge5.s ld/testsuite/ld-ia64/tlsbin.dd ld/testsuite/ld-ia64/tlsbin.rd ld/testsuite/ld-ia64/tlsbin.s ld/testsuite/ld-ia64/tlsbin.sd ld/testsuite/ld-ia64/tlsbin.td ld/testsuite/ld-ia64/tlsbinpic.s ld/testsuite/ld-ia64/tlsg.s ld/testsuite/ld-ia64/tlsg.sd ld/testsuite/ld-ia64/tlslib.s ld/testsuite/ld-ia64/tlspic.dd ld/testsuite/ld-ia64/tlspic.rd ld/testsuite/ld-ia64/tlspic.sd ld/testsuite/ld-ia64/tlspic.td ld/testsuite/ld-ia64/tlspic1.s ld/testsuite/ld-ia64/tlspic2.s ld/testsuite/ld-ia64/undefined.s ld/testsuite/ld-ifunc/binutils.exp ld/testsuite/ld-ifunc/ifunc-1-local-x86.d ld/testsuite/ld-ifunc/ifunc-1-local-x86.s ld/testsuite/ld-ifunc/ifunc-1-x86.d ld/testsuite/ld-ifunc/ifunc-1-x86.s ld/testsuite/ld-ifunc/ifunc-10-i386.d ld/testsuite/ld-ifunc/ifunc-10-i386.s ld/testsuite/ld-ifunc/ifunc-10-x86-64.d ld/testsuite/ld-ifunc/ifunc-10-x86-64.s ld/testsuite/ld-ifunc/ifunc-11-i386.d ld/testsuite/ld-ifunc/ifunc-11-i386.s ld/testsuite/ld-ifunc/ifunc-11-x86-64.d ld/testsuite/ld-ifunc/ifunc-11-x86-64.s ld/testsuite/ld-ifunc/ifunc-12-i386.d ld/testsuite/ld-ifunc/ifunc-12-i386.s ld/testsuite/ld-ifunc/ifunc-12-x86-64.d ld/testsuite/ld-ifunc/ifunc-12-x86-64.s ld/testsuite/ld-ifunc/ifunc-13-i386.d ld/testsuite/ld-ifunc/ifunc-13-x86-64.d ld/testsuite/ld-ifunc/ifunc-13a-i386.s ld/testsuite/ld-ifunc/ifunc-13a-x86-64.s ld/testsuite/ld-ifunc/ifunc-13b-i386.s ld/testsuite/ld-ifunc/ifunc-13b-x86-64.s ld/testsuite/ld-ifunc/ifunc-14a-i386.d ld/testsuite/ld-ifunc/ifunc-14a-x86-64.d ld/testsuite/ld-ifunc/ifunc-14a.s ld/testsuite/ld-ifunc/ifunc-14b-i386.d ld/testsuite/ld-ifunc/ifunc-14b-x86-64.d ld/testsuite/ld-ifunc/ifunc-14b.s ld/testsuite/ld-ifunc/ifunc-14c-i386.d ld/testsuite/ld-ifunc/ifunc-14c-x86-64.d ld/testsuite/ld-ifunc/ifunc-14c.s ld/testsuite/ld-ifunc/ifunc-14d-i386.d ld/testsuite/ld-ifunc/ifunc-14d-x86-64.d ld/testsuite/ld-ifunc/ifunc-14e-i386.d ld/testsuite/ld-ifunc/ifunc-14e-x86-64.d ld/testsuite/ld-ifunc/ifunc-14f-i386.d ld/testsuite/ld-ifunc/ifunc-14f-x86-64.d ld/testsuite/ld-ifunc/ifunc-15-i386.d ld/testsuite/ld-ifunc/ifunc-15-i386.s ld/testsuite/ld-ifunc/ifunc-15-x86-64.d ld/testsuite/ld-ifunc/ifunc-15-x86-64.s ld/testsuite/ld-ifunc/ifunc-16-i386.d ld/testsuite/ld-ifunc/ifunc-16-x86-64.d ld/testsuite/ld-ifunc/ifunc-16-x86.s ld/testsuite/ld-ifunc/ifunc-17a-i386.d ld/testsuite/ld-ifunc/ifunc-17a-x86-64.d ld/testsuite/ld-ifunc/ifunc-17a.s ld/testsuite/ld-ifunc/ifunc-17b-i386.d ld/testsuite/ld-ifunc/ifunc-17b-x86-64.d ld/testsuite/ld-ifunc/ifunc-17b.s ld/testsuite/ld-ifunc/ifunc-18a-i386.d ld/testsuite/ld-ifunc/ifunc-18a-x86-64.d ld/testsuite/ld-ifunc/ifunc-18a.s ld/testsuite/ld-ifunc/ifunc-18b-i386.d ld/testsuite/ld-ifunc/ifunc-18b-x86-64.d ld/testsuite/ld-ifunc/ifunc-18b.s ld/testsuite/ld-ifunc/ifunc-19a-i386.d ld/testsuite/ld-ifunc/ifunc-19a-x86-64.d ld/testsuite/ld-ifunc/ifunc-19a.s ld/testsuite/ld-ifunc/ifunc-19b-i386.d ld/testsuite/ld-ifunc/ifunc-19b-x86-64.d ld/testsuite/ld-ifunc/ifunc-19b.s ld/testsuite/ld-ifunc/ifunc-2-i386.d ld/testsuite/ld-ifunc/ifunc-2-i386.s ld/testsuite/ld-ifunc/ifunc-2-local-i386.d ld/testsuite/ld-ifunc/ifunc-2-local-i386.s ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.s ld/testsuite/ld-ifunc/ifunc-2-x86-64.d ld/testsuite/ld-ifunc/ifunc-2-x86-64.s ld/testsuite/ld-ifunc/ifunc-20-i386.d ld/testsuite/ld-ifunc/ifunc-20-x86-64.d ld/testsuite/ld-ifunc/ifunc-20.s ld/testsuite/ld-ifunc/ifunc-3-x86.s ld/testsuite/ld-ifunc/ifunc-3a-x86.d ld/testsuite/ld-ifunc/ifunc-3b-x86.d ld/testsuite/ld-ifunc/ifunc-4-local-x86.d ld/testsuite/ld-ifunc/ifunc-4-local-x86.s ld/testsuite/ld-ifunc/ifunc-4-x86.d ld/testsuite/ld-ifunc/ifunc-4-x86.s ld/testsuite/ld-ifunc/ifunc-4a-x86.d ld/testsuite/ld-ifunc/ifunc-5-i386.s ld/testsuite/ld-ifunc/ifunc-5-local-i386.s ld/testsuite/ld-ifunc/ifunc-5-local-x86-64.s ld/testsuite/ld-ifunc/ifunc-5-x86-64.s ld/testsuite/ld-ifunc/ifunc-5a-i386.d ld/testsuite/ld-ifunc/ifunc-5a-local-i386.d ld/testsuite/ld-ifunc/ifunc-5a-local-x86-64.d ld/testsuite/ld-ifunc/ifunc-5a-x86-64.d ld/testsuite/ld-ifunc/ifunc-5b-i386.d ld/testsuite/ld-ifunc/ifunc-5b-local-i386.d ld/testsuite/ld-ifunc/ifunc-5b-local-x86-64.d ld/testsuite/ld-ifunc/ifunc-5b-x86-64.d ld/testsuite/ld-ifunc/ifunc-5r-local-i386.d ld/testsuite/ld-ifunc/ifunc-5r-local-x86-64.d ld/testsuite/ld-ifunc/ifunc-6-i386.s ld/testsuite/ld-ifunc/ifunc-6-x86-64.s ld/testsuite/ld-ifunc/ifunc-6a-i386.d ld/testsuite/ld-ifunc/ifunc-6a-x86-64.d ld/testsuite/ld-ifunc/ifunc-6b-i386.d ld/testsuite/ld-ifunc/ifunc-6b-x86-64.d ld/testsuite/ld-ifunc/ifunc-7-i386.s ld/testsuite/ld-ifunc/ifunc-7-x86-64.s ld/testsuite/ld-ifunc/ifunc-7a-i386.d ld/testsuite/ld-ifunc/ifunc-7a-x86-64.d ld/testsuite/ld-ifunc/ifunc-7b-i386.d ld/testsuite/ld-ifunc/ifunc-7b-x86-64.d ld/testsuite/ld-ifunc/ifunc-8-i386.d ld/testsuite/ld-ifunc/ifunc-8-x86-64.d ld/testsuite/ld-ifunc/ifunc-8a-i386.s ld/testsuite/ld-ifunc/ifunc-8a-x86-64.s ld/testsuite/ld-ifunc/ifunc-8b-i386.s ld/testsuite/ld-ifunc/ifunc-8b-x86-64.s ld/testsuite/ld-ifunc/ifunc-9-x86.d ld/testsuite/ld-ifunc/ifunc-9-x86.s ld/testsuite/ld-ifunc/ifunc-common-1.out ld/testsuite/ld-ifunc/ifunc-common-1a.c ld/testsuite/ld-ifunc/ifunc-common-1b.c ld/testsuite/ld-ifunc/ifunc.exp ld/testsuite/ld-ifunc/lib.c ld/testsuite/ld-ifunc/prog.c ld/testsuite/ld-ifunc/test-1.c ld/testsuite/ld-ifunc/test-2.c ld/testsuite/ld-libs/lib-1.s ld/testsuite/ld-libs/lib-2.d ld/testsuite/ld-libs/lib-2.s ld/testsuite/ld-libs/libs.exp ld/testsuite/ld-linkonce/linkonce.exp ld/testsuite/ld-linkonce/x.s ld/testsuite/ld-linkonce/y.s ld/testsuite/ld-linkonce/zeroeh.ld ld/testsuite/ld-linkonce/zeroehl32.d ld/testsuite/ld-m68hc11/adj-brset.d ld/testsuite/ld-m68hc11/adj-brset.s ld/testsuite/ld-m68hc11/adj-jump.d ld/testsuite/ld-m68hc11/adj-jump.s ld/testsuite/ld-m68hc11/bug-1403.d ld/testsuite/ld-m68hc11/bug-1403.s ld/testsuite/ld-m68hc11/bug-1417.d ld/testsuite/ld-m68hc11/bug-1417.s ld/testsuite/ld-m68hc11/bug-3331.d ld/testsuite/ld-m68hc11/bug-3331.s ld/testsuite/ld-m68hc11/far-hc11.d ld/testsuite/ld-m68hc11/far-hc11.s ld/testsuite/ld-m68hc11/far-hc12.d ld/testsuite/ld-m68hc11/far-hc12.ld ld/testsuite/ld-m68hc11/far-hc12.s ld/testsuite/ld-m68hc11/link-hc12.s ld/testsuite/ld-m68hc11/link-hcs12.d ld/testsuite/ld-m68hc11/link-hcs12.s ld/testsuite/ld-m68hc11/m68hc11.exp ld/testsuite/ld-m68hc11/movw.d ld/testsuite/ld-m68hc11/movw.s ld/testsuite/ld-m68hc11/relax-direct.d ld/testsuite/ld-m68hc11/relax-direct.s ld/testsuite/ld-m68hc11/relax-group.d ld/testsuite/ld-m68hc11/relax-group.s ld/testsuite/ld-m68hc11/xgate-link.d ld/testsuite/ld-m68hc11/xgate-link.s ld/testsuite/ld-m68hc11/xgate-offset.d ld/testsuite/ld-m68hc11/xgate-offset.s ld/testsuite/ld-m68hc11/xgate1.d ld/testsuite/ld-m68hc11/xgate1.s ld/testsuite/ld-m68hc11/xgate2.s ld/testsuite/ld-m68k/got-1.d ld/testsuite/ld-m68k/got-1.s ld/testsuite/ld-m68k/got-multigot-12-13-14-34-35-ok.d ld/testsuite/ld-m68k/got-multigot-14-ok.d ld/testsuite/ld-m68k/got-multigot-15-er.d ld/testsuite/ld-m68k/got-negative-12-13-14-34-ok.d ld/testsuite/ld-m68k/got-negative-12-13-14-35-er.d ld/testsuite/ld-m68k/got-negative-14-ok.d ld/testsuite/ld-m68k/got-negative-15-er.d ld/testsuite/ld-m68k/got-single-12-ok.d ld/testsuite/ld-m68k/got-single-13-er.d ld/testsuite/ld-m68k/got-xgot-12-13-14-15-34-35-ok.d ld/testsuite/ld-m68k/got-xgot-15-ok.d ld/testsuite/ld-m68k/isaa-mac.d ld/testsuite/ld-m68k/isaa-mac.s ld/testsuite/ld-m68k/isaa-nodiv.s ld/testsuite/ld-m68k/isaa.d ld/testsuite/ld-m68k/isaa.s ld/testsuite/ld-m68k/isaaplus.d ld/testsuite/ld-m68k/isaaplus.s ld/testsuite/ld-m68k/isab-float.d ld/testsuite/ld-m68k/isab-float.s ld/testsuite/ld-m68k/isab-nousp.s ld/testsuite/ld-m68k/isab.d ld/testsuite/ld-m68k/isab.s ld/testsuite/ld-m68k/m68k-got.exp ld/testsuite/ld-m68k/m68k.exp ld/testsuite/ld-m68k/merge-error-1a.d ld/testsuite/ld-m68k/merge-error-1a.s ld/testsuite/ld-m68k/merge-error-1b.d ld/testsuite/ld-m68k/merge-error-1b.s ld/testsuite/ld-m68k/merge-error-1c.d ld/testsuite/ld-m68k/merge-error-1d.d ld/testsuite/ld-m68k/merge-error-1e.d ld/testsuite/ld-m68k/merge-ok-1a.d ld/testsuite/ld-m68k/merge-ok-1b.d ld/testsuite/ld-m68k/merge-ok-1c.d ld/testsuite/ld-m68k/merge.ld ld/testsuite/ld-m68k/plt1-68020.d ld/testsuite/ld-m68k/plt1-cpu32.d ld/testsuite/ld-m68k/plt1-empty.s ld/testsuite/ld-m68k/plt1-isab.d ld/testsuite/ld-m68k/plt1-isac.d ld/testsuite/ld-m68k/plt1.ld ld/testsuite/ld-m68k/plt1.s ld/testsuite/ld-m68k/tls-def-1.d ld/testsuite/ld-m68k/tls-def-1.s ld/testsuite/ld-m68k/tls-gd-1.d ld/testsuite/ld-m68k/tls-gd-1.d2 ld/testsuite/ld-m68k/tls-gd-1.d3 ld/testsuite/ld-m68k/tls-gd-1.s ld/testsuite/ld-m68k/tls-gd-2.d ld/testsuite/ld-m68k/tls-gd-2.s ld/testsuite/ld-m68k/tls-gd-3.d ld/testsuite/ld-m68k/tls-gd-3.s ld/testsuite/ld-m68k/tls-gd-ie-1.d ld/testsuite/ld-m68k/tls-gd-ie-1.s ld/testsuite/ld-m68k/tls-ie-1.d ld/testsuite/ld-m68k/tls-ie-1.s ld/testsuite/ld-m68k/tls-ld-1.d ld/testsuite/ld-m68k/tls-ld-1.s ld/testsuite/ld-m68k/tls-ld-2.d ld/testsuite/ld-m68k/tls-ld-2.s ld/testsuite/ld-m68k/tls-le-1.s ld/testsuite/ld-m68k/tls-main-1.d ld/testsuite/ld-m68k/tls-main-1.s ld/testsuite/ld-m68k/tls-no-1.s ld/testsuite/ld-mep/mep.exp ld/testsuite/ld-mep/mep1.ld ld/testsuite/ld-mep/mep1.s ld/testsuite/ld-metag/external.s ld/testsuite/ld-metag/metag.exp ld/testsuite/ld-metag/pcrel.d ld/testsuite/ld-metag/pcrel.s ld/testsuite/ld-metag/shared.d ld/testsuite/ld-metag/shared.r ld/testsuite/ld-metag/shared.s ld/testsuite/ld-metag/stub.d ld/testsuite/ld-metag/stub.s ld/testsuite/ld-metag/stub_pic_app.d ld/testsuite/ld-metag/stub_pic_app.r ld/testsuite/ld-metag/stub_pic_app.s ld/testsuite/ld-metag/stub_pic_shared.d ld/testsuite/ld-metag/stub_pic_shared.s ld/testsuite/ld-metag/stub_shared.d ld/testsuite/ld-metag/stub_shared.r ld/testsuite/ld-metag/stub_shared.s ld/testsuite/ld-mips-elf/attr-gnu-4-0.s ld/testsuite/ld-mips-elf/attr-gnu-4-00.d ld/testsuite/ld-mips-elf/attr-gnu-4-01.d ld/testsuite/ld-mips-elf/attr-gnu-4-02.d ld/testsuite/ld-mips-elf/attr-gnu-4-03.d ld/testsuite/ld-mips-elf/attr-gnu-4-04.d ld/testsuite/ld-mips-elf/attr-gnu-4-05.d ld/testsuite/ld-mips-elf/attr-gnu-4-1.s ld/testsuite/ld-mips-elf/attr-gnu-4-10.d ld/testsuite/ld-mips-elf/attr-gnu-4-11.d ld/testsuite/ld-mips-elf/attr-gnu-4-12.d ld/testsuite/ld-mips-elf/attr-gnu-4-13.d ld/testsuite/ld-mips-elf/attr-gnu-4-14.d ld/testsuite/ld-mips-elf/attr-gnu-4-15.d ld/testsuite/ld-mips-elf/attr-gnu-4-2.s ld/testsuite/ld-mips-elf/attr-gnu-4-20.d ld/testsuite/ld-mips-elf/attr-gnu-4-21.d ld/testsuite/ld-mips-elf/attr-gnu-4-22.d ld/testsuite/ld-mips-elf/attr-gnu-4-23.d ld/testsuite/ld-mips-elf/attr-gnu-4-24.d ld/testsuite/ld-mips-elf/attr-gnu-4-25.d ld/testsuite/ld-mips-elf/attr-gnu-4-3.s ld/testsuite/ld-mips-elf/attr-gnu-4-30.d ld/testsuite/ld-mips-elf/attr-gnu-4-31.d ld/testsuite/ld-mips-elf/attr-gnu-4-32.d ld/testsuite/ld-mips-elf/attr-gnu-4-33.d ld/testsuite/ld-mips-elf/attr-gnu-4-34.d ld/testsuite/ld-mips-elf/attr-gnu-4-35.d ld/testsuite/ld-mips-elf/attr-gnu-4-4.s ld/testsuite/ld-mips-elf/attr-gnu-4-40.d ld/testsuite/ld-mips-elf/attr-gnu-4-41.d ld/testsuite/ld-mips-elf/attr-gnu-4-42.d ld/testsuite/ld-mips-elf/attr-gnu-4-43.d ld/testsuite/ld-mips-elf/attr-gnu-4-44.d ld/testsuite/ld-mips-elf/attr-gnu-4-45.d ld/testsuite/ld-mips-elf/attr-gnu-4-5.s ld/testsuite/ld-mips-elf/attr-gnu-4-51.d ld/testsuite/ld-mips-elf/branch-misc-1.d ld/testsuite/ld-mips-elf/comm-data.exp ld/testsuite/ld-mips-elf/dyn-sec64.d ld/testsuite/ld-mips-elf/dyn-sec64.ld ld/testsuite/ld-mips-elf/dyn-sec64.s ld/testsuite/ld-mips-elf/eh-frame1-n32.d ld/testsuite/ld-mips-elf/eh-frame1-n64.d ld/testsuite/ld-mips-elf/eh-frame1.ld ld/testsuite/ld-mips-elf/eh-frame1.s ld/testsuite/ld-mips-elf/eh-frame2-n32.d ld/testsuite/ld-mips-elf/eh-frame2-n64.d ld/testsuite/ld-mips-elf/eh-frame3.d ld/testsuite/ld-mips-elf/eh-frame4.d ld/testsuite/ld-mips-elf/eh-frame5.d ld/testsuite/ld-mips-elf/eh-frame5.ld ld/testsuite/ld-mips-elf/eh-frame5.s ld/testsuite/ld-mips-elf/ehdr_start-1.ld ld/testsuite/ld-mips-elf/ehdr_start-1.nd ld/testsuite/ld-mips-elf/ehdr_start-2.ld ld/testsuite/ld-mips-elf/ehdr_start-2.nd ld/testsuite/ld-mips-elf/ehdr_start-new.s ld/testsuite/ld-mips-elf/ehdr_start-o32.s ld/testsuite/ld-mips-elf/elf-rel-got-n32-embed.d ld/testsuite/ld-mips-elf/elf-rel-got-n32.d ld/testsuite/ld-mips-elf/elf-rel-got-n64-embed.d ld/testsuite/ld-mips-elf/elf-rel-got-n64-linux.d ld/testsuite/ld-mips-elf/elf-rel-got-n64.d ld/testsuite/ld-mips-elf/elf-rel-xgot-n32-embed.d ld/testsuite/ld-mips-elf/elf-rel-xgot-n32.d ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-embed.d ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-linux.d ld/testsuite/ld-mips-elf/elf-rel-xgot-n64.d ld/testsuite/ld-mips-elf/emit-relocs-1.d ld/testsuite/ld-mips-elf/emit-relocs-1.ld ld/testsuite/ld-mips-elf/emit-relocs-1a.s ld/testsuite/ld-mips-elf/emit-relocs-1b.s ld/testsuite/ld-mips-elf/export-class-call16-def.s ld/testsuite/ld-mips-elf/export-class-call16-n32.dd ld/testsuite/ld-mips-elf/export-class-call16-n32.gd ld/testsuite/ld-mips-elf/export-class-call16-n32.s ld/testsuite/ld-mips-elf/export-class-call16-n64.dd ld/testsuite/ld-mips-elf/export-class-call16-n64.gd ld/testsuite/ld-mips-elf/export-class-call16-n64.s ld/testsuite/ld-mips-elf/export-class-call16-o32-irix.dd ld/testsuite/ld-mips-elf/export-class-call16-o32.dd ld/testsuite/ld-mips-elf/export-class-call16-o32.gd ld/testsuite/ld-mips-elf/export-class-call16-o32.s ld/testsuite/ld-mips-elf/export-class-call16.ld ld/testsuite/ld-mips-elf/export-class.exp ld/testsuite/ld-mips-elf/got-dump-1.d ld/testsuite/ld-mips-elf/got-dump-1.ld ld/testsuite/ld-mips-elf/got-dump-1.s ld/testsuite/ld-mips-elf/got-dump-2.d ld/testsuite/ld-mips-elf/got-dump-2.ld ld/testsuite/ld-mips-elf/got-dump-2.s ld/testsuite/ld-mips-elf/got-page-1.d ld/testsuite/ld-mips-elf/got-page-1.ld ld/testsuite/ld-mips-elf/got-page-1.s ld/testsuite/ld-mips-elf/got-page-2.d ld/testsuite/ld-mips-elf/got-page-2.s ld/testsuite/ld-mips-elf/got-page-3.d ld/testsuite/ld-mips-elf/got-page-3a.s ld/testsuite/ld-mips-elf/got-page-3b.s ld/testsuite/ld-mips-elf/got-page-3c.s ld/testsuite/ld-mips-elf/got-page-4a.d ld/testsuite/ld-mips-elf/got-page-4a.got ld/testsuite/ld-mips-elf/got-page-4a.s ld/testsuite/ld-mips-elf/got-page-4b.d ld/testsuite/ld-mips-elf/got-page-4b.got ld/testsuite/ld-mips-elf/got-page-4b.s ld/testsuite/ld-mips-elf/got-page-5.d ld/testsuite/ld-mips-elf/got-page-5.got ld/testsuite/ld-mips-elf/got-page-5.s ld/testsuite/ld-mips-elf/got-page-6.d ld/testsuite/ld-mips-elf/got-page-6.got ld/testsuite/ld-mips-elf/got-page-6.s ld/testsuite/ld-mips-elf/got-page-7.d ld/testsuite/ld-mips-elf/got-page-7.got ld/testsuite/ld-mips-elf/got-page-7a.s ld/testsuite/ld-mips-elf/got-page-7b.s ld/testsuite/ld-mips-elf/got-page-7c.s ld/testsuite/ld-mips-elf/got-page-7d.s ld/testsuite/ld-mips-elf/got-page-7e.s ld/testsuite/ld-mips-elf/got-vers-1.dd ld/testsuite/ld-mips-elf/got-vers-1.rd ld/testsuite/ld-mips-elf/got-vers-1.sd ld/testsuite/ld-mips-elf/got-vers-1.ver ld/testsuite/ld-mips-elf/got-vers-1a.s ld/testsuite/ld-mips-elf/got-vers-1b.s ld/testsuite/ld-mips-elf/gp-hidden-64.rd ld/testsuite/ld-mips-elf/gp-hidden-lib-64.rd ld/testsuite/ld-mips-elf/gp-hidden-lib.rd ld/testsuite/ld-mips-elf/gp-hidden-lib.s ld/testsuite/ld-mips-elf/gp-hidden-ver-64.rd ld/testsuite/ld-mips-elf/gp-hidden-ver.rd ld/testsuite/ld-mips-elf/gp-hidden-ver.s ld/testsuite/ld-mips-elf/gp-hidden-ver.ver ld/testsuite/ld-mips-elf/gp-hidden.rd ld/testsuite/ld-mips-elf/gp-hidden.s ld/testsuite/ld-mips-elf/gp-hidden.sd ld/testsuite/ld-mips-elf/hash1.s ld/testsuite/ld-mips-elf/hash1a.d ld/testsuite/ld-mips-elf/hash1b.d ld/testsuite/ld-mips-elf/hash1c.d ld/testsuite/ld-mips-elf/jalbal.d ld/testsuite/ld-mips-elf/jalbal.s ld/testsuite/ld-mips-elf/jaloverflow-2.d ld/testsuite/ld-mips-elf/jaloverflow-2.s ld/testsuite/ld-mips-elf/jaloverflow.d ld/testsuite/ld-mips-elf/jaloverflow.s ld/testsuite/ld-mips-elf/jalr3.dd ld/testsuite/ld-mips-elf/jalr3.ld ld/testsuite/ld-mips-elf/jalx-1.d ld/testsuite/ld-mips-elf/jalx-1.ld ld/testsuite/ld-mips-elf/jalx-1.s ld/testsuite/ld-mips-elf/jalx-2-ex.s ld/testsuite/ld-mips-elf/jalx-2-main.s ld/testsuite/ld-mips-elf/jalx-2-printf.s ld/testsuite/ld-mips-elf/jalx-2.dd ld/testsuite/ld-mips-elf/jalx-2.ld ld/testsuite/ld-mips-elf/jr-to-b-1.d ld/testsuite/ld-mips-elf/jr-to-b-1.s ld/testsuite/ld-mips-elf/jr-to-b-2.d ld/testsuite/ld-mips-elf/jr-to-b-2.s ld/testsuite/ld-mips-elf/jr.s ld/testsuite/ld-mips-elf/mips-32-export-class.rd ld/testsuite/ld-mips-elf/mips-32-export-class.xd ld/testsuite/ld-mips-elf/mips-64-export-class.rd ld/testsuite/ld-mips-elf/mips-64-export-class.xd ld/testsuite/ld-mips-elf/mips-dyn.ld ld/testsuite/ld-mips-elf/mips-elf-flags.exp ld/testsuite/ld-mips-elf/mips-elf.exp ld/testsuite/ld-mips-elf/mips-lib.ld ld/testsuite/ld-mips-elf/mips16-1.d ld/testsuite/ld-mips-elf/mips16-1a.s ld/testsuite/ld-mips-elf/mips16-1b.s ld/testsuite/ld-mips-elf/mips16-and-micromips.d ld/testsuite/ld-mips-elf/mips16-call-global-1.s ld/testsuite/ld-mips-elf/mips16-call-global-2.s ld/testsuite/ld-mips-elf/mips16-call-global-3.s ld/testsuite/ld-mips-elf/mips16-call-global.d ld/testsuite/ld-mips-elf/mips16-hilo-n32.d ld/testsuite/ld-mips-elf/mips16-hilo.d ld/testsuite/ld-mips-elf/mips16-hilo.ld ld/testsuite/ld-mips-elf/mips16-hilo.s ld/testsuite/ld-mips-elf/mips16-intermix-1.s ld/testsuite/ld-mips-elf/mips16-intermix-2.s ld/testsuite/ld-mips-elf/mips16-intermix.d ld/testsuite/ld-mips-elf/mips16-local-stubs-1.d ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s ld/testsuite/ld-mips-elf/mips16-pic-1-dummy.s ld/testsuite/ld-mips-elf/mips16-pic-1.dd ld/testsuite/ld-mips-elf/mips16-pic-1.gd ld/testsuite/ld-mips-elf/mips16-pic-1.inc ld/testsuite/ld-mips-elf/mips16-pic-1.ld ld/testsuite/ld-mips-elf/mips16-pic-1a.s ld/testsuite/ld-mips-elf/mips16-pic-1b.s ld/testsuite/ld-mips-elf/mips16-pic-2.ad ld/testsuite/ld-mips-elf/mips16-pic-2.dd ld/testsuite/ld-mips-elf/mips16-pic-2.gd ld/testsuite/ld-mips-elf/mips16-pic-2.nd ld/testsuite/ld-mips-elf/mips16-pic-2.rd ld/testsuite/ld-mips-elf/mips16-pic-2a.s ld/testsuite/ld-mips-elf/mips16-pic-2b.s ld/testsuite/ld-mips-elf/mips16-pic-3.dd ld/testsuite/ld-mips-elf/mips16-pic-3.gd ld/testsuite/ld-mips-elf/mips16-pic-3.inc ld/testsuite/ld-mips-elf/mips16-pic-3.rd ld/testsuite/ld-mips-elf/mips16-pic-3a.s ld/testsuite/ld-mips-elf/mips16-pic-3b.s ld/testsuite/ld-mips-elf/mips16-pic-4.ver ld/testsuite/ld-mips-elf/mips16-pic-4a.dd ld/testsuite/ld-mips-elf/mips16-pic-4a.gd ld/testsuite/ld-mips-elf/mips16-pic-4a.nd ld/testsuite/ld-mips-elf/mips16-pic-4a.s ld/testsuite/ld-mips-elf/mips16-pic-4b.dd ld/testsuite/ld-mips-elf/mips16-pic-4b.s ld/testsuite/ld-mips-elf/mips16-pic-4c.s ld/testsuite/ld-mips-elf/mode-change-error-1.d ld/testsuite/ld-mips-elf/mode-change-error-1a.s ld/testsuite/ld-mips-elf/mode-change-error-1b.s ld/testsuite/ld-mips-elf/multi-got-1-1.s ld/testsuite/ld-mips-elf/multi-got-1-2.s ld/testsuite/ld-mips-elf/multi-got-1.d ld/testsuite/ld-mips-elf/multi-got-hidden-1.d ld/testsuite/ld-mips-elf/multi-got-hidden-1.s ld/testsuite/ld-mips-elf/multi-got-hidden-2.d ld/testsuite/ld-mips-elf/multi-got-hidden-2.s ld/testsuite/ld-mips-elf/multi-got-no-shared-1.s ld/testsuite/ld-mips-elf/multi-got-no-shared-2.s ld/testsuite/ld-mips-elf/multi-got-no-shared.d ld/testsuite/ld-mips-elf/nan-2008.d ld/testsuite/ld-mips-elf/nan-2008.s ld/testsuite/ld-mips-elf/nan-legacy.d ld/testsuite/ld-mips-elf/nan-legacy.s ld/testsuite/ld-mips-elf/nan-mixed-1.d ld/testsuite/ld-mips-elf/nan-mixed-2.d ld/testsuite/ld-mips-elf/no-shared-1-n32.d ld/testsuite/ld-mips-elf/no-shared-1-n64.d ld/testsuite/ld-mips-elf/no-shared-1-n64.s ld/testsuite/ld-mips-elf/no-shared-1-o32.d ld/testsuite/ld-mips-elf/no-shared-1-o32.s ld/testsuite/ld-mips-elf/no-shared-1.ld ld/testsuite/ld-mips-elf/pic-and-nonpic-1-rel.dd ld/testsuite/ld-mips-elf/pic-and-nonpic-1-rel.nd ld/testsuite/ld-mips-elf/pic-and-nonpic-1.dd ld/testsuite/ld-mips-elf/pic-and-nonpic-1.ld ld/testsuite/ld-mips-elf/pic-and-nonpic-1.nd ld/testsuite/ld-mips-elf/pic-and-nonpic-1a.s ld/testsuite/ld-mips-elf/pic-and-nonpic-1b.s ld/testsuite/ld-mips-elf/pic-and-nonpic-2.d ld/testsuite/ld-mips-elf/pic-and-nonpic-2a.s ld/testsuite/ld-mips-elf/pic-and-nonpic-2b.s ld/testsuite/ld-mips-elf/pic-and-nonpic-3-error.d ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.dd ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.gd ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.ld ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.s ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.ad ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.dd ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.gd ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.ld ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.nd ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.pd ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.rd ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.s ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.sd ld/testsuite/ld-mips-elf/pic-and-nonpic-4-error.d ld/testsuite/ld-mips-elf/pic-and-nonpic-4a.s ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.ad ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.dd ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.gd ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.ld ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.nd ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.rd ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.s ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.sd ld/testsuite/ld-mips-elf/pic-and-nonpic-5a.s ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.ad ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.dd ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.gd ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.ld ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.nd ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.pd ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.rd ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.s ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.sd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.ad ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.dd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.gd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.nd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.pd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.rd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.sd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32a.s ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32b.s ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32c.s ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.ad ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.dd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.gd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.nd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.pd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.rd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.sd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64a.s ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64b.s ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64c.s ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.ad ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.dd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.gd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.nd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.pd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.rd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.sd ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32a.s ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32b.s ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32c.s ld/testsuite/ld-mips-elf/pic-and-nonpic-6.ld ld/testsuite/ld-mips-elf/region1.d ld/testsuite/ld-mips-elf/region1.t ld/testsuite/ld-mips-elf/region1a.s ld/testsuite/ld-mips-elf/region1b.s ld/testsuite/ld-mips-elf/rel32-n32.d ld/testsuite/ld-mips-elf/rel32-o32.d ld/testsuite/ld-mips-elf/rel32.s ld/testsuite/ld-mips-elf/rel64.d ld/testsuite/ld-mips-elf/rel64.s ld/testsuite/ld-mips-elf/relax-jalr-n32-shared.d ld/testsuite/ld-mips-elf/relax-jalr-n32.d ld/testsuite/ld-mips-elf/relax-jalr-n64-shared.d ld/testsuite/ld-mips-elf/relax-jalr-n64.d ld/testsuite/ld-mips-elf/relax-jalr.s ld/testsuite/ld-mips-elf/reloc-1-n32.d ld/testsuite/ld-mips-elf/reloc-1-n64.d ld/testsuite/ld-mips-elf/reloc-1-rel.d ld/testsuite/ld-mips-elf/reloc-1a.s ld/testsuite/ld-mips-elf/reloc-1b.s ld/testsuite/ld-mips-elf/reloc-2.d ld/testsuite/ld-mips-elf/reloc-2.ld ld/testsuite/ld-mips-elf/reloc-2a.s ld/testsuite/ld-mips-elf/reloc-2b.s ld/testsuite/ld-mips-elf/reloc-3-n32.d ld/testsuite/ld-mips-elf/reloc-3.d ld/testsuite/ld-mips-elf/reloc-4.d ld/testsuite/ld-mips-elf/reloc-4.s ld/testsuite/ld-mips-elf/reloc-5.d ld/testsuite/ld-mips-elf/reloc-5.s ld/testsuite/ld-mips-elf/reloc-6a.s ld/testsuite/ld-mips-elf/reloc-6b.s ld/testsuite/ld-mips-elf/reloc-estimate-1.d ld/testsuite/ld-mips-elf/reloc-estimate-1.ld ld/testsuite/ld-mips-elf/reloc-estimate-1a.s ld/testsuite/ld-mips-elf/reloc-estimate-1b.s ld/testsuite/ld-mips-elf/reloc-merge-lo16.d ld/testsuite/ld-mips-elf/reloc-merge-lo16.ld ld/testsuite/ld-mips-elf/reloc-merge-lo16.s ld/testsuite/ld-mips-elf/stub-dynsym-1-10000.d ld/testsuite/ld-mips-elf/stub-dynsym-1-2fe80.d ld/testsuite/ld-mips-elf/stub-dynsym-1-7fff.d ld/testsuite/ld-mips-elf/stub-dynsym-1-8000.d ld/testsuite/ld-mips-elf/stub-dynsym-1-fff0.d ld/testsuite/ld-mips-elf/stub-dynsym-1.ld ld/testsuite/ld-mips-elf/stub-dynsym-1.s ld/testsuite/ld-mips-elf/textrel-1.d ld/testsuite/ld-mips-elf/textrel-1.s ld/testsuite/ld-mips-elf/tls-hidden2-got.d ld/testsuite/ld-mips-elf/tls-hidden2.d ld/testsuite/ld-mips-elf/tls-hidden2a.s ld/testsuite/ld-mips-elf/tls-hidden2b.s ld/testsuite/ld-mips-elf/tls-hidden3.d ld/testsuite/ld-mips-elf/tls-hidden3.got ld/testsuite/ld-mips-elf/tls-hidden3.ld ld/testsuite/ld-mips-elf/tls-hidden3.r ld/testsuite/ld-mips-elf/tls-hidden3a.s ld/testsuite/ld-mips-elf/tls-hidden3b.s ld/testsuite/ld-mips-elf/tls-hidden4.got ld/testsuite/ld-mips-elf/tls-hidden4.r ld/testsuite/ld-mips-elf/tls-hidden4a.s ld/testsuite/ld-mips-elf/tls-hidden4b.s ld/testsuite/ld-mips-elf/tls-multi-got-1-1.s ld/testsuite/ld-mips-elf/tls-multi-got-1-2.s ld/testsuite/ld-mips-elf/tls-multi-got-1.d ld/testsuite/ld-mips-elf/tls-multi-got-1.got ld/testsuite/ld-mips-elf/tls-multi-got-1.r ld/testsuite/ld-mips-elf/tlsbin-o32.d ld/testsuite/ld-mips-elf/tlsbin-o32.got ld/testsuite/ld-mips-elf/tlsbin-o32.s ld/testsuite/ld-mips-elf/tlsdyn-o32-1.d ld/testsuite/ld-mips-elf/tlsdyn-o32-1.got ld/testsuite/ld-mips-elf/tlsdyn-o32-2.d ld/testsuite/ld-mips-elf/tlsdyn-o32-2.got ld/testsuite/ld-mips-elf/tlsdyn-o32-2.s ld/testsuite/ld-mips-elf/tlsdyn-o32-3.d ld/testsuite/ld-mips-elf/tlsdyn-o32-3.got ld/testsuite/ld-mips-elf/tlsdyn-o32.d ld/testsuite/ld-mips-elf/tlsdyn-o32.got ld/testsuite/ld-mips-elf/tlsdyn-o32.s ld/testsuite/ld-mips-elf/tlslib-hidden.ver ld/testsuite/ld-mips-elf/tlslib-o32-hidden.got ld/testsuite/ld-mips-elf/tlslib-o32-ver.got ld/testsuite/ld-mips-elf/tlslib-o32.d ld/testsuite/ld-mips-elf/tlslib-o32.got ld/testsuite/ld-mips-elf/tlslib-o32.s ld/testsuite/ld-mips-elf/tlslib.ver ld/testsuite/ld-mips-elf/undefined.d ld/testsuite/ld-mips-elf/undefined.s ld/testsuite/ld-mips-elf/vxworks-forced-local-1.d ld/testsuite/ld-mips-elf/vxworks-forced-local-1.s ld/testsuite/ld-mips-elf/vxworks-forced-local-1.ver ld/testsuite/ld-mips-elf/vxworks1-lib.dd ld/testsuite/ld-mips-elf/vxworks1-lib.nd ld/testsuite/ld-mips-elf/vxworks1-lib.rd ld/testsuite/ld-mips-elf/vxworks1-lib.s ld/testsuite/ld-mips-elf/vxworks1-lib.td ld/testsuite/ld-mips-elf/vxworks1-static.d ld/testsuite/ld-mips-elf/vxworks1.dd ld/testsuite/ld-mips-elf/vxworks1.ld ld/testsuite/ld-mips-elf/vxworks1.rd ld/testsuite/ld-mips-elf/vxworks1.s ld/testsuite/ld-mips-elf/vxworks2-static.sd ld/testsuite/ld-mips-elf/vxworks2.s ld/testsuite/ld-mips-elf/vxworks2.sd ld/testsuite/ld-misc/defsym.exp ld/testsuite/ld-misc/defsym1.d ld/testsuite/ld-misc/dummy.s ld/testsuite/ld-misc/foo.s ld/testsuite/ld-misc/start.s ld/testsuite/ld-mmix/a.s ld/testsuite/ld-mmix/areg-256.s ld/testsuite/ld-mmix/areg-t.s ld/testsuite/ld-mmix/aregm.s ld/testsuite/ld-mmix/b-badfil1.d ld/testsuite/ld-mmix/b-badfil1.s ld/testsuite/ld-mmix/b-badfil2.d ld/testsuite/ld-mmix/b-badfil2.s ld/testsuite/ld-mmix/b-badfixo.d ld/testsuite/ld-mmix/b-badfixo.s ld/testsuite/ld-mmix/b-badloc.d ld/testsuite/ld-mmix/b-badloc.s ld/testsuite/ld-mmix/b-badlop.d ld/testsuite/ld-mmix/b-badlop.s ld/testsuite/ld-mmix/b-badm.d ld/testsuite/ld-mmix/b-badm2.s ld/testsuite/ld-mmix/b-badmain.s ld/testsuite/ld-mmix/b-badquot.d ld/testsuite/ld-mmix/b-badquot.s ld/testsuite/ld-mmix/b-badrx1.d ld/testsuite/ld-mmix/b-badrx1.s ld/testsuite/ld-mmix/b-badrx2.d ld/testsuite/ld-mmix/b-badrx2.s ld/testsuite/ld-mmix/b-badrx3.d ld/testsuite/ld-mmix/b-badrx3.s ld/testsuite/ld-mmix/b-bend.s ld/testsuite/ld-mmix/b-bend1.d ld/testsuite/ld-mmix/b-bend2.d ld/testsuite/ld-mmix/b-bend3.d ld/testsuite/ld-mmix/b-bstab1.d ld/testsuite/ld-mmix/b-bstab1.s ld/testsuite/ld-mmix/b-fixo2.d ld/testsuite/ld-mmix/b-fixo2.s ld/testsuite/ld-mmix/b-goodmain.s ld/testsuite/ld-mmix/b-loc64k.d ld/testsuite/ld-mmix/b-loc64k.s ld/testsuite/ld-mmix/b-nosym.d ld/testsuite/ld-mmix/b-nosym.s ld/testsuite/ld-mmix/b-offloc.s ld/testsuite/ld-mmix/b-post1.s ld/testsuite/ld-mmix/b-twoinsn.s ld/testsuite/ld-mmix/b-widec.s ld/testsuite/ld-mmix/b-widec1.d ld/testsuite/ld-mmix/b-widec2.d ld/testsuite/ld-mmix/b-widec2.s ld/testsuite/ld-mmix/b-widec3.d ld/testsuite/ld-mmix/b-widec3.s ld/testsuite/ld-mmix/bpo-1.d ld/testsuite/ld-mmix/bpo-1.s ld/testsuite/ld-mmix/bpo-10.d ld/testsuite/ld-mmix/bpo-10.s ld/testsuite/ld-mmix/bpo-11.d ld/testsuite/ld-mmix/bpo-11.s ld/testsuite/ld-mmix/bpo-12.d ld/testsuite/ld-mmix/bpo-12m.d ld/testsuite/ld-mmix/bpo-13.d ld/testsuite/ld-mmix/bpo-13m.d ld/testsuite/ld-mmix/bpo-14.d ld/testsuite/ld-mmix/bpo-14m.d ld/testsuite/ld-mmix/bpo-15.d ld/testsuite/ld-mmix/bpo-15m.d ld/testsuite/ld-mmix/bpo-16.d ld/testsuite/ld-mmix/bpo-16m.d ld/testsuite/ld-mmix/bpo-17.d ld/testsuite/ld-mmix/bpo-17m.d ld/testsuite/ld-mmix/bpo-18.d ld/testsuite/ld-mmix/bpo-18m.d ld/testsuite/ld-mmix/bpo-19.d ld/testsuite/ld-mmix/bpo-19m.d ld/testsuite/ld-mmix/bpo-1m.d ld/testsuite/ld-mmix/bpo-2.d ld/testsuite/ld-mmix/bpo-2.s ld/testsuite/ld-mmix/bpo-20.d ld/testsuite/ld-mmix/bpo-20m.d ld/testsuite/ld-mmix/bpo-21.d ld/testsuite/ld-mmix/bpo-21m.d ld/testsuite/ld-mmix/bpo-22.d ld/testsuite/ld-mmix/bpo-2m.d ld/testsuite/ld-mmix/bpo-3.d ld/testsuite/ld-mmix/bpo-3.s ld/testsuite/ld-mmix/bpo-3m.d ld/testsuite/ld-mmix/bpo-4.d ld/testsuite/ld-mmix/bpo-4.s ld/testsuite/ld-mmix/bpo-4m.d ld/testsuite/ld-mmix/bpo-5.d ld/testsuite/ld-mmix/bpo-5.s ld/testsuite/ld-mmix/bpo-5m.d ld/testsuite/ld-mmix/bpo-6.d ld/testsuite/ld-mmix/bpo-6.s ld/testsuite/ld-mmix/bpo-6m.d ld/testsuite/ld-mmix/bpo-7.d ld/testsuite/ld-mmix/bpo-7.s ld/testsuite/ld-mmix/bpo-7m.d ld/testsuite/ld-mmix/bpo-8.d ld/testsuite/ld-mmix/bpo-8.s ld/testsuite/ld-mmix/bpo-8m.d ld/testsuite/ld-mmix/bpo-9.d ld/testsuite/ld-mmix/bpo-9.s ld/testsuite/ld-mmix/bpo-9m.d ld/testsuite/ld-mmix/bpo64addr.ld ld/testsuite/ld-mmix/bspec1.d ld/testsuite/ld-mmix/bspec1.s ld/testsuite/ld-mmix/bspec1m.d ld/testsuite/ld-mmix/bspec2.d ld/testsuite/ld-mmix/bspec2.s ld/testsuite/ld-mmix/bspec2m.d ld/testsuite/ld-mmix/bspec801.s ld/testsuite/ld-mmix/bspec802.s ld/testsuite/ld-mmix/bspec803.s ld/testsuite/ld-mmix/bspec804.s ld/testsuite/ld-mmix/bspec805.s ld/testsuite/ld-mmix/bspec806.s ld/testsuite/ld-mmix/bspec807.s ld/testsuite/ld-mmix/bspec808.s ld/testsuite/ld-mmix/bza-1b.d ld/testsuite/ld-mmix/bza-1f.d ld/testsuite/ld-mmix/bza-2b.d ld/testsuite/ld-mmix/bza-2f.d ld/testsuite/ld-mmix/bza-7b.d ld/testsuite/ld-mmix/bza-7f.d ld/testsuite/ld-mmix/bza-8b.d ld/testsuite/ld-mmix/bza-8f.d ld/testsuite/ld-mmix/bza.s ld/testsuite/ld-mmix/data-1.s ld/testsuite/ld-mmix/data1.s ld/testsuite/ld-mmix/dloc1.s ld/testsuite/ld-mmix/dloc2.s ld/testsuite/ld-mmix/ext1-254.s ld/testsuite/ld-mmix/ext1.s ld/testsuite/ld-mmix/ext1g.s ld/testsuite/ld-mmix/ext1l.s ld/testsuite/ld-mmix/getaa-1b.d ld/testsuite/ld-mmix/getaa-1f.d ld/testsuite/ld-mmix/getaa-2b.d ld/testsuite/ld-mmix/getaa-2f.d ld/testsuite/ld-mmix/getaa-4b.d ld/testsuite/ld-mmix/getaa-4f.d ld/testsuite/ld-mmix/getaa-6b.d ld/testsuite/ld-mmix/getaa-6f.d ld/testsuite/ld-mmix/getaa-7b.d ld/testsuite/ld-mmix/getaa-7f.d ld/testsuite/ld-mmix/getaa-8b.d ld/testsuite/ld-mmix/getaa-8f.d ld/testsuite/ld-mmix/getaa.s ld/testsuite/ld-mmix/getaa12b.d ld/testsuite/ld-mmix/getaa12f.d ld/testsuite/ld-mmix/getaa14b.d ld/testsuite/ld-mmix/getaa14f.d ld/testsuite/ld-mmix/greg-1.d ld/testsuite/ld-mmix/greg-1.s ld/testsuite/ld-mmix/greg-10.d ld/testsuite/ld-mmix/greg-11.d ld/testsuite/ld-mmix/greg-11b.d ld/testsuite/ld-mmix/greg-12.d ld/testsuite/ld-mmix/greg-13.d ld/testsuite/ld-mmix/greg-14.d ld/testsuite/ld-mmix/greg-14s.d ld/testsuite/ld-mmix/greg-15.d ld/testsuite/ld-mmix/greg-16.d ld/testsuite/ld-mmix/greg-17.d ld/testsuite/ld-mmix/greg-18.d ld/testsuite/ld-mmix/greg-19.d ld/testsuite/ld-mmix/greg-2.d ld/testsuite/ld-mmix/greg-2.s ld/testsuite/ld-mmix/greg-20.d ld/testsuite/ld-mmix/greg-3.d ld/testsuite/ld-mmix/greg-3.s ld/testsuite/ld-mmix/greg-4.d ld/testsuite/ld-mmix/greg-4.s ld/testsuite/ld-mmix/greg-5.d ld/testsuite/ld-mmix/greg-5.s ld/testsuite/ld-mmix/greg-5s.d ld/testsuite/ld-mmix/greg-6.d ld/testsuite/ld-mmix/greg-7.d ld/testsuite/ld-mmix/greg-8.d ld/testsuite/ld-mmix/greg-9.d ld/testsuite/ld-mmix/gregbza1.s ld/testsuite/ld-mmix/gregget1.s ld/testsuite/ld-mmix/gregget2.s ld/testsuite/ld-mmix/gregldo1.s ld/testsuite/ld-mmix/gregpsj1.s ld/testsuite/ld-mmix/hdr-1.d ld/testsuite/ld-mmix/jumpa-1b.d ld/testsuite/ld-mmix/jumpa-1f.d ld/testsuite/ld-mmix/jumpa-2b.d ld/testsuite/ld-mmix/jumpa-2f.d ld/testsuite/ld-mmix/jumpa-3b.d ld/testsuite/ld-mmix/jumpa-3f.d ld/testsuite/ld-mmix/jumpa-4b.d ld/testsuite/ld-mmix/jumpa-4f.d ld/testsuite/ld-mmix/jumpa-5b.d ld/testsuite/ld-mmix/jumpa-5f.d ld/testsuite/ld-mmix/jumpa-6b.d ld/testsuite/ld-mmix/jumpa-6f.d ld/testsuite/ld-mmix/jumpa-7b.d ld/testsuite/ld-mmix/jumpa-7f.d ld/testsuite/ld-mmix/jumpa-8b.d ld/testsuite/ld-mmix/jumpa-8f.d ld/testsuite/ld-mmix/jumpa-9b.d ld/testsuite/ld-mmix/jumpa-9f.d ld/testsuite/ld-mmix/jumpa.s ld/testsuite/ld-mmix/jumpa12b.d ld/testsuite/ld-mmix/jumpa12f.d ld/testsuite/ld-mmix/jumpa13b.d ld/testsuite/ld-mmix/jumpa13f.d ld/testsuite/ld-mmix/jumpa14b.d ld/testsuite/ld-mmix/jumpa14f.d ld/testsuite/ld-mmix/loc1.d ld/testsuite/ld-mmix/loc1.s ld/testsuite/ld-mmix/loc10.d ld/testsuite/ld-mmix/loc10.s ld/testsuite/ld-mmix/loc10m.d ld/testsuite/ld-mmix/loc1m.d ld/testsuite/ld-mmix/loc2.d ld/testsuite/ld-mmix/loc2.s ld/testsuite/ld-mmix/loc2m.d ld/testsuite/ld-mmix/loc3.d ld/testsuite/ld-mmix/loc3m.d ld/testsuite/ld-mmix/loc4.d ld/testsuite/ld-mmix/loc4m.d ld/testsuite/ld-mmix/loc5.d ld/testsuite/ld-mmix/loc5m.d ld/testsuite/ld-mmix/loc6.d ld/testsuite/ld-mmix/loc6m.d ld/testsuite/ld-mmix/loc7.d ld/testsuite/ld-mmix/loc7m.d ld/testsuite/ld-mmix/loc8.d ld/testsuite/ld-mmix/loc8.s ld/testsuite/ld-mmix/loc8m.d ld/testsuite/ld-mmix/loc9.d ld/testsuite/ld-mmix/loc9.s ld/testsuite/ld-mmix/loc9m.d ld/testsuite/ld-mmix/local1.d ld/testsuite/ld-mmix/local1.s ld/testsuite/ld-mmix/local10.d ld/testsuite/ld-mmix/local10m.d ld/testsuite/ld-mmix/local11.d ld/testsuite/ld-mmix/local11m.d ld/testsuite/ld-mmix/local12.d ld/testsuite/ld-mmix/local12m.d ld/testsuite/ld-mmix/local1m.d ld/testsuite/ld-mmix/local2.d ld/testsuite/ld-mmix/local2.s ld/testsuite/ld-mmix/local2m.d ld/testsuite/ld-mmix/local3.d ld/testsuite/ld-mmix/local3m.d ld/testsuite/ld-mmix/local4.d ld/testsuite/ld-mmix/local4m.d ld/testsuite/ld-mmix/local5.d ld/testsuite/ld-mmix/local5m.d ld/testsuite/ld-mmix/local6.d ld/testsuite/ld-mmix/local6m.d ld/testsuite/ld-mmix/local7.d ld/testsuite/ld-mmix/local7m.d ld/testsuite/ld-mmix/local8.d ld/testsuite/ld-mmix/local8m.d ld/testsuite/ld-mmix/local9.d ld/testsuite/ld-mmix/local9m.d ld/testsuite/ld-mmix/locdo-1.d ld/testsuite/ld-mmix/locdo.s ld/testsuite/ld-mmix/loct-1.d ld/testsuite/ld-mmix/loct.s ld/testsuite/ld-mmix/locto-1.d ld/testsuite/ld-mmix/locto.s ld/testsuite/ld-mmix/main1.s ld/testsuite/ld-mmix/mmix.exp ld/testsuite/ld-mmix/mmohdr1.ld ld/testsuite/ld-mmix/mmosec1.ld ld/testsuite/ld-mmix/mmosec2.ld ld/testsuite/ld-mmix/nop123.s ld/testsuite/ld-mmix/orph-.d ld/testsuite/ld-mmix/orph-awp.d ld/testsuite/ld-mmix/orph-d-a.d ld/testsuite/ld-mmix/orph-d-awn.d ld/testsuite/ld-mmix/orph-d-awp.d ld/testsuite/ld-mmix/orph-d-awpe.d ld/testsuite/ld-mmix/orph-d.d ld/testsuite/ld-mmix/orph-dc-ap.d ld/testsuite/ld-mmix/orph-dc-awp.d ld/testsuite/ld-mmix/orph-dc.d ld/testsuite/ld-mmix/pad16.s ld/testsuite/ld-mmix/pad2p18m32.s ld/testsuite/ld-mmix/pad2p26m32.s ld/testsuite/ld-mmix/pad4.s ld/testsuite/ld-mmix/pr12815-1.d ld/testsuite/ld-mmix/pr12815-1.ld ld/testsuite/ld-mmix/pr12815-1.s ld/testsuite/ld-mmix/pr12815-2.d ld/testsuite/ld-mmix/pr12815-2.s ld/testsuite/ld-mmix/pushja.s ld/testsuite/ld-mmix/pushja1b-s.d ld/testsuite/ld-mmix/pushja1b.d ld/testsuite/ld-mmix/pushja1f-s.d ld/testsuite/ld-mmix/pushja1f.d ld/testsuite/ld-mmix/pushja2b.d ld/testsuite/ld-mmix/pushja2f.d ld/testsuite/ld-mmix/pushja7b-s.d ld/testsuite/ld-mmix/pushja7b.d ld/testsuite/ld-mmix/pushja7f-s.d ld/testsuite/ld-mmix/pushja7f.d ld/testsuite/ld-mmix/pushja8b.d ld/testsuite/ld-mmix/pushja8f.d ld/testsuite/ld-mmix/pushjs1.d ld/testsuite/ld-mmix/pushjs1b.d ld/testsuite/ld-mmix/pushjs1bm.d ld/testsuite/ld-mmix/pushjs1m.d ld/testsuite/ld-mmix/pushjs1r.d ld/testsuite/ld-mmix/pushjs2.d ld/testsuite/ld-mmix/pushjs2b.d ld/testsuite/ld-mmix/pushjs2bm.d ld/testsuite/ld-mmix/pushjs2m.d ld/testsuite/ld-mmix/pushjs2r.d ld/testsuite/ld-mmix/pushjs3.d ld/testsuite/ld-mmix/pushjs3b.d ld/testsuite/ld-mmix/pushjs3bm.d ld/testsuite/ld-mmix/pushjs3m.d ld/testsuite/ld-mmix/pushjs3r.d ld/testsuite/ld-mmix/pushjs4.d ld/testsuite/ld-mmix/pushjs4b.d ld/testsuite/ld-mmix/pushjs4bm.d ld/testsuite/ld-mmix/pushjs4m.d ld/testsuite/ld-mmix/pushjs4r.d ld/testsuite/ld-mmix/reg-1.d ld/testsuite/ld-mmix/reg-1m.d ld/testsuite/ld-mmix/reg-2.d ld/testsuite/ld-mmix/reg-2m.d ld/testsuite/ld-mmix/regext1.s ld/testsuite/ld-mmix/sec-1.d ld/testsuite/ld-mmix/sec-1.s ld/testsuite/ld-mmix/sec-2.d ld/testsuite/ld-mmix/sec-2.s ld/testsuite/ld-mmix/sec-3.d ld/testsuite/ld-mmix/sec-4.d ld/testsuite/ld-mmix/sec-5.d ld/testsuite/ld-mmix/sec-6.d ld/testsuite/ld-mmix/sec-6.s ld/testsuite/ld-mmix/sec-6m.d ld/testsuite/ld-mmix/sec-7a.s ld/testsuite/ld-mmix/sec-7b.s ld/testsuite/ld-mmix/sec-7c.s ld/testsuite/ld-mmix/sec-7d.s ld/testsuite/ld-mmix/sec-7e.s ld/testsuite/ld-mmix/sec-7m.d ld/testsuite/ld-mmix/sec-8a.s ld/testsuite/ld-mmix/sec-8b.s ld/testsuite/ld-mmix/sec-8d.s ld/testsuite/ld-mmix/sec-8m.d ld/testsuite/ld-mmix/sec-8m.s ld/testsuite/ld-mmix/sec-9.d ld/testsuite/ld-mmix/spec801.d ld/testsuite/ld-mmix/spec802.d ld/testsuite/ld-mmix/spec803.d ld/testsuite/ld-mmix/spec804.d ld/testsuite/ld-mmix/spec805.d ld/testsuite/ld-mmix/spec806.d ld/testsuite/ld-mmix/spec807.d ld/testsuite/ld-mmix/spec808.d ld/testsuite/ld-mmix/start-1.d ld/testsuite/ld-mmix/start-2.d ld/testsuite/ld-mmix/start.s ld/testsuite/ld-mmix/start2.s ld/testsuite/ld-mmix/start3.s ld/testsuite/ld-mmix/start4.s ld/testsuite/ld-mmix/sym-1.d ld/testsuite/ld-mmix/sym-2.d ld/testsuite/ld-mmix/sym-2.s ld/testsuite/ld-mmix/tm-ae.s ld/testsuite/ld-mmix/tm-ape.s ld/testsuite/ld-mmix/tm-awne.s ld/testsuite/ld-mmix/tm-awpe.s ld/testsuite/ld-mmix/tm-d-ap.s ld/testsuite/ld-mmix/tm-d-awp.s ld/testsuite/ld-mmix/tm-d.s ld/testsuite/ld-mmix/tm-e.s ld/testsuite/ld-mmix/tm-orph1.s ld/testsuite/ld-mmix/undef-1.d ld/testsuite/ld-mmix/undef-1.s ld/testsuite/ld-mmix/undef-1m.d ld/testsuite/ld-mmix/undef-2.d ld/testsuite/ld-mmix/undef-2.s ld/testsuite/ld-mmix/undef-2m.d ld/testsuite/ld-mmix/undef-3.d ld/testsuite/ld-mmix/undef-3m.d ld/testsuite/ld-mmix/x.s ld/testsuite/ld-mmix/y.s ld/testsuite/ld-mmix/zeroeh.ld ld/testsuite/ld-mmix/zeroehelf.d ld/testsuite/ld-mmix/zeroehmmo.d ld/testsuite/ld-mn10300/i112045-1.d ld/testsuite/ld-mn10300/i112045-1.s ld/testsuite/ld-mn10300/i112045-2.d ld/testsuite/ld-mn10300/i112045-2.s ld/testsuite/ld-mn10300/i112045-3.d ld/testsuite/ld-mn10300/i112045-3.s ld/testsuite/ld-mn10300/i126256-1.c ld/testsuite/ld-mn10300/i126256-2.c ld/testsuite/ld-mn10300/i127740.d ld/testsuite/ld-mn10300/i127740.s ld/testsuite/ld-mn10300/i135409-1.d ld/testsuite/ld-mn10300/i135409-1.s ld/testsuite/ld-mn10300/i135409-2.d ld/testsuite/ld-mn10300/i135409-2.s ld/testsuite/ld-mn10300/i135409-3.d ld/testsuite/ld-mn10300/i135409-3.s ld/testsuite/ld-mn10300/i135409-4.d ld/testsuite/ld-mn10300/i135409-4.s ld/testsuite/ld-mn10300/i135409-4.t ld/testsuite/ld-mn10300/i135409-5.d ld/testsuite/ld-mn10300/i135409-5.s ld/testsuite/ld-mn10300/i135409-5.t ld/testsuite/ld-mn10300/i143317.d ld/testsuite/ld-mn10300/i143317.s ld/testsuite/ld-mn10300/i143317.t ld/testsuite/ld-mn10300/i36434-2.s ld/testsuite/ld-mn10300/i36434.d ld/testsuite/ld-mn10300/i36434.s ld/testsuite/ld-mn10300/mn10300.exp ld/testsuite/ld-nios2/emit-relocs-1.d ld/testsuite/ld-nios2/emit-relocs-1.ld ld/testsuite/ld-nios2/emit-relocs-1a.s ld/testsuite/ld-nios2/emit-relocs-1b.s ld/testsuite/ld-nios2/gprel.d ld/testsuite/ld-nios2/gprel.s ld/testsuite/ld-nios2/hilo16.d ld/testsuite/ld-nios2/hilo16.s ld/testsuite/ld-nios2/hilo16_symbol.s ld/testsuite/ld-nios2/imm5.d ld/testsuite/ld-nios2/imm5.s ld/testsuite/ld-nios2/imm5_symbol.s ld/testsuite/ld-nios2/nios2.exp ld/testsuite/ld-nios2/pcrel16.d ld/testsuite/ld-nios2/pcrel16.s ld/testsuite/ld-nios2/pcrel16_label.s ld/testsuite/ld-nios2/relax_callr.d ld/testsuite/ld-nios2/relax_callr.ld ld/testsuite/ld-nios2/relax_callr.s ld/testsuite/ld-nios2/relax_cjmp.d ld/testsuite/ld-nios2/relax_cjmp.s ld/testsuite/ld-nios2/relax_jmp.ld ld/testsuite/ld-nios2/relax_section.d ld/testsuite/ld-nios2/relax_section.s ld/testsuite/ld-nios2/relax_ujmp.d ld/testsuite/ld-nios2/relax_ujmp.s ld/testsuite/ld-nios2/reloc.d ld/testsuite/ld-nios2/reloc.s ld/testsuite/ld-nios2/reloc_symbol.s ld/testsuite/ld-nios2/s16.d ld/testsuite/ld-nios2/s16.s ld/testsuite/ld-nios2/s16_symbol.s ld/testsuite/ld-nios2/u16.d ld/testsuite/ld-nios2/u16.s ld/testsuite/ld-nios2/u16_symbol.s ld/testsuite/ld-pe/aligncomm-1.c ld/testsuite/ld-pe/aligncomm-2.c ld/testsuite/ld-pe/aligncomm-3.c ld/testsuite/ld-pe/aligncomm-4.c ld/testsuite/ld-pe/aligncomm.d ld/testsuite/ld-pe/basefile1.s ld/testsuite/ld-pe/cfi.d ld/testsuite/ld-pe/cfi32.d ld/testsuite/ld-pe/cfia.s ld/testsuite/ld-pe/cfib.s ld/testsuite/ld-pe/direct2_client.c ld/testsuite/ld-pe/direct2_dll.c ld/testsuite/ld-pe/direct2_dll.def ld/testsuite/ld-pe/direct_client.c ld/testsuite/ld-pe/direct_dll.c ld/testsuite/ld-pe/export_dynamic_warning.d ld/testsuite/ld-pe/export_dynamic_warning.s ld/testsuite/ld-pe/exports.d ld/testsuite/ld-pe/exports.s ld/testsuite/ld-pe/exports64.d ld/testsuite/ld-pe/image_size.d ld/testsuite/ld-pe/image_size.s ld/testsuite/ld-pe/image_size.t ld/testsuite/ld-pe/longsecn-1.d ld/testsuite/ld-pe/longsecn-2.d ld/testsuite/ld-pe/longsecn-3.d ld/testsuite/ld-pe/longsecn-4.d ld/testsuite/ld-pe/longsecn-5.d ld/testsuite/ld-pe/longsecn.d ld/testsuite/ld-pe/longsecn.s ld/testsuite/ld-pe/non-c-lang-syms.d ld/testsuite/ld-pe/non-c-lang-syms.s ld/testsuite/ld-pe/orphan.d ld/testsuite/ld-pe/orphan_nu.d ld/testsuite/ld-pe/orphana.s ld/testsuite/ld-pe/orphana_nu.s ld/testsuite/ld-pe/orphanb.s ld/testsuite/ld-pe/orphand.s ld/testsuite/ld-pe/orphane.s ld/testsuite/ld-pe/pe-compile.exp ld/testsuite/ld-pe/pe-run.exp ld/testsuite/ld-pe/pe-run2.exp ld/testsuite/ld-pe/pe.exp ld/testsuite/ld-pe/secrel.d ld/testsuite/ld-pe/secrel1.s ld/testsuite/ld-pe/secrel2.s ld/testsuite/ld-pe/secrel_64.d ld/testsuite/ld-pe/tlssec.s ld/testsuite/ld-pe/tlssec32.d ld/testsuite/ld-pe/tlssec64.d ld/testsuite/ld-pe/vers-script-1.d ld/testsuite/ld-pe/vers-script-1.ver ld/testsuite/ld-pe/vers-script-2.d ld/testsuite/ld-pe/vers-script-2.ver ld/testsuite/ld-pe/vers-script-3.d ld/testsuite/ld-pe/vers-script-3.ver ld/testsuite/ld-pe/vers-script-4.d ld/testsuite/ld-pe/vers-script-4.ver ld/testsuite/ld-pe/vers-script-dll.c ld/testsuite/ld-pie/pie.c ld/testsuite/ld-pie/pie.exp ld/testsuite/ld-pie/start.d ld/testsuite/ld-pie/start.s ld/testsuite/ld-pie/weakundef-data.c ld/testsuite/ld-pie/weakundef.c ld/testsuite/ld-pie/weakundef.out ld/testsuite/ld-plugin/dummy.c ld/testsuite/ld-plugin/dummy.s ld/testsuite/ld-plugin/func.c ld/testsuite/ld-plugin/func1p.c ld/testsuite/ld-plugin/func2i.c ld/testsuite/ld-plugin/func3h.c ld/testsuite/ld-plugin/lto-11.out ld/testsuite/ld-plugin/lto-11a.c ld/testsuite/ld-plugin/lto-11b.c ld/testsuite/ld-plugin/lto-11c.c ld/testsuite/ld-plugin/lto-12.out ld/testsuite/ld-plugin/lto-12a.c ld/testsuite/ld-plugin/lto-12b.c ld/testsuite/ld-plugin/lto-12c.c ld/testsuite/ld-plugin/lto-13.out ld/testsuite/ld-plugin/lto-13a.c ld/testsuite/ld-plugin/lto-13b.c ld/testsuite/ld-plugin/lto-13c.c ld/testsuite/ld-plugin/lto-14.out ld/testsuite/ld-plugin/lto-14a.c ld/testsuite/ld-plugin/lto-14b.c ld/testsuite/ld-plugin/lto-14c.c ld/testsuite/ld-plugin/lto-15.out ld/testsuite/ld-plugin/lto-15a.c ld/testsuite/ld-plugin/lto-15b.c ld/testsuite/ld-plugin/lto-16a.c ld/testsuite/ld-plugin/lto-16a.d ld/testsuite/ld-plugin/lto-16b.c ld/testsuite/ld-plugin/lto-16b.d ld/testsuite/ld-plugin/lto-17a.c ld/testsuite/ld-plugin/lto-17a.d ld/testsuite/ld-plugin/lto-17b-1.d ld/testsuite/ld-plugin/lto-17b-2.d ld/testsuite/ld-plugin/lto-17b.c ld/testsuite/ld-plugin/lto-1a.c ld/testsuite/ld-plugin/lto-1b.c ld/testsuite/ld-plugin/lto-2.c ld/testsuite/ld-plugin/lto-3.d ld/testsuite/ld-plugin/lto-3.out ld/testsuite/ld-plugin/lto-3a.c ld/testsuite/ld-plugin/lto-3b.c ld/testsuite/ld-plugin/lto-3c.c ld/testsuite/ld-plugin/lto-3r.d ld/testsuite/ld-plugin/lto-5.d ld/testsuite/ld-plugin/lto-5.out ld/testsuite/ld-plugin/lto-5a.c ld/testsuite/ld-plugin/lto-5b.c ld/testsuite/ld-plugin/lto-5r.d ld/testsuite/ld-plugin/lto-6.c ld/testsuite/ld-plugin/lto-7.out ld/testsuite/ld-plugin/lto-7a.c ld/testsuite/ld-plugin/lto-7b.c ld/testsuite/ld-plugin/lto-7c.c ld/testsuite/ld-plugin/lto-7d.c ld/testsuite/ld-plugin/lto-8.out ld/testsuite/ld-plugin/lto-8a.c ld/testsuite/ld-plugin/lto-8b.c ld/testsuite/ld-plugin/lto-9.cc ld/testsuite/ld-plugin/lto-9.d ld/testsuite/ld-plugin/lto.exp ld/testsuite/ld-plugin/main.c ld/testsuite/ld-plugin/plugin-1.d ld/testsuite/ld-plugin/plugin-10.d ld/testsuite/ld-plugin/plugin-11.d ld/testsuite/ld-plugin/plugin-12.d ld/testsuite/ld-plugin/plugin-2.d ld/testsuite/ld-plugin/plugin-3.d ld/testsuite/ld-plugin/plugin-4.d ld/testsuite/ld-plugin/plugin-5.d ld/testsuite/ld-plugin/plugin-6.d ld/testsuite/ld-plugin/plugin-7.d ld/testsuite/ld-plugin/plugin-8.d ld/testsuite/ld-plugin/plugin-9.d ld/testsuite/ld-plugin/plugin-vis-1.d ld/testsuite/ld-plugin/plugin.exp ld/testsuite/ld-plugin/pr12696-1.cc ld/testsuite/ld-plugin/pr12758a.s ld/testsuite/ld-plugin/pr12758b.c ld/testsuite/ld-plugin/pr12760a.c ld/testsuite/ld-plugin/pr12760b.c ld/testsuite/ld-plugin/pr12942.out ld/testsuite/ld-plugin/pr12942a.cc ld/testsuite/ld-plugin/pr12942a.h ld/testsuite/ld-plugin/pr12942b.cc ld/testsuite/ld-plugin/pr12942c.cc ld/testsuite/ld-plugin/pr12975.c ld/testsuite/ld-plugin/pr12975.d ld/testsuite/ld-plugin/pr12975.t ld/testsuite/ld-plugin/pr12982.c ld/testsuite/ld-plugin/pr12982.d ld/testsuite/ld-plugin/pr13066.cc ld/testsuite/ld-plugin/pr13066.out ld/testsuite/ld-plugin/pr13183.d ld/testsuite/ld-plugin/pr13183a.c ld/testsuite/ld-plugin/pr13183b.c ld/testsuite/ld-plugin/pr13201.c ld/testsuite/ld-plugin/pr13201.out ld/testsuite/ld-plugin/pr13229.cc ld/testsuite/ld-plugin/pr13229.d ld/testsuite/ld-plugin/pr13244.c ld/testsuite/ld-plugin/pr13244.d ld/testsuite/ld-plugin/pr13287.cc ld/testsuite/ld-plugin/pr15146.d ld/testsuite/ld-plugin/pr15146a.c ld/testsuite/ld-plugin/pr15146b.c ld/testsuite/ld-plugin/pr15146c.c ld/testsuite/ld-plugin/pr15146d.c ld/testsuite/ld-plugin/pr15323.out ld/testsuite/ld-plugin/pr15323a.c ld/testsuite/ld-plugin/pr15323b.c ld/testsuite/ld-plugin/run-ie.c ld/testsuite/ld-plugin/run-ie.out ld/testsuite/ld-plugin/text.c ld/testsuite/ld-powerpc/aix-abs-branch-1.dd ld/testsuite/ld-powerpc/aix-abs-branch-1.ex ld/testsuite/ld-powerpc/aix-abs-branch-1.im ld/testsuite/ld-powerpc/aix-abs-branch-1.nd ld/testsuite/ld-powerpc/aix-abs-branch-1.s ld/testsuite/ld-powerpc/aix-abs-reloc-1.ex ld/testsuite/ld-powerpc/aix-abs-reloc-1.im ld/testsuite/ld-powerpc/aix-abs-reloc-1.nd ld/testsuite/ld-powerpc/aix-abs-reloc-1.od ld/testsuite/ld-powerpc/aix-abs-reloc-1.s ld/testsuite/ld-powerpc/aix-core-sec-1.ex ld/testsuite/ld-powerpc/aix-core-sec-1.hd ld/testsuite/ld-powerpc/aix-core-sec-1.s ld/testsuite/ld-powerpc/aix-core-sec-2.ex ld/testsuite/ld-powerpc/aix-core-sec-2.hd ld/testsuite/ld-powerpc/aix-core-sec-2.s ld/testsuite/ld-powerpc/aix-core-sec-3.ex ld/testsuite/ld-powerpc/aix-core-sec-3.hd ld/testsuite/ld-powerpc/aix-core-sec-3.s ld/testsuite/ld-powerpc/aix-export-1-all.dd ld/testsuite/ld-powerpc/aix-export-1-full.dd ld/testsuite/ld-powerpc/aix-export-1a.s ld/testsuite/ld-powerpc/aix-export-1b.s ld/testsuite/ld-powerpc/aix-export-2.nd ld/testsuite/ld-powerpc/aix-export-2.s ld/testsuite/ld-powerpc/aix-gc-1-32.dd ld/testsuite/ld-powerpc/aix-gc-1-64.dd ld/testsuite/ld-powerpc/aix-gc-1.ex ld/testsuite/ld-powerpc/aix-gc-1.nd ld/testsuite/ld-powerpc/aix-gc-1.s ld/testsuite/ld-powerpc/aix-glink-1-32.d ld/testsuite/ld-powerpc/aix-glink-1-32.dd ld/testsuite/ld-powerpc/aix-glink-1-64.d ld/testsuite/ld-powerpc/aix-glink-1-64.dd ld/testsuite/ld-powerpc/aix-glink-1.ex ld/testsuite/ld-powerpc/aix-glink-1.s ld/testsuite/ld-powerpc/aix-glink-2-32.dd ld/testsuite/ld-powerpc/aix-glink-2-64.dd ld/testsuite/ld-powerpc/aix-glink-2a.ex ld/testsuite/ld-powerpc/aix-glink-2a.s ld/testsuite/ld-powerpc/aix-glink-2b.s ld/testsuite/ld-powerpc/aix-glink-2c.ex ld/testsuite/ld-powerpc/aix-glink-2c.s ld/testsuite/ld-powerpc/aix-glink-2d.s ld/testsuite/ld-powerpc/aix-glink-3-32.d ld/testsuite/ld-powerpc/aix-glink-3-64.d ld/testsuite/ld-powerpc/aix-glink-3.dd ld/testsuite/ld-powerpc/aix-glink-3.s ld/testsuite/ld-powerpc/aix-glink-3a.s ld/testsuite/ld-powerpc/aix-glink-3b.s ld/testsuite/ld-powerpc/aix-lineno-1.s ld/testsuite/ld-powerpc/aix-lineno-1.txt ld/testsuite/ld-powerpc/aix-lineno-1a.dd ld/testsuite/ld-powerpc/aix-lineno-1a.nd ld/testsuite/ld-powerpc/aix-lineno-1b.dd ld/testsuite/ld-powerpc/aix-lineno-1b.nd ld/testsuite/ld-powerpc/aix-no-dup-syms-1-dso.dnd ld/testsuite/ld-powerpc/aix-no-dup-syms-1-dso.drd ld/testsuite/ld-powerpc/aix-no-dup-syms-1-dso.nd ld/testsuite/ld-powerpc/aix-no-dup-syms-1-dso.rd ld/testsuite/ld-powerpc/aix-no-dup-syms-1-rel.nd ld/testsuite/ld-powerpc/aix-no-dup-syms-1-rel.rd ld/testsuite/ld-powerpc/aix-no-dup-syms-1.ex ld/testsuite/ld-powerpc/aix-no-dup-syms-1.im ld/testsuite/ld-powerpc/aix-no-dup-syms-1a.s ld/testsuite/ld-powerpc/aix-no-dup-syms-1b.s ld/testsuite/ld-powerpc/aix-ref-1-32.od ld/testsuite/ld-powerpc/aix-ref-1-64.od ld/testsuite/ld-powerpc/aix-ref-1.s ld/testsuite/ld-powerpc/aix-rel-1.od ld/testsuite/ld-powerpc/aix-rel-1.s ld/testsuite/ld-powerpc/aix-toc-1-32.dd ld/testsuite/ld-powerpc/aix-toc-1-64.dd ld/testsuite/ld-powerpc/aix-toc-1.ex ld/testsuite/ld-powerpc/aix-toc-1a.s ld/testsuite/ld-powerpc/aix-toc-1b.s ld/testsuite/ld-powerpc/aix-weak-1-dso.dnd ld/testsuite/ld-powerpc/aix-weak-1-dso.hd ld/testsuite/ld-powerpc/aix-weak-1-dso.nd ld/testsuite/ld-powerpc/aix-weak-1-gcdso.dnd ld/testsuite/ld-powerpc/aix-weak-1-gcdso.hd ld/testsuite/ld-powerpc/aix-weak-1-gcdso.nd ld/testsuite/ld-powerpc/aix-weak-1-rel.hd ld/testsuite/ld-powerpc/aix-weak-1-rel.nd ld/testsuite/ld-powerpc/aix-weak-1.ex ld/testsuite/ld-powerpc/aix-weak-1a.s ld/testsuite/ld-powerpc/aix-weak-1b.s ld/testsuite/ld-powerpc/aix-weak-2a.ex ld/testsuite/ld-powerpc/aix-weak-2a.nd ld/testsuite/ld-powerpc/aix-weak-2a.s ld/testsuite/ld-powerpc/aix-weak-2b.nd ld/testsuite/ld-powerpc/aix-weak-2b.s ld/testsuite/ld-powerpc/aix-weak-2c.ex ld/testsuite/ld-powerpc/aix-weak-2c.nd ld/testsuite/ld-powerpc/aix-weak-2c.od ld/testsuite/ld-powerpc/aix-weak-2c.s ld/testsuite/ld-powerpc/aix-weak-3-32.d ld/testsuite/ld-powerpc/aix-weak-3-32.dd ld/testsuite/ld-powerpc/aix-weak-3-64.d ld/testsuite/ld-powerpc/aix-weak-3-64.dd ld/testsuite/ld-powerpc/aix-weak-3a.ex ld/testsuite/ld-powerpc/aix-weak-3a.s ld/testsuite/ld-powerpc/aix-weak-3b.ex ld/testsuite/ld-powerpc/aix-weak-3b.s ld/testsuite/ld-powerpc/aix52.exp ld/testsuite/ld-powerpc/apuinfo-nul.rd ld/testsuite/ld-powerpc/apuinfo-nul.s ld/testsuite/ld-powerpc/apuinfo-nul1.s ld/testsuite/ld-powerpc/apuinfo.rd ld/testsuite/ld-powerpc/apuinfo1.s ld/testsuite/ld-powerpc/apuinfo2.s ld/testsuite/ld-powerpc/attr-gnu-12-1.s ld/testsuite/ld-powerpc/attr-gnu-12-11.d ld/testsuite/ld-powerpc/attr-gnu-12-2.s ld/testsuite/ld-powerpc/attr-gnu-12-21.d ld/testsuite/ld-powerpc/attr-gnu-4-0.s ld/testsuite/ld-powerpc/attr-gnu-4-00.d ld/testsuite/ld-powerpc/attr-gnu-4-01.d ld/testsuite/ld-powerpc/attr-gnu-4-02.d ld/testsuite/ld-powerpc/attr-gnu-4-03.d ld/testsuite/ld-powerpc/attr-gnu-4-1.s ld/testsuite/ld-powerpc/attr-gnu-4-10.d ld/testsuite/ld-powerpc/attr-gnu-4-11.d ld/testsuite/ld-powerpc/attr-gnu-4-12.d ld/testsuite/ld-powerpc/attr-gnu-4-13.d ld/testsuite/ld-powerpc/attr-gnu-4-14.d ld/testsuite/ld-powerpc/attr-gnu-4-2.s ld/testsuite/ld-powerpc/attr-gnu-4-20.d ld/testsuite/ld-powerpc/attr-gnu-4-21.d ld/testsuite/ld-powerpc/attr-gnu-4-22.d ld/testsuite/ld-powerpc/attr-gnu-4-23.d ld/testsuite/ld-powerpc/attr-gnu-4-24.d ld/testsuite/ld-powerpc/attr-gnu-4-3.s ld/testsuite/ld-powerpc/attr-gnu-4-31.d ld/testsuite/ld-powerpc/attr-gnu-4-32.d ld/testsuite/ld-powerpc/attr-gnu-4-33.d ld/testsuite/ld-powerpc/attr-gnu-4-34.d ld/testsuite/ld-powerpc/attr-gnu-4-4.s ld/testsuite/ld-powerpc/attr-gnu-4-41.d ld/testsuite/ld-powerpc/attr-gnu-8-1.s ld/testsuite/ld-powerpc/attr-gnu-8-11.d ld/testsuite/ld-powerpc/attr-gnu-8-2.s ld/testsuite/ld-powerpc/attr-gnu-8-23.d ld/testsuite/ld-powerpc/attr-gnu-8-3.s ld/testsuite/ld-powerpc/attr-gnu-8-31.d ld/testsuite/ld-powerpc/export-class.exp ld/testsuite/ld-powerpc/oldtlslib.s ld/testsuite/ld-powerpc/plt1.d ld/testsuite/ld-powerpc/plt1.s ld/testsuite/ld-powerpc/powerpc-32-export-class.rd ld/testsuite/ld-powerpc/powerpc-32-export-class.xd ld/testsuite/ld-powerpc/powerpc-64-export-class.rd ld/testsuite/ld-powerpc/powerpc-64-export-class.xd ld/testsuite/ld-powerpc/powerpc.exp ld/testsuite/ld-powerpc/relax.d ld/testsuite/ld-powerpc/relax.s ld/testsuite/ld-powerpc/relaxr.d ld/testsuite/ld-powerpc/relbrlt.d ld/testsuite/ld-powerpc/relbrlt.s ld/testsuite/ld-powerpc/reloc.d ld/testsuite/ld-powerpc/reloc.s ld/testsuite/ld-powerpc/sdadyn.d ld/testsuite/ld-powerpc/sdadyn.s ld/testsuite/ld-powerpc/sdalib.s ld/testsuite/ld-powerpc/symtocbase-1.s ld/testsuite/ld-powerpc/symtocbase-2.s ld/testsuite/ld-powerpc/symtocbase.d ld/testsuite/ld-powerpc/tls.d ld/testsuite/ld-powerpc/tls.g ld/testsuite/ld-powerpc/tls.s ld/testsuite/ld-powerpc/tls.t ld/testsuite/ld-powerpc/tls32.d ld/testsuite/ld-powerpc/tls32.g ld/testsuite/ld-powerpc/tls32.s ld/testsuite/ld-powerpc/tls32.t ld/testsuite/ld-powerpc/tlsexe.d ld/testsuite/ld-powerpc/tlsexe.g ld/testsuite/ld-powerpc/tlsexe.r ld/testsuite/ld-powerpc/tlsexe.t ld/testsuite/ld-powerpc/tlsexe32.d ld/testsuite/ld-powerpc/tlsexe32.g ld/testsuite/ld-powerpc/tlsexe32.r ld/testsuite/ld-powerpc/tlsexe32.t ld/testsuite/ld-powerpc/tlsexetoc.d ld/testsuite/ld-powerpc/tlsexetoc.g ld/testsuite/ld-powerpc/tlsexetoc.r ld/testsuite/ld-powerpc/tlsexetoc.t ld/testsuite/ld-powerpc/tlslib.s ld/testsuite/ld-powerpc/tlslib32.s ld/testsuite/ld-powerpc/tlsmark.d ld/testsuite/ld-powerpc/tlsmark.s ld/testsuite/ld-powerpc/tlsmark32.d ld/testsuite/ld-powerpc/tlsmark32.s ld/testsuite/ld-powerpc/tlsopt1.d ld/testsuite/ld-powerpc/tlsopt1.s ld/testsuite/ld-powerpc/tlsopt1_32.d ld/testsuite/ld-powerpc/tlsopt1_32.s ld/testsuite/ld-powerpc/tlsopt2.d ld/testsuite/ld-powerpc/tlsopt2.s ld/testsuite/ld-powerpc/tlsopt2_32.d ld/testsuite/ld-powerpc/tlsopt2_32.s ld/testsuite/ld-powerpc/tlsopt3.d ld/testsuite/ld-powerpc/tlsopt3.s ld/testsuite/ld-powerpc/tlsopt3_32.d ld/testsuite/ld-powerpc/tlsopt3_32.s ld/testsuite/ld-powerpc/tlsopt4.d ld/testsuite/ld-powerpc/tlsopt4.s ld/testsuite/ld-powerpc/tlsopt4_32.d ld/testsuite/ld-powerpc/tlsopt4_32.s ld/testsuite/ld-powerpc/tlsso.d ld/testsuite/ld-powerpc/tlsso.g ld/testsuite/ld-powerpc/tlsso.r ld/testsuite/ld-powerpc/tlsso.t ld/testsuite/ld-powerpc/tlsso32.d ld/testsuite/ld-powerpc/tlsso32.g ld/testsuite/ld-powerpc/tlsso32.r ld/testsuite/ld-powerpc/tlsso32.t ld/testsuite/ld-powerpc/tlstoc.d ld/testsuite/ld-powerpc/tlstoc.g ld/testsuite/ld-powerpc/tlstoc.s ld/testsuite/ld-powerpc/tlstoc.t ld/testsuite/ld-powerpc/tlstocso.d ld/testsuite/ld-powerpc/tlstocso.g ld/testsuite/ld-powerpc/tlstocso.r ld/testsuite/ld-powerpc/tlstocso.t ld/testsuite/ld-powerpc/tocopt.d ld/testsuite/ld-powerpc/tocopt.out ld/testsuite/ld-powerpc/tocopt.s ld/testsuite/ld-powerpc/tocopt2.d ld/testsuite/ld-powerpc/tocopt2.out ld/testsuite/ld-powerpc/tocopt2.s ld/testsuite/ld-powerpc/tocopt3.d ld/testsuite/ld-powerpc/tocopt3.s ld/testsuite/ld-powerpc/tocopt4.d ld/testsuite/ld-powerpc/tocopt4a.s ld/testsuite/ld-powerpc/tocopt4b.s ld/testsuite/ld-powerpc/tocopt5.d ld/testsuite/ld-powerpc/tocopt5.s ld/testsuite/ld-powerpc/vle-multiseg-1.d ld/testsuite/ld-powerpc/vle-multiseg-1.ld ld/testsuite/ld-powerpc/vle-multiseg-2.d ld/testsuite/ld-powerpc/vle-multiseg-2.ld ld/testsuite/ld-powerpc/vle-multiseg-3.d ld/testsuite/ld-powerpc/vle-multiseg-3.ld ld/testsuite/ld-powerpc/vle-multiseg-4.d ld/testsuite/ld-powerpc/vle-multiseg-4.ld ld/testsuite/ld-powerpc/vle-multiseg-5.d ld/testsuite/ld-powerpc/vle-multiseg-5.ld ld/testsuite/ld-powerpc/vle-multiseg-6.d ld/testsuite/ld-powerpc/vle-multiseg-6.ld ld/testsuite/ld-powerpc/vle-multiseg-6a.s ld/testsuite/ld-powerpc/vle-multiseg-6b.s ld/testsuite/ld-powerpc/vle-multiseg-6c.s ld/testsuite/ld-powerpc/vle-multiseg-6d.s ld/testsuite/ld-powerpc/vle-multiseg.s ld/testsuite/ld-powerpc/vle-reloc-1.d ld/testsuite/ld-powerpc/vle-reloc-1.s ld/testsuite/ld-powerpc/vle-reloc-2.d ld/testsuite/ld-powerpc/vle-reloc-2.s ld/testsuite/ld-powerpc/vle-reloc-3.d ld/testsuite/ld-powerpc/vle-reloc-3.s ld/testsuite/ld-powerpc/vle-reloc-def-1.s ld/testsuite/ld-powerpc/vle-reloc-def-2.s ld/testsuite/ld-powerpc/vle-reloc-def-3.s ld/testsuite/ld-powerpc/vle.ld ld/testsuite/ld-powerpc/vxworks-relax-2.rd ld/testsuite/ld-powerpc/vxworks-relax-2.s ld/testsuite/ld-powerpc/vxworks-relax.rd ld/testsuite/ld-powerpc/vxworks-relax.s ld/testsuite/ld-powerpc/vxworks1-lib.dd ld/testsuite/ld-powerpc/vxworks1-lib.nd ld/testsuite/ld-powerpc/vxworks1-lib.rd ld/testsuite/ld-powerpc/vxworks1-lib.s ld/testsuite/ld-powerpc/vxworks1-lib.sd ld/testsuite/ld-powerpc/vxworks1-lib.td ld/testsuite/ld-powerpc/vxworks1-static.d ld/testsuite/ld-powerpc/vxworks1.dd ld/testsuite/ld-powerpc/vxworks1.ld ld/testsuite/ld-powerpc/vxworks1.rd ld/testsuite/ld-powerpc/vxworks1.s ld/testsuite/ld-powerpc/vxworks2-static.sd ld/testsuite/ld-powerpc/vxworks2.s ld/testsuite/ld-powerpc/vxworks2.sd ld/testsuite/ld-s390/gotreloc-1.s ld/testsuite/ld-s390/gotreloc-1.ver ld/testsuite/ld-s390/gotreloc_31-1.dd ld/testsuite/ld-s390/gotreloc_64-1.dd ld/testsuite/ld-s390/s390.exp ld/testsuite/ld-s390/tlsbin.dd ld/testsuite/ld-s390/tlsbin.rd ld/testsuite/ld-s390/tlsbin.s ld/testsuite/ld-s390/tlsbin.sd ld/testsuite/ld-s390/tlsbin.td ld/testsuite/ld-s390/tlsbin_64.dd ld/testsuite/ld-s390/tlsbin_64.rd ld/testsuite/ld-s390/tlsbin_64.s ld/testsuite/ld-s390/tlsbin_64.sd ld/testsuite/ld-s390/tlsbin_64.td ld/testsuite/ld-s390/tlsbinpic.s ld/testsuite/ld-s390/tlsbinpic_64.s ld/testsuite/ld-s390/tlslib.s ld/testsuite/ld-s390/tlslib_64.s ld/testsuite/ld-s390/tlspic.dd ld/testsuite/ld-s390/tlspic.rd ld/testsuite/ld-s390/tlspic.sd ld/testsuite/ld-s390/tlspic.td ld/testsuite/ld-s390/tlspic1.s ld/testsuite/ld-s390/tlspic1_64.s ld/testsuite/ld-s390/tlspic2.s ld/testsuite/ld-s390/tlspic2_64.s ld/testsuite/ld-s390/tlspic_64.dd ld/testsuite/ld-s390/tlspic_64.rd ld/testsuite/ld-s390/tlspic_64.sd ld/testsuite/ld-s390/tlspic_64.td ld/testsuite/ld-scripts/align-with-input.d ld/testsuite/ld-scripts/align-with-input.t ld/testsuite/ld-scripts/align.exp ld/testsuite/ld-scripts/align.s ld/testsuite/ld-scripts/align.t ld/testsuite/ld-scripts/align2.t ld/testsuite/ld-scripts/align2a.d ld/testsuite/ld-scripts/align2a.s ld/testsuite/ld-scripts/align2b.d ld/testsuite/ld-scripts/align2b.s ld/testsuite/ld-scripts/align2c.d ld/testsuite/ld-scripts/align2c.s ld/testsuite/ld-scripts/alignof.exp ld/testsuite/ld-scripts/alignof.s ld/testsuite/ld-scripts/alignof.t ld/testsuite/ld-scripts/assert.exp ld/testsuite/ld-scripts/assert.s ld/testsuite/ld-scripts/assert.t ld/testsuite/ld-scripts/assert2.d ld/testsuite/ld-scripts/assert2.t ld/testsuite/ld-scripts/assign-loc.d ld/testsuite/ld-scripts/assign-loc.t ld/testsuite/ld-scripts/cross1.c ld/testsuite/ld-scripts/cross1.t ld/testsuite/ld-scripts/cross2.c ld/testsuite/ld-scripts/cross2.t ld/testsuite/ld-scripts/cross3.c ld/testsuite/ld-scripts/cross3.t ld/testsuite/ld-scripts/cross4.c ld/testsuite/ld-scripts/crossref.exp ld/testsuite/ld-scripts/data.d ld/testsuite/ld-scripts/data.exp ld/testsuite/ld-scripts/data.s ld/testsuite/ld-scripts/data.t ld/testsuite/ld-scripts/default-script.exp ld/testsuite/ld-scripts/default-script.s ld/testsuite/ld-scripts/default-script.t ld/testsuite/ld-scripts/default-script1.d ld/testsuite/ld-scripts/default-script2.d ld/testsuite/ld-scripts/default-script3.d ld/testsuite/ld-scripts/default-script4.d ld/testsuite/ld-scripts/defined.exp ld/testsuite/ld-scripts/defined.s ld/testsuite/ld-scripts/defined.t ld/testsuite/ld-scripts/defined2.d ld/testsuite/ld-scripts/defined2.t ld/testsuite/ld-scripts/defined3.d ld/testsuite/ld-scripts/defined3.t ld/testsuite/ld-scripts/defined4.d ld/testsuite/ld-scripts/defined4.s ld/testsuite/ld-scripts/defined4.t ld/testsuite/ld-scripts/defined5.d ld/testsuite/ld-scripts/defined5.s ld/testsuite/ld-scripts/defined5.t ld/testsuite/ld-scripts/dynamic-sections-1.s ld/testsuite/ld-scripts/dynamic-sections-2.s ld/testsuite/ld-scripts/dynamic-sections.d ld/testsuite/ld-scripts/dynamic-sections.exp ld/testsuite/ld-scripts/dynamic-sections.t ld/testsuite/ld-scripts/empty-address-1.d ld/testsuite/ld-scripts/empty-address-1.s ld/testsuite/ld-scripts/empty-address-1.t ld/testsuite/ld-scripts/empty-address-2.s ld/testsuite/ld-scripts/empty-address-2a.d ld/testsuite/ld-scripts/empty-address-2a.t ld/testsuite/ld-scripts/empty-address-2b.d ld/testsuite/ld-scripts/empty-address-2b.t ld/testsuite/ld-scripts/empty-address-3.s ld/testsuite/ld-scripts/empty-address-3a.d ld/testsuite/ld-scripts/empty-address-3a.t ld/testsuite/ld-scripts/empty-address-3b.d ld/testsuite/ld-scripts/empty-address-3b.t ld/testsuite/ld-scripts/empty-address-3c.d ld/testsuite/ld-scripts/empty-address-3c.t ld/testsuite/ld-scripts/empty-address.exp ld/testsuite/ld-scripts/empty-aligned.d ld/testsuite/ld-scripts/empty-aligned.exp ld/testsuite/ld-scripts/empty-aligned.s ld/testsuite/ld-scripts/empty-aligned.t ld/testsuite/ld-scripts/empty-orphan.d ld/testsuite/ld-scripts/empty-orphan.exp ld/testsuite/ld-scripts/empty-orphan.s ld/testsuite/ld-scripts/empty-orphan.t ld/testsuite/ld-scripts/expr.exp ld/testsuite/ld-scripts/expr1.d ld/testsuite/ld-scripts/expr1.s ld/testsuite/ld-scripts/expr1.t ld/testsuite/ld-scripts/expr2.d ld/testsuite/ld-scripts/expr2.s ld/testsuite/ld-scripts/expr2.t ld/testsuite/ld-scripts/extern.exp ld/testsuite/ld-scripts/extern.s ld/testsuite/ld-scripts/extern.t ld/testsuite/ld-scripts/include-1.d ld/testsuite/ld-scripts/include-1.t ld/testsuite/ld-scripts/include-data.t ld/testsuite/ld-scripts/include-mem.t ld/testsuite/ld-scripts/include-ram.t ld/testsuite/ld-scripts/include-sections.t ld/testsuite/ld-scripts/include-subdata.t ld/testsuite/ld-scripts/include.exp ld/testsuite/ld-scripts/include.s ld/testsuite/ld-scripts/log2.exp ld/testsuite/ld-scripts/log2.s ld/testsuite/ld-scripts/log2.t ld/testsuite/ld-scripts/map-address.d ld/testsuite/ld-scripts/map-address.exp ld/testsuite/ld-scripts/map-address.t ld/testsuite/ld-scripts/memory.t ld/testsuite/ld-scripts/overlay-size-map.d ld/testsuite/ld-scripts/overlay-size.d ld/testsuite/ld-scripts/overlay-size.exp ld/testsuite/ld-scripts/overlay-size.s ld/testsuite/ld-scripts/overlay-size.t ld/testsuite/ld-scripts/phdrs.exp ld/testsuite/ld-scripts/phdrs.s ld/testsuite/ld-scripts/phdrs.t ld/testsuite/ld-scripts/phdrs2.exp ld/testsuite/ld-scripts/phdrs2.s ld/testsuite/ld-scripts/phdrs2.t ld/testsuite/ld-scripts/phdrs3.d ld/testsuite/ld-scripts/phdrs3.exp ld/testsuite/ld-scripts/phdrs3.t ld/testsuite/ld-scripts/phdrs3a.d ld/testsuite/ld-scripts/phdrs3a.t ld/testsuite/ld-scripts/pr14962.d ld/testsuite/ld-scripts/pr14962.t ld/testsuite/ld-scripts/pr14962a.s ld/testsuite/ld-scripts/pr14962b.s ld/testsuite/ld-scripts/provide-1.d ld/testsuite/ld-scripts/provide-1.s ld/testsuite/ld-scripts/provide-1.t ld/testsuite/ld-scripts/provide-2.d ld/testsuite/ld-scripts/provide-2.s ld/testsuite/ld-scripts/provide-2.t ld/testsuite/ld-scripts/provide-3.d ld/testsuite/ld-scripts/provide-3.s ld/testsuite/ld-scripts/provide-3.t ld/testsuite/ld-scripts/provide.exp ld/testsuite/ld-scripts/region-alias-1.d ld/testsuite/ld-scripts/region-alias-1.t ld/testsuite/ld-scripts/region-alias-2.d ld/testsuite/ld-scripts/region-alias-2.t ld/testsuite/ld-scripts/region-alias-3.d ld/testsuite/ld-scripts/region-alias-3.t ld/testsuite/ld-scripts/region-alias-4.d ld/testsuite/ld-scripts/region-alias-4.t ld/testsuite/ld-scripts/rgn-at.exp ld/testsuite/ld-scripts/rgn-at.s ld/testsuite/ld-scripts/rgn-at1.d ld/testsuite/ld-scripts/rgn-at1.t ld/testsuite/ld-scripts/rgn-at2.d ld/testsuite/ld-scripts/rgn-at2.t ld/testsuite/ld-scripts/rgn-at3.d ld/testsuite/ld-scripts/rgn-at3.t ld/testsuite/ld-scripts/rgn-at4.d ld/testsuite/ld-scripts/rgn-at4.t ld/testsuite/ld-scripts/rgn-at5.d ld/testsuite/ld-scripts/rgn-at5.s ld/testsuite/ld-scripts/rgn-at5.t ld/testsuite/ld-scripts/rgn-at6.d ld/testsuite/ld-scripts/rgn-at6.s ld/testsuite/ld-scripts/rgn-at6.t ld/testsuite/ld-scripts/rgn-at7.d ld/testsuite/ld-scripts/rgn-at7.t ld/testsuite/ld-scripts/rgn-at8.d ld/testsuite/ld-scripts/rgn-at8.t ld/testsuite/ld-scripts/rgn-over.exp ld/testsuite/ld-scripts/rgn-over.s ld/testsuite/ld-scripts/rgn-over1.d ld/testsuite/ld-scripts/rgn-over1.t ld/testsuite/ld-scripts/rgn-over2.d ld/testsuite/ld-scripts/rgn-over2.t ld/testsuite/ld-scripts/rgn-over3.d ld/testsuite/ld-scripts/rgn-over3.t ld/testsuite/ld-scripts/rgn-over4.d ld/testsuite/ld-scripts/rgn-over4.t ld/testsuite/ld-scripts/rgn-over5.d ld/testsuite/ld-scripts/rgn-over5.t ld/testsuite/ld-scripts/rgn-over6.d ld/testsuite/ld-scripts/rgn-over6.t ld/testsuite/ld-scripts/rgn-over7.d ld/testsuite/ld-scripts/rgn-over7.t ld/testsuite/ld-scripts/rgn-over8-ok.d ld/testsuite/ld-scripts/rgn-over8.s ld/testsuite/ld-scripts/rgn-over8.t ld/testsuite/ld-scripts/sane1.d ld/testsuite/ld-scripts/sane1.t ld/testsuite/ld-scripts/script.exp ld/testsuite/ld-scripts/script.s ld/testsuite/ld-scripts/script.t ld/testsuite/ld-scripts/scriptm.t ld/testsuite/ld-scripts/section-flags-1.s ld/testsuite/ld-scripts/section-flags-1.t ld/testsuite/ld-scripts/section-flags-2.s ld/testsuite/ld-scripts/section-flags-2.t ld/testsuite/ld-scripts/section-flags.exp ld/testsuite/ld-scripts/section-match-1.d ld/testsuite/ld-scripts/section-match-1.s ld/testsuite/ld-scripts/section-match-1.t ld/testsuite/ld-scripts/section-match.exp ld/testsuite/ld-scripts/size-1.d ld/testsuite/ld-scripts/size-1.s ld/testsuite/ld-scripts/size-1.t ld/testsuite/ld-scripts/size-2.d ld/testsuite/ld-scripts/size-2.s ld/testsuite/ld-scripts/size-2.t ld/testsuite/ld-scripts/size.exp ld/testsuite/ld-scripts/sizeof.exp ld/testsuite/ld-scripts/sizeof.s ld/testsuite/ld-scripts/sizeof.t ld/testsuite/ld-scripts/sort.exp ld/testsuite/ld-scripts/sort.t ld/testsuite/ld-scripts/sort_b_a-1.d ld/testsuite/ld-scripts/sort_b_a-1.s ld/testsuite/ld-scripts/sort_b_a.d ld/testsuite/ld-scripts/sort_b_a.s ld/testsuite/ld-scripts/sort_b_a.t ld/testsuite/ld-scripts/sort_b_a_a-1.d ld/testsuite/ld-scripts/sort_b_a_a-2.d ld/testsuite/ld-scripts/sort_b_a_a-3.d ld/testsuite/ld-scripts/sort_b_a_a.t ld/testsuite/ld-scripts/sort_b_a_n-1.d ld/testsuite/ld-scripts/sort_b_a_n-2.d ld/testsuite/ld-scripts/sort_b_a_n-3.d ld/testsuite/ld-scripts/sort_b_a_n.t ld/testsuite/ld-scripts/sort_b_n-1.d ld/testsuite/ld-scripts/sort_b_n-1.s ld/testsuite/ld-scripts/sort_b_n.d ld/testsuite/ld-scripts/sort_b_n.s ld/testsuite/ld-scripts/sort_b_n.t ld/testsuite/ld-scripts/sort_b_n_a-1.d ld/testsuite/ld-scripts/sort_b_n_a-2.d ld/testsuite/ld-scripts/sort_b_n_a-3.d ld/testsuite/ld-scripts/sort_b_n_a.t ld/testsuite/ld-scripts/sort_b_n_n-1.d ld/testsuite/ld-scripts/sort_b_n_n-2.d ld/testsuite/ld-scripts/sort_b_n_n-3.d ld/testsuite/ld-scripts/sort_b_n_n.t ld/testsuite/ld-scripts/sort_n_a-a.s ld/testsuite/ld-scripts/sort_n_a-b.s ld/testsuite/ld-scripts/sort_no-1.d ld/testsuite/ld-scripts/sort_no-2.d ld/testsuite/ld-scripts/sort_no.t ld/testsuite/ld-scripts/weak.exp ld/testsuite/ld-scripts/weak.t ld/testsuite/ld-scripts/weak1.s ld/testsuite/ld-scripts/weak2.s ld/testsuite/ld-selective/1.c ld/testsuite/ld-selective/2.c ld/testsuite/ld-selective/3.cc ld/testsuite/ld-selective/4.cc ld/testsuite/ld-selective/5.cc ld/testsuite/ld-selective/keepdot.d ld/testsuite/ld-selective/keepdot.ld ld/testsuite/ld-selective/keepdot.s ld/testsuite/ld-selective/keepdot0.d ld/testsuite/ld-selective/keepdot0.ld ld/testsuite/ld-selective/sel-dump.exp ld/testsuite/ld-selective/selective.exp ld/testsuite/ld-sh/arch/arch.exp ld/testsuite/ld-sh/arch/arch_expected.txt ld/testsuite/ld-sh/arch/sh-dsp.s ld/testsuite/ld-sh/arch/sh.s ld/testsuite/ld-sh/arch/sh2.s ld/testsuite/ld-sh/arch/sh2a-nofpu-or-sh3-nommu.s ld/testsuite/ld-sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s ld/testsuite/ld-sh/arch/sh2a-nofpu.s ld/testsuite/ld-sh/arch/sh2a-or-sh3e.s ld/testsuite/ld-sh/arch/sh2a-or-sh4.s ld/testsuite/ld-sh/arch/sh2a.s ld/testsuite/ld-sh/arch/sh2e.s ld/testsuite/ld-sh/arch/sh3-dsp.s ld/testsuite/ld-sh/arch/sh3-nommu.s ld/testsuite/ld-sh/arch/sh3.s ld/testsuite/ld-sh/arch/sh3e.s ld/testsuite/ld-sh/arch/sh4-nofpu.s ld/testsuite/ld-sh/arch/sh4-nommu-nofpu.s ld/testsuite/ld-sh/arch/sh4.s ld/testsuite/ld-sh/arch/sh4a-nofpu.s ld/testsuite/ld-sh/arch/sh4a.s ld/testsuite/ld-sh/arch/sh4al-dsp.s ld/testsuite/ld-sh/fdpic-funcdesc-shared.d ld/testsuite/ld-sh/fdpic-funcdesc-shared.s ld/testsuite/ld-sh/fdpic-funcdesc-static.d ld/testsuite/ld-sh/fdpic-funcdesc-static.s ld/testsuite/ld-sh/fdpic-gotfuncdesc-shared.d ld/testsuite/ld-sh/fdpic-gotfuncdesc-shared.s ld/testsuite/ld-sh/fdpic-gotfuncdesc-static.d ld/testsuite/ld-sh/fdpic-gotfuncdesc-static.s ld/testsuite/ld-sh/fdpic-gotfuncdesci20-shared.d ld/testsuite/ld-sh/fdpic-gotfuncdesci20-shared.s ld/testsuite/ld-sh/fdpic-gotfuncdesci20-static.d ld/testsuite/ld-sh/fdpic-gotfuncdesci20-static.s ld/testsuite/ld-sh/fdpic-goti20-shared.d ld/testsuite/ld-sh/fdpic-goti20-shared.s ld/testsuite/ld-sh/fdpic-goti20-static.d ld/testsuite/ld-sh/fdpic-goti20-static.s ld/testsuite/ld-sh/fdpic-gotofffuncdesc-shared.d ld/testsuite/ld-sh/fdpic-gotofffuncdesc-shared.s ld/testsuite/ld-sh/fdpic-gotofffuncdesc-static.d ld/testsuite/ld-sh/fdpic-gotofffuncdesc-static.s ld/testsuite/ld-sh/fdpic-gotofffuncdesci20-shared.d ld/testsuite/ld-sh/fdpic-gotofffuncdesci20-shared.s ld/testsuite/ld-sh/fdpic-gotofffuncdesci20-static.d ld/testsuite/ld-sh/fdpic-gotofffuncdesci20-static.s ld/testsuite/ld-sh/fdpic-gotoffi20-shared.d ld/testsuite/ld-sh/fdpic-gotoffi20-shared.s ld/testsuite/ld-sh/fdpic-gotoffi20-static.d ld/testsuite/ld-sh/fdpic-gotoffi20-static.s ld/testsuite/ld-sh/fdpic-plt-be.d ld/testsuite/ld-sh/fdpic-plt-le.d ld/testsuite/ld-sh/fdpic-plt.s ld/testsuite/ld-sh/fdpic-plti20-be.d ld/testsuite/ld-sh/fdpic-plti20-le.d ld/testsuite/ld-sh/fdpic-stack-default.d ld/testsuite/ld-sh/fdpic-stack-set.d ld/testsuite/ld-sh/fdpic-stack-size.d ld/testsuite/ld-sh/fdpic-stack.s ld/testsuite/ld-sh/ld-r-1.d ld/testsuite/ld-sh/ldr1.s ld/testsuite/ld-sh/ldr2.s ld/testsuite/ld-sh/rd-sh.exp ld/testsuite/ld-sh/refdbg-0-dso.d ld/testsuite/ld-sh/refdbg-1.d ld/testsuite/ld-sh/refdbg.s ld/testsuite/ld-sh/refdbglib.s ld/testsuite/ld-sh/reloc1.d ld/testsuite/ld-sh/reloc1.s ld/testsuite/ld-sh/sh-vxworks.exp ld/testsuite/ld-sh/sh.exp ld/testsuite/ld-sh/sh1.s ld/testsuite/ld-sh/sh2.c ld/testsuite/ld-sh/sh64/abi32.sd ld/testsuite/ld-sh/sh64/abi32.xd ld/testsuite/ld-sh/sh64/abi64.sd ld/testsuite/ld-sh/sh64/abi64.xd ld/testsuite/ld-sh/sh64/abixx-noexp.sd ld/testsuite/ld-sh/sh64/cmpct1.sd ld/testsuite/ld-sh/sh64/cmpct1.xd ld/testsuite/ld-sh/sh64/crange-1.s ld/testsuite/ld-sh/sh64/crange-2a.s ld/testsuite/ld-sh/sh64/crange-2b.s ld/testsuite/ld-sh/sh64/crange-2c.s ld/testsuite/ld-sh/sh64/crange-2d.s ld/testsuite/ld-sh/sh64/crange-2e.s ld/testsuite/ld-sh/sh64/crange-2f.s ld/testsuite/ld-sh/sh64/crange-2g.s ld/testsuite/ld-sh/sh64/crange-2h.s ld/testsuite/ld-sh/sh64/crange-2i.s ld/testsuite/ld-sh/sh64/crange1.rd ld/testsuite/ld-sh/sh64/crange2.rd ld/testsuite/ld-sh/sh64/crange3-cmpct.rd ld/testsuite/ld-sh/sh64/crange3-media.rd ld/testsuite/ld-sh/sh64/crange3.dd ld/testsuite/ld-sh/sh64/crange3.rd ld/testsuite/ld-sh/sh64/crangerel1.rd ld/testsuite/ld-sh/sh64/crangerel2.rd ld/testsuite/ld-sh/sh64/dlsection-1.s ld/testsuite/ld-sh/sh64/dlsection.sd ld/testsuite/ld-sh/sh64/endian.dbd ld/testsuite/ld-sh/sh64/endian.dld ld/testsuite/ld-sh/sh64/endian.ld ld/testsuite/ld-sh/sh64/endian.s ld/testsuite/ld-sh/sh64/endian.sbd ld/testsuite/ld-sh/sh64/endian.sld ld/testsuite/ld-sh/sh64/gotplt.d ld/testsuite/ld-sh/sh64/gotplt.map ld/testsuite/ld-sh/sh64/gotplt.s ld/testsuite/ld-sh/sh64/init-cmpct.d ld/testsuite/ld-sh/sh64/init-media.d ld/testsuite/ld-sh/sh64/init.s ld/testsuite/ld-sh/sh64/init64.d ld/testsuite/ld-sh/sh64/mix1-noexp.sd ld/testsuite/ld-sh/sh64/mix1.sd ld/testsuite/ld-sh/sh64/mix1.xd ld/testsuite/ld-sh/sh64/mix2-noexp.sd ld/testsuite/ld-sh/sh64/mix2.sd ld/testsuite/ld-sh/sh64/mix2.xd ld/testsuite/ld-sh/sh64/rd-sh64.exp ld/testsuite/ld-sh/sh64/rel-1.s ld/testsuite/ld-sh/sh64/rel-2.s ld/testsuite/ld-sh/sh64/rel32.xd ld/testsuite/ld-sh/sh64/rel64.xd ld/testsuite/ld-sh/sh64/relax.exp ld/testsuite/ld-sh/sh64/relax1.s ld/testsuite/ld-sh/sh64/relax2.s ld/testsuite/ld-sh/sh64/relax3.s ld/testsuite/ld-sh/sh64/relax4.s ld/testsuite/ld-sh/sh64/reldl-1.s ld/testsuite/ld-sh/sh64/reldl-2.s ld/testsuite/ld-sh/sh64/reldl32.rd ld/testsuite/ld-sh/sh64/reldl64.rd ld/testsuite/ld-sh/sh64/relfail.exp ld/testsuite/ld-sh/sh64/relfail.s ld/testsuite/ld-sh/sh64/sh64-1.s ld/testsuite/ld-sh/sh64/sh64-2.s ld/testsuite/ld-sh/sh64/sh64.exp ld/testsuite/ld-sh/sh64/shcmp-1.s ld/testsuite/ld-sh/sh64/shdl-1.s ld/testsuite/ld-sh/sh64/shdl-2.s ld/testsuite/ld-sh/sh64/shdl32.xd ld/testsuite/ld-sh/sh64/shdl64.sd ld/testsuite/ld-sh/sh64/shdl64.xd ld/testsuite/ld-sh/sh64/shmix-1.s ld/testsuite/ld-sh/sh64/shmix-2.s ld/testsuite/ld-sh/sh64/shmix-3.s ld/testsuite/ld-sh/sh64/stobin-0-dso.d ld/testsuite/ld-sh/sh64/stobin-1.d ld/testsuite/ld-sh/sh64/stobin.s ld/testsuite/ld-sh/sh64/stolib.s ld/testsuite/ld-sh/shared-1.d ld/testsuite/ld-sh/shared-2.d ld/testsuite/ld-sh/start.s ld/testsuite/ld-sh/sub2l-1.d ld/testsuite/ld-sh/sub2l.s ld/testsuite/ld-sh/textrel1.s ld/testsuite/ld-sh/textrel2.s ld/testsuite/ld-sh/tlsbin-0-dso.d ld/testsuite/ld-sh/tlsbin-1.d ld/testsuite/ld-sh/tlsbin-2.d ld/testsuite/ld-sh/tlsbin-3.d ld/testsuite/ld-sh/tlsbin-4.d ld/testsuite/ld-sh/tlsbin.s ld/testsuite/ld-sh/tlsbinpic.s ld/testsuite/ld-sh/tlslib.s ld/testsuite/ld-sh/tlspic-1.d ld/testsuite/ld-sh/tlspic-2.d ld/testsuite/ld-sh/tlspic-3.d ld/testsuite/ld-sh/tlspic-4.d ld/testsuite/ld-sh/tlspic1.s ld/testsuite/ld-sh/tlspic2.s ld/testsuite/ld-sh/tlstpoff-1.d ld/testsuite/ld-sh/tlstpoff-2.d ld/testsuite/ld-sh/tlstpoff1.s ld/testsuite/ld-sh/tlstpoff2.s ld/testsuite/ld-sh/vxworks1-le.dd ld/testsuite/ld-sh/vxworks1-lib-le.dd ld/testsuite/ld-sh/vxworks1-lib.dd ld/testsuite/ld-sh/vxworks1-lib.nd ld/testsuite/ld-sh/vxworks1-lib.rd ld/testsuite/ld-sh/vxworks1-lib.s ld/testsuite/ld-sh/vxworks1-lib.td ld/testsuite/ld-sh/vxworks1-static.d ld/testsuite/ld-sh/vxworks1.dd ld/testsuite/ld-sh/vxworks1.ld ld/testsuite/ld-sh/vxworks1.rd ld/testsuite/ld-sh/vxworks1.s ld/testsuite/ld-sh/vxworks2-static.sd ld/testsuite/ld-sh/vxworks2.s ld/testsuite/ld-sh/vxworks2.sd ld/testsuite/ld-sh/vxworks3-le.dd ld/testsuite/ld-sh/vxworks3-lib-le.dd ld/testsuite/ld-sh/vxworks3-lib.dd ld/testsuite/ld-sh/vxworks3-lib.s ld/testsuite/ld-sh/vxworks3.dd ld/testsuite/ld-sh/vxworks3.s ld/testsuite/ld-sh/vxworks4.d ld/testsuite/ld-sh/vxworks4a.s ld/testsuite/ld-sh/vxworks4b.s ld/testsuite/ld-sh/weak1.d ld/testsuite/ld-sh/weak1.s ld/testsuite/ld-shared/elf-offset.ld ld/testsuite/ld-shared/main.c ld/testsuite/ld-shared/sh1.c ld/testsuite/ld-shared/sh2.c ld/testsuite/ld-shared/shared.dat ld/testsuite/ld-shared/shared.exp ld/testsuite/ld-shared/sun4.dat ld/testsuite/ld-shared/symbolic.dat ld/testsuite/ld-shared/xcoff.dat ld/testsuite/ld-size/size-1.c ld/testsuite/ld-size/size-1.out ld/testsuite/ld-size/size-10.out ld/testsuite/ld-size/size-10.rd ld/testsuite/ld-size/size-10a.c ld/testsuite/ld-size/size-10b.c ld/testsuite/ld-size/size-1a.c ld/testsuite/ld-size/size-1b.c ld/testsuite/ld-size/size-2.c ld/testsuite/ld-size/size-2.out ld/testsuite/ld-size/size-2a.c ld/testsuite/ld-size/size-2b.c ld/testsuite/ld-size/size-3.c ld/testsuite/ld-size/size-3.out ld/testsuite/ld-size/size-3a.c ld/testsuite/ld-size/size-3b.c ld/testsuite/ld-size/size-3c.c ld/testsuite/ld-size/size-4.out ld/testsuite/ld-size/size-4a.c ld/testsuite/ld-size/size-4b.c ld/testsuite/ld-size/size-5.out ld/testsuite/ld-size/size-5a.c ld/testsuite/ld-size/size-5b.c ld/testsuite/ld-size/size-6.out ld/testsuite/ld-size/size-6a.c ld/testsuite/ld-size/size-6b.c ld/testsuite/ld-size/size-7.out ld/testsuite/ld-size/size-7.rd ld/testsuite/ld-size/size-7a.c ld/testsuite/ld-size/size-7b.c ld/testsuite/ld-size/size-8.out ld/testsuite/ld-size/size-8.rd ld/testsuite/ld-size/size-8a.c ld/testsuite/ld-size/size-8b.c ld/testsuite/ld-size/size-9.out ld/testsuite/ld-size/size-9.rd ld/testsuite/ld-size/size-9a.c ld/testsuite/ld-size/size-9b.c ld/testsuite/ld-size/size.exp ld/testsuite/ld-size/size32-1-i386.d ld/testsuite/ld-size/size32-1-x32.d ld/testsuite/ld-size/size32-1-x86-64.d ld/testsuite/ld-size/size32-1.s ld/testsuite/ld-size/size32-2-i386.d ld/testsuite/ld-size/size32-2-x32.d ld/testsuite/ld-size/size32-2-x86-64.d ld/testsuite/ld-size/size32-2.s ld/testsuite/ld-size/size32-3-i386.d ld/testsuite/ld-size/size32-3-x32.d ld/testsuite/ld-size/size32-3-x86-64.d ld/testsuite/ld-size/size32-3a.s ld/testsuite/ld-size/size32-3b.s ld/testsuite/ld-size/size64-1-x32.d ld/testsuite/ld-size/size64-1-x86-64.d ld/testsuite/ld-size/size64-1.s ld/testsuite/ld-size/size64-2-x32.d ld/testsuite/ld-size/size64-2-x86-64.d ld/testsuite/ld-size/size64-2.s ld/testsuite/ld-sparc/gotop32.dd ld/testsuite/ld-sparc/gotop32.rd ld/testsuite/ld-sparc/gotop32.s ld/testsuite/ld-sparc/gotop32.sd ld/testsuite/ld-sparc/gotop32.td ld/testsuite/ld-sparc/gotop64.dd ld/testsuite/ld-sparc/gotop64.rd ld/testsuite/ld-sparc/gotop64.s ld/testsuite/ld-sparc/gotop64.sd ld/testsuite/ld-sparc/gotop64.td ld/testsuite/ld-sparc/sparc.exp ld/testsuite/ld-sparc/tlsg32.s ld/testsuite/ld-sparc/tlsg32.sd ld/testsuite/ld-sparc/tlsg64.s ld/testsuite/ld-sparc/tlsg64.sd ld/testsuite/ld-sparc/tlslib.s ld/testsuite/ld-sparc/tlsnopic.s ld/testsuite/ld-sparc/tlspic.s ld/testsuite/ld-sparc/tlssunbin32.dd ld/testsuite/ld-sparc/tlssunbin32.rd ld/testsuite/ld-sparc/tlssunbin32.s ld/testsuite/ld-sparc/tlssunbin32.sd ld/testsuite/ld-sparc/tlssunbin32.td ld/testsuite/ld-sparc/tlssunbin64.dd ld/testsuite/ld-sparc/tlssunbin64.rd ld/testsuite/ld-sparc/tlssunbin64.s ld/testsuite/ld-sparc/tlssunbin64.sd ld/testsuite/ld-sparc/tlssunbin64.td ld/testsuite/ld-sparc/tlssunbinpic32.s ld/testsuite/ld-sparc/tlssunbinpic64.s ld/testsuite/ld-sparc/tlssunnopic32.dd ld/testsuite/ld-sparc/tlssunnopic32.rd ld/testsuite/ld-sparc/tlssunnopic32.s ld/testsuite/ld-sparc/tlssunnopic32.sd ld/testsuite/ld-sparc/tlssunnopic64.dd ld/testsuite/ld-sparc/tlssunnopic64.rd ld/testsuite/ld-sparc/tlssunnopic64.s ld/testsuite/ld-sparc/tlssunnopic64.sd ld/testsuite/ld-sparc/tlssunpic32.dd ld/testsuite/ld-sparc/tlssunpic32.rd ld/testsuite/ld-sparc/tlssunpic32.s ld/testsuite/ld-sparc/tlssunpic32.sd ld/testsuite/ld-sparc/tlssunpic32.td ld/testsuite/ld-sparc/tlssunpic64.dd ld/testsuite/ld-sparc/tlssunpic64.rd ld/testsuite/ld-sparc/tlssunpic64.s ld/testsuite/ld-sparc/tlssunpic64.sd ld/testsuite/ld-sparc/tlssunpic64.td ld/testsuite/ld-sparc/vxworks1-lib.dd ld/testsuite/ld-sparc/vxworks1-lib.nd ld/testsuite/ld-sparc/vxworks1-lib.rd ld/testsuite/ld-sparc/vxworks1-lib.s ld/testsuite/ld-sparc/vxworks1-lib.td ld/testsuite/ld-sparc/vxworks1-static.d ld/testsuite/ld-sparc/vxworks1.dd ld/testsuite/ld-sparc/vxworks1.ld ld/testsuite/ld-sparc/vxworks1.rd ld/testsuite/ld-sparc/vxworks1.s ld/testsuite/ld-sparc/vxworks2-static.sd ld/testsuite/ld-sparc/vxworks2.s ld/testsuite/ld-sparc/vxworks2.sd ld/testsuite/ld-spu/ear.d ld/testsuite/ld-spu/ear.s ld/testsuite/ld-spu/embed.rd ld/testsuite/ld-spu/fixup.d ld/testsuite/ld-spu/fixup.s ld/testsuite/ld-spu/icache1.d ld/testsuite/ld-spu/icache1.s ld/testsuite/ld-spu/ovl.d ld/testsuite/ld-spu/ovl.lnk ld/testsuite/ld-spu/ovl.s ld/testsuite/ld-spu/ovl1.lnk ld/testsuite/ld-spu/ovl2.d ld/testsuite/ld-spu/ovl2.lnk ld/testsuite/ld-spu/ovl2.s ld/testsuite/ld-spu/pic.d ld/testsuite/ld-spu/pic.s ld/testsuite/ld-spu/picdef.s ld/testsuite/ld-spu/spu.exp ld/testsuite/ld-srec/sr1.c ld/testsuite/ld-srec/sr2.c ld/testsuite/ld-srec/sr3.cc ld/testsuite/ld-srec/srec.exp ld/testsuite/ld-tic6x/attr-arch-c62x-c62x.d ld/testsuite/ld-tic6x/attr-arch-c62x-c64x+.d ld/testsuite/ld-tic6x/attr-arch-c62x-c64x.d ld/testsuite/ld-tic6x/attr-arch-c62x-c674x.d ld/testsuite/ld-tic6x/attr-arch-c62x-c67x+.d ld/testsuite/ld-tic6x/attr-arch-c62x-c67x.d ld/testsuite/ld-tic6x/attr-arch-c62x.s ld/testsuite/ld-tic6x/attr-arch-c64x+-c62x.d ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x+.d ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x.d ld/testsuite/ld-tic6x/attr-arch-c64x+-c674x.d ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x+.d ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x.d ld/testsuite/ld-tic6x/attr-arch-c64x+.s ld/testsuite/ld-tic6x/attr-arch-c64x-c62x.d ld/testsuite/ld-tic6x/attr-arch-c64x-c64x+.d ld/testsuite/ld-tic6x/attr-arch-c64x-c64x.d ld/testsuite/ld-tic6x/attr-arch-c64x-c674x.d ld/testsuite/ld-tic6x/attr-arch-c64x-c67x+.d ld/testsuite/ld-tic6x/attr-arch-c64x-c67x.d ld/testsuite/ld-tic6x/attr-arch-c64x.s ld/testsuite/ld-tic6x/attr-arch-c674x-c62x.d ld/testsuite/ld-tic6x/attr-arch-c674x-c64x+.d ld/testsuite/ld-tic6x/attr-arch-c674x-c64x.d ld/testsuite/ld-tic6x/attr-arch-c674x-c674x.d ld/testsuite/ld-tic6x/attr-arch-c674x-c67x+.d ld/testsuite/ld-tic6x/attr-arch-c674x-c67x.d ld/testsuite/ld-tic6x/attr-arch-c674x.s ld/testsuite/ld-tic6x/attr-arch-c67x+-c62x.d ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x+.d ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x.d ld/testsuite/ld-tic6x/attr-arch-c67x+-c674x.d ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x+.d ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x.d ld/testsuite/ld-tic6x/attr-arch-c67x+.s ld/testsuite/ld-tic6x/attr-arch-c67x-c62x.d ld/testsuite/ld-tic6x/attr-arch-c67x-c64x+.d ld/testsuite/ld-tic6x/attr-arch-c67x-c64x.d ld/testsuite/ld-tic6x/attr-arch-c67x-c674x.d ld/testsuite/ld-tic6x/attr-arch-c67x-c67x+.d ld/testsuite/ld-tic6x/attr-arch-c67x-c67x.d ld/testsuite/ld-tic6x/attr-arch-c67x.s ld/testsuite/ld-tic6x/attr-array-16-16.d ld/testsuite/ld-tic6x/attr-array-16-4.d ld/testsuite/ld-tic6x/attr-array-16-416.d ld/testsuite/ld-tic6x/attr-array-16-48.d ld/testsuite/ld-tic6x/attr-array-16-8.d ld/testsuite/ld-tic6x/attr-array-16-816.d ld/testsuite/ld-tic6x/attr-array-16.s ld/testsuite/ld-tic6x/attr-array-4-16.d ld/testsuite/ld-tic6x/attr-array-4-4.d ld/testsuite/ld-tic6x/attr-array-4-416.d ld/testsuite/ld-tic6x/attr-array-4-48.d ld/testsuite/ld-tic6x/attr-array-4-8.d ld/testsuite/ld-tic6x/attr-array-4-816.d ld/testsuite/ld-tic6x/attr-array-4.s ld/testsuite/ld-tic6x/attr-array-416-16.d ld/testsuite/ld-tic6x/attr-array-416-4.d ld/testsuite/ld-tic6x/attr-array-416-416.d ld/testsuite/ld-tic6x/attr-array-416-48.d ld/testsuite/ld-tic6x/attr-array-416-8.d ld/testsuite/ld-tic6x/attr-array-416-816.d ld/testsuite/ld-tic6x/attr-array-416.s ld/testsuite/ld-tic6x/attr-array-48-16.d ld/testsuite/ld-tic6x/attr-array-48-4.d ld/testsuite/ld-tic6x/attr-array-48-416.d ld/testsuite/ld-tic6x/attr-array-48-48.d ld/testsuite/ld-tic6x/attr-array-48-8.d ld/testsuite/ld-tic6x/attr-array-48-816.d ld/testsuite/ld-tic6x/attr-array-48.s ld/testsuite/ld-tic6x/attr-array-8-16.d ld/testsuite/ld-tic6x/attr-array-8-4.d ld/testsuite/ld-tic6x/attr-array-8-416.d ld/testsuite/ld-tic6x/attr-array-8-48.d ld/testsuite/ld-tic6x/attr-array-8-8.d ld/testsuite/ld-tic6x/attr-array-8-816.d ld/testsuite/ld-tic6x/attr-array-8.s ld/testsuite/ld-tic6x/attr-array-816-16.d ld/testsuite/ld-tic6x/attr-array-816-4.d ld/testsuite/ld-tic6x/attr-array-816-416.d ld/testsuite/ld-tic6x/attr-array-816-48.d ld/testsuite/ld-tic6x/attr-array-816-8.d ld/testsuite/ld-tic6x/attr-array-816-816.d ld/testsuite/ld-tic6x/attr-array-816.s ld/testsuite/ld-tic6x/attr-compatibility-gnu-gnu.d ld/testsuite/ld-tic6x/attr-compatibility-gnu-other.d ld/testsuite/ld-tic6x/attr-compatibility-gnu.s ld/testsuite/ld-tic6x/attr-compatibility-other-gnu.d ld/testsuite/ld-tic6x/attr-compatibility-other-other.d ld/testsuite/ld-tic6x/attr-compatibility-other.s ld/testsuite/ld-tic6x/attr-conformance-10-10.d ld/testsuite/ld-tic6x/attr-conformance-10-11.d ld/testsuite/ld-tic6x/attr-conformance-10-none.d ld/testsuite/ld-tic6x/attr-conformance-10.s ld/testsuite/ld-tic6x/attr-conformance-11-10.d ld/testsuite/ld-tic6x/attr-conformance-11-11.d ld/testsuite/ld-tic6x/attr-conformance-11-none.d ld/testsuite/ld-tic6x/attr-conformance-11.s ld/testsuite/ld-tic6x/attr-conformance-none-10.d ld/testsuite/ld-tic6x/attr-conformance-none-11.d ld/testsuite/ld-tic6x/attr-conformance-none-none.d ld/testsuite/ld-tic6x/attr-conformance-none.s ld/testsuite/ld-tic6x/attr-dsbt-0.s ld/testsuite/ld-tic6x/attr-dsbt-00.d ld/testsuite/ld-tic6x/attr-dsbt-01.d ld/testsuite/ld-tic6x/attr-dsbt-1.s ld/testsuite/ld-tic6x/attr-dsbt-10.d ld/testsuite/ld-tic6x/attr-dsbt-11.d ld/testsuite/ld-tic6x/attr-pic-0.s ld/testsuite/ld-tic6x/attr-pic-00.d ld/testsuite/ld-tic6x/attr-pic-01.d ld/testsuite/ld-tic6x/attr-pic-1.s ld/testsuite/ld-tic6x/attr-pic-10.d ld/testsuite/ld-tic6x/attr-pic-11.d ld/testsuite/ld-tic6x/attr-pid-0.s ld/testsuite/ld-tic6x/attr-pid-00.d ld/testsuite/ld-tic6x/attr-pid-01.d ld/testsuite/ld-tic6x/attr-pid-02.d ld/testsuite/ld-tic6x/attr-pid-1.s ld/testsuite/ld-tic6x/attr-pid-10.d ld/testsuite/ld-tic6x/attr-pid-11.d ld/testsuite/ld-tic6x/attr-pid-12.d ld/testsuite/ld-tic6x/attr-pid-2.s ld/testsuite/ld-tic6x/attr-pid-20.d ld/testsuite/ld-tic6x/attr-pid-21.d ld/testsuite/ld-tic6x/attr-pid-22.d ld/testsuite/ld-tic6x/attr-stack-16-16.d ld/testsuite/ld-tic6x/attr-stack-16-8.d ld/testsuite/ld-tic6x/attr-stack-16-816.d ld/testsuite/ld-tic6x/attr-stack-16.s ld/testsuite/ld-tic6x/attr-stack-8-16.d ld/testsuite/ld-tic6x/attr-stack-8-8.d ld/testsuite/ld-tic6x/attr-stack-8-816.d ld/testsuite/ld-tic6x/attr-stack-8.s ld/testsuite/ld-tic6x/attr-stack-816-16.d ld/testsuite/ld-tic6x/attr-stack-816-8.d ld/testsuite/ld-tic6x/attr-stack-816-816.d ld/testsuite/ld-tic6x/attr-stack-816.s ld/testsuite/ld-tic6x/attr-unknown-1.d ld/testsuite/ld-tic6x/attr-unknown-1000-1.s ld/testsuite/ld-tic6x/attr-unknown-1000-2.s ld/testsuite/ld-tic6x/attr-unknown-1024-1.s ld/testsuite/ld-tic6x/attr-unknown-2.d ld/testsuite/ld-tic6x/attr-unknown-3.d ld/testsuite/ld-tic6x/attr-unknown-4.d ld/testsuite/ld-tic6x/attr-unknown-5.d ld/testsuite/ld-tic6x/attr-unknown-54-1.s ld/testsuite/ld-tic6x/attr-unknown-55-a.s ld/testsuite/ld-tic6x/attr-unknown-6.d ld/testsuite/ld-tic6x/attr-unknown-7.d ld/testsuite/ld-tic6x/attr-unknown-71-a.s ld/testsuite/ld-tic6x/attr-unknown-71-b.s ld/testsuite/ld-tic6x/attr-wchar-0.s ld/testsuite/ld-tic6x/attr-wchar-00.d ld/testsuite/ld-tic6x/attr-wchar-01.d ld/testsuite/ld-tic6x/attr-wchar-02.d ld/testsuite/ld-tic6x/attr-wchar-1.s ld/testsuite/ld-tic6x/attr-wchar-10.d ld/testsuite/ld-tic6x/attr-wchar-11.d ld/testsuite/ld-tic6x/attr-wchar-12.d ld/testsuite/ld-tic6x/attr-wchar-2.s ld/testsuite/ld-tic6x/attr-wchar-20.d ld/testsuite/ld-tic6x/attr-wchar-21.d ld/testsuite/ld-tic6x/attr-wchar-22.d ld/testsuite/ld-tic6x/common.d ld/testsuite/ld-tic6x/common.ld ld/testsuite/ld-tic6x/common.s ld/testsuite/ld-tic6x/data-reloc-global-rel.d ld/testsuite/ld-tic6x/data-reloc-global-rel.s ld/testsuite/ld-tic6x/data-reloc-global.d ld/testsuite/ld-tic6x/data-reloc-global.s ld/testsuite/ld-tic6x/data-reloc-local-1.s ld/testsuite/ld-tic6x/data-reloc-local-2.s ld/testsuite/ld-tic6x/data-reloc-local-r-rel.d ld/testsuite/ld-tic6x/data-reloc-local-r.d ld/testsuite/ld-tic6x/data-reloc-local-rel.d ld/testsuite/ld-tic6x/data-reloc-local.d ld/testsuite/ld-tic6x/discard-unwind.ld ld/testsuite/ld-tic6x/dsbt-be.ld ld/testsuite/ld-tic6x/dsbt-index-error.d ld/testsuite/ld-tic6x/dsbt-index.d ld/testsuite/ld-tic6x/dsbt-index.s ld/testsuite/ld-tic6x/dsbt-inrange.ld ld/testsuite/ld-tic6x/dsbt-overflow.ld ld/testsuite/ld-tic6x/dsbt.ld ld/testsuite/ld-tic6x/ehtype-reloc-1-rel.d ld/testsuite/ld-tic6x/ehtype-reloc-1.d ld/testsuite/ld-tic6x/ehtype-reloc-1.s ld/testsuite/ld-tic6x/generic.ld ld/testsuite/ld-tic6x/got-reloc-global-addend-1.d ld/testsuite/ld-tic6x/got-reloc-global-addend-1.s ld/testsuite/ld-tic6x/got-reloc-global-addend-2.d ld/testsuite/ld-tic6x/got-reloc-global-addend-2.s ld/testsuite/ld-tic6x/got-reloc-global.s ld/testsuite/ld-tic6x/got-reloc-inrange.d ld/testsuite/ld-tic6x/got-reloc-local-1.s ld/testsuite/ld-tic6x/got-reloc-local-2.s ld/testsuite/ld-tic6x/got-reloc-local-r.d ld/testsuite/ld-tic6x/got-reloc-overflow.d ld/testsuite/ld-tic6x/mvk-reloc-global-rel.d ld/testsuite/ld-tic6x/mvk-reloc-global-rel.s ld/testsuite/ld-tic6x/mvk-reloc-global.d ld/testsuite/ld-tic6x/mvk-reloc-global.s ld/testsuite/ld-tic6x/mvk-reloc-local-1-rel.s ld/testsuite/ld-tic6x/mvk-reloc-local-1.s ld/testsuite/ld-tic6x/mvk-reloc-local-2-rel.s ld/testsuite/ld-tic6x/mvk-reloc-local-2.s ld/testsuite/ld-tic6x/mvk-reloc-local-r-rel.d ld/testsuite/ld-tic6x/mvk-reloc-local-r.d ld/testsuite/ld-tic6x/mvk-reloc-local-rel.d ld/testsuite/ld-tic6x/mvk-reloc-local.d ld/testsuite/ld-tic6x/pcr-reloc.d ld/testsuite/ld-tic6x/pcr-reloc.s ld/testsuite/ld-tic6x/pcrel-reloc-global-rel.d ld/testsuite/ld-tic6x/pcrel-reloc-global.d ld/testsuite/ld-tic6x/pcrel-reloc-global.s ld/testsuite/ld-tic6x/pcrel-reloc-local-1.s ld/testsuite/ld-tic6x/pcrel-reloc-local-2.s ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel-rela.d ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel.d ld/testsuite/ld-tic6x/pcrel-reloc-local-r.d ld/testsuite/ld-tic6x/pcrel-reloc-local-rel.d ld/testsuite/ld-tic6x/pcrel-reloc-local.d ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-1.d ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-2.d ld/testsuite/ld-tic6x/reloc-overflow-abs-s16.s ld/testsuite/ld-tic6x/reloc-overflow-abs16-1.d ld/testsuite/ld-tic6x/reloc-overflow-abs16-2.d ld/testsuite/ld-tic6x/reloc-overflow-abs16.s ld/testsuite/ld-tic6x/reloc-overflow-abs8-1.d ld/testsuite/ld-tic6x/reloc-overflow-abs8-2.d ld/testsuite/ld-tic6x/reloc-overflow-abs8.s ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-1.d ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-2.d ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10.s ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-1.d ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-2.d ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12.s ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-1.d ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-2.d ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21.s ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-1.d ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-2.d ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7.s ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-1.d ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-2.d ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16.s ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-1.d ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-2.d ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b.s ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-1.d ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-2.d ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h.s ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-1.d ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-2.d ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w.s ld/testsuite/ld-tic6x/sbr-reloc-global-rel.d ld/testsuite/ld-tic6x/sbr-reloc-global-rel.s ld/testsuite/ld-tic6x/sbr-reloc-global.d ld/testsuite/ld-tic6x/sbr-reloc-global.s ld/testsuite/ld-tic6x/sbr-reloc-local-1-rel.s ld/testsuite/ld-tic6x/sbr-reloc-local-1.s ld/testsuite/ld-tic6x/sbr-reloc-local-2-rel.s ld/testsuite/ld-tic6x/sbr-reloc-local-2.s ld/testsuite/ld-tic6x/sbr-reloc-local-r-rel.d ld/testsuite/ld-tic6x/sbr-reloc-local-r.d ld/testsuite/ld-tic6x/sbr-reloc-local-rel.d ld/testsuite/ld-tic6x/sbr-reloc-local.d ld/testsuite/ld-tic6x/sbr.ld ld/testsuite/ld-tic6x/shared-nopic.d ld/testsuite/ld-tic6x/shared-nopid.d ld/testsuite/ld-tic6x/shlib-1.dd ld/testsuite/ld-tic6x/shlib-1.rd ld/testsuite/ld-tic6x/shlib-1.s ld/testsuite/ld-tic6x/shlib-1.sd ld/testsuite/ld-tic6x/shlib-1b.dd ld/testsuite/ld-tic6x/shlib-1b.rd ld/testsuite/ld-tic6x/shlib-1b.sd ld/testsuite/ld-tic6x/shlib-1r.dd ld/testsuite/ld-tic6x/shlib-1r.rd ld/testsuite/ld-tic6x/shlib-1r.sd ld/testsuite/ld-tic6x/shlib-1rb.dd ld/testsuite/ld-tic6x/shlib-1rb.rd ld/testsuite/ld-tic6x/shlib-1rb.sd ld/testsuite/ld-tic6x/shlib-2.s ld/testsuite/ld-tic6x/shlib-app-1.dd ld/testsuite/ld-tic6x/shlib-app-1.od ld/testsuite/ld-tic6x/shlib-app-1.rd ld/testsuite/ld-tic6x/shlib-app-1.s ld/testsuite/ld-tic6x/shlib-app-1.sd ld/testsuite/ld-tic6x/shlib-app-1b.dd ld/testsuite/ld-tic6x/shlib-app-1b.od ld/testsuite/ld-tic6x/shlib-app-1b.rd ld/testsuite/ld-tic6x/shlib-app-1b.sd ld/testsuite/ld-tic6x/shlib-app-1r.dd ld/testsuite/ld-tic6x/shlib-app-1r.od ld/testsuite/ld-tic6x/shlib-app-1r.rd ld/testsuite/ld-tic6x/shlib-app-1r.s ld/testsuite/ld-tic6x/shlib-app-1r.sd ld/testsuite/ld-tic6x/shlib-app-1rb.dd ld/testsuite/ld-tic6x/shlib-app-1rb.od ld/testsuite/ld-tic6x/shlib-app-1rb.rd ld/testsuite/ld-tic6x/shlib-app-1rb.sd ld/testsuite/ld-tic6x/shlib-noindex.dd ld/testsuite/ld-tic6x/shlib-noindex.rd ld/testsuite/ld-tic6x/shlib-noindex.sd ld/testsuite/ld-tic6x/static-app-1.dd ld/testsuite/ld-tic6x/static-app-1.od ld/testsuite/ld-tic6x/static-app-1.rd ld/testsuite/ld-tic6x/static-app-1.sd ld/testsuite/ld-tic6x/static-app-1b.dd ld/testsuite/ld-tic6x/static-app-1b.od ld/testsuite/ld-tic6x/static-app-1b.rd ld/testsuite/ld-tic6x/static-app-1b.sd ld/testsuite/ld-tic6x/static-app-1r.dd ld/testsuite/ld-tic6x/static-app-1r.od ld/testsuite/ld-tic6x/static-app-1r.rd ld/testsuite/ld-tic6x/static-app-1r.sd ld/testsuite/ld-tic6x/static-app-1rb.dd ld/testsuite/ld-tic6x/static-app-1rb.od ld/testsuite/ld-tic6x/static-app-1rb.rd ld/testsuite/ld-tic6x/static-app-1rb.sd ld/testsuite/ld-tic6x/tic6x.exp ld/testsuite/ld-tic6x/unwind-1.d ld/testsuite/ld-tic6x/unwind-1.s ld/testsuite/ld-tic6x/unwind-2.d ld/testsuite/ld-tic6x/unwind-2.s ld/testsuite/ld-tic6x/unwind-3.d ld/testsuite/ld-tic6x/unwind-3.s ld/testsuite/ld-tic6x/unwind-4.d ld/testsuite/ld-tic6x/unwind-4.s ld/testsuite/ld-tic6x/unwind-5.d ld/testsuite/ld-tic6x/unwind-5.s ld/testsuite/ld-tic6x/unwind-6.d ld/testsuite/ld-tic6x/unwind.ld ld/testsuite/ld-tic6x/weak-be.d ld/testsuite/ld-tic6x/weak-data.d ld/testsuite/ld-tic6x/weak.d ld/testsuite/ld-tic6x/weak.s ld/testsuite/ld-tilegx/external.s ld/testsuite/ld-tilegx/reloc-be.d ld/testsuite/ld-tilegx/reloc-le.d ld/testsuite/ld-tilegx/reloc.s ld/testsuite/ld-tilegx/tilegx.exp ld/testsuite/ld-tilepro/external.s ld/testsuite/ld-tilepro/reloc.d ld/testsuite/ld-tilepro/reloc.s ld/testsuite/ld-tilepro/tilepro.exp ld/testsuite/ld-undefined/dummy.s ld/testsuite/ld-undefined/entry-1.d ld/testsuite/ld-undefined/entry-2.d ld/testsuite/ld-undefined/entry-3.d ld/testsuite/ld-undefined/entry-4.d ld/testsuite/ld-undefined/entry-5.d ld/testsuite/ld-undefined/entry-6.d ld/testsuite/ld-undefined/entry-7.d ld/testsuite/ld-undefined/entry.exp ld/testsuite/ld-undefined/entry.s ld/testsuite/ld-undefined/undefined.c ld/testsuite/ld-undefined/undefined.exp ld/testsuite/ld-undefined/weak-undef.exp ld/testsuite/ld-undefined/weak-undef.s ld/testsuite/ld-undefined/weak-undef.t ld/testsuite/ld-unique/unique.exp ld/testsuite/ld-unique/unique.s ld/testsuite/ld-unique/unique_empty.s ld/testsuite/ld-unique/unique_shared.s ld/testsuite/ld-v850/split-lo16.d ld/testsuite/ld-v850/split-lo16.ld ld/testsuite/ld-v850/split-lo16.s ld/testsuite/ld-v850/v850.exp ld/testsuite/ld-vax-elf/export-class-call.dd ld/testsuite/ld-vax-elf/export-class-call.rd ld/testsuite/ld-vax-elf/export-class-call.s ld/testsuite/ld-vax-elf/export-class-call.xd ld/testsuite/ld-vax-elf/export-class-data.dd ld/testsuite/ld-vax-elf/export-class-data.rd ld/testsuite/ld-vax-elf/export-class-data.s ld/testsuite/ld-vax-elf/export-class-data.xd ld/testsuite/ld-vax-elf/export-class-def.s ld/testsuite/ld-vax-elf/export-class.exp ld/testsuite/ld-vax-elf/export-class.ld ld/testsuite/ld-vax-elf/got-local-aux.s ld/testsuite/ld-vax-elf/got-local-def.s ld/testsuite/ld-vax-elf/got-local-exe.xd ld/testsuite/ld-vax-elf/got-local-lib.xd ld/testsuite/ld-vax-elf/got-local-ref.s ld/testsuite/ld-vax-elf/plt-local-hidden-pic.s ld/testsuite/ld-vax-elf/plt-local-lib.dd ld/testsuite/ld-vax-elf/plt-local-lib.ld ld/testsuite/ld-vax-elf/plt-local-lib.s ld/testsuite/ld-vax-elf/plt-local-rehidden-pic.s ld/testsuite/ld-vax-elf/plt-local.dd ld/testsuite/ld-vax-elf/plt-local.ld ld/testsuite/ld-vax-elf/plt-local.s ld/testsuite/ld-vax-elf/vax-elf.exp ld/testsuite/ld-vax-elf/vax-export-class.rd ld/testsuite/ld-vax-elf/vax-export-class.xd ld/testsuite/ld-versados/t1-1.ro ld/testsuite/ld-versados/t1-2.ro ld/testsuite/ld-versados/t1.ld ld/testsuite/ld-versados/t1.ook ld/testsuite/ld-versados/t2-1.ro ld/testsuite/ld-versados/t2-2.ro ld/testsuite/ld-versados/t2-3.ro ld/testsuite/ld-versados/t2.ld ld/testsuite/ld-versados/t2.ook ld/testsuite/ld-versados/versados.exp ld/testsuite/ld-vxworks/plt-mips1.d ld/testsuite/ld-vxworks/plt-mips1.s ld/testsuite/ld-vxworks/rpath-1.d ld/testsuite/ld-vxworks/rpath-1.s ld/testsuite/ld-vxworks/tls-1.d ld/testsuite/ld-vxworks/tls-1.s ld/testsuite/ld-vxworks/tls-2.d ld/testsuite/ld-vxworks/tls-2.s ld/testsuite/ld-vxworks/tls-3.d ld/testsuite/ld-vxworks/tls-3.s ld/testsuite/ld-vxworks/vxworks.exp ld/testsuite/ld-x86-64/32bit.s ld/testsuite/ld-x86-64/64bit.s ld/testsuite/ld-x86-64/abs-k1om.d ld/testsuite/ld-x86-64/abs-l1om.d ld/testsuite/ld-x86-64/abs.d ld/testsuite/ld-x86-64/compressed1.d ld/testsuite/ld-x86-64/compressed1.s ld/testsuite/ld-x86-64/discarded1.d ld/testsuite/ld-x86-64/discarded1.s ld/testsuite/ld-x86-64/discarded1.t ld/testsuite/ld-x86-64/dummy.s ld/testsuite/ld-x86-64/dwarfreloc.exp ld/testsuite/ld-x86-64/dwarfreloc.rd ld/testsuite/ld-x86-64/dwarfreloc1.s ld/testsuite/ld-x86-64/dwarfreloc2.s ld/testsuite/ld-x86-64/export-class.exp ld/testsuite/ld-x86-64/foo.s ld/testsuite/ld-x86-64/hidden1.d ld/testsuite/ld-x86-64/hidden1.s ld/testsuite/ld-x86-64/hidden2.d ld/testsuite/ld-x86-64/hidden2.s ld/testsuite/ld-x86-64/hidden3.d ld/testsuite/ld-x86-64/hidden3.s ld/testsuite/ld-x86-64/ia32-1.d ld/testsuite/ld-x86-64/ia32-2.d ld/testsuite/ld-x86-64/ia32-3.d ld/testsuite/ld-x86-64/ilp32-1.d ld/testsuite/ld-x86-64/ilp32-10.d ld/testsuite/ld-x86-64/ilp32-10.s ld/testsuite/ld-x86-64/ilp32-11.d ld/testsuite/ld-x86-64/ilp32-11.s ld/testsuite/ld-x86-64/ilp32-2.d ld/testsuite/ld-x86-64/ilp32-3.d ld/testsuite/ld-x86-64/ilp32-4-nacl.d ld/testsuite/ld-x86-64/ilp32-4.d ld/testsuite/ld-x86-64/ilp32-4.s ld/testsuite/ld-x86-64/ilp32-5.d ld/testsuite/ld-x86-64/ilp32-5.s ld/testsuite/ld-x86-64/ilp32-6.d ld/testsuite/ld-x86-64/ilp32-6.s ld/testsuite/ld-x86-64/ilp32-7.d ld/testsuite/ld-x86-64/ilp32-7.s ld/testsuite/ld-x86-64/ilp32-8.d ld/testsuite/ld-x86-64/ilp32-8.s ld/testsuite/ld-x86-64/ilp32-9.d ld/testsuite/ld-x86-64/ilp32-9.s ld/testsuite/ld-x86-64/incompatible.l ld/testsuite/ld-x86-64/lea1.s ld/testsuite/ld-x86-64/lea1a.d ld/testsuite/ld-x86-64/lea1b.d ld/testsuite/ld-x86-64/lea1c.d ld/testsuite/ld-x86-64/lea1d.d ld/testsuite/ld-x86-64/lea1e.d ld/testsuite/ld-x86-64/lea1f.d ld/testsuite/ld-x86-64/lea1g.d ld/testsuite/ld-x86-64/lea1h.d ld/testsuite/ld-x86-64/lea1i.d ld/testsuite/ld-x86-64/lea1j.d ld/testsuite/ld-x86-64/lea1k.d ld/testsuite/ld-x86-64/lea1l.d ld/testsuite/ld-x86-64/line.exp ld/testsuite/ld-x86-64/lp64-1.d ld/testsuite/ld-x86-64/lp64-2.d ld/testsuite/ld-x86-64/lp64-3.d ld/testsuite/ld-x86-64/mixed1a.s ld/testsuite/ld-x86-64/mixed1b.s ld/testsuite/ld-x86-64/mixed2a.s ld/testsuite/ld-x86-64/mixed2b.s ld/testsuite/ld-x86-64/mov1.s ld/testsuite/ld-x86-64/mov1a.d ld/testsuite/ld-x86-64/mov1b.d ld/testsuite/ld-x86-64/mov1c.d ld/testsuite/ld-x86-64/mov1d.d ld/testsuite/ld-x86-64/nogot1.d ld/testsuite/ld-x86-64/nogot1.s ld/testsuite/ld-x86-64/nogot2.d ld/testsuite/ld-x86-64/nogot2.s ld/testsuite/ld-x86-64/pcrel16.d ld/testsuite/ld-x86-64/pcrel8.d ld/testsuite/ld-x86-64/plt-nacl.pd ld/testsuite/ld-x86-64/plt-pic.s ld/testsuite/ld-x86-64/plt.pd ld/testsuite/ld-x86-64/plt.s ld/testsuite/ld-x86-64/pltlib.s ld/testsuite/ld-x86-64/pr12570a.d ld/testsuite/ld-x86-64/pr12570a.s ld/testsuite/ld-x86-64/pr12570b.d ld/testsuite/ld-x86-64/pr12570b.s ld/testsuite/ld-x86-64/pr12718.d ld/testsuite/ld-x86-64/pr12718.s ld/testsuite/ld-x86-64/pr12921.d ld/testsuite/ld-x86-64/pr12921.s ld/testsuite/ld-x86-64/pr13082-1.s ld/testsuite/ld-x86-64/pr13082-1a.d ld/testsuite/ld-x86-64/pr13082-1b.d ld/testsuite/ld-x86-64/pr13082-2.s ld/testsuite/ld-x86-64/pr13082-2a.d ld/testsuite/ld-x86-64/pr13082-2b.d ld/testsuite/ld-x86-64/pr13082-3.s ld/testsuite/ld-x86-64/pr13082-3a.d ld/testsuite/ld-x86-64/pr13082-3b.d ld/testsuite/ld-x86-64/pr13082-4.s ld/testsuite/ld-x86-64/pr13082-4a.d ld/testsuite/ld-x86-64/pr13082-4b.d ld/testsuite/ld-x86-64/pr13082-5.s ld/testsuite/ld-x86-64/pr13082-5a.d ld/testsuite/ld-x86-64/pr13082-5b.d ld/testsuite/ld-x86-64/pr13082-6.s ld/testsuite/ld-x86-64/pr13082-6a.d ld/testsuite/ld-x86-64/pr13082-6b.d ld/testsuite/ld-x86-64/pr13947.d ld/testsuite/ld-x86-64/pr13947.s ld/testsuite/ld-x86-64/pr14207.d ld/testsuite/ld-x86-64/pr14207.s ld/testsuite/ld-x86-64/pr14215.d ld/testsuite/ld-x86-64/pr14215.s ld/testsuite/ld-x86-64/protected1.d ld/testsuite/ld-x86-64/protected1.s ld/testsuite/ld-x86-64/protected2-k1om.d ld/testsuite/ld-x86-64/protected2-l1om.d ld/testsuite/ld-x86-64/protected2.d ld/testsuite/ld-x86-64/protected2.s ld/testsuite/ld-x86-64/protected3-k1om.d ld/testsuite/ld-x86-64/protected3-l1om.d ld/testsuite/ld-x86-64/protected3.d ld/testsuite/ld-x86-64/protected3.s ld/testsuite/ld-x86-64/protected4.d ld/testsuite/ld-x86-64/protected4.s ld/testsuite/ld-x86-64/protected5.d ld/testsuite/ld-x86-64/protected5.s ld/testsuite/ld-x86-64/simple.c ld/testsuite/ld-x86-64/split-by-file-nacl.rd ld/testsuite/ld-x86-64/split-by-file.rd ld/testsuite/ld-x86-64/split-by-file1.s ld/testsuite/ld-x86-64/split-by-file2.s ld/testsuite/ld-x86-64/start.s ld/testsuite/ld-x86-64/tlsbin-nacl.rd ld/testsuite/ld-x86-64/tlsbin.dd ld/testsuite/ld-x86-64/tlsbin.rd ld/testsuite/ld-x86-64/tlsbin.s ld/testsuite/ld-x86-64/tlsbin.sd ld/testsuite/ld-x86-64/tlsbin.td ld/testsuite/ld-x86-64/tlsbindesc-nacl.rd ld/testsuite/ld-x86-64/tlsbindesc.dd ld/testsuite/ld-x86-64/tlsbindesc.rd ld/testsuite/ld-x86-64/tlsbindesc.s ld/testsuite/ld-x86-64/tlsbindesc.sd ld/testsuite/ld-x86-64/tlsbindesc.td ld/testsuite/ld-x86-64/tlsbinpic.s ld/testsuite/ld-x86-64/tlsdesc-nacl.pd ld/testsuite/ld-x86-64/tlsdesc-nacl.rd ld/testsuite/ld-x86-64/tlsdesc.dd ld/testsuite/ld-x86-64/tlsdesc.pd ld/testsuite/ld-x86-64/tlsdesc.rd ld/testsuite/ld-x86-64/tlsdesc.s ld/testsuite/ld-x86-64/tlsdesc.sd ld/testsuite/ld-x86-64/tlsdesc.td ld/testsuite/ld-x86-64/tlsg.s ld/testsuite/ld-x86-64/tlsg.sd ld/testsuite/ld-x86-64/tlsgd1.dd ld/testsuite/ld-x86-64/tlsgd1.s ld/testsuite/ld-x86-64/tlsgd2.d ld/testsuite/ld-x86-64/tlsgd2.s ld/testsuite/ld-x86-64/tlsgd3.d ld/testsuite/ld-x86-64/tlsgd3.s ld/testsuite/ld-x86-64/tlsgd4.dd ld/testsuite/ld-x86-64/tlsgd4.s ld/testsuite/ld-x86-64/tlsgd5.dd ld/testsuite/ld-x86-64/tlsgd5a.s ld/testsuite/ld-x86-64/tlsgd5b.s ld/testsuite/ld-x86-64/tlsgd6.dd ld/testsuite/ld-x86-64/tlsgd6a.s ld/testsuite/ld-x86-64/tlsgd6b.s ld/testsuite/ld-x86-64/tlsgd7.dd ld/testsuite/ld-x86-64/tlsgd7.s ld/testsuite/ld-x86-64/tlsgd8.dd ld/testsuite/ld-x86-64/tlsgd8.s ld/testsuite/ld-x86-64/tlsgdesc-nacl.rd ld/testsuite/ld-x86-64/tlsgdesc.dd ld/testsuite/ld-x86-64/tlsgdesc.rd ld/testsuite/ld-x86-64/tlsgdesc.s ld/testsuite/ld-x86-64/tlsie1.dd ld/testsuite/ld-x86-64/tlsie1.s ld/testsuite/ld-x86-64/tlsie2.d ld/testsuite/ld-x86-64/tlsie2.s ld/testsuite/ld-x86-64/tlsie3.d ld/testsuite/ld-x86-64/tlsie3.s ld/testsuite/ld-x86-64/tlsie4.dd ld/testsuite/ld-x86-64/tlsie4.s ld/testsuite/ld-x86-64/tlsld1.dd ld/testsuite/ld-x86-64/tlsld1.s ld/testsuite/ld-x86-64/tlsld2.dd ld/testsuite/ld-x86-64/tlsld2.s ld/testsuite/ld-x86-64/tlsld3.dd ld/testsuite/ld-x86-64/tlsld3.s ld/testsuite/ld-x86-64/tlsle1.d ld/testsuite/ld-x86-64/tlsle1.s ld/testsuite/ld-x86-64/tlslib.s ld/testsuite/ld-x86-64/tlspic-nacl.rd ld/testsuite/ld-x86-64/tlspic.dd ld/testsuite/ld-x86-64/tlspic.rd ld/testsuite/ld-x86-64/tlspic.sd ld/testsuite/ld-x86-64/tlspic.td ld/testsuite/ld-x86-64/tlspic1.s ld/testsuite/ld-x86-64/tlspic2.s ld/testsuite/ld-x86-64/tlspie1.d ld/testsuite/ld-x86-64/tlspie1.s ld/testsuite/ld-x86-64/undefined.s ld/testsuite/ld-x86-64/unique1.d ld/testsuite/ld-x86-64/unique1.s ld/testsuite/ld-x86-64/x86-64-64-export-class.rd ld/testsuite/ld-x86-64/x86-64-x32-export-class.rd ld/testsuite/ld-x86-64/x86-64-x32.rd ld/testsuite/ld-x86-64/x86-64.exp ld/testsuite/ld-xc16x/absrel.d ld/testsuite/ld-xc16x/absrel.s ld/testsuite/ld-xc16x/offset.d ld/testsuite/ld-xc16x/offset.s ld/testsuite/ld-xc16x/pcreloc.d ld/testsuite/ld-xc16x/pcreloc.s ld/testsuite/ld-xc16x/pcrelocl.d ld/testsuite/ld-xc16x/xc16x.exp ld/testsuite/ld-xstormy16/external.s ld/testsuite/ld-xstormy16/pcrel.d ld/testsuite/ld-xstormy16/pcrel.s ld/testsuite/ld-xstormy16/xstormy16.exp ld/testsuite/ld-xtensa/coalesce.exp ld/testsuite/ld-xtensa/coalesce.t ld/testsuite/ld-xtensa/coalesce1.s ld/testsuite/ld-xtensa/coalesce2.s ld/testsuite/ld-xtensa/lcall.exp ld/testsuite/ld-xtensa/lcall.t ld/testsuite/ld-xtensa/lcall1.s ld/testsuite/ld-xtensa/lcall2.s ld/testsuite/ld-xtensa/tlsbin.dd ld/testsuite/ld-xtensa/tlsbin.rd ld/testsuite/ld-xtensa/tlsbin.s ld/testsuite/ld-xtensa/tlsbin.sd ld/testsuite/ld-xtensa/tlsbin.td ld/testsuite/ld-xtensa/tlslib.s ld/testsuite/ld-xtensa/tlspic.dd ld/testsuite/ld-xtensa/tlspic.rd ld/testsuite/ld-xtensa/tlspic.sd ld/testsuite/ld-xtensa/tlspic.td ld/testsuite/ld-xtensa/tlspic1.s ld/testsuite/ld-xtensa/tlspic2.s ld/testsuite/ld-xtensa/xtensa.exp ld/testsuite/lib/ld-lib.exp libiberty/.gitignore libiberty/COPYING.LIB libiberty/ChangeLog libiberty/Makefile.in libiberty/README libiberty/_doprnt.c libiberty/aclocal.m4 libiberty/alloca.c libiberty/argv.c libiberty/asprintf.c libiberty/at-file.texi libiberty/atexit.c libiberty/basename.c libiberty/bcmp.c libiberty/bcopy.c libiberty/bsearch.c libiberty/bzero.c libiberty/calloc.c libiberty/choose-temp.c libiberty/clock.c libiberty/concat.c libiberty/config.h-vms libiberty/config.in libiberty/config/mh-aix libiberty/config/mh-cxux7 libiberty/config/mh-fbsd21 libiberty/config/mh-openedition libiberty/config/mh-windows libiberty/configure libiberty/configure.ac libiberty/configure.com libiberty/copying-lib.texi libiberty/copysign.c libiberty/cp-demangle.c libiberty/cp-demangle.h libiberty/cp-demint.c libiberty/cplus-dem.c libiberty/crc32.c libiberty/dwarfnames.c libiberty/dyn-string.c libiberty/fdmatch.c libiberty/ffs.c libiberty/fibheap.c libiberty/filename_cmp.c libiberty/floatformat.c libiberty/fnmatch.c libiberty/fnmatch.txh libiberty/fopen_unlocked.c libiberty/functions.texi libiberty/gather-docs libiberty/getcwd.c libiberty/getopt.c libiberty/getopt1.c libiberty/getpagesize.c libiberty/getpwd.c libiberty/getruntime.c libiberty/gettimeofday.c libiberty/hashtab.c libiberty/hex.c libiberty/index.c libiberty/insque.c libiberty/lbasename.c libiberty/libiberty.texi libiberty/lrealpath.c libiberty/maint-tool libiberty/make-relative-prefix.c libiberty/make-temp-file.c libiberty/makefile.vms libiberty/md5.c libiberty/memchr.c libiberty/memcmp.c libiberty/memcpy.c libiberty/memmem.c libiberty/memmove.c libiberty/mempcpy.c libiberty/memset.c libiberty/mkstemps.c libiberty/msdos.c libiberty/objalloc.c libiberty/obstack.c libiberty/obstacks.texi libiberty/partition.c libiberty/pex-common.c libiberty/pex-common.h libiberty/pex-djgpp.c libiberty/pex-msdos.c libiberty/pex-one.c libiberty/pex-unix.c libiberty/pex-win32.c libiberty/pexecute.c libiberty/pexecute.txh libiberty/physmem.c libiberty/putenv.c libiberty/random.c libiberty/regex.c libiberty/rename.c libiberty/rindex.c libiberty/safe-ctype.c libiberty/setenv.c libiberty/setproctitle.c libiberty/sha1.c libiberty/sigsetmask.c libiberty/simple-object-coff.c libiberty/simple-object-common.h libiberty/simple-object-elf.c libiberty/simple-object-mach-o.c libiberty/simple-object-xcoff.c libiberty/simple-object.c libiberty/simple-object.txh libiberty/snprintf.c libiberty/sort.c libiberty/spaces.c libiberty/splay-tree.c libiberty/stack-limit.c libiberty/stpcpy.c libiberty/stpncpy.c libiberty/strcasecmp.c libiberty/strchr.c libiberty/strdup.c libiberty/strerror.c libiberty/strncasecmp.c libiberty/strncmp.c libiberty/strndup.c libiberty/strnlen.c libiberty/strrchr.c libiberty/strsignal.c libiberty/strstr.c libiberty/strtod.c libiberty/strtol.c libiberty/strtoul.c libiberty/strverscmp.c libiberty/testsuite/Makefile.in libiberty/testsuite/demangle-expected libiberty/testsuite/test-demangle.c libiberty/testsuite/test-expandargv.c libiberty/testsuite/test-pexecute.c libiberty/timeval-utils.c libiberty/tmpnam.c libiberty/unlink-if-ordinary.c libiberty/vasprintf.c libiberty/vfork.c libiberty/vfprintf.c libiberty/vprintf.c libiberty/vsnprintf.c libiberty/vsprintf.c libiberty/waitpid.c libiberty/xatexit.c libiberty/xexit.c libiberty/xmalloc.c libiberty/xmemdup.c libiberty/xstrdup.c libiberty/xstrerror.c libiberty/xstrndup.c ltgcc.m4 opcodes/.gitignore opcodes/ChangeLog opcodes/ChangeLog-0001 opcodes/ChangeLog-0203 opcodes/ChangeLog-2004 opcodes/ChangeLog-2005 opcodes/ChangeLog-2006 opcodes/ChangeLog-2007 opcodes/ChangeLog-2008 opcodes/ChangeLog-2009 opcodes/ChangeLog-2010 opcodes/ChangeLog-2011 opcodes/ChangeLog-2012 opcodes/ChangeLog-9297 opcodes/ChangeLog-9899 opcodes/MAINTAINERS opcodes/Makefile.am opcodes/Makefile.in opcodes/aarch64-asm-2.c opcodes/aarch64-asm.c opcodes/aarch64-asm.h opcodes/aarch64-dis-2.c opcodes/aarch64-dis.c opcodes/aarch64-dis.h opcodes/aarch64-gen.c opcodes/aarch64-opc-2.c opcodes/aarch64-opc.c opcodes/aarch64-opc.h opcodes/aarch64-tbl.h opcodes/aclocal.m4 opcodes/alpha-dis.c opcodes/alpha-opc.c opcodes/arc-dis.c opcodes/arc-dis.h opcodes/arc-ext.c opcodes/arc-ext.h opcodes/arc-opc.c opcodes/arm-dis.c opcodes/avr-dis.c opcodes/bfin-dis.c opcodes/cgen-asm.c opcodes/cgen-asm.in opcodes/cgen-bitset.c opcodes/cgen-dis.c opcodes/cgen-dis.in opcodes/cgen-ibld.in opcodes/cgen-opc.c opcodes/cgen.sh opcodes/config.in opcodes/configure opcodes/configure.com opcodes/configure.in opcodes/cr16-dis.c opcodes/cr16-opc.c opcodes/cris-dis.c opcodes/cris-opc.c opcodes/crx-dis.c opcodes/crx-opc.c opcodes/d10v-dis.c opcodes/d10v-opc.c opcodes/d30v-dis.c opcodes/d30v-opc.c opcodes/dep-in.sed opcodes/dis-buf.c opcodes/dis-init.c opcodes/disassemble.c opcodes/dlx-dis.c opcodes/epiphany-asm.c opcodes/epiphany-desc.c opcodes/epiphany-desc.h opcodes/epiphany-dis.c opcodes/epiphany-ibld.c opcodes/epiphany-opc.c opcodes/epiphany-opc.h opcodes/fr30-asm.c opcodes/fr30-desc.c opcodes/fr30-desc.h opcodes/fr30-dis.c opcodes/fr30-ibld.c opcodes/fr30-opc.c opcodes/fr30-opc.h opcodes/frv-asm.c opcodes/frv-desc.c opcodes/frv-desc.h opcodes/frv-dis.c opcodes/frv-ibld.c opcodes/frv-opc.c opcodes/frv-opc.h opcodes/h8300-dis.c opcodes/h8500-dis.c opcodes/h8500-opc.h opcodes/hppa-dis.c opcodes/i370-dis.c opcodes/i370-opc.c opcodes/i386-dis-evex.h opcodes/i386-dis.c opcodes/i386-gen.c opcodes/i386-init.h opcodes/i386-opc.c opcodes/i386-opc.h opcodes/i386-opc.tbl opcodes/i386-reg.tbl opcodes/i386-tbl.h opcodes/i860-dis.c opcodes/i960-dis.c opcodes/ia64-asmtab.c opcodes/ia64-asmtab.h opcodes/ia64-dis.c opcodes/ia64-gen.c opcodes/ia64-ic.tbl opcodes/ia64-opc-a.c opcodes/ia64-opc-b.c opcodes/ia64-opc-d.c opcodes/ia64-opc-f.c opcodes/ia64-opc-i.c opcodes/ia64-opc-m.c opcodes/ia64-opc-x.c opcodes/ia64-opc.c opcodes/ia64-opc.h opcodes/ia64-raw.tbl opcodes/ia64-war.tbl opcodes/ia64-waw.tbl opcodes/ip2k-asm.c opcodes/ip2k-desc.c opcodes/ip2k-desc.h opcodes/ip2k-dis.c opcodes/ip2k-ibld.c opcodes/ip2k-opc.c opcodes/ip2k-opc.h opcodes/iq2000-asm.c opcodes/iq2000-desc.c opcodes/iq2000-desc.h opcodes/iq2000-dis.c opcodes/iq2000-ibld.c opcodes/iq2000-opc.c opcodes/iq2000-opc.h opcodes/lm32-asm.c opcodes/lm32-desc.c opcodes/lm32-desc.h opcodes/lm32-dis.c opcodes/lm32-ibld.c opcodes/lm32-opc.c opcodes/lm32-opc.h opcodes/lm32-opinst.c opcodes/m10200-dis.c opcodes/m10200-opc.c opcodes/m10300-dis.c opcodes/m10300-opc.c opcodes/m32c-asm.c opcodes/m32c-desc.c opcodes/m32c-desc.h opcodes/m32c-dis.c opcodes/m32c-ibld.c opcodes/m32c-opc.c opcodes/m32c-opc.h opcodes/m32r-asm.c opcodes/m32r-desc.c opcodes/m32r-desc.h opcodes/m32r-dis.c opcodes/m32r-ibld.c opcodes/m32r-opc.c opcodes/m32r-opc.h opcodes/m32r-opinst.c opcodes/m68hc11-dis.c opcodes/m68hc11-opc.c opcodes/m68k-dis.c opcodes/m68k-opc.c opcodes/m88k-dis.c opcodes/makefile.vms opcodes/mcore-dis.c opcodes/mcore-opc.h opcodes/mep-asm.c opcodes/mep-desc.c opcodes/mep-desc.h opcodes/mep-dis.c opcodes/mep-ibld.c opcodes/mep-opc.c opcodes/mep-opc.h opcodes/metag-dis.c opcodes/microblaze-dis.c opcodes/microblaze-dis.h opcodes/microblaze-opc.h opcodes/microblaze-opcm.h opcodes/micromips-opc.c opcodes/mips-dis.c opcodes/mips-formats.h opcodes/mips-opc.c opcodes/mips16-opc.c opcodes/mmix-dis.c opcodes/mmix-opc.c opcodes/moxie-dis.c opcodes/moxie-opc.c opcodes/msp430-decode.c opcodes/msp430-decode.opc opcodes/msp430-dis.c opcodes/mt-asm.c opcodes/mt-desc.c opcodes/mt-desc.h opcodes/mt-dis.c opcodes/mt-ibld.c opcodes/mt-opc.c opcodes/mt-opc.h opcodes/nios2-dis.c opcodes/nios2-opc.c opcodes/ns32k-dis.c opcodes/opc2c.c opcodes/openrisc-asm.c opcodes/openrisc-desc.c opcodes/openrisc-desc.h opcodes/openrisc-dis.c opcodes/openrisc-ibld.c opcodes/openrisc-opc.c opcodes/openrisc-opc.h opcodes/opintl.h opcodes/or32-dis.c opcodes/or32-opc.c opcodes/pdp11-dis.c opcodes/pdp11-opc.c opcodes/pj-dis.c opcodes/pj-opc.c opcodes/po/.cvsignore opcodes/po/Make-in opcodes/po/POTFILES.in opcodes/po/da.po opcodes/po/de.po opcodes/po/es.po opcodes/po/fi.po opcodes/po/fr.po opcodes/po/ga.po opcodes/po/id.po opcodes/po/it.po opcodes/po/nl.po opcodes/po/opcodes.pot opcodes/po/pt_BR.po opcodes/po/ro.po opcodes/po/sv.po opcodes/po/tr.po opcodes/po/uk.po opcodes/po/vi.po opcodes/po/zh_CN.po opcodes/ppc-dis.c opcodes/ppc-opc.c opcodes/rl78-decode.c opcodes/rl78-decode.opc opcodes/rl78-dis.c opcodes/rx-decode.c opcodes/rx-decode.opc opcodes/rx-dis.c opcodes/s390-dis.c opcodes/s390-mkopc.c opcodes/s390-opc.c opcodes/s390-opc.txt opcodes/score-dis.c opcodes/score-opc.h opcodes/score7-dis.c opcodes/sh-dis.c opcodes/sh-opc.h opcodes/sh64-dis.c opcodes/sh64-opc.c opcodes/sh64-opc.h opcodes/sparc-dis.c opcodes/sparc-opc.c opcodes/spu-dis.c opcodes/spu-opc.c opcodes/stamp-h.in opcodes/sysdep.h opcodes/tic30-dis.c opcodes/tic4x-dis.c opcodes/tic54x-dis.c opcodes/tic54x-opc.c opcodes/tic6x-dis.c opcodes/tic80-dis.c opcodes/tic80-opc.c opcodes/tilegx-dis.c opcodes/tilegx-opc.c opcodes/tilepro-dis.c opcodes/tilepro-opc.c opcodes/v850-dis.c opcodes/v850-opc.c opcodes/vax-dis.c opcodes/w65-dis.c opcodes/w65-opc.h opcodes/xc16x-asm.c opcodes/xc16x-desc.c opcodes/xc16x-desc.h opcodes/xc16x-dis.c opcodes/xc16x-ibld.c opcodes/xc16x-opc.c opcodes/xc16x-opc.h opcodes/xgate-dis.c opcodes/xgate-opc.c opcodes/xstormy16-asm.c opcodes/xstormy16-desc.c opcodes/xstormy16-desc.h opcodes/xstormy16-dis.c opcodes/xstormy16-ibld.c opcodes/xstormy16-opc.c opcodes/xstormy16-opc.h opcodes/xtensa-dis.c opcodes/z80-dis.c opcodes/z8k-dis.c opcodes/z8k-opc.h opcodes/z8kgen.c texinfo/texinfo.tex
Diffstat (limited to 'ld/emultempl')
-rw-r--r--ld/emultempl/README9
-rw-r--r--ld/emultempl/aarch64elf.em416
-rw-r--r--ld/emultempl/aix.em1551
-rw-r--r--ld/emultempl/alphaelf.em148
-rw-r--r--ld/emultempl/armcoff.em285
-rw-r--r--ld/emultempl/armelf.em692
-rw-r--r--ld/emultempl/astring.sed13
-rw-r--r--ld/emultempl/avrelf.em277
-rw-r--r--ld/emultempl/beos.em783
-rw-r--r--ld/emultempl/bfin.em65
-rw-r--r--ld/emultempl/cr16elf.em183
-rw-r--r--ld/emultempl/crxelf.em71
-rw-r--r--ld/emultempl/elf-generic.em71
-rw-r--r--ld/emultempl/elf32.em2531
-rw-r--r--ld/emultempl/epiphanyelf_4x4.em32
-rw-r--r--ld/emultempl/genelf.em71
-rw-r--r--ld/emultempl/generic.em161
-rw-r--r--ld/emultempl/gld960.em154
-rw-r--r--ld/emultempl/gld960c.em167
-rw-r--r--ld/emultempl/hppaelf.em380
-rw-r--r--ld/emultempl/ia64elf.em65
-rw-r--r--ld/emultempl/irix.em44
-rw-r--r--ld/emultempl/linux.em211
-rw-r--r--ld/emultempl/lnk960.em348
-rw-r--r--ld/emultempl/m68hc1xelf.em373
-rw-r--r--ld/emultempl/m68kcoff.em245
-rw-r--r--ld/emultempl/m68kelf.em250
-rw-r--r--ld/emultempl/metagelf.em337
-rw-r--r--ld/emultempl/mipself.em286
-rw-r--r--ld/emultempl/mmix-elfnmmo.em116
-rw-r--r--ld/emultempl/mmixelf.em46
-rw-r--r--ld/emultempl/mmo.em221
-rw-r--r--ld/emultempl/needrelax.em39
-rw-r--r--ld/emultempl/netbsd.em34
-rw-r--r--ld/emultempl/ostring.sed4
-rw-r--r--ld/emultempl/pe.em2232
-rw-r--r--ld/emultempl/pep.em2002
-rw-r--r--ld/emultempl/ppc32elf.em251
-rw-r--r--ld/emultempl/ppc64elf.em871
-rw-r--r--ld/emultempl/rxelf.em88
-rw-r--r--ld/emultempl/scoreelf.em77
-rw-r--r--ld/emultempl/sh64elf.em561
-rw-r--r--ld/emultempl/solaris2.em155
-rw-r--r--ld/emultempl/spu_icache.S7
-rw-r--r--ld/emultempl/spu_icache.o_c33
-rw-r--r--ld/emultempl/spu_ovl.S471
-rw-r--r--ld/emultempl/spu_ovl.o_c101
-rw-r--r--ld/emultempl/spuelf.em836
-rw-r--r--ld/emultempl/sunos.em1040
-rw-r--r--ld/emultempl/tic6xdsbt.em207
-rw-r--r--ld/emultempl/ticoff.em186
-rw-r--r--ld/emultempl/vanilla.em87
-rw-r--r--ld/emultempl/vms.em238
-rw-r--r--ld/emultempl/vxworks.em102
-rw-r--r--ld/emultempl/xtensaelf.em1962
-rw-r--r--ld/emultempl/z80.em104
56 files changed, 0 insertions, 22290 deletions
diff --git a/ld/emultempl/README b/ld/emultempl/README
deleted file mode 100644
index c3c7472..0000000
--- a/ld/emultempl/README
+++ /dev/null
@@ -1,9 +0,0 @@
-The files in this directory are sourced by genscripts.sh, after
-setting some variables to substitute in, to produce
-C source files that contain jump tables for each emulation.
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-
-Copying and distribution of this file, with or without modification,
-are permitted in any medium without royalty provided the copyright
-notice and this notice are preserved.
diff --git a/ld/emultempl/aarch64elf.em b/ld/emultempl/aarch64elf.em
deleted file mode 100644
index b3279bf..0000000
--- a/ld/emultempl/aarch64elf.em
+++ /dev/null
@@ -1,416 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2009-2012 Free Software Foundation, Inc.
-# Contributed by ARM Ltd.
-#
-# 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; see the file COPYING3. If not,
-# see <http://www.gnu.org/licenses/>.
-#
-
-# This file is sourced from elf32.em, and defines extra aarch64-elf
-# specific routines.
-#
-fragment <<EOF
-
-#include "ldctor.h"
-#include "elf/aarch64.h"
-
-static int no_enum_size_warning = 0;
-static int no_wchar_size_warning = 0;
-static int pic_veneer = 0;
-
-static void
-gld${EMULATION_NAME}_before_parse (void)
-{
-#ifndef TARGET_ /* I.e., if not generic. */
- ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown);
-#endif /* not TARGET_ */
- input_flags.dynamic = ${DYNAMIC_LINK-TRUE};
- config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
- config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
-}
-
-static void
-aarch64_elf_before_allocation (void)
-{
- /* We should be able to set the size of the interworking stub section. We
- can't do it until later if we have dynamic sections, though. */
- if (! elf_hash_table (&link_info)->dynamic_sections_created)
- {
- /* Here we rummage through the found bfds to collect information. */
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- /* Initialise mapping tables for code/data. */
- bfd_elf${ELFSIZE}_aarch64_init_maps (is->the_bfd);
- }
- }
-
- /* Call the standard elf routine. */
- gld${EMULATION_NAME}_before_allocation ();
-}
-
-/* Fake input file for stubs. */
-static lang_input_statement_type *stub_file;
-
-/* Whether we need to call gldarm_layout_sections_again. */
-static int need_laying_out = 0;
-
-/* Maximum size of a group of input sections that can be handled by
- one stub section. A value of +/-1 indicates the bfd back-end
- should use a suitable default size. */
-static bfd_signed_vma group_size = 1;
-
-struct hook_stub_info
-{
- lang_statement_list_type add;
- asection *input_section;
-};
-
-/* Traverse the linker tree to find the spot where the stub goes. */
-
-static bfd_boolean
-hook_in_stub (struct hook_stub_info *info, lang_statement_union_type **lp)
-{
- lang_statement_union_type *l;
- bfd_boolean ret;
-
- for (; (l = *lp) != NULL; lp = &l->header.next)
- {
- switch (l->header.type)
- {
- case lang_constructors_statement_enum:
- ret = hook_in_stub (info, &constructor_list.head);
- if (ret)
- return ret;
- break;
-
- case lang_output_section_statement_enum:
- ret = hook_in_stub (info,
- &l->output_section_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_wild_statement_enum:
- ret = hook_in_stub (info, &l->wild_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_group_statement_enum:
- ret = hook_in_stub (info, &l->group_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_input_section_enum:
- if (l->input_section.section == info->input_section)
- {
- /* We've found our section. Insert the stub immediately
- after its associated input section. */
- *(info->add.tail) = l->header.next;
- l->header.next = info->add.head;
- return TRUE;
- }
- break;
-
- case lang_data_statement_enum:
- case lang_reloc_statement_enum:
- case lang_object_symbols_statement_enum:
- case lang_output_statement_enum:
- case lang_target_statement_enum:
- case lang_input_statement_enum:
- case lang_assignment_statement_enum:
- case lang_padding_statement_enum:
- case lang_address_statement_enum:
- case lang_fill_statement_enum:
- break;
-
- default:
- FAIL ();
- break;
- }
- }
- return FALSE;
-}
-
-
-/* Call-back for elf${ELFSIZE}_aarch64_size_stubs. */
-
-/* Create a new stub section, and arrange for it to be linked
- immediately after INPUT_SECTION. */
-
-static asection *
-elf${ELFSIZE}_aarch64_add_stub_section (const char *stub_sec_name,
- asection *input_section)
-{
- asection *stub_sec;
- flagword flags;
- asection *output_section;
- const char *secname;
- lang_output_section_statement_type *os;
- struct hook_stub_info info;
-
- flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE
- | SEC_HAS_CONTENTS | SEC_RELOC | SEC_IN_MEMORY | SEC_KEEP);
- stub_sec = bfd_make_section_anyway_with_flags (stub_file->the_bfd,
- stub_sec_name, flags);
- if (stub_sec == NULL)
- goto err_ret;
-
- bfd_set_section_alignment (stub_file->the_bfd, stub_sec, 3);
-
- output_section = input_section->output_section;
- secname = bfd_get_section_name (output_section->owner, output_section);
- os = lang_output_section_find (secname);
-
- info.input_section = input_section;
- lang_list_init (&info.add);
- lang_add_section (&info.add, stub_sec, NULL, os);
-
- if (info.add.head == NULL)
- goto err_ret;
-
- if (hook_in_stub (&info, &os->children.head))
- return stub_sec;
-
- err_ret:
- einfo ("%X%P: can not make stub section: %E\n");
- return NULL;
-}
-
-/* Another call-back for elf${ELFSIZE}_aarch64_size_stubs. */
-
-static void
-gldaarch64_layout_sections_again (void)
-{
- /* If we have changed sizes of the stub sections, then we need
- to recalculate all the section offsets. This may mean we need to
- add even more stubs. */
- gld${EMULATION_NAME}_map_segments (TRUE);
- need_laying_out = -1;
-}
-
-static void
-build_section_lists (lang_statement_union_type *statement)
-{
- if (statement->header.type == lang_input_section_enum)
- {
- asection *i = statement->input_section.section;
-
- if (!((lang_input_statement_type *) i->owner->usrdata)->flags.just_syms
- && (i->flags & SEC_EXCLUDE) == 0
- && i->output_section != NULL
- && i->output_section->owner == link_info.output_bfd)
- elf${ELFSIZE}_aarch64_next_input_section (& link_info, i);
- }
-}
-
-static void
-gld${EMULATION_NAME}_after_allocation (void)
-{
- /* bfd_elf32_discard_info just plays with debugging sections,
- ie. doesn't affect any code, so we can delay resizing the
- sections. It's likely we'll resize everything in the process of
- adding stubs. */
- if (bfd_elf_discard_info (link_info.output_bfd, & link_info))
- need_laying_out = 1;
-
- /* If generating a relocatable output file, then we don't
- have to examine the relocs. */
- if (stub_file != NULL && !link_info.relocatable)
- {
- int ret = elf${ELFSIZE}_aarch64_setup_section_lists (link_info.output_bfd,
- & link_info);
-
- if (ret != 0)
- {
- if (ret < 0)
- {
- einfo ("%X%P: could not compute sections lists for stub generation: %E\n");
- return;
- }
-
- lang_for_each_statement (build_section_lists);
-
- /* Call into the BFD backend to do the real work. */
- if (! elf${ELFSIZE}_aarch64_size_stubs (link_info.output_bfd,
- stub_file->the_bfd,
- & link_info,
- group_size,
- & elf${ELFSIZE}_aarch64_add_stub_section,
- & gldaarch64_layout_sections_again))
- {
- einfo ("%X%P: cannot size stub section: %E\n");
- return;
- }
- }
- }
-
- if (need_laying_out != -1)
- gld${EMULATION_NAME}_map_segments (need_laying_out);
-}
-
-static void
-gld${EMULATION_NAME}_finish (void)
-{
- if (! link_info.relocatable)
- {
- /* Now build the linker stubs. */
- if (stub_file->the_bfd->sections != NULL)
- {
- if (! elf${ELFSIZE}_aarch64_build_stubs (& link_info))
- einfo ("%X%P: can not build stubs: %E\n");
- }
- }
-
- finish_default ();
-}
-
-/* This is a convenient point to tell BFD about target specific flags.
- After the output has been created, but before inputs are read. */
-static void
-aarch64_elf_create_output_section_statements (void)
-{
- if (strstr (bfd_get_target (link_info.output_bfd), "aarch64") == NULL)
- {
- /* The arm backend needs special fields in the output hash structure.
- These will only be created if the output format is an arm format,
- hence we do not support linking and changing output formats at the
- same time. Use a link followed by objcopy to change output formats. */
- einfo ("%F%X%P: error: Cannot change output format whilst linking AArch64 binaries.\n");
- return;
- }
-
- bfd_elf${ELFSIZE}_aarch64_set_options (link_info.output_bfd, &link_info,
- no_enum_size_warning,
- no_wchar_size_warning,
- pic_veneer);
-
- stub_file = lang_add_input_file ("linker stubs",
- lang_input_file_is_fake_enum,
- NULL);
- stub_file->the_bfd = bfd_create ("linker stubs", link_info.output_bfd);
- if (stub_file->the_bfd == NULL
- || ! bfd_set_arch_mach (stub_file->the_bfd,
- bfd_get_arch (link_info.output_bfd),
- bfd_get_mach (link_info.output_bfd)))
- {
- einfo ("%X%P: can not create BFD %E\n");
- return;
- }
-
- stub_file->the_bfd->flags |= BFD_LINKER_CREATED;
- ldlang_add_file (stub_file);
-}
-
-/* Avoid processing the fake stub_file in vercheck, stat_needed and
- check_needed routines. */
-
-static void (*real_func) (lang_input_statement_type *);
-
-static void aarch64_for_each_input_file_wrapper (lang_input_statement_type *l)
-{
- if (l != stub_file)
- (*real_func) (l);
-}
-
-static void
-aarch64_lang_for_each_input_file (void (*func) (lang_input_statement_type *))
-{
- real_func = func;
- lang_for_each_input_file (&aarch64_for_each_input_file_wrapper);
-}
-
-#define lang_for_each_input_file aarch64_lang_for_each_input_file
-
-EOF
-
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE='
-#define OPTION_NO_ENUM_SIZE_WARNING 309
-#define OPTION_PIC_VENEER 310
-#define OPTION_STUBGROUP_SIZE 311
-#define OPTION_NO_WCHAR_SIZE_WARNING 312
-'
-
-PARSE_AND_LIST_SHORTOPTS=p
-
-PARSE_AND_LIST_LONGOPTS='
- { "no-pipeline-knowledge", no_argument, NULL, '\'p\''},
- { "no-enum-size-warning", no_argument, NULL, OPTION_NO_ENUM_SIZE_WARNING},
- { "pic-veneer", no_argument, NULL, OPTION_PIC_VENEER},
- { "stub-group-size", required_argument, NULL, OPTION_STUBGROUP_SIZE },
- { "no-wchar-size-warning", no_argument, NULL, OPTION_NO_WCHAR_SIZE_WARNING},
-'
-
-PARSE_AND_LIST_OPTIONS='
- fprintf (file, _(" --no-enum-size-warning Don'\''t warn about objects with incompatible\n"
- " enum sizes\n"));
- fprintf (file, _(" --no-wchar-size-warning Don'\''t warn about objects with incompatible"
- " wchar_t sizes\n"));
- fprintf (file, _(" --pic-veneer Always generate PIC interworking veneers\n"));
- fprintf (file, _("\
- --stub-group-size=N Maximum size of a group of input sections that can be\n\
- handled by one stub section. A negative value\n\
- locates all stubs after their branches (with a\n\
- group size of -N), while a positive value allows\n\
- two groups of input sections, one before, and one\n\
- after each stub section. Values of +/-1 indicate\n\
- the linker should choose suitable defaults.\n"
- ));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
- case '\'p\'':
- /* Only here for backwards compatibility. */
- break;
-
- case OPTION_NO_ENUM_SIZE_WARNING:
- no_enum_size_warning = 1;
- break;
-
- case OPTION_NO_WCHAR_SIZE_WARNING:
- no_wchar_size_warning = 1;
- break;
-
- case OPTION_PIC_VENEER:
- pic_veneer = 1;
- break;
-
- case OPTION_STUBGROUP_SIZE:
- {
- const char *end;
-
- group_size = bfd_scan_vma (optarg, &end, 0);
- if (*end)
- einfo (_("%P%F: invalid number `%s'\''\n"), optarg);
- }
- break;
-'
-
-# We have our own before_allocation etc. functions, but they call
-# the standard routines, so give them a different name.
-LDEMUL_BEFORE_ALLOCATION=aarch64_elf_before_allocation
-LDEMUL_AFTER_ALLOCATION=gld${EMULATION_NAME}_after_allocation
-LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=aarch64_elf_create_output_section_statements
-
-# Replace the elf before_parse function with our own.
-LDEMUL_BEFORE_PARSE=gld"${EMULATION_NAME}"_before_parse
-
-# Call the extra arm-elf function
-LDEMUL_FINISH=gld${EMULATION_NAME}_finish
diff --git a/ld/emultempl/aix.em b/ld/emultempl/aix.em
deleted file mode 100644
index b48228a..0000000
--- a/ld/emultempl/aix.em
+++ /dev/null
@@ -1,1551 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-if [ -z "$MACHINE" ]; then
- OUTPUT_ARCH=${ARCH}
-else
- OUTPUT_ARCH=${ARCH}:${MACHINE}
-fi
-fragment <<EOF
-/* This file is is generated by a shell script. DO NOT EDIT! */
-
-/* AIX emulation code for ${EMULATION_NAME}
- Copyright 1991, 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
- 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012
- Free Software Foundation, Inc.
- Written by Steve Chamberlain <sac@cygnus.com>
- AIX support by Ian Lance Taylor <ian@cygnus.com>
- AIX 64 bit support by Tom Rix <trix@redhat.com>
-
- 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. */
-
-#define TARGET_IS_${EMULATION_NAME}
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "libiberty.h"
-#include "safe-ctype.h"
-#include "getopt.h"
-#include "obstack.h"
-#include "bfdlink.h"
-
-#include "ld.h"
-#include "ldmain.h"
-#include "ldmisc.h"
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-#include "ldctor.h"
-#include <ldgram.h>
-
-#include "coff/internal.h"
-#include "coff/xcoff.h"
-#include "libcoff.h"
-#include "libxcoff.h"
-
-static void gld${EMULATION_NAME}_read_file (const char *, bfd_boolean);
-static void gld${EMULATION_NAME}_free (void *);
-static void gld${EMULATION_NAME}_find_relocs (lang_statement_union_type *);
-static void gld${EMULATION_NAME}_find_exp_assignment (etree_type *);
-
-
-/* The file alignment required for each section. */
-static unsigned long file_align;
-
-/* The maximum size the stack is permitted to grow. This is stored in
- the a.out header. */
-static unsigned long maxstack;
-
-/* The maximum data size. This is stored in the a.out header. */
-static unsigned long maxdata;
-
-/* Whether to perform garbage collection. */
-static int gc = 1;
-
-/* The module type to use. */
-static unsigned short modtype = ('1' << 8) | 'L';
-
-/* Whether the .text section must be read-only (i.e., no relocs
- permitted). */
-static int textro;
-
-/* A mask of XCOFF_EXPALL and XCOFF_EXPFULL flags, as set by their
- associated -b and -bno options. */
-static unsigned int auto_export_flags;
-
-/* A mask of auto_export_flags bits that were explicitly set on the
- command line. */
-static unsigned int explicit_auto_export_flags;
-
-/* Whether to implement Unix like linker semantics. */
-static int unix_ld;
-
-/* Structure used to hold import file list. */
-
-struct filelist
-{
- struct filelist *next;
- const char *name;
-};
-
-/* List of import files. */
-static struct filelist *import_files;
-
-/* List of export symbols read from the export files. */
-
-struct export_symbol_list
-{
- struct export_symbol_list *next;
- const char *name;
-};
-
-static struct export_symbol_list *export_symbols;
-
-/* Maintains the 32 or 64 bit mode state of import file */
-static unsigned int symbol_mode = 0x04;
-
-/* Which symbol modes are valid */
-static unsigned int symbol_mode_mask = 0x0d;
-
-/* Whether this is a 64 bit link */
-static int is_64bit = 0;
-
-/* Which syscalls from import file are valid */
-static unsigned int syscall_mask = 0x77;
-
-/* fake file for -binitfini support */
-static lang_input_statement_type *initfini_file;
-
-/* Whether to do run time linking
- -brtl enables, -bnortl and -bnortllib disable. */
-static int rtld;
-
-/* Explicit command line library path, -blibpath */
-static char *command_line_blibpath = NULL;
-
-/* This routine is called before anything else is done. */
-
-static void
-gld${EMULATION_NAME}_before_parse (void)
-{
- ldfile_set_output_arch ("${OUTPUT_ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`);
-
- input_flags.dynamic = TRUE;
- config.has_shared = TRUE;
-
- /* The link_info.[init|fini]_functions are initialized in ld/lexsup.c.
- Override them here so we can use the link_info.init_function as a
- state flag that lets the backend know that -binitfini has been done. */
-
- link_info.init_function = NULL;
- link_info.fini_function = NULL;
-}
-
-/* Handle AIX specific options. */
-
-enum
- {
- OPTION_IGNORE = 300,
- OPTION_AUTOIMP,
- OPTION_ERNOTOK,
- OPTION_EROK,
- OPTION_EXPALL,
- OPTION_EXPFULL,
- OPTION_EXPORT,
- OPTION_IMPORT,
- OPTION_INITFINI,
- OPTION_LOADMAP,
- OPTION_MAXDATA,
- OPTION_MAXSTACK,
- OPTION_MODTYPE,
- OPTION_NOAUTOIMP,
- OPTION_NOEXPALL,
- OPTION_NOEXPFULL,
- OPTION_NOSTRCMPCT,
- OPTION_PD,
- OPTION_PT,
- OPTION_STRCMPCT,
- OPTION_UNIX,
- OPTION_32,
- OPTION_64,
- OPTION_LIBPATH,
- OPTION_NOLIBPATH,
- };
-
-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[] = "D:H:KT:z";
- static const struct option xtra_long[] = {
- /* -binitfini has special handling in the linker backend. The native linker
- uses the arguemnts to generate a table of init and fini functions for
- the executable. The important use for this option is to support aix 4.2+
- c++ constructors and destructors. This is tied into gcc via collect2.c.
-
- The function table is accessed by the runtime linker/loader by checking if
- the first symbol in the loader symbol table is __rtinit. The gnu linker
- generates this symbol and makes it the first loader symbol. */
-
- {"basis", no_argument, NULL, OPTION_IGNORE},
- {"bautoimp", no_argument, NULL, OPTION_AUTOIMP},
- {"bcomprld", no_argument, NULL, OPTION_IGNORE},
- {"bcrld", no_argument, NULL, OPTION_IGNORE},
- {"bcror31", no_argument, NULL, OPTION_IGNORE},
- {"bD", required_argument, NULL, OPTION_MAXDATA},
- {"bE", required_argument, NULL, OPTION_EXPORT},
- {"bernotok", no_argument, NULL, OPTION_ERNOTOK},
- {"berok", no_argument, NULL, OPTION_EROK},
- {"berrmsg", no_argument, NULL, OPTION_IGNORE},
- {"bexpall", no_argument, NULL, OPTION_EXPALL},
- {"bexpfull", no_argument, NULL, OPTION_EXPFULL},
- {"bexport", required_argument, NULL, OPTION_EXPORT},
- {"bbigtoc", no_argument, NULL, OPTION_IGNORE},
- {"bf", no_argument, NULL, OPTION_ERNOTOK},
- {"bgc", no_argument, &gc, 1},
- {"bh", required_argument, NULL, OPTION_IGNORE},
- {"bhalt", required_argument, NULL, OPTION_IGNORE},
- {"bI", required_argument, NULL, OPTION_IMPORT},
- {"bimport", required_argument, NULL, OPTION_IMPORT},
- {"binitfini", required_argument, NULL, OPTION_INITFINI},
- {"bl", required_argument, NULL, OPTION_LOADMAP},
- {"bloadmap", required_argument, NULL, OPTION_LOADMAP},
- {"bmaxdata", required_argument, NULL, OPTION_MAXDATA},
- {"bmaxstack", required_argument, NULL, OPTION_MAXSTACK},
- {"bM", required_argument, NULL, OPTION_MODTYPE},
- {"bmodtype", required_argument, NULL, OPTION_MODTYPE},
- {"bnoautoimp", no_argument, NULL, OPTION_NOAUTOIMP},
- {"bnoexpall", no_argument, NULL, OPTION_NOEXPALL},
- {"bnoexpfull", no_argument, NULL, OPTION_NOEXPFULL},
- {"bnodelcsect", no_argument, NULL, OPTION_IGNORE},
- {"bnoentry", no_argument, NULL, OPTION_IGNORE},
- {"bnogc", no_argument, &gc, 0},
- {"bnso", no_argument, NULL, OPTION_NOAUTOIMP},
- {"bnostrcmpct", no_argument, NULL, OPTION_NOSTRCMPCT},
- {"bnotextro", no_argument, &textro, 0},
- {"bnro", no_argument, &textro, 0},
- {"bpD", required_argument, NULL, OPTION_PD},
- {"bpT", required_argument, NULL, OPTION_PT},
- {"bro", no_argument, &textro, 1},
- {"brtl", no_argument, &rtld, 1},
- {"bnortl", no_argument, &rtld, 0},
- {"bnortllib", no_argument, &rtld, 0},
- {"bS", required_argument, NULL, OPTION_MAXSTACK},
- {"bso", no_argument, NULL, OPTION_AUTOIMP},
- {"bstrcmpct", no_argument, NULL, OPTION_STRCMPCT},
- {"btextro", no_argument, &textro, 1},
- {"b32", no_argument, NULL, OPTION_32},
- {"b64", no_argument, NULL, OPTION_64},
- {"static", no_argument, NULL, OPTION_NOAUTOIMP},
- {"unix", no_argument, NULL, OPTION_UNIX},
- {"blibpath", required_argument, NULL, OPTION_LIBPATH},
- {"bnolibpath", required_argument, NULL, OPTION_NOLIBPATH},
- {NULL, no_argument, NULL, 0}
- };
-
- /* Options supported by the AIX linker which we do not support:
- -S, -v, -Z, -bbindcmds, -bbinder, -bbindopts, -bcalls, -bcaps,
- -bcror15, -bdebugopt, -bdbg, -bdelcsect, -bex?, -bfilelist, -bfl,
- -bgcbypass, -bglink, -binsert, -bi, -bloadmap, -bl, -bmap, -bnl,
- -bnobind, -bnocomprld, -bnocrld, -bnoerrmsg, -bnoglink,
- -bnoloadmap, -bnl, -bnoobjreorder, -bnoquiet, -bnoreorder,
- -bnotypchk, -bnox, -bquiet, -bR, -brename, -breorder, -btypchk,
- -bx, -bX, -bxref. */
-
- *shortopts = (char *) xrealloc (*shortopts, ns + sizeof (xtra_short));
- memcpy (*shortopts + ns, &xtra_short, sizeof (xtra_short));
- *longopts = xrealloc (*longopts,
- nl * sizeof (struct option) + sizeof (xtra_long));
- memcpy (*longopts + nl, &xtra_long, sizeof (xtra_long));
-}
-
-static bfd_boolean
-gld${EMULATION_NAME}_parse_args (int argc, char **argv)
-{
- int indx;
-
- /* If the current option starts with -b, change the first : to an =.
- The AIX linker uses : to separate the option from the argument;
- changing it to = lets us treat it as a getopt option. */
- indx = optind;
- if (indx == 0)
- indx = 1;
-
- if (indx < argc && CONST_STRNEQ (argv[indx], "-b"))
- {
- char *s;
-
- for (s = argv[indx]; *s != '\0'; s++)
- {
- if (*s == ':')
- {
- *s = '=';
- break;
- }
- }
- }
- return FALSE;
-}
-
-/* Helper for option '-f', which specify a list of input files.
- Contrary to the native linker, we don't support shell patterns
- (simply because glob isn't always available). */
-
-static void
-read_file_list (const char *filename)
-{
- FILE *f;
- /* An upper bound on the number of characters in the file. */
- long pos;
- /* File in memory. */
- char *buffer;
- size_t len;
- char *b;
- char *e;
-
- f = fopen (filename, FOPEN_RT);
- if (f == NULL)
- {
- einfo ("%F%P: cannot open %s\n", filename);
- return;
- }
- if (fseek (f, 0L, SEEK_END) == -1)
- goto error;
- pos = ftell (f);
- if (pos == -1)
- goto error;
- if (fseek (f, 0L, SEEK_SET) == -1)
- goto error;
-
- buffer = (char *) xmalloc (pos + 1);
- len = fread (buffer, sizeof (char), pos, f);
- if (len != (size_t) pos && ferror (f))
- goto error;
- /* Add a NUL terminator. */
- buffer[len] = '\0';
- fclose (f);
-
- /* Parse files. */
- b = buffer;
- while (1)
- {
- /* Skip empty lines. */
- while (*b == '\n' || *b == '\r')
- b++;
-
- /* Stop if end of buffer. */
- if (b == buffer + len)
- break;
-
- /* Eat any byte until end of line. */
- for (e = b; *e != '\0'; e++)
- if (*e == '\n' || *e == '\r')
- break;
-
- /* Replace end of line by nul. */
- if (*e != '\0')
- *e++ = '\0';
-
- if (b != e)
- lang_add_input_file (b, lang_input_file_is_search_file_enum, NULL);
- b = e;
- }
- return;
-
- error:
- einfo ("%F%P: cannot read %s\n", optarg);
- fclose (f);
-}
-
-static bfd_boolean
-gld${EMULATION_NAME}_handle_option (int optc)
-{
- bfd_signed_vma val;
- const char *end;
-
- switch (optc)
- {
- default:
- return FALSE;
-
- case 0:
- /* Long option which just sets a flag. */
- break;
-
- case 'f':
- /* This overrides --auxiliary. This option specifies a file containing
- a list of input files. */
- read_file_list (optarg);
- break;
-
- case 'D':
- val = bfd_scan_vma (optarg, &end, 0);
- if (*end != '\0')
- einfo ("%P: warning: ignoring invalid -D number %s\n", optarg);
- else if (val != -1)
- lang_section_start (".data", exp_intop (val), NULL);
- break;
-
- case 'H':
- val = bfd_scan_vma (optarg, &end, 0);
- if (*end != '\0' || (val & (val - 1)) != 0)
- einfo ("%P: warning: ignoring invalid -H number %s\n", optarg);
- else
- file_align = val;
- break;
-
- case 'K':
- case 'z':
- /* FIXME: This should use the page size for the target system. */
- file_align = 4096;
- break;
-
- case 'T':
- /* On AIX this is the same as GNU ld -Ttext. When we see -T
- number, we assume the AIX option is intended. Otherwise, we
- assume the usual GNU ld -T option is intended. We can't just
- ignore the AIX option, because gcc passes it to the linker. */
- val = bfd_scan_vma (optarg, &end, 0);
- if (*end != '\0')
- return FALSE;
- lang_section_start (".text", exp_intop (val), NULL);
- break;
-
- case OPTION_IGNORE:
- break;
-
- case OPTION_INITFINI:
- {
- /*
- * The aix linker init fini has the format :
- *
- * -binitfini:[ Initial][:Termination][:Priority]
- *
- * it allows the Termination and Priority to be optional.
- *
- * Since we support only one init/fini pair, we ignore the Priority.
- *
- * Define the special symbol __rtinit.
- *
- * strtok does not correctly handle the case of -binitfini::fini: so
- * do it by hand
- */
- char *t, *i, *f;
-
- i = t = optarg;
- while (*t && ':' != *t)
- t++;
- if (*t)
- *t++ = 0;
-
- if (0 != strlen (i))
- link_info.init_function = i;
-
- f = t;
- while (*t && ':' != *t)
- t++;
- *t = 0;
-
- if (0 != strlen (f))
- link_info.fini_function = f;
- }
- break;
-
- case OPTION_AUTOIMP:
- link_info.static_link = FALSE;
- break;
-
- case OPTION_ERNOTOK:
- link_info.unresolved_syms_in_objects = RM_GENERATE_ERROR;
- link_info.unresolved_syms_in_shared_libs = RM_GENERATE_ERROR;
- break;
-
- case OPTION_EROK:
- link_info.unresolved_syms_in_objects = RM_IGNORE;
- link_info.unresolved_syms_in_shared_libs = RM_IGNORE;
- break;
-
- case OPTION_EXPALL:
- auto_export_flags |= XCOFF_EXPALL;
- explicit_auto_export_flags |= XCOFF_EXPALL;
- break;
-
- case OPTION_EXPFULL:
- auto_export_flags |= XCOFF_EXPFULL;
- explicit_auto_export_flags |= XCOFF_EXPFULL;
- break;
-
- case OPTION_EXPORT:
- gld${EMULATION_NAME}_read_file (optarg, FALSE);
- break;
-
- case OPTION_IMPORT:
- {
- struct filelist *n;
- struct filelist **flpp;
-
- n = (struct filelist *) xmalloc (sizeof (struct filelist));
- n->next = NULL;
- n->name = optarg;
- flpp = &import_files;
- while (*flpp != NULL)
- flpp = &(*flpp)->next;
- *flpp = n;
- }
- break;
-
- case OPTION_LOADMAP:
- config.map_filename = optarg;
- break;
-
- case OPTION_MAXDATA:
- val = bfd_scan_vma (optarg, &end, 0);
- if (*end != '\0')
- einfo ("%P: warning: ignoring invalid -bmaxdata number %s\n", optarg);
- else
- maxdata = val;
- break;
-
- case OPTION_MAXSTACK:
- val = bfd_scan_vma (optarg, &end, 0);
- if (*end != '\0')
- einfo ("%P: warning: ignoring invalid -bmaxstack number %s\n",
- optarg);
- else
- maxstack = val;
- break;
-
- case OPTION_MODTYPE:
- if (*optarg == 'S')
- {
- link_info.shared = TRUE;
- ++optarg;
- }
- if (*optarg == '\0' || optarg[1] == '\0')
- einfo ("%P: warning: ignoring invalid module type %s\n", optarg);
- else
- modtype = (*optarg << 8) | optarg[1];
- break;
-
- case OPTION_NOAUTOIMP:
- link_info.static_link = TRUE;
- break;
-
- case OPTION_NOEXPALL:
- auto_export_flags &= ~XCOFF_EXPALL;
- explicit_auto_export_flags |= XCOFF_EXPALL;
- break;
-
- case OPTION_NOEXPFULL:
- auto_export_flags &= ~XCOFF_EXPFULL;
- explicit_auto_export_flags |= XCOFF_EXPFULL;
- break;
-
- case OPTION_NOSTRCMPCT:
- link_info.traditional_format = TRUE;
- break;
-
- case OPTION_PD:
- /* This sets the page that the .data section is supposed to
- start on. The offset within the page should still be the
- offset within the file, so we need to build an appropriate
- expression. */
- val = bfd_scan_vma (optarg, &end, 0);
- if (*end != '\0')
- einfo ("%P: warning: ignoring invalid -pD number %s\n", optarg);
- else
- {
- etree_type *t;
-
- t = exp_binop ('+',
- exp_intop (val),
- exp_binop ('&',
- exp_nameop (NAME, "."),
- exp_intop (0xfff)));
- t = exp_binop ('&',
- exp_binop ('+', t, exp_intop (31)),
- exp_intop (~(bfd_vma) 31));
- lang_section_start (".data", t, NULL);
- }
- break;
-
- case OPTION_PT:
- /* This set the page that the .text section is supposed to start
- on. The offset within the page should still be the offset
- within the file. */
- val = bfd_scan_vma (optarg, &end, 0);
- if (*end != '\0')
- einfo ("%P: warning: ignoring invalid -pT number %s\n", optarg);
- else
- {
- etree_type *t;
-
- t = exp_binop ('+',
- exp_intop (val),
- exp_nameop (SIZEOF_HEADERS, NULL));
- t = exp_binop ('&',
- exp_binop ('+', t, exp_intop (31)),
- exp_intop (~(bfd_vma) 31));
- lang_section_start (".text", t, NULL);
- }
- break;
-
- case OPTION_STRCMPCT:
- link_info.traditional_format = FALSE;
- break;
-
- case OPTION_UNIX:
- unix_ld = TRUE;
- break;
-
- case OPTION_32:
- is_64bit = 0;
- syscall_mask = 0x77;
- symbol_mode_mask = 0x0d;
- break;
-
- case OPTION_64:
- is_64bit = 1;
- syscall_mask = 0xcc;
- symbol_mode_mask = 0x0e;
- break;
-
- case OPTION_LIBPATH:
- command_line_blibpath = optarg;
- break;
-
- case OPTION_NOLIBPATH:
- command_line_blibpath = NULL;
- break;
-
- }
-
- return TRUE;
-}
-
-/* This is called when an input file can not be recognized as a BFD
- object or an archive. If the file starts with #!, we must treat it
- as an import file. This is for AIX compatibility. */
-
-static bfd_boolean
-gld${EMULATION_NAME}_unrecognized_file (lang_input_statement_type *entry)
-{
- FILE *e;
- bfd_boolean ret;
-
- e = fopen (entry->filename, FOPEN_RT);
- if (e == NULL)
- return FALSE;
-
- ret = FALSE;
-
- if (getc (e) == '#' && getc (e) == '!')
- {
- struct filelist *n;
- struct filelist **flpp;
-
- n = (struct filelist *) xmalloc (sizeof (struct filelist));
- n->next = NULL;
- n->name = entry->filename;
- flpp = &import_files;
- while (*flpp != NULL)
- flpp = &(*flpp)->next;
- *flpp = n;
-
- ret = TRUE;
- entry->flags.loaded = TRUE;
- }
-
- fclose (e);
-
- return ret;
-}
-
-/* This is called after the input files have been opened. */
-
-static void
-gld${EMULATION_NAME}_after_open (void)
-{
- bfd_boolean r;
- struct set_info *p;
-
- after_open_default ();
-
- /* Call ldctor_build_sets, after pretending that this is a
- relocatable link. We do this because AIX requires relocation
- entries for all references to symbols, even in a final
- executable. Of course, we only want to do this if we are
- producing an XCOFF output file. */
- r = link_info.relocatable;
- if (strstr (bfd_get_target (link_info.output_bfd), "xcoff") != NULL)
- link_info.relocatable = TRUE;
- ldctor_build_sets ();
- link_info.relocatable = r;
-
- /* For each set, record the size, so that the XCOFF backend can
- output the correct csect length. */
- for (p = sets; p != (struct set_info *) NULL; p = p->next)
- {
- bfd_size_type size;
-
- /* If the symbol is defined, we may have been invoked from
- collect, and the sets may already have been built, so we do
- not do anything. */
- if (p->h->type == bfd_link_hash_defined
- || p->h->type == bfd_link_hash_defweak)
- continue;
-
- if (p->reloc != BFD_RELOC_CTOR)
- {
- /* Handle this if we need to. */
- abort ();
- }
-
- size = (p->count + 2) * 4;
- if (!bfd_xcoff_link_record_set (link_info.output_bfd, &link_info,
- p->h, size))
- einfo ("%F%P: bfd_xcoff_link_record_set failed: %E\n");
- }
-}
-
-/* This is called after the sections have been attached to output
- sections, but before any sizes or addresses have been set. */
-
-static void
-gld${EMULATION_NAME}_before_allocation (void)
-{
- struct filelist *fl;
- struct export_symbol_list *el;
- char *libpath;
- asection *special_sections[XCOFF_NUMBER_OF_SPECIAL_SECTIONS];
- static const char *const must_keep_sections[] = {
- ".text",
- ".data",
- ".bss"
- };
- unsigned int i, flags;
-
- /* Handle the import and export files, if any. */
- for (fl = import_files; fl != NULL; fl = fl->next)
- gld${EMULATION_NAME}_read_file (fl->name, TRUE);
- for (el = export_symbols; el != NULL; el = el->next)
- {
- struct bfd_link_hash_entry *h;
-
- h = bfd_link_hash_lookup (link_info.hash, el->name, FALSE, FALSE, FALSE);
- if (h == NULL)
- einfo ("%P%F: bfd_link_hash_lookup of export symbol failed: %E\n");
- if (!bfd_xcoff_export_symbol (link_info.output_bfd, &link_info, h))
- einfo ("%P%F: bfd_xcoff_export_symbol failed: %E\n");
- }
-
- /* Track down all relocations called for by the linker script (these
- are typically constructor/destructor entries created by
- CONSTRUCTORS) and let the backend know it will need to create
- .loader relocs for them. */
- lang_for_each_statement (gld${EMULATION_NAME}_find_relocs);
-
- /* Precedence of LIBPATH
- -blibpath: native support always first
- -rpath: gnu extension
- -L build from command line -L's */
- if (command_line_blibpath != NULL)
- libpath = command_line_blibpath;
- else if (command_line.rpath != NULL)
- libpath = command_line.rpath;
- else if (search_head == NULL)
- libpath = (char *) "";
- else
- {
- size_t len;
- search_dirs_type *search;
-
- /* PR ld/4023: Strip sysroot prefix from any paths
- being inserted into the output binary's DT_RPATH. */
- if (ld_sysroot != NULL
- && * ld_sysroot != 0)
- {
- const char * name = search_head->name;
- size_t ld_sysroot_len = strlen (ld_sysroot);
-
- if (strncmp (name, ld_sysroot, ld_sysroot_len) == 0)
- name += ld_sysroot_len;
-
- len = strlen (name);
- libpath = xmalloc (len + 1);
- strcpy (libpath, name);
-
- for (search = search_head->next; search != NULL; search = search->next)
- {
- size_t nlen;
-
- name = search->name;
- if (strncmp (name, ld_sysroot, ld_sysroot_len) == 0)
- name += ld_sysroot_len;
-
- nlen = strlen (name);
- libpath = xrealloc (libpath, len + nlen + 2);
- libpath[len] = ':';
- strcpy (libpath + len + 1, name);
- len += nlen + 1;
- }
- }
- else
- {
- len = strlen (search_head->name);
- libpath = xmalloc (len + 1);
- strcpy (libpath, search_head->name);
-
- for (search = search_head->next; search != NULL; search = search->next)
- {
- size_t nlen;
-
- nlen = strlen (search->name);
- libpath = xrealloc (libpath, len + nlen + 2);
- libpath[len] = ':';
- strcpy (libpath + len + 1, search->name);
- len += nlen + 1;
- }
- }
- }
-
- /* Default to -bexpfull for SVR4-like semantics. */
- flags = (unix_ld ? XCOFF_EXPFULL : 0);
- flags &= ~explicit_auto_export_flags;
- flags |= auto_export_flags;
-
- /* Let the XCOFF backend set up the .loader section. */
- if (!bfd_xcoff_size_dynamic_sections
- (link_info.output_bfd, &link_info, libpath, entry_symbol.name, file_align,
- maxstack, maxdata, gc && !unix_ld ? TRUE : FALSE,
- modtype, textro ? TRUE : FALSE, flags, special_sections,
- rtld ? TRUE : FALSE))
- einfo ("%P%F: failed to set dynamic section sizes: %E\n");
-
- /* Look through the special sections, and put them in the right
- place in the link ordering. This is especially magic. */
- for (i = 0; i < XCOFF_NUMBER_OF_SPECIAL_SECTIONS; i++)
- {
- asection *sec;
- lang_output_section_statement_type *os;
- lang_statement_union_type **pls;
- lang_input_section_type *is;
- const char *oname;
- bfd_boolean start;
-
- sec = special_sections[i];
- if (sec == NULL)
- continue;
-
- /* Remove this section from the list of the output section.
- This assumes we know what the script looks like. */
- is = NULL;
- os = lang_output_section_find (sec->output_section->name);
- if (os == NULL)
- einfo ("%P%F: can't find output section %s\n",
- sec->output_section->name);
-
- for (pls = &os->children.head; *pls != NULL; pls = &(*pls)->header.next)
- {
- if ((*pls)->header.type == lang_input_section_enum
- && (*pls)->input_section.section == sec)
- {
- is = (lang_input_section_type *) * pls;
- *pls = (*pls)->header.next;
- break;
- }
-
- if ((*pls)->header.type == lang_wild_statement_enum)
- {
- lang_statement_union_type **pwls;
-
- for (pwls = &(*pls)->wild_statement.children.head;
- *pwls != NULL; pwls = &(*pwls)->header.next)
- {
-
- if ((*pwls)->header.type == lang_input_section_enum
- && (*pwls)->input_section.section == sec)
- {
- is = (lang_input_section_type *) * pwls;
- *pwls = (*pwls)->header.next;
- break;
- }
- }
-
- if (is != NULL)
- break;
- }
- }
-
- if (is == NULL)
- {
- einfo ("%P%F: can't find %s in output section\n",
- bfd_get_section_name (sec->owner, sec));
- }
-
- /* Now figure out where the section should go. */
- switch (i)
- {
-
- default: /* to avoid warnings */
- case XCOFF_SPECIAL_SECTION_TEXT:
- /* _text */
- oname = ".text";
- start = TRUE;
- break;
-
- case XCOFF_SPECIAL_SECTION_ETEXT:
- /* _etext */
- oname = ".text";
- start = FALSE;
- break;
-
- case XCOFF_SPECIAL_SECTION_DATA:
- /* _data */
- oname = ".data";
- start = TRUE;
- break;
-
- case XCOFF_SPECIAL_SECTION_EDATA:
- /* _edata */
- oname = ".data";
- start = FALSE;
- break;
-
- case XCOFF_SPECIAL_SECTION_END:
- case XCOFF_SPECIAL_SECTION_END2:
- /* _end and end */
- oname = ".bss";
- start = FALSE;
- break;
- }
-
- os = lang_output_section_find (oname);
-
- if (start)
- {
- is->header.next = os->children.head;
- os->children.head = (lang_statement_union_type *) is;
- }
- else
- {
- is->header.next = NULL;
- lang_statement_append (&os->children,
- (lang_statement_union_type *) is,
- &is->header.next);
- }
- }
-
- /* Executables and shared objects must always have .text, .data
- and .bss output sections, so that the header can refer to them.
- The kernel refuses to load objects that have missing sections. */
- if (!link_info.relocatable)
- for (i = 0; i < ARRAY_SIZE (must_keep_sections); i++)
- {
- asection *sec;
-
- sec = bfd_get_section_by_name (link_info.output_bfd,
- must_keep_sections[i]);
- if (sec == NULL)
- einfo ("%P: can't find required output section %s\n", must_keep_sections[i]);
- else
- sec->flags |= SEC_KEEP;
- }
-
- before_allocation_default ();
-}
-
-static char *
-gld${EMULATION_NAME}_choose_target (int argc, char **argv)
-{
- int i, j, jmax;
- static char *from_outside;
- static char *from_inside;
- static char *argv_to_target[][2] = {
- {NULL, "${OUTPUT_FORMAT}"},
- {"-b32", "${OUTPUT_FORMAT_32BIT}"},
- {"-b64", "${OUTPUT_FORMAT_64BIT}"},
- };
-
- jmax = 3;
-
- from_outside = getenv (TARGET_ENVIRON);
- if (from_outside != (char *) NULL)
- return from_outside;
-
- /* Set to default. */
- from_inside = argv_to_target[0][1];
- for (i = 1; i < argc; i++)
- {
- for (j = 1; j < jmax; j++)
- {
- if (0 == strcmp (argv[i], argv_to_target[j][0]))
- from_inside = argv_to_target[j][1];
- }
- }
-
- return from_inside;
-}
-
-/* Returns
- 1 : state changed
- 0 : no change */
-static int
-change_symbol_mode (char *input)
-{
- char *symbol_mode_string[] = {
- "# 32", /* 0x01 */
- "# 64", /* 0x02 */
- "# no32", /* 0x04 */
- "# no64", /* 0x08 */
- NULL,
- };
-
- unsigned int bit;
- char *string;
-
- for (bit = 0;; bit++)
- {
- string = symbol_mode_string[bit];
- if (string == NULL)
- return 0;
-
- if (0 == strcmp (input, string))
- {
- symbol_mode = (1 << bit);
- return 1;
- }
- }
- /* should not be here */
- return 0;
-}
-
-/* Returns
- 1 : yes
- 0 : ignore
- -1 : error, try something else */
-static int
-is_syscall (char *input, unsigned int *flag)
-{
- unsigned int bit;
- char *string;
-
- struct sc {
- char *syscall_string;
- unsigned int flag;
- } s [] = {
- { "svc" /* 0x01 */, XCOFF_SYSCALL32 },
- { "svc32" /* 0x02 */, XCOFF_SYSCALL32 },
- { "svc3264" /* 0x04 */, XCOFF_SYSCALL32 | XCOFF_SYSCALL64 },
- { "svc64" /* 0x08 */, XCOFF_SYSCALL64 },
- { "syscall" /* 0x10 */, XCOFF_SYSCALL32 },
- { "syscall32" /* 0x20 */, XCOFF_SYSCALL32 },
- { "syscall3264" /* 0x40 */, XCOFF_SYSCALL32 | XCOFF_SYSCALL64 },
- { "syscall64" /* 0x80 */, XCOFF_SYSCALL64 },
- { NULL, 0 },
- };
-
- *flag = 0;
-
- for (bit = 0;; bit++)
- {
- string = s[bit].syscall_string;
- if (string == NULL)
- return -1;
-
- if (0 == strcmp (input, string))
- {
- if (1 << bit & syscall_mask)
- {
- *flag = s[bit].flag;
- return 1;
- }
- else
- {
- return 0;
- }
- }
- }
- /* should not be here */
- return -1;
-}
-
-/* Read an import or export file. For an import file, this is called
- by the before_allocation emulation routine. For an export file,
- this is called by the handle_option emulation routine. */
-
-static void
-gld${EMULATION_NAME}_read_file (const char *filename, bfd_boolean import)
-{
- struct obstack *o;
- FILE *f;
- int lineno;
- int c;
- bfd_boolean keep;
- const char *imppath;
- const char *impfile;
- const char *impmember;
-
- o = (struct obstack *) xmalloc (sizeof (struct obstack));
- obstack_specify_allocation (o, 0, 0, xmalloc, gld${EMULATION_NAME}_free);
-
- f = fopen (filename, FOPEN_RT);
- if (f == NULL)
- {
- bfd_set_error (bfd_error_system_call);
- einfo ("%F%s: %E\n", filename);
- }
-
- keep = FALSE;
-
- imppath = NULL;
- impfile = NULL;
- impmember = NULL;
-
- lineno = 0;
-
- /* Default to 32 and 64 bit mode
- symbols at top of /lib/syscalls.exp do not have a mode modifier and they
- are not repeated, assume 64 bit routines also want to use them.
- See the routine change_symbol_mode for more information. */
-
- symbol_mode = 0x04;
-
- while ((c = getc (f)) != EOF)
- {
- char *s;
- char *symname;
- unsigned int syscall_flag = 0;
- bfd_vma address;
- struct bfd_link_hash_entry *h;
-
- if (c != '\n')
- {
- obstack_1grow (o, c);
- continue;
- }
-
- obstack_1grow (o, '\0');
- ++lineno;
-
- s = (char *) obstack_base (o);
- while (ISSPACE (*s))
- ++s;
- if (*s == '\0'
- || *s == '*'
- || change_symbol_mode (s)
- || (*s == '#' && s[1] == ' ')
- || (!import && *s == '#' && s[1] == '!'))
- {
- obstack_free (o, obstack_base (o));
- continue;
- }
-
- if (*s == '#' && s[1] == '!')
- {
- s += 2;
- while (ISSPACE (*s))
- ++s;
- if (*s == '\0')
- {
- imppath = NULL;
- impfile = NULL;
- impmember = NULL;
- obstack_free (o, obstack_base (o));
- }
- else if (*s == '(')
- einfo ("%F%s%d: #! ([member]) is not supported in import files\n",
- filename, lineno);
- else
- {
- char cs;
- char *start;
-
- (void) obstack_finish (o);
- keep = TRUE;
- start = s;
- while (!ISSPACE (*s) && *s != '(' && *s != '\0')
- ++s;
- cs = *s;
- *s = '\0';
- if (!bfd_xcoff_split_import_path (link_info.output_bfd,
- start, &imppath, &impfile))
- einfo ("%F%P: Could not parse import path: %E\n");
- while (ISSPACE (cs))
- {
- ++s;
- cs = *s;
- }
- if (cs != '(')
- {
- impmember = "";
- if (cs != '\0')
- einfo ("%s:%d: warning: syntax error in import file\n",
- filename, lineno);
- }
- else
- {
- ++s;
- impmember = s;
- while (*s != ')' && *s != '\0')
- ++s;
- if (*s == ')')
- *s = '\0';
- else
- einfo ("%s:%d: warning: syntax error in import file\n",
- filename, lineno);
- }
- }
-
- continue;
- }
-
- if (symbol_mode & symbol_mode_mask)
- {
- /* This is a symbol to be imported or exported. */
- symname = s;
- syscall_flag = 0;
- address = (bfd_vma) -1;
-
- while (!ISSPACE (*s) && *s != '\0')
- ++s;
- if (*s != '\0')
- {
- char *se;
-
- *s++ = '\0';
-
- while (ISSPACE (*s))
- ++s;
-
- se = s;
- while (!ISSPACE (*se) && *se != '\0')
- ++se;
- if (*se != '\0')
- {
- *se++ = '\0';
- while (ISSPACE (*se))
- ++se;
- if (*se != '\0')
- einfo ("%s%d: warning: syntax error in import/export file\n",
- filename, lineno);
- }
-
- if (s != se)
- {
- int status;
- const char *end;
-
- status = is_syscall (s, &syscall_flag);
-
- if (0 > status)
- {
- /* not a system call, check for address */
- address = bfd_scan_vma (s, &end, 0);
- if (*end != '\0')
- {
- einfo ("%s:%d: warning: syntax error in import/export file\n",
- filename, lineno);
-
- }
- }
- }
- }
-
- if (!import)
- {
- struct export_symbol_list *n;
-
- ldlang_add_undef (symname, TRUE);
- n = ((struct export_symbol_list *)
- xmalloc (sizeof (struct export_symbol_list)));
- n->next = export_symbols;
- n->name = xstrdup (symname);
- export_symbols = n;
- }
- else
- {
- h = bfd_link_hash_lookup (link_info.hash, symname, FALSE, FALSE,
- TRUE);
- if (h == NULL || h->type == bfd_link_hash_new)
- {
- /* We can just ignore attempts to import an unreferenced
- symbol. */
- }
- else
- {
- if (!bfd_xcoff_import_symbol (link_info.output_bfd,
- &link_info, h,
- address, imppath, impfile,
- impmember, syscall_flag))
- einfo ("%X%s:%d: failed to import symbol %s: %E\n",
- filename, lineno, symname);
- }
- }
- }
- obstack_free (o, obstack_base (o));
- }
-
- if (obstack_object_size (o) > 0)
- {
- einfo ("%s:%d: warning: ignoring unterminated last line\n",
- filename, lineno);
- obstack_free (o, obstack_base (o));
- }
-
- if (!keep)
- {
- obstack_free (o, NULL);
- free (o);
- }
-}
-
-/* This routine saves us from worrying about declaring free. */
-
-static void
-gld${EMULATION_NAME}_free (void *p)
-{
- free (p);
-}
-
-/* This is called by the before_allocation routine via
- lang_for_each_statement. It looks for relocations and assignments
- to symbols. */
-
-static void
-gld${EMULATION_NAME}_find_relocs (lang_statement_union_type *s)
-{
- if (s->header.type == lang_reloc_statement_enum)
- {
- lang_reloc_statement_type *rs;
-
- rs = &s->reloc_statement;
- if (rs->name == NULL)
- einfo ("%F%P: only relocations against symbols are permitted\n");
- if (!bfd_xcoff_link_count_reloc (link_info.output_bfd, &link_info,
- rs->name))
- einfo ("%F%P: bfd_xcoff_link_count_reloc failed: %E\n");
- }
-
- if (s->header.type == lang_assignment_statement_enum)
- gld${EMULATION_NAME}_find_exp_assignment (s->assignment_statement.exp);
-}
-
-/* Look through an expression for an assignment statement. */
-
-static void
-gld${EMULATION_NAME}_find_exp_assignment (etree_type *exp)
-{
- struct bfd_link_hash_entry *h;
-
- switch (exp->type.node_class)
- {
- case etree_provide:
- h = bfd_link_hash_lookup (link_info.hash, exp->assign.dst,
- FALSE, FALSE, FALSE);
- if (h == NULL)
- break;
- /* Fall through. */
- case etree_assign:
- if (strcmp (exp->assign.dst, ".") != 0)
- {
- if (!bfd_xcoff_record_link_assignment (link_info.output_bfd,
- &link_info,
- exp->assign.dst))
- einfo ("%P%F: failed to record assignment to %s: %E\n",
- exp->assign.dst);
- }
- gld${EMULATION_NAME}_find_exp_assignment (exp->assign.src);
- break;
-
- case etree_binary:
- gld${EMULATION_NAME}_find_exp_assignment (exp->binary.lhs);
- gld${EMULATION_NAME}_find_exp_assignment (exp->binary.rhs);
- break;
-
- case etree_trinary:
- gld${EMULATION_NAME}_find_exp_assignment (exp->trinary.cond);
- gld${EMULATION_NAME}_find_exp_assignment (exp->trinary.lhs);
- gld${EMULATION_NAME}_find_exp_assignment (exp->trinary.rhs);
- break;
-
- case etree_unary:
- gld${EMULATION_NAME}_find_exp_assignment (exp->unary.child);
- break;
-
- default:
- break;
- }
-}
-
-static char *
-gld${EMULATION_NAME}_get_script (int *isfile)
-EOF
-
-if test -n "$COMPILE_IN"
-then
-# Scripts compiled in.
-
-# sed commands to quote an ld script as a C string.
-sc="-f ${srcdir}/emultempl/ostring.sed"
-
-fragment <<EOF
-{
- *isfile = 0;
-
- if (link_info.relocatable && config.build_constructors)
- return
-EOF
-sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c
-echo ' ; else return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c
-echo '; }' >> e${EMULATION_NAME}.c
-
-else
-# Scripts read from the filesystem.
-
-fragment <<EOF
-{
- *isfile = 1;
-
- if (link_info.relocatable && config.build_constructors)
- return "ldscripts/${EMULATION_NAME}.xu";
- else if (link_info.relocatable)
- return "ldscripts/${EMULATION_NAME}.xr";
- else if (!config.text_read_only)
- return "ldscripts/${EMULATION_NAME}.xbn";
- else if (!config.magic_demand_paged)
- return "ldscripts/${EMULATION_NAME}.xn";
- else
- return "ldscripts/${EMULATION_NAME}.x";
-}
-EOF
-
-fi
-
-fragment <<EOF
-
-static void
-gld${EMULATION_NAME}_create_output_section_statements (void)
-{
- /* __rtinit */
- if ((bfd_get_flavour (link_info.output_bfd) == bfd_target_xcoff_flavour)
- && (link_info.init_function != NULL
- || link_info.fini_function != NULL
- || rtld))
- {
- initfini_file = lang_add_input_file ("initfini",
- lang_input_file_is_file_enum,
- NULL);
-
- initfini_file->the_bfd = bfd_create ("initfini", link_info.output_bfd);
- if (initfini_file->the_bfd == NULL
- || ! bfd_set_arch_mach (initfini_file->the_bfd,
- bfd_get_arch (link_info.output_bfd),
- bfd_get_mach (link_info.output_bfd)))
- {
- einfo ("%X%P: can not create BFD %E\n");
- return;
- }
-
- /* Call backend to fill in the rest */
- if (! bfd_xcoff_link_generate_rtinit (initfini_file->the_bfd,
- link_info.init_function,
- link_info.fini_function,
- rtld))
- {
- einfo ("%X%P: can not create BFD %E\n");
- return;
- }
-
- /* __rtld defined in /lib/librtl.a */
- if (rtld)
- lang_add_input_file ("rtl", lang_input_file_is_l_enum, NULL);
- }
-}
-
-static void
-gld${EMULATION_NAME}_set_output_arch (void)
-{
- bfd_set_arch_mach (link_info.output_bfd,
- bfd_xcoff_architecture (link_info.output_bfd),
- bfd_xcoff_machine (link_info.output_bfd));
-
- ldfile_output_architecture = bfd_get_arch (link_info.output_bfd);
- ldfile_output_machine = bfd_get_mach (link_info.output_bfd);
- ldfile_output_machine_name = bfd_printable_name (link_info.output_bfd);
-}
-
-static bfd_boolean
-gld${EMULATION_NAME}_open_dynamic_archive (const char *arch,
- search_dirs_type *search,
- lang_input_statement_type *entry)
-{
- char *path;
-
- if (!entry->flags.maybe_archive)
- return FALSE;
-
- path = concat (search->name, "/lib", entry->filename, arch, ".a", NULL);
- if (!ldfile_try_open_bfd (path, entry))
- {
- free (path);
- return FALSE;
- }
- /* Don't include the searched directory in the import path. */
- bfd_xcoff_set_archive_import_path (&link_info, entry->the_bfd,
- path + strlen (search->name) + 1);
- entry->filename = path;
- return TRUE;
-}
-
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = {
- gld${EMULATION_NAME}_before_parse,
- syslib_default,
- hll_default,
- after_parse_default,
- gld${EMULATION_NAME}_after_open,
- after_allocation_default,
- gld${EMULATION_NAME}_set_output_arch,
- gld${EMULATION_NAME}_choose_target,
- gld${EMULATION_NAME}_before_allocation,
- gld${EMULATION_NAME}_get_script,
- "${EMULATION_NAME}",
- "${OUTPUT_FORMAT}",
- finish_default,
- gld${EMULATION_NAME}_create_output_section_statements,
- gld${EMULATION_NAME}_open_dynamic_archive,
- 0, /* place_orphan */
- 0, /* set_symbols */
- gld${EMULATION_NAME}_parse_args,
- gld${EMULATION_NAME}_add_options,
- gld${EMULATION_NAME}_handle_option,
- gld${EMULATION_NAME}_unrecognized_file,
- NULL, /* list_options */
- NULL, /* recognized_file */
- NULL, /* find potential_libraries */
- NULL /* new_vers_pattern */
-};
-EOF
diff --git a/ld/emultempl/alphaelf.em b/ld/emultempl/alphaelf.em
deleted file mode 100644
index 21064ad..0000000
--- a/ld/emultempl/alphaelf.em
+++ /dev/null
@@ -1,148 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2003, 2004, 2005, 2007, 2008, 2009
-# 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.
-#
-
-# This file is sourced from elf32.em, and defines extra alpha
-# specific routines.
-#
-fragment <<EOF
-
-#include "elf/internal.h"
-#include "elf/alpha.h"
-#include "elf-bfd.h"
-
-static bfd_boolean limit_32bit;
-
-extern bfd_boolean elf64_alpha_use_secureplt;
-
-
-/* Set the start address as in the Tru64 ld. */
-#define ALPHA_TEXT_START_32BIT 0x12000000
-
-static void
-alpha_after_open (void)
-{
- if (bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour
- && elf_object_id (link_info.output_bfd) == ALPHA_ELF_DATA)
- {
- unsigned int num_plt;
- lang_output_section_statement_type *os;
- lang_output_section_statement_type *plt_os[2];
-
- num_plt = 0;
- for (os = &lang_output_section_statement.head->output_section_statement;
- os != NULL;
- os = os->next)
- {
- if (os->constraint == SPECIAL && strcmp (os->name, ".plt") == 0)
- {
- if (num_plt < 2)
- plt_os[num_plt] = os;
- ++num_plt;
- }
- }
-
- if (num_plt == 2)
- {
- plt_os[0]->constraint = elf64_alpha_use_secureplt ? 0 : -1;
- plt_os[1]->constraint = elf64_alpha_use_secureplt ? -1 : 0;
- }
- }
-
- gld${EMULATION_NAME}_after_open ();
-}
-
-static void
-alpha_after_parse (void)
-{
- if (limit_32bit && !link_info.shared && !link_info.relocatable)
- lang_section_start (".interp",
- exp_binop ('+',
- exp_intop (ALPHA_TEXT_START_32BIT),
- exp_nameop (SIZEOF_HEADERS, NULL)),
- NULL);
-
- after_parse_default ();
-}
-
-static void
-alpha_before_allocation (void)
-{
- /* Call main function; we're just extending it. */
- gld${EMULATION_NAME}_before_allocation ();
-
- /* Add -relax if -O, not -r, and not explicitly disabled. */
- if (link_info.optimize && !link_info.relocatable && ! RELAXATION_DISABLED_BY_USER)
- ENABLE_RELAXATION;
-}
-
-static void
-alpha_finish (void)
-{
- if (limit_32bit)
- elf_elfheader (link_info.output_bfd)->e_flags |= EF_ALPHA_32BIT;
-
- finish_default ();
-}
-EOF
-
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE='
-#define OPTION_TASO 300
-#define OPTION_SECUREPLT (OPTION_TASO + 1)
-#define OPTION_NO_SECUREPLT (OPTION_SECUREPLT + 1)
-'
-
-PARSE_AND_LIST_LONGOPTS='
- { "taso", no_argument, NULL, OPTION_TASO },
- { "secureplt", no_argument, NULL, OPTION_SECUREPLT },
- { "no-secureplt", no_argument, NULL, OPTION_NO_SECUREPLT },
-'
-
-PARSE_AND_LIST_OPTIONS='
- fprintf (file, _("\
- --taso Load executable in the lower 31-bit addressable\n\
- virtual address range.\n\
- --secureplt Force PLT in text segment.\n\
- --no-secureplt Force PLT in data segment.\n\
-"));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
- case OPTION_TASO:
- limit_32bit = 1;
- break;
- case OPTION_SECUREPLT:
- elf64_alpha_use_secureplt = TRUE;
- break;
- case OPTION_NO_SECUREPLT:
- elf64_alpha_use_secureplt = FALSE;
- break;
-'
-
-# Put these extra alpha routines in ld_${EMULATION_NAME}_emulation
-#
-LDEMUL_AFTER_OPEN=alpha_after_open
-LDEMUL_AFTER_PARSE=alpha_after_parse
-LDEMUL_BEFORE_ALLOCATION=alpha_before_allocation
-LDEMUL_FINISH=alpha_finish
diff --git a/ld/emultempl/armcoff.em b/ld/emultempl/armcoff.em
deleted file mode 100644
index 20bff14..0000000
--- a/ld/emultempl/armcoff.em
+++ /dev/null
@@ -1,285 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-fragment <<EOF
-/* This file is is generated by a shell script. DO NOT EDIT! */
-
-/* emulate the original gld for the given ${EMULATION_NAME}
- Copyright 1991, 1993, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
- 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
- Written by Steve Chamberlain steve@cygnus.com
-
- 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. */
-
-#define TARGET_IS_${EMULATION_NAME}
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "bfdlink.h"
-#include "getopt.h"
-
-#include "ld.h"
-#include "ldmain.h"
-#include "ldmisc.h"
-
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-
-/* If TRUE, then interworking stubs which support calls to old,
- non-interworking aware ARM code should be generated. */
-
-static int support_old_code = 0;
-static char * thumb_entry_symbol = NULL;
-
-#define OPTION_SUPPORT_OLD_CODE 300
-#define OPTION_THUMB_ENTRY 301
-
-static void
-gld${EMULATION_NAME}_add_options
- (int ns ATTRIBUTE_UNUSED, char **shortopts ATTRIBUTE_UNUSED, int nl,
- struct option **longopts, int nrl ATTRIBUTE_UNUSED,
- struct option **really_longopts ATTRIBUTE_UNUSED)
-{
- static const struct option xtra_long[] = {
- {"support-old-code", no_argument, NULL, OPTION_SUPPORT_OLD_CODE},
- {"thumb-entry", required_argument, NULL, OPTION_THUMB_ENTRY},
- {NULL, no_argument, NULL, 0}
- };
-
- *longopts = xrealloc (*longopts,
- nl * sizeof (struct option) + sizeof (xtra_long));
- memcpy (*longopts + nl, &xtra_long, sizeof (xtra_long));
-}
-
-static void
-gld${EMULATION_NAME}_list_options (FILE *file)
-{
- fprintf (file, _(" --support-old-code Support interworking with old code\n"));
- fprintf (file, _(" --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"));
-}
-
-static bfd_boolean
-gld${EMULATION_NAME}_handle_option (int optc)
-{
- switch (optc)
- {
- default:
- return FALSE;
-
- case OPTION_SUPPORT_OLD_CODE:
- support_old_code = 1;
- break;
-
- case OPTION_THUMB_ENTRY:
- thumb_entry_symbol = optarg;
- break;
- }
-
- return TRUE;
-}
-
-static void
-gld${EMULATION_NAME}_before_parse (void)
-{
-#ifndef TARGET_ /* I.e., if not generic. */
- ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown);
-#endif /* not TARGET_ */
-}
-
-/* This is called after the sections have been attached to output
- sections, but before any sizes or addresses have been set. */
-
-static void
-gld${EMULATION_NAME}_before_allocation (void)
-{
- /* we should be able to set the size of the interworking stub section */
-
- /* Here we rummage through the found bfds to collect glue information */
- /* FIXME: should this be based on a command line option? krk@cygnus.com */
- {
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- if (! bfd_arm_process_before_allocation
- (is->the_bfd, & link_info, support_old_code))
- {
- /* xgettext:c-format */
- einfo (_("Errors encountered processing file %s"), is->filename);
- }
- }
- }
-
- /* We have seen it all. Allocate it, and carry on */
- bfd_arm_allocate_interworking_sections (& link_info);
-
- before_allocation_default ();
-}
-
-static void
-gld${EMULATION_NAME}_after_open (void)
-{
- after_open_default ();
-
- if (strstr (bfd_get_target (link_info.output_bfd), "arm") == NULL)
- {
- /* The arm backend needs special fields in the output hash structure.
- These will only be created if the output format is an arm format,
- hence we do not support linking and changing output formats at the
- same time. Use a link followed by objcopy to change output formats. */
- einfo ("%F%X%P: error: cannot change output format whilst linking ARM binaries\n");
- return;
- }
-
- {
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- if (bfd_arm_get_bfd_for_interworking (is->the_bfd, & link_info))
- break;
- }
- }
-}
-
-static void
-gld${EMULATION_NAME}_finish (void)
-{
- if (thumb_entry_symbol != NULL)
- {
- struct bfd_link_hash_entry * h;
-
- h = bfd_link_hash_lookup (link_info.hash, thumb_entry_symbol,
- FALSE, FALSE, TRUE);
-
- if (h != (struct bfd_link_hash_entry *) NULL
- && (h->type == bfd_link_hash_defined
- || h->type == bfd_link_hash_defweak)
- && h->u.def.section->output_section != NULL)
- {
- static char buffer[32];
- bfd_vma val;
-
- /* Special procesing is required for a Thumb entry symbol. The
- bottom bit of its address must be set. */
- val = (h->u.def.value
- + bfd_get_section_vma (link_info.output_bfd,
- h->u.def.section->output_section)
- + h->u.def.section->output_offset);
-
- val |= 1;
-
- /* Now convert this value into a string and store it in entry_symbol
- where the lang_finish() function will pick it up. */
- buffer[0] = '0';
- buffer[1] = 'x';
-
- sprintf_vma (buffer + 2, val);
-
- if (entry_symbol.name != NULL && entry_from_cmdline)
- einfo (_("%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"),
- thumb_entry_symbol, entry_symbol.name);
- entry_symbol.name = buffer;
- }
- else
- einfo (_("%P: warning: cannot find thumb start symbol %s\n"),
- thumb_entry_symbol);
- }
-
- finish_default ();
-}
-
-static char *
-gld${EMULATION_NAME}_get_script (int *isfile)
-EOF
-
-if test -n "$COMPILE_IN"
-then
-# Scripts compiled in.
-
-# sed commands to quote an ld script as a C string.
-sc="-f stringify.sed"
-
-fragment <<EOF
-{
- *isfile = 0;
-
- if (link_info.relocatable && config.build_constructors)
- return
-EOF
-sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c
-echo ' ; else return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c
-echo '; }' >> e${EMULATION_NAME}.c
-
-else
-# Scripts read from the filesystem.
-
-fragment <<EOF
-{
- *isfile = 1;
-
- if (link_info.relocatable && config.build_constructors)
- return "ldscripts/${EMULATION_NAME}.xu";
- else if (link_info.relocatable)
- return "ldscripts/${EMULATION_NAME}.xr";
- else if (!config.text_read_only)
- return "ldscripts/${EMULATION_NAME}.xbn";
- else if (!config.magic_demand_paged)
- return "ldscripts/${EMULATION_NAME}.xn";
- else
- return "ldscripts/${EMULATION_NAME}.x";
-}
-EOF
-
-fi
-
-fragment <<EOF
-
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
-{
- gld${EMULATION_NAME}_before_parse,
- syslib_default,
- hll_default,
- after_parse_default,
- gld${EMULATION_NAME}_after_open,
- after_allocation_default,
- set_output_arch_default,
- ldemul_default_target,
- gld${EMULATION_NAME}_before_allocation,
- gld${EMULATION_NAME}_get_script,
- "${EMULATION_NAME}",
- "${OUTPUT_FORMAT}",
- gld${EMULATION_NAME}_finish,
- NULL, /* create output section statements */
- NULL, /* open dynamic archive */
- NULL, /* place orphan */
- NULL, /* set symbols */
- NULL, /* parse_args */
- gld${EMULATION_NAME}_add_options,
- gld${EMULATION_NAME}_handle_option,
- NULL, /* unrecognised file */
- gld${EMULATION_NAME}_list_options,
- NULL, /* recognized file */
- NULL, /* find_potential_libraries */
- NULL /* new_vers_pattern */
-};
-EOF
diff --git a/ld/emultempl/armelf.em b/ld/emultempl/armelf.em
deleted file mode 100644
index eee6af1..0000000
--- a/ld/emultempl/armelf.em
+++ /dev/null
@@ -1,692 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 1991-2013 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.
-#
-
-# This file is sourced from elf32.em, and defines extra arm-elf
-# specific routines.
-#
-test -z "$TARGET2_TYPE" && TARGET2_TYPE="rel"
-fragment <<EOF
-
-#include "ldctor.h"
-#include "elf/arm.h"
-
-static char *thumb_entry_symbol = NULL;
-static int byteswap_code = 0;
-static int target1_is_rel = 0${TARGET1_IS_REL};
-static char *target2_type = "${TARGET2_TYPE}";
-static int fix_v4bx = 0;
-static int use_blx = 0;
-static bfd_arm_vfp11_fix vfp11_denorm_fix = BFD_ARM_VFP11_FIX_DEFAULT;
-static int fix_cortex_a8 = -1;
-static int no_enum_size_warning = 0;
-static int no_wchar_size_warning = 0;
-static int pic_veneer = 0;
-static int merge_exidx_entries = -1;
-static int fix_arm1176 = 1;
-
-static void
-gld${EMULATION_NAME}_before_parse (void)
-{
-#ifndef TARGET_ /* I.e., if not generic. */
- ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown);
-#endif /* not TARGET_ */
- input_flags.dynamic = ${DYNAMIC_LINK-TRUE};
- config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
- config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
-}
-
-static void
-arm_elf_before_allocation (void)
-{
- bfd_elf32_arm_set_byteswap_code (&link_info, byteswap_code);
-
- /* Choose type of VFP11 erratum fix, or warn if specified fix is unnecessary
- due to architecture version. */
- bfd_elf32_arm_set_vfp11_fix (link_info.output_bfd, &link_info);
-
- /* Auto-select Cortex-A8 erratum fix if it wasn't explicitly specified. */
- bfd_elf32_arm_set_cortex_a8_fix (link_info.output_bfd, &link_info);
-
- /* We should be able to set the size of the interworking stub section. We
- can't do it until later if we have dynamic sections, though. */
- if (elf_hash_table (&link_info)->dynobj == NULL)
- {
- /* Here we rummage through the found bfds to collect glue information. */
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- /* Initialise mapping tables for code/data. */
- bfd_elf32_arm_init_maps (is->the_bfd);
-
- if (!bfd_elf32_arm_process_before_allocation (is->the_bfd,
- &link_info)
- || !bfd_elf32_arm_vfp11_erratum_scan (is->the_bfd, &link_info))
- /* xgettext:c-format */
- einfo (_("Errors encountered processing file %s"), is->filename);
- }
-
- /* We have seen it all. Allocate it, and carry on. */
- bfd_elf32_arm_allocate_interworking_sections (& link_info);
- }
-
- /* Call the standard elf routine. */
- gld${EMULATION_NAME}_before_allocation ();
-}
-
-/* Fake input file for stubs. */
-static lang_input_statement_type *stub_file;
-
-/* Whether we need to call gldarm_layout_sections_again. */
-static int need_laying_out = 0;
-
-/* Maximum size of a group of input sections that can be handled by
- one stub section. A value of +/-1 indicates the bfd back-end
- should use a suitable default size. */
-static bfd_signed_vma group_size = 1;
-
-struct hook_stub_info
-{
- lang_statement_list_type add;
- asection *input_section;
-};
-
-/* Traverse the linker tree to find the spot where the stub goes. */
-
-static bfd_boolean
-hook_in_stub (struct hook_stub_info *info, lang_statement_union_type **lp)
-{
- lang_statement_union_type *l;
- bfd_boolean ret;
-
- for (; (l = *lp) != NULL; lp = &l->header.next)
- {
- switch (l->header.type)
- {
- case lang_constructors_statement_enum:
- ret = hook_in_stub (info, &constructor_list.head);
- if (ret)
- return ret;
- break;
-
- case lang_output_section_statement_enum:
- ret = hook_in_stub (info,
- &l->output_section_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_wild_statement_enum:
- ret = hook_in_stub (info, &l->wild_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_group_statement_enum:
- ret = hook_in_stub (info, &l->group_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_input_section_enum:
- if (l->input_section.section == info->input_section)
- {
- /* We've found our section. Insert the stub immediately
- after its associated input section. */
- *(info->add.tail) = l->header.next;
- l->header.next = info->add.head;
- return TRUE;
- }
- break;
-
- case lang_data_statement_enum:
- case lang_reloc_statement_enum:
- case lang_object_symbols_statement_enum:
- case lang_output_statement_enum:
- case lang_target_statement_enum:
- case lang_input_statement_enum:
- case lang_assignment_statement_enum:
- case lang_padding_statement_enum:
- case lang_address_statement_enum:
- case lang_fill_statement_enum:
- break;
-
- default:
- FAIL ();
- break;
- }
- }
- return FALSE;
-}
-
-
-/* Call-back for elf32_arm_size_stubs. */
-
-/* Create a new stub section, and arrange for it to be linked
- immediately after INPUT_SECTION. */
-
-static asection *
-elf32_arm_add_stub_section (const char * stub_sec_name,
- asection * input_section,
- unsigned int alignment_power)
-{
- asection *stub_sec;
- flagword flags;
- asection *output_section;
- const char *secname;
- lang_output_section_statement_type *os;
- struct hook_stub_info info;
-
- flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE
- | SEC_HAS_CONTENTS | SEC_RELOC | SEC_IN_MEMORY | SEC_KEEP);
- stub_sec = bfd_make_section_anyway_with_flags (stub_file->the_bfd,
- stub_sec_name, flags);
- if (stub_sec == NULL)
- goto err_ret;
-
- bfd_set_section_alignment (stub_file->the_bfd, stub_sec, alignment_power);
-
- output_section = input_section->output_section;
- secname = bfd_get_section_name (output_section->owner, output_section);
- os = lang_output_section_find (secname);
-
- info.input_section = input_section;
- lang_list_init (&info.add);
- lang_add_section (&info.add, stub_sec, NULL, os);
-
- if (info.add.head == NULL)
- goto err_ret;
-
- if (hook_in_stub (&info, &os->children.head))
- return stub_sec;
-
- err_ret:
- einfo ("%X%P: can not make stub section: %E\n");
- return NULL;
-}
-
-/* Another call-back for elf_arm_size_stubs. */
-
-static void
-gldarm_layout_sections_again (void)
-{
- /* If we have changed sizes of the stub sections, then we need
- to recalculate all the section offsets. This may mean we need to
- add even more stubs. */
- gld${EMULATION_NAME}_map_segments (TRUE);
- need_laying_out = -1;
-}
-
-static void
-build_section_lists (lang_statement_union_type *statement)
-{
- if (statement->header.type == lang_input_section_enum)
- {
- asection *i = statement->input_section.section;
-
- if (i->sec_info_type != SEC_INFO_TYPE_JUST_SYMS
- && (i->flags & SEC_EXCLUDE) == 0
- && i->output_section != NULL
- && i->output_section->owner == link_info.output_bfd)
- elf32_arm_next_input_section (& link_info, i);
- }
-}
-
-static int
-compare_output_sec_vma (const void *a, const void *b)
-{
- asection *asec = *(asection **) a, *bsec = *(asection **) b;
- asection *aout = asec->output_section, *bout = bsec->output_section;
- bfd_vma avma, bvma;
-
- /* If there's no output section for some reason, compare equal. */
- if (!aout || !bout)
- return 0;
-
- avma = aout->vma + asec->output_offset;
- bvma = bout->vma + bsec->output_offset;
-
- if (avma > bvma)
- return 1;
- else if (avma < bvma)
- return -1;
-
- return 0;
-}
-
-static void
-gld${EMULATION_NAME}_after_allocation (void)
-{
- if (!link_info.relocatable)
- {
- /* Build a sorted list of input text sections, then use that to process
- the unwind table index. */
- unsigned int list_size = 10;
- asection **sec_list = (asection **)
- xmalloc (list_size * sizeof (asection *));
- unsigned int sec_count = 0;
-
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- bfd *abfd = is->the_bfd;
- asection *sec;
-
- if ((abfd->flags & (EXEC_P | DYNAMIC)) != 0)
- continue;
-
- for (sec = abfd->sections; sec != NULL; sec = sec->next)
- {
- asection *out_sec = sec->output_section;
-
- if (out_sec
- && elf_section_data (sec)
- && elf_section_type (sec) == SHT_PROGBITS
- && (elf_section_flags (sec) & SHF_EXECINSTR) != 0
- && (sec->flags & SEC_EXCLUDE) == 0
- && sec->sec_info_type != SEC_INFO_TYPE_JUST_SYMS
- && out_sec != bfd_abs_section_ptr)
- {
- if (sec_count == list_size)
- {
- list_size *= 2;
- sec_list = (asection **)
- xrealloc (sec_list, list_size * sizeof (asection *));
- }
-
- sec_list[sec_count++] = sec;
- }
- }
- }
-
- qsort (sec_list, sec_count, sizeof (asection *), &compare_output_sec_vma);
-
- if (elf32_arm_fix_exidx_coverage (sec_list, sec_count, &link_info,
- merge_exidx_entries))
- need_laying_out = 1;
-
- free (sec_list);
- }
-
- /* bfd_elf32_discard_info just plays with debugging sections,
- ie. doesn't affect any code, so we can delay resizing the
- sections. It's likely we'll resize everything in the process of
- adding stubs. */
- if (bfd_elf_discard_info (link_info.output_bfd, & link_info))
- need_laying_out = 1;
-
- /* If generating a relocatable output file, then we don't
- have to examine the relocs. */
- if (stub_file != NULL && !link_info.relocatable)
- {
- int ret = elf32_arm_setup_section_lists (link_info.output_bfd, & link_info);
-
- if (ret != 0)
- {
- if (ret < 0)
- {
- einfo ("%X%P: could not compute sections lists for stub generation: %E\n");
- return;
- }
-
- lang_for_each_statement (build_section_lists);
-
- /* Call into the BFD backend to do the real work. */
- if (! elf32_arm_size_stubs (link_info.output_bfd,
- stub_file->the_bfd,
- & link_info,
- group_size,
- & elf32_arm_add_stub_section,
- & gldarm_layout_sections_again))
- {
- einfo ("%X%P: cannot size stub section: %E\n");
- return;
- }
- }
- }
-
- if (need_laying_out != -1)
- gld${EMULATION_NAME}_map_segments (need_laying_out);
-}
-
-static void
-gld${EMULATION_NAME}_finish (void)
-{
- struct bfd_link_hash_entry * h;
-
- {
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- /* Figure out where VFP11 erratum veneers (and the labels returning
- from same) have been placed. */
- bfd_elf32_arm_vfp11_fix_veneer_locations (is->the_bfd, &link_info);
- }
- }
-
- if (! link_info.relocatable)
- {
- /* Now build the linker stubs. */
- if (stub_file->the_bfd->sections != NULL)
- {
- if (! elf32_arm_build_stubs (& link_info))
- einfo ("%X%P: can not build stubs: %E\n");
- }
- }
-
- finish_default ();
-
- if (thumb_entry_symbol)
- {
- h = bfd_link_hash_lookup (link_info.hash, thumb_entry_symbol,
- FALSE, FALSE, TRUE);
- }
- else
- {
- struct elf_link_hash_entry * eh;
-
- if (!entry_symbol.name)
- return;
-
- h = bfd_link_hash_lookup (link_info.hash, entry_symbol.name,
- FALSE, FALSE, TRUE);
- eh = (struct elf_link_hash_entry *)h;
- if (!h || eh->target_internal != ST_BRANCH_TO_THUMB)
- return;
- }
-
-
- if (h != (struct bfd_link_hash_entry *) NULL
- && (h->type == bfd_link_hash_defined
- || h->type == bfd_link_hash_defweak)
- && h->u.def.section->output_section != NULL)
- {
- static char buffer[32];
- bfd_vma val;
-
- /* Special procesing is required for a Thumb entry symbol. The
- bottom bit of its address must be set. */
- val = (h->u.def.value
- + bfd_get_section_vma (link_info.output_bfd,
- h->u.def.section->output_section)
- + h->u.def.section->output_offset);
-
- val |= 1;
-
- /* Now convert this value into a string and store it in entry_symbol
- where the lang_finish() function will pick it up. */
- buffer[0] = '0';
- buffer[1] = 'x';
-
- sprintf_vma (buffer + 2, val);
-
- if (thumb_entry_symbol != NULL && entry_symbol.name != NULL
- && entry_from_cmdline)
- einfo (_("%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"),
- thumb_entry_symbol, entry_symbol.name);
- entry_symbol.name = buffer;
- }
- else
- einfo (_("%P: warning: cannot find thumb start symbol %s\n"),
- thumb_entry_symbol);
-}
-
-/* This is a convenient point to tell BFD about target specific flags.
- After the output has been created, but before inputs are read. */
-static void
-arm_elf_create_output_section_statements (void)
-{
- if (strstr (bfd_get_target (link_info.output_bfd), "arm") == NULL)
- {
- /* The arm backend needs special fields in the output hash structure.
- These will only be created if the output format is an arm format,
- hence we do not support linking and changing output formats at the
- same time. Use a link followed by objcopy to change output formats. */
- einfo ("%F%X%P: error: Cannot change output format whilst linking ARM binaries.\n");
- return;
- }
-
- bfd_elf32_arm_set_target_relocs (link_info.output_bfd, &link_info,
- target1_is_rel,
- target2_type, fix_v4bx, use_blx,
- vfp11_denorm_fix, no_enum_size_warning,
- no_wchar_size_warning,
- pic_veneer, fix_cortex_a8,
- fix_arm1176);
-
- stub_file = lang_add_input_file ("linker stubs",
- lang_input_file_is_fake_enum,
- NULL);
- stub_file->the_bfd = bfd_create ("linker stubs", link_info.output_bfd);
- if (stub_file->the_bfd == NULL
- || ! bfd_set_arch_mach (stub_file->the_bfd,
- bfd_get_arch (link_info.output_bfd),
- bfd_get_mach (link_info.output_bfd)))
- {
- einfo ("%X%P: can not create BFD %E\n");
- return;
- }
-
- stub_file->the_bfd->flags |= BFD_LINKER_CREATED;
- ldlang_add_file (stub_file);
-
- /* Also use the stub file for stubs placed in a single output section. */
- bfd_elf32_arm_add_glue_sections_to_bfd (stub_file->the_bfd, &link_info);
- bfd_elf32_arm_get_bfd_for_interworking (stub_file->the_bfd, &link_info);
-}
-
-/* Avoid processing the fake stub_file in vercheck, stat_needed and
- check_needed routines. */
-
-static void (*real_func) (lang_input_statement_type *);
-
-static void arm_for_each_input_file_wrapper (lang_input_statement_type *l)
-{
- if (l != stub_file)
- (*real_func) (l);
-}
-
-static void
-arm_lang_for_each_input_file (void (*func) (lang_input_statement_type *))
-{
- real_func = func;
- lang_for_each_input_file (&arm_for_each_input_file_wrapper);
-}
-
-#define lang_for_each_input_file arm_lang_for_each_input_file
-
-EOF
-
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE='
-#define OPTION_THUMB_ENTRY 301
-#define OPTION_BE8 302
-#define OPTION_TARGET1_REL 303
-#define OPTION_TARGET1_ABS 304
-#define OPTION_TARGET2 305
-#define OPTION_FIX_V4BX 306
-#define OPTION_USE_BLX 307
-#define OPTION_VFP11_DENORM_FIX 308
-#define OPTION_NO_ENUM_SIZE_WARNING 309
-#define OPTION_PIC_VENEER 310
-#define OPTION_FIX_V4BX_INTERWORKING 311
-#define OPTION_STUBGROUP_SIZE 312
-#define OPTION_NO_WCHAR_SIZE_WARNING 313
-#define OPTION_FIX_CORTEX_A8 314
-#define OPTION_NO_FIX_CORTEX_A8 315
-#define OPTION_NO_MERGE_EXIDX_ENTRIES 316
-#define OPTION_FIX_ARM1176 317
-#define OPTION_NO_FIX_ARM1176 318
-'
-
-PARSE_AND_LIST_SHORTOPTS=p
-
-PARSE_AND_LIST_LONGOPTS='
- { "no-pipeline-knowledge", no_argument, NULL, '\'p\''},
- { "thumb-entry", required_argument, NULL, OPTION_THUMB_ENTRY},
- { "be8", no_argument, NULL, OPTION_BE8},
- { "target1-rel", no_argument, NULL, OPTION_TARGET1_REL},
- { "target1-abs", no_argument, NULL, OPTION_TARGET1_ABS},
- { "target2", required_argument, NULL, OPTION_TARGET2},
- { "fix-v4bx", no_argument, NULL, OPTION_FIX_V4BX},
- { "fix-v4bx-interworking", no_argument, NULL, OPTION_FIX_V4BX_INTERWORKING},
- { "use-blx", no_argument, NULL, OPTION_USE_BLX},
- { "vfp11-denorm-fix", required_argument, NULL, OPTION_VFP11_DENORM_FIX},
- { "no-enum-size-warning", no_argument, NULL, OPTION_NO_ENUM_SIZE_WARNING},
- { "pic-veneer", no_argument, NULL, OPTION_PIC_VENEER},
- { "stub-group-size", required_argument, NULL, OPTION_STUBGROUP_SIZE },
- { "no-wchar-size-warning", no_argument, NULL, OPTION_NO_WCHAR_SIZE_WARNING},
- { "fix-cortex-a8", no_argument, NULL, OPTION_FIX_CORTEX_A8 },
- { "no-fix-cortex-a8", no_argument, NULL, OPTION_NO_FIX_CORTEX_A8 },
- { "no-merge-exidx-entries", no_argument, NULL, OPTION_NO_MERGE_EXIDX_ENTRIES },
- { "fix-arm1176", no_argument, NULL, OPTION_FIX_ARM1176 },
- { "no-fix-arm1176", no_argument, NULL, OPTION_NO_FIX_ARM1176 },
-'
-
-PARSE_AND_LIST_OPTIONS='
- fprintf (file, _(" --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"));
- fprintf (file, _(" --be8 Output BE8 format image\n"));
- fprintf (file, _(" --target1-rel Interpret R_ARM_TARGET1 as R_ARM_REL32\n"));
- fprintf (file, _(" --target1-abs Interpret R_ARM_TARGET1 as R_ARM_ABS32\n"));
- fprintf (file, _(" --target2=<type> Specify definition of R_ARM_TARGET2\n"));
- fprintf (file, _(" --fix-v4bx Rewrite BX rn as MOV pc, rn for ARMv4\n"));
- fprintf (file, _(" --fix-v4bx-interworking Rewrite BX rn branch to ARMv4 interworking veneer\n"));
- fprintf (file, _(" --use-blx Enable use of BLX instructions\n"));
- fprintf (file, _(" --vfp11-denorm-fix Specify how to fix VFP11 denorm erratum\n"));
- fprintf (file, _(" --no-enum-size-warning Don'\''t warn about objects with incompatible\n"
- " enum sizes\n"));
- fprintf (file, _(" --no-wchar-size-warning Don'\''t warn about objects with incompatible\n"
- " wchar_t sizes\n"));
- fprintf (file, _(" --pic-veneer Always generate PIC interworking veneers\n"));
- fprintf (file, _("\
- --stub-group-size=N Maximum size of a group of input sections that\n\
- can be handled by one stub section. A negative\n\
- value locates all stubs after their branches\n\
- (with a group size of -N), while a positive\n\
- value allows two groups of input sections, one\n\
- before, and one after each stub section.\n\
- Values of +/-1 indicate the linker should\n\
- choose suitable defaults.\n"));
- fprintf (file, _(" --[no-]fix-cortex-a8 Disable/enable Cortex-A8 Thumb-2 branch erratum fix\n"));
- fprintf (file, _(" --no-merge-exidx-entries Disable merging exidx entries\n"));
- fprintf (file, _(" --[no-]fix-arm1176 Disable/enable ARM1176 BLX immediate erratum fix\n"));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
- case '\'p\'':
- /* Only here for backwards compatibility. */
- break;
-
- case OPTION_THUMB_ENTRY:
- thumb_entry_symbol = optarg;
- break;
-
- case OPTION_BE8:
- byteswap_code = 1;
- break;
-
- case OPTION_TARGET1_REL:
- target1_is_rel = 1;
- break;
-
- case OPTION_TARGET1_ABS:
- target1_is_rel = 0;
- break;
-
- case OPTION_TARGET2:
- target2_type = optarg;
- break;
-
- case OPTION_FIX_V4BX:
- fix_v4bx = 1;
- break;
-
- case OPTION_FIX_V4BX_INTERWORKING:
- fix_v4bx = 2;
- break;
-
- case OPTION_USE_BLX:
- use_blx = 1;
- break;
-
- case OPTION_VFP11_DENORM_FIX:
- if (strcmp (optarg, "none") == 0)
- vfp11_denorm_fix = BFD_ARM_VFP11_FIX_NONE;
- else if (strcmp (optarg, "scalar") == 0)
- vfp11_denorm_fix = BFD_ARM_VFP11_FIX_SCALAR;
- else if (strcmp (optarg, "vector") == 0)
- vfp11_denorm_fix = BFD_ARM_VFP11_FIX_VECTOR;
- else
- einfo (_("Unrecognized VFP11 fix type '\''%s'\''.\n"), optarg);
- break;
-
- case OPTION_NO_ENUM_SIZE_WARNING:
- no_enum_size_warning = 1;
- break;
-
- case OPTION_NO_WCHAR_SIZE_WARNING:
- no_wchar_size_warning = 1;
- break;
-
- case OPTION_PIC_VENEER:
- pic_veneer = 1;
- break;
-
- case OPTION_STUBGROUP_SIZE:
- {
- const char *end;
-
- group_size = bfd_scan_vma (optarg, &end, 0);
- if (*end)
- einfo (_("%P%F: invalid number `%s'\''\n"), optarg);
- }
- break;
-
- case OPTION_FIX_CORTEX_A8:
- fix_cortex_a8 = 1;
- break;
-
- case OPTION_NO_FIX_CORTEX_A8:
- fix_cortex_a8 = 0;
- break;
-
- case OPTION_NO_MERGE_EXIDX_ENTRIES:
- merge_exidx_entries = 0;
- break;
-
- case OPTION_FIX_ARM1176:
- fix_arm1176 = 1;
- break;
-
- case OPTION_NO_FIX_ARM1176:
- fix_arm1176 = 0;
- break;
-'
-
-# We have our own before_allocation etc. functions, but they call
-# the standard routines, so give them a different name.
-LDEMUL_BEFORE_ALLOCATION=arm_elf_before_allocation
-LDEMUL_AFTER_ALLOCATION=gld${EMULATION_NAME}_after_allocation
-LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=arm_elf_create_output_section_statements
-
-# Replace the elf before_parse function with our own.
-LDEMUL_BEFORE_PARSE=gld"${EMULATION_NAME}"_before_parse
-
-# Call the extra arm-elf function
-LDEMUL_FINISH=gld${EMULATION_NAME}_finish
diff --git a/ld/emultempl/astring.sed b/ld/emultempl/astring.sed
deleted file mode 100644
index 08bd8a6..0000000
--- a/ld/emultempl/astring.sed
+++ /dev/null
@@ -1,13 +0,0 @@
-s/["\\]/\\&/g
-s/$/\\n\\/
-1 s/^/"/
-25s/\\$/"/
-26s/^/"/
-50s/\\$/"/
-51s/^/"/
-75s/\\$/"/
-76s/^/"/
-100s/\\$/"/
-101s/^/"/
-$ s/$/n"/
-$ s/\\n"n"$/\\n"/
diff --git a/ld/emultempl/avrelf.em b/ld/emultempl/avrelf.em
deleted file mode 100644
index 90894a1..0000000
--- a/ld/emultempl/avrelf.em
+++ /dev/null
@@ -1,277 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2006, 2007, 2008, 2009
-# 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.
-
-
-# This file is sourced from elf32.em, and defines extra avr-elf specific
-# routines. It is used to generate the trampolines for the avr6 family
-# of devices where one needs to address the issue that it is not possible
-# to reach the whole program memory by using 16 bit pointers.
-
-fragment <<EOF
-
-#include "elf32-avr.h"
-#include "ldctor.h"
-
-/* The fake file and it's corresponding section meant to hold
- the linker stubs if needed. */
-
-static lang_input_statement_type *stub_file;
-static asection *avr_stub_section;
-
-/* Variables set by the command-line parameters and transfered
- to the bfd without use of global shared variables. */
-
-static bfd_boolean avr_no_stubs = FALSE;
-static bfd_boolean avr_debug_relax = FALSE;
-static bfd_boolean avr_debug_stubs = FALSE;
-static bfd_boolean avr_replace_call_ret_sequences = TRUE;
-static bfd_vma avr_pc_wrap_around = 0x10000000;
-
-/* Transfers information to the bfd frontend. */
-
-static void
-avr_elf_set_global_bfd_parameters (void)
-{
- elf32_avr_setup_params (& link_info,
- stub_file->the_bfd,
- avr_stub_section,
- avr_no_stubs,
- avr_debug_stubs,
- avr_debug_relax,
- avr_pc_wrap_around,
- avr_replace_call_ret_sequences);
-}
-
-
-/* Makes a conservative estimate of the trampoline section size that could
- be corrected later on. */
-
-static void
-avr_elf_${EMULATION_NAME}_before_allocation (void)
-{
- int ret;
-
- gld${EMULATION_NAME}_before_allocation ();
-
- /* We only need stubs for avr6, avrxmega6, and avrxmega7. */
- if (strcmp ("${EMULATION_NAME}","avr6")
- && strcmp ("${EMULATION_NAME}","avrxmega6")
- && strcmp ("${EMULATION_NAME}","avrxmega7") )
- avr_no_stubs = TRUE;
-
- avr_elf_set_global_bfd_parameters ();
-
- /* If generating a relocatable output file, then
- we don't have to generate the trampolines. */
- if (link_info.relocatable)
- avr_no_stubs = TRUE;
-
- if (avr_no_stubs)
- return;
-
- ret = elf32_avr_setup_section_lists (link_info.output_bfd, &link_info);
-
- if (ret < 0)
- einfo ("%X%P: can not setup the input section list: %E\n");
-
- if (ret <= 0)
- return;
-
- /* Call into the BFD backend to do the real "stub"-work. */
- if (! elf32_avr_size_stubs (link_info.output_bfd, &link_info, TRUE))
- einfo ("%X%P: can not size stub section: %E\n");
-}
-
-/* This is called before the input files are opened. We create a new
- fake input file to hold the stub section and generate the section itself. */
-
-static void
-avr_elf_create_output_section_statements (void)
-{
- flagword flags;
-
- stub_file = lang_add_input_file ("linker stubs",
- lang_input_file_is_fake_enum,
- NULL);
-
- stub_file->the_bfd = bfd_create ("linker stubs", link_info.output_bfd);
- if (stub_file->the_bfd == NULL
- || !bfd_set_arch_mach (stub_file->the_bfd,
- bfd_get_arch (link_info.output_bfd),
- bfd_get_mach (link_info.output_bfd)))
- {
- einfo ("%X%P: can not create stub BFD %E\n");
- return;
- }
-
- /* Now we add the stub section. */
-
- flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE
- | SEC_HAS_CONTENTS | SEC_RELOC | SEC_IN_MEMORY | SEC_KEEP);
- avr_stub_section = bfd_make_section_anyway_with_flags (stub_file->the_bfd,
- ".trampolines",
- flags);
- if (avr_stub_section == NULL)
- goto err_ret;
-
- avr_stub_section->alignment_power = 1;
-
- ldlang_add_file (stub_file);
-
- return;
-
- err_ret:
- einfo ("%X%P: can not make stub section: %E\n");
- return;
-}
-
-/* Re-calculates the size of the stubs so that we won't waste space. */
-
-static void
-avr_elf_after_allocation (void)
-{
- if (!avr_no_stubs && ! RELAXATION_ENABLED)
- {
- /* If relaxing, elf32_avr_size_stubs will be called from
- elf32_avr_relax_section. */
- if (!elf32_avr_size_stubs (link_info.output_bfd, &link_info, TRUE))
- einfo ("%X%P: can not size stub section: %E\n");
- }
-
- gld${EMULATION_NAME}_after_allocation ();
-
- /* Now build the linker stubs. */
- if (!avr_no_stubs)
- {
- if (!elf32_avr_build_stubs (&link_info))
- einfo ("%X%P: can not build stubs: %E\n");
- }
-}
-
-static void
-avr_elf_before_parse (void)
-{
- /* Don't create a demand-paged executable, since this feature isn't
- meaningful in AVR. */
- config.magic_demand_paged = FALSE;
-
- gld${EMULATION_NAME}_before_parse ();
-}
-
-EOF
-
-
-PARSE_AND_LIST_PROLOGUE='
-
-#define OPTION_NO_CALL_RET_REPLACEMENT 301
-#define OPTION_PMEM_WRAP_AROUND 302
-#define OPTION_NO_STUBS 303
-#define OPTION_DEBUG_STUBS 304
-#define OPTION_DEBUG_RELAX 305
-'
-
-PARSE_AND_LIST_LONGOPTS='
- { "no-call-ret-replacement", no_argument,
- NULL, OPTION_NO_CALL_RET_REPLACEMENT},
- { "pmem-wrap-around", required_argument,
- NULL, OPTION_PMEM_WRAP_AROUND},
- { "no-stubs", no_argument,
- NULL, OPTION_NO_STUBS},
- { "debug-stubs", no_argument,
- NULL, OPTION_DEBUG_STUBS},
- { "debug-relax", no_argument,
- NULL, OPTION_DEBUG_RELAX},
-'
-
-PARSE_AND_LIST_OPTIONS='
- fprintf (file, _(" --pmem-wrap-around=<val> "
- "Make the linker relaxation machine assume that a\n"
- " "
- " program counter wrap-around occures at address\n"
- " "
- " <val>. Supported values: 8k, 16k, 32k and 64k.\n"));
- fprintf (file, _(" --no-call-ret-replacement "
- "The relaxation machine normally will\n"
- " "
- " substitute two immediately following call/ret\n"
- " "
- " instructions by a single jump instruction.\n"
- " "
- " This option disables this optimization.\n"));
- fprintf (file, _(" --no-stubs "
- "If the linker detects to attempt to access\n"
- " "
- " an instruction beyond 128k by a reloc that\n"
- " "
- " is limited to 128k max, it inserts a jump\n"
- " "
- " stub. You can de-active this with this switch.\n"));
- fprintf (file, _(" --debug-stubs "
- "Used for debugging avr-ld.\n"));
- fprintf (file, _(" --debug-relax "
- "Used for debugging avr-ld.\n"));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
-
- case OPTION_PMEM_WRAP_AROUND:
- {
- /* This variable is defined in the bfd library. */
- if ((!strcmp (optarg,"32k")) || (!strcmp (optarg,"32K")))
- avr_pc_wrap_around = 32768;
- else if ((!strcmp (optarg,"8k")) || (!strcmp (optarg,"8K")))
- avr_pc_wrap_around = 8192;
- else if ((!strcmp (optarg,"16k")) || (!strcmp (optarg,"16K")))
- avr_pc_wrap_around = 16384;
- else if ((!strcmp (optarg,"64k")) || (!strcmp (optarg,"64K")))
- avr_pc_wrap_around = 0x10000;
- else
- return FALSE;
- }
- break;
-
- case OPTION_DEBUG_STUBS:
- avr_debug_stubs = TRUE;
- break;
-
- case OPTION_DEBUG_RELAX:
- avr_debug_relax = TRUE;
- break;
-
- case OPTION_NO_STUBS:
- avr_no_stubs = TRUE;
- break;
-
- case OPTION_NO_CALL_RET_REPLACEMENT:
- {
- /* This variable is defined in the bfd library. */
- avr_replace_call_ret_sequences = FALSE;
- }
- break;
-'
-
-#
-# Put these extra avr-elf routines in ld_${EMULATION_NAME}_emulation
-#
-LDEMUL_BEFORE_PARSE=avr_elf_before_parse
-LDEMUL_BEFORE_ALLOCATION=avr_elf_${EMULATION_NAME}_before_allocation
-LDEMUL_AFTER_ALLOCATION=avr_elf_after_allocation
-LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=avr_elf_create_output_section_statements
diff --git a/ld/emultempl/beos.em b/ld/emultempl/beos.em
deleted file mode 100644
index f59e000..0000000
--- a/ld/emultempl/beos.em
+++ /dev/null
@@ -1,783 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-if [ -z "$MACHINE" ]; then
- OUTPUT_ARCH=${ARCH}
-else
- OUTPUT_ARCH=${ARCH}:${MACHINE}
-fi
-fragment <<EOF
-/* This file is part of GLD, the Gnu Linker.
- Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. */
-
-
-/* For WINDOWS_NT */
-/* The original file generated returned different default scripts depending
- on whether certain switches were set, but these switches pertain to the
- Linux system and that particular version of coff. In the NT case, we
- only determine if the subsystem is console or windows in order to select
- the correct entry point by default. */
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "bfdlink.h"
-#include "getopt.h"
-#include "libiberty.h"
-#include "filenames.h"
-#include "ld.h"
-#include "ldmain.h"
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-#include <ldgram.h>
-#include "ldlex.h"
-#include "ldmisc.h"
-#include "ldctor.h"
-#include "coff/internal.h"
-#include "../bfd/libcoff.h"
-
-#define TARGET_IS_${EMULATION_NAME}
-
-static struct internal_extra_pe_aouthdr pe;
-static int dll;
-
-extern const char *output_filename;
-
-static void
-gld_${EMULATION_NAME}_before_parse (void)
-{
- ldfile_set_output_arch ("${OUTPUT_ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`);
- output_filename = "a.exe";
-}
-
-/* PE format extra command line options. */
-
-/* Used for setting flags in the PE header. */
-#define OPTION_BASE_FILE (300 + 1)
-#define OPTION_DLL (OPTION_BASE_FILE + 1)
-#define OPTION_FILE_ALIGNMENT (OPTION_DLL + 1)
-#define OPTION_IMAGE_BASE (OPTION_FILE_ALIGNMENT + 1)
-#define OPTION_MAJOR_IMAGE_VERSION (OPTION_IMAGE_BASE + 1)
-#define OPTION_MAJOR_OS_VERSION (OPTION_MAJOR_IMAGE_VERSION + 1)
-#define OPTION_MAJOR_SUBSYSTEM_VERSION (OPTION_MAJOR_OS_VERSION + 1)
-#define OPTION_MINOR_IMAGE_VERSION (OPTION_MAJOR_SUBSYSTEM_VERSION + 1)
-#define OPTION_MINOR_OS_VERSION (OPTION_MINOR_IMAGE_VERSION + 1)
-#define OPTION_MINOR_SUBSYSTEM_VERSION (OPTION_MINOR_OS_VERSION + 1)
-#define OPTION_SECTION_ALIGNMENT (OPTION_MINOR_SUBSYSTEM_VERSION + 1)
-#define OPTION_STACK (OPTION_SECTION_ALIGNMENT + 1)
-#define OPTION_SUBSYSTEM (OPTION_STACK + 1)
-#define OPTION_HEAP (OPTION_SUBSYSTEM + 1)
-
-static void
-gld${EMULATION_NAME}_add_options
- (int ns ATTRIBUTE_UNUSED, char **shortopts ATTRIBUTE_UNUSED, int nl,
- struct option **longopts, int nrl ATTRIBUTE_UNUSED,
- struct option **really_longopts ATTRIBUTE_UNUSED)
-{
- static const struct option xtra_long[] = {
- /* PE options */
- {"base-file", required_argument, NULL, OPTION_BASE_FILE},
- {"dll", no_argument, NULL, OPTION_DLL},
- {"file-alignment", required_argument, NULL, OPTION_FILE_ALIGNMENT},
- {"heap", required_argument, NULL, OPTION_HEAP},
- {"image-base", required_argument, NULL, OPTION_IMAGE_BASE},
- {"major-image-version", required_argument, NULL, OPTION_MAJOR_IMAGE_VERSION},
- {"major-os-version", required_argument, NULL, OPTION_MAJOR_OS_VERSION},
- {"major-subsystem-version", required_argument, NULL, OPTION_MAJOR_SUBSYSTEM_VERSION},
- {"minor-image-version", required_argument, NULL, OPTION_MINOR_IMAGE_VERSION},
- {"minor-os-version", required_argument, NULL, OPTION_MINOR_OS_VERSION},
- {"minor-subsystem-version", required_argument, NULL, OPTION_MINOR_SUBSYSTEM_VERSION},
- {"section-alignment", required_argument, NULL, OPTION_SECTION_ALIGNMENT},
- {"stack", required_argument, NULL, OPTION_STACK},
- {"subsystem", required_argument, NULL, OPTION_SUBSYSTEM},
- {NULL, no_argument, NULL, 0}
- };
-
- *longopts = (struct option *)
- xrealloc (*longopts, nl * sizeof (struct option) + sizeof (xtra_long));
- memcpy (*longopts + nl, &xtra_long, sizeof (xtra_long));
-}
-
-
-/* PE/WIN32; added routines to get the subsystem type, heap and/or stack
- parameters which may be input from the command line */
-
-typedef struct {
- void *ptr;
- int size;
- int value;
- char *symbol;
- int inited;
-} definfo;
-
-#define D(field,symbol,def) {&pe.field,sizeof(pe.field), def, symbol,0}
-
-static definfo init[] =
-{
- /* imagebase must be first */
-#define IMAGEBASEOFF 0
- D(ImageBase,"__image_base__", BEOS_EXE_IMAGE_BASE),
-#define DLLOFF 1
- {&dll, sizeof(dll), 0, "__dll__", 0},
- D(SectionAlignment,"__section_alignment__", PE_DEF_SECTION_ALIGNMENT),
- D(FileAlignment,"__file_alignment__", PE_DEF_FILE_ALIGNMENT),
- D(MajorOperatingSystemVersion,"__major_os_version__", 4),
- D(MinorOperatingSystemVersion,"__minor_os_version__", 0),
- D(MajorImageVersion,"__major_image_version__", 1),
- D(MinorImageVersion,"__minor_image_version__", 0),
- D(MajorSubsystemVersion,"__major_subsystem_version__", 4),
- D(MinorSubsystemVersion,"__minor_subsystem_version__", 0),
- D(Subsystem,"__subsystem__", 3),
- D(SizeOfStackReserve,"__size_of_stack_reserve__", 0x2000000),
- D(SizeOfStackCommit,"__size_of_stack_commit__", 0x1000),
- D(SizeOfHeapReserve,"__size_of_heap_reserve__", 0x100000),
- D(SizeOfHeapCommit,"__size_of_heap_commit__", 0x1000),
- D(LoaderFlags,"__loader_flags__", 0x0),
- { NULL, 0, 0, NULL, 0 }
-};
-
-
-static void
-set_pe_name (char *name, long val)
-{
- int i;
- /* Find the name and set it. */
- for (i = 0; init[i].ptr; i++)
- {
- if (strcmp (name, init[i].symbol) == 0)
- {
- init[i].value = val;
- init[i].inited = 1;
- return;
- }
- }
- abort();
-}
-
-
-static void
-set_pe_subsystem (void)
-{
- const char *sver;
- int len;
- int i;
- static const struct
- {
- const char *name;
- const int value;
- const char *entry;
- }
- v[] =
- {
- { "native", 1, "_NtProcessStartup" },
- { "windows", 2, "_WinMainCRTStartup" },
- { "wwindows", 2, "_wWinMainCRTStartup" },
- { "console", 3, "_mainCRTStartup" },
- { "wconsole", 3, "_wmainCRTStartup" },
- { "posix", 7, "___PosixProcessStartup"},
- { 0, 0, 0 }
- };
-
- sver = strchr (optarg, ':');
- if (sver == NULL)
- len = strlen (optarg);
- else
- {
- char *end;
-
- len = sver - optarg;
- set_pe_name ("__major_subsystem_version__",
- strtoul (sver + 1, &end, 0));
- if (*end == '.')
- set_pe_name ("__minor_subsystem_version__",
- strtoul (end + 1, &end, 0));
- if (*end != '\0')
- einfo ("%P: warning: bad version number in -subsystem option\n");
- }
-
- for (i = 0; v[i].name; i++)
- {
- if (strncmp (optarg, v[i].name, len) == 0
- && v[i].name[len] == '\0')
- {
- set_pe_name ("__subsystem__", v[i].value);
-
- /* If the subsystem is windows, we use a different entry
- point. */
- lang_default_entry (v[i].entry);
-
- return;
- }
- }
- einfo ("%P%F: invalid subsystem type %s\n", optarg);
-}
-
-
-static void
-set_pe_value (char *name)
-{
- char *end;
- set_pe_name (name, strtoul (optarg, &end, 0));
- if (end == optarg)
- {
- einfo ("%P%F: invalid hex number for PE parameter '%s'\n", optarg);
- }
-
- optarg = end;
-}
-
-static void
-set_pe_stack_heap (char *resname, char *comname)
-{
- set_pe_value (resname);
- if (*optarg == ',')
- {
- optarg++;
- set_pe_value (comname);
- }
- else if (*optarg)
- {
- einfo ("%P%F: strange hex info for PE parameter '%s'\n", optarg);
- }
-}
-
-
-static bfd_boolean
-gld${EMULATION_NAME}_handle_option (int optc)
-{
- switch (optc)
- {
- default:
- return FALSE;
-
- case OPTION_BASE_FILE:
- link_info.base_file = fopen (optarg, FOPEN_WB);
- if (link_info.base_file == NULL)
- einfo (_("%F%P: cannot open base file %s\n"), optarg);
- break;
-
- /* PE options */
- case OPTION_HEAP:
- set_pe_stack_heap ("__size_of_heap_reserve__", "__size_of_heap_commit__");
- break;
- case OPTION_STACK:
- set_pe_stack_heap ("__size_of_stack_reserve__", "__size_of_stack_commit__");
- break;
- case OPTION_SUBSYSTEM:
- set_pe_subsystem ();
- break;
- case OPTION_MAJOR_OS_VERSION:
- set_pe_value ("__major_os_version__");
- break;
- case OPTION_MINOR_OS_VERSION:
- set_pe_value ("__minor_os_version__");
- break;
- case OPTION_MAJOR_SUBSYSTEM_VERSION:
- set_pe_value ("__major_subsystem_version__");
- break;
- case OPTION_MINOR_SUBSYSTEM_VERSION:
- set_pe_value ("__minor_subsystem_version__");
- break;
- case OPTION_MAJOR_IMAGE_VERSION:
- set_pe_value ("__major_image_version__");
- break;
- case OPTION_MINOR_IMAGE_VERSION:
- set_pe_value ("__minor_image_version__");
- break;
- case OPTION_FILE_ALIGNMENT:
- set_pe_value ("__file_alignment__");
- break;
- case OPTION_SECTION_ALIGNMENT:
- set_pe_value ("__section_alignment__");
- break;
- case OPTION_DLL:
- set_pe_name ("__dll__", 1);
- break;
- case OPTION_IMAGE_BASE:
- set_pe_value ("__image_base__");
- break;
- }
- return TRUE;
-}
-
-/* Assign values to the special symbols before the linker script is
- read. */
-
-static void
-gld_${EMULATION_NAME}_set_symbols (void)
-{
- /* Run through and invent symbols for all the
- names and insert the defaults. */
- int j;
-
- if (!init[IMAGEBASEOFF].inited)
- {
- if (link_info.relocatable)
- init[IMAGEBASEOFF].value = 0;
- else if (init[DLLOFF].value)
- init[IMAGEBASEOFF].value = BEOS_DLL_IMAGE_BASE;
- else
- init[IMAGEBASEOFF].value = BEOS_EXE_IMAGE_BASE;
- }
-
- /* Don't do any symbol assignments if this is a relocatable link. */
- if (link_info.relocatable)
- return;
-
- /* Glue the assignments into the abs section */
- push_stat_ptr (&abs_output_section->children);
-
- for (j = 0; init[j].ptr; j++)
- {
- long val = init[j].value;
- lang_add_assignment (exp_assign (init[j].symbol, exp_intop (val),
- FALSE));
- if (init[j].size == sizeof(short))
- *(short *)init[j].ptr = val;
- else if (init[j].size == sizeof(int))
- *(int *)init[j].ptr = val;
- else if (init[j].size == sizeof(long))
- *(long *)init[j].ptr = val;
- /* This might be a long long or other special type. */
- else if (init[j].size == sizeof(bfd_vma))
- *(bfd_vma *)init[j].ptr = val;
- else abort();
- }
- /* Restore the pointer. */
- pop_stat_ptr ();
-
- if (pe.FileAlignment >
- pe.SectionAlignment)
- {
- einfo ("%P: warning, file alignment > section alignment.\n");
- }
-}
-
-static void
-gld_${EMULATION_NAME}_after_open (void)
-{
- after_open_default ();
-
- /* Pass the wacky PE command line options into the output bfd.
- FIXME: This should be done via a function, rather than by
- including an internal BFD header. */
- if (!coff_data(link_info.output_bfd)->pe)
- {
- einfo ("%F%P: PE operations on non PE file.\n");
- }
-
- pe_data(link_info.output_bfd)->pe_opthdr = pe;
- pe_data(link_info.output_bfd)->dll = init[DLLOFF].value;
-
-}
-
-/* Callback functions for qsort in sort_sections. */
-
-static int
-sort_by_file_name (const void *a, const void *b)
-{
- const lang_statement_union_type *const *ra = a;
- const lang_statement_union_type *const *rb = b;
- int i, a_sec, b_sec;
-
- i = filename_cmp ((*ra)->input_section.section->owner->my_archive->filename,
- (*rb)->input_section.section->owner->my_archive->filename);
- if (i != 0)
- return i;
-
- i = filename_cmp ((*ra)->input_section.section->owner->filename,
- (*rb)->input_section.section->owner->filename);
- if (i != 0)
- return i;
- /* the tail idata4/5 are the only ones without relocs to an
- idata$6 section unless we are importing by ordinal,
- so sort them to last to terminate the IAT
- and HNT properly. if no reloc this one is import by ordinal
- so we have to sort by section contents */
-
- if ( ((*ra)->input_section.section->reloc_count + (*rb)->input_section.section->reloc_count) )
- {
- i = (((*ra)->input_section.section->reloc_count >
- (*rb)->input_section.section->reloc_count) ? -1 : 0);
- if ( i != 0)
- return i;
-
- return (((*ra)->input_section.section->reloc_count >
- (*rb)->input_section.section->reloc_count) ? 0 : 1);
- }
- else
- {
- if ( (strcmp( (*ra)->input_section.section->name, ".idata$6") == 0) )
- return 0; /* don't sort .idata$6 or .idata$7 FIXME dlltool eliminate .idata$7 */
-
- if (! bfd_get_section_contents ((*ra)->input_section.section->owner,
- (*ra)->input_section.section, &a_sec, (file_ptr) 0, (bfd_size_type)sizeof(a_sec)))
- einfo ("%F%B: Can't read contents of section .idata: %E\n",
- (*ra)->input_section.section->owner);
-
- if (! bfd_get_section_contents ((*rb)->input_section.section->owner,
- (*rb)->input_section.section, &b_sec, (file_ptr) 0, (bfd_size_type)sizeof(b_sec) ))
- einfo ("%F%B: Can't read contents of section .idata: %E\n",
- (*rb)->input_section.section->owner);
-
- i = ((a_sec < b_sec) ? -1 : 0);
- if ( i != 0)
- return i;
- return ((a_sec < b_sec) ? 0 : 1);
- }
-return 0;
-}
-
-static int
-sort_by_section_name (const void *a, const void *b)
-{
- const lang_statement_union_type *const *ra = a;
- const lang_statement_union_type *const *rb = b;
- int i;
- i = strcmp ((*ra)->input_section.section->name,
- (*rb)->input_section.section->name);
- /* This is a hack to make .stab and .stabstr last, so we don't have
- to fix strip/objcopy for .reloc sections.
- FIXME stripping images with a .rsrc section still needs to be fixed. */
- if (i != 0)
- {
- if ((CONST_STRNEQ ((*ra)->input_section.section->name, ".stab"))
- && (! CONST_STRNEQ ((*rb)->input_section.section->name, ".stab")))
- return 1;
- }
- return i;
-}
-
-/* Subroutine of sort_sections to a contiguous subset of a list of sections.
- NEXT_AFTER is the element after the last one to sort.
- The result is a pointer to the last element's "next" pointer. */
-
-static lang_statement_union_type **
-sort_sections_1 (lang_statement_union_type **startptr,
- lang_statement_union_type *next_after,
- int count,
- int (*sort_func) (const void *, const void *))
-{
- lang_statement_union_type **vec;
- lang_statement_union_type *p;
- int i;
- lang_statement_union_type **ret;
-
- if (count == 0)
- return startptr;
-
- vec = ((lang_statement_union_type **)
- xmalloc (count * sizeof (lang_statement_union_type *)));
-
- for (p = *startptr, i = 0; i < count; i++, p = p->header.next)
- vec[i] = p;
-
- qsort (vec, count, sizeof (vec[0]), sort_func);
-
- /* Fill in the next pointers again. */
- *startptr = vec[0];
- for (i = 0; i < count - 1; i++)
- vec[i]->header.next = vec[i + 1];
- vec[i]->header.next = next_after;
- ret = &vec[i]->header.next;
- free (vec);
- return ret;
-}
-
-/* Sort the .idata\$foo input sections of archives into filename order.
- The reason is so dlltool can arrange to have the pe dll import information
- generated correctly - the head of the list goes into dh.o, the tail into
- dt.o, and the guts into ds[nnnn].o. Note that this is only needed for the
- .idata section.
- FIXME: This may no longer be necessary with grouped sections. Instead of
- sorting on dh.o, ds[nnnn].o, dt.o, one could, for example, have dh.o use
- .idata\$4h, have ds[nnnn].o use .idata\$4s[nnnn], and have dt.o use .idata\$4t.
- This would have to be elaborated upon to handle multiple dll's
- [assuming such an eloboration is possible of course].
-
- We also sort sections in '\$' wild statements. These are created by the
- place_orphans routine to implement grouped sections. */
-
-static void
-sort_sections (lang_statement_union_type *s)
-{
- for (; s ; s = s->header.next)
- switch (s->header.type)
- {
- case lang_output_section_statement_enum:
- sort_sections (s->output_section_statement.children.head);
- break;
- case lang_wild_statement_enum:
- {
- lang_statement_union_type **p = &s->wild_statement.children.head;
- struct wildcard_list *sec;
-
- for (sec = s->wild_statement.section_list; sec; sec = sec->next)
- {
- /* Is this the .idata section? */
- if (sec->spec.name != NULL
- && CONST_STRNEQ (sec->spec.name, ".idata"))
- {
- /* Sort the children. We want to sort any objects in
- the same archive. In order to handle the case of
- including a single archive multiple times, we sort
- all the children by archive name and then by object
- name. After sorting them, we re-thread the pointer
- chain. */
-
- while (*p)
- {
- lang_statement_union_type *start = *p;
- if (start->header.type != lang_input_section_enum
- || !start->input_section.section->owner->my_archive)
- p = &(start->header.next);
- else
- {
- lang_statement_union_type *end;
- int count;
-
- for (end = start, count = 0;
- end && (end->header.type
- == lang_input_section_enum);
- end = end->header.next)
- count++;
-
- p = sort_sections_1 (p, end, count,
- sort_by_file_name);
- }
- }
- break;
- }
-
- /* If this is a collection of grouped sections, sort them.
- The linker script must explicitly mention "*(.foo\$)" or
- "*(.foo\$*)". Don't sort them if \$ is not the last
- character (not sure if this is really useful, but it
- allows explicitly mentioning some \$ sections and letting
- the linker handle the rest). */
- if (sec->spec.name != NULL)
- {
- char *q = strchr (sec->spec.name, '\$');
-
- if (q != NULL
- && (q[1] == '\0'
- || (q[1] == '*' && q[2] == '\0')))
- {
- lang_statement_union_type *end;
- int count;
-
- for (end = *p, count = 0; end; end = end->header.next)
- {
- if (end->header.type != lang_input_section_enum)
- abort ();
- count++;
- }
- (void) sort_sections_1 (p, end, count,
- sort_by_section_name);
- }
- break;
- }
- }
- }
- break;
- default:
- break;
- }
-}
-
-static void
-gld_${EMULATION_NAME}_before_allocation (void)
-{
-#ifdef TARGET_IS_ppcpe
- /* Here we rummage through the found bfds to collect toc information */
- {
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- if (!ppc_process_before_allocation(is->the_bfd, &link_info))
- {
- einfo("Errors encountered processing file %s\n", is->filename);
- }
- }
- }
-
- /* We have seen it all. Allocate it, and carry on */
- ppc_allocate_toc_section (&link_info);
-#else
-#ifdef TARGET_IS_armpe
- /* FIXME: we should be able to set the size of the interworking stub
- section.
-
- Here we rummage through the found bfds to collect glue
- information. FIXME: should this be based on a command line
- option? krk@cygnus.com */
- {
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- if (!arm_process_before_allocation (is->the_bfd, & link_info))
- {
- einfo ("Errors encountered processing file %s", is->filename);
- }
- }
- }
-
- /* We have seen it all. Allocate it, and carry on */
- arm_allocate_interworking_sections (& link_info);
-#endif /* TARGET_IS_armpe */
-#endif /* TARGET_IS_ppcpe */
-
- sort_sections (stat_ptr->head);
-
- before_allocation_default ();
-}
-
-/* Place an orphan section. We use this to put sections with a '\$' in them
- into the right place. Any section with a '\$' in them (e.g. .text\$foo)
- gets mapped to the output section with everything from the '\$' on stripped
- (e.g. .text).
- See the Microsoft Portable Executable and Common Object File Format
- Specification 4.1, section 4.2, Grouped Sections.
-
- FIXME: This is now handled by the linker script using wildcards,
- but I'm leaving this here in case we want to enable it for sections
- which are not mentioned in the linker script. */
-
-static lang_output_section_statement_type *
-gld${EMULATION_NAME}_place_orphan (asection *s,
- const char *secname,
- int constraint)
-{
- char *output_secname, *ps;
- lang_output_section_statement_type *os;
- lang_statement_union_type *l;
-
- if ((s->flags & SEC_ALLOC) == 0)
- return NULL;
-
- /* Don't process grouped sections unless doing a final link.
- If they're marked as COMDAT sections, we don't want .text\$foo to
- end up in .text and then have .text disappear because it's marked
- link-once-discard. */
- if (link_info.relocatable)
- return NULL;
-
- /* Everything from the '\$' on gets deleted so don't allow '\$' as the
- first character. */
- if (*secname == '\$')
- einfo ("%P%F: section %s has '\$' as first character\n", secname);
- if (strchr (secname + 1, '\$') == NULL)
- return NULL;
-
- /* Look up the output section. The Microsoft specs say sections names in
- image files never contain a '\$'. Fortunately, lang_..._lookup creates
- the section if it doesn't exist. */
- output_secname = xstrdup (secname);
- ps = strchr (output_secname + 1, '\$');
- *ps = 0;
- os = lang_output_section_statement_lookup (output_secname, constraint, TRUE);
-
- /* Find the '\$' wild statement for this section. We currently require the
- linker script to explicitly mention "*(.foo\$)".
- FIXME: ppcpe.sc has .CRT\$foo in the .rdata section. According to the
- Microsoft docs this isn't correct so it's not (currently) handled. */
-
- ps[0] = '\$';
- ps[1] = 0;
- for (l = os->children.head; l; l = l->header.next)
- if (l->header.type == lang_wild_statement_enum)
- {
- struct wildcard_list *sec;
-
- for (sec = l->wild_statement.section_list; sec; sec = sec->next)
- if (sec->spec.name && strcmp (sec->spec.name, output_secname) == 0)
- break;
- if (sec)
- break;
- }
- ps[0] = 0;
- if (l == NULL)
- einfo ("%P%F: *(%s\$) missing from linker script\n", output_secname);
-
- /* Link the input section in and we're done for now.
- The sections still have to be sorted, but that has to wait until
- all such sections have been processed by us. The sorting is done by
- sort_sections. */
- lang_add_section (&l->wild_statement.children, s, NULL, os);
-
- return os;
-}
-
-static char *
-gld_${EMULATION_NAME}_get_script (int *isfile)
-EOF
-# Scripts compiled in.
-# sed commands to quote an ld script as a C string.
-sc="-f stringify.sed"
-
-fragment <<EOF
-{
- *isfile = 0;
-
- if (link_info.relocatable && config.build_constructors)
- return
-EOF
-sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c
-echo ' ; else return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c
-echo '; }' >> e${EMULATION_NAME}.c
-
-fragment <<EOF
-
-
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
-{
- gld_${EMULATION_NAME}_before_parse,
- syslib_default,
- hll_default,
- after_parse_default,
- gld_${EMULATION_NAME}_after_open,
- after_allocation_default,
- set_output_arch_default,
- ldemul_default_target,
- gld_${EMULATION_NAME}_before_allocation,
- gld_${EMULATION_NAME}_get_script,
- "${EMULATION_NAME}",
- "${OUTPUT_FORMAT}",
- finish_default,
- NULL, /* create output section statements */
- NULL, /* open dynamic archive */
- gld${EMULATION_NAME}_place_orphan,
- gld_${EMULATION_NAME}_set_symbols,
- NULL, /* parse_args */
- gld${EMULATION_NAME}_add_options,
- gld${EMULATION_NAME}_handle_option,
- NULL, /* unrecognized file */
- NULL, /* list options */
- NULL, /* recognized file */
- NULL, /* find_potential_libraries */
- NULL /* new_vers_pattern */
-};
-EOF
diff --git a/ld/emultempl/bfin.em b/ld/emultempl/bfin.em
deleted file mode 100644
index ca57ac1..0000000
--- a/ld/emultempl/bfin.em
+++ /dev/null
@@ -1,65 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2010 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.
-#
-
-# This file is sourced from elf32.em, and defines extra bfin-elf
-# specific routines.
-#
-fragment <<EOF
-
-#include "elf-bfd.h"
-
-/* Whether to put code in Blackfin L1 SRAM. */
-extern bfd_boolean elf32_bfin_code_in_l1;
-
-/* Whether to put (writable) data in Blackfin L1 SRAM. */
-extern bfd_boolean elf32_bfin_data_in_l1;
-
-EOF
-
-
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE='
-#define OPTION_CODE_IN_L1 300
-#define OPTION_DATA_IN_L1 301
-'
-
-PARSE_AND_LIST_LONGOPTS='
- { "code-in-l1", no_argument, NULL, OPTION_CODE_IN_L1 },
- { "data-in-l1", no_argument, NULL, OPTION_DATA_IN_L1 },
-'
-
-PARSE_AND_LIST_OPTIONS='
- fprintf (file, _("\
- --code-in-l1 Put code in L1.\n\
- --data-in-l1 Put data in L1.\n"
- ));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
- case OPTION_CODE_IN_L1:
- elf32_bfin_code_in_l1 = TRUE;
- break;
- case OPTION_DATA_IN_L1:
- elf32_bfin_data_in_l1 = TRUE;
- break;
-'
diff --git a/ld/emultempl/cr16elf.em b/ld/emultempl/cr16elf.em
deleted file mode 100644
index f76b95e..0000000
--- a/ld/emultempl/cr16elf.em
+++ /dev/null
@@ -1,183 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2007, 2008, 2009 Free Software Foundation, Inc.
-# Contributed by M R Swami Reddy <MR.Swami.Reddy@nsc.com>
-#
-# 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.
-#
-
-# This file is sourced from elf32.em, and defines extra cr16-elf
-# specific routines.
-#
-fragment <<EOF
-
-#include "ldctor.h"
-
-static void check_sections (bfd *, asection *, void *);
-
-
-/* This function is run after all the input files have been opened. */
-
-static void
-cr16_elf_after_open (void)
-{
- /* Call the standard elf routine. */
- gld${EMULATION_NAME}_after_open ();
-
- if (command_line.embedded_relocs
- && (! link_info.relocatable))
- {
- bfd *abfd;
-
- /* In the embedded relocs mode we create a .emreloc section for each
- input file with a nonzero .data section. The BFD backend will fill in
- these sections with magic numbers which can be used to relocate the
- data section at run time. */
- for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next)
- {
- asection *datasec;
-
- /* As first-order business, make sure that each input BFD is either
- COFF or ELF. We need to call a special BFD backend function to
- generate the embedded relocs, and we have such functions only for
- COFF and ELF. */
- if (bfd_get_flavour (abfd) != bfd_target_coff_flavour
- && bfd_get_flavour (abfd) != bfd_target_elf_flavour)
- einfo ("%F%B: all input objects must be COFF or ELF for --embedded-relocs\n");
-
- datasec = bfd_get_section_by_name (abfd, ".data.rel");
-
- /* Note that we assume that the reloc_count field has already
- been set up. We could call bfd_get_reloc_upper_bound, but
- that returns the size of a memory buffer rather than a reloc
- count. We do not want to call bfd_canonicalize_reloc,
- because although it would always work it would force us to
- read in the relocs into BFD canonical form, which would waste
- a significant amount of time and memory. */
- if (datasec != NULL && datasec->reloc_count > 0)
- {
- asection *relsec;
-
- relsec = bfd_make_section (abfd, ".emreloc");
- if (relsec == NULL
- || ! bfd_set_section_flags (abfd, relsec,
- (SEC_ALLOC
- | SEC_LOAD
- | SEC_HAS_CONTENTS
- | SEC_IN_MEMORY))
- || ! bfd_set_section_alignment (abfd, relsec, 2)
- || ! bfd_set_section_size (abfd, relsec,
- datasec->reloc_count * 8))
- einfo ("%F%B: can not create .emreloc section: %E\n");
- }
-
- /* Double check that all other data sections are empty, as is
- required for embedded PIC code. */
- bfd_map_over_sections (abfd, check_sections, datasec);
- }
- }
-}
-
-/* Check that of the data sections, only the .data section has
- relocs. This is called via bfd_map_over_sections. */
-
-static void
-check_sections (bfd *abfd, asection *sec, void *datasec)
-{
- if ((strncmp (bfd_get_section_name (abfd, sec), ".data.rel", 9) == 0)
- && sec != datasec
- && sec->reloc_count == 0 )
- einfo ("%B%X: section %s has relocs; can not use --embedded-relocs\n",
- abfd, bfd_get_section_name (abfd, sec));
-}
-
-static void
-cr16elf_after_parse (void)
-{
- /* Always behave as if called with --sort-common command line
- option.
- This is to emulate the CRTools' method of keeping variables
- of different alignment in separate sections. */
- config.sort_common = TRUE;
-
- /* Don't create a demand-paged executable, since this feature isn't
- meaninful in CR16 embedded systems. Moreover, when magic_demand_paged
- is true the link sometimes fails. */
- config.magic_demand_paged = FALSE;
-
- after_parse_default ();
-}
-
-/* This is called after the sections have been attached to output
- sections, but before any sizes or addresses have been set. */
-
-static void
-cr16elf_before_allocation (void)
-{
- /* Call the default first. */
- gld${EMULATION_NAME}_before_allocation ();
-
- if (command_line.embedded_relocs
- && (! link_info.relocatable))
- {
-
- bfd *abfd;
-
- /* If we are generating embedded relocs, call a special BFD backend
- routine to do the work. */
- for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next)
- {
- asection *datasec, *relsec;
- char *errmsg;
-
- datasec = bfd_get_section_by_name (abfd, ".data.rel");
-
- if (datasec == NULL || datasec->reloc_count == 0)
- continue;
-
- relsec = bfd_get_section_by_name (abfd, ".emreloc");
- ASSERT (relsec != NULL);
-
- if (! bfd_cr16_elf32_create_embedded_relocs (abfd, &link_info,
- datasec, relsec,
- &errmsg))
- {
- if (errmsg == NULL)
- einfo ("%B%X: can not create runtime reloc information: %E\n",
- abfd);
- else
- einfo ("%X%B: can not create runtime reloc information: %s\n",
- abfd, errmsg);
- }
- }
- }
-
- /* Enable relaxation by default if the "--no-relax" option was not
- specified. This is done here instead of in the before_parse hook
- because there is a check in main() to prohibit use of --relax and
- -r together. */
- if (RELAXATION_DISABLED_BY_DEFAULT)
- ENABLE_RELAXATION;
-}
-
-EOF
-
-# Put these extra cr16-elf routines in ld_${EMULATION_NAME}_emulation
-#
-LDEMUL_AFTER_OPEN=cr16_elf_after_open
-LDEMUL_AFTER_PARSE=cr16elf_after_parse
-LDEMUL_BEFORE_ALLOCATION=cr16elf_before_allocation
diff --git a/ld/emultempl/crxelf.em b/ld/emultempl/crxelf.em
deleted file mode 100644
index c6d5a8d..0000000
--- a/ld/emultempl/crxelf.em
+++ /dev/null
@@ -1,71 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2004, 2005, 2007, 2009
-# 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.
-#
-
-# This file is sourced from elf32.em, and defines extra crx-elf
-# specific routines.
-#
-fragment <<EOF
-
-#include "ldctor.h"
-
-static void crxelf_after_parse (void);
-
-static void
-crxelf_after_parse (void)
-{
- /* Always behave as if called with --sort-common command line
- option.
- This is to emulate the CRTools' method of keeping variables
- of different alignment in separate sections. */
- config.sort_common = TRUE;
-
- /* Don't create a demand-paged executable, since this feature isn't
- meaninful in CRX embedded systems. Moreover, when magic_demand_paged
- is true the link sometimes fails. */
- config.magic_demand_paged = FALSE;
-
- after_parse_default ();
-}
-
-/* This is called after the sections have been attached to output
- sections, but before any sizes or addresses have been set. */
-
-static void
-crxelf_before_allocation (void)
-{
- /* Call the default first. */
- gld${EMULATION_NAME}_before_allocation ();
-
- /* Enable relaxation by default if the "--no-relax" option was not
- specified. This is done here instead of in the before_parse hook
- because there is a check in main() to prohibit use of --relax and
- -r together. */
- if (RELAXATION_DISABLED_BY_DEFAULT)
- ENABLE_RELAXATION;
-}
-
-EOF
-
-# Put these extra crx-elf routines in ld_${EMULATION_NAME}_emulation
-#
-LDEMUL_AFTER_PARSE=crxelf_after_parse
-LDEMUL_BEFORE_ALLOCATION=crxelf_before_allocation
diff --git a/ld/emultempl/elf-generic.em b/ld/emultempl/elf-generic.em
deleted file mode 100644
index 2c850f1..0000000
--- a/ld/emultempl/elf-generic.em
+++ /dev/null
@@ -1,71 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2006, 2007, 2008, 2009 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.
-#
-
-# This file is sourced from elf32.em and from ELF targets that use
-# generic.em.
-#
-fragment <<EOF
-
-static void
-gld${EMULATION_NAME}_map_segments (bfd_boolean need_layout)
-{
- int tries = 10;
-
- do
- {
- lang_relax_sections (need_layout);
- need_layout = FALSE;
-
- if (link_info.output_bfd->xvec->flavour == bfd_target_elf_flavour
- && !link_info.relocatable)
- {
- bfd_size_type phdr_size;
-
- phdr_size = elf_program_header_size (link_info.output_bfd);
- /* If we don't have user supplied phdrs, throw away any
- previous linker generated program headers. */
- if (lang_phdr_list == NULL)
- elf_seg_map (link_info.output_bfd) = NULL;
- if (!_bfd_elf_map_sections_to_segments (link_info.output_bfd,
- &link_info))
- einfo ("%F%P: map sections to segments failed: %E\n");
-
- if (phdr_size != elf_program_header_size (link_info.output_bfd))
- {
- if (tries > 6)
- /* The first few times we allow any change to
- phdr_size . */
- need_layout = TRUE;
- else if (phdr_size
- < elf_program_header_size (link_info.output_bfd))
- /* After that we only allow the size to grow. */
- need_layout = TRUE;
- else
- elf_program_header_size (link_info.output_bfd) = phdr_size;
- }
- }
- }
- while (need_layout && --tries);
-
- if (tries == 0)
- einfo (_("%P%F: looping in map_segments"));
-}
-EOF
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
deleted file mode 100644
index 581d9db..0000000
--- a/ld/emultempl/elf32.em
+++ /dev/null
@@ -1,2531 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-# This file is now misnamed, because it supports both 32 bit and 64 bit
-# ELF emulations.
-test -z "${ELFSIZE}" && ELFSIZE=32
-if [ -z "$MACHINE" ]; then
- OUTPUT_ARCH=${ARCH}
-else
- OUTPUT_ARCH=${ARCH}:${MACHINE}
-fi
-fragment <<EOF
-/* This file is is generated by a shell script. DO NOT EDIT! */
-
-/* ${ELFSIZE} bit ELF emulation code for ${EMULATION_NAME}
- Copyright 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
- Free Software Foundation, Inc.
- Written by Steve Chamberlain <sac@cygnus.com>
- ELF support by Ian Lance Taylor <ian@cygnus.com>
-
- 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. */
-
-#define TARGET_IS_${EMULATION_NAME}
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "libiberty.h"
-#include "filenames.h"
-#include "safe-ctype.h"
-#include "getopt.h"
-#include "md5.h"
-#include "sha1.h"
-#include <fcntl.h>
-
-#include "bfdlink.h"
-
-#include "ld.h"
-#include "ldmain.h"
-#include "ldmisc.h"
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-#include <ldgram.h>
-#include "elf/common.h"
-#include "elf-bfd.h"
-#include "filenames.h"
-
-/* Declare functions used by various EXTRA_EM_FILEs. */
-static void gld${EMULATION_NAME}_before_parse (void);
-static void gld${EMULATION_NAME}_after_open (void);
-static void gld${EMULATION_NAME}_before_allocation (void);
-static void gld${EMULATION_NAME}_after_allocation (void);
-static lang_output_section_statement_type *gld${EMULATION_NAME}_place_orphan
- (asection *, const char *, int);
-EOF
-
-if [ "x${USE_LIBPATH}" = xyes ] ; then
- case ${target} in
- *-*-linux-* | *-*-k*bsd*-* | *-*-gnu*)
- fragment <<EOF
-#ifdef HAVE_GLOB
-#include <glob.h>
-#endif
-EOF
- ;;
- esac
-fi
-
-# Import any needed special functions and/or overrides.
-#
-source_em ${srcdir}/emultempl/elf-generic.em
-if test -n "$EXTRA_EM_FILE" ; then
- source_em ${srcdir}/emultempl/${EXTRA_EM_FILE}.em
-fi
-
-# Functions in this file can be overridden by setting the LDEMUL_* shell
-# variables. If the name of the overriding function is the same as is
-# defined in this file, then don't output this file's version.
-# If a different overriding name is given then output the standard function
-# as presumably it is called from the overriding function.
-#
-if test x"$LDEMUL_BEFORE_PARSE" != xgld"$EMULATION_NAME"_before_parse; then
-fragment <<EOF
-
-static void
-gld${EMULATION_NAME}_before_parse (void)
-{
- ldfile_set_output_arch ("${OUTPUT_ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`);
- input_flags.dynamic = ${DYNAMIC_LINK-TRUE};
- config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
- config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
-}
-
-EOF
-fi
-
-if test x"$LDEMUL_RECOGNIZED_FILE" != xgld"${EMULATION_NAME}"_load_symbols; then
-fragment <<EOF
-/* Handle the generation of DT_NEEDED tags. */
-
-static bfd_boolean
-gld${EMULATION_NAME}_load_symbols (lang_input_statement_type *entry)
-{
- int link_class = 0;
-
- /* Tell the ELF linker that we don't want the output file to have a
- DT_NEEDED entry for this file, unless it is used to resolve
- references in a regular object. */
- if (entry->flags.add_DT_NEEDED_for_regular)
- link_class = DYN_AS_NEEDED;
-
- /* Tell the ELF linker that we don't want the output file to have a
- DT_NEEDED entry for any dynamic library in DT_NEEDED tags from
- this file at all. */
- if (!entry->flags.add_DT_NEEDED_for_dynamic)
- link_class |= DYN_NO_ADD_NEEDED;
-
- if (entry->flags.just_syms
- && (bfd_get_file_flags (entry->the_bfd) & DYNAMIC) != 0)
- einfo (_("%P%F: --just-symbols may not be used on DSO: %B\n"),
- entry->the_bfd);
-
- if (link_class == 0
- || (bfd_get_file_flags (entry->the_bfd) & DYNAMIC) == 0)
- return FALSE;
-
- bfd_elf_set_dyn_lib_class (entry->the_bfd,
- (enum dynamic_lib_link_class) link_class);
-
- /* Continue on with normal load_symbols processing. */
- return FALSE;
-}
-EOF
-fi
-
-fragment <<EOF
-
-/* These variables are required to pass information back and forth
- between after_open and check_needed and stat_needed and vercheck. */
-
-static struct bfd_link_needed_list *global_needed;
-static struct stat global_stat;
-static lang_input_statement_type *global_found;
-static struct bfd_link_needed_list *global_vercheck_needed;
-static bfd_boolean global_vercheck_failed;
-
-/* These variables are used to implement target options */
-
-static char *audit; /* colon (typically) separated list of libs */
-static char *depaudit; /* colon (typically) separated list of libs */
-
-/* Style of .note.gnu.build-id section. */
-static const char *emit_note_gnu_build_id;
-
-/* On Linux, it's possible to have different versions of the same
- shared library linked against different versions of libc. The
- dynamic linker somehow tags which libc version to use in
- /etc/ld.so.cache, and, based on the libc that it sees in the
- executable, chooses which version of the shared library to use.
-
- We try to do a similar check here by checking whether this shared
- library needs any other shared libraries which may conflict with
- libraries we have already included in the link. If it does, we
- skip it, and try to find another shared library farther on down the
- link path.
-
- This is called via lang_for_each_input_file.
- GLOBAL_VERCHECK_NEEDED is the list of objects needed by the object
- which we are checking. This sets GLOBAL_VERCHECK_FAILED if we find
- a conflicting version. */
-
-static void
-gld${EMULATION_NAME}_vercheck (lang_input_statement_type *s)
-{
- const char *soname;
- struct bfd_link_needed_list *l;
-
- if (global_vercheck_failed)
- return;
- if (s->the_bfd == NULL
- || (bfd_get_file_flags (s->the_bfd) & DYNAMIC) == 0)
- return;
-
- soname = bfd_elf_get_dt_soname (s->the_bfd);
- if (soname == NULL)
- soname = lbasename (bfd_get_filename (s->the_bfd));
-
- for (l = global_vercheck_needed; l != NULL; l = l->next)
- {
- const char *suffix;
-
- if (filename_cmp (soname, l->name) == 0)
- {
- /* Probably can't happen, but it's an easy check. */
- continue;
- }
-
- if (strchr (l->name, '/') != NULL)
- continue;
-
- suffix = strstr (l->name, ".so.");
- if (suffix == NULL)
- continue;
-
- suffix += sizeof ".so." - 1;
-
- if (filename_ncmp (soname, l->name, suffix - l->name) == 0)
- {
- /* Here we know that S is a dynamic object FOO.SO.VER1, and
- the object we are considering needs a dynamic object
- FOO.SO.VER2, and VER1 and VER2 are different. This
- appears to be a version mismatch, so we tell the caller
- to try a different version of this library. */
- global_vercheck_failed = TRUE;
- return;
- }
- }
-}
-
-
-/* See if an input file matches a DT_NEEDED entry by running stat on
- the file. */
-
-static void
-gld${EMULATION_NAME}_stat_needed (lang_input_statement_type *s)
-{
- struct stat st;
- const char *suffix;
- const char *soname;
-
- if (global_found != NULL)
- return;
- if (s->the_bfd == NULL)
- return;
-
- /* If this input file was an as-needed entry, and wasn't found to be
- needed at the stage it was linked, then don't say we have loaded it. */
- if ((bfd_elf_get_dyn_lib_class (s->the_bfd) & DYN_AS_NEEDED) != 0)
- return;
-
- if (bfd_stat (s->the_bfd, &st) != 0)
- {
- einfo ("%P:%B: bfd_stat failed: %E\n", s->the_bfd);
- return;
- }
-
- /* Some operating systems, e.g. Windows, do not provide a meaningful
- st_ino; they always set it to zero. (Windows does provide a
- meaningful st_dev.) Do not indicate a duplicate library in that
- case. While there is no guarantee that a system that provides
- meaningful inode numbers will never set st_ino to zero, this is
- merely an optimization, so we do not need to worry about false
- negatives. */
- if (st.st_dev == global_stat.st_dev
- && st.st_ino == global_stat.st_ino
- && st.st_ino != 0)
- {
- global_found = s;
- return;
- }
-
- /* We issue a warning if it looks like we are including two
- different versions of the same shared library. For example,
- there may be a problem if -lc picks up libc.so.6 but some other
- shared library has a DT_NEEDED entry of libc.so.5. This is a
- heuristic test, and it will only work if the name looks like
- NAME.so.VERSION. FIXME: Depending on file names is error-prone.
- If we really want to issue warnings about mixing version numbers
- of shared libraries, we need to find a better way. */
-
- if (strchr (global_needed->name, '/') != NULL)
- return;
- suffix = strstr (global_needed->name, ".so.");
- if (suffix == NULL)
- return;
- suffix += sizeof ".so." - 1;
-
- soname = bfd_elf_get_dt_soname (s->the_bfd);
- if (soname == NULL)
- soname = lbasename (s->filename);
-
- if (filename_ncmp (soname, global_needed->name, suffix - global_needed->name) == 0)
- einfo ("%P: warning: %s, needed by %B, may conflict with %s\n",
- global_needed->name, global_needed->by, soname);
-}
-
-struct dt_needed
-{
- bfd *by;
- const char *name;
-};
-
-/* This function is called for each possible name for a dynamic object
- named by a DT_NEEDED entry. The FORCE parameter indicates whether
- to skip the check for a conflicting version. */
-
-static bfd_boolean
-gld${EMULATION_NAME}_try_needed (struct dt_needed *needed,
- int force)
-{
- bfd *abfd;
- const char *name = needed->name;
- const char *soname;
- int link_class;
-
- abfd = bfd_openr (name, bfd_get_target (link_info.output_bfd));
- if (abfd == NULL)
- return FALSE;
-
- /* Linker needs to decompress sections. */
- abfd->flags |= BFD_DECOMPRESS;
-
- if (! bfd_check_format (abfd, bfd_object))
- {
- bfd_close (abfd);
- return FALSE;
- }
- if ((bfd_get_file_flags (abfd) & DYNAMIC) == 0)
- {
- bfd_close (abfd);
- return FALSE;
- }
-
- /* For DT_NEEDED, they have to match. */
- if (abfd->xvec != link_info.output_bfd->xvec)
- {
- bfd_close (abfd);
- return FALSE;
- }
-
- /* Check whether this object would include any conflicting library
- versions. If FORCE is set, then we skip this check; we use this
- the second time around, if we couldn't find any compatible
- instance of the shared library. */
-
- if (! force)
- {
- struct bfd_link_needed_list *needs;
-
- if (! bfd_elf_get_bfd_needed_list (abfd, &needs))
- einfo ("%F%P:%B: bfd_elf_get_bfd_needed_list failed: %E\n", abfd);
-
- if (needs != NULL)
- {
- global_vercheck_needed = needs;
- global_vercheck_failed = FALSE;
- lang_for_each_input_file (gld${EMULATION_NAME}_vercheck);
- if (global_vercheck_failed)
- {
- bfd_close (abfd);
- /* Return FALSE to force the caller to move on to try
- another file on the search path. */
- return FALSE;
- }
-
- /* But wait! It gets much worse. On Linux, if a shared
- library does not use libc at all, we are supposed to skip
- it the first time around in case we encounter a shared
- library later on with the same name which does use the
- version of libc that we want. This is much too horrible
- to use on any system other than Linux. */
-
-EOF
-case ${target} in
- *-*-linux-* | *-*-k*bsd*-* | *-*-gnu*)
- fragment <<EOF
- {
- struct bfd_link_needed_list *l;
-
- for (l = needs; l != NULL; l = l->next)
- if (CONST_STRNEQ (l->name, "libc.so"))
- break;
- if (l == NULL)
- {
- bfd_close (abfd);
- return FALSE;
- }
- }
-
-EOF
- ;;
-esac
-fragment <<EOF
- }
- }
-
- /* We've found a dynamic object matching the DT_NEEDED entry. */
-
- /* We have already checked that there is no other input file of the
- same name. We must now check again that we are not including the
- same file twice. We need to do this because on many systems
- libc.so is a symlink to, e.g., libc.so.1. The SONAME entry will
- reference libc.so.1. If we have already included libc.so, we
- don't want to include libc.so.1 if they are the same file, and we
- can only check that using stat. */
-
- if (bfd_stat (abfd, &global_stat) != 0)
- einfo ("%F%P:%B: bfd_stat failed: %E\n", abfd);
-
- /* First strip off everything before the last '/'. */
- soname = lbasename (abfd->filename);
-
- if (verbose)
- info_msg (_("found %s at %s\n"), soname, name);
-
- global_found = NULL;
- lang_for_each_input_file (gld${EMULATION_NAME}_stat_needed);
- if (global_found != NULL)
- {
- /* Return TRUE to indicate that we found the file, even though
- we aren't going to do anything with it. */
- return TRUE;
- }
-
- /* Specify the soname to use. */
- bfd_elf_set_dt_needed_name (abfd, soname);
-
- /* Tell the ELF linker that we don't want the output file to have a
- DT_NEEDED entry for this file, unless it is used to resolve
- references in a regular object. */
- link_class = DYN_DT_NEEDED;
-
- /* Tell the ELF linker that we don't want the output file to have a
- DT_NEEDED entry for this file at all if the entry is from a file
- with DYN_NO_ADD_NEEDED. */
- if (needed->by != NULL
- && (bfd_elf_get_dyn_lib_class (needed->by) & DYN_NO_ADD_NEEDED) != 0)
- link_class |= DYN_NO_NEEDED | DYN_NO_ADD_NEEDED;
-
- bfd_elf_set_dyn_lib_class (abfd, (enum dynamic_lib_link_class) link_class);
-
- /* Add this file into the symbol table. */
- if (! bfd_link_add_symbols (abfd, &link_info))
- einfo ("%F%B: error adding symbols: %E\n", abfd);
-
- return TRUE;
-}
-
-
-/* Search for a needed file in a path. */
-
-static bfd_boolean
-gld${EMULATION_NAME}_search_needed (const char *path,
- struct dt_needed *n, int force)
-{
- const char *s;
- const char *name = n->name;
- size_t len;
- struct dt_needed needed;
-
- if (name[0] == '/')
- return gld${EMULATION_NAME}_try_needed (n, force);
-
- if (path == NULL || *path == '\0')
- return FALSE;
-
- needed.by = n->by;
- needed.name = n->name;
-
- len = strlen (name);
- while (1)
- {
- char *filename, *sset;
-
- s = strchr (path, config.rpath_separator);
- if (s == NULL)
- s = path + strlen (path);
-
-#if HAVE_DOS_BASED_FILE_SYSTEM
- /* Assume a match on the second char is part of drive specifier. */
- else if (config.rpath_separator == ':'
- && s == path + 1
- && ISALPHA (*path))
- {
- s = strchr (s + 1, config.rpath_separator);
- if (s == NULL)
- s = path + strlen (path);
- }
-#endif
- filename = (char *) xmalloc (s - path + len + 2);
- if (s == path)
- sset = filename;
- else
- {
- memcpy (filename, path, s - path);
- filename[s - path] = '/';
- sset = filename + (s - path) + 1;
- }
- strcpy (sset, name);
-
- needed.name = filename;
- if (gld${EMULATION_NAME}_try_needed (&needed, force))
- return TRUE;
-
- free (filename);
-
- if (*s == '\0')
- break;
- path = s + 1;
- }
-
- return FALSE;
-}
-
-EOF
-if [ "x${USE_LIBPATH}" = xyes ] ; then
- fragment <<EOF
-
-/* Add the sysroot to every entry in a path separated by
- config.rpath_separator. */
-
-static char *
-gld${EMULATION_NAME}_add_sysroot (const char *path)
-{
- int len, colons, i;
- char *ret, *p;
-
- len = strlen (path);
- colons = 0;
- i = 0;
- while (path[i])
- if (path[i++] == config.rpath_separator)
- colons++;
-
- if (path[i])
- colons++;
-
- len = len + (colons + 1) * strlen (ld_sysroot);
- ret = xmalloc (len + 1);
- strcpy (ret, ld_sysroot);
- p = ret + strlen (ret);
- i = 0;
- while (path[i])
- if (path[i] == config.rpath_separator)
- {
- *p++ = path[i++];
- strcpy (p, ld_sysroot);
- p = p + strlen (p);
- }
- else
- *p++ = path[i++];
-
- *p = 0;
- return ret;
-}
-
-EOF
- case ${target} in
- *-*-freebsd* | *-*-dragonfly*)
- fragment <<EOF
-/* Read the system search path the FreeBSD way rather than the Linux way. */
-#ifdef HAVE_ELF_HINTS_H
-#include <elf-hints.h>
-#else
-#include "elf-hints-local.h"
-#endif
-
-static bfd_boolean
-gld${EMULATION_NAME}_check_ld_elf_hints (const struct bfd_link_needed_list *l,
- int force)
-{
- static bfd_boolean initialized;
- static char *ld_elf_hints;
- struct dt_needed needed;
-
- if (!initialized)
- {
- FILE *f;
- char *tmppath;
-
- tmppath = concat (ld_sysroot, _PATH_ELF_HINTS, (const char *) NULL);
- f = fopen (tmppath, FOPEN_RB);
- free (tmppath);
- if (f != NULL)
- {
- struct elfhints_hdr hdr;
-
- if (fread (&hdr, 1, sizeof (hdr), f) == sizeof (hdr)
- && hdr.magic == ELFHINTS_MAGIC
- && hdr.version == 1)
- {
- if (fseek (f, hdr.strtab + hdr.dirlist, SEEK_SET) != -1)
- {
- char *b;
-
- b = xmalloc (hdr.dirlistlen + 1);
- if (fread (b, 1, hdr.dirlistlen + 1, f) ==
- hdr.dirlistlen + 1)
- ld_elf_hints = gld${EMULATION_NAME}_add_sysroot (b);
-
- free (b);
- }
- }
- fclose (f);
- }
-
- initialized = TRUE;
- }
-
- if (ld_elf_hints == NULL)
- return FALSE;
-
- needed.by = l->by;
- needed.name = l->name;
- return gld${EMULATION_NAME}_search_needed (ld_elf_hints, &needed, force);
-}
-EOF
- # FreeBSD
- ;;
-
- *-*-linux-* | *-*-k*bsd*-* | *-*-gnu*)
- fragment <<EOF
-/* For a native linker, check the file /etc/ld.so.conf for directories
- in which we may find shared libraries. /etc/ld.so.conf is really
- only meaningful on Linux. */
-
-struct gld${EMULATION_NAME}_ld_so_conf
-{
- char *path;
- size_t len, alloc;
-};
-
-static bfd_boolean
-gld${EMULATION_NAME}_parse_ld_so_conf
- (struct gld${EMULATION_NAME}_ld_so_conf *info, const char *filename);
-
-static void
-gld${EMULATION_NAME}_parse_ld_so_conf_include
- (struct gld${EMULATION_NAME}_ld_so_conf *info, const char *filename,
- const char *pattern)
-{
- char *newp = NULL;
-#ifdef HAVE_GLOB
- glob_t gl;
-#endif
-
- if (pattern[0] != '/')
- {
- char *p = strrchr (filename, '/');
- size_t patlen = strlen (pattern) + 1;
-
- newp = xmalloc (p - filename + 1 + patlen);
- memcpy (newp, filename, p - filename + 1);
- memcpy (newp + (p - filename + 1), pattern, patlen);
- pattern = newp;
- }
-
-#ifdef HAVE_GLOB
- if (glob (pattern, 0, NULL, &gl) == 0)
- {
- size_t i;
-
- for (i = 0; i < gl.gl_pathc; ++i)
- gld${EMULATION_NAME}_parse_ld_so_conf (info, gl.gl_pathv[i]);
- globfree (&gl);
- }
-#else
- /* If we do not have glob, treat the pattern as a literal filename. */
- gld${EMULATION_NAME}_parse_ld_so_conf (info, pattern);
-#endif
-
- if (newp)
- free (newp);
-}
-
-static bfd_boolean
-gld${EMULATION_NAME}_parse_ld_so_conf
- (struct gld${EMULATION_NAME}_ld_so_conf *info, const char *filename)
-{
- FILE *f = fopen (filename, FOPEN_RT);
- char *line;
- size_t linelen;
-
- if (f == NULL)
- return FALSE;
-
- linelen = 256;
- line = xmalloc (linelen);
- do
- {
- char *p = line, *q;
-
- /* Normally this would use getline(3), but we need to be portable. */
- while ((q = fgets (p, linelen - (p - line), f)) != NULL
- && strlen (q) == linelen - (p - line) - 1
- && line[linelen - 2] != '\n')
- {
- line = xrealloc (line, 2 * linelen);
- p = line + linelen - 1;
- linelen += linelen;
- }
-
- if (q == NULL && p == line)
- break;
-
- p = strchr (line, '\n');
- if (p)
- *p = '\0';
-
- /* Because the file format does not know any form of quoting we
- can search forward for the next '#' character and if found
- make it terminating the line. */
- p = strchr (line, '#');
- if (p)
- *p = '\0';
-
- /* Remove leading whitespace. NUL is no whitespace character. */
- p = line;
- while (*p == ' ' || *p == '\f' || *p == '\r' || *p == '\t' || *p == '\v')
- ++p;
-
- /* If the line is blank it is ignored. */
- if (p[0] == '\0')
- continue;
-
- if (CONST_STRNEQ (p, "include") && (p[7] == ' ' || p[7] == '\t'))
- {
- char *dir, c;
- p += 8;
- do
- {
- while (*p == ' ' || *p == '\t')
- ++p;
-
- if (*p == '\0')
- break;
-
- dir = p;
-
- while (*p != ' ' && *p != '\t' && *p)
- ++p;
-
- c = *p;
- *p++ = '\0';
- if (dir[0] != '\0')
- gld${EMULATION_NAME}_parse_ld_so_conf_include (info, filename,
- dir);
- }
- while (c != '\0');
- }
- else
- {
- char *dir = p;
- while (*p && *p != '=' && *p != ' ' && *p != '\t' && *p != '\f'
- && *p != '\r' && *p != '\v')
- ++p;
-
- while (p != dir && p[-1] == '/')
- --p;
- if (info->path == NULL)
- {
- info->alloc = p - dir + 1 + 256;
- info->path = xmalloc (info->alloc);
- info->len = 0;
- }
- else
- {
- if (info->len + 1 + (p - dir) >= info->alloc)
- {
- info->alloc += p - dir + 256;
- info->path = xrealloc (info->path, info->alloc);
- }
- info->path[info->len++] = config.rpath_separator;
- }
- memcpy (info->path + info->len, dir, p - dir);
- info->len += p - dir;
- info->path[info->len] = '\0';
- }
- }
- while (! feof (f));
- free (line);
- fclose (f);
- return TRUE;
-}
-
-static bfd_boolean
-gld${EMULATION_NAME}_check_ld_so_conf (const struct bfd_link_needed_list *l,
- int force)
-{
- static bfd_boolean initialized;
- static char *ld_so_conf;
- struct dt_needed needed;
-
- if (! initialized)
- {
- char *tmppath;
- struct gld${EMULATION_NAME}_ld_so_conf info;
-
- info.path = NULL;
- info.len = info.alloc = 0;
- tmppath = concat (ld_sysroot, "${prefix}/etc/ld.so.conf",
- (const char *) NULL);
- if (!gld${EMULATION_NAME}_parse_ld_so_conf (&info, tmppath))
- {
- free (tmppath);
- tmppath = concat (ld_sysroot, "/etc/ld.so.conf",
- (const char *) NULL);
- gld${EMULATION_NAME}_parse_ld_so_conf (&info, tmppath);
- }
- free (tmppath);
-
- if (info.path)
- {
- char *d = gld${EMULATION_NAME}_add_sysroot (info.path);
- free (info.path);
- ld_so_conf = d;
- }
- initialized = TRUE;
- }
-
- if (ld_so_conf == NULL)
- return FALSE;
-
-
- needed.by = l->by;
- needed.name = l->name;
- return gld${EMULATION_NAME}_search_needed (ld_so_conf, &needed, force);
-}
-
-EOF
- # Linux
- ;;
- esac
-fi
-fragment <<EOF
-
-/* See if an input file matches a DT_NEEDED entry by name. */
-
-static void
-gld${EMULATION_NAME}_check_needed (lang_input_statement_type *s)
-{
- const char *soname;
-
- /* Stop looking if we've found a loaded lib. */
- if (global_found != NULL
- && (bfd_elf_get_dyn_lib_class (global_found->the_bfd)
- & DYN_AS_NEEDED) == 0)
- return;
-
- if (s->filename == NULL || s->the_bfd == NULL)
- return;
-
- /* Don't look for a second non-loaded as-needed lib. */
- if (global_found != NULL
- && (bfd_elf_get_dyn_lib_class (s->the_bfd) & DYN_AS_NEEDED) != 0)
- return;
-
- if (filename_cmp (s->filename, global_needed->name) == 0)
- {
- global_found = s;
- return;
- }
-
- if (s->flags.search_dirs)
- {
- const char *f = strrchr (s->filename, '/');
- if (f != NULL
- && filename_cmp (f + 1, global_needed->name) == 0)
- {
- global_found = s;
- return;
- }
- }
-
- soname = bfd_elf_get_dt_soname (s->the_bfd);
- if (soname != NULL
- && filename_cmp (soname, global_needed->name) == 0)
- {
- global_found = s;
- return;
- }
-}
-
-EOF
-
-if test x"$LDEMUL_AFTER_OPEN" != xgld"$EMULATION_NAME"_after_open; then
-fragment <<EOF
-
-static bfd_size_type
-id_note_section_size (bfd *abfd)
-{
- const char *style = emit_note_gnu_build_id;
- bfd_size_type size;
-
- abfd = abfd;
-
- size = offsetof (Elf_External_Note, name[sizeof "GNU"]);
- size = (size + 3) & -(bfd_size_type) 4;
-
- if (!strcmp (style, "md5") || !strcmp (style, "uuid"))
- size += 128 / 8;
- else if (!strcmp (style, "sha1"))
- size += 160 / 8;
- else if (!strncmp (style, "0x", 2))
- {
- /* ID is in string form (hex). Convert to bits. */
- const char *id = style + 2;
- do
- {
- if (ISXDIGIT (id[0]) && ISXDIGIT (id[1]))
- {
- ++size;
- id += 2;
- }
- else if (*id == '-' || *id == ':')
- ++id;
- else
- {
- size = 0;
- break;
- }
- } while (*id != '\0');
- }
- else
- size = 0;
-
- return size;
-}
-
-static unsigned char
-read_hex (const char xdigit)
-{
- if (ISDIGIT (xdigit))
- return xdigit - '0';
- if (ISUPPER (xdigit))
- return xdigit - 'A' + 0xa;
- if (ISLOWER (xdigit))
- return xdigit - 'a' + 0xa;
- abort ();
- return 0;
-}
-
-static bfd_boolean
-write_build_id (bfd *abfd)
-{
- const struct elf_backend_data *bed = get_elf_backend_data (abfd);
- struct elf_obj_tdata *t = elf_tdata (abfd);
- const char *style;
- asection *asec;
- Elf_Internal_Shdr *i_shdr;
- unsigned char *contents, *id_bits;
- bfd_size_type size;
- file_ptr position;
- Elf_External_Note *e_note;
- typedef void (*sum_fn) (const void *, size_t, void *);
-
- style = t->o->build_id.style;
- asec = t->o->build_id.sec;
- if (bfd_is_abs_section (asec->output_section))
- {
- einfo (_("%P: warning: .note.gnu.build-id section discarded,"
- " --build-id ignored.\n"));
- return TRUE;
- }
- i_shdr = &elf_section_data (asec->output_section)->this_hdr;
-
- if (i_shdr->contents == NULL)
- {
- if (asec->contents == NULL)
- asec->contents = (unsigned char *) xmalloc (asec->size);
- contents = asec->contents;
- }
- else
- contents = i_shdr->contents + asec->output_offset;
-
- e_note = (Elf_External_Note *) contents;
- size = offsetof (Elf_External_Note, name[sizeof "GNU"]);
- size = (size + 3) & -(bfd_size_type) 4;
- id_bits = contents + size;
- size = asec->size - size;
-
- bfd_h_put_32 (abfd, sizeof "GNU", &e_note->namesz);
- bfd_h_put_32 (abfd, size, &e_note->descsz);
- bfd_h_put_32 (abfd, NT_GNU_BUILD_ID, &e_note->type);
- memcpy (e_note->name, "GNU", sizeof "GNU");
-
- if (strcmp (style, "md5") == 0)
- {
- struct md5_ctx ctx;
-
- md5_init_ctx (&ctx);
- if (!bed->s->checksum_contents (abfd, (sum_fn) &md5_process_bytes, &ctx))
- return FALSE;
- md5_finish_ctx (&ctx, id_bits);
- }
- else if (strcmp (style, "sha1") == 0)
- {
- struct sha1_ctx ctx;
-
- sha1_init_ctx (&ctx);
- if (!bed->s->checksum_contents (abfd, (sum_fn) &sha1_process_bytes, &ctx))
- return FALSE;
- sha1_finish_ctx (&ctx, id_bits);
- }
- else if (strcmp (style, "uuid") == 0)
- {
- int n;
- int fd = open ("/dev/urandom", O_RDONLY);
- if (fd < 0)
- return FALSE;
- n = read (fd, id_bits, size);
- close (fd);
- if (n < (int) size)
- return FALSE;
- }
- else if (strncmp (style, "0x", 2) == 0)
- {
- /* ID is in string form (hex). Convert to bits. */
- const char *id = style + 2;
- size_t n = 0;
- do
- {
- if (ISXDIGIT (id[0]) && ISXDIGIT (id[1]))
- {
- id_bits[n] = read_hex (*id++) << 4;
- id_bits[n++] |= read_hex (*id++);
- }
- else if (*id == '-' || *id == ':')
- ++id;
- else
- abort (); /* Should have been validated earlier. */
- } while (*id != '\0');
- }
- else
- abort (); /* Should have been validated earlier. */
-
- position = i_shdr->sh_offset + asec->output_offset;
- size = asec->size;
- return (bfd_seek (abfd, position, SEEK_SET) == 0
- && bfd_bwrite (contents, size, abfd) == size);
-}
-
-/* Make .note.gnu.build-id section, and set up elf_tdata->build_id. */
-
-static bfd_boolean
-setup_build_id (bfd *ibfd)
-{
- asection *s;
- bfd_size_type size;
- flagword flags;
-
- size = id_note_section_size (ibfd);
- if (size == 0)
- {
- einfo ("%P: warning: unrecognized --build-id style ignored.\n");
- return FALSE;
- }
-
- flags = (SEC_ALLOC | SEC_LOAD | SEC_IN_MEMORY
- | SEC_LINKER_CREATED | SEC_READONLY | SEC_DATA);
- s = bfd_make_section_with_flags (ibfd, ".note.gnu.build-id", flags);
- if (s != NULL && bfd_set_section_alignment (ibfd, s, 2))
- {
- struct elf_obj_tdata *t = elf_tdata (link_info.output_bfd);
- t->o->build_id.after_write_object_contents = &write_build_id;
- t->o->build_id.style = emit_note_gnu_build_id;
- t->o->build_id.sec = s;
- elf_section_type (s) = SHT_NOTE;
- s->size = size;
- return TRUE;
- }
-
- einfo ("%P: warning: Cannot create .note.gnu.build-id section,"
- " --build-id ignored.\n");
- return FALSE;
-}
-
-/* This is called after all the input files have been opened. */
-
-static void
-gld${EMULATION_NAME}_after_open (void)
-{
- struct bfd_link_needed_list *needed, *l;
- struct elf_link_hash_table *htab;
-
- after_open_default ();
-
- htab = elf_hash_table (&link_info);
- if (!is_elf_hash_table (htab))
- return;
-
- if (emit_note_gnu_build_id != NULL)
- {
- bfd *abfd;
-
- /* Find an ELF input. */
- for (abfd = link_info.input_bfds;
- abfd != (bfd *) NULL; abfd = abfd->link_next)
- if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
- break;
-
- /* PR 10555: If there are no ELF input files do not try to
- create a .note.gnu-build-id section. */
- if (abfd == NULL
- || !setup_build_id (abfd))
- {
- free ((char *) emit_note_gnu_build_id);
- emit_note_gnu_build_id = NULL;
- }
- }
-
- if (link_info.relocatable)
- return;
-
- if (link_info.eh_frame_hdr
- && !link_info.traditional_format)
- {
- bfd *abfd, *elfbfd = NULL;
- bfd_boolean warn_eh_frame = FALSE;
- asection *s;
-
- for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next)
- {
- if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
- elfbfd = abfd;
- if (!warn_eh_frame)
- {
- s = bfd_get_section_by_name (abfd, ".eh_frame");
- while (s != NULL
- && (s->size <= 8
- || bfd_is_abs_section (s->output_section)))
- s = bfd_get_next_section_by_name (s);
- warn_eh_frame = s != NULL;
- }
- if (elfbfd && warn_eh_frame)
- break;
- }
- if (elfbfd)
- {
- const struct elf_backend_data *bed;
-
- bed = get_elf_backend_data (elfbfd);
- s = bfd_make_section_with_flags (elfbfd, ".eh_frame_hdr",
- bed->dynamic_sec_flags
- | SEC_READONLY);
- if (s != NULL
- && bfd_set_section_alignment (elfbfd, s, 2))
- {
- htab->eh_info.hdr_sec = s;
- warn_eh_frame = FALSE;
- }
- }
- if (warn_eh_frame)
- einfo ("%P: warning: Cannot create .eh_frame_hdr section,"
- " --eh-frame-hdr ignored.\n");
- }
-
- /* Get the list of files which appear in DT_NEEDED entries in
- dynamic objects included in the link (often there will be none).
- For each such file, we want to track down the corresponding
- library, and include the symbol table in the link. This is what
- the runtime dynamic linker will do. Tracking the files down here
- permits one dynamic object to include another without requiring
- special action by the person doing the link. Note that the
- needed list can actually grow while we are stepping through this
- loop. */
- needed = bfd_elf_get_needed_list (link_info.output_bfd, &link_info);
- for (l = needed; l != NULL; l = l->next)
- {
- struct bfd_link_needed_list *ll;
- struct dt_needed n, nn;
- int force;
-
- /* If the lib that needs this one was --as-needed and wasn't
- found to be needed, then this lib isn't needed either. */
- if (l->by != NULL
- && (bfd_elf_get_dyn_lib_class (l->by) & DYN_AS_NEEDED) != 0)
- continue;
-
- /* Skip the lib if --no-copy-dt-needed-entries and
- --allow-shlib-undefined is in effect. */
- if (l->by != NULL
- && link_info.unresolved_syms_in_shared_libs == RM_IGNORE
- && (bfd_elf_get_dyn_lib_class (l->by) & DYN_NO_ADD_NEEDED) != 0)
- continue;
-
- /* If we've already seen this file, skip it. */
- for (ll = needed; ll != l; ll = ll->next)
- if ((ll->by == NULL
- || (bfd_elf_get_dyn_lib_class (ll->by) & DYN_AS_NEEDED) == 0)
- && strcmp (ll->name, l->name) == 0)
- break;
- if (ll != l)
- continue;
-
- /* See if this file was included in the link explicitly. */
- global_needed = l;
- global_found = NULL;
- lang_for_each_input_file (gld${EMULATION_NAME}_check_needed);
- if (global_found != NULL
- && (bfd_elf_get_dyn_lib_class (global_found->the_bfd)
- & DYN_AS_NEEDED) == 0)
- continue;
-
- n.by = l->by;
- n.name = l->name;
- nn.by = l->by;
- if (verbose)
- info_msg (_("%s needed by %B\n"), l->name, l->by);
-
- /* As-needed libs specified on the command line (or linker script)
- take priority over libs found in search dirs. */
- if (global_found != NULL)
- {
- nn.name = global_found->filename;
- if (gld${EMULATION_NAME}_try_needed (&nn, TRUE))
- continue;
- }
-
- /* We need to find this file and include the symbol table. We
- want to search for the file in the same way that the dynamic
- linker will search. That means that we want to use
- rpath_link, rpath, then the environment variable
- LD_LIBRARY_PATH (native only), then the DT_RPATH/DT_RUNPATH
- entries (native only), then the linker script LIB_SEARCH_DIRS.
- We do not search using the -L arguments.
-
- We search twice. The first time, we skip objects which may
- introduce version mismatches. The second time, we force
- their use. See gld${EMULATION_NAME}_vercheck comment. */
- for (force = 0; force < 2; force++)
- {
- size_t len;
- search_dirs_type *search;
-EOF
-if [ "x${NATIVE}" = xyes ] ; then
-fragment <<EOF
- const char *lib_path;
-EOF
-fi
-if [ "x${USE_LIBPATH}" = xyes ] ; then
-fragment <<EOF
- struct bfd_link_needed_list *rp;
- int found;
-EOF
-fi
-fragment <<EOF
-
- if (gld${EMULATION_NAME}_search_needed (command_line.rpath_link,
- &n, force))
- break;
-EOF
-if [ "x${USE_LIBPATH}" = xyes ] ; then
-fragment <<EOF
- if (gld${EMULATION_NAME}_search_needed (command_line.rpath,
- &n, force))
- break;
-EOF
-fi
-if [ "x${NATIVE}" = xyes ] ; then
-fragment <<EOF
- if (command_line.rpath_link == NULL
- && command_line.rpath == NULL)
- {
- lib_path = (const char *) getenv ("LD_RUN_PATH");
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- force))
- break;
- }
- lib_path = (const char *) getenv ("LD_LIBRARY_PATH");
- if (gld${EMULATION_NAME}_search_needed (lib_path, &n, force))
- break;
-EOF
-fi
-if [ "x${USE_LIBPATH}" = xyes ] ; then
-fragment <<EOF
- found = 0;
- rp = bfd_elf_get_runpath_list (link_info.output_bfd, &link_info);
- for (; !found && rp != NULL; rp = rp->next)
- {
- char *tmpname = gld${EMULATION_NAME}_add_sysroot (rp->name);
- found = (rp->by == l->by
- && gld${EMULATION_NAME}_search_needed (tmpname,
- &n,
- force));
- free (tmpname);
- }
- if (found)
- break;
-
-EOF
-fi
-if [ "x${USE_LIBPATH}" = xyes ] ; then
- case ${target} in
- *-*-freebsd* | *-*-dragonfly*)
- fragment <<EOF
- if (gld${EMULATION_NAME}_check_ld_elf_hints (l, force))
- break;
-EOF
- # FreeBSD
- ;;
-
- *-*-linux-* | *-*-k*bsd*-* | *-*-gnu*)
- fragment <<EOF
- if (gld${EMULATION_NAME}_check_ld_so_conf (l, force))
- break;
-
-EOF
- # Linux
- ;;
- esac
-fi
-fragment <<EOF
- len = strlen (l->name);
- for (search = search_head; search != NULL; search = search->next)
- {
- char *filename;
-
- if (search->cmdline)
- continue;
- filename = (char *) xmalloc (strlen (search->name) + len + 2);
- sprintf (filename, "%s/%s", search->name, l->name);
- nn.name = filename;
- if (gld${EMULATION_NAME}_try_needed (&nn, force))
- break;
- free (filename);
- }
- if (search != NULL)
- break;
-EOF
-fragment <<EOF
- }
-
- if (force < 2)
- continue;
-
- einfo ("%P: warning: %s, needed by %B, not found (try using -rpath or -rpath-link)\n",
- l->name, l->by);
- }
-}
-
-EOF
-fi
-
-fragment <<EOF
-
-/* Look through an expression for an assignment statement. */
-
-static void
-gld${EMULATION_NAME}_find_exp_assignment (etree_type *exp)
-{
- bfd_boolean provide = FALSE;
-
- switch (exp->type.node_class)
- {
- case etree_provide:
- case etree_provided:
- provide = TRUE;
- /* Fall thru */
- case etree_assign:
- /* We call record_link_assignment even if the symbol is defined.
- This is because if it is defined by a dynamic object, we
- actually want to use the value defined by the linker script,
- not the value from the dynamic object (because we are setting
- symbols like etext). If the symbol is defined by a regular
- object, then, as it happens, calling record_link_assignment
- will do no harm. */
- if (strcmp (exp->assign.dst, ".") != 0)
- {
- if (!bfd_elf_record_link_assignment (link_info.output_bfd,
- &link_info,
- exp->assign.dst, provide,
- exp->assign.hidden))
- einfo ("%P%F: failed to record assignment to %s: %E\n",
- exp->assign.dst);
- }
- gld${EMULATION_NAME}_find_exp_assignment (exp->assign.src);
- break;
-
- case etree_binary:
- gld${EMULATION_NAME}_find_exp_assignment (exp->binary.lhs);
- gld${EMULATION_NAME}_find_exp_assignment (exp->binary.rhs);
- break;
-
- case etree_trinary:
- gld${EMULATION_NAME}_find_exp_assignment (exp->trinary.cond);
- gld${EMULATION_NAME}_find_exp_assignment (exp->trinary.lhs);
- gld${EMULATION_NAME}_find_exp_assignment (exp->trinary.rhs);
- break;
-
- case etree_unary:
- gld${EMULATION_NAME}_find_exp_assignment (exp->unary.child);
- break;
-
- default:
- break;
- }
-}
-
-
-/* This is called by the before_allocation routine via
- lang_for_each_statement. It locates any assignment statements, and
- tells the ELF backend about them, in case they are assignments to
- symbols which are referred to by dynamic objects. */
-
-static void
-gld${EMULATION_NAME}_find_statement_assignment (lang_statement_union_type *s)
-{
- if (s->header.type == lang_assignment_statement_enum)
- gld${EMULATION_NAME}_find_exp_assignment (s->assignment_statement.exp);
-}
-
-EOF
-
-if test x"$LDEMUL_BEFORE_ALLOCATION" != xgld"$EMULATION_NAME"_before_allocation; then
- if test x"${ELF_INTERPRETER_NAME+set}" = xset; then
- ELF_INTERPRETER_SET_DEFAULT="
- if (sinterp != NULL)
- {
- sinterp->contents = (unsigned char *) ${ELF_INTERPRETER_NAME};
- sinterp->size = strlen ((char *) sinterp->contents) + 1;
- }
-
-"
- else
- ELF_INTERPRETER_SET_DEFAULT=
- fi
-fragment <<EOF
-
-/* used by before_allocation and handle_option. */
-static void
-gld${EMULATION_NAME}_append_to_separated_string (char **to, char *op_arg)
-{
- if (*to == NULL)
- *to = xstrdup (op_arg);
- else
- {
- size_t to_len = strlen (*to);
- size_t op_arg_len = strlen (op_arg);
- char *buf;
- char *cp = *to;
-
- /* First see whether OPTARG is already in the path. */
- do
- {
- if (strncmp (op_arg, cp, op_arg_len) == 0
- && (cp[op_arg_len] == 0
- || cp[op_arg_len] == config.rpath_separator))
- /* We found it. */
- break;
-
- /* Not yet found. */
- cp = strchr (cp, config.rpath_separator);
- if (cp != NULL)
- ++cp;
- }
- while (cp != NULL);
-
- if (cp == NULL)
- {
- buf = xmalloc (to_len + op_arg_len + 2);
- sprintf (buf, "%s%c%s", *to,
- config.rpath_separator, op_arg);
- free (*to);
- *to = buf;
- }
- }
-}
-
-/* This is called after the sections have been attached to output
- sections, but before any sizes or addresses have been set. */
-
-static void
-gld${EMULATION_NAME}_before_allocation (void)
-{
- const char *rpath;
- asection *sinterp;
- bfd *abfd;
-
- if (is_elf_hash_table (link_info.hash))
- {
- _bfd_elf_tls_setup (link_info.output_bfd, &link_info);
-
- /* Make __ehdr_start hidden if it has been referenced, to
- prevent the symbol from being dynamic. */
- if (!bfd_elf_record_link_assignment (link_info.output_bfd, &link_info,
- "__ehdr_start", TRUE, TRUE))
- einfo ("%P%F: failed to record assignment to %s: %E\n",
- "__ehdr_start");
-
- /* If we are going to make any variable assignments, we need to
- let the ELF backend know about them in case the variables are
- referred to by dynamic objects. */
- lang_for_each_statement (gld${EMULATION_NAME}_find_statement_assignment);
- }
-
- /* Let the ELF backend work out the sizes of any sections required
- by dynamic linking. */
- rpath = command_line.rpath;
- if (rpath == NULL)
- rpath = (const char *) getenv ("LD_RUN_PATH");
-
- for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next)
- if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
- {
- const char *audit_libs = elf_dt_audit (abfd);
-
- /* If the input bfd contains an audit entry, we need to add it as
- a dep audit entry. */
- if (audit_libs && *audit_libs != '\0')
- {
- char *cp = xstrdup (audit_libs);
- do
- {
- int more = 0;
- char *cp2 = strchr (cp, config.rpath_separator);
-
- if (cp2)
- {
- *cp2 = '\0';
- more = 1;
- }
-
- if (cp != NULL && *cp != '\0')
- gld${EMULATION_NAME}_append_to_separated_string (&depaudit, cp);
-
- cp = more ? ++cp2 : NULL;
- }
- while (cp != NULL);
- }
- }
-
- if (! (bfd_elf_size_dynamic_sections
- (link_info.output_bfd, command_line.soname, rpath,
- command_line.filter_shlib, audit, depaudit,
- (const char * const *) command_line.auxiliary_filters,
- &link_info, &sinterp)))
- einfo ("%P%F: failed to set dynamic section sizes: %E\n");
-
-${ELF_INTERPRETER_SET_DEFAULT}
- /* Let the user override the dynamic linker we are using. */
- if (command_line.interpreter != NULL
- && sinterp != NULL)
- {
- sinterp->contents = (bfd_byte *) command_line.interpreter;
- sinterp->size = strlen (command_line.interpreter) + 1;
- }
-
- /* Look for any sections named .gnu.warning. As a GNU extensions,
- we treat such sections as containing warning messages. We print
- out the warning message, and then zero out the section size so
- that it does not get copied into the output file. */
-
- {
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- asection *s;
- bfd_size_type sz;
- char *msg;
- bfd_boolean ret;
-
- if (is->flags.just_syms)
- continue;
-
- s = bfd_get_section_by_name (is->the_bfd, ".gnu.warning");
- if (s == NULL)
- continue;
-
- sz = s->size;
- msg = (char *) xmalloc ((size_t) (sz + 1));
- if (! bfd_get_section_contents (is->the_bfd, s, msg,
- (file_ptr) 0, sz))
- einfo ("%F%B: Can't read contents of section .gnu.warning: %E\n",
- is->the_bfd);
- msg[sz] = '\0';
- ret = link_info.callbacks->warning (&link_info, msg,
- (const char *) NULL,
- is->the_bfd, (asection *) NULL,
- (bfd_vma) 0);
- ASSERT (ret);
- free (msg);
-
- /* Clobber the section size, so that we don't waste space
- copying the warning into the output file. If we've already
- sized the output section, adjust its size. The adjustment
- is on rawsize because targets that size sections early will
- have called lang_reset_memory_regions after sizing. */
- if (s->output_section != NULL
- && s->output_section->rawsize >= s->size)
- s->output_section->rawsize -= s->size;
-
- s->size = 0;
-
- /* Also set SEC_EXCLUDE, so that local symbols defined in the
- warning section don't get copied to the output. */
- s->flags |= SEC_EXCLUDE | SEC_KEEP;
- }
- }
-
- before_allocation_default ();
-
- if (!bfd_elf_size_dynsym_hash_dynstr (link_info.output_bfd, &link_info))
- einfo ("%P%F: failed to set dynamic section sizes: %E\n");
-}
-
-EOF
-fi
-
-if test x"$LDEMUL_OPEN_DYNAMIC_ARCHIVE" != xgld"$EMULATION_NAME"_open_dynamic_archive; then
-fragment <<EOF
-
-/* Try to open a dynamic archive. This is where we know that ELF
- dynamic libraries have an extension of .so (or .sl on oddball systems
- like hpux). */
-
-static bfd_boolean
-gld${EMULATION_NAME}_open_dynamic_archive
- (const char *arch, search_dirs_type *search, lang_input_statement_type *entry)
-{
- const char *filename;
- char *string;
-
- if (! entry->flags.maybe_archive)
- return FALSE;
-
- filename = entry->filename;
-
- /* This allocates a few bytes too many when EXTRA_SHLIB_EXTENSION
- is defined, but it does not seem worth the headache to optimize
- away those two bytes of space. */
- string = (char *) xmalloc (strlen (search->name)
- + strlen (filename)
- + strlen (arch)
-#ifdef EXTRA_SHLIB_EXTENSION
- + strlen (EXTRA_SHLIB_EXTENSION)
-#endif
- + sizeof "/lib.so");
-
- sprintf (string, "%s/lib%s%s.so", search->name, filename, arch);
-
-#ifdef EXTRA_SHLIB_EXTENSION
- /* Try the .so extension first. If that fails build a new filename
- using EXTRA_SHLIB_EXTENSION. */
- if (! ldfile_try_open_bfd (string, entry))
- {
- sprintf (string, "%s/lib%s%s%s", search->name,
- filename, arch, EXTRA_SHLIB_EXTENSION);
-#endif
-
- if (! ldfile_try_open_bfd (string, entry))
- {
- free (string);
- return FALSE;
- }
-#ifdef EXTRA_SHLIB_EXTENSION
- }
-#endif
-
- entry->filename = string;
-
- /* We have found a dynamic object to include in the link. The ELF
- backend linker will create a DT_NEEDED entry in the .dynamic
- section naming this file. If this file includes a DT_SONAME
- entry, it will be used. Otherwise, the ELF linker will just use
- the name of the file. For an archive found by searching, like
- this one, the DT_NEEDED entry should consist of just the name of
- the file, without the path information used to find it. Note
- that we only need to do this if we have a dynamic object; an
- archive will never be referenced by a DT_NEEDED entry.
-
- FIXME: This approach--using bfd_elf_set_dt_needed_name--is not
- very pretty. I haven't been able to think of anything that is
- pretty, though. */
- if (bfd_check_format (entry->the_bfd, bfd_object)
- && (entry->the_bfd->flags & DYNAMIC) != 0)
- {
- ASSERT (entry->flags.maybe_archive && entry->flags.search_dirs);
-
- /* Rather than duplicating the logic above. Just use the
- filename we recorded earlier. */
-
- filename = lbasename (entry->filename);
- bfd_elf_set_dt_needed_name (entry->the_bfd, filename);
- }
-
- return TRUE;
-}
-
-EOF
-fi
-
-if test x"$LDEMUL_PLACE_ORPHAN" != xgld"$EMULATION_NAME"_place_orphan; then
-fragment <<EOF
-
-/* A variant of lang_output_section_find used by place_orphan. */
-
-static lang_output_section_statement_type *
-output_rel_find (asection *sec, int isdyn)
-{
- lang_output_section_statement_type *lookup;
- lang_output_section_statement_type *last = NULL;
- lang_output_section_statement_type *last_alloc = NULL;
- lang_output_section_statement_type *last_ro_alloc = NULL;
- lang_output_section_statement_type *last_rel = NULL;
- lang_output_section_statement_type *last_rel_alloc = NULL;
- int rela = sec->name[4] == 'a';
-
- for (lookup = &lang_output_section_statement.head->output_section_statement;
- lookup != NULL;
- lookup = lookup->next)
- {
- if (lookup->constraint >= 0
- && CONST_STRNEQ (lookup->name, ".rel"))
- {
- int lookrela = lookup->name[4] == 'a';
-
- /* .rel.dyn must come before all other reloc sections, to suit
- GNU ld.so. */
- if (isdyn)
- break;
-
- /* Don't place after .rel.plt as doing so results in wrong
- dynamic tags. */
- if (strcmp (".plt", lookup->name + 4 + lookrela) == 0)
- break;
-
- if (rela == lookrela || last_rel == NULL)
- last_rel = lookup;
- if ((rela == lookrela || last_rel_alloc == NULL)
- && lookup->bfd_section != NULL
- && (lookup->bfd_section->flags & SEC_ALLOC) != 0)
- last_rel_alloc = lookup;
- }
-
- last = lookup;
- if (lookup->bfd_section != NULL
- && (lookup->bfd_section->flags & SEC_ALLOC) != 0)
- {
- last_alloc = lookup;
- if ((lookup->bfd_section->flags & SEC_READONLY) != 0)
- last_ro_alloc = lookup;
- }
- }
-
- if (last_rel_alloc)
- return last_rel_alloc;
-
- if (last_rel)
- return last_rel;
-
- if (last_ro_alloc)
- return last_ro_alloc;
-
- if (last_alloc)
- return last_alloc;
-
- return last;
-}
-
-/* Place an orphan section. We use this to put random SHF_ALLOC
- sections in the right segment. */
-
-static lang_output_section_statement_type *
-gld${EMULATION_NAME}_place_orphan (asection *s,
- const char *secname,
- int constraint)
-{
- static struct orphan_save hold[] =
- {
- { ".text",
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE,
- 0, 0, 0, 0 },
- { ".rodata",
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA,
- 0, 0, 0, 0 },
- { ".data",
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_DATA,
- 0, 0, 0, 0 },
- { ".bss",
- SEC_ALLOC,
- 0, 0, 0, 0 },
- { 0,
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA,
- 0, 0, 0, 0 },
- { ".interp",
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA,
- 0, 0, 0, 0 },
- { ".sdata",
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_DATA | SEC_SMALL_DATA,
- 0, 0, 0, 0 },
- { ".comment",
- SEC_HAS_CONTENTS,
- 0, 0, 0, 0 },
- };
- enum orphan_save_index
- {
- orphan_text = 0,
- orphan_rodata,
- orphan_data,
- orphan_bss,
- orphan_rel,
- orphan_interp,
- orphan_sdata,
- orphan_nonalloc
- };
- static int orphan_init_done = 0;
- struct orphan_save *place;
- lang_output_section_statement_type *after;
- 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;
-
- if (! link_info.relocatable
- && link_info.combreloc
- && (s->flags & SEC_ALLOC))
- {
- if (iself)
- switch (sh_type)
- {
- case SHT_RELA:
- secname = ".rela.dyn";
- isdyn = 1;
- break;
- case SHT_REL:
- secname = ".rel.dyn";
- isdyn = 1;
- break;
- default:
- break;
- }
- else if (CONST_STRNEQ (secname, ".rel"))
- {
- secname = secname[4] == 'a' ? ".rela.dyn" : ".rel.dyn";
- isdyn = 1;
- }
- }
-
- /* Look through the script to see where to place this section. */
- if (constraint == 0)
- for (os = lang_output_section_find (secname);
- os != NULL;
- os = next_matching_output_section_statement (os, 0))
- {
- /* If we don't match an existing output section, tell
- lang_insert_orphan to create a new output section. */
- constraint = SPECIAL;
-
- if (os->bfd_section != NULL
- && (os->bfd_section->flags == 0
- || (_bfd_elf_match_sections_by_type (link_info.output_bfd,
- os->bfd_section,
- s->owner, s)
- && ((s->flags ^ os->bfd_section->flags)
- & (SEC_LOAD | SEC_ALLOC)) == 0)))
- {
- /* 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;
- }
-
- /* Save unused output sections in case we can match them
- against orphans later. */
- if (os->bfd_section == NULL)
- match_by_name = os;
- }
-
- /* If we didn't match an active output section, see if we matched an
- unused one and use that. */
- if (match_by_name)
- {
- lang_add_section (&match_by_name->children, s, NULL, match_by_name);
- return match_by_name;
- }
-
- if (!orphan_init_done)
- {
- struct orphan_save *ho;
-
- for (ho = hold; ho < hold + sizeof (hold) / sizeof (hold[0]); ++ho)
- if (ho->name != NULL)
- {
- ho->os = lang_output_section_find (ho->name);
- if (ho->os != NULL && ho->os->flags == 0)
- ho->os->flags = ho->flags;
- }
- orphan_init_done = 1;
- }
-
- /* If this is a final link, then always put .gnu.warning.SYMBOL
- sections into the .text section to get them out of the way. */
- if (link_info.executable
- && ! link_info.relocatable
- && CONST_STRNEQ (s->name, ".gnu.warning.")
- && hold[orphan_text].os != NULL)
- {
- os = hold[orphan_text].os;
- lang_add_section (&os->children, s, NULL, os);
- return os;
- }
-
- /* Decide which segment the section should go in based on the
- section name and section flags. We put loadable .note sections
- right after the .interp section, so that the PT_NOTE segment is
- stored right after the program headers where the OS can read it
- in the first page. */
-
- place = NULL;
- if ((s->flags & (SEC_ALLOC | SEC_DEBUGGING)) == 0)
- place = &hold[orphan_nonalloc];
- else if ((s->flags & SEC_ALLOC) == 0)
- ;
- else if ((s->flags & SEC_LOAD) != 0
- && ((iself && sh_type == SHT_NOTE)
- || (!iself && CONST_STRNEQ (secname, ".note"))))
- place = &hold[orphan_interp];
- else if ((s->flags & (SEC_LOAD | SEC_HAS_CONTENTS | SEC_THREAD_LOCAL)) == 0)
- place = &hold[orphan_bss];
- else if ((s->flags & SEC_SMALL_DATA) != 0)
- place = &hold[orphan_sdata];
- else if ((s->flags & SEC_READONLY) == 0)
- place = &hold[orphan_data];
- else if (((iself && (sh_type == SHT_RELA || sh_type == SHT_REL))
- || (!iself && CONST_STRNEQ (secname, ".rel")))
- && (s->flags & SEC_LOAD) != 0)
- place = &hold[orphan_rel];
- else if ((s->flags & SEC_CODE) == 0)
- place = &hold[orphan_rodata];
- else
- place = &hold[orphan_text];
-
- after = NULL;
- if (place != NULL)
- {
- if (place->os == NULL)
- {
- if (place->name != NULL)
- place->os = lang_output_section_find (place->name);
- else
- place->os = output_rel_find (s, isdyn);
- }
- after = place->os;
- if (after == NULL)
- after = lang_output_section_find_by_flags
- (s, &place->os, _bfd_elf_match_sections_by_type);
- if (after == NULL)
- /* *ABS* is always the first output section statement. */
- after = &lang_output_section_statement.head->output_section_statement;
- }
-
- return lang_insert_orphan (s, secname, constraint, after, place, NULL, NULL);
-}
-EOF
-fi
-
-if test x"$LDEMUL_AFTER_ALLOCATION" != xgld"$EMULATION_NAME"_after_allocation; then
-fragment <<EOF
-
-static void
-gld${EMULATION_NAME}_after_allocation (void)
-{
- bfd_boolean need_layout = bfd_elf_discard_info (link_info.output_bfd,
- &link_info);
- gld${EMULATION_NAME}_map_segments (need_layout);
-}
-EOF
-fi
-
-if test x"$LDEMUL_GET_SCRIPT" != xgld"$EMULATION_NAME"_get_script; then
-fragment <<EOF
-
-static char *
-gld${EMULATION_NAME}_get_script (int *isfile)
-EOF
-
-if test -n "$COMPILE_IN"
-then
-# Scripts compiled in.
-
-# sed commands to quote an ld script as a C string.
-sc="-f stringify.sed"
-
-fragment <<EOF
-{
- *isfile = 0;
-
- if (link_info.relocatable && config.build_constructors)
- return
-EOF
-sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c
-if cmp -s ldscripts/${EMULATION_NAME}.x ldscripts/${EMULATION_NAME}.xn; then : ; else
-echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c
-fi
-if test -n "$GENERATE_PIE_SCRIPT" ; then
-if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
-echo ' ; else if (link_info.pie && link_info.combreloc' >> e${EMULATION_NAME}.c
-echo ' && link_info.relro' >> e${EMULATION_NAME}.c
-echo ' && (link_info.flags & DF_BIND_NOW)) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xdw >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.pie && link_info.combreloc) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xdc >> e${EMULATION_NAME}.c
-fi
-echo ' ; else if (link_info.pie) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xd >> e${EMULATION_NAME}.c
-fi
-if test -n "$GENERATE_SHLIB_SCRIPT" ; then
-if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
-echo ' ; else if (link_info.shared && link_info.combreloc' >> e${EMULATION_NAME}.c
-echo ' && link_info.relro' >> e${EMULATION_NAME}.c
-echo ' && (link_info.flags & DF_BIND_NOW)) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xsw >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.shared && link_info.combreloc) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xsc >> e${EMULATION_NAME}.c
-fi
-echo ' ; else if (link_info.shared) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xs >> e${EMULATION_NAME}.c
-fi
-if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
-echo ' ; else if (link_info.combreloc && link_info.relro' >> e${EMULATION_NAME}.c
-echo ' && (link_info.flags & DF_BIND_NOW)) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xw >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.combreloc) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xc >> e${EMULATION_NAME}.c
-fi
-echo ' ; else return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c
-echo '; }' >> e${EMULATION_NAME}.c
-
-else
-# Scripts read from the filesystem.
-
-fragment <<EOF
-{
- *isfile = 1;
-
- if (link_info.relocatable && config.build_constructors)
- return "ldscripts/${EMULATION_NAME}.xu";
- else if (link_info.relocatable)
- return "ldscripts/${EMULATION_NAME}.xr";
- else if (!config.text_read_only)
- return "ldscripts/${EMULATION_NAME}.xbn";
-EOF
-if cmp -s ldscripts/${EMULATION_NAME}.x ldscripts/${EMULATION_NAME}.xn; then :
-else
-fragment <<EOF
- else if (!config.magic_demand_paged)
- return "ldscripts/${EMULATION_NAME}.xn";
-EOF
-fi
-if test -n "$GENERATE_PIE_SCRIPT" ; then
-if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
-fragment <<EOF
- else if (link_info.pie && link_info.combreloc
- && link_info.relro && (link_info.flags & DF_BIND_NOW))
- return "ldscripts/${EMULATION_NAME}.xdw";
- else if (link_info.pie && link_info.combreloc)
- return "ldscripts/${EMULATION_NAME}.xdc";
-EOF
-fi
-fragment <<EOF
- else if (link_info.pie)
- return "ldscripts/${EMULATION_NAME}.xd";
-EOF
-fi
-if test -n "$GENERATE_SHLIB_SCRIPT" ; then
-if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
-fragment <<EOF
- else if (link_info.shared && link_info.combreloc
- && link_info.relro && (link_info.flags & DF_BIND_NOW))
- return "ldscripts/${EMULATION_NAME}.xsw";
- else if (link_info.shared && link_info.combreloc)
- return "ldscripts/${EMULATION_NAME}.xsc";
-EOF
-fi
-fragment <<EOF
- else if (link_info.shared)
- return "ldscripts/${EMULATION_NAME}.xs";
-EOF
-fi
-if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
-fragment <<EOF
- else if (link_info.combreloc && link_info.relro
- && (link_info.flags & DF_BIND_NOW))
- return "ldscripts/${EMULATION_NAME}.xw";
- else if (link_info.combreloc)
- return "ldscripts/${EMULATION_NAME}.xc";
-EOF
-fi
-fragment <<EOF
- else
- return "ldscripts/${EMULATION_NAME}.x";
-}
-
-EOF
-fi
-fi
-
-if test -n "$PARSE_AND_LIST_PROLOGUE" ; then
-fragment <<EOF
- $PARSE_AND_LIST_PROLOGUE
-EOF
-fi
-
-fragment <<EOF
-
-#define OPTION_DISABLE_NEW_DTAGS (400)
-#define OPTION_ENABLE_NEW_DTAGS (OPTION_DISABLE_NEW_DTAGS + 1)
-#define OPTION_GROUP (OPTION_ENABLE_NEW_DTAGS + 1)
-#define OPTION_EH_FRAME_HDR (OPTION_GROUP + 1)
-#define OPTION_EXCLUDE_LIBS (OPTION_EH_FRAME_HDR + 1)
-#define OPTION_HASH_STYLE (OPTION_EXCLUDE_LIBS + 1)
-#define OPTION_BUILD_ID (OPTION_HASH_STYLE + 1)
-#define OPTION_AUDIT (OPTION_BUILD_ID + 1)
-
-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)
-{
-EOF
-if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
-fragment <<EOF
- static const char xtra_short[] = "${PARSE_AND_LIST_SHORTOPTS}z:P:";
-EOF
-else
-fragment <<EOF
- static const char xtra_short[] = "${PARSE_AND_LIST_SHORTOPTS}z:";
-EOF
-fi
-fragment <<EOF
- static const struct option xtra_long[] = {
-EOF
-if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
-fragment <<EOF
- {"audit", required_argument, NULL, OPTION_AUDIT},
- {"Bgroup", no_argument, NULL, OPTION_GROUP},
-EOF
-fi
-fragment <<EOF
- {"build-id", optional_argument, NULL, OPTION_BUILD_ID},
-EOF
-if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
-fragment <<EOF
- {"depaudit", required_argument, NULL, 'P'},
- {"disable-new-dtags", no_argument, NULL, OPTION_DISABLE_NEW_DTAGS},
- {"enable-new-dtags", no_argument, NULL, OPTION_ENABLE_NEW_DTAGS},
- {"eh-frame-hdr", no_argument, NULL, OPTION_EH_FRAME_HDR},
- {"exclude-libs", required_argument, NULL, OPTION_EXCLUDE_LIBS},
- {"hash-style", required_argument, NULL, OPTION_HASH_STYLE},
-EOF
-fi
-if test -n "$PARSE_AND_LIST_LONGOPTS" ; then
-fragment <<EOF
- $PARSE_AND_LIST_LONGOPTS
-EOF
-fi
-fragment <<EOF
- {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));
-}
-
-#define DEFAULT_BUILD_ID_STYLE "sha1"
-
-static bfd_boolean
-gld${EMULATION_NAME}_handle_option (int optc)
-{
- switch (optc)
- {
- default:
- return FALSE;
-
- case OPTION_BUILD_ID:
- if (emit_note_gnu_build_id != NULL)
- {
- free ((char *) emit_note_gnu_build_id);
- emit_note_gnu_build_id = NULL;
- }
- if (optarg == NULL)
- optarg = DEFAULT_BUILD_ID_STYLE;
- if (strcmp (optarg, "none"))
- emit_note_gnu_build_id = xstrdup (optarg);
- break;
-
-EOF
-
-if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
-fragment <<EOF
- case OPTION_AUDIT:
- gld${EMULATION_NAME}_append_to_separated_string (&audit, optarg);
- break;
-
- case 'P':
- gld${EMULATION_NAME}_append_to_separated_string (&depaudit, optarg);
- break;
-
- case OPTION_DISABLE_NEW_DTAGS:
- link_info.new_dtags = FALSE;
- break;
-
- case OPTION_ENABLE_NEW_DTAGS:
- link_info.new_dtags = TRUE;
- break;
-
- case OPTION_EH_FRAME_HDR:
- link_info.eh_frame_hdr = TRUE;
- break;
-
- case OPTION_GROUP:
- link_info.flags_1 |= (bfd_vma) DF_1_GROUP;
- /* Groups must be self-contained. */
- link_info.unresolved_syms_in_objects = RM_GENERATE_ERROR;
- link_info.unresolved_syms_in_shared_libs = RM_GENERATE_ERROR;
- break;
-
- case OPTION_EXCLUDE_LIBS:
- add_excluded_libs (optarg);
- break;
-
- case OPTION_HASH_STYLE:
- link_info.emit_hash = FALSE;
- link_info.emit_gnu_hash = FALSE;
- if (strcmp (optarg, "sysv") == 0)
- link_info.emit_hash = TRUE;
- else if (strcmp (optarg, "gnu") == 0)
- link_info.emit_gnu_hash = TRUE;
- else if (strcmp (optarg, "both") == 0)
- {
- link_info.emit_hash = TRUE;
- link_info.emit_gnu_hash = TRUE;
- }
- else
- einfo (_("%P%F: invalid hash style \`%s'\n"), optarg);
- break;
-
-EOF
-fi
-fragment <<EOF
- case 'z':
- if (strcmp (optarg, "defs") == 0)
- link_info.unresolved_syms_in_objects = RM_GENERATE_ERROR;
- else if (strcmp (optarg, "muldefs") == 0)
- link_info.allow_multiple_definition = TRUE;
- else if (CONST_STRNEQ (optarg, "max-page-size="))
- {
- char *end;
-
- config.maxpagesize = strtoul (optarg + 14, &end, 0);
- if (*end || (config.maxpagesize & (config.maxpagesize - 1)) != 0)
- einfo (_("%P%F: invalid maxium page size \`%s'\n"),
- optarg + 14);
- }
- else if (CONST_STRNEQ (optarg, "common-page-size="))
- {
- char *end;
- config.commonpagesize = strtoul (optarg + 17, &end, 0);
- if (*end
- || (config.commonpagesize & (config.commonpagesize - 1)) != 0)
- einfo (_("%P%F: invalid common page size \`%s'\n"),
- optarg + 17);
- }
- else if (CONST_STRNEQ (optarg, "stack-size="))
- {
- char *end;
- link_info.stacksize = strtoul (optarg + 11, &end, 0);
- if (*end || link_info.stacksize < 0)
- einfo (_("%P%F: invalid stack size \`%s'\n"), optarg + 11);
- if (!link_info.stacksize)
- /* Use -1 for explicit no-stack, because zero means
- 'default'. */
- link_info.stacksize = -1;
- }
- else if (strcmp (optarg, "execstack") == 0)
- {
- link_info.execstack = TRUE;
- link_info.noexecstack = FALSE;
- }
- else if (strcmp (optarg, "noexecstack") == 0)
- {
- link_info.noexecstack = TRUE;
- link_info.execstack = FALSE;
- }
-EOF
-if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
-fragment <<EOF
- else if (strcmp (optarg, "global") == 0)
- link_info.flags_1 |= (bfd_vma) DF_1_GLOBAL;
- else if (strcmp (optarg, "initfirst") == 0)
- link_info.flags_1 |= (bfd_vma) DF_1_INITFIRST;
- else if (strcmp (optarg, "interpose") == 0)
- link_info.flags_1 |= (bfd_vma) DF_1_INTERPOSE;
- else if (strcmp (optarg, "loadfltr") == 0)
- link_info.flags_1 |= (bfd_vma) DF_1_LOADFLTR;
- else if (strcmp (optarg, "nodefaultlib") == 0)
- link_info.flags_1 |= (bfd_vma) DF_1_NODEFLIB;
- else if (strcmp (optarg, "nodelete") == 0)
- link_info.flags_1 |= (bfd_vma) DF_1_NODELETE;
- else if (strcmp (optarg, "nodlopen") == 0)
- link_info.flags_1 |= (bfd_vma) DF_1_NOOPEN;
- else if (strcmp (optarg, "nodump") == 0)
- link_info.flags_1 |= (bfd_vma) DF_1_NODUMP;
- else if (strcmp (optarg, "now") == 0)
- {
- link_info.flags |= (bfd_vma) DF_BIND_NOW;
- link_info.flags_1 |= (bfd_vma) DF_1_NOW;
- }
- else if (strcmp (optarg, "lazy") == 0)
- {
- link_info.flags &= ~(bfd_vma) DF_BIND_NOW;
- link_info.flags_1 &= ~(bfd_vma) DF_1_NOW;
- }
- else if (strcmp (optarg, "origin") == 0)
- {
- link_info.flags |= (bfd_vma) DF_ORIGIN;
- link_info.flags_1 |= (bfd_vma) DF_1_ORIGIN;
- }
- else if (strcmp (optarg, "combreloc") == 0)
- link_info.combreloc = TRUE;
- else if (strcmp (optarg, "nocombreloc") == 0)
- link_info.combreloc = FALSE;
- else if (strcmp (optarg, "nocopyreloc") == 0)
- link_info.nocopyreloc = TRUE;
- else if (strcmp (optarg, "relro") == 0)
- link_info.relro = TRUE;
- else if (strcmp (optarg, "norelro") == 0)
- link_info.relro = FALSE;
- else if (strcmp (optarg, "text") == 0)
- link_info.error_textrel = TRUE;
- else if (strcmp (optarg, "notext") == 0)
- link_info.error_textrel = FALSE;
- else if (strcmp (optarg, "textoff") == 0)
- link_info.error_textrel = FALSE;
-EOF
-fi
-
-fragment <<EOF
- else
- einfo (_("%P: warning: -z %s ignored.\n"), optarg);
- break;
-EOF
-
-if test -n "$PARSE_AND_LIST_ARGS_CASES" ; then
-fragment <<EOF
- $PARSE_AND_LIST_ARGS_CASES
-EOF
-fi
-
-fragment <<EOF
- }
-
- return TRUE;
-}
-
-EOF
-
-if test x"$LDEMUL_LIST_OPTIONS" != xgld"$EMULATION_NAME"_list_options; then
-fragment <<EOF
-
-static void
-gld${EMULATION_NAME}_list_options (FILE * file)
-{
-EOF
-if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
-fragment <<EOF
- fprintf (file, _("\
- --audit=AUDITLIB Specify a library to use for auditing\n"));
- fprintf (file, _("\
- -Bgroup Selects group name lookup rules for DSO\n"));
-EOF
-fi
-fragment <<EOF
- fprintf (file, _("\
- --build-id[=STYLE] Generate build ID note\n"));
-EOF
-if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
-fragment <<EOF
- fprintf (file, _("\
- -P AUDITLIB, --depaudit=AUDITLIB\n" "\
- Specify a library to use for auditing dependencies\n"));
- fprintf (file, _("\
- --disable-new-dtags Disable new dynamic tags\n"));
- fprintf (file, _("\
- --enable-new-dtags Enable new dynamic tags\n"));
- fprintf (file, _("\
- --eh-frame-hdr Create .eh_frame_hdr section\n"));
- fprintf (file, _("\
- --exclude-libs=LIBS Make all symbols in LIBS hidden\n"));
- fprintf (file, _("\
- --hash-style=STYLE Set hash style to sysv, gnu or both\n"));
- fprintf (file, _("\
- -z combreloc Merge dynamic relocs into one section and sort\n"));
-EOF
-fi
-
-fragment <<EOF
- fprintf (file, _("\
- -z common-page-size=SIZE Set common page size to SIZE\n"));
- fprintf (file, _("\
- -z defs Report unresolved symbols in object files.\n"));
- fprintf (file, _("\
- -z execstack Mark executable as requiring executable stack\n"));
-EOF
-
-if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
-fragment <<EOF
- fprintf (file, _("\
- -z global Make symbols in DSO available for subsequently\n\
- loaded objects\n"));
- fprintf (file, _("\
- -z initfirst Mark DSO to be initialized first at runtime\n"));
- fprintf (file, _("\
- -z interpose Mark object to interpose all DSOs but executable\n"));
- fprintf (file, _("\
- -z lazy Mark object lazy runtime binding (default)\n"));
- fprintf (file, _("\
- -z loadfltr Mark object requiring immediate process\n"));
-EOF
-fi
-
-fragment <<EOF
- fprintf (file, _("\
- -z max-page-size=SIZE Set maximum page size to SIZE\n"));
- fprintf (file, _("\
- -z muldefs Allow multiple definitions\n"));
-EOF
-
-if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
-fragment <<EOF
- fprintf (file, _("\
- -z nocombreloc Don't merge dynamic relocs into one section\n"));
- fprintf (file, _("\
- -z nocopyreloc Don't create copy relocs\n"));
- fprintf (file, _("\
- -z nodefaultlib Mark object not to use default search paths\n"));
- fprintf (file, _("\
- -z nodelete Mark DSO non-deletable at runtime\n"));
- fprintf (file, _("\
- -z nodlopen Mark DSO not available to dlopen\n"));
- fprintf (file, _("\
- -z nodump Mark DSO not available to dldump\n"));
-EOF
-fi
-fragment <<EOF
- fprintf (file, _("\
- -z noexecstack Mark executable as not requiring executable stack\n"));
-EOF
-if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
-fragment <<EOF
- fprintf (file, _("\
- -z norelro Don't create RELRO program header\n"));
- fprintf (file, _("\
- -z now Mark object non-lazy runtime binding\n"));
- fprintf (file, _("\
- -z origin Mark object requiring immediate \$ORIGIN\n\
- processing at runtime\n"));
- fprintf (file, _("\
- -z relro Create RELRO program header\n"));
- fprintf (file, _("\
- -z stacksize=SIZE Set size of stack segment\n"));
-EOF
-fi
-
-if test -n "$PARSE_AND_LIST_OPTIONS" ; then
-fragment <<EOF
- $PARSE_AND_LIST_OPTIONS
-EOF
-fi
-
-fragment <<EOF
-}
-EOF
-
-if test -n "$PARSE_AND_LIST_EPILOGUE" ; then
-fragment <<EOF
- $PARSE_AND_LIST_EPILOGUE
-EOF
-fi
-fi
-
-fragment <<EOF
-
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
-{
- ${LDEMUL_BEFORE_PARSE-gld${EMULATION_NAME}_before_parse},
- ${LDEMUL_SYSLIB-syslib_default},
- ${LDEMUL_HLL-hll_default},
- ${LDEMUL_AFTER_PARSE-after_parse_default},
- ${LDEMUL_AFTER_OPEN-gld${EMULATION_NAME}_after_open},
- ${LDEMUL_AFTER_ALLOCATION-gld${EMULATION_NAME}_after_allocation},
- ${LDEMUL_SET_OUTPUT_ARCH-set_output_arch_default},
- ${LDEMUL_CHOOSE_TARGET-ldemul_default_target},
- ${LDEMUL_BEFORE_ALLOCATION-gld${EMULATION_NAME}_before_allocation},
- ${LDEMUL_GET_SCRIPT-gld${EMULATION_NAME}_get_script},
- "${EMULATION_NAME}",
- "${OUTPUT_FORMAT}",
- ${LDEMUL_FINISH-finish_default},
- ${LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS-NULL},
- ${LDEMUL_OPEN_DYNAMIC_ARCHIVE-gld${EMULATION_NAME}_open_dynamic_archive},
- ${LDEMUL_PLACE_ORPHAN-gld${EMULATION_NAME}_place_orphan},
- ${LDEMUL_SET_SYMBOLS-NULL},
- ${LDEMUL_PARSE_ARGS-NULL},
- gld${EMULATION_NAME}_add_options,
- gld${EMULATION_NAME}_handle_option,
- ${LDEMUL_UNRECOGNIZED_FILE-NULL},
- ${LDEMUL_LIST_OPTIONS-gld${EMULATION_NAME}_list_options},
- ${LDEMUL_RECOGNIZED_FILE-gld${EMULATION_NAME}_load_symbols},
- ${LDEMUL_FIND_POTENTIAL_LIBRARIES-NULL},
- ${LDEMUL_NEW_VERS_PATTERN-NULL}
-};
-EOF
diff --git a/ld/emultempl/epiphanyelf_4x4.em b/ld/emultempl/epiphanyelf_4x4.em
deleted file mode 100644
index 9f913ea..0000000
--- a/ld/emultempl/epiphanyelf_4x4.em
+++ /dev/null
@@ -1,32 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 1991, 1993, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-# 2004, 2005, 2007, 2008
-# 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.
-#
-
-# This file is sourced from elf32.em, and defines extra epiphany-elf
-# specific routines.
-#
-
-fragment <<EOF
-
-
-EOF
-
diff --git a/ld/emultempl/genelf.em b/ld/emultempl/genelf.em
deleted file mode 100644
index ce416eb..0000000
--- a/ld/emultempl/genelf.em
+++ /dev/null
@@ -1,71 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2006, 2007, 2008, 2009 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.
-#
-
-# This file is sourced from generic.em
-#
-fragment <<EOF
-#include "elf-bfd.h"
-
-EOF
-source_em ${srcdir}/emultempl/elf-generic.em
-fragment <<EOF
-
-static void
-gld${EMULATION_NAME}_after_open (void)
-{
- bfd *ibfd;
- asection *sec;
- asymbol **syms;
-
- after_open_default ();
-
- if (link_info.relocatable)
- for (ibfd = link_info.input_bfds; ibfd != NULL; ibfd = ibfd->link_next)
- if ((syms = bfd_get_outsymbols (ibfd)) != NULL
- && bfd_get_flavour (ibfd) == bfd_target_elf_flavour)
- for (sec = ibfd->sections; sec != NULL; sec = sec->next)
- if ((sec->flags & (SEC_GROUP | SEC_LINKER_CREATED)) == SEC_GROUP)
- {
- struct bfd_elf_section_data *sec_data = elf_section_data (sec);
- elf_group_id (sec) = syms[sec_data->this_hdr.sh_info - 1];
- }
-}
-
-static void
-gld${EMULATION_NAME}_before_allocation (void)
-{
- if (link_info.relocatable
- && !_bfd_elf_size_group_sections (&link_info))
- einfo ("%X%P: can not size group sections: %E\n");
- before_allocation_default ();
-}
-
-static void
-gld${EMULATION_NAME}_after_allocation (void)
-{
- gld${EMULATION_NAME}_map_segments (FALSE);
-}
-EOF
-# Put these extra routines in ld_${EMULATION_NAME}_emulation
-#
-LDEMUL_AFTER_OPEN=gld${EMULATION_NAME}_after_open
-LDEMUL_BEFORE_ALLOCATION=gld${EMULATION_NAME}_before_allocation
-LDEMUL_AFTER_ALLOCATION=gld${EMULATION_NAME}_after_allocation
diff --git a/ld/emultempl/generic.em b/ld/emultempl/generic.em
deleted file mode 100644
index dce2bff..0000000
--- a/ld/emultempl/generic.em
+++ /dev/null
@@ -1,161 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-fragment <<EOF
-/* This file is is generated by a shell script. DO NOT EDIT! */
-
-/* emulate the original gld for the given ${EMULATION_NAME}
- Copyright 1991, 1992, 1994, 1996, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
- 2007 Free Software Foundation, Inc.
- Written by Steve Chamberlain steve@cygnus.com
-
- 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. */
-
-#define TARGET_IS_${EMULATION_NAME}
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "bfdlink.h"
-
-#include "ld.h"
-#include "ldmain.h"
-#include "ldmisc.h"
-
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-
-EOF
-
-# Import any needed special functions and/or overrides.
-#
-if test -n "$EXTRA_EM_FILE" ; then
- source_em ${srcdir}/emultempl/${EXTRA_EM_FILE}.em
-fi
-
-if test x"$LDEMUL_BEFORE_PARSE" != xgld"$EMULATION_NAME"_before_parse; then
-fragment <<EOF
-
-static void
-gld${EMULATION_NAME}_before_parse (void)
-{
-#ifndef TARGET_ /* I.e., if not generic. */
- ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown);
-#endif /* not TARGET_ */
-EOF
- # The MSP430 port *needs* linker relaxtion in order to cope with large
- # functions where conditional branches do not fit into a +/- 1024 byte range.
- case ${target} in
- msp430-*-* )
-fragment <<EOF
- if (! link_info.relocatable)
- TARGET_ENABLE_RELAXATION;
-EOF
- ;;
- esac
-fragment <<EOF
-}
-
-EOF
-fi
-
-if test x"$LDEMUL_GET_SCRIPT" != xgld"$EMULATION_NAME"_get_script; then
-fragment <<EOF
-
-static char *
-gld${EMULATION_NAME}_get_script (int *isfile)
-EOF
-
-if test -n "$COMPILE_IN"
-then
-# Scripts compiled in.
-
-# sed commands to quote an ld script as a C string.
-sc="-f stringify.sed"
-
-fragment <<EOF
-{
- *isfile = 0;
-
- if (link_info.relocatable && config.build_constructors)
- return
-EOF
-sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c
-echo ' ; else return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c
-echo '; }' >> e${EMULATION_NAME}.c
-
-else
-# Scripts read from the filesystem.
-
-fragment <<EOF
-{
- *isfile = 1;
-
- if (link_info.relocatable && config.build_constructors)
- return "ldscripts/${EMULATION_NAME}.xu";
- else if (link_info.relocatable)
- return "ldscripts/${EMULATION_NAME}.xr";
- else if (!config.text_read_only)
- return "ldscripts/${EMULATION_NAME}.xbn";
- else if (!config.magic_demand_paged)
- return "ldscripts/${EMULATION_NAME}.xn";
- else
- return "ldscripts/${EMULATION_NAME}.x";
-}
-EOF
-fi
-fi
-
-fragment <<EOF
-
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
-{
- ${LDEMUL_BEFORE_PARSE-gld${EMULATION_NAME}_before_parse},
- ${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},
- ${LDEMUL_SET_OUTPUT_ARCH-set_output_arch_default},
- ${LDEMUL_CHOOSE_TARGET-ldemul_default_target},
- ${LDEMUL_BEFORE_ALLOCATION-before_allocation_default},
- ${LDEMUL_GET_SCRIPT-gld${EMULATION_NAME}_get_script},
- "${EMULATION_NAME}",
- "${OUTPUT_FORMAT}",
- ${LDEMUL_FINISH-finish_default},
- ${LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS-NULL},
- ${LDEMUL_OPEN_DYNAMIC_ARCHIVE-NULL},
- ${LDEMUL_PLACE_ORPHAN-NULL},
- ${LDEMUL_SET_SYMBOLS-NULL},
- ${LDEMUL_PARSE_ARGS-NULL},
- ${LDEMUL_ADD_OPTIONS-NULL},
- ${LDEMUL_HANDLE_OPTION-NULL},
- ${LDEMUL_UNRECOGNIZED_FILE-NULL},
- ${LDEMUL_LIST_OPTIONS-NULL},
- ${LDEMUL_RECOGNIZED_FILE-NULL},
- ${LDEMUL_FIND_POTENTIAL_LIBRARIES-NULL},
- ${LDEMUL_NEW_VERS_PATTERN-NULL}
-};
-EOF
diff --git a/ld/emultempl/gld960.em b/ld/emultempl/gld960.em
deleted file mode 100644
index 4ba3eec..0000000
--- a/ld/emultempl/gld960.em
+++ /dev/null
@@ -1,154 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-fragment <<EOF
-/* Copyright 1991, 1992, 1994, 1999, 2000, 2001, 2002, 2003, 2005, 2007, 2008
- 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. */
-
-
-/* Emulate the Intel's port of gld. */
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "libiberty.h"
-#include "bfdlink.h"
-
-#include "ld.h"
-#include "ldmisc.h"
-#include "ldmain.h"
-
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-
-static void gld960_before_parse (void)
-{
- char *env ;
- env = getenv("G960LIB");
- if (env) {
- ldfile_add_library_path(env, FALSE);
- }
- env = getenv("G960BASE");
- if (env)
- ldfile_add_library_path (concat (env, "/lib", (const char *) NULL), FALSE);
- ldfile_output_architecture = bfd_arch_i960;
-}
-
-static void
-gld960_set_output_arch (void)
-{
- bfd_set_arch_mach (link_info.output_bfd,
- ldfile_output_architecture, bfd_mach_i960_core);
-}
-
-static char *
-gld960_choose_target (int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- output_filename = "b.out";
-
- if (from_outside != (char *)NULL)
- return from_outside;
-
- return "b.out.little";
-}
-
-static char *
-gld960_get_script (int *isfile)
-EOF
-
-if test -n "$COMPILE_IN"
-then
-# Scripts compiled in.
-
-# sed commands to quote an ld script as a C string.
-sc="-f stringify.sed"
-
-fragment <<EOF
-{
- *isfile = 0;
-
- if (link_info.relocatable && config.build_constructors)
- return
-EOF
-sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c
-echo ' ; else return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c
-echo '; }' >> e${EMULATION_NAME}.c
-
-else
-# Scripts read from the filesystem.
-
-fragment <<EOF
-{
- *isfile = 1;
-
- if (link_info.relocatable && config.build_constructors)
- return "ldscripts/${EMULATION_NAME}.xu";
- else if (link_info.relocatable)
- return "ldscripts/${EMULATION_NAME}.xr";
- else if (!config.text_read_only)
- return "ldscripts/${EMULATION_NAME}.xbn";
- else if (!config.magic_demand_paged)
- return "ldscripts/${EMULATION_NAME}.xn";
- else
- return "ldscripts/${EMULATION_NAME}.x";
-}
-EOF
-
-fi
-
-fragment <<EOF
-
-struct ld_emulation_xfer_struct ld_gld960_emulation =
-{
- gld960_before_parse,
- syslib_default,
- hll_default,
- after_parse_default,
- after_open_default,
- after_allocation_default,
- gld960_set_output_arch,
- gld960_choose_target,
- before_allocation_default,
- gld960_get_script,
- "960",
- "",
- finish_default,
- NULL, /* create output section statements */
- NULL, /* open dynamic archive */
- NULL, /* place orphan */
- NULL, /* set symbols */
- NULL, /* parse args */
- NULL, /* add_options */
- NULL, /* handle_option */
- NULL, /* unrecognized file */
- NULL, /* list options */
- NULL, /* recognized file */
- NULL, /* find_potential_libraries */
- NULL /* new_vers_pattern */
-};
-EOF
diff --git a/ld/emultempl/gld960c.em b/ld/emultempl/gld960c.em
deleted file mode 100644
index 1999ea8..0000000
--- a/ld/emultempl/gld960c.em
+++ /dev/null
@@ -1,167 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-fragment <<EOF
-/* Copyright 1991, 1993, 1994, 1996, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005, 2007 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. */
-
-
-/* Emulate the Intel's port of gld. */
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "libiberty.h"
-#include "safe-ctype.h"
-#include "bfdlink.h"
-
-#include "ld.h"
-#include "ldmisc.h"
-#include "ldmain.h"
-
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-
-static void gld960_before_parse (void)
-{
- char *env ;
- env = getenv("G960LIB");
- if (env) {
- ldfile_add_library_path(env, FALSE);
- }
- env = getenv("G960BASE");
- if (env)
- ldfile_add_library_path (concat (env, "/lib", (const char *) NULL),
- FALSE);
- ldfile_output_architecture = bfd_arch_i960;
-}
-
-static void
-gld960_set_output_arch (void)
-{
- if (ldfile_output_machine_name != NULL
- && *ldfile_output_machine_name != '\0')
- {
- char *s, *s1;
-
- s = concat ("i960:", ldfile_output_machine_name, (char *) NULL);
- for (s1 = s; *s1 != '\0'; s1++)
- *s1 = TOLOWER (*s1);
- ldfile_set_output_arch (s, bfd_arch_unknown);
- free (s);
- }
-
- set_output_arch_default ();
-}
-
-static char *
-gld960_choose_target (int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
-{
- char *from_outside = getenv(TARGET_ENVIRON);
- output_filename = "b.out";
-
- if (from_outside != (char *)NULL)
- return from_outside;
-
- return "coff-Intel-little";
-}
-
-static char *
-gld960_get_script (int *isfile)
-EOF
-
-if test -n "$COMPILE_IN"
-then
-# Scripts compiled in.
-
-# sed commands to quote an ld script as a C string.
-sc="-f stringify.sed"
-
-fragment <<EOF
-{
- *isfile = 0;
-
- if (link_info.relocatable && config.build_constructors)
- return
-EOF
-sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c
-echo ' ; else return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c
-echo '; }' >> e${EMULATION_NAME}.c
-
-else
-# Scripts read from the filesystem.
-
-fragment <<EOF
-{
- *isfile = 1;
-
- if (link_info.relocatable && config.build_constructors)
- return "ldscripts/${EMULATION_NAME}.xu";
- else if (link_info.relocatable)
- return "ldscripts/${EMULATION_NAME}.xr";
- else if (!config.text_read_only)
- return "ldscripts/${EMULATION_NAME}.xbn";
- else if (!config.magic_demand_paged)
- return "ldscripts/${EMULATION_NAME}.xn";
- else
- return "ldscripts/${EMULATION_NAME}.x";
-}
-EOF
-
-fi
-
-fragment <<EOF
-
-struct ld_emulation_xfer_struct ld_gld960coff_emulation =
-{
- gld960_before_parse,
- syslib_default,
- hll_default,
- after_parse_default,
- after_open_default,
- after_allocation_default,
- gld960_set_output_arch,
- gld960_choose_target,
- before_allocation_default,
- gld960_get_script,
- "960coff",
- "",
- finish_default,
- NULL, /* create output section statements */
- NULL, /* open dynamic archive */
- NULL, /* place orphan */
- NULL, /* set symbols */
- NULL, /* parse args */
- NULL, /* add_options */
- NULL, /* handle_option */
- NULL, /* unrecognized file */
- NULL, /* list options */
- NULL, /* recognized file */
- NULL, /* find_potential_libraries */
- NULL /* new_vers_pattern */
-};
-EOF
diff --git a/ld/emultempl/hppaelf.em b/ld/emultempl/hppaelf.em
deleted file mode 100644
index 65c1ea5..0000000
--- a/ld/emultempl/hppaelf.em
+++ /dev/null
@@ -1,380 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 1991, 1993, 1994, 1997, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2012 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.
-#
-
-# This file is sourced from elf32.em, and defines extra hppa-elf
-# specific routines.
-#
-fragment <<EOF
-
-#include "ldctor.h"
-#include "elf32-hppa.h"
-
-
-/* Fake input file for stubs. */
-static lang_input_statement_type *stub_file;
-
-/* Type of import/export stubs to build. For a single sub-space model,
- we can build smaller import stubs and there is no need for export
- stubs. */
-static int multi_subspace = 0;
-
-/* Whether we need to call hppa_layout_sections_again. */
-static int need_laying_out = 0;
-
-/* Maximum size of a group of input sections that can be handled by
- one stub section. A value of +/-1 indicates the bfd back-end
- should use a suitable default size. */
-static bfd_signed_vma group_size = 1;
-
-/* Stops the linker merging .text sections on a relocatable link,
- and adds millicode library to the list of input files. */
-
-static void
-hppaelf_after_parse (void)
-{
- if (link_info.relocatable)
- lang_add_unique (".text");
-
- /* Enable this once we split millicode stuff from libgcc:
- lang_add_input_file ("milli",
- lang_input_file_is_l_enum,
- NULL);
- */
-
- after_parse_default ();
-}
-
-/* This is called before the input files are opened. We create a new
- fake input file to hold the stub sections. */
-
-static void
-hppaelf_create_output_section_statements (void)
-{
- if (!(bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour
- && (elf_object_id (link_info.output_bfd) == HPPA32_ELF_DATA
- || elf_object_id (link_info.output_bfd) == HPPA64_ELF_DATA)))
- return;
-
- stub_file = lang_add_input_file ("linker stubs",
- lang_input_file_is_fake_enum,
- NULL);
- stub_file->the_bfd = bfd_create ("linker stubs", link_info.output_bfd);
- if (stub_file->the_bfd == NULL
- || ! bfd_set_arch_mach (stub_file->the_bfd,
- bfd_get_arch (link_info.output_bfd),
- bfd_get_mach (link_info.output_bfd)))
- {
- einfo ("%X%P: can not create BFD %E\n");
- return;
- }
-
- stub_file->the_bfd->flags |= BFD_LINKER_CREATED;
- ldlang_add_file (stub_file);
-}
-
-
-struct hook_stub_info
-{
- lang_statement_list_type add;
- asection *input_section;
-};
-
-/* Traverse the linker tree to find the spot where the stub goes. */
-
-static bfd_boolean
-hook_in_stub (struct hook_stub_info *info, lang_statement_union_type **lp)
-{
- lang_statement_union_type *l;
- bfd_boolean ret;
-
- for (; (l = *lp) != NULL; lp = &l->header.next)
- {
- switch (l->header.type)
- {
- case lang_constructors_statement_enum:
- ret = hook_in_stub (info, &constructor_list.head);
- if (ret)
- return ret;
- break;
-
- case lang_output_section_statement_enum:
- ret = hook_in_stub (info,
- &l->output_section_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_wild_statement_enum:
- ret = hook_in_stub (info, &l->wild_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_group_statement_enum:
- ret = hook_in_stub (info, &l->group_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_input_section_enum:
- if (l->input_section.section == info->input_section)
- {
- /* We've found our section. Insert the stub immediately
- before its associated input section. */
- *lp = info->add.head;
- *(info->add.tail) = l;
- return TRUE;
- }
- break;
-
- case lang_data_statement_enum:
- case lang_reloc_statement_enum:
- case lang_object_symbols_statement_enum:
- case lang_output_statement_enum:
- case lang_target_statement_enum:
- case lang_input_statement_enum:
- case lang_assignment_statement_enum:
- case lang_padding_statement_enum:
- case lang_address_statement_enum:
- case lang_fill_statement_enum:
- break;
-
- default:
- FAIL ();
- break;
- }
- }
- return FALSE;
-}
-
-
-/* Call-back for elf32_hppa_size_stubs. */
-
-/* Create a new stub section, and arrange for it to be linked
- immediately before INPUT_SECTION. */
-
-static asection *
-hppaelf_add_stub_section (const char *stub_sec_name, asection *input_section)
-{
- asection *stub_sec;
- flagword flags;
- asection *output_section;
- const char *secname;
- lang_output_section_statement_type *os;
- struct hook_stub_info info;
-
- flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE
- | SEC_HAS_CONTENTS | SEC_RELOC | SEC_IN_MEMORY | SEC_KEEP);
- stub_sec = bfd_make_section_anyway_with_flags (stub_file->the_bfd,
- stub_sec_name, flags);
- if (stub_sec == NULL)
- goto err_ret;
-
- output_section = input_section->output_section;
- secname = bfd_get_section_name (output_section->owner, output_section);
- os = lang_output_section_find (secname);
-
- info.input_section = input_section;
- lang_list_init (&info.add);
- lang_add_section (&info.add, stub_sec, NULL, os);
-
- if (info.add.head == NULL)
- goto err_ret;
-
- if (hook_in_stub (&info, &os->children.head))
- return stub_sec;
-
- err_ret:
- einfo ("%X%P: can not make stub section: %E\n");
- return NULL;
-}
-
-
-/* Another call-back for elf32_hppa_size_stubs. */
-
-static void
-hppaelf_layout_sections_again (void)
-{
- /* If we have changed sizes of the stub sections, then we need
- to recalculate all the section offsets. This may mean we need to
- add even more stubs. */
- gld${EMULATION_NAME}_map_segments (TRUE);
- need_laying_out = -1;
-}
-
-
-static void
-build_section_lists (lang_statement_union_type *statement)
-{
- if (statement->header.type == lang_input_section_enum)
- {
- asection *i = statement->input_section.section;
-
- if (i->sec_info_type != SEC_INFO_TYPE_JUST_SYMS
- && (i->flags & SEC_EXCLUDE) == 0
- && i->output_section != NULL
- && i->output_section->owner == link_info.output_bfd)
- {
- elf32_hppa_next_input_section (&link_info, i);
- }
- }
-}
-
-
-/* For the PA we use this opportunity to size and build linker stubs. */
-
-static void
-gld${EMULATION_NAME}_after_allocation (void)
-{
- /* bfd_elf_discard_info just plays with data and debugging sections,
- ie. doesn't affect code size, so we can delay resizing the
- sections. It's likely we'll resize everything in the process of
- adding stubs. */
- if (bfd_elf_discard_info (link_info.output_bfd, &link_info))
- need_laying_out = 1;
-
- /* If generating a relocatable output file, then we don't
- have to examine the relocs. */
- if (stub_file != NULL && !link_info.relocatable)
- {
- int ret = elf32_hppa_setup_section_lists (link_info.output_bfd,
- &link_info);
-
- if (ret != 0)
- {
- if (ret < 0)
- {
- einfo ("%X%P: can not size stub section: %E\n");
- return;
- }
-
- lang_for_each_statement (build_section_lists);
-
- /* Call into the BFD backend to do the real work. */
- if (! elf32_hppa_size_stubs (link_info.output_bfd,
- stub_file->the_bfd,
- &link_info,
- multi_subspace,
- group_size,
- &hppaelf_add_stub_section,
- &hppaelf_layout_sections_again))
- {
- einfo ("%X%P: can not size stub section: %E\n");
- return;
- }
- }
- }
-
- if (need_laying_out != -1)
- gld${EMULATION_NAME}_map_segments (need_laying_out);
-
- if (! link_info.relocatable)
- {
- /* Set the global data pointer. */
- if (! elf32_hppa_set_gp (link_info.output_bfd, &link_info))
- {
- einfo ("%X%P: can not set gp\n");
- return;
- }
-
- /* Now build the linker stubs. */
- if (stub_file != NULL && stub_file->the_bfd->sections != NULL)
- {
- if (! elf32_hppa_build_stubs (&link_info))
- einfo ("%X%P: can not build stubs: %E\n");
- }
- }
-}
-
-
-/* Avoid processing the fake stub_file in vercheck, stat_needed and
- check_needed routines. */
-
-static void (*real_func) (lang_input_statement_type *);
-
-static void hppa_for_each_input_file_wrapper (lang_input_statement_type *l)
-{
- if (l != stub_file)
- (*real_func) (l);
-}
-
-static void
-hppa_lang_for_each_input_file (void (*func) (lang_input_statement_type *))
-{
- real_func = func;
- lang_for_each_input_file (&hppa_for_each_input_file_wrapper);
-}
-
-#define lang_for_each_input_file hppa_lang_for_each_input_file
-
-EOF
-
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE='
-#define OPTION_MULTI_SUBSPACE 301
-#define OPTION_STUBGROUP_SIZE (OPTION_MULTI_SUBSPACE + 1)
-'
-
-PARSE_AND_LIST_LONGOPTS='
- { "multi-subspace", no_argument, NULL, OPTION_MULTI_SUBSPACE },
- { "stub-group-size", required_argument, NULL, OPTION_STUBGROUP_SIZE },
-'
-
-PARSE_AND_LIST_OPTIONS='
- fprintf (file, _("\
- --multi-subspace Generate import and export stubs to support\n\
- multiple sub-space shared libraries\n"
- ));
- fprintf (file, _("\
- --stub-group-size=N Maximum size of a group of input sections that\n\
- can be handled by one stub section. A negative\n\
- value locates all stubs before their branches\n\
- (with a group size of -N), while a positive\n\
- value allows two groups of input sections, one\n\
- before, and one after each stub section.\n\
- Values of +/-1 indicate the linker should\n\
- choose suitable defaults.\n"
- ));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
- case OPTION_MULTI_SUBSPACE:
- multi_subspace = 1;
- break;
-
- case OPTION_STUBGROUP_SIZE:
- {
- const char *end;
- group_size = bfd_scan_vma (optarg, &end, 0);
- if (*end)
- einfo (_("%P%F: invalid number `%s'\''\n"), optarg);
- }
- break;
-'
-
-# Put these extra hppaelf routines in ld_${EMULATION_NAME}_emulation
-#
-LDEMUL_AFTER_PARSE=hppaelf_after_parse
-LDEMUL_AFTER_ALLOCATION=gld${EMULATION_NAME}_after_allocation
-LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=hppaelf_create_output_section_statements
diff --git a/ld/emultempl/ia64elf.em b/ld/emultempl/ia64elf.em
deleted file mode 100644
index 88d5748..0000000
--- a/ld/emultempl/ia64elf.em
+++ /dev/null
@@ -1,65 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2003, 2005, 2006, 2007, 2009 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.
-#
-
-# This file is sourced from elf32.em, and defines extra ia64-elf
-# specific routines.
-#
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-fragment <<EOF
-
-/* None zero if generating binary for Intel Itanium processor. */
-static int itanium = 0;
-
-static void
-gld${EMULATION_NAME}_after_parse (void)
-{
- link_info.relax_pass = 2;
- bfd_elf${ELFSIZE}_ia64_after_parse (itanium);
-
- after_parse_default ();
-}
-
-EOF
-
-PARSE_AND_LIST_PROLOGUE='
-#define OPTION_ITANIUM 300
-'
-
-PARSE_AND_LIST_LONGOPTS='
- { "itanium", no_argument, NULL, OPTION_ITANIUM},
-'
-
-PARSE_AND_LIST_OPTIONS='
- fprintf (file, _("\
- --itanium Generate code for Intel Itanium processor\n"
- ));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
- case OPTION_ITANIUM:
- itanium = 1;
- break;
-'
-
-LDEMUL_AFTER_PARSE=gld${EMULATION_NAME}_after_parse
-source_em ${srcdir}/emultempl/needrelax.em
diff --git a/ld/emultempl/irix.em b/ld/emultempl/irix.em
deleted file mode 100644
index 41b8ce4..0000000
--- a/ld/emultempl/irix.em
+++ /dev/null
@@ -1,44 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2004, 2005, 2006, 2007, 2008 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.
-#
-
-fragment <<EOF
-
-#include "ld.h"
-#include "ldmain.h"
-#include "libiberty.h"
-
-/* The native IRIX linker will always create a DT_SONAME for shared objects.
- While this shouldn't really be necessary for ABI conformance, some versions
- of the native linker will segfault if the tag is missing. */
-
-static void
-irix_after_open (void)
-{
- if (link_info.shared && command_line.soname == 0)
- command_line.soname
- = (char *) lbasename (bfd_get_filename (link_info.output_bfd));
-
- gld${EMULATION_NAME}_after_open ();
-}
-EOF
-
-LDEMUL_AFTER_OPEN=irix_after_open
-source_em "${srcdir}/emultempl/mipself.em"
diff --git a/ld/emultempl/linux.em b/ld/emultempl/linux.em
deleted file mode 100644
index 61c7df4..0000000
--- a/ld/emultempl/linux.em
+++ /dev/null
@@ -1,211 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-if [ -z "$MACHINE" ]; then
- OUTPUT_ARCH=${ARCH}
-else
- OUTPUT_ARCH=${ARCH}:${MACHINE}
-fi
-fragment <<EOF
-/* This file is is generated by a shell script. DO NOT EDIT! */
-
-/* Linux a.out emulation code for ${EMULATION_NAME}
- Copyright 1991, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002,
- 2003, 2004, 2005, 2007, 2008, 2012 Free Software Foundation, Inc.
- Written by Steve Chamberlain <sac@cygnus.com>
- Linux support by Eric Youngdale <ericy@cais.cais.com>
-
- 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. */
-
-#define TARGET_IS_${EMULATION_NAME}
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "bfdlink.h"
-
-#include "ld.h"
-#include "ldmain.h"
-#include "ldmisc.h"
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-
-static void
-gld${EMULATION_NAME}_before_parse (void)
-{
- ldfile_set_output_arch ("${OUTPUT_ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`);
- input_flags.dynamic = TRUE;
- config.has_shared = TRUE;
-}
-
-/* Try to open a dynamic archive. This is where we know that Linux
- dynamic libraries have an extension of .sa. */
-
-static bfd_boolean
-gld${EMULATION_NAME}_open_dynamic_archive
- (const char *arch, search_dirs_type *search, lang_input_statement_type *entry)
-{
- char *string;
-
- if (! entry->flags.maybe_archive)
- return FALSE;
-
- string = (char *) xmalloc (strlen (search->name)
- + strlen (entry->filename)
- + strlen (arch)
- + sizeof "/lib.sa");
-
- sprintf (string, "%s/lib%s%s.sa", search->name, entry->filename, arch);
-
- if (! ldfile_try_open_bfd (string, entry))
- {
- free (string);
- return FALSE;
- }
-
- entry->filename = string;
-
- return TRUE;
-}
-
-/* This is called by the create_output_section_statements routine via
- lang_for_each_statement. It locates any address assignment to
- .text, and modifies it to include the size of the headers. This
- causes -Ttext to mean the starting address of the header, rather
- than the starting address of .text, which is compatible with other
- Linux tools. */
-
-static void
-gld${EMULATION_NAME}_find_address_statement (lang_statement_union_type *s)
-{
- if (s->header.type == lang_address_statement_enum
- && strcmp (s->address_statement.section_name, ".text") == 0)
- {
- ASSERT (s->address_statement.address->type.node_class == etree_value);
- s->address_statement.address->value.value += 0x20;
- }
-}
-
-/* This is called before opening the input BFD's. */
-
-static void
-gld${EMULATION_NAME}_create_output_section_statements (void)
-{
- lang_for_each_statement (gld${EMULATION_NAME}_find_address_statement);
-}
-
-/* This is called after the sections have been attached to output
- sections, but before any sizes or addresses have been set. */
-
-static void
-gld${EMULATION_NAME}_before_allocation (void)
-{
- if (link_info.relocatable)
- return;
-
- /* Let the backend work out the sizes of any sections required by
- dynamic linking. */
- if (! bfd_${EMULATION_NAME}_size_dynamic_sections (link_info.output_bfd,
- &link_info))
- einfo ("%P%F: failed to set dynamic section sizes: %E\n");
-
- before_allocation_default ();
-}
-
-static char *
-gld${EMULATION_NAME}_get_script (int *isfile)
-EOF
-
-if test -n "$COMPILE_IN"
-then
-# Scripts compiled in.
-
-# sed commands to quote an ld script as a C string.
-sc="-f stringify.sed"
-
-fragment <<EOF
-{
- *isfile = 0;
-
- if (link_info.relocatable && config.build_constructors)
- return
-EOF
-sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c
-echo ' ; else return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c
-echo '; }' >> e${EMULATION_NAME}.c
-
-else
-# Scripts read from the filesystem.
-
-fragment <<EOF
-{
- *isfile = 1;
-
- if (link_info.relocatable && config.build_constructors)
- return "ldscripts/${EMULATION_NAME}.xu";
- else if (link_info.relocatable)
- return "ldscripts/${EMULATION_NAME}.xr";
- else if (!config.text_read_only)
- return "ldscripts/${EMULATION_NAME}.xbn";
- else if (!config.magic_demand_paged)
- return "ldscripts/${EMULATION_NAME}.xn";
- else
- return "ldscripts/${EMULATION_NAME}.x";
-}
-EOF
-
-fi
-
-fragment <<EOF
-
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
-{
- gld${EMULATION_NAME}_before_parse,
- syslib_default,
- hll_default,
- after_parse_default,
- after_open_default,
- after_allocation_default,
- set_output_arch_default,
- ldemul_default_target,
- gld${EMULATION_NAME}_before_allocation,
- gld${EMULATION_NAME}_get_script,
- "${EMULATION_NAME}",
- "${OUTPUT_FORMAT}",
- finish_default,
- gld${EMULATION_NAME}_create_output_section_statements,
- gld${EMULATION_NAME}_open_dynamic_archive,
- NULL, /* place orphan */
- NULL, /* set symbols */
- NULL, /* parse args */
- NULL, /* add_options */
- NULL, /* handle_option */
- NULL, /* unrecognized file */
- NULL, /* list options */
- NULL, /* recognized file */
- NULL, /* find_potential_libraries */
- NULL /* new_vers_pattern */
-};
-EOF
diff --git a/ld/emultempl/lnk960.em b/ld/emultempl/lnk960.em
deleted file mode 100644
index e556d43..0000000
--- a/ld/emultempl/lnk960.em
+++ /dev/null
@@ -1,348 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-fragment <<EOF
-/* intel coff loader emulation specific stuff
- Copyright 1991, 1992, 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003,
- 2005, 2007, 2008 Free Software Foundation, Inc.
- Written by Steve Chamberlain steve@cygnus.com
-
- 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. */
-
-#include "sysdep.h"
-#include "libiberty.h"
-#include "bfd.h"
-#include "bfdlink.h"
-
-/*#include "archures.h"*/
-#include "ld.h"
-#include "ldmain.h"
-#include "ldmisc.h"
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-
-typedef struct lib_list {
- char *name;
- struct lib_list *next;
-} lib_list_type;
-
-static lib_list_type *hll_list;
-static lib_list_type **hll_list_tail = &hll_list;
-
-static lib_list_type *syslib_list;
-static lib_list_type **syslib_list_tail = &syslib_list;
-
-
-static void
-append (lib_list_type ***list, char *name)
-{
- lib_list_type *element = (lib_list_type *) xmalloc (sizeof (lib_list_type));
-
- element->name = name;
- element->next = (lib_list_type *) NULL;
- **list = element;
- *list = &element->next;
-
-}
-
-static bfd_boolean had_hll = FALSE;
-static bfd_boolean had_hll_name = FALSE;
-
-static void
-lnk960_hll (char *name)
-{
- had_hll = TRUE;
- if (name != (char *) NULL)
- {
- had_hll_name = TRUE;
- append (&hll_list_tail, name);
- }
-}
-
-static void
-lnk960_syslib (char *name)
-{
- append (&syslib_list_tail, name);
-}
-
-
-static void
-lnk960_before_parse (void)
-{
- char *name = getenv ("I960BASE");
-
- if (name == (char *) NULL)
- {
- name = getenv("G960BASE");
- if (name == (char *) NULL)
- einfo ("%P%F I960BASE and G960BASE not set\n");
- }
-
- ldfile_add_library_path (concat (name, "/lib", (const char *) NULL), FALSE);
- ldfile_output_architecture = bfd_arch_i960;
- ldfile_output_machine = bfd_mach_i960_core;
-}
-
-static void
-add_on (lib_list_type *list, lang_input_file_enum_type search)
-{
- while (list)
- {
- lang_add_input_file (list->name, search, (char *) NULL);
- list = list->next;
- }
-}
-
-static void
-lnk960_after_parse (void)
-{
- /* If there has been no arch, default to -KB */
- if (ldfile_output_machine_name[0] == 0)
- ldfile_add_arch ("KB");
-
- /* if there has been no hll list then add our own */
-
- if (had_hll && !had_hll_name)
- {
- append (&hll_list_tail, "cg");
- if (ldfile_output_machine == bfd_mach_i960_ka_sa
- || ldfile_output_machine == bfd_mach_i960_ca)
- append (&hll_list_tail, "fpg");
- }
-
- add_on (hll_list, lang_input_file_is_l_enum);
- add_on (syslib_list, lang_input_file_is_search_file_enum);
-}
-
-/* Create a symbol with the given name with the value of the
- address of first byte of the section named.
-
- If the symbol already exists, then do nothing. */
-
-static void
-symbol_at_beginning_of (const char *secname, const char *name)
-{
- struct bfd_link_hash_entry *h;
-
- h = bfd_link_hash_lookup (link_info.hash, name, TRUE, TRUE, TRUE);
- if (h == NULL)
- einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n"));
-
- if (h->type == bfd_link_hash_new
- || h->type == bfd_link_hash_undefined)
- {
- asection *sec;
-
- h->type = bfd_link_hash_defined;
-
- sec = bfd_get_section_by_name (link_info.output_bfd, secname);
- if (sec == NULL)
- sec = bfd_abs_section_ptr;
- h->u.def.value = 0;
- h->u.def.section = sec;
- }
-}
-
-/* Create a symbol with the given name with the value of the
- address of the first byte after the end of the section named.
-
- If the symbol already exists, then do nothing. */
-
-static void
-symbol_at_end_of (const char *secname, const char *name)
-{
- struct bfd_link_hash_entry *h;
-
- h = bfd_link_hash_lookup (link_info.hash, name, TRUE, TRUE, TRUE);
- if (h == NULL)
- einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n"));
-
- if (h->type == bfd_link_hash_new
- || h->type == bfd_link_hash_undefined)
- {
- asection *sec;
-
- h->type = bfd_link_hash_defined;
-
- sec = bfd_get_section_by_name (link_info.output_bfd, secname);
- if (sec == NULL)
- sec = bfd_abs_section_ptr;
- h->u.def.value = sec->size;
- h->u.def.section = sec;
- }
-}
-
-static void
-lnk960_after_allocation (void)
-{
- if (!link_info.relocatable)
- {
- symbol_at_end_of (".text", "_etext");
- symbol_at_end_of (".data", "_edata");
- symbol_at_beginning_of (".bss", "_bss_start");
- symbol_at_end_of (".bss", "_end");
- }
-}
-
-
-static struct
- {
- unsigned long number;
- char *name;
- }
-machine_table[] =
-{
- { bfd_mach_i960_core ,"CORE" },
- { bfd_mach_i960_kb_sb ,"KB" },
- { bfd_mach_i960_kb_sb ,"SB" },
- { bfd_mach_i960_mc ,"MC" },
- { bfd_mach_i960_xa ,"XA" },
- { bfd_mach_i960_ca ,"CA" },
- { bfd_mach_i960_ka_sa ,"KA" },
- { bfd_mach_i960_ka_sa ,"SA" },
- { bfd_mach_i960_jx ,"JX" },
- { bfd_mach_i960_hx ,"HX" },
-
- { bfd_mach_i960_core ,"core" },
- { bfd_mach_i960_kb_sb ,"kb" },
- { bfd_mach_i960_kb_sb ,"sb" },
- { bfd_mach_i960_mc ,"mc" },
- { bfd_mach_i960_xa ,"xa" },
- { bfd_mach_i960_ca ,"ca" },
- { bfd_mach_i960_ka_sa ,"ka" },
- { bfd_mach_i960_ka_sa ,"sa" },
- { bfd_mach_i960_jx ,"jx" },
- { bfd_mach_i960_hx ,"hx" },
-
- { 0, (char *) NULL }
-};
-
-static void
-lnk960_set_output_arch (void)
-{
- /* Set the output architecture and machine if possible */
- unsigned int i;
- ldfile_output_machine = bfd_mach_i960_core;
- for (i= 0; machine_table[i].name != (char*) NULL; i++)
- {
- if (strcmp (ldfile_output_machine_name, machine_table[i].name) == 0)
- {
- ldfile_output_machine = machine_table[i].number;
- break;
- }
- }
- bfd_set_arch_mach (link_info.output_bfd, ldfile_output_architecture,
- ldfile_output_machine);
-}
-
-static char *
-lnk960_choose_target (int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
-{
- char *from_outside = getenv (TARGET_ENVIRON);
- if (from_outside != (char *) NULL)
- return from_outside;
-#ifdef LNK960_LITTLE
- return "coff-Intel-little";
-#else
- return "coff-Intel-big";
-#endif
-}
-
-static char *
-lnk960_get_script (int *isfile)
-EOF
-
-if test -n "$COMPILE_IN"
-then
-# Scripts compiled in.
-
-# sed commands to quote an ld script as a C string.
-sc="-f stringify.sed"
-
-fragment <<EOF
-{
- *isfile = 0;
-
- if (link_info.relocatable && config.build_constructors)
- return
-EOF
-sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c
-echo ' ; else return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c
-echo '; }' >> e${EMULATION_NAME}.c
-
-else
-# Scripts read from the filesystem.
-
-fragment <<EOF
-{
- *isfile = 1;
-
- if (link_info.relocatable && config.build_constructors)
- return "ldscripts/${EMULATION_NAME}.xu";
- else if (link_info.relocatable)
- return "ldscripts/${EMULATION_NAME}.xr";
- else if (!config.text_read_only)
- return "ldscripts/${EMULATION_NAME}.xbn";
- else if (!config.magic_demand_paged)
- return "ldscripts/${EMULATION_NAME}.xn";
- else
- return "ldscripts/${EMULATION_NAME}.x";
-}
-EOF
-
-fi
-
-fragment <<EOF
-
-struct ld_emulation_xfer_struct ld_lnk960_emulation =
-{
- lnk960_before_parse,
- lnk960_syslib,
- lnk960_hll,
- lnk960_after_parse,
- after_open_default,
- lnk960_after_allocation,
- lnk960_set_output_arch,
- lnk960_choose_target,
- before_allocation_default,
- lnk960_get_script,
- "lnk960",
- "",
- finish_default,
- NULL, /* create output section statements */
- NULL, /* open dynamic archive */
- NULL, /* place orphan */
- NULL, /* set symbols */
- NULL, /* parse args */
- NULL, /* add_options */
- NULL, /* handle_option */
- NULL, /* unrecognized file */
- NULL, /* list options */
- NULL, /* recognized file */
- NULL, /* find_potential_libraries */
- NULL /* new_vers_pattern */
-};
-EOF
diff --git a/ld/emultempl/m68hc1xelf.em b/ld/emultempl/m68hc1xelf.em
deleted file mode 100644
index 594b193..0000000
--- a/ld/emultempl/m68hc1xelf.em
+++ /dev/null
@@ -1,373 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 1991, 1993, 1994, 1997, 1999, 2000, 2001, 2002, 2003, 2005, 2007,
-# 2008, 2009 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.
-#
-
-# This file is sourced from elf32.em, and defines extra m68hc12-elf
-# and m68hc11-elf specific routines. It is used to generate the
-# HC11/HC12 trampolines to call a far function by using a normal 'jsr/bsr'.
-#
-# - The HC11/HC12 relocations are checked to see if there is a
-# R_M68HC11_16 relocation to a symbol marked with STO_M68HC12_FAR.
-# This relocation cannot be made on the symbol but must be made on
-# its trampoline
-# The trampolines to generate are collected during this pass
-# (See elf32_m68hc11_size_stubs)
-#
-# - The trampolines are generated in a ".tramp" section. The generation
-# takes care of HC11 and HC12 specificities.
-# (See elf32_m68hc11_build_stubs)
-#
-# - During relocation the R_M68HC11_16 relocation to the far symbols
-# are redirected to the trampoline that was generated.
-#
-# Copied from hppaelf and adapted for M68HC11/M68HC12 specific needs.
-#
-fragment <<EOF
-
-#include "ldctor.h"
-#include "elf32-m68hc1x.h"
-
-static asection *m68hc11elf_add_stub_section (const char *, asection *);
-
-/* Fake input file for stubs. */
-static lang_input_statement_type *stub_file;
-
-/* By default the HC11/HC12 trampolines to call a far function using
- a normal 'bsr' and 'jsr' convention are generated during the link.
- The --no-trampoline option prevents that. */
-static int no_trampoline = 0;
-
-/* Name of memory bank window in the MEMORY description.
- This is set by --bank-window option. */
-static const char* bank_window_name = 0;
-
-static void
-m68hc11_elf_${EMULATION_NAME}_before_allocation (void)
-{
- lang_memory_region_type* region;
- int ret;
-
- gld${EMULATION_NAME}_before_allocation ();
-
- /* If generating a relocatable output file, then we don't
- have to generate the trampolines. */
- if (link_info.relocatable)
- return;
-
- ret = elf32_m68hc11_setup_section_lists (link_info.output_bfd, &link_info);
- if (ret != 0 && no_trampoline == 0)
- {
- if (ret < 0)
- {
- einfo ("%X%P: can not size stub section: %E\n");
- return;
- }
-
- /* Call into the BFD backend to do the real work. */
- if (!elf32_m68hc11_size_stubs (link_info.output_bfd,
- stub_file->the_bfd,
- &link_info,
- &m68hc11elf_add_stub_section))
- {
- einfo ("%X%P: can not size stub section: %E\n");
- return;
- }
- }
-
- if (bank_window_name == 0)
- return;
-
- /* The 'bank_window_name' memory region is a special region that describes
- the memory bank window to access to paged memory. For 68HC12
- this is fixed and should be:
-
- window (rx) : ORIGIN = 0x8000, LENGTH = 16K
-
- But for 68HC11 this is board specific. The definition of such
- memory region allows to control how this paged memory is accessed. */
- region = lang_memory_region_lookup (bank_window_name, FALSE);
-
- /* Check the length to see if it was defined in the script. */
- if (region->length != 0)
- {
- struct m68hc11_page_info *pinfo;
- unsigned i;
-
- /* Get default values */
- m68hc11_elf_get_bank_parameters (&link_info);
- pinfo = &m68hc11_elf_hash_table (&link_info)->pinfo;
-
- /* And override them with the region definition. */
- pinfo->bank_size = region->length;
- pinfo->bank_shift = 0;
- for (i = pinfo->bank_size; i != 0; i >>= 1)
- pinfo->bank_shift++;
- pinfo->bank_shift--;
- pinfo->bank_size = 1L << pinfo->bank_shift;
- pinfo->bank_mask = (1 << pinfo->bank_shift) - 1;
- pinfo->bank_physical = region->origin;
- pinfo->bank_physical_end = region->origin + pinfo->bank_size;
-
- if (pinfo->bank_size != region->length)
- {
- einfo (_("warning: the size of the 'window' memory region "
- "is not a power of 2\n"));
- einfo (_("warning: its size %d is truncated to %d\n"),
- region->length, pinfo->bank_size);
- }
- }
-}
-
-/* This is called before the input files are opened. We create a new
- fake input file to hold the stub sections. */
-
-static void
-m68hc11elf_create_output_section_statements (void)
-{
- stub_file = lang_add_input_file ("linker stubs",
- lang_input_file_is_fake_enum,
- NULL);
- stub_file->the_bfd = bfd_create ("linker stubs", link_info.output_bfd);
- if (stub_file->the_bfd == NULL
- || !bfd_set_arch_mach (stub_file->the_bfd,
- bfd_get_arch (link_info.output_bfd),
- bfd_get_mach (link_info.output_bfd)))
- {
- einfo ("%X%P: can not create BFD %E\n");
- return;
- }
-
- ldlang_add_file (stub_file);
-}
-
-
-struct hook_stub_info
-{
- lang_statement_list_type add;
- asection *input_section;
-};
-
-/* Traverse the linker tree to find the spot where the stub goes. */
-
-static bfd_boolean
-hook_in_stub (struct hook_stub_info *info, lang_statement_union_type **lp)
-{
- lang_statement_union_type *l;
- bfd_boolean ret;
-
- for (; (l = *lp) != NULL; lp = &l->header.next)
- {
- switch (l->header.type)
- {
- case lang_constructors_statement_enum:
- ret = hook_in_stub (info, &constructor_list.head);
- if (ret)
- return ret;
- break;
-
- case lang_output_section_statement_enum:
- ret = hook_in_stub (info,
- &l->output_section_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_wild_statement_enum:
- ret = hook_in_stub (info, &l->wild_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_group_statement_enum:
- ret = hook_in_stub (info, &l->group_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_input_section_enum:
- if (l->input_section.section == info->input_section
- || strcmp (bfd_get_section_name (l->input_section.section->owner,
- l->input_section.section),
- bfd_get_section_name (info->input_section->owner,
- info->input_section)) == 0)
- {
- /* We've found our section. Insert the stub immediately
- before its associated input section. */
- *lp = info->add.head;
- *(info->add.tail) = l;
- return TRUE;
- }
- break;
-
- case lang_data_statement_enum:
- case lang_reloc_statement_enum:
- case lang_object_symbols_statement_enum:
- case lang_output_statement_enum:
- case lang_target_statement_enum:
- case lang_input_statement_enum:
- case lang_assignment_statement_enum:
- case lang_padding_statement_enum:
- case lang_address_statement_enum:
- case lang_fill_statement_enum:
- break;
-
- default:
- FAIL ();
- break;
- }
- }
- return FALSE;
-}
-
-
-/* Call-back for elf32_m68hc11_size_stubs. */
-
-/* Create a new stub section, and arrange for it to be linked
- immediately before INPUT_SECTION. */
-
-static asection *
-m68hc11elf_add_stub_section (const char *stub_sec_name,
- asection *tramp_section)
-{
- asection *stub_sec;
- flagword flags;
- asection *output_section;
- const char *secname;
- lang_output_section_statement_type *os;
- struct hook_stub_info info;
-
- flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE
- | SEC_HAS_CONTENTS | SEC_RELOC | SEC_IN_MEMORY | SEC_KEEP);
- stub_sec = bfd_make_section_anyway_with_flags (stub_file->the_bfd,
- stub_sec_name, flags);
- if (stub_sec == NULL)
- goto err_ret;
-
- output_section = tramp_section->output_section;
- secname = bfd_get_section_name (output_section->owner, output_section);
- os = lang_output_section_find (secname);
-
- /* Try to put the new section at the same place as an existing
- .tramp section. Such .tramp section exists in most cases and
- contains the trampoline code. This way we put the generated trampoline
- at the correct place. */
- info.input_section = tramp_section;
- lang_list_init (&info.add);
- lang_add_section (&info.add, stub_sec, NULL, os);
-
- if (info.add.head == NULL)
- goto err_ret;
-
- if (hook_in_stub (&info, &os->children.head))
- return stub_sec;
-
- err_ret:
- einfo ("%X%P: can not make stub section: %E\n");
- return NULL;
-}
-
-/* For the 68HC12 we use this opportunity to build linker stubs. */
-
-static void
-m68hc11elf_after_allocation (void)
-{
- /* Now build the linker stubs. */
- if (stub_file->the_bfd->sections != NULL)
- {
- /* 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");
- }
-
- gld${EMULATION_NAME}_after_allocation ();
-}
-
-
-/* Avoid processing the fake stub_file in vercheck, stat_needed and
- check_needed routines. */
-
-static void (*real_func) (lang_input_statement_type *);
-
-static void m68hc11_for_each_input_file_wrapper (lang_input_statement_type *l)
-{
- if (l != stub_file)
- (*real_func) (l);
-}
-
-static void
-m68hc11_lang_for_each_input_file (void (*func) (lang_input_statement_type *))
-{
- real_func = func;
- lang_for_each_input_file (&m68hc11_for_each_input_file_wrapper);
-}
-
-#define lang_for_each_input_file m68hc11_lang_for_each_input_file
-
-EOF
-
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE='
-#define OPTION_NO_TRAMPOLINE 300
-#define OPTION_BANK_WINDOW 301
-'
-
-# The options are repeated below so that no abbreviations are allowed.
-# Otherwise -s matches stub-group-size
-PARSE_AND_LIST_LONGOPTS='
- { "no-trampoline", no_argument, NULL, OPTION_NO_TRAMPOLINE },
- { "bank-window", required_argument, NULL, OPTION_BANK_WINDOW },
-'
-
-PARSE_AND_LIST_OPTIONS='
- fprintf (file, _(
-" --no-trampoline Do not generate the far trampolines used to call\n"
-" a far function using 'jsr' or 'bsr'.\n"
-" --bank-window NAME Specify the name of the memory region describing\n"
-" the layout of the memory bank window.\n"
- ));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
- case OPTION_NO_TRAMPOLINE:
- no_trampoline = 1;
- break;
- case OPTION_BANK_WINDOW:
- bank_window_name = optarg;
- break;
-'
-
-# Put these extra m68hc11elf routines in ld_${EMULATION_NAME}_emulation
-#
-LDEMUL_BEFORE_ALLOCATION=m68hc11_elf_${EMULATION_NAME}_before_allocation
-LDEMUL_AFTER_ALLOCATION=m68hc11elf_after_allocation
-LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=m68hc11elf_create_output_section_statements
diff --git a/ld/emultempl/m68kcoff.em b/ld/emultempl/m68kcoff.em
deleted file mode 100644
index f68866c..0000000
--- a/ld/emultempl/m68kcoff.em
+++ /dev/null
@@ -1,245 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-fragment <<EOF
-/* This file is is generated by a shell script. DO NOT EDIT! */
-
-/* Handle embedded relocs for m68k.
- Copyright 2000, 2002, 2003, 2004, 2005, 2007, 2008
- Free Software Foundation, Inc.
- Written by Michael Sokolov <msokolov@ivan.Harhan.ORG>, based on generic.em
- by Steve Chamberlain <steve@cygnus.com>, embedded relocs code based on
- mipsecoff.em by Ian Lance Taylor <ian@cygnus.com> (now removed).
-
- 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. */
-
-#define TARGET_IS_${EMULATION_NAME}
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "bfdlink.h"
-
-#include "ld.h"
-#include "ldmain.h"
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-#include "ldmisc.h"
-
-static void check_sections (bfd *, asection *, void *);
-
-static void
-gld${EMULATION_NAME}_before_parse (void)
-{
-#ifndef TARGET_ /* I.e., if not generic. */
- ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown);
-#endif /* not TARGET_ */
-}
-
-/* This function is run after all the input files have been opened.
- We create a .emreloc section for each input file with a non zero
- .data section. The BFD backend will fill in these sections with
- magic numbers which can be used to relocate the data section at run
- time. */
-
-static void
-gld${EMULATION_NAME}_after_open (void)
-{
- bfd *abfd;
-
- after_open_default ();
-
- if (! command_line.embedded_relocs
- || link_info.relocatable)
- return;
-
- for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next)
- {
- asection *datasec;
-
- /* As first-order business, make sure that each input BFD is COFF. It
- better be, as we are directly calling a COFF backend function. */
- if (bfd_get_flavour (abfd) != bfd_target_coff_flavour)
- einfo ("%F%B: all input objects must be COFF for --embedded-relocs\n");
-
- datasec = bfd_get_section_by_name (abfd, ".data");
-
- /* Note that we assume that the reloc_count field has already
- been set up. We could call bfd_get_reloc_upper_bound, but
- that returns the size of a memory buffer rather than a reloc
- count. We do not want to call bfd_canonicalize_reloc,
- because although it would always work it would force us to
- read in the relocs into BFD canonical form, which would waste
- a significant amount of time and memory. */
- if (datasec != NULL && datasec->reloc_count > 0)
- {
- asection *relsec;
-
- relsec = bfd_make_section_with_flags (abfd, ".emreloc",
- (SEC_ALLOC
- | SEC_LOAD
- | SEC_HAS_CONTENTS
- | SEC_IN_MEMORY));
- if (relsec == NULL
- || ! bfd_set_section_alignment (abfd, relsec, 2)
- || ! bfd_set_section_size (abfd, relsec,
- datasec->reloc_count * 12))
- einfo ("%F%B: can not create .emreloc section: %E\n");
- }
-
- /* Double check that all other data sections are empty, as is
- required for embedded PIC code. */
- bfd_map_over_sections (abfd, check_sections, datasec);
- }
-}
-
-/* Check that of the data sections, only the .data section has
- relocs. This is called via bfd_map_over_sections. */
-
-static void
-check_sections (bfd *abfd, asection *sec, void *datasec)
-{
- if ((bfd_get_section_flags (abfd, sec) & SEC_DATA)
- && sec != datasec
- && sec->reloc_count != 0)
- einfo ("%B%X: section %s has relocs; can not use --embedded-relocs\n",
- abfd, bfd_get_section_name (abfd, sec));
-}
-
-/* This function is called after the section sizes and offsets have
- been set. If we are generating embedded relocs, it calls a special
- BFD backend routine to do the work. */
-
-static void
-gld${EMULATION_NAME}_after_allocation (void)
-{
- bfd *abfd;
-
- if (! command_line.embedded_relocs
- || link_info.relocatable)
- return;
-
- for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next)
- {
- asection *datasec, *relsec;
- char *errmsg;
-
- datasec = bfd_get_section_by_name (abfd, ".data");
-
- if (datasec == NULL || datasec->reloc_count == 0)
- continue;
-
- relsec = bfd_get_section_by_name (abfd, ".emreloc");
- ASSERT (relsec != NULL);
-
- if (! bfd_m68k_coff_create_embedded_relocs (abfd, &link_info,
- datasec, relsec,
- &errmsg))
- {
- if (errmsg == NULL)
- einfo ("%B%X: can not create runtime reloc information: %E\n",
- abfd);
- else
- einfo ("%X%B: can not create runtime reloc information: %s\n",
- abfd, errmsg);
- }
- }
-}
-
-static char *
-gld${EMULATION_NAME}_get_script (int *isfile)
-EOF
-
-if test -n "$COMPILE_IN"
-then
-# Scripts compiled in.
-
-# sed commands to quote an ld script as a C string.
-sc="-f stringify.sed"
-
-fragment <<EOF
-{
- *isfile = 0;
-
- if (link_info.relocatable && config.build_constructors)
- return
-EOF
-sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c
-echo ' ; else return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c
-echo '; }' >> e${EMULATION_NAME}.c
-
-else
-# Scripts read from the filesystem.
-
-fragment <<EOF
-{
- *isfile = 1;
-
- if (link_info.relocatable && config.build_constructors)
- return "ldscripts/${EMULATION_NAME}.xu";
- else if (link_info.relocatable)
- return "ldscripts/${EMULATION_NAME}.xr";
- else if (!config.text_read_only)
- return "ldscripts/${EMULATION_NAME}.xbn";
- else if (!config.magic_demand_paged)
- return "ldscripts/${EMULATION_NAME}.xn";
- else
- return "ldscripts/${EMULATION_NAME}.x";
-}
-EOF
-
-fi
-
-fragment <<EOF
-
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
-{
- gld${EMULATION_NAME}_before_parse,
- syslib_default,
- hll_default,
- after_parse_default,
- gld${EMULATION_NAME}_after_open,
- gld${EMULATION_NAME}_after_allocation,
- set_output_arch_default,
- ldemul_default_target,
- before_allocation_default,
- gld${EMULATION_NAME}_get_script,
- "${EMULATION_NAME}",
- "${OUTPUT_FORMAT}",
- finish_default,
- NULL, /* create output section statements */
- NULL, /* open dynamic archive */
- NULL, /* place orphan */
- NULL, /* set symbols */
- NULL, /* parse args */
- NULL, /* add_options */
- NULL, /* handle_option */
- NULL, /* unrecognized file */
- NULL, /* list options */
- NULL, /* recognized file */
- NULL, /* find_potential_libraries */
- NULL /* new_vers_pattern */
-};
-EOF
diff --git a/ld/emultempl/m68kelf.em b/ld/emultempl/m68kelf.em
deleted file mode 100644
index 48a50bc..0000000
--- a/ld/emultempl/m68kelf.em
+++ /dev/null
@@ -1,250 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2000, 2001, 2003, 2005, 2007, 2008, 2009
-# Free Software Foundation, Inc.
-# Written by Michael Sokolov <msokolov@ivan.Harhan.ORG>, based on armelf.em
-#
-# 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.
-
-
-# This file is sourced from elf32.em, and defines some extra routines for m68k
-# embedded systems using ELF and for some other systems using m68k ELF. While
-# it is sourced from elf32.em for all m68k ELF configurations, here we include
-# only the features we want depending on the configuration.
-
-case ${target} in
- m68*-*-elf)
- echo "#define SUPPORT_EMBEDDED_RELOCS" >>e${EMULATION_NAME}.c
- ;;
-esac
-
-case ${target} in
- *-linux*)
-# Don't use multi-GOT by default due to glibc linker's assumption
-# that GOT pointer points to GOT[0].
-# got_handling_target_default=GOT_HANDLING_MULTIGOT
- got_handling_target_default=GOT_HANDLING_SINGLE
- ;;
- *)
- got_handling_target_default=GOT_HANDLING_SINGLE
- ;;
-esac
-
-fragment <<EOF
-
-#define GOT_HANDLING_SINGLE (0)
-#define GOT_HANDLING_NEGATIVE (1)
-#define GOT_HANDLING_MULTIGOT (2)
-#define GOT_HANDLING_TARGET_DEFAULT ${got_handling_target_default}
-
-/* How to generate GOT. */
-static int got_handling = GOT_HANDLING_DEFAULT;
-
-#ifdef SUPPORT_EMBEDDED_RELOCS
-static void check_sections (bfd *, asection *, void *);
-#endif
-
-/* This function is run after all the input files have been opened. */
-
-static void
-m68k_elf_after_open (void)
-{
- /* Call the standard elf routine. */
- gld${EMULATION_NAME}_after_open ();
-
-#ifdef SUPPORT_EMBEDDED_RELOCS
- if (command_line.embedded_relocs
- && (! link_info.relocatable))
- {
- bfd *abfd;
-
- /* In the embedded relocs mode we create a .emreloc section for each
- input file with a nonzero .data section. The BFD backend will fill in
- these sections with magic numbers which can be used to relocate the
- data section at run time. */
- for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next)
- {
- asection *datasec;
-
- /* As first-order business, make sure that each input BFD is either
- COFF or ELF. We need to call a special BFD backend function to
- generate the embedded relocs, and we have such functions only for
- COFF and ELF. */
- if (bfd_get_flavour (abfd) != bfd_target_coff_flavour
- && bfd_get_flavour (abfd) != bfd_target_elf_flavour)
- einfo ("%F%B: all input objects must be COFF or ELF for --embedded-relocs\n");
-
- datasec = bfd_get_section_by_name (abfd, ".data");
-
- /* Note that we assume that the reloc_count field has already
- been set up. We could call bfd_get_reloc_upper_bound, but
- that returns the size of a memory buffer rather than a reloc
- count. We do not want to call bfd_canonicalize_reloc,
- because although it would always work it would force us to
- read in the relocs into BFD canonical form, which would waste
- a significant amount of time and memory. */
- if (datasec != NULL && datasec->reloc_count > 0)
- {
- asection *relsec;
-
- relsec = bfd_make_section_with_flags (abfd, ".emreloc",
- (SEC_ALLOC
- | SEC_LOAD
- | SEC_HAS_CONTENTS
- | SEC_IN_MEMORY));
- if (relsec == NULL
- || ! bfd_set_section_alignment (abfd, relsec, 2)
- || ! bfd_set_section_size (abfd, relsec,
- datasec->reloc_count * 12))
- einfo ("%F%B: can not create .emreloc section: %E\n");
- }
-
- /* Double check that all other data sections are empty, as is
- required for embedded PIC code. */
- bfd_map_over_sections (abfd, check_sections, datasec);
- }
- }
-#endif /* SUPPORT_EMBEDDED_RELOCS */
-}
-
-#ifdef SUPPORT_EMBEDDED_RELOCS
-/* Check that of the data sections, only the .data section has
- relocs. This is called via bfd_map_over_sections. */
-
-static void
-check_sections (bfd *abfd, asection *sec, void *datasec)
-{
- if ((bfd_get_section_flags (abfd, sec) & SEC_DATA)
- && sec != datasec
- && sec->reloc_count != 0)
- einfo ("%B%X: section %s has relocs; can not use --embedded-relocs\n",
- abfd, bfd_get_section_name (abfd, sec));
-}
-
-#endif /* SUPPORT_EMBEDDED_RELOCS */
-
-/* This function is called after the section sizes and offsets have
- been set. */
-
-static void
-m68k_elf_after_allocation (void)
-{
- /* Call the standard elf routine. */
- gld${EMULATION_NAME}_after_allocation ();
-
-#ifdef SUPPORT_EMBEDDED_RELOCS
- if (command_line.embedded_relocs
- && (! link_info.relocatable))
- {
- bfd *abfd;
-
- /* If we are generating embedded relocs, call a special BFD backend
- routine to do the work. */
- for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next)
- {
- asection *datasec, *relsec;
- char *errmsg;
-
- datasec = bfd_get_section_by_name (abfd, ".data");
-
- if (datasec == NULL || datasec->reloc_count == 0)
- continue;
-
- relsec = bfd_get_section_by_name (abfd, ".emreloc");
- ASSERT (relsec != NULL);
-
- if (bfd_get_flavour (abfd) == bfd_target_coff_flavour)
- {
- if (! bfd_m68k_coff_create_embedded_relocs (abfd, &link_info,
- datasec, relsec,
- &errmsg))
- {
- if (errmsg == NULL)
- einfo ("%B%X: can not create runtime reloc information: %E\n",
- abfd);
- else
- einfo ("%X%B: can not create runtime reloc information: %s\n",
- abfd, errmsg);
- }
- }
- else if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
- {
- if (! bfd_m68k_elf32_create_embedded_relocs (abfd, &link_info,
- datasec, relsec,
- &errmsg))
- {
- if (errmsg == NULL)
- einfo ("%B%X: can not create runtime reloc information: %E\n",
- abfd);
- else
- einfo ("%X%B: can not create runtime reloc information: %s\n",
- abfd, errmsg);
- }
- }
- else
- abort ();
- }
- }
-#endif /* SUPPORT_EMBEDDED_RELOCS */
-}
-
-/* This is a convenient point to tell BFD about target specific flags.
- After the output has been created, but before inputs are read. */
-
-static void
-elf_m68k_create_output_section_statements (void)
-{
- bfd_elf_m68k_set_target_options (&link_info, got_handling);
-}
-
-EOF
-
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE='
-#define OPTION_GOT 301
-'
-
-PARSE_AND_LIST_LONGOPTS='
- { "got", required_argument, NULL, OPTION_GOT},
-'
-
-PARSE_AND_LIST_OPTIONS='
- fprintf (file, _(" --got=<type> Specify GOT handling scheme\n"));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
- case OPTION_GOT:
- if (strcmp (optarg, "target") == 0)
- got_handling = GOT_HANDLING_TARGET_DEFAULT;
- else if (strcmp (optarg, "single") == 0)
- got_handling = 0;
- else if (strcmp (optarg, "negative") == 0)
- got_handling = 1;
- else if (strcmp (optarg, "multigot") == 0)
- got_handling = 2;
- else
- einfo (_("Unrecognized --got argument '\''%s'\''.\n"), optarg);
- break;
-'
-
-# We have our own after_open and after_allocation functions, but they call
-# the standard routines, so give them a different name.
-LDEMUL_AFTER_OPEN=m68k_elf_after_open
-LDEMUL_AFTER_ALLOCATION=m68k_elf_after_allocation
-LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=elf_m68k_create_output_section_statements
diff --git a/ld/emultempl/metagelf.em b/ld/emultempl/metagelf.em
deleted file mode 100644
index 21e3e94..0000000
--- a/ld/emultempl/metagelf.em
+++ /dev/null
@@ -1,337 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2013 Free Software Foundation, Inc.
-#
-# This file is part of 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.
-#
-
-# This file is sourced from elf32.em, and defines extra metagelf
-# specific routines. Taken from hppaelf.em.
-#
-fragment <<EOF
-
-#include "ldctor.h"
-#include "elf32-metag.h"
-
-
-/* Fake input file for stubs. */
-static lang_input_statement_type *stub_file;
-
-/* Whether we need to call metag_layout_sections_again. */
-static int need_laying_out = 0;
-
-/* Maximum size of a group of input sections that can be handled by
- one stub section. A value of +/-1 indicates the bfd back-end
- should use a suitable default size. */
-static bfd_signed_vma group_size = 1;
-
-/* This is called before the input files are opened. We create a new
- fake input file to hold the stub sections. */
-
-static void
-metagelf_create_output_section_statements (void)
-{
- extern const bfd_target bfd_elf32_metag_vec;
-
- if (link_info.output_bfd->xvec != &bfd_elf32_metag_vec)
- return;
-
- stub_file = lang_add_input_file ("linker stubs",
- lang_input_file_is_fake_enum,
- NULL);
- stub_file->the_bfd = bfd_create ("linker stubs", link_info.output_bfd);
- if (stub_file->the_bfd == NULL
- || ! bfd_set_arch_mach (stub_file->the_bfd,
- bfd_get_arch (link_info.output_bfd),
- bfd_get_mach (link_info.output_bfd)))
- {
- einfo ("%X%P: can not create BFD %E\n");
- return;
- }
-
- stub_file->the_bfd->flags |= BFD_LINKER_CREATED;
- ldlang_add_file (stub_file);
-}
-
-
-struct hook_stub_info
-{
- lang_statement_list_type add;
- asection *input_section;
-};
-
-/* Traverse the linker tree to find the spot where the stub goes. */
-
-static bfd_boolean
-hook_in_stub (struct hook_stub_info *info, lang_statement_union_type **lp)
-{
- lang_statement_union_type *l;
- bfd_boolean ret;
-
- for (; (l = *lp) != NULL; lp = &l->header.next)
- {
- switch (l->header.type)
- {
- case lang_constructors_statement_enum:
- ret = hook_in_stub (info, &constructor_list.head);
- if (ret)
- return ret;
- break;
-
- case lang_output_section_statement_enum:
- ret = hook_in_stub (info,
- &l->output_section_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_wild_statement_enum:
- ret = hook_in_stub (info, &l->wild_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_group_statement_enum:
- ret = hook_in_stub (info, &l->group_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_input_section_enum:
- if (l->input_section.section == info->input_section)
- {
- /* We've found our section. Insert the stub immediately
- before its associated input section. */
- *lp = info->add.head;
- *(info->add.tail) = l;
- return TRUE;
- }
- break;
-
- case lang_data_statement_enum:
- case lang_reloc_statement_enum:
- case lang_object_symbols_statement_enum:
- case lang_output_statement_enum:
- case lang_target_statement_enum:
- case lang_input_statement_enum:
- case lang_assignment_statement_enum:
- case lang_padding_statement_enum:
- case lang_address_statement_enum:
- case lang_fill_statement_enum:
- break;
-
- default:
- FAIL ();
- break;
- }
- }
- return FALSE;
-}
-
-
-/* Call-back for elf_metag_size_stubs. */
-
-/* Create a new stub section, and arrange for it to be linked
- immediately before INPUT_SECTION. */
-
-static asection *
-metagelf_add_stub_section (const char *stub_sec_name, asection *input_section)
-{
- asection *stub_sec;
- flagword flags;
- asection *output_section;
- const char *secname;
- lang_output_section_statement_type *os;
- struct hook_stub_info info;
-
- flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE
- | SEC_HAS_CONTENTS | SEC_RELOC | SEC_IN_MEMORY | SEC_KEEP);
- stub_sec = bfd_make_section_anyway_with_flags (stub_file->the_bfd,
- stub_sec_name, flags);
- if (stub_sec == NULL)
- goto err_ret;
-
- output_section = input_section->output_section;
- secname = bfd_get_section_name (output_section->owner, output_section);
- os = lang_output_section_find (secname);
-
- info.input_section = input_section;
- lang_list_init (&info.add);
- lang_add_section (&info.add, stub_sec, NULL, os);
-
- if (info.add.head == NULL)
- goto err_ret;
-
- if (hook_in_stub (&info, &os->children.head))
- return stub_sec;
-
- err_ret:
- einfo ("%X%P: can not make stub section: %E\n");
- return NULL;
-}
-
-
-/* Another call-back for elf_metag_size_stubs. */
-
-static void
-metagelf_layout_sections_again (void)
-{
- /* If we have changed sizes of the stub sections, then we need
- to recalculate all the section offsets. This may mean we need to
- add even more stubs. */
- gld${EMULATION_NAME}_map_segments (TRUE);
- need_laying_out = -1;
-}
-
-
-static void
-build_section_lists (lang_statement_union_type *statement)
-{
- if (statement->header.type == lang_input_section_enum)
- {
- asection *i = statement->input_section.section;
-
- if (i->sec_info_type != SEC_INFO_TYPE_JUST_SYMS
- && (i->flags & SEC_EXCLUDE) == 0
- && i->output_section != NULL
- && i->output_section->owner == link_info.output_bfd)
- {
- elf_metag_next_input_section (&link_info, i);
- }
- }
-}
-
-
-/* For Meta we use this opportunity to build linker stubs. */
-
-static void
-gld${EMULATION_NAME}_after_allocation (void)
-{
- /* bfd_elf_discard_info just plays with data and debugging sections,
- ie. doesn't affect code size, so we can delay resizing the
- sections. It's likely we'll resize everything in the process of
- adding stubs. */
- if (bfd_elf_discard_info (link_info.output_bfd, &link_info))
- need_laying_out = 1;
-
- /* If generating a relocatable output file, then we don't
- have to examine the relocs. */
- if (stub_file != NULL && !link_info.relocatable)
- {
- int ret = elf_metag_setup_section_lists (link_info.output_bfd,
- &link_info);
-
- if (ret != 0)
- {
- if (ret < 0)
- {
- einfo ("%X%P: can not size stub section: %E\n");
- return;
- }
-
- lang_for_each_statement (build_section_lists);
-
- /* Call into the BFD backend to do the real work. */
- if (! elf_metag_size_stubs (link_info.output_bfd,
- stub_file->the_bfd,
- &link_info,
- group_size,
- &metagelf_add_stub_section,
- &metagelf_layout_sections_again))
- {
- einfo ("%X%P: can not size stub section: %E\n");
- return;
- }
- }
- }
-
- if (need_laying_out != -1)
- gld${EMULATION_NAME}_map_segments (need_laying_out);
-
- if (! link_info.relocatable)
- {
- /* Now build the linker stubs. */
- if (stub_file != NULL && stub_file->the_bfd->sections != NULL)
- {
- if (! elf_metag_build_stubs (&link_info))
- einfo ("%X%P: can not build stubs: %E\n");
- }
- }
-}
-
-
-/* Avoid processing the fake stub_file in vercheck, stat_needed and
- check_needed routines. */
-
-static void (*real_func) (lang_input_statement_type *);
-
-static void metag_for_each_input_file_wrapper (lang_input_statement_type *l)
-{
- if (l != stub_file)
- (*real_func) (l);
-}
-
-static void
-metag_lang_for_each_input_file (void (*func) (lang_input_statement_type *))
-{
- real_func = func;
- lang_for_each_input_file (&metag_for_each_input_file_wrapper);
-}
-
-#define lang_for_each_input_file metag_lang_for_each_input_file
-
-EOF
-
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE='
-#define OPTION_STUBGROUP_SIZE 301
-'
-
-PARSE_AND_LIST_LONGOPTS='
- { "stub-group-size", required_argument, NULL, OPTION_STUBGROUP_SIZE },
-'
-
-PARSE_AND_LIST_OPTIONS='
- fprintf (file, _("\
- --stub-group-size=N Maximum size of a group of input sections that\n\
- can be handled by one stub section. A negative\n\
- value locates all stubs before their branches\n\
- (with a group size of -N), while a positive\n\
- value allows two groups of input sections, one\n\
- before, and one after each stub section.\n\
- Values of +/-1 indicate the linker should\n\
- choose suitable defaults.\n"
- ));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
- case OPTION_STUBGROUP_SIZE:
- {
- const char *end;
- group_size = bfd_scan_vma (optarg, &end, 0);
- if (*end)
- einfo (_("%P%F: invalid number `%s'\''\n"), optarg);
- }
- break;
-'
-
-# Put these extra metagelf routines in ld_${EMULATION_NAME}_emulation
-#
-LDEMUL_AFTER_ALLOCATION=gld${EMULATION_NAME}_after_allocation
-LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=metagelf_create_output_section_statements
diff --git a/ld/emultempl/mipself.em b/ld/emultempl/mipself.em
deleted file mode 100644
index 3c6ec9f..0000000
--- a/ld/emultempl/mipself.em
+++ /dev/null
@@ -1,286 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2004, 2006, 2007, 2008 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.
-
-fragment <<EOF
-
-#include "ldctor.h"
-#include "elf/mips.h"
-#include "elfxx-mips.h"
-
-#define is_mips_elf(bfd) \
- (bfd_get_flavour (bfd) == bfd_target_elf_flavour \
- && elf_tdata (bfd) != NULL \
- && elf_object_id (bfd) == MIPS_ELF_DATA)
-
-/* Fake input file for stubs. */
-static lang_input_statement_type *stub_file;
-static bfd *stub_bfd;
-
-static bfd_boolean insn32;
-
-static void
-mips_after_parse (void)
-{
- /* .gnu.hash and the MIPS ABI require .dynsym to be sorted in different
- ways. .gnu.hash needs symbols to be grouped by hash code whereas the
- MIPS ABI requires a mapping between the GOT and the symbol table. */
- if (link_info.emit_gnu_hash)
- {
- einfo ("%X%P: .gnu.hash is incompatible with the MIPS ABI\n");
- link_info.emit_hash = TRUE;
- link_info.emit_gnu_hash = FALSE;
- }
- after_parse_default ();
-}
-
-struct hook_stub_info
-{
- lang_statement_list_type add;
- asection *input_section;
-};
-
-/* Traverse the linker tree to find the spot where the stub goes. */
-
-static bfd_boolean
-hook_in_stub (struct hook_stub_info *info, lang_statement_union_type **lp)
-{
- lang_statement_union_type *l;
- bfd_boolean ret;
-
- for (; (l = *lp) != NULL; lp = &l->header.next)
- {
- switch (l->header.type)
- {
- case lang_constructors_statement_enum:
- ret = hook_in_stub (info, &constructor_list.head);
- if (ret)
- return ret;
- break;
-
- case lang_output_section_statement_enum:
- ret = hook_in_stub (info,
- &l->output_section_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_wild_statement_enum:
- ret = hook_in_stub (info, &l->wild_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_group_statement_enum:
- ret = hook_in_stub (info, &l->group_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_input_section_enum:
- if (info->input_section == NULL
- || l->input_section.section == info->input_section)
- {
- /* We've found our section. Insert the stub immediately
- before its associated input section. */
- *lp = info->add.head;
- *(info->add.tail) = l;
- return TRUE;
- }
- break;
-
- case lang_data_statement_enum:
- case lang_reloc_statement_enum:
- case lang_object_symbols_statement_enum:
- case lang_output_statement_enum:
- case lang_target_statement_enum:
- case lang_input_statement_enum:
- case lang_assignment_statement_enum:
- case lang_padding_statement_enum:
- case lang_address_statement_enum:
- case lang_fill_statement_enum:
- break;
-
- default:
- FAIL ();
- break;
- }
- }
- return FALSE;
-}
-
-/* Create a new stub section called STUB_SEC_NAME and arrange for it to
- be linked in OUTPUT_SECTION. The section should go at the beginning of
- OUTPUT_SECTION if INPUT_SECTION is null, otherwise it must go immediately
- before INPUT_SECTION. */
-
-static asection *
-mips_add_stub_section (const char *stub_sec_name, asection *input_section,
- asection *output_section)
-{
- asection *stub_sec;
- flagword flags;
- const char *secname;
- lang_output_section_statement_type *os;
- struct hook_stub_info info;
-
- /* PR 12845: If the input section has been garbage collected it will
- not have its output section set to *ABS*. */
- if (bfd_is_abs_section (output_section))
- return NULL;
-
- /* Create the stub file, if we haven't already. */
- if (stub_file == NULL)
- {
- stub_file = lang_add_input_file ("linker stubs",
- lang_input_file_is_fake_enum,
- NULL);
- stub_bfd = bfd_create ("linker stubs", link_info.output_bfd);
- if (stub_bfd == NULL
- || !bfd_set_arch_mach (stub_bfd,
- bfd_get_arch (link_info.output_bfd),
- bfd_get_mach (link_info.output_bfd)))
- {
- einfo ("%F%P: can not create BFD %E\n");
- return NULL;
- }
- stub_bfd->flags |= BFD_LINKER_CREATED;
- stub_file->the_bfd = stub_bfd;
- ldlang_add_file (stub_file);
- }
-
- /* Create the section. */
- stub_sec = bfd_make_section_anyway (stub_bfd, stub_sec_name);
- if (stub_sec == NULL)
- goto err_ret;
-
- /* Set the flags. */
- flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE
- | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_KEEP);
- if (!bfd_set_section_flags (stub_bfd, stub_sec, flags))
- goto err_ret;
-
- /* Create an output section statement. */
- secname = bfd_get_section_name (output_section->owner, output_section);
- os = lang_output_section_find (secname);
-
- /* Initialize a statement list that contains only the new statement. */
- lang_list_init (&info.add);
- lang_add_section (&info.add, stub_sec, NULL, os);
- if (info.add.head == NULL)
- goto err_ret;
-
- /* Insert the new statement in the appropriate place. */
- info.input_section = input_section;
- if (hook_in_stub (&info, &os->children.head))
- return stub_sec;
-
- err_ret:
- einfo ("%X%P: can not make stub section: %E\n");
- return NULL;
-}
-
-/* This is called before the input files are opened. */
-
-static void
-mips_create_output_section_statements (void)
-{
- struct elf_link_hash_table *htab;
-
- htab = elf_hash_table (&link_info);
- if (is_elf_hash_table (htab) && is_mips_elf (link_info.output_bfd))
- _bfd_mips_elf_insn32 (&link_info, insn32);
-
- if (is_mips_elf (link_info.output_bfd))
- _bfd_mips_elf_init_stubs (&link_info, mips_add_stub_section);
-}
-
-/* This is called after we have merged the private data of the input bfds. */
-
-static void
-mips_before_allocation (void)
-{
- flagword flags;
-
- flags = elf_elfheader (link_info.output_bfd)->e_flags;
- if (!link_info.shared
- && !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 ();
-}
-
-/* Avoid processing the fake stub_file in vercheck, stat_needed and
- check_needed routines. */
-
-static void (*real_func) (lang_input_statement_type *);
-
-static void mips_for_each_input_file_wrapper (lang_input_statement_type *l)
-{
- if (l != stub_file)
- (*real_func) (l);
-}
-
-static void
-mips_lang_for_each_input_file (void (*func) (lang_input_statement_type *))
-{
- real_func = func;
- lang_for_each_input_file (&mips_for_each_input_file_wrapper);
-}
-
-#define lang_for_each_input_file mips_lang_for_each_input_file
-
-EOF
-
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE='
-#define OPTION_INSN32 301
-#define OPTION_NO_INSN32 (OPTION_INSN32 + 1)
-'
-
-PARSE_AND_LIST_LONGOPTS='
- { "insn32", no_argument, NULL, OPTION_INSN32 },
- { "no-insn32", no_argument, NULL, OPTION_NO_INSN32 },
-'
-
-PARSE_AND_LIST_OPTIONS='
- fprintf (file, _("\
- --insn32 Only generate 32-bit microMIPS instructions\n"
- ));
- fprintf (file, _("\
- --no-insn32 Generate all microMIPS instructions\n"
- ));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
- case OPTION_INSN32:
- insn32 = TRUE;
- break;
-
- case OPTION_NO_INSN32:
- insn32 = FALSE;
- break;
-'
-
-LDEMUL_AFTER_PARSE=mips_after_parse
-LDEMUL_BEFORE_ALLOCATION=mips_before_allocation
-LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=mips_create_output_section_statements
diff --git a/ld/emultempl/mmix-elfnmmo.em b/ld/emultempl/mmix-elfnmmo.em
deleted file mode 100644
index 0059792..0000000
--- a/ld/emultempl/mmix-elfnmmo.em
+++ /dev/null
@@ -1,116 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
-# 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.
-#
-
-# This file is sourced from elf32.em and mmo.em, used to define
-# MMIX-specific things common to ELF and MMO.
-
-fragment <<EOF
-#include "elf/mmix.h"
-
-/* Set up handling of linker-allocated global registers. */
-
-static void
-mmix_before_allocation (void)
-{
- /* Call the default first. */
- gld${EMULATION_NAME}_before_allocation ();
-
- /* There's a needrelax.em which uses this ..._before_allocation-hook and
- just has the statement below as payload. It's more of a hassle to
- use that than to just include these two lines and take the
- maintenance burden to keep them in sync. (Of course we lose the
- maintenance burden of checking that it still does what we need.) */
-
- /* Force -relax on (regardless of whether we're doing a relocatable
- link). */
- ENABLE_RELAXATION;
-
- if (!_bfd_mmix_before_linker_allocation (link_info.output_bfd, &link_info))
- einfo ("%X%P: Internal problems setting up section %s",
- MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME);
-}
-
-/* We need to set the VMA of the .MMIX.reg_contents section when it has
- been allocated, and produce the final settings for the linker-generated
- GREGs. */
-
-static void
-mmix_after_allocation (void)
-{
- asection *sec;
- bfd_signed_vma regvma;
-
- gld${EMULATION_NAME}_after_allocation ();
-
- /* If there's no register section, we don't need to do anything. On the
- other hand, if there's a non-standard linker-script without a mapping
- from MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME when that section is
- present (as in the ld test "NOCROSSREFS 2"), that section (1) will be
- orphaned; not inserted in MMIX_REG_CONTENTS_SECTION_NAME and (2) we
- will not do the necessary preparations for those relocations that
- caused it to be created. We'll SEGV from the latter error. The
- former error in separation will result in a non-working binary, but
- that's expected when you play tricks with linker scripts. The
- "NOCROSSREFS 2" test does not run the output so it does not matter
- there. */
- sec = bfd_get_section_by_name (link_info.output_bfd,
- MMIX_REG_CONTENTS_SECTION_NAME);
- if (sec == NULL)
- sec
- = bfd_get_section_by_name (link_info.output_bfd,
- MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME);
- if (sec == NULL)
- return;
-
- regvma = 256 * 8 - sec->size - 8;
-
- /* If we start on a local register, we have too many global registers.
- We treat this error as nonfatal (meaning processing will continue in
- search for other errors), because it's a link error in the same way
- as an undefined symbol. */
- if (regvma < 32 * 8)
- {
- einfo ("%X%P: Too many global registers: %u, max 223\n",
- (unsigned) sec->size / 8);
- regvma = 32 * 8;
- }
-
- /* Set vma to correspond to first such register number * 8. */
- bfd_set_section_vma (link_info.output_bfd, sec, (bfd_vma) regvma);
-
- /* Simplify symbol output for the register section (without contents;
- created for register symbols) by setting the output offset to 0.
- This section is only present when there are register symbols. */
- sec = bfd_get_section_by_name (link_info.output_bfd, MMIX_REG_SECTION_NAME);
- if (sec != NULL)
- bfd_set_section_vma (abfd, sec, 0);
-
- if (!_bfd_mmix_after_linker_allocation (link_info.output_bfd, &link_info))
- {
- /* This is a fatal error; make einfo call not return. */
- einfo ("%F%P: Can't finalize linker-allocated global registers\n");
- }
-}
-EOF
-
-LDEMUL_AFTER_ALLOCATION=mmix_after_allocation
-LDEMUL_BEFORE_ALLOCATION=mmix_before_allocation
diff --git a/ld/emultempl/mmixelf.em b/ld/emultempl/mmixelf.em
deleted file mode 100644
index 89c60c9..0000000
--- a/ld/emultempl/mmixelf.em
+++ /dev/null
@@ -1,46 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2001, 2002, 2003, 2005, 2007, 2012 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.
-#
-
-# This file is sourced from elf32.em and used to define MMIX and ELF
-# specific things. First include what we have in common with mmo.
-
-source_em ${srcdir}/emultempl/mmix-elfnmmo.em
-
-fragment <<EOF
-
-static void
-elfmmix_before_parse (void)
-{
- gld${EMULATION_NAME}_before_parse ();
-
- /* Make sure we don't create a demand-paged executable. Unfortunately
- this isn't changeable with a command-line option. It makes no
- difference to mmo, but the sections in elf64mmix will be aligned to a
- page in the linked file, which is non-intuitive. If there's ever a
- full system with shared libraries and demand paging, you will want to
- exclude this file. */
- config.magic_demand_paged = FALSE;
-
- config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
-}
-EOF
-
-LDEMUL_BEFORE_PARSE=elfmmix_before_parse
diff --git a/ld/emultempl/mmo.em b/ld/emultempl/mmo.em
deleted file mode 100644
index b895a9a..0000000
--- a/ld/emultempl/mmo.em
+++ /dev/null
@@ -1,221 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-# 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.
-#
-
-# This file is sourced from generic.em.
-
-fragment <<EOF
-/* Need to have this macro defined before mmix-elfnmmo, which uses the
- name for the before_allocation function, defined in ldemul.c (for
- the mmo "emulation") or in elf32.em (for the elf64mmix
- "emulation"). */
-#define gldmmo_before_allocation before_allocation_default
-
-/* We include this header *not* because we expect to handle ELF here
- but because we re-use the map_segments function in elf-generic.em,
- a file which is rightly somewhat ELF-centric. But this is only to
- get a weird testcase right; ld-mmix/bpo-22, forcing ELF to be
- output from the mmo emulation: -m mmo --oformat elf64-mmix! */
-#include "elf-bfd.h"
-
-static void gld${EMULATION_NAME}_after_allocation (void);
-EOF
-
-source_em ${srcdir}/emultempl/elf-generic.em
-source_em ${srcdir}/emultempl/mmix-elfnmmo.em
-
-fragment <<EOF
-
-/* Place an orphan section. We use this to put random SEC_CODE or
- SEC_READONLY sections right after MMO_TEXT_SECTION_NAME. Much borrowed
- from elf32.em. */
-
-static lang_output_section_statement_type *
-mmo_place_orphan (asection *s,
- const char *secname,
- int constraint ATTRIBUTE_UNUSED)
-{
- static struct
- {
- flagword nonzero_flags;
- struct orphan_save orphansave;
- } holds[] =
- {
- {
- SEC_CODE | SEC_READONLY,
- {
- MMO_TEXT_SECTION_NAME,
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE,
- 0, 0, 0, 0
- }
- },
- {
- SEC_LOAD | SEC_DATA,
- {
- MMO_DATA_SECTION_NAME,
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_DATA,
- 0, 0, 0, 0
- }
- },
- {
- SEC_ALLOC,
- {
- ".bss",
- SEC_ALLOC,
- 0, 0, 0, 0
- }
- }
- };
-
- struct orphan_save *place = NULL;
- lang_output_section_statement_type *after;
- lang_output_section_statement_type *os;
- size_t i;
-
- /* We have nothing to say for anything other than a final link or
- for sections that are excluded. */
- if (link_info.relocatable
- || (s->flags & SEC_EXCLUDE) != 0)
- return NULL;
-
- os = lang_output_section_find (secname);
-
- /* We have an output section by this name. Place the section inside it
- (regardless of whether the linker script lists it as input). */
- if (os != NULL)
- {
- lang_add_section (&os->children, s, NULL, os);
- return os;
- }
-
- /* Check for matching section type flags for sections we care about.
- A section without contents can have SEC_LOAD == 0, but we still
- want it attached to a sane section so the symbols appear as
- expected. */
- if ((s->flags & (SEC_ALLOC | SEC_READONLY)) != SEC_READONLY)
- for (i = 0; i < sizeof (holds) / sizeof (holds[0]); i++)
- if ((s->flags & holds[i].nonzero_flags) != 0)
- {
- place = &holds[i].orphansave;
- if (place->os == NULL)
- place->os = lang_output_section_find (place->name);
- break;
- }
-
- if (place == NULL)
- {
- /* For other combinations, we have to give up, except we make
- sure not to place the orphan section after the
- linker-generated register section; that'd make it continue
- the reg section and we never want that to happen for orphan
- sections. */
- lang_output_section_statement_type *before;
- lang_output_section_statement_type *lookup;
- static struct orphan_save hold_nonreg =
- {
- NULL,
- SEC_READONLY,
- 0, 0, 0, 0
- };
-
- if (hold_nonreg.os == NULL)
- {
- before = lang_output_section_find (MMIX_REG_CONTENTS_SECTION_NAME);
-
- /* If we have no such section, all fine; we don't care where
- it's placed. */
- if (before == NULL)
- return NULL;
-
- /* We have to find the oss before this one, so we can use that as
- "after". */
- for (lookup = &lang_output_section_statement.head->output_section_statement;
- lookup != NULL && lookup->next != before;
- lookup = lookup->next)
- ;
-
- hold_nonreg.os = lookup;
- }
-
- place = &hold_nonreg;
- }
-
- after = place->os;
- if (after == NULL)
- return NULL;
-
- /* If there's an output section by *this* name, we'll use it, regardless
- of actual section flags, in contrast to what's done in elf32.em. */
- os = lang_insert_orphan (s, secname, 0, after, place, NULL, NULL);
-
- return os;
-}
-
-/* Remove the spurious settings of SEC_RELOC that make it to the output at
- link time. We are as confused as elflink.h:elf_bfd_final_link, and
- paper over the bug similarly. */
-
-static void
-mmo_wipe_sec_reloc_flag (bfd *abfd, asection *sec, void *ptr ATTRIBUTE_UNUSED)
-{
- bfd_set_section_flags (abfd, sec,
- bfd_get_section_flags (abfd, sec) & ~SEC_RELOC);
-}
-
-/* Iterate with bfd_map_over_sections over mmo_wipe_sec_reloc_flag... */
-
-static void
-gld${EMULATION_NAME}_after_allocation (void)
-{
- bfd_map_over_sections (link_info.output_bfd, mmo_wipe_sec_reloc_flag, NULL);
- gld${EMULATION_NAME}_map_segments (FALSE);
-}
-
-/* To get on-demand global register allocation right, we need to parse the
- relocs, like what happens when linking to ELF. It needs to be done
- before all input sections are supposed to be present. When linking to
- ELF, it's done when reading symbols. When linking to mmo, we do it
- when all input files are seen, which is equivalent. */
-
-static void
-mmo_after_open (void)
-{
- /* When there's a mismatch between the output format and the emulation
- (using weird combinations like "-m mmo --oformat elf64-mmix" for
- example), we'd count relocs twice because they'd also be counted
- along the usual route for ELF-only linking, which would lead to an
- internal accounting error. */
- if (bfd_get_flavour (link_info.output_bfd) != bfd_target_elf_flavour)
- {
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- if (bfd_get_flavour (is->the_bfd) == bfd_target_elf_flavour
- && !_bfd_mmix_check_all_relocs (is->the_bfd, &link_info))
- einfo ("%X%P: Internal problems scanning %B after opening it",
- is->the_bfd);
- }
- }
- after_open_default ();
-}
-EOF
-
-LDEMUL_PLACE_ORPHAN=mmo_place_orphan
-LDEMUL_AFTER_OPEN=mmo_after_open
diff --git a/ld/emultempl/needrelax.em b/ld/emultempl/needrelax.em
deleted file mode 100644
index 7f90224..0000000
--- a/ld/emultempl/needrelax.em
+++ /dev/null
@@ -1,39 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2001, 2002, 2003, 2005, 2007 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.
-#
-
-# This file is sourced from elf32.em. It is used by targets for
-# which relaxation is not just an optimization, but for correctness.
-
-LDEMUL_BEFORE_ALLOCATION=need_relax_${EMULATION_NAME}_before_allocation
-
-fragment <<EOF
-
-static void
-need_relax_${EMULATION_NAME}_before_allocation (void)
-{
- /* Call main function; we're just extending it. */
- gld${EMULATION_NAME}_before_allocation ();
-
- /* Force -relax on if not doing a relocatable link. */
- if (! link_info.relocatable)
- ENABLE_RELAXATION;
-}
-EOF
diff --git a/ld/emultempl/netbsd.em b/ld/emultempl/netbsd.em
deleted file mode 100644
index 99b48b0..0000000
--- a/ld/emultempl/netbsd.em
+++ /dev/null
@@ -1,34 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2007 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.
-#
-
-LDEMUL_BEFORE_PARSE=gldnetbsd_before_parse
-
-fragment <<EOF
-static void
-gld${EMULATION_NAME}_before_parse (void);
-
-static void
-gldnetbsd_before_parse (void)
-{
- gld${EMULATION_NAME}_before_parse ();
- link_info.common_skip_ar_symbols = bfd_link_common_skip_text;
-}
-EOF
diff --git a/ld/emultempl/ostring.sed b/ld/emultempl/ostring.sed
deleted file mode 100644
index a526d3f..0000000
--- a/ld/emultempl/ostring.sed
+++ /dev/null
@@ -1,4 +0,0 @@
-s/["\\]/\\&/g
-s/$/\\n\\/
-1 s/^/"/
-$ s/$/n"/
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
deleted file mode 100644
index 4df7753..0000000
--- a/ld/emultempl/pe.em
+++ /dev/null
@@ -1,2232 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-if [ -z "$MACHINE" ]; then
- OUTPUT_ARCH=${ARCH}
-else
- OUTPUT_ARCH=${ARCH}:${MACHINE}
-fi
-rm -f e${EMULATION_NAME}.c
-(echo;echo;echo;echo;echo)>e${EMULATION_NAME}.c # there, now line numbers match ;-)
-fragment <<EOF
-/* Copyright 1995-2013 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. */
-
-
-/* For WINDOWS_NT */
-/* The original file generated returned different default scripts depending
- on whether certain switches were set, but these switches pertain to the
- Linux system and that particular version of coff. In the NT case, we
- only determine if the subsystem is console or windows in order to select
- the correct entry point by default. */
-
-#define TARGET_IS_${EMULATION_NAME}
-
-/* Do this before including bfd.h, so we prototype the right functions. */
-
-#if defined(TARGET_IS_armpe) \
- || defined(TARGET_IS_arm_epoc_pe) \
- || defined(TARGET_IS_arm_wince_pe)
-#define bfd_arm_allocate_interworking_sections \
- bfd_${EMULATION_NAME}_allocate_interworking_sections
-#define bfd_arm_get_bfd_for_interworking \
- bfd_${EMULATION_NAME}_get_bfd_for_interworking
-#define bfd_arm_process_before_allocation \
- bfd_${EMULATION_NAME}_process_before_allocation
-#endif
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "bfdlink.h"
-#include "getopt.h"
-#include "libiberty.h"
-#include "filenames.h"
-#include "ld.h"
-#include "ldmain.h"
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-#include <ldgram.h>
-#include "ldlex.h"
-#include "ldmisc.h"
-#include "ldctor.h"
-#include "coff/internal.h"
-
-/* FIXME: See bfd/peXXigen.c for why we include an architecture specific
- header in generic PE code. */
-#include "coff/i386.h"
-#include "coff/pe.h"
-
-/* FIXME: This is a BFD internal header file, and we should not be
- using it here. */
-#include "../bfd/libcoff.h"
-
-#include "deffile.h"
-#include "pe-dll.h"
-#include "safe-ctype.h"
-
-/* Permit the emulation parameters to override the default section
- alignment by setting OVERRIDE_SECTION_ALIGNMENT. FIXME: This makes
- it seem that include/coff/internal.h should not define
- PE_DEF_SECTION_ALIGNMENT. */
-#if PE_DEF_SECTION_ALIGNMENT != ${OVERRIDE_SECTION_ALIGNMENT:-PE_DEF_SECTION_ALIGNMENT}
-#undef PE_DEF_SECTION_ALIGNMENT
-#define PE_DEF_SECTION_ALIGNMENT ${OVERRIDE_SECTION_ALIGNMENT}
-#endif
-
-#if defined(TARGET_IS_i386pe) \
- || defined(TARGET_IS_shpe) \
- || defined(TARGET_IS_armpe) \
- || defined(TARGET_IS_arm_epoc_pe) \
- || defined(TARGET_IS_arm_wince_pe)
-#define DLL_SUPPORT
-#endif
-
-#if defined(TARGET_IS_i386pe)
-#define DEFAULT_PSEUDO_RELOC_VERSION 2
-#else
-#define DEFAULT_PSEUDO_RELOC_VERSION 1
-#endif
-
-#if defined(TARGET_IS_i386pe) || ! defined(DLL_SUPPORT)
-#define PE_DEF_SUBSYSTEM 3
-#else
-#undef NT_EXE_IMAGE_BASE
-#undef PE_DEF_SECTION_ALIGNMENT
-#undef PE_DEF_FILE_ALIGNMENT
-#define NT_EXE_IMAGE_BASE 0x00010000
-
-#if defined(TARGET_IS_armpe) || defined(TARGET_IS_arm_wince_pe)
-#define PE_DEF_SECTION_ALIGNMENT 0x00001000
-#define PE_DEF_SUBSYSTEM 9
-#else
-#define PE_DEF_SECTION_ALIGNMENT 0x00000400
-#define PE_DEF_SUBSYSTEM 2
-#endif
-#define PE_DEF_FILE_ALIGNMENT 0x00000200
-#endif
-
-static struct internal_extra_pe_aouthdr pe;
-static int dll;
-static int pe_subsystem = ${SUBSYSTEM};
-static flagword real_flags = 0;
-static int support_old_code = 0;
-static char * thumb_entry_symbol = NULL;
-static lang_assignment_statement_type *image_base_statement = 0;
-static unsigned short pe_dll_characteristics = 0;
-
-#ifdef DLL_SUPPORT
-static int pe_enable_stdcall_fixup = -1; /* 0=disable 1=enable. */
-static char *pe_out_def_filename = NULL;
-static char *pe_implib_filename = NULL;
-static int pe_enable_auto_image_base = 0;
-static char *pe_dll_search_prefix = NULL;
-#endif
-
-extern const char *output_filename;
-
-static int is_underscoring (void)
-{
- int u = 0;
- if (pe_leading_underscore != -1)
- return pe_leading_underscore;
- if (!bfd_get_target_info ("${OUTPUT_FORMAT}", NULL, NULL, &u, NULL))
- bfd_get_target_info ("${RELOCATEABLE_OUTPUT_FORMAT}", NULL, NULL, &u, NULL);
-
- if (u == -1)
- abort ();
- pe_leading_underscore = (u != 0 ? 1 : 0);
- return pe_leading_underscore;
-}
-
-static void
-gld_${EMULATION_NAME}_before_parse (void)
-{
- is_underscoring ();
- ldfile_set_output_arch ("${OUTPUT_ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`);
- output_filename = "${EXECUTABLE_NAME:-a.exe}";
-#ifdef DLL_SUPPORT
- input_flags.dynamic = TRUE;
- config.has_shared = 1;
-EOF
-
-# Cygwin no longer wants these noisy warnings. Other PE
-# targets might like to consider adding themselves here.
-# See also the mail thread starting here for the reason why
-# merge_rdata defaults to 0 for cygwin:
-# http://cygwin.com/ml/cygwin-apps/2013-04/msg00187.html
-case ${target} in
- *-*-cygwin*)
- default_auto_import=1
- default_merge_rdata=0
- ;;
- i[3-7]86-*-mingw* | x86_64-*-mingw*)
- default_auto_import=1
- default_merge_rdata=0
- ;;
- *)
- default_auto_import=-1
- default_merge_rdata=1
- ;;
-esac
-
-fragment <<EOF
- link_info.pei386_auto_import = ${default_auto_import};
- /* Use by default version. */
- link_info.pei386_runtime_pseudo_reloc = DEFAULT_PSEUDO_RELOC_VERSION;
-#endif
-}
-
-/* Indicates if RDATA shall be merged into DATA when pseudo-relocation
- version 2 is used and auto-import is enabled. */
-#define MERGE_RDATA_V2 ${default_merge_rdata}
-
-/* PE format extra command line options. */
-
-/* Used for setting flags in the PE header. */
-#define OPTION_BASE_FILE (300 + 1)
-#define OPTION_DLL (OPTION_BASE_FILE + 1)
-#define OPTION_FILE_ALIGNMENT (OPTION_DLL + 1)
-#define OPTION_IMAGE_BASE (OPTION_FILE_ALIGNMENT + 1)
-#define OPTION_MAJOR_IMAGE_VERSION (OPTION_IMAGE_BASE + 1)
-#define OPTION_MAJOR_OS_VERSION (OPTION_MAJOR_IMAGE_VERSION + 1)
-#define OPTION_MAJOR_SUBSYSTEM_VERSION (OPTION_MAJOR_OS_VERSION + 1)
-#define OPTION_MINOR_IMAGE_VERSION (OPTION_MAJOR_SUBSYSTEM_VERSION + 1)
-#define OPTION_MINOR_OS_VERSION (OPTION_MINOR_IMAGE_VERSION + 1)
-#define OPTION_MINOR_SUBSYSTEM_VERSION (OPTION_MINOR_OS_VERSION + 1)
-#define OPTION_SECTION_ALIGNMENT (OPTION_MINOR_SUBSYSTEM_VERSION + 1)
-#define OPTION_STACK (OPTION_SECTION_ALIGNMENT + 1)
-#define OPTION_SUBSYSTEM (OPTION_STACK + 1)
-#define OPTION_HEAP (OPTION_SUBSYSTEM + 1)
-#define OPTION_SUPPORT_OLD_CODE (OPTION_HEAP + 1)
-#define OPTION_OUT_DEF (OPTION_SUPPORT_OLD_CODE + 1)
-#define OPTION_EXPORT_ALL (OPTION_OUT_DEF + 1)
-#define OPTION_EXCLUDE_SYMBOLS (OPTION_EXPORT_ALL + 1)
-#define OPTION_EXCLUDE_ALL_SYMBOLS (OPTION_EXCLUDE_SYMBOLS + 1)
-#define OPTION_KILL_ATS (OPTION_EXCLUDE_ALL_SYMBOLS + 1)
-#define OPTION_STDCALL_ALIASES (OPTION_KILL_ATS + 1)
-#define OPTION_ENABLE_STDCALL_FIXUP (OPTION_STDCALL_ALIASES + 1)
-#define OPTION_DISABLE_STDCALL_FIXUP (OPTION_ENABLE_STDCALL_FIXUP + 1)
-#define OPTION_IMPLIB_FILENAME (OPTION_DISABLE_STDCALL_FIXUP + 1)
-#define OPTION_THUMB_ENTRY (OPTION_IMPLIB_FILENAME + 1)
-#define OPTION_WARN_DUPLICATE_EXPORTS (OPTION_THUMB_ENTRY + 1)
-#define OPTION_IMP_COMPAT (OPTION_WARN_DUPLICATE_EXPORTS + 1)
-#define OPTION_ENABLE_AUTO_IMAGE_BASE (OPTION_IMP_COMPAT + 1)
-#define OPTION_DISABLE_AUTO_IMAGE_BASE (OPTION_ENABLE_AUTO_IMAGE_BASE + 1)
-#define OPTION_DLL_SEARCH_PREFIX (OPTION_DISABLE_AUTO_IMAGE_BASE + 1)
-#define OPTION_NO_DEFAULT_EXCLUDES (OPTION_DLL_SEARCH_PREFIX + 1)
-#define OPTION_DLL_ENABLE_AUTO_IMPORT (OPTION_NO_DEFAULT_EXCLUDES + 1)
-#define OPTION_DLL_DISABLE_AUTO_IMPORT (OPTION_DLL_ENABLE_AUTO_IMPORT + 1)
-#define OPTION_ENABLE_EXTRA_PE_DEBUG (OPTION_DLL_DISABLE_AUTO_IMPORT + 1)
-#define OPTION_EXCLUDE_LIBS (OPTION_ENABLE_EXTRA_PE_DEBUG + 1)
-#define OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC \
- (OPTION_EXCLUDE_LIBS + 1)
-#define OPTION_DLL_DISABLE_RUNTIME_PSEUDO_RELOC \
- (OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC + 1)
-#define OPTION_LARGE_ADDRESS_AWARE \
- (OPTION_DLL_DISABLE_RUNTIME_PSEUDO_RELOC + 1)
-#define OPTION_DISABLE_LARGE_ADDRESS_AWARE \
- (OPTION_LARGE_ADDRESS_AWARE + 1)
-#define OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V1 \
- (OPTION_DISABLE_LARGE_ADDRESS_AWARE + 1)
-#define OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V2 \
- (OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V1 + 1)
-#define OPTION_EXCLUDE_MODULES_FOR_IMPLIB \
- (OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V2 + 1)
-#define OPTION_USE_NUL_PREFIXED_IMPORT_TABLES \
- (OPTION_EXCLUDE_MODULES_FOR_IMPLIB + 1)
-#define OPTION_NO_LEADING_UNDERSCORE \
- (OPTION_USE_NUL_PREFIXED_IMPORT_TABLES + 1)
-#define OPTION_LEADING_UNDERSCORE \
- (OPTION_NO_LEADING_UNDERSCORE + 1)
-#define OPTION_ENABLE_LONG_SECTION_NAMES \
- (OPTION_LEADING_UNDERSCORE + 1)
-#define OPTION_DISABLE_LONG_SECTION_NAMES \
- (OPTION_ENABLE_LONG_SECTION_NAMES + 1)
-/* DLLCharacteristics flags */
-#define OPTION_DYNAMIC_BASE (OPTION_DISABLE_LONG_SECTION_NAMES + 1)
-#define OPTION_FORCE_INTEGRITY (OPTION_DYNAMIC_BASE + 1)
-#define OPTION_NX_COMPAT (OPTION_FORCE_INTEGRITY + 1)
-#define OPTION_NO_ISOLATION (OPTION_NX_COMPAT + 1)
-#define OPTION_NO_SEH (OPTION_NO_ISOLATION + 1)
-#define OPTION_NO_BIND (OPTION_NO_SEH + 1)
-#define OPTION_WDM_DRIVER (OPTION_NO_BIND + 1)
-#define OPTION_TERMINAL_SERVER_AWARE (OPTION_WDM_DRIVER + 1)
-
-static void
-gld${EMULATION_NAME}_add_options
- (int ns ATTRIBUTE_UNUSED,
- char **shortopts ATTRIBUTE_UNUSED,
- int nl,
- struct option **longopts,
- int nrl ATTRIBUTE_UNUSED,
- struct option **really_longopts ATTRIBUTE_UNUSED)
-{
- static const struct option xtra_long[] =
- {
- /* PE options. */
- {"base-file", required_argument, NULL, OPTION_BASE_FILE},
- {"dll", no_argument, NULL, OPTION_DLL},
- {"file-alignment", required_argument, NULL, OPTION_FILE_ALIGNMENT},
- {"heap", required_argument, NULL, OPTION_HEAP},
- {"image-base", required_argument, NULL, OPTION_IMAGE_BASE},
- {"major-image-version", required_argument, NULL, OPTION_MAJOR_IMAGE_VERSION},
- {"major-os-version", required_argument, NULL, OPTION_MAJOR_OS_VERSION},
- {"major-subsystem-version", required_argument, NULL, OPTION_MAJOR_SUBSYSTEM_VERSION},
- {"minor-image-version", required_argument, NULL, OPTION_MINOR_IMAGE_VERSION},
- {"minor-os-version", required_argument, NULL, OPTION_MINOR_OS_VERSION},
- {"minor-subsystem-version", required_argument, NULL, OPTION_MINOR_SUBSYSTEM_VERSION},
- {"section-alignment", required_argument, NULL, OPTION_SECTION_ALIGNMENT},
- {"stack", required_argument, NULL, OPTION_STACK},
- {"subsystem", required_argument, NULL, OPTION_SUBSYSTEM},
- {"support-old-code", no_argument, NULL, OPTION_SUPPORT_OLD_CODE},
- {"thumb-entry", required_argument, NULL, OPTION_THUMB_ENTRY},
- {"use-nul-prefixed-import-tables", no_argument, NULL,
- OPTION_USE_NUL_PREFIXED_IMPORT_TABLES},
- {"no-leading-underscore", no_argument, NULL, OPTION_NO_LEADING_UNDERSCORE},
- {"leading-underscore", no_argument, NULL, OPTION_LEADING_UNDERSCORE},
-#ifdef DLL_SUPPORT
- /* getopt allows abbreviations, so we do this to stop it
- from treating -o as an abbreviation for this option. */
- {"output-def", required_argument, NULL, OPTION_OUT_DEF},
- {"output-def", required_argument, NULL, OPTION_OUT_DEF},
- {"export-all-symbols", no_argument, NULL, OPTION_EXPORT_ALL},
- {"exclude-symbols", required_argument, NULL, OPTION_EXCLUDE_SYMBOLS},
- {"exclude-all-symbols", no_argument, NULL, OPTION_EXCLUDE_ALL_SYMBOLS},
- {"exclude-libs", required_argument, NULL, OPTION_EXCLUDE_LIBS},
- {"exclude-modules-for-implib", required_argument, NULL, OPTION_EXCLUDE_MODULES_FOR_IMPLIB},
- {"kill-at", no_argument, NULL, OPTION_KILL_ATS},
- {"add-stdcall-alias", no_argument, NULL, OPTION_STDCALL_ALIASES},
- {"enable-stdcall-fixup", no_argument, NULL, OPTION_ENABLE_STDCALL_FIXUP},
- {"disable-stdcall-fixup", no_argument, NULL, OPTION_DISABLE_STDCALL_FIXUP},
- {"out-implib", required_argument, NULL, OPTION_IMPLIB_FILENAME},
- {"warn-duplicate-exports", no_argument, NULL, OPTION_WARN_DUPLICATE_EXPORTS},
- /* getopt() allows abbreviations, so we do this to stop it from
- treating -c as an abbreviation for these --compat-implib. */
- {"compat-implib", no_argument, NULL, OPTION_IMP_COMPAT},
- {"compat-implib", no_argument, NULL, OPTION_IMP_COMPAT},
- {"enable-auto-image-base", no_argument, NULL, OPTION_ENABLE_AUTO_IMAGE_BASE},
- {"disable-auto-image-base", no_argument, NULL, OPTION_DISABLE_AUTO_IMAGE_BASE},
- {"dll-search-prefix", required_argument, NULL, OPTION_DLL_SEARCH_PREFIX},
- {"no-default-excludes", no_argument, NULL, OPTION_NO_DEFAULT_EXCLUDES},
- {"enable-auto-import", no_argument, NULL, OPTION_DLL_ENABLE_AUTO_IMPORT},
- {"disable-auto-import", no_argument, NULL, OPTION_DLL_DISABLE_AUTO_IMPORT},
- {"enable-extra-pe-debug", no_argument, NULL, OPTION_ENABLE_EXTRA_PE_DEBUG},
- {"enable-runtime-pseudo-reloc", no_argument, NULL, OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC},
- {"disable-runtime-pseudo-reloc", no_argument, NULL, OPTION_DLL_DISABLE_RUNTIME_PSEUDO_RELOC},
- {"enable-runtime-pseudo-reloc-v1", no_argument, NULL, OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V1},
- {"enable-runtime-pseudo-reloc-v2", no_argument, NULL, OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V2},
-#endif
- {"large-address-aware", no_argument, NULL, OPTION_LARGE_ADDRESS_AWARE},
- {"disable-large-address-aware", no_argument, NULL, OPTION_DISABLE_LARGE_ADDRESS_AWARE},
- {"enable-long-section-names", no_argument, NULL, OPTION_ENABLE_LONG_SECTION_NAMES},
- {"disable-long-section-names", no_argument, NULL, OPTION_DISABLE_LONG_SECTION_NAMES},
- {"dynamicbase",no_argument, NULL, OPTION_DYNAMIC_BASE},
- {"forceinteg", no_argument, NULL, OPTION_FORCE_INTEGRITY},
- {"nxcompat", no_argument, NULL, OPTION_NX_COMPAT},
- {"no-isolation", no_argument, NULL, OPTION_NO_ISOLATION},
- {"no-seh", no_argument, NULL, OPTION_NO_SEH},
- {"no-bind", no_argument, NULL, OPTION_NO_BIND},
- {"wdmdriver", no_argument, NULL, OPTION_WDM_DRIVER},
- {"tsaware", no_argument, NULL, OPTION_TERMINAL_SERVER_AWARE},
- {NULL, no_argument, NULL, 0}
- };
-
- *longopts
- = xrealloc (*longopts, nl * sizeof (struct option) + sizeof (xtra_long));
- memcpy (*longopts + nl, &xtra_long, sizeof (xtra_long));
-}
-
-/* PE/WIN32; added routines to get the subsystem type, heap and/or stack
- parameters which may be input from the command line. */
-
-typedef struct
-{
- void *ptr;
- int size;
- int value;
- char *symbol;
- int inited;
- /* FALSE for an assembly level symbol and TRUE for a C visible symbol.
- C visible symbols can be prefixed by underscore dependent to target's
- settings. */
- bfd_boolean is_c_symbol;
-} definfo;
-
-/* Get symbol name dependent to kind and C visible state of
- underscore. */
-#define GET_INIT_SYMBOL_NAME(IDX) \
- (init[(IDX)].symbol \
- + ((init[(IDX)].is_c_symbol == FALSE || (is_underscoring () != 0)) ? 0 : 1))
-
-/* Decorates the C visible symbol by underscore, if target requires. */
-#define U(CSTR) \
- ((is_underscoring () == 0) ? CSTR : "_" CSTR)
-
-/* Get size of constant string for a possible underscore prefixed
- C visible symbol. */
-#define U_SIZE(CSTR) \
- (sizeof (CSTR) + (is_underscoring () == 0 ? 0 : 1))
-
-#define D(field,symbol,def,usc) {&pe.field,sizeof(pe.field), def, symbol, 0, usc}
-
-static definfo init[] =
-{
- /* imagebase must be first */
-#define IMAGEBASEOFF 0
- D(ImageBase,"__image_base__", NT_EXE_IMAGE_BASE, FALSE),
-#define DLLOFF 1
- {&dll, sizeof(dll), 0, "__dll__", 0, FALSE},
-#define MSIMAGEBASEOFF 2
- D(ImageBase, "___ImageBase", NT_EXE_IMAGE_BASE, TRUE),
- D(SectionAlignment,"__section_alignment__", PE_DEF_SECTION_ALIGNMENT, FALSE),
- D(FileAlignment,"__file_alignment__", PE_DEF_FILE_ALIGNMENT, FALSE),
- D(MajorOperatingSystemVersion,"__major_os_version__", 4, FALSE),
- D(MinorOperatingSystemVersion,"__minor_os_version__", 0, FALSE),
- D(MajorImageVersion,"__major_image_version__", 1, FALSE),
- D(MinorImageVersion,"__minor_image_version__", 0, FALSE),
-#if defined(TARGET_IS_armpe) || defined(TARGET_IS_arm_wince_pe)
- D(MajorSubsystemVersion,"__major_subsystem_version__", 3, FALSE),
-#else
- D(MajorSubsystemVersion,"__major_subsystem_version__", 4, FALSE),
-#endif
- D(MinorSubsystemVersion,"__minor_subsystem_version__", 0, FALSE),
- D(Subsystem,"__subsystem__", ${SUBSYSTEM}, FALSE),
- D(SizeOfStackReserve,"__size_of_stack_reserve__", 0x200000, FALSE),
- D(SizeOfStackCommit,"__size_of_stack_commit__", 0x1000, FALSE),
- D(SizeOfHeapReserve,"__size_of_heap_reserve__", 0x100000, FALSE),
- D(SizeOfHeapCommit,"__size_of_heap_commit__", 0x1000, FALSE),
- D(LoaderFlags,"__loader_flags__", 0x0, FALSE),
- D(DllCharacteristics, "__dll_characteristics__", 0x0, FALSE),
- { NULL, 0, 0, NULL, 0 , FALSE}
-};
-
-
-static void
-gld_${EMULATION_NAME}_list_options (FILE *file)
-{
- fprintf (file, _(" --base_file <basefile> Generate a base file for relocatable DLLs\n"));
- fprintf (file, _(" --dll Set image base to the default for DLLs\n"));
- fprintf (file, _(" --file-alignment <size> Set file alignment\n"));
- fprintf (file, _(" --heap <size> Set initial size of the heap\n"));
- fprintf (file, _(" --image-base <address> Set start address of the executable\n"));
- fprintf (file, _(" --major-image-version <number> Set version number of the executable\n"));
- fprintf (file, _(" --major-os-version <number> Set minimum required OS version\n"));
- fprintf (file, _(" --major-subsystem-version <number> Set minimum required OS subsystem version\n"));
- fprintf (file, _(" --minor-image-version <number> Set revision number of the executable\n"));
- fprintf (file, _(" --minor-os-version <number> Set minimum required OS revision\n"));
- fprintf (file, _(" --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"));
- fprintf (file, _(" --section-alignment <size> Set section alignment\n"));
- fprintf (file, _(" --stack <size> Set size of the initial stack\n"));
- fprintf (file, _(" --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"));
- fprintf (file, _(" --support-old-code Support interworking with old code\n"));
- fprintf (file, _(" --[no-]leading-underscore Set explicit symbol underscore prefix mode\n"));
- fprintf (file, _(" --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"));
-#ifdef DLL_SUPPORT
- fprintf (file, _(" --add-stdcall-alias Export symbols with and without @nn\n"));
- fprintf (file, _(" --disable-stdcall-fixup Don't link _sym to _sym@nn\n"));
- fprintf (file, _(" --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"));
- fprintf (file, _(" --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"));
- fprintf (file, _(" --exclude-all-symbols Exclude all symbols from automatic export\n"));
- fprintf (file, _(" --exclude-libs lib,lib,... Exclude libraries from automatic export\n"));
- fprintf (file, _(" --exclude-modules-for-implib mod,mod,...\n"));
- fprintf (file, _(" Exclude objects, archive members from auto\n"));
- fprintf (file, _(" export, place into import library instead.\n"));
- fprintf (file, _(" --export-all-symbols Automatically export all globals to DLL\n"));
- fprintf (file, _(" --kill-at Remove @nn from exported symbols\n"));
- fprintf (file, _(" --out-implib <file> Generate import library\n"));
- fprintf (file, _(" --output-def <file> Generate a .DEF file for the built DLL\n"));
- fprintf (file, _(" --warn-duplicate-exports Warn about duplicate exports.\n"));
- fprintf (file, _(" --compat-implib Create backward compatible import libs;\n\
- create __imp_<SYMBOL> as well.\n"));
- fprintf (file, _(" --enable-auto-image-base Automatically choose image base for DLLs\n\
- unless user specifies one\n"));
- fprintf (file, _(" --disable-auto-image-base Do not auto-choose image base. (default)\n"));
- fprintf (file, _(" --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"));
- fprintf (file, _(" --enable-auto-import Do sophisticated linking of _sym to\n\
- __imp_sym for DATA references\n"));
- fprintf (file, _(" --disable-auto-import Do not auto-import DATA items from DLLs\n"));
- fprintf (file, _(" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n\
- adding pseudo-relocations resolved at\n\
- runtime.\n"));
- fprintf (file, _(" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n\
- auto-imported DATA.\n"));
- fprintf (file, _(" --enable-extra-pe-debug Enable verbose debug output when building\n\
- or linking to DLLs (esp. auto-import)\n"));
-#endif
- fprintf (file, _(" --large-address-aware Executable supports virtual addresses\n\
- greater than 2 gigabytes\n"));
- fprintf (file, _(" --disable-large-address-aware Executable does not support virtual\n\
- addresses greater than 2 gigabytes\n"));
- fprintf (file, _(" --enable-long-section-names Use long COFF section names even in\n\
- executable image files\n"));
- fprintf (file, _(" --disable-long-section-names Never use long COFF section names, even\n\
- in object files\n"));
- fprintf (file, _(" --dynamicbase Image base address may be relocated using\n\
- address space layout randomization (ASLR)\n"));
- fprintf (file, _(" --forceinteg Code integrity checks are enforced\n"));
- fprintf (file, _(" --nxcompat Image is compatible with data execution prevention\n"));
- fprintf (file, _(" --no-isolation Image understands isolation but do not isolate the image\n"));
- fprintf (file, _(" --no-seh Image does not use SEH. No SE handler may\n\
- be called in this image\n"));
- fprintf (file, _(" --no-bind Do not bind this image\n"));
- fprintf (file, _(" --wdmdriver Driver uses the WDM model\n"));
- fprintf (file, _(" --tsaware Image is Terminal Server aware\n"));
-}
-
-
-static void
-set_pe_name (char *name, long val)
-{
- int i;
- is_underscoring ();
-
- /* Find the name and set it. */
- for (i = 0; init[i].ptr; i++)
- {
- if (strcmp (name, GET_INIT_SYMBOL_NAME (i)) == 0)
- {
- init[i].value = val;
- init[i].inited = 1;
- if (strcmp (name,"__image_base__") == 0)
- set_pe_name (U ("__ImageBase"), val);
- return;
- }
- }
- abort ();
-}
-
-static void
-set_entry_point (void)
-{
- const char *entry;
- const char *initial_symbol_char;
- int i;
-
- static const struct
- {
- const int value;
- const char *entry;
- }
- v[] =
- {
- { 1, "NtProcessStartup" },
- { 2, "WinMainCRTStartup" },
- { 3, "mainCRTStartup" },
- { 7, "__PosixProcessStartup"},
- { 9, "WinMainCRTStartup" },
- {14, "mainCRTStartup" },
- { 0, NULL }
- };
-
- /* Entry point name for arbitrary subsystem numbers. */
- static const char default_entry[] = "mainCRTStartup";
-
- if (link_info.shared || dll)
- {
-#if defined (TARGET_IS_i386pe)
- entry = "DllMainCRTStartup@12";
-#else
- entry = "DllMainCRTStartup";
-#endif
- }
- else
- {
-
- for (i = 0; v[i].entry; i++)
- if (v[i].value == pe_subsystem)
- break;
-
- /* If no match, use the default. */
- if (v[i].entry != NULL)
- entry = v[i].entry;
- else
- entry = default_entry;
- }
-
- initial_symbol_char = (is_underscoring () != 0 ? "_" : "");
-
- if (*initial_symbol_char != '\0')
- {
- char *alc_entry;
-
- /* lang_default_entry expects its argument to be permanently
- allocated, so we don't free this string. */
- alc_entry = xmalloc (strlen (initial_symbol_char)
- + strlen (entry)
- + 1);
- strcpy (alc_entry, initial_symbol_char);
- strcat (alc_entry, entry);
- entry = alc_entry;
- }
-
- lang_default_entry (entry);
-}
-
-static void
-set_pe_subsystem (void)
-{
- const char *sver;
- char *end;
- int len;
- int i;
- unsigned long temp_subsystem;
- static const struct
- {
- const char *name;
- const int value;
- }
- v[] =
- {
- { "native", 1},
- { "windows", 2},
- { "console", 3},
- { "posix", 7},
- { "wince", 9},
- { "xbox", 14},
- { NULL, 0 }
- };
-
- /* Check for the presence of a version number. */
- sver = strchr (optarg, ':');
- if (sver == NULL)
- len = strlen (optarg);
- else
- {
- len = sver - optarg;
- set_pe_name ("__major_subsystem_version__",
- strtoul (sver + 1, &end, 0));
- if (*end == '.')
- set_pe_name ("__minor_subsystem_version__",
- strtoul (end + 1, &end, 0));
- if (*end != '\0')
- einfo (_("%P: warning: bad version number in -subsystem option\n"));
- }
-
- /* Check for numeric subsystem. */
- temp_subsystem = strtoul (optarg, & end, 0);
- if ((*end == ':' || *end == '\0') && (temp_subsystem < 65536))
- {
- /* Search list for a numeric match to use its entry point. */
- for (i = 0; v[i].name; i++)
- if (v[i].value == (int) temp_subsystem)
- break;
-
- /* Use this subsystem. */
- pe_subsystem = (int) temp_subsystem;
- }
- else
- {
- /* Search for subsystem by name. */
- for (i = 0; v[i].name; i++)
- if (strncmp (optarg, v[i].name, len) == 0
- && v[i].name[len] == '\0')
- break;
-
- if (v[i].name == NULL)
- {
- einfo (_("%P%F: invalid subsystem type %s\n"), optarg);
- return;
- }
-
- pe_subsystem = v[i].value;
- }
-
- set_pe_name ("__subsystem__", pe_subsystem);
-
- return;
-}
-
-
-static void
-set_pe_value (char *name)
-{
- char *end;
-
- set_pe_name (name, strtoul (optarg, &end, 0));
-
- if (end == optarg)
- einfo (_("%P%F: invalid hex number for PE parameter '%s'\n"), optarg);
-
- optarg = end;
-}
-
-
-static void
-set_pe_stack_heap (char *resname, char *comname)
-{
- set_pe_value (resname);
-
- if (*optarg == ',')
- {
- optarg++;
- set_pe_value (comname);
- }
- else if (*optarg)
- einfo (_("%P%F: strange hex info for PE parameter '%s'\n"), optarg);
-}
-
-
-static bfd_boolean
-gld${EMULATION_NAME}_handle_option (int optc)
-{
- switch (optc)
- {
- default:
- return FALSE;
-
- case OPTION_BASE_FILE:
- link_info.base_file = fopen (optarg, FOPEN_WB);
- if (link_info.base_file == NULL)
- einfo (_("%F%P: cannot open base file %s\n"), optarg);
- break;
-
- /* PE options. */
- case OPTION_HEAP:
- set_pe_stack_heap ("__size_of_heap_reserve__", "__size_of_heap_commit__");
- break;
- case OPTION_STACK:
- set_pe_stack_heap ("__size_of_stack_reserve__", "__size_of_stack_commit__");
- break;
- case OPTION_SUBSYSTEM:
- set_pe_subsystem ();
- break;
- case OPTION_MAJOR_OS_VERSION:
- set_pe_value ("__major_os_version__");
- break;
- case OPTION_MINOR_OS_VERSION:
- set_pe_value ("__minor_os_version__");
- break;
- case OPTION_MAJOR_SUBSYSTEM_VERSION:
- set_pe_value ("__major_subsystem_version__");
- break;
- case OPTION_MINOR_SUBSYSTEM_VERSION:
- set_pe_value ("__minor_subsystem_version__");
- break;
- case OPTION_MAJOR_IMAGE_VERSION:
- set_pe_value ("__major_image_version__");
- break;
- case OPTION_MINOR_IMAGE_VERSION:
- set_pe_value ("__minor_image_version__");
- break;
- case OPTION_FILE_ALIGNMENT:
- set_pe_value ("__file_alignment__");
- break;
- case OPTION_SECTION_ALIGNMENT:
- set_pe_value ("__section_alignment__");
- break;
- case OPTION_DLL:
- set_pe_name ("__dll__", 1);
- break;
- case OPTION_IMAGE_BASE:
- set_pe_value ("__image_base__");
- break;
- case OPTION_SUPPORT_OLD_CODE:
- support_old_code = 1;
- break;
- case OPTION_THUMB_ENTRY:
- thumb_entry_symbol = optarg;
- break;
- case OPTION_USE_NUL_PREFIXED_IMPORT_TABLES:
- pe_use_nul_prefixed_import_tables = TRUE;
- break;
- case OPTION_NO_LEADING_UNDERSCORE:
- pe_leading_underscore = 0;
- break;
- case OPTION_LEADING_UNDERSCORE:
- pe_leading_underscore = 1;
- break;
-#ifdef DLL_SUPPORT
- case OPTION_OUT_DEF:
- pe_out_def_filename = xstrdup (optarg);
- break;
- case OPTION_EXPORT_ALL:
- pe_dll_export_everything = 1;
- break;
- case OPTION_EXCLUDE_SYMBOLS:
- pe_dll_add_excludes (optarg, EXCLUDESYMS);
- break;
- case OPTION_EXCLUDE_ALL_SYMBOLS:
- pe_dll_exclude_all_symbols = 1;
- break;
- case OPTION_EXCLUDE_LIBS:
- pe_dll_add_excludes (optarg, EXCLUDELIBS);
- break;
- case OPTION_EXCLUDE_MODULES_FOR_IMPLIB:
- pe_dll_add_excludes (optarg, EXCLUDEFORIMPLIB);
- break;
- case OPTION_KILL_ATS:
- pe_dll_kill_ats = 1;
- break;
- case OPTION_STDCALL_ALIASES:
- pe_dll_stdcall_aliases = 1;
- break;
- case OPTION_ENABLE_STDCALL_FIXUP:
- pe_enable_stdcall_fixup = 1;
- break;
- case OPTION_DISABLE_STDCALL_FIXUP:
- pe_enable_stdcall_fixup = 0;
- break;
- case OPTION_IMPLIB_FILENAME:
- pe_implib_filename = xstrdup (optarg);
- break;
- case OPTION_WARN_DUPLICATE_EXPORTS:
- pe_dll_warn_dup_exports = 1;
- break;
- case OPTION_IMP_COMPAT:
- pe_dll_compat_implib = 1;
- break;
- case OPTION_ENABLE_AUTO_IMAGE_BASE:
- pe_enable_auto_image_base = 1;
- break;
- case OPTION_DISABLE_AUTO_IMAGE_BASE:
- pe_enable_auto_image_base = 0;
- break;
- case OPTION_DLL_SEARCH_PREFIX:
- pe_dll_search_prefix = xstrdup (optarg);
- break;
- case OPTION_NO_DEFAULT_EXCLUDES:
- pe_dll_do_default_excludes = 0;
- break;
- case OPTION_DLL_ENABLE_AUTO_IMPORT:
- link_info.pei386_auto_import = 1;
- break;
- case OPTION_DLL_DISABLE_AUTO_IMPORT:
- link_info.pei386_auto_import = 0;
- break;
- case OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC:
- link_info.pei386_runtime_pseudo_reloc =
- DEFAULT_PSEUDO_RELOC_VERSION;
- break;
- case OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V1:
- link_info.pei386_runtime_pseudo_reloc = 1;
- break;
- case OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V2:
- link_info.pei386_runtime_pseudo_reloc = 2;
- break;
- case OPTION_DLL_DISABLE_RUNTIME_PSEUDO_RELOC:
- link_info.pei386_runtime_pseudo_reloc = 0;
- break;
- case OPTION_ENABLE_EXTRA_PE_DEBUG:
- pe_dll_extra_pe_debug = 1;
- break;
-#endif
- case OPTION_LARGE_ADDRESS_AWARE:
- real_flags |= IMAGE_FILE_LARGE_ADDRESS_AWARE;
- break;
- case OPTION_DISABLE_LARGE_ADDRESS_AWARE:
- real_flags &= ~ IMAGE_FILE_LARGE_ADDRESS_AWARE;
- break;
- case OPTION_ENABLE_LONG_SECTION_NAMES:
- pe_use_coff_long_section_names = 1;
- break;
- case OPTION_DISABLE_LONG_SECTION_NAMES:
- pe_use_coff_long_section_names = 0;
- break;
-/* Get DLLCharacteristics bits */
- case OPTION_DYNAMIC_BASE:
- pe_dll_characteristics |= IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE;
- break;
- case OPTION_FORCE_INTEGRITY:
- pe_dll_characteristics |= IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY;
- break;
- case OPTION_NX_COMPAT:
- pe_dll_characteristics |= IMAGE_DLL_CHARACTERISTICS_NX_COMPAT;
- break;
- case OPTION_NO_ISOLATION:
- pe_dll_characteristics |= IMAGE_DLLCHARACTERISTICS_NO_ISOLATION;
- break;
- case OPTION_NO_SEH:
- pe_dll_characteristics |= IMAGE_DLLCHARACTERISTICS_NO_SEH;
- break;
- case OPTION_NO_BIND:
- pe_dll_characteristics |= IMAGE_DLLCHARACTERISTICS_NO_BIND;
- break;
- case OPTION_WDM_DRIVER:
- pe_dll_characteristics |= IMAGE_DLLCHARACTERISTICS_WDM_DRIVER;
- break;
- case OPTION_TERMINAL_SERVER_AWARE:
- pe_dll_characteristics |= IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE;
- break;
- }
-
- /* Set DLLCharacteristics bits */
- set_pe_name ("__dll_characteristics__", pe_dll_characteristics);
-
- return TRUE;
-}
-
-
-#ifdef DLL_SUPPORT
-static unsigned long
-strhash (const char *str)
-{
- const unsigned char *s;
- unsigned long hash;
- unsigned int c;
- unsigned int len;
-
- hash = 0;
- len = 0;
- s = (const unsigned char *) str;
- while ((c = *s++) != '\0')
- {
- hash += c + (c << 17);
- hash ^= hash >> 2;
- ++len;
- }
- hash += len + (len << 17);
- hash ^= hash >> 2;
-
- return hash;
-}
-
-/* Use the output file to create a image base for relocatable DLLs. */
-
-static unsigned long
-compute_dll_image_base (const char *ofile)
-{
- unsigned long hash = strhash (ofile);
- return 0x61300000 + ((hash << 16) & 0x0FFC0000);
-}
-#endif
-
-/* Assign values to the special symbols before the linker script is
- read. */
-
-static void
-gld_${EMULATION_NAME}_set_symbols (void)
-{
- /* Run through and invent symbols for all the
- names and insert the defaults. */
- int j;
-
- is_underscoring ();
-
- if (!init[IMAGEBASEOFF].inited)
- {
- if (link_info.relocatable)
- init[IMAGEBASEOFF].value = 0;
- else if (init[DLLOFF].value || (link_info.shared && !link_info.pie))
- {
-#ifdef DLL_SUPPORT
- init[IMAGEBASEOFF].value = (pe_enable_auto_image_base
- ? compute_dll_image_base (output_filename)
- : NT_DLL_IMAGE_BASE);
-#else
- init[IMAGEBASEOFF].value = NT_DLL_IMAGE_BASE;
-#endif
- }
- else
- init[IMAGEBASEOFF].value = NT_EXE_IMAGE_BASE;
- init[MSIMAGEBASEOFF].value = init[IMAGEBASEOFF].value;
- }
-
- /* Don't do any symbol assignments if this is a relocatable link. */
- if (link_info.relocatable)
- return;
-
- /* Glue the assignments into the abs section. */
- push_stat_ptr (&abs_output_section->children);
-
- for (j = 0; init[j].ptr; j++)
- {
- long val = init[j].value;
- lang_assignment_statement_type *rv;
-
- rv = lang_add_assignment (exp_assign (GET_INIT_SYMBOL_NAME (j),
- exp_intop (val), FALSE));
- if (init[j].size == sizeof (short))
- *(short *) init[j].ptr = val;
- else if (init[j].size == sizeof (int))
- *(int *) init[j].ptr = val;
- else if (init[j].size == sizeof (long))
- *(long *) init[j].ptr = val;
- /* This might be a long long or other special type. */
- else if (init[j].size == sizeof (bfd_vma))
- *(bfd_vma *) init[j].ptr = val;
- else abort ();
- if (j == IMAGEBASEOFF)
- image_base_statement = rv;
- }
- /* Restore the pointer. */
- pop_stat_ptr ();
-
- if (pe.FileAlignment > pe.SectionAlignment)
- {
- einfo (_("%P: warning, file alignment > section alignment.\n"));
- }
-}
-
-/* This is called after the linker script and the command line options
- have been read. */
-
-static void
-gld_${EMULATION_NAME}_after_parse (void)
-{
- /* PR ld/6744: Warn the user if they have used an ELF-only
- option hoping it will work on PE. */
- if (link_info.export_dynamic)
- einfo (_("%P: warning: --export-dynamic is not supported for PE "
- "targets, did you mean --export-all-symbols?\n"));
-
- set_entry_point ();
-
- after_parse_default ();
-}
-
-/* pe-dll.c directly accesses pe_data_import_dll,
- so it must be defined outside of #ifdef DLL_SUPPORT.
- Note - this variable is deliberately not initialised.
- This allows it to be treated as a common varaible, and only
- exist in one incarnation in a multiple target enabled linker. */
-char * pe_data_import_dll;
-
-#ifdef DLL_SUPPORT
-static struct bfd_link_hash_entry *pe_undef_found_sym;
-
-static bfd_boolean
-pe_undef_cdecl_match (struct bfd_link_hash_entry *h, void *inf)
-{
- int sl;
- char *string = inf;
- const char *hs = h->root.string;
-
- sl = strlen (string);
- if (h->type == bfd_link_hash_defined
- && ((*hs == '@' && *string == '_'
- && strncmp (hs + 1, string + 1, sl - 1) == 0)
- || strncmp (hs, string, sl) == 0)
- && h->root.string[sl] == '@')
- {
- pe_undef_found_sym = h;
- return FALSE;
- }
- return TRUE;
-}
-
-static void
-pe_fixup_stdcalls (void)
-{
- static int gave_warning_message = 0;
- struct bfd_link_hash_entry *undef, *sym;
-
- if (pe_dll_extra_pe_debug)
- printf ("%s\n", __FUNCTION__);
-
- for (undef = link_info.hash->undefs; undef; undef=undef->u.undef.next)
- if (undef->type == bfd_link_hash_undefined)
- {
- char* at = strchr (undef->root.string, '@');
- int lead_at = (*undef->root.string == '@');
- if (lead_at)
- at = strchr (undef->root.string + 1, '@');
-
- if (at || lead_at)
- {
- /* The symbol is a stdcall symbol, so let's look for a
- cdecl symbol with the same name and resolve to that. */
- char *cname = xstrdup (undef->root.string);
-
- if (lead_at)
- *cname = '_';
- at = strchr (cname, '@');
- if (at)
- *at = 0;
- sym = bfd_link_hash_lookup (link_info.hash, cname, 0, 0, 1);
-
- if (sym && sym->type == bfd_link_hash_defined)
- {
- undef->type = bfd_link_hash_defined;
- undef->u.def.value = sym->u.def.value;
- undef->u.def.section = sym->u.def.section;
-
- if (pe_enable_stdcall_fixup == -1)
- {
- einfo (_("Warning: resolving %s by linking to %s\n"),
- undef->root.string, cname);
- if (! gave_warning_message)
- {
- gave_warning_message = 1;
- einfo (_("Use --enable-stdcall-fixup to disable these warnings\n"));
- einfo (_("Use --disable-stdcall-fixup to disable these fixups\n"));
- }
- }
- }
- }
- else
- {
- /* The symbol is a cdecl symbol, so we look for stdcall
- symbols - which means scanning the whole symbol table. */
- pe_undef_found_sym = 0;
- bfd_link_hash_traverse (link_info.hash, pe_undef_cdecl_match,
- (char *) undef->root.string);
- sym = pe_undef_found_sym;
- if (sym)
- {
- undef->type = bfd_link_hash_defined;
- undef->u.def.value = sym->u.def.value;
- undef->u.def.section = sym->u.def.section;
-
- if (pe_enable_stdcall_fixup == -1)
- {
- einfo (_("Warning: resolving %s by linking to %s\n"),
- undef->root.string, sym->root.string);
- if (! gave_warning_message)
- {
- gave_warning_message = 1;
- einfo (_("Use --enable-stdcall-fixup to disable these warnings\n"));
- einfo (_("Use --disable-stdcall-fixup to disable these fixups\n"));
- }
- }
- }
- }
- }
-}
-
-static int
-make_import_fixup (arelent *rel, asection *s)
-{
- struct bfd_symbol *sym = *rel->sym_ptr_ptr;
- char addend[4];
-
- if (pe_dll_extra_pe_debug)
- printf ("arelent: %s@%#lx: add=%li\n", sym->name,
- (unsigned long) rel->address, (long) rel->addend);
-
- if (! bfd_get_section_contents (s->owner, s, addend, rel->address, sizeof (addend)))
- einfo (_("%C: Cannot get section contents - auto-import exception\n"),
- s->owner, s, rel->address);
-
- pe_create_import_fixup (rel, s, bfd_get_32 (s->owner, addend));
-
- return 1;
-}
-
-static void
-pe_find_data_imports (void)
-{
- struct bfd_link_hash_entry *undef, *sym;
-
- if (link_info.pei386_auto_import == 0)
- return;
-
- for (undef = link_info.hash->undefs; undef; undef=undef->u.undef.next)
- {
- if (undef->type == bfd_link_hash_undefined)
- {
- /* C++ symbols are *long*. */
- char buf[4096];
-
- if (pe_dll_extra_pe_debug)
- printf ("%s:%s\n", __FUNCTION__, undef->root.string);
-
- sprintf (buf, "__imp_%s", undef->root.string);
-
- sym = bfd_link_hash_lookup (link_info.hash, buf, 0, 0, 1);
-
- if (sym && sym->type == bfd_link_hash_defined)
- {
- bfd *b = sym->u.def.section->owner;
- asymbol **symbols;
- int nsyms, i;
-
- if (link_info.pei386_auto_import == -1)
- {
- static bfd_boolean warned = FALSE;
-
- info_msg (_("Info: resolving %s by linking to %s (auto-import)\n"),
- undef->root.string, buf);
-
- /* PR linker/4844. */
- if (! warned)
- {
- warned = TRUE;
- einfo (_("%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"));
- }
- }
-
- if (!bfd_generic_link_read_symbols (b))
- {
- einfo (_("%B%F: could not read symbols: %E\n"), b);
- return;
- }
-
- symbols = bfd_get_outsymbols (b);
- nsyms = bfd_get_symcount (b);
-
- for (i = 0; i < nsyms; i++)
- {
- if (! CONST_STRNEQ (symbols[i]->name,
- U ("_head_")))
- continue;
-
- if (pe_dll_extra_pe_debug)
- printf ("->%s\n", symbols[i]->name);
-
- pe_data_import_dll = (char *) (symbols[i]->name
- + U_SIZE ("_head_") - 1);
- break;
- }
-
- pe_walk_relocs_of_symbol (&link_info, undef->root.string,
- make_import_fixup);
-
- /* Let's differentiate it somehow from defined. */
- undef->type = bfd_link_hash_defweak;
- /* We replace original name with __imp_ prefixed, this
- 1) may trash memory 2) leads to duplicate symbol generation.
- Still, IMHO it's better than having name poluted. */
- undef->root.string = sym->root.string;
- undef->u.def.value = sym->u.def.value;
- undef->u.def.section = sym->u.def.section;
- }
- }
- }
-}
-
-static bfd_boolean
-pr_sym (struct bfd_hash_entry *h, void *inf ATTRIBUTE_UNUSED)
-{
- printf ("+%s\n", h->string);
-
- return TRUE;
-}
-#endif /* DLL_SUPPORT */
-
-static void
-debug_section_p (bfd *abfd ATTRIBUTE_UNUSED, asection *sect, void *obj)
-{
- int *found = (int *) obj;
- if (strncmp (".debug_", sect->name, sizeof (".debug_") - 1) == 0)
- *found = 1;
-}
-
-static void
-gld_${EMULATION_NAME}_after_open (void)
-{
- after_open_default ();
-
-#ifdef DLL_SUPPORT
- if (pe_dll_extra_pe_debug)
- {
- bfd *a;
- struct bfd_link_hash_entry *sym;
-
- printf ("%s()\n", __FUNCTION__);
-
- for (sym = link_info.hash->undefs; sym; sym=sym->u.undef.next)
- printf ("-%s\n", sym->root.string);
- bfd_hash_traverse (&link_info.hash->table, pr_sym, NULL);
-
- for (a = link_info.input_bfds; a; a = a->link_next)
- printf ("*%s\n",a->filename);
- }
-#endif
-
- /* Pass the wacky PE command line options into the output bfd.
- FIXME: This should be done via a function, rather than by
- including an internal BFD header. */
-
- if (coff_data (link_info.output_bfd) == NULL
- || coff_data (link_info.output_bfd)->pe == 0)
- einfo (_("%F%P: cannot perform PE operations on non PE output file '%B'.\n"),
- link_info.output_bfd);
-
- pe_data (link_info.output_bfd)->pe_opthdr = pe;
- pe_data (link_info.output_bfd)->dll = init[DLLOFF].value;
- pe_data (link_info.output_bfd)->real_flags |= real_flags;
-
- /* At this point we must decide whether to use long section names
- in the output or not. If the user hasn't explicitly specified
- on the command line, we leave it to the default for the format
- (object files yes, image files no), except if there is debug
- information present; GDB relies on the long section names to
- find it, so enable it in that case. */
- if (pe_use_coff_long_section_names < 0 && link_info.strip == strip_none)
- {
- /* Iterate over all sections of all input BFDs, checking
- for any that begin 'debug_' and are long names. */
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- int found_debug = 0;
- bfd_map_over_sections (is->the_bfd, debug_section_p, &found_debug);
- if (found_debug)
- {
- pe_use_coff_long_section_names = 1;
- break;
- }
- }
- }
-
- pe_output_file_set_long_section_names (link_info.output_bfd);
-
-#ifdef DLL_SUPPORT
- if (pe_enable_stdcall_fixup) /* -1=warn or 1=disable */
- pe_fixup_stdcalls ();
-
- pe_process_import_defs (link_info.output_bfd, &link_info);
-
- pe_find_data_imports ();
-
- /* As possibly new symbols are added by imports, we rerun
- stdcall/fastcall fixup here. */
- if (pe_enable_stdcall_fixup) /* -1=warn or 1=disable */
- pe_fixup_stdcalls ();
-
-#if defined (TARGET_IS_i386pe) \
- || defined (TARGET_IS_armpe) \
- || defined (TARGET_IS_arm_epoc_pe) \
- || defined (TARGET_IS_arm_wince_pe)
- if (!link_info.relocatable)
- pe_dll_build_sections (link_info.output_bfd, &link_info);
-#else
- if (link_info.shared)
- pe_dll_build_sections (link_info.output_bfd, &link_info);
- else
- pe_exe_build_sections (link_info.output_bfd, &link_info);
-#endif
-#endif /* DLL_SUPPORT */
-
-#if defined(TARGET_IS_armpe) || defined(TARGET_IS_arm_epoc_pe) || defined(TARGET_IS_arm_wince_pe)
- if (strstr (bfd_get_target (link_info.output_bfd), "arm") == NULL)
- {
- /* The arm backend needs special fields in the output hash structure.
- These will only be created if the output format is an arm format,
- hence we do not support linking and changing output formats at the
- same time. Use a link followed by objcopy to change output formats. */
- einfo ("%F%X%P: error: cannot change output format whilst linking ARM binaries\n");
- return;
- }
- {
- /* Find a BFD that can hold the interworking stubs. */
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- if (bfd_arm_get_bfd_for_interworking (is->the_bfd, & link_info))
- break;
- }
- }
-#endif
-
- {
- /* This next chunk of code tries to detect the case where you have
- two import libraries for the same DLL (specifically,
- symbolically linking libm.a and libc.a in cygwin to
- libcygwin.a). In those cases, it's possible for function
- thunks from the second implib to be used but without the
- head/tail objects, causing an improper import table. We detect
- those cases and rename the "other" import libraries to match
- the one the head/tail come from, so that the linker will sort
- things nicely and produce a valid import table. */
-
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- if (is->the_bfd->my_archive)
- {
- int idata2 = 0, reloc_count=0, is_imp = 0;
- asection *sec;
-
- /* See if this is an import library thunk. */
- for (sec = is->the_bfd->sections; sec; sec = sec->next)
- {
- if (strcmp (sec->name, ".idata\$2") == 0)
- idata2 = 1;
- if (CONST_STRNEQ (sec->name, ".idata\$"))
- is_imp = 1;
- reloc_count += sec->reloc_count;
- }
-
- if (is_imp && !idata2 && reloc_count)
- {
- /* It is, look for the reference to head and see if it's
- from our own library. */
- for (sec = is->the_bfd->sections; sec; sec = sec->next)
- {
- int i;
- long relsize;
- asymbol **symbols;
- arelent **relocs;
- int nrelocs;
-
- relsize = bfd_get_reloc_upper_bound (is->the_bfd, sec);
- if (relsize < 1)
- break;
-
- if (!bfd_generic_link_read_symbols (is->the_bfd))
- {
- einfo (_("%B%F: could not read symbols: %E\n"),
- is->the_bfd);
- return;
- }
- symbols = bfd_get_outsymbols (is->the_bfd);
-
- relocs = xmalloc ((size_t) relsize);
- nrelocs = bfd_canonicalize_reloc (is->the_bfd, sec,
- relocs, symbols);
- if (nrelocs < 0)
- {
- free (relocs);
- einfo ("%X%P: unable to process relocs: %E\n");
- return;
- }
-
- for (i = 0; i < nrelocs; i++)
- {
- struct bfd_symbol *s;
- struct bfd_link_hash_entry * blhe;
- char *other_bfd_filename;
- char *n;
-
- s = (relocs[i]->sym_ptr_ptr)[0];
-
- if (s->flags & BSF_LOCAL)
- continue;
-
- /* Thunk section with reloc to another bfd. */
- blhe = bfd_link_hash_lookup (link_info.hash,
- s->name,
- FALSE, FALSE, TRUE);
-
- if (blhe == NULL
- || blhe->type != bfd_link_hash_defined)
- continue;
-
- other_bfd_filename
- = blhe->u.def.section->owner->my_archive
- ? bfd_get_filename (blhe->u.def.section->owner->my_archive)
- : bfd_get_filename (blhe->u.def.section->owner);
-
- if (filename_cmp (bfd_get_filename
- (is->the_bfd->my_archive),
- other_bfd_filename) == 0)
- continue;
-
- /* Rename this implib to match the other one. */
- n = xmalloc (strlen (other_bfd_filename) + 1);
- strcpy (n, other_bfd_filename);
- is->the_bfd->my_archive->filename = n;
- }
-
- free (relocs);
- /* Note - we do not free the symbols,
- they are now cached in the BFD. */
- }
- }
- }
- }
- }
-
- {
- int is_ms_arch = 0;
- bfd *cur_arch = 0;
- lang_input_statement_type *is2;
- lang_input_statement_type *is3;
-
- /* Careful - this is a shell script. Watch those dollar signs! */
- /* Microsoft import libraries have every member named the same,
- and not in the right order for us to link them correctly. We
- must detect these and rename the members so that they'll link
- correctly. There are three types of objects: the head, the
- thunks, and the sentinel(s). The head is easy; it's the one
- with idata2. We assume that the sentinels won't have relocs,
- and the thunks will. It's easier than checking the symbol
- table for external references. */
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- if (is->the_bfd->my_archive)
- {
- char *pnt;
- bfd *arch = is->the_bfd->my_archive;
-
- if (cur_arch != arch)
- {
- cur_arch = arch;
- is_ms_arch = 1;
-
- for (is3 = is;
- is3 && is3->the_bfd->my_archive == arch;
- is3 = (lang_input_statement_type *) is3->next)
- {
- /* A MS dynamic import library can also contain static
- members, so look for the first element with a .dll
- extension, and use that for the remainder of the
- comparisons. */
- pnt = strrchr (is3->the_bfd->filename, '.');
- if (pnt != NULL && filename_cmp (pnt, ".dll") == 0)
- break;
- }
-
- if (is3 == NULL)
- is_ms_arch = 0;
- else
- {
- /* OK, found one. Now look to see if the remaining
- (dynamic import) members use the same name. */
- for (is2 = is;
- is2 && is2->the_bfd->my_archive == arch;
- is2 = (lang_input_statement_type *) is2->next)
- {
- /* Skip static members, ie anything with a .obj
- extension. */
- pnt = strrchr (is2->the_bfd->filename, '.');
- if (pnt != NULL && filename_cmp (pnt, ".obj") == 0)
- continue;
-
- if (filename_cmp (is3->the_bfd->filename,
- is2->the_bfd->filename))
- {
- is_ms_arch = 0;
- break;
- }
- }
- }
- }
-
- /* This fragment might have come from an .obj file in a Microsoft
- import, and not an actual import record. If this is the case,
- then leave the filename alone. */
- pnt = strrchr (is->the_bfd->filename, '.');
-
- if (is_ms_arch && (filename_cmp (pnt, ".dll") == 0))
- {
- int idata2 = 0, reloc_count=0;
- asection *sec;
- char *new_name, seq;
-
- for (sec = is->the_bfd->sections; sec; sec = sec->next)
- {
- if (strcmp (sec->name, ".idata\$2") == 0)
- idata2 = 1;
- reloc_count += sec->reloc_count;
- }
-
- if (idata2) /* .idata2 is the TOC */
- seq = 'a';
- else if (reloc_count > 0) /* thunks */
- seq = 'b';
- else /* sentinel */
- seq = 'c';
-
- new_name = xmalloc (strlen (is->the_bfd->filename) + 3);
- sprintf (new_name, "%s.%c", is->the_bfd->filename, seq);
- is->the_bfd->filename = new_name;
-
- new_name = xmalloc (strlen (is->filename) + 3);
- sprintf (new_name, "%s.%c", is->filename, seq);
- is->filename = new_name;
- }
- }
- }
- }
-
- {
- /* The following chunk of code tries to identify jump stubs in
- import libraries which are dead code and eliminates them
- from the final link. For each exported symbol <sym>, there
- is a object file in the import library with a .text section
- and several .idata\$* sections. The .text section contains the
- symbol definition for <sym> which is a jump stub of the form
- jmp *__imp_<sym>. The .idata\$5 contains the symbol definition
- for __imp_<sym> which is the address of the slot for <sym> in
- the import address table. When a symbol is imported explicitly
- using __declspec(dllimport) declaration, the compiler generates
- a reference to __imp_<sym> which directly resolves to the
- symbol in .idata\$5, in which case the jump stub code is not
- needed. The following code tries to identify jump stub sections
- in import libraries which are not referred to by anyone and
- marks them for exclusion from the final link. */
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- if (is->the_bfd->my_archive)
- {
- int is_imp = 0;
- asection *sec, *stub_sec = NULL;
-
- /* See if this is an import library thunk. */
- for (sec = is->the_bfd->sections; sec; sec = sec->next)
- {
- if (strncmp (sec->name, ".idata\$", 7) == 0)
- is_imp = 1;
- /* The section containing the jmp stub has code
- and has a reloc. */
- if ((sec->flags & SEC_CODE) && sec->reloc_count)
- stub_sec = sec;
- }
-
- if (is_imp && stub_sec)
- {
- asymbol **symbols;
- long nsyms, src_count;
- struct bfd_link_hash_entry * blhe;
-
- if (!bfd_generic_link_read_symbols (is->the_bfd))
- {
- einfo (_("%B%F: could not read symbols: %E\n"),
- is->the_bfd);
- return;
- }
- symbols = bfd_get_outsymbols (is->the_bfd);
- nsyms = bfd_get_symcount (is->the_bfd);
-
- for (src_count = 0; src_count < nsyms; src_count++)
- {
- if (symbols[src_count]->section->id == stub_sec->id)
- {
- /* This symbol belongs to the section containing
- the stub. */
- blhe = bfd_link_hash_lookup (link_info.hash,
- symbols[src_count]->name,
- FALSE, FALSE, TRUE);
- /* If the symbol in the stub section has no other
- undefined references, exclude the stub section
- from the final link. */
- if (blhe != NULL
- && blhe->type == bfd_link_hash_defined
- && blhe->u.undef.next == NULL
- && blhe != link_info.hash->undefs_tail)
- stub_sec->flags |= SEC_EXCLUDE;
- }
- }
- }
- }
- }
- }
-}
-
-static void
-gld_${EMULATION_NAME}_before_allocation (void)
-{
-#ifdef TARGET_IS_ppcpe
- /* Here we rummage through the found bfds to collect toc information. */
- {
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- if (!ppc_process_before_allocation (is->the_bfd, &link_info))
- {
- /* xgettext:c-format */
- einfo (_("Errors encountered processing file %s\n"), is->filename);
- }
- }
- }
-
- /* We have seen it all. Allocate it, and carry on. */
- ppc_allocate_toc_section (&link_info);
-#endif /* TARGET_IS_ppcpe */
-
-#if defined(TARGET_IS_armpe) || defined(TARGET_IS_arm_epoc_pe) || defined(TARGET_IS_arm_wince_pe)
- /* FIXME: we should be able to set the size of the interworking stub
- section.
-
- Here we rummage through the found bfds to collect glue
- information. FIXME: should this be based on a command line
- option? krk@cygnus.com. */
- {
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- if (! bfd_arm_process_before_allocation
- (is->the_bfd, & link_info, support_old_code))
- {
- /* xgettext:c-format */
- einfo (_("Errors encountered processing file %s for interworking\n"),
- is->filename);
- }
- }
- }
-
- /* We have seen it all. Allocate it, and carry on. */
- bfd_arm_allocate_interworking_sections (& link_info);
-#endif /* TARGET_IS_armpe || TARGET_IS_arm_epoc_pe || TARGET_IS_arm_wince_pe */
-
- before_allocation_default ();
-}
-
-#ifdef DLL_SUPPORT
-/* This is called when an input file isn't recognized as a BFD. We
- check here for .DEF files and pull them in automatically. */
-
-static int
-saw_option (char *option)
-{
- int i;
-
- for (i = 0; init[i].ptr; i++)
- if (strcmp (GET_INIT_SYMBOL_NAME (i), option) == 0)
- return init[i].inited;
- return 0;
-}
-#endif /* DLL_SUPPORT */
-
-static bfd_boolean
-gld_${EMULATION_NAME}_unrecognized_file (lang_input_statement_type *entry ATTRIBUTE_UNUSED)
-{
-#ifdef DLL_SUPPORT
- const char *ext = entry->filename + strlen (entry->filename) - 4;
-
- if (filename_cmp (ext, ".def") == 0 || filename_cmp (ext, ".DEF") == 0)
- {
- pe_def_file = def_file_parse (entry->filename, pe_def_file);
-
- if (pe_def_file)
- {
- int i, buflen=0, len;
- char *buf;
-
- for (i = 0; i < pe_def_file->num_exports; i++)
- {
- len = strlen (pe_def_file->exports[i].internal_name);
- if (buflen < len + 2)
- buflen = len + 2;
- }
-
- buf = xmalloc (buflen);
-
- for (i = 0; i < pe_def_file->num_exports; i++)
- {
- struct bfd_link_hash_entry *h;
-
- sprintf (buf, "%s%s", U (""),
- pe_def_file->exports[i].internal_name);
-
- h = bfd_link_hash_lookup (link_info.hash, buf, TRUE, TRUE, TRUE);
- if (h == (struct bfd_link_hash_entry *) NULL)
- einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n"));
- if (h->type == bfd_link_hash_new)
- {
- h->type = bfd_link_hash_undefined;
- h->u.undef.abfd = NULL;
- bfd_link_add_undef (link_info.hash, h);
- }
- }
- free (buf);
-
- /* def_file_print (stdout, pe_def_file); */
- if (pe_def_file->is_dll == 1)
- link_info.shared = 1;
-
- if (pe_def_file->base_address != (bfd_vma)(-1))
- {
- pe.ImageBase
- = pe_data (link_info.output_bfd)->pe_opthdr.ImageBase
- = init[IMAGEBASEOFF].value
- = pe_def_file->base_address;
- init[IMAGEBASEOFF].inited = 1;
- if (image_base_statement)
- image_base_statement->exp
- = exp_assign ("__image_base__", exp_intop (pe.ImageBase),
- FALSE);
- }
-
- if (pe_def_file->stack_reserve != -1
- && ! saw_option ("__size_of_stack_reserve__"))
- {
- pe.SizeOfStackReserve = pe_def_file->stack_reserve;
- if (pe_def_file->stack_commit != -1)
- pe.SizeOfStackCommit = pe_def_file->stack_commit;
- }
- if (pe_def_file->heap_reserve != -1
- && ! saw_option ("__size_of_heap_reserve__"))
- {
- pe.SizeOfHeapReserve = pe_def_file->heap_reserve;
- if (pe_def_file->heap_commit != -1)
- pe.SizeOfHeapCommit = pe_def_file->heap_commit;
- }
- return TRUE;
- }
- }
-#endif
- return FALSE;
-}
-
-static bfd_boolean
-gld_${EMULATION_NAME}_recognized_file (lang_input_statement_type *entry ATTRIBUTE_UNUSED)
-{
-#ifdef DLL_SUPPORT
-#ifdef TARGET_IS_i386pe
- pe_dll_id_target ("pei-i386");
-#endif
-#ifdef TARGET_IS_shpe
- pe_dll_id_target ("pei-shl");
-#endif
-#ifdef TARGET_IS_armpe
- pe_dll_id_target ("pei-arm-little");
-#endif
-#ifdef TARGET_IS_arm_epoc_pe
- pe_dll_id_target ("epoc-pei-arm-little");
-#endif
-#ifdef TARGET_IS_arm_wince_pe
- pe_dll_id_target ("pei-arm-wince-little");
-#endif
- if (pe_bfd_is_dll (entry->the_bfd))
- return pe_implied_import_dll (entry->filename);
-#endif
- return FALSE;
-}
-
-static void
-gld_${EMULATION_NAME}_finish (void)
-{
-#if defined(TARGET_IS_armpe) || defined(TARGET_IS_arm_epoc_pe) || defined(TARGET_IS_arm_wince_pe)
- struct bfd_link_hash_entry * h;
-
- if (thumb_entry_symbol != NULL)
- {
- h = bfd_link_hash_lookup (link_info.hash, thumb_entry_symbol,
- FALSE, FALSE, TRUE);
-
- if (h != (struct bfd_link_hash_entry *) NULL
- && (h->type == bfd_link_hash_defined
- || h->type == bfd_link_hash_defweak)
- && h->u.def.section->output_section != NULL)
- {
- static char buffer[32];
- bfd_vma val;
-
- /* Special procesing is required for a Thumb entry symbol. The
- bottom bit of its address must be set. */
- val = (h->u.def.value
- + bfd_get_section_vma (link_info.output_bfd,
- h->u.def.section->output_section)
- + h->u.def.section->output_offset);
-
- val |= 1;
-
- /* Now convert this value into a string and store it in entry_symbol
- where the lang_finish() function will pick it up. */
- buffer[0] = '0';
- buffer[1] = 'x';
-
- sprintf_vma (buffer + 2, val);
-
- if (entry_symbol.name != NULL && entry_from_cmdline)
- einfo (_("%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"),
- thumb_entry_symbol, entry_symbol.name);
- entry_symbol.name = buffer;
- }
- else
- einfo (_("%P: warning: cannot find thumb start symbol %s\n"), thumb_entry_symbol);
- }
-#endif /* defined(TARGET_IS_armpe) || defined(TARGET_IS_arm_epoc_pe) || defined(TARGET_IS_arm_wince_pe) */
-
- finish_default ();
-
-#ifdef DLL_SUPPORT
- if (link_info.shared
-#if !defined(TARGET_IS_shpe)
- || (!link_info.relocatable && pe_def_file->num_exports != 0)
-#endif
- )
- {
- pe_dll_fill_sections (link_info.output_bfd, &link_info);
- if (pe_implib_filename)
- pe_dll_generate_implib (pe_def_file, pe_implib_filename, &link_info);
- }
-#if defined(TARGET_IS_shpe)
- /* ARM doesn't need relocs. */
- else
- {
- pe_exe_fill_sections (link_info.output_bfd, &link_info);
- }
-#endif
-
- if (pe_out_def_filename)
- pe_dll_generate_def_file (pe_out_def_filename);
-#endif /* DLL_SUPPORT */
-
- /* I don't know where .idata gets set as code, but it shouldn't be. */
- {
- asection *asec = bfd_get_section_by_name (link_info.output_bfd, ".idata");
-
- if (asec)
- {
- asec->flags &= ~SEC_CODE;
- asec->flags |= SEC_DATA;
- }
- }
-}
-
-
-/* Place an orphan section.
-
- We use this to put sections in a reasonable place in the file, and
- to ensure that they are aligned as required.
-
- We handle grouped sections here as well. A section named .foo\$nn
- goes into the output section .foo. All grouped sections are sorted
- by name.
-
- Grouped sections for the default sections are handled by the
- default linker script using wildcards, and are sorted by
- sort_sections. */
-
-static lang_output_section_statement_type *
-gld_${EMULATION_NAME}_place_orphan (asection *s,
- const char *secname,
- int constraint)
-{
- const char *orig_secname = secname;
- char *dollar = NULL;
- lang_output_section_statement_type *os;
- lang_statement_list_type add_child;
- lang_output_section_statement_type *match_by_name = NULL;
- lang_statement_union_type **pl;
-
- /* Look through the script to see where to place this section. */
- if (!link_info.relocatable
- && (dollar = strchr (secname, '\$')) != NULL)
- {
- size_t len = dollar - secname;
- char *newname = xmalloc (len + 1);
- memcpy (newname, secname, len);
- newname[len] = '\0';
- secname = newname;
- }
-
- lang_list_init (&add_child);
-
- os = NULL;
- if (constraint == 0)
- for (os = lang_output_section_find (secname);
- os != NULL;
- os = next_matching_output_section_statement (os, 0))
- {
- /* If we don't match an existing output section, tell
- lang_insert_orphan to create a new output section. */
- constraint = SPECIAL;
-
- if (os->bfd_section != NULL
- && (os->bfd_section->flags == 0
- || ((s->flags ^ os->bfd_section->flags)
- & (SEC_LOAD | SEC_ALLOC)) == 0))
- {
- /* 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 (&add_child, s, NULL, os);
- break;
- }
-
- /* Save unused output sections in case we can match them
- against orphans later. */
- if (os->bfd_section == NULL)
- match_by_name = os;
- }
-
- /* If we didn't match an active output section, see if we matched an
- unused one and use that. */
- if (os == NULL && match_by_name)
- {
- lang_add_section (&match_by_name->children, s, NULL, match_by_name);
- return match_by_name;
- }
-
- if (os == NULL)
- {
- static struct orphan_save hold[] =
- {
- { ".text",
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE,
- 0, 0, 0, 0 },
- { ".idata",
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA,
- 0, 0, 0, 0 },
- { ".rdata",
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA,
- 0, 0, 0, 0 },
- { ".data",
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_DATA,
- 0, 0, 0, 0 },
- { ".bss",
- SEC_ALLOC,
- 0, 0, 0, 0 }
- };
- enum orphan_save_index
- {
- orphan_text = 0,
- orphan_idata,
- orphan_rodata,
- orphan_data,
- orphan_bss
- };
- static int orphan_init_done = 0;
- struct orphan_save *place;
- lang_output_section_statement_type *after;
- etree_type *address;
-
- if (!orphan_init_done)
- {
- struct orphan_save *ho;
- for (ho = hold; ho < hold + sizeof (hold) / sizeof (hold[0]); ++ho)
- if (ho->name != NULL)
- {
- ho->os = lang_output_section_find (ho->name);
- if (ho->os != NULL && ho->os->flags == 0)
- ho->os->flags = ho->flags;
- }
- orphan_init_done = 1;
- }
-
- /* Try to put the new output section in a reasonable place based
- on the section name and section flags. */
-
- place = NULL;
- if ((s->flags & SEC_ALLOC) == 0)
- ;
- else if ((s->flags & (SEC_LOAD | SEC_HAS_CONTENTS)) == 0)
- place = &hold[orphan_bss];
- else if ((s->flags & SEC_READONLY) == 0)
- place = &hold[orphan_data];
- else if ((s->flags & SEC_CODE) == 0)
- {
- place = (!strncmp (secname, ".idata\$", 7) ? &hold[orphan_idata]
- : &hold[orphan_rodata]);
- }
- else
- place = &hold[orphan_text];
-
- after = NULL;
- if (place != NULL)
- {
- if (place->os == NULL)
- place->os = lang_output_section_find (place->name);
- after = place->os;
- if (after == NULL)
- after = lang_output_section_find_by_flags (s, &place->os, NULL);
- if (after == NULL)
- /* *ABS* is always the first output section statement. */
- after = (&lang_output_section_statement.head
- ->output_section_statement);
- }
-
- /* All sections in an executable must be aligned to a page boundary.
- In a relocatable link, just preserve the incoming alignment; the
- address is discarded by lang_insert_orphan in that case, anyway. */
- address = exp_unop (ALIGN_K, exp_nameop (NAME, "__section_alignment__"));
- os = lang_insert_orphan (s, secname, constraint, after, place, address,
- &add_child);
- if (link_info.relocatable)
- {
- os->section_alignment = s->alignment_power;
- os->bfd_section->alignment_power = s->alignment_power;
- }
- }
-
- /* If the section name has a '\$', sort it with the other '\$'
- sections. */
- for (pl = &os->children.head; *pl != NULL; pl = &(*pl)->header.next)
- {
- lang_input_section_type *ls;
- const char *lname;
-
- if ((*pl)->header.type != lang_input_section_enum)
- continue;
-
- ls = &(*pl)->input_section;
-
- lname = bfd_get_section_name (ls->section->owner, ls->section);
- if (strchr (lname, '\$') != NULL
- && (dollar == NULL || strcmp (orig_secname, lname) < 0))
- break;
- }
-
- if (add_child.head != NULL)
- {
- *add_child.tail = *pl;
- *pl = add_child.head;
- }
-
- return os;
-}
-
-static bfd_boolean
-gld_${EMULATION_NAME}_open_dynamic_archive
- (const char *arch ATTRIBUTE_UNUSED,
- search_dirs_type *search,
- lang_input_statement_type *entry)
-{
- static const struct
- {
- const char * format;
- bfd_boolean use_prefix;
- }
- libname_fmt [] =
- {
- /* Preferred explicit import library for dll's. */
- { "lib%s.dll.a", FALSE },
- /* Alternate explicit import library for dll's. */
- { "%s.dll.a", FALSE },
- /* "libfoo.a" could be either an import lib or a static lib.
- For backwards compatibility, libfoo.a needs to precede
- libfoo.dll and foo.dll in the search. */
- { "lib%s.a", FALSE },
- /* The 'native' spelling of an import lib name is "foo.lib". */
- { "%s.lib", FALSE },
-#ifdef DLL_SUPPORT
- /* Try "<prefix>foo.dll" (preferred dll name, if specified). */
- { "%s%s.dll", TRUE },
-#endif
- /* Try "libfoo.dll" (default preferred dll name). */
- { "lib%s.dll", FALSE },
- /* Finally try 'native' dll name "foo.dll". */
- { "%s.dll", FALSE },
- /* Note: If adding more formats to this table, make sure to check to
- see if their length is longer than libname_fmt[0].format, and if
- so, update the call to xmalloc() below. */
- { NULL, FALSE }
- };
- static unsigned int format_max_len = 0;
- const char * filename;
- char * full_string;
- char * base_string;
- unsigned int i;
-
-
- if (! entry->flags.maybe_archive)
- return FALSE;
-
- filename = entry->filename;
-
- if (format_max_len == 0)
- /* We need to allow space in the memory that we are going to allocate
- for the characters in the format string. Since the format array is
- static we only need to calculate this information once. In theory
- this value could also be computed statically, but this introduces
- the possibility for a discrepancy and hence a possible memory
- corruption. The lengths we compute here will be too long because
- they will include any formating characters (%s) in the strings, but
- this will not matter. */
- for (i = 0; libname_fmt[i].format; i++)
- if (format_max_len < strlen (libname_fmt[i].format))
- format_max_len = strlen (libname_fmt[i].format);
-
- full_string = xmalloc (strlen (search->name)
- + strlen (filename)
- + format_max_len
-#ifdef DLL_SUPPORT
- + (pe_dll_search_prefix
- ? strlen (pe_dll_search_prefix) : 0)
-#endif
- /* Allow for the terminating NUL and for the path
- separator character that is inserted between
- search->name and the start of the format string. */
- + 2);
-
- sprintf (full_string, "%s/", search->name);
- base_string = full_string + strlen (full_string);
-
- for (i = 0; libname_fmt[i].format; i++)
- {
-#ifdef DLL_SUPPORT
- if (libname_fmt[i].use_prefix)
- {
- if (!pe_dll_search_prefix)
- continue;
- sprintf (base_string, libname_fmt[i].format, pe_dll_search_prefix, filename);
- }
- else
-#endif
- sprintf (base_string, libname_fmt[i].format, filename);
-
- if (ldfile_try_open_bfd (full_string, entry))
- break;
- }
-
- if (!libname_fmt[i].format)
- {
- free (full_string);
- return FALSE;
- }
-
- entry->filename = full_string;
-
- return TRUE;
-}
-
-static int
-gld_${EMULATION_NAME}_find_potential_libraries
- (char *name, lang_input_statement_type *entry)
-{
- return ldfile_open_file_search (name, entry, "", ".lib");
-}
-
-static char *
-gld_${EMULATION_NAME}_get_script (int *isfile)
-EOF
-# Scripts compiled in.
-# sed commands to quote an ld script as a C string.
-sc="-f stringify.sed"
-
-fragment <<EOF
-{
- *isfile = 0;
-
- if (link_info.relocatable && config.build_constructors)
- return
-EOF
-sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c
-if test -n "$GENERATE_AUTO_IMPORT_SCRIPT" ; then
-echo ' ; else if (link_info.pei386_auto_import == 1 && (MERGE_RDATA_V2 || link_info.pei386_runtime_pseudo_reloc != 2)) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xa >> e${EMULATION_NAME}.c
-fi
-echo ' ; else return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c
-echo '; }' >> e${EMULATION_NAME}.c
-
-fragment <<EOF
-
-
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
-{
- gld_${EMULATION_NAME}_before_parse,
- syslib_default,
- hll_default,
- gld_${EMULATION_NAME}_after_parse,
- gld_${EMULATION_NAME}_after_open,
- after_allocation_default,
- set_output_arch_default,
- ldemul_default_target,
- gld_${EMULATION_NAME}_before_allocation,
- gld_${EMULATION_NAME}_get_script,
- "${EMULATION_NAME}",
- "${OUTPUT_FORMAT}",
- gld_${EMULATION_NAME}_finish,
- NULL, /* Create output section statements. */
- gld_${EMULATION_NAME}_open_dynamic_archive,
- gld_${EMULATION_NAME}_place_orphan,
- gld_${EMULATION_NAME}_set_symbols,
- NULL, /* parse_args */
- gld${EMULATION_NAME}_add_options,
- gld${EMULATION_NAME}_handle_option,
- gld_${EMULATION_NAME}_unrecognized_file,
- gld_${EMULATION_NAME}_list_options,
- gld_${EMULATION_NAME}_recognized_file,
- gld_${EMULATION_NAME}_find_potential_libraries,
- NULL /* new_vers_pattern. */
-};
-EOF
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
deleted file mode 100644
index 3e8b65e..0000000
--- a/ld/emultempl/pep.em
+++ /dev/null
@@ -1,2002 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-if [ -z "$MACHINE" ]; then
- OUTPUT_ARCH=${ARCH}
-else
- OUTPUT_ARCH=${ARCH}:${MACHINE}
-fi
-
-case ${target} in
- *-*-cygwin*)
- move_default_addr_high=1
- ;;
- *)
- move_default_addr_high=0;
- ;;
-esac
-
-rm -f e${EMULATION_NAME}.c
-(echo;echo;echo;echo;echo)>e${EMULATION_NAME}.c # there, now line numbers match ;-)
-fragment <<EOF
-/* Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012
- Free Software Foundation, Inc.
- Written by Kai Tietz, OneVision Software GmbH&CoKg.
-
- 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. */
-
-
-/* For WINDOWS_XP64 and higher */
-/* Based on pe.em, but modified for 64 bit support. */
-
-#define TARGET_IS_${EMULATION_NAME}
-
-#define COFF_IMAGE_WITH_PE
-#define COFF_WITH_PE
-#define COFF_WITH_pex64
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "bfdlink.h"
-#include "getopt.h"
-#include "libiberty.h"
-#include "filenames.h"
-#include "ld.h"
-#include "ldmain.h"
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-#include <ldgram.h>
-#include "ldlex.h"
-#include "ldmisc.h"
-#include "ldctor.h"
-#include "coff/internal.h"
-
-/* FIXME: See bfd/peXXigen.c for why we include an architecture specific
- header in generic PE code. */
-#include "coff/x86_64.h"
-#include "coff/pe.h"
-
-/* FIXME: This is a BFD internal header file, and we should not be
- using it here. */
-#include "../bfd/libcoff.h"
-
-#undef AOUTSZ
-#define AOUTSZ PEPAOUTSZ
-#define PEAOUTHDR PEPAOUTHDR
-
-#include "deffile.h"
-#include "pep-dll.h"
-#include "safe-ctype.h"
-
-/* Permit the emulation parameters to override the default section
- alignment by setting OVERRIDE_SECTION_ALIGNMENT. FIXME: This makes
- it seem that include/coff/internal.h should not define
- PE_DEF_SECTION_ALIGNMENT. */
-#if PE_DEF_SECTION_ALIGNMENT != ${OVERRIDE_SECTION_ALIGNMENT:-PE_DEF_SECTION_ALIGNMENT}
-#undef PE_DEF_SECTION_ALIGNMENT
-#define PE_DEF_SECTION_ALIGNMENT ${OVERRIDE_SECTION_ALIGNMENT}
-#endif
-
-#ifdef TARGET_IS_i386pep
-#define DLL_SUPPORT
-#endif
-
-#if defined(TARGET_IS_i386pep) || ! defined(DLL_SUPPORT)
-#define PE_DEF_SUBSYSTEM 3
-#undef NT_EXE_IMAGE_BASE
-#define NT_EXE_IMAGE_BASE \
- ((bfd_vma) (${move_default_addr_high} ? 0x100400000LL \
- : 0x400000LL))
-#undef NT_DLL_IMAGE_BASE
-#define NT_DLL_IMAGE_BASE \
- ((bfd_vma) (${move_default_addr_high} ? 0x400000000LL \
- : 0x10000000LL))
-#undef NT_DLL_AUTO_IMAGE_BASE
-#define NT_DLL_AUTO_IMAGE_BASE \
- ((bfd_vma) (${move_default_addr_high} ? 0x400000000LL \
- : 0x61300000LL))
-#undef NT_DLL_AUTO_IMAGE_MASK
-#define NT_DLL_AUTO_IMAGE_MASK \
- ((bfd_vma) (${move_default_addr_high} ? 0x1ffff0000LL \
- : 0x0ffc0000LL))
-#else
-#undef NT_EXE_IMAGE_BASE
-#define NT_EXE_IMAGE_BASE \
- ((bfd_vma) (${move_default_addr_high} ? 0x100010000LL \
- : 0x10000LL))
-#undef NT_DLL_IMAGE_BASE
-#define NT_DLL_IMAGE_BASE \
- ((bfd_vma) (${move_default_addr_high} ? 0x110000000LL \
- : 0x10000000LL))
-#undef NT_DLL_AUTO_IMAGE_BASE
-#define NT_DLL_AUTO_IMAGE_BASE \
- ((bfd_vma) (${move_default_addr_high} ? 0x120000000LL \
- : 0x61300000LL))
-#undef NT_DLL_AUTO_IMAGE_MASK
-#define NT_DLL_AUTO_IMAGE_MASK \
- ((bfd_vma) (${move_default_addr_high} ? 0x0ffff0000LL \
- : 0x0ffc0000LL))
-#undef PE_DEF_SECTION_ALIGNMENT
-#define PE_DEF_SUBSYSTEM 2
-#undef PE_DEF_FILE_ALIGNMENT
-#define PE_DEF_FILE_ALIGNMENT 0x00000200
-#define PE_DEF_SECTION_ALIGNMENT 0x00000400
-#endif
-
-static struct internal_extra_pe_aouthdr pep;
-static int dll;
-static int pep_subsystem = ${SUBSYSTEM};
-static flagword real_flags = IMAGE_FILE_LARGE_ADDRESS_AWARE;
-static int support_old_code = 0;
-static lang_assignment_statement_type *image_base_statement = 0;
-static unsigned short pe_dll_characteristics = 0;
-
-#ifdef DLL_SUPPORT
-static int pep_enable_stdcall_fixup = 1; /* 0=disable 1=enable (default). */
-static char * pep_out_def_filename = NULL;
-static char * pep_implib_filename = NULL;
-static int pep_enable_auto_image_base = 0;
-static char * pep_dll_search_prefix = NULL;
-#endif
-
-extern const char *output_filename;
-
-static int is_underscoring (void)
-{
- int u = 0;
- if (pep_leading_underscore != -1)
- return pep_leading_underscore;
- if (!bfd_get_target_info ("${OUTPUT_FORMAT}", NULL, NULL, &u, NULL))
- bfd_get_target_info ("${RELOCATEABLE_OUTPUT_FORMAT}", NULL, NULL, &u, NULL);
-
- if (u == -1)
- abort ();
- pep_leading_underscore = (u != 0 ? 1 : 0);
- return pep_leading_underscore;
-}
-
-
-static void
-gld_${EMULATION_NAME}_before_parse (void)
-{
- is_underscoring ();
- ldfile_set_output_arch ("${OUTPUT_ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`);
- output_filename = "${EXECUTABLE_NAME:-a.exe}";
-#ifdef DLL_SUPPORT
- input_flags.dynamic = TRUE;
- config.has_shared = 1;
- link_info.pei386_auto_import = 1;
- link_info.pei386_runtime_pseudo_reloc = 2; /* Use by default version 2. */
-#endif
-}
-
-/* PE format extra command line options. */
-
-/* Used for setting flags in the PE header. */
-enum options
-{
- OPTION_BASE_FILE = 300 + 1,
- OPTION_DLL,
- OPTION_FILE_ALIGNMENT,
- OPTION_IMAGE_BASE,
- OPTION_MAJOR_IMAGE_VERSION,
- OPTION_MAJOR_OS_VERSION,
- OPTION_MAJOR_SUBSYSTEM_VERSION,
- OPTION_MINOR_IMAGE_VERSION,
- OPTION_MINOR_OS_VERSION,
- OPTION_MINOR_SUBSYSTEM_VERSION,
- OPTION_SECTION_ALIGNMENT,
- OPTION_STACK,
- OPTION_SUBSYSTEM,
- OPTION_HEAP,
- OPTION_SUPPORT_OLD_CODE,
- OPTION_OUT_DEF,
- OPTION_EXPORT_ALL,
- OPTION_EXCLUDE_SYMBOLS,
- OPTION_EXCLUDE_ALL_SYMBOLS,
- OPTION_KILL_ATS,
- OPTION_STDCALL_ALIASES,
- OPTION_ENABLE_STDCALL_FIXUP,
- OPTION_DISABLE_STDCALL_FIXUP,
- OPTION_IMPLIB_FILENAME,
- OPTION_WARN_DUPLICATE_EXPORTS,
- OPTION_IMP_COMPAT,
- OPTION_ENABLE_AUTO_IMAGE_BASE,
- OPTION_DISABLE_AUTO_IMAGE_BASE,
- OPTION_DLL_SEARCH_PREFIX,
- OPTION_NO_DEFAULT_EXCLUDES,
- OPTION_DLL_ENABLE_AUTO_IMPORT,
- OPTION_DLL_DISABLE_AUTO_IMPORT,
- OPTION_ENABLE_EXTRA_PE_DEBUG,
- OPTION_EXCLUDE_LIBS,
- OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC,
- OPTION_DLL_DISABLE_RUNTIME_PSEUDO_RELOC,
- OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V2,
- OPTION_EXCLUDE_MODULES_FOR_IMPLIB,
- OPTION_USE_NUL_PREFIXED_IMPORT_TABLES,
- OPTION_NO_LEADING_UNDERSCORE,
- OPTION_LEADING_UNDERSCORE,
- OPTION_ENABLE_LONG_SECTION_NAMES,
- OPTION_DISABLE_LONG_SECTION_NAMES,
- OPTION_DYNAMIC_BASE,
- OPTION_FORCE_INTEGRITY,
- OPTION_NX_COMPAT,
- OPTION_NO_ISOLATION,
- OPTION_NO_SEH,
- OPTION_NO_BIND,
- OPTION_WDM_DRIVER,
- OPTION_TERMINAL_SERVER_AWARE
-};
-
-static void
-gld${EMULATION_NAME}_add_options
- (int ns ATTRIBUTE_UNUSED,
- char **shortopts ATTRIBUTE_UNUSED,
- int nl,
- struct option **longopts,
- int nrl ATTRIBUTE_UNUSED,
- struct option **really_longopts ATTRIBUTE_UNUSED)
-{
- static const struct option xtra_long[] =
- {
- /* PE options */
- {"base-file", required_argument, NULL, OPTION_BASE_FILE},
- {"dll", no_argument, NULL, OPTION_DLL},
- {"file-alignment", required_argument, NULL, OPTION_FILE_ALIGNMENT},
- {"heap", required_argument, NULL, OPTION_HEAP},
- {"image-base", required_argument, NULL, OPTION_IMAGE_BASE},
- {"major-image-version", required_argument, NULL, OPTION_MAJOR_IMAGE_VERSION},
- {"major-os-version", required_argument, NULL, OPTION_MAJOR_OS_VERSION},
- {"major-subsystem-version", required_argument, NULL, OPTION_MAJOR_SUBSYSTEM_VERSION},
- {"minor-image-version", required_argument, NULL, OPTION_MINOR_IMAGE_VERSION},
- {"minor-os-version", required_argument, NULL, OPTION_MINOR_OS_VERSION},
- {"minor-subsystem-version", required_argument, NULL, OPTION_MINOR_SUBSYSTEM_VERSION},
- {"section-alignment", required_argument, NULL, OPTION_SECTION_ALIGNMENT},
- {"stack", required_argument, NULL, OPTION_STACK},
- {"subsystem", required_argument, NULL, OPTION_SUBSYSTEM},
- {"support-old-code", no_argument, NULL, OPTION_SUPPORT_OLD_CODE},
- {"use-nul-prefixed-import-tables", no_argument, NULL,
- OPTION_USE_NUL_PREFIXED_IMPORT_TABLES},
- {"no-leading-underscore", no_argument, NULL, OPTION_NO_LEADING_UNDERSCORE},
- {"leading-underscore", no_argument, NULL, OPTION_LEADING_UNDERSCORE},
-#ifdef DLL_SUPPORT
- /* getopt allows abbreviations, so we do this to stop it
- from treating -o as an abbreviation for this option. */
- {"output-def", required_argument, NULL, OPTION_OUT_DEF},
- {"output-def", required_argument, NULL, OPTION_OUT_DEF},
- {"export-all-symbols", no_argument, NULL, OPTION_EXPORT_ALL},
- {"exclude-symbols", required_argument, NULL, OPTION_EXCLUDE_SYMBOLS},
- {"exclude-all-symbols", no_argument, NULL, OPTION_EXCLUDE_ALL_SYMBOLS},
- {"exclude-libs", required_argument, NULL, OPTION_EXCLUDE_LIBS},
- {"exclude-modules-for-implib", required_argument, NULL, OPTION_EXCLUDE_MODULES_FOR_IMPLIB},
- {"kill-at", no_argument, NULL, OPTION_KILL_ATS},
- {"add-stdcall-alias", no_argument, NULL, OPTION_STDCALL_ALIASES},
- {"enable-stdcall-fixup", no_argument, NULL, OPTION_ENABLE_STDCALL_FIXUP},
- {"disable-stdcall-fixup", no_argument, NULL, OPTION_DISABLE_STDCALL_FIXUP},
- {"out-implib", required_argument, NULL, OPTION_IMPLIB_FILENAME},
- {"warn-duplicate-exports", no_argument, NULL, OPTION_WARN_DUPLICATE_EXPORTS},
- /* getopt() allows abbreviations, so we do this to stop it from
- treating -c as an abbreviation for these --compat-implib. */
- {"compat-implib", no_argument, NULL, OPTION_IMP_COMPAT},
- {"compat-implib", no_argument, NULL, OPTION_IMP_COMPAT},
- {"enable-auto-image-base", no_argument, NULL, OPTION_ENABLE_AUTO_IMAGE_BASE},
- {"disable-auto-image-base", no_argument, NULL, OPTION_DISABLE_AUTO_IMAGE_BASE},
- {"dll-search-prefix", required_argument, NULL, OPTION_DLL_SEARCH_PREFIX},
- {"no-default-excludes", no_argument, NULL, OPTION_NO_DEFAULT_EXCLUDES},
- {"enable-auto-import", no_argument, NULL, OPTION_DLL_ENABLE_AUTO_IMPORT},
- {"disable-auto-import", no_argument, NULL, OPTION_DLL_DISABLE_AUTO_IMPORT},
- {"enable-extra-pep-debug", no_argument, NULL, OPTION_ENABLE_EXTRA_PE_DEBUG},
- {"enable-runtime-pseudo-reloc", no_argument, NULL, OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC},
- {"disable-runtime-pseudo-reloc", no_argument, NULL, OPTION_DLL_DISABLE_RUNTIME_PSEUDO_RELOC},
- {"enable-runtime-pseudo-reloc-v2", no_argument, NULL, OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V2},
-#endif
- {"enable-long-section-names", no_argument, NULL, OPTION_ENABLE_LONG_SECTION_NAMES},
- {"disable-long-section-names", no_argument, NULL, OPTION_DISABLE_LONG_SECTION_NAMES},
- {"dynamicbase",no_argument, NULL, OPTION_DYNAMIC_BASE},
- {"forceinteg", no_argument, NULL, OPTION_FORCE_INTEGRITY},
- {"nxcompat", no_argument, NULL, OPTION_NX_COMPAT},
- {"no-isolation", no_argument, NULL, OPTION_NO_ISOLATION},
- {"no-seh", no_argument, NULL, OPTION_NO_SEH},
- {"no-bind", no_argument, NULL, OPTION_NO_BIND},
- {"wdmdriver", no_argument, NULL, OPTION_WDM_DRIVER},
- {"tsaware", no_argument, NULL, OPTION_TERMINAL_SERVER_AWARE},
- {NULL, no_argument, NULL, 0}
- };
-
- *longopts
- = xrealloc (*longopts, nl * sizeof (struct option) + sizeof (xtra_long));
- memcpy (*longopts + nl, &xtra_long, sizeof (xtra_long));
-}
-
-/* PE/WIN32; added routines to get the subsystem type, heap and/or stack
- parameters which may be input from the command line. */
-
-typedef struct
-{
- void *ptr;
- int size;
- bfd_vma value;
- char *symbol;
- int inited;
- /* FALSE for an assembly level symbol and TRUE for a C visible symbol.
- C visible symbols can be prefixed by underscore dependent on target's
- settings. */
- bfd_boolean is_c_symbol;
-} definfo;
-
-#define GET_INIT_SYMBOL_NAME(IDX) \
- (init[(IDX)].symbol \
- + ((init[(IDX)].is_c_symbol == FALSE || (is_underscoring () == 1)) ? 0 : 1))
-
-/* Decorates the C visible symbol by underscore, if target requires. */
-#define U(CSTR) \
- ((is_underscoring () == 0) ? CSTR : "_" CSTR)
-
-/* Get size of constant string for a possible underscore prefixed
- C visible symbol. */
-#define U_SIZE(CSTR) \
- (sizeof (CSTR) + (is_underscoring () == 0 ? 0 : 1))
-
-#define D(field,symbol,def,usc) {&pep.field,sizeof(pep.field), def, symbol,0, usc}
-
-static definfo init[] =
-{
- /* imagebase must be first */
-#define IMAGEBASEOFF 0
- D(ImageBase,"__image_base__", NT_EXE_IMAGE_BASE, FALSE),
-#define DLLOFF 1
- {&dll, sizeof(dll), 0, "__dll__", 0, FALSE},
-#define MSIMAGEBASEOFF 2
- D(ImageBase, "___ImageBase", NT_EXE_IMAGE_BASE, TRUE),
- D(SectionAlignment,"__section_alignment__", PE_DEF_SECTION_ALIGNMENT, FALSE),
- D(FileAlignment,"__file_alignment__", PE_DEF_FILE_ALIGNMENT, FALSE),
- D(MajorOperatingSystemVersion,"__major_os_version__", 4, FALSE),
- D(MinorOperatingSystemVersion,"__minor_os_version__", 0, FALSE),
- D(MajorImageVersion,"__major_image_version__", 0, FALSE),
- D(MinorImageVersion,"__minor_image_version__", 0, FALSE),
- D(MajorSubsystemVersion,"__major_subsystem_version__", 5, FALSE),
- D(MinorSubsystemVersion,"__minor_subsystem_version__", 2, FALSE),
- D(Subsystem,"__subsystem__", ${SUBSYSTEM}, FALSE),
- D(SizeOfStackReserve,"__size_of_stack_reserve__", 0x200000, FALSE),
- D(SizeOfStackCommit,"__size_of_stack_commit__", 0x1000, FALSE),
- D(SizeOfHeapReserve,"__size_of_heap_reserve__", 0x100000, FALSE),
- D(SizeOfHeapCommit,"__size_of_heap_commit__", 0x1000, FALSE),
- D(LoaderFlags,"__loader_flags__", 0x0, FALSE),
- D(DllCharacteristics, "__dll_characteristics__", 0x0, FALSE),
- { NULL, 0, 0, NULL, 0, FALSE}
-};
-
-
-static void
-gld_${EMULATION_NAME}_list_options (FILE *file)
-{
- fprintf (file, _(" --base_file <basefile> Generate a base file for relocatable DLLs\n"));
- fprintf (file, _(" --dll Set image base to the default for DLLs\n"));
- fprintf (file, _(" --file-alignment <size> Set file alignment\n"));
- fprintf (file, _(" --heap <size> Set initial size of the heap\n"));
- fprintf (file, _(" --image-base <address> Set start address of the executable\n"));
- fprintf (file, _(" --major-image-version <number> Set version number of the executable\n"));
- fprintf (file, _(" --major-os-version <number> Set minimum required OS version\n"));
- fprintf (file, _(" --major-subsystem-version <number> Set minimum required OS subsystem version\n"));
- fprintf (file, _(" --minor-image-version <number> Set revision number of the executable\n"));
- fprintf (file, _(" --minor-os-version <number> Set minimum required OS revision\n"));
- fprintf (file, _(" --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"));
- fprintf (file, _(" --section-alignment <size> Set section alignment\n"));
- fprintf (file, _(" --stack <size> Set size of the initial stack\n"));
- fprintf (file, _(" --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"));
- fprintf (file, _(" --support-old-code Support interworking with old code\n"));
- fprintf (file, _(" --[no-]leading-underscore Set explicit symbol underscore prefix mode\n"));
-#ifdef DLL_SUPPORT
- fprintf (file, _(" --add-stdcall-alias Export symbols with and without @nn\n"));
- fprintf (file, _(" --disable-stdcall-fixup Don't link _sym to _sym@nn\n"));
- fprintf (file, _(" --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"));
- fprintf (file, _(" --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"));
- fprintf (file, _(" --exclude-all-symbols Exclude all symbols from automatic export\n"));
- fprintf (file, _(" --exclude-libs lib,lib,... Exclude libraries from automatic export\n"));
- fprintf (file, _(" --exclude-modules-for-implib mod,mod,...\n"));
- fprintf (file, _(" Exclude objects, archive members from auto\n"));
- fprintf (file, _(" export, place into import library instead.\n"));
- fprintf (file, _(" --export-all-symbols Automatically export all globals to DLL\n"));
- fprintf (file, _(" --kill-at Remove @nn from exported symbols\n"));
- fprintf (file, _(" --out-implib <file> Generate import library\n"));
- fprintf (file, _(" --output-def <file> Generate a .DEF file for the built DLL\n"));
- fprintf (file, _(" --warn-duplicate-exports Warn about duplicate exports.\n"));
- fprintf (file, _(" --compat-implib Create backward compatible import libs;\n\
- create __imp_<SYMBOL> as well.\n"));
- fprintf (file, _(" --enable-auto-image-base Automatically choose image base for DLLs\n\
- unless user specifies one\n"));
- fprintf (file, _(" --disable-auto-image-base Do not auto-choose image base. (default)\n"));
- fprintf (file, _(" --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"));
- fprintf (file, _(" --enable-auto-import Do sophisticated linking of _sym to\n\
- __imp_sym for DATA references\n"));
- fprintf (file, _(" --disable-auto-import Do not auto-import DATA items from DLLs\n"));
- fprintf (file, _(" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n\
- adding pseudo-relocations resolved at\n\
- runtime.\n"));
- fprintf (file, _(" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n\
- auto-imported DATA.\n"));
- fprintf (file, _(" --enable-extra-pep-debug Enable verbose debug output when building\n\
- or linking to DLLs (esp. auto-import)\n"));
- fprintf (file, _(" --enable-long-section-names Use long COFF section names even in\n\
- executable image files\n"));
- fprintf (file, _(" --disable-long-section-names Never use long COFF section names, even\n\
- in object files\n"));
- fprintf (file, _(" --dynamicbase Image base address may be relocated using\n\
- address space layout randomization (ASLR)\n"));
- fprintf (file, _(" --forceinteg Code integrity checks are enforced\n"));
- fprintf (file, _(" --nxcompat Image is compatible with data execution prevention\n"));
- fprintf (file, _(" --no-isolation Image understands isolation but do not isolate the image\n"));
- fprintf (file, _(" --no-seh Image does not use SEH. No SE handler may\n\
- be called in this image\n"));
- fprintf (file, _(" --no-bind Do not bind this image\n"));
- fprintf (file, _(" --wdmdriver Driver uses the WDM model\n"));
- fprintf (file, _(" --tsaware Image is Terminal Server aware\n"));
-#endif
-}
-
-
-static void
-set_pep_name (char *name, bfd_vma val)
-{
- int i;
- is_underscoring ();
- /* Find the name and set it. */
- for (i = 0; init[i].ptr; i++)
- {
- if (strcmp (name, GET_INIT_SYMBOL_NAME (i)) == 0)
- {
- init[i].value = val;
- init[i].inited = 1;
- if (strcmp (name,"__image_base__") == 0)
- set_pep_name (U ("__ImageBase"), val);
- return;
- }
- }
- abort ();
-}
-
-static void
-set_entry_point (void)
-{
- const char *entry;
- const char *initial_symbol_char;
- int i;
-
- static const struct
- {
- const int value;
- const char *entry;
- }
- v[] =
- {
- { 1, "NtProcessStartup" },
- { 2, "WinMainCRTStartup" },
- { 3, "mainCRTStartup" },
- { 7, "__PosixProcessStartup" },
- { 9, "WinMainCRTStartup" },
- {14, "mainCRTStartup" },
- { 0, NULL }
- };
-
- /* Entry point name for arbitrary subsystem numbers. */
- static const char default_entry[] = "mainCRTStartup";
-
- if (link_info.shared || dll)
- {
- entry = "DllMainCRTStartup";
- }
- else
- {
- for (i = 0; v[i].entry; i++)
- if (v[i].value == pep_subsystem)
- break;
-
- /* If no match, use the default. */
- if (v[i].entry != NULL)
- entry = v[i].entry;
- else
- entry = default_entry;
- }
-
- /* Now we check target's default for getting proper symbol_char. */
- initial_symbol_char = (is_underscoring () != 0 ? "_" : "");
-
- if (*initial_symbol_char != '\0')
- {
- char *alc_entry;
-
- /* lang_default_entry expects its argument to be permanently
- allocated, so we don't free this string. */
- alc_entry = xmalloc (strlen (initial_symbol_char)
- + strlen (entry)
- + 1);
- strcpy (alc_entry, initial_symbol_char);
- strcat (alc_entry, entry);
- entry = alc_entry;
- }
-
- lang_default_entry (entry);
-}
-
-static void
-set_pep_subsystem (void)
-{
- const char *sver;
- char *end;
- int len;
- int i;
- unsigned long temp_subsystem;
- static const struct
- {
- const char *name;
- const int value;
- }
- v[] =
- {
- { "native", 1 },
- { "windows", 2 },
- { "console", 3 },
- { "posix", 7 },
- { "wince", 9 },
- { "xbox", 14 },
- { NULL, 0 }
- };
-
- /* Check for the presence of a version number. */
- sver = strchr (optarg, ':');
- if (sver == NULL)
- len = strlen (optarg);
- else
- {
- len = sver - optarg;
- set_pep_name ("__major_subsystem_version__",
- strtoul (sver + 1, &end, 0));
- if (*end == '.')
- set_pep_name ("__minor_subsystem_version__",
- strtoul (end + 1, &end, 0));
- if (*end != '\0')
- einfo (_("%P: warning: bad version number in -subsystem option\n"));
- }
-
- /* Check for numeric subsystem. */
- temp_subsystem = strtoul (optarg, & end, 0);
- if ((*end == ':' || *end == '\0') && (temp_subsystem < 65536))
- {
- /* Search list for a numeric match to use its entry point. */
- for (i = 0; v[i].name; i++)
- if (v[i].value == (int) temp_subsystem)
- break;
-
- /* Use this subsystem. */
- pep_subsystem = (int) temp_subsystem;
- }
- else
- {
- /* Search for subsystem by name. */
- for (i = 0; v[i].name; i++)
- if (strncmp (optarg, v[i].name, len) == 0
- && v[i].name[len] == '\0')
- break;
-
- if (v[i].name == NULL)
- {
- einfo (_("%P%F: invalid subsystem type %s\n"), optarg);
- return;
- }
-
- pep_subsystem = v[i].value;
- }
-
- set_pep_name ("__subsystem__", pep_subsystem);
-
- return;
-}
-
-
-static void
-set_pep_value (char *name)
-{
- char *end;
-
- set_pep_name (name, (bfd_vma) strtoull (optarg, &end, 0));
-
- if (end == optarg)
- einfo (_("%P%F: invalid hex number for PE parameter '%s'\n"), optarg);
-
- optarg = end;
-}
-
-
-static void
-set_pep_stack_heap (char *resname, char *comname)
-{
- set_pep_value (resname);
-
- if (*optarg == ',')
- {
- optarg++;
- set_pep_value (comname);
- }
- else if (*optarg)
- einfo (_("%P%F: strange hex info for PE parameter '%s'\n"), optarg);
-}
-
-
-static bfd_boolean
-gld${EMULATION_NAME}_handle_option (int optc)
-{
- is_underscoring ();
- switch (optc)
- {
- default:
- return FALSE;
-
- case OPTION_BASE_FILE:
- link_info.base_file = fopen (optarg, FOPEN_WB);
- if (link_info.base_file == NULL)
- einfo (_("%F%P: cannot open base file %s\n"), optarg);
- break;
-
- /* PE options. */
- case OPTION_HEAP:
- set_pep_stack_heap ("__size_of_heap_reserve__", "__size_of_heap_commit__");
- break;
- case OPTION_STACK:
- set_pep_stack_heap ("__size_of_stack_reserve__", "__size_of_stack_commit__");
- break;
- case OPTION_SUBSYSTEM:
- set_pep_subsystem ();
- break;
- case OPTION_MAJOR_OS_VERSION:
- set_pep_value ("__major_os_version__");
- break;
- case OPTION_MINOR_OS_VERSION:
- set_pep_value ("__minor_os_version__");
- break;
- case OPTION_MAJOR_SUBSYSTEM_VERSION:
- set_pep_value ("__major_subsystem_version__");
- break;
- case OPTION_MINOR_SUBSYSTEM_VERSION:
- set_pep_value ("__minor_subsystem_version__");
- break;
- case OPTION_MAJOR_IMAGE_VERSION:
- set_pep_value ("__major_image_version__");
- break;
- case OPTION_MINOR_IMAGE_VERSION:
- set_pep_value ("__minor_image_version__");
- break;
- case OPTION_FILE_ALIGNMENT:
- set_pep_value ("__file_alignment__");
- break;
- case OPTION_SECTION_ALIGNMENT:
- set_pep_value ("__section_alignment__");
- break;
- case OPTION_DLL:
- set_pep_name ("__dll__", 1);
- break;
- case OPTION_IMAGE_BASE:
- set_pep_value ("__image_base__");
- break;
- case OPTION_SUPPORT_OLD_CODE:
- support_old_code = 1;
- break;
- case OPTION_USE_NUL_PREFIXED_IMPORT_TABLES:
- pep_use_nul_prefixed_import_tables = TRUE;
- break;
- case OPTION_NO_LEADING_UNDERSCORE:
- pep_leading_underscore = 0;
- break;
- case OPTION_LEADING_UNDERSCORE:
- pep_leading_underscore = 1;
- break;
-#ifdef DLL_SUPPORT
- case OPTION_OUT_DEF:
- pep_out_def_filename = xstrdup (optarg);
- break;
- case OPTION_EXPORT_ALL:
- pep_dll_export_everything = 1;
- break;
- case OPTION_EXCLUDE_SYMBOLS:
- pep_dll_add_excludes (optarg, EXCLUDESYMS);
- break;
- case OPTION_EXCLUDE_ALL_SYMBOLS:
- pep_dll_exclude_all_symbols = 1;
- break;
- case OPTION_EXCLUDE_LIBS:
- pep_dll_add_excludes (optarg, EXCLUDELIBS);
- break;
- case OPTION_EXCLUDE_MODULES_FOR_IMPLIB:
- pep_dll_add_excludes (optarg, EXCLUDEFORIMPLIB);
- break;
- case OPTION_KILL_ATS:
- pep_dll_kill_ats = 1;
- break;
- case OPTION_STDCALL_ALIASES:
- pep_dll_stdcall_aliases = 1;
- break;
- case OPTION_ENABLE_STDCALL_FIXUP:
- pep_enable_stdcall_fixup = 1;
- break;
- case OPTION_DISABLE_STDCALL_FIXUP:
- pep_enable_stdcall_fixup = 0;
- break;
- case OPTION_IMPLIB_FILENAME:
- pep_implib_filename = xstrdup (optarg);
- break;
- case OPTION_WARN_DUPLICATE_EXPORTS:
- pep_dll_warn_dup_exports = 1;
- break;
- case OPTION_IMP_COMPAT:
- pep_dll_compat_implib = 1;
- break;
- case OPTION_ENABLE_AUTO_IMAGE_BASE:
- pep_enable_auto_image_base = 1;
- break;
- case OPTION_DISABLE_AUTO_IMAGE_BASE:
- pep_enable_auto_image_base = 0;
- break;
- case OPTION_DLL_SEARCH_PREFIX:
- pep_dll_search_prefix = xstrdup (optarg);
- break;
- case OPTION_NO_DEFAULT_EXCLUDES:
- pep_dll_do_default_excludes = 0;
- break;
- case OPTION_DLL_ENABLE_AUTO_IMPORT:
- link_info.pei386_auto_import = 1;
- break;
- case OPTION_DLL_DISABLE_AUTO_IMPORT:
- link_info.pei386_auto_import = 0;
- break;
- case OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC:
- link_info.pei386_runtime_pseudo_reloc = 2;
- break;
- case OPTION_DLL_DISABLE_RUNTIME_PSEUDO_RELOC:
- link_info.pei386_runtime_pseudo_reloc = 0;
- break;
- case OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V2:
- link_info.pei386_runtime_pseudo_reloc = 2;
- break;
- case OPTION_ENABLE_EXTRA_PE_DEBUG:
- pep_dll_extra_pe_debug = 1;
- break;
-#endif
- case OPTION_ENABLE_LONG_SECTION_NAMES:
- pep_use_coff_long_section_names = 1;
- break;
- case OPTION_DISABLE_LONG_SECTION_NAMES:
- pep_use_coff_long_section_names = 0;
- break;
- /* Get DLLCharacteristics bits */
- case OPTION_DYNAMIC_BASE:
- pe_dll_characteristics |= IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE;
- break;
- case OPTION_FORCE_INTEGRITY:
- pe_dll_characteristics |= IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY;
- break;
- case OPTION_NX_COMPAT:
- pe_dll_characteristics |= IMAGE_DLL_CHARACTERISTICS_NX_COMPAT;
- break;
- case OPTION_NO_ISOLATION:
- pe_dll_characteristics |= IMAGE_DLLCHARACTERISTICS_NO_ISOLATION;
- break;
- case OPTION_NO_SEH:
- pe_dll_characteristics |= IMAGE_DLLCHARACTERISTICS_NO_SEH;
- break;
- case OPTION_NO_BIND:
- pe_dll_characteristics |= IMAGE_DLLCHARACTERISTICS_NO_BIND;
- break;
- case OPTION_WDM_DRIVER:
- pe_dll_characteristics |= IMAGE_DLLCHARACTERISTICS_WDM_DRIVER;
- break;
- case OPTION_TERMINAL_SERVER_AWARE:
- pe_dll_characteristics |= IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE;
- break;
- }
-
- /* Set DLLCharacteristics bits */
- set_pep_name ("__dll_characteristics__", pe_dll_characteristics);
-
- return TRUE;
-}
-
-
-#ifdef DLL_SUPPORT
-static unsigned long
-strhash (const char *str)
-{
- const unsigned char *s;
- unsigned long hash;
- unsigned int c;
- unsigned int len;
-
- hash = 0;
- len = 0;
- s = (const unsigned char *) str;
- while ((c = *s++) != '\0')
- {
- hash += c + (c << 17);
- hash ^= hash >> 2;
- ++len;
- }
- hash += len + (len << 17);
- hash ^= hash >> 2;
-
- return hash;
-}
-
-/* Use the output file to create a image base for relocatable DLLs. */
-
-static bfd_vma
-compute_dll_image_base (const char *ofile)
-{
- bfd_vma hash = (bfd_vma) strhash (ofile);
- return NT_DLL_AUTO_IMAGE_BASE + ((hash << 16) & NT_DLL_AUTO_IMAGE_MASK);
-}
-#endif
-
-/* Assign values to the special symbols before the linker script is
- read. */
-
-static void
-gld_${EMULATION_NAME}_set_symbols (void)
-{
- /* Run through and invent symbols for all the
- names and insert the defaults. */
- int j;
-
- is_underscoring ();
-
- if (!init[IMAGEBASEOFF].inited)
- {
- if (link_info.relocatable)
- init[IMAGEBASEOFF].value = 0;
- else if (init[DLLOFF].value || (link_info.shared && !link_info.pie))
- {
-#ifdef DLL_SUPPORT
- init[IMAGEBASEOFF].value = (pep_enable_auto_image_base
- ? compute_dll_image_base (output_filename)
- : NT_DLL_IMAGE_BASE);
-#else
- init[IMAGEBASEOFF].value = NT_DLL_IMAGE_BASE;
-#endif
- }
- else
- init[IMAGEBASEOFF].value = NT_EXE_IMAGE_BASE;
- init[MSIMAGEBASEOFF].value = init[IMAGEBASEOFF].value;
- }
-
- /* Don't do any symbol assignments if this is a relocatable link. */
- if (link_info.relocatable)
- return;
-
- /* Glue the assignments into the abs section. */
- push_stat_ptr (&abs_output_section->children);
-
- for (j = 0; init[j].ptr; j++)
- {
- bfd_vma val = init[j].value;
- lang_assignment_statement_type *rv;
-
- rv = lang_add_assignment (exp_assign (GET_INIT_SYMBOL_NAME (j),
- exp_intop (val), FALSE));
- if (init[j].size == sizeof (short))
- *(short *) init[j].ptr = (short) val;
- else if (init[j].size == sizeof (int))
- *(int *) init[j].ptr = (int) val;
- else if (init[j].size == sizeof (long))
- *(long *) init[j].ptr = (long) val;
- /* This might be a long long or other special type. */
- else if (init[j].size == sizeof (bfd_vma))
- *(bfd_vma *) init[j].ptr = val;
- else abort ();
- if (j == IMAGEBASEOFF)
- image_base_statement = rv;
- }
- /* Restore the pointer. */
- pop_stat_ptr ();
-
- if (pep.FileAlignment > pep.SectionAlignment)
- {
- einfo (_("%P: warning, file alignment > section alignment.\n"));
- }
-}
-
-/* This is called after the linker script and the command line options
- have been read. */
-
-static void
-gld_${EMULATION_NAME}_after_parse (void)
-{
- /* PR ld/6744: Warn the user if they have used an ELF-only
- option hoping it will work on PE+. */
- if (link_info.export_dynamic)
- einfo (_("%P: warning: --export-dynamic is not supported for PE+ "
- "targets, did you mean --export-all-symbols?\n"));
-
- set_entry_point ();
-
- after_parse_default ();
-}
-
-/* pep-dll.c directly accesses pep_data_import_dll,
- so it must be defined outside of #ifdef DLL_SUPPORT.
- Note - this variable is deliberately not initialised.
- This allows it to be treated as a common varaible, and only
- exist in one incarnation in a multiple target enabled linker. */
-char * pep_data_import_dll;
-
-#ifdef DLL_SUPPORT
-static struct bfd_link_hash_entry *pep_undef_found_sym;
-
-static bfd_boolean
-pep_undef_cdecl_match (struct bfd_link_hash_entry *h, void *inf)
-{
- int sl;
- char *string = inf;
- const char *hs = h->root.string;
-
- sl = strlen (string);
- if (h->type == bfd_link_hash_defined
- && ((*hs == '@' && *string == '_'
- && strncmp (hs + 1, string + 1, sl - 1) == 0)
- || strncmp (hs, string, sl) == 0)
- && h->root.string[sl] == '@')
- {
- pep_undef_found_sym = h;
- return FALSE;
- }
- return TRUE;
-}
-
-static void
-pep_fixup_stdcalls (void)
-{
- static int gave_warning_message = 0;
- struct bfd_link_hash_entry *undef, *sym;
-
- if (pep_dll_extra_pe_debug)
- printf ("%s\n", __FUNCTION__);
-
- for (undef = link_info.hash->undefs; undef; undef=undef->u.undef.next)
- if (undef->type == bfd_link_hash_undefined)
- {
- char* at = strchr (undef->root.string, '@');
- int lead_at = (*undef->root.string == '@');
- if (lead_at)
- at = strchr (undef->root.string + 1, '@');
- if (at || lead_at)
- {
- /* The symbol is a stdcall symbol, so let's look for a
- cdecl symbol with the same name and resolve to that. */
- char *cname = xstrdup (undef->root.string);
-
- if (lead_at)
- *cname = '_';
- at = strchr (cname, '@');
- if (at)
- *at = 0;
- sym = bfd_link_hash_lookup (link_info.hash, cname, 0, 0, 1);
-
- if (sym && sym->type == bfd_link_hash_defined)
- {
- undef->type = bfd_link_hash_defined;
- undef->u.def.value = sym->u.def.value;
- undef->u.def.section = sym->u.def.section;
-
- if (pep_enable_stdcall_fixup == -1)
- {
- einfo (_("Warning: resolving %s by linking to %s\n"),
- undef->root.string, cname);
- if (! gave_warning_message)
- {
- gave_warning_message = 1;
- einfo (_("Use --enable-stdcall-fixup to disable these warnings\n"));
- einfo (_("Use --disable-stdcall-fixup to disable these fixups\n"));
- }
- }
- }
- }
- else
- {
- /* The symbol is a cdecl symbol, so we look for stdcall
- symbols - which means scanning the whole symbol table. */
- pep_undef_found_sym = 0;
- bfd_link_hash_traverse (link_info.hash, pep_undef_cdecl_match,
- (char *) undef->root.string);
- sym = pep_undef_found_sym;
- if (sym)
- {
- undef->type = bfd_link_hash_defined;
- undef->u.def.value = sym->u.def.value;
- undef->u.def.section = sym->u.def.section;
-
- if (pep_enable_stdcall_fixup == -1)
- {
- einfo (_("Warning: resolving %s by linking to %s\n"),
- undef->root.string, sym->root.string);
- if (! gave_warning_message)
- {
- gave_warning_message = 1;
- einfo (_("Use --enable-stdcall-fixup to disable these warnings\n"));
- einfo (_("Use --disable-stdcall-fixup to disable these fixups\n"));
- }
- }
- }
- }
- }
-}
-
-static int
-make_import_fixup (arelent *rel, asection *s)
-{
- struct bfd_symbol *sym = *rel->sym_ptr_ptr;
- char addend[8];
- bfd_vma _addend = 0;
- int suc = 0;
-
- if (pep_dll_extra_pe_debug)
- printf ("arelent: %s@%#lx: add=%li\n", sym->name,
- (unsigned long) rel->address, (long) rel->addend);
-
- memset (addend, 0, sizeof (addend));
- switch ((rel->howto->bitsize))
- {
- case 8:
- suc = bfd_get_section_contents (s->owner, s, addend, rel->address, 1);
- if (suc && rel->howto->pc_relative)
- _addend = (bfd_vma) ((bfd_signed_vma) ((char) bfd_get_8 (s->owner, addend)));
- else if (suc)
- _addend = ((bfd_vma) bfd_get_8 (s->owner, addend)) & 0xff;
- break;
- case 16:
- suc = bfd_get_section_contents (s->owner, s, addend, rel->address, 2);
- if (suc && rel->howto->pc_relative)
- _addend = (bfd_vma) ((bfd_signed_vma) ((short) bfd_get_16 (s->owner, addend)));
- else if (suc)
- _addend = ((bfd_vma) bfd_get_16 (s->owner, addend)) & 0xffff;
- break;
- case 32:
- suc = bfd_get_section_contents (s->owner, s, addend, rel->address, 4);
- if (suc && rel->howto->pc_relative)
- _addend = (bfd_vma) ((bfd_signed_vma) ((int) bfd_get_32 (s->owner, addend)));
- else if (suc)
- _addend = ((bfd_vma) bfd_get_32 (s->owner, addend)) & 0xffffffff;
- break;
- case 64:
- suc = bfd_get_section_contents (s->owner, s, addend, rel->address, 8);
- if (suc)
- _addend = ((bfd_vma) bfd_get_64 (s->owner, addend));
- break;
- }
- if (! suc)
- einfo (_("%C: Cannot get section contents - auto-import exception\n"),
- s->owner, s, rel->address);
-
- if (pep_dll_extra_pe_debug)
- {
- printf ("import of 0x%lx(0x%lx) sec_addr=0x%lx", (long) _addend, (long) rel->addend, (long) rel->address);
- if (rel->howto->pc_relative) printf (" pcrel");
- printf (" %d bit rel.\n",(int) rel->howto->bitsize);
- }
- pep_create_import_fixup (rel, s, _addend);
-
- return 1;
-}
-
-static void
-pep_find_data_imports (void)
-{
- struct bfd_link_hash_entry *undef, *sym;
-
- if (link_info.pei386_auto_import == 0)
- return;
-
- for (undef = link_info.hash->undefs; undef; undef=undef->u.undef.next)
- {
- if (undef->type == bfd_link_hash_undefined)
- {
- /* C++ symbols are *long*. */
- char buf[4096];
-
- if (pep_dll_extra_pe_debug)
- printf ("%s:%s\n", __FUNCTION__, undef->root.string);
-
- sprintf (buf, "__imp_%s", undef->root.string);
-
- sym = bfd_link_hash_lookup (link_info.hash, buf, 0, 0, 1);
-
- if (sym && sym->type == bfd_link_hash_defined)
- {
- bfd *b = sym->u.def.section->owner;
- asymbol **symbols;
- int nsyms, i;
-
- if (!bfd_generic_link_read_symbols (b))
- {
- einfo (_("%B%F: could not read symbols: %E\n"), b);
- return;
- }
-
- symbols = bfd_get_outsymbols (b);
- nsyms = bfd_get_symcount (b);
-
- for (i = 0; i < nsyms; i++)
- {
- if (! CONST_STRNEQ (symbols[i]->name, U ("_head_")))
- continue;
-
- if (pep_dll_extra_pe_debug)
- printf ("->%s\n", symbols[i]->name);
-
- pep_data_import_dll = (char*) (symbols[i]->name +
- U_SIZE ("_head_") - 1);
- break;
- }
-
- pep_walk_relocs_of_symbol (&link_info, undef->root.string,
- make_import_fixup);
-
- /* Let's differentiate it somehow from defined. */
- undef->type = bfd_link_hash_defweak;
- /* We replace original name with __imp_ prefixed, this
- 1) may trash memory 2) leads to duplicate symbol generation.
- Still, IMHO it's better than having name poluted. */
- undef->root.string = sym->root.string;
- undef->u.def.value = sym->u.def.value;
- undef->u.def.section = sym->u.def.section;
- }
- }
- }
-}
-
-static bfd_boolean
-pr_sym (struct bfd_hash_entry *h, void *inf ATTRIBUTE_UNUSED)
-{
- printf ("+%s\n", h->string);
-
- return TRUE;
-}
-#endif /* DLL_SUPPORT */
-
-static void
-debug_section_p (bfd *abfd ATTRIBUTE_UNUSED, asection *sect, void *obj)
-{
- int *found = (int *) obj;
- if (strncmp (".debug_", sect->name, sizeof (".debug_") - 1) == 0)
- *found = 1;
-}
-
-static void
-gld_${EMULATION_NAME}_after_open (void)
-{
- after_open_default ();
-
- is_underscoring ();
-#ifdef DLL_SUPPORT
- if (pep_dll_extra_pe_debug)
- {
- bfd *a;
- struct bfd_link_hash_entry *sym;
-
- printf ("%s()\n", __FUNCTION__);
-
- for (sym = link_info.hash->undefs; sym; sym=sym->u.undef.next)
- printf ("-%s\n", sym->root.string);
- bfd_hash_traverse (&link_info.hash->table, pr_sym, NULL);
-
- for (a = link_info.input_bfds; a; a = a->link_next)
- printf ("*%s\n",a->filename);
- }
-#endif
-
- /* Pass the wacky PE command line options into the output bfd.
- FIXME: This should be done via a function, rather than by
- including an internal BFD header. */
-
- if (coff_data (link_info.output_bfd) == NULL
- || coff_data (link_info.output_bfd)->pe == 0)
- einfo (_("%F%P: cannot perform PE operations on non PE output file '%B'.\n"),
- link_info.output_bfd);
-
- pe_data (link_info.output_bfd)->pe_opthdr = pep;
- pe_data (link_info.output_bfd)->dll = init[DLLOFF].value;
- pe_data (link_info.output_bfd)->real_flags |= real_flags;
-
- /* At this point we must decide whether to use long section names
- in the output or not. If the user hasn't explicitly specified
- on the command line, we leave it to the default for the format
- (object files yes, image files no), except if there is debug
- information present; GDB relies on the long section names to
- find it, so enable it in that case. */
- if (pep_use_coff_long_section_names < 0 && link_info.strip == strip_none)
- {
- /* Iterate over all sections of all input BFDs, checking
- for any that begin 'debug_' and are long names. */
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- int found_debug = 0;
- bfd_map_over_sections (is->the_bfd, debug_section_p, &found_debug);
- if (found_debug)
- {
- pep_use_coff_long_section_names = 1;
- break;
- }
- }
- }
-
- pep_output_file_set_long_section_names (link_info.output_bfd);
-
-#ifdef DLL_SUPPORT
- if (pep_enable_stdcall_fixup) /* -1=warn or 1=disable */
- pep_fixup_stdcalls ();
-
- pep_process_import_defs (link_info.output_bfd, &link_info);
-
- pep_find_data_imports ();
-
- /* As possibly new symbols are added by imports, we rerun
- stdcall/fastcall fixup here. */
- if (pep_enable_stdcall_fixup) /* -1=warn or 1=disable */
- pep_fixup_stdcalls ();
-
-#ifndef TARGET_IS_i386pep
- if (link_info.shared)
-#else
- if (!link_info.relocatable)
-#endif
- pep_dll_build_sections (link_info.output_bfd, &link_info);
-
-#ifndef TARGET_IS_i386pep
- else
- pep_exe_build_sections (link_info.output_bfd, &link_info);
-#endif
-#endif /* DLL_SUPPORT */
-
- {
- /* This next chunk of code tries to detect the case where you have
- two import libraries for the same DLL (specifically,
- symbolically linking libm.a and libc.a in cygwin to
- libcygwin.a). In those cases, it's possible for function
- thunks from the second implib to be used but without the
- head/tail objects, causing an improper import table. We detect
- those cases and rename the "other" import libraries to match
- the one the head/tail come from, so that the linker will sort
- things nicely and produce a valid import table. */
-
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- if (is->the_bfd->my_archive)
- {
- int idata2 = 0, reloc_count=0, is_imp = 0;
- asection *sec;
-
- /* See if this is an import library thunk. */
- for (sec = is->the_bfd->sections; sec; sec = sec->next)
- {
- if (strcmp (sec->name, ".idata\$2") == 0)
- idata2 = 1;
- if (CONST_STRNEQ (sec->name, ".idata\$"))
- is_imp = 1;
- reloc_count += sec->reloc_count;
- }
-
- if (is_imp && !idata2 && reloc_count)
- {
- /* It is, look for the reference to head and see if it's
- from our own library. */
- for (sec = is->the_bfd->sections; sec; sec = sec->next)
- {
- int i;
- long relsize;
- asymbol **symbols;
- arelent **relocs;
- int nrelocs;
-
- relsize = bfd_get_reloc_upper_bound (is->the_bfd, sec);
- if (relsize < 1)
- break;
-
- if (!bfd_generic_link_read_symbols (is->the_bfd))
- {
- einfo (_("%B%F: could not read symbols: %E\n"),
- is->the_bfd);
- return;
- }
- symbols = bfd_get_outsymbols (is->the_bfd);
-
- relocs = xmalloc ((size_t) relsize);
- nrelocs = bfd_canonicalize_reloc (is->the_bfd, sec,
- relocs, symbols);
- if (nrelocs < 0)
- {
- free (relocs);
- einfo ("%X%P: unable to process relocs: %E\n");
- return;
- }
-
- for (i = 0; i < nrelocs; i++)
- {
- struct bfd_symbol *s;
- struct bfd_link_hash_entry * blhe;
- char *other_bfd_filename;
- char *n;
-
- s = (relocs[i]->sym_ptr_ptr)[0];
-
- if (s->flags & BSF_LOCAL)
- continue;
-
- /* Thunk section with reloc to another bfd. */
- blhe = bfd_link_hash_lookup (link_info.hash,
- s->name,
- FALSE, FALSE, TRUE);
-
- if (blhe == NULL
- || blhe->type != bfd_link_hash_defined)
- continue;
-
- other_bfd_filename
- = blhe->u.def.section->owner->my_archive
- ? bfd_get_filename (blhe->u.def.section->owner->my_archive)
- : bfd_get_filename (blhe->u.def.section->owner);
-
- if (filename_cmp (bfd_get_filename
- (is->the_bfd->my_archive),
- other_bfd_filename) == 0)
- continue;
-
- /* Rename this implib to match the other one. */
- n = xmalloc (strlen (other_bfd_filename) + 1);
- strcpy (n, other_bfd_filename);
- is->the_bfd->my_archive->filename = n;
- }
-
- free (relocs);
- /* Note - we do not free the symbols,
- they are now cached in the BFD. */
- }
- }
- }
- }
- }
-
- {
- int is_ms_arch = 0;
- bfd *cur_arch = 0;
- lang_input_statement_type *is2;
- lang_input_statement_type *is3;
-
- /* Careful - this is a shell script. Watch those dollar signs! */
- /* Microsoft import libraries have every member named the same,
- and not in the right order for us to link them correctly. We
- must detect these and rename the members so that they'll link
- correctly. There are three types of objects: the head, the
- thunks, and the sentinel(s). The head is easy; it's the one
- with idata2. We assume that the sentinels won't have relocs,
- and the thunks will. It's easier than checking the symbol
- table for external references. */
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- if (is->the_bfd->my_archive)
- {
- char *pnt;
- bfd *arch = is->the_bfd->my_archive;
-
- if (cur_arch != arch)
- {
- cur_arch = arch;
- is_ms_arch = 1;
-
- for (is3 = is;
- is3 && is3->the_bfd->my_archive == arch;
- is3 = (lang_input_statement_type *) is3->next)
- {
- /* A MS dynamic import library can also contain static
- members, so look for the first element with a .dll
- extension, and use that for the remainder of the
- comparisons. */
- pnt = strrchr (is3->the_bfd->filename, '.');
- if (pnt != NULL && filename_cmp (pnt, ".dll") == 0)
- break;
- }
-
- if (is3 == NULL)
- is_ms_arch = 0;
- else
- {
- /* OK, found one. Now look to see if the remaining
- (dynamic import) members use the same name. */
- for (is2 = is;
- is2 && is2->the_bfd->my_archive == arch;
- is2 = (lang_input_statement_type *) is2->next)
- {
- /* Skip static members, ie anything with a .obj
- extension. */
- pnt = strrchr (is2->the_bfd->filename, '.');
- if (pnt != NULL && filename_cmp (pnt, ".obj") == 0)
- continue;
-
- if (filename_cmp (is3->the_bfd->filename,
- is2->the_bfd->filename))
- {
- is_ms_arch = 0;
- break;
- }
- }
- }
- }
-
- /* This fragment might have come from an .obj file in a Microsoft
- import, and not an actual import record. If this is the case,
- then leave the filename alone. */
- pnt = strrchr (is->the_bfd->filename, '.');
-
- if (is_ms_arch && (filename_cmp (pnt, ".dll") == 0))
- {
- int idata2 = 0, reloc_count=0;
- asection *sec;
- char *new_name, seq;
-
- for (sec = is->the_bfd->sections; sec; sec = sec->next)
- {
- if (strcmp (sec->name, ".idata\$2") == 0)
- idata2 = 1;
- reloc_count += sec->reloc_count;
- }
-
- if (idata2) /* .idata2 is the TOC */
- seq = 'a';
- else if (reloc_count > 0) /* thunks */
- seq = 'b';
- else /* sentinel */
- seq = 'c';
-
- new_name = xmalloc (strlen (is->the_bfd->filename) + 3);
- sprintf (new_name, "%s.%c", is->the_bfd->filename, seq);
- is->the_bfd->filename = new_name;
-
- new_name = xmalloc (strlen (is->filename) + 3);
- sprintf (new_name, "%s.%c", is->filename, seq);
- is->filename = new_name;
- }
- }
- }
- }
-}
-
-static void
-gld_${EMULATION_NAME}_before_allocation (void)
-{
- is_underscoring ();
- before_allocation_default ();
-}
-
-#ifdef DLL_SUPPORT
-/* This is called when an input file isn't recognized as a BFD. We
- check here for .DEF files and pull them in automatically. */
-
-static int
-saw_option (char *option)
-{
- int i;
-
- is_underscoring ();
-
- for (i = 0; init[i].ptr; i++)
- if (strcmp (GET_INIT_SYMBOL_NAME (i), option) == 0)
- return init[i].inited;
- return 0;
-}
-#endif /* DLL_SUPPORT */
-
-static bfd_boolean
-gld_${EMULATION_NAME}_unrecognized_file (lang_input_statement_type *entry ATTRIBUTE_UNUSED)
-{
-#ifdef DLL_SUPPORT
- const char *ext = entry->filename + strlen (entry->filename) - 4;
-
- if (filename_cmp (ext, ".def") == 0 || filename_cmp (ext, ".DEF") == 0)
- {
- pep_def_file = def_file_parse (entry->filename, pep_def_file);
-
- if (pep_def_file)
- {
- int i, buflen=0, len;
- char *buf;
-
- for (i = 0; i < pep_def_file->num_exports; i++)
- {
- len = strlen (pep_def_file->exports[i].internal_name);
- if (buflen < len + 2)
- buflen = len + 2;
- }
-
- buf = xmalloc (buflen);
-
- for (i = 0; i < pep_def_file->num_exports; i++)
- {
- struct bfd_link_hash_entry *h;
-
- sprintf (buf, "%s%s", U (""),
- pep_def_file->exports[i].internal_name);
-
- h = bfd_link_hash_lookup (link_info.hash, buf, TRUE, TRUE, TRUE);
- if (h == (struct bfd_link_hash_entry *) NULL)
- einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n"));
- if (h->type == bfd_link_hash_new)
- {
- h->type = bfd_link_hash_undefined;
- h->u.undef.abfd = NULL;
- bfd_link_add_undef (link_info.hash, h);
- }
- }
- free (buf);
-
- /* def_file_print (stdout, pep_def_file); */
- if (pep_def_file->is_dll == 1)
- link_info.shared = 1;
-
- if (pep_def_file->base_address != (bfd_vma)(-1))
- {
- pep.ImageBase
- = pe_data (link_info.output_bfd)->pe_opthdr.ImageBase
- = init[IMAGEBASEOFF].value
- = pep_def_file->base_address;
- init[IMAGEBASEOFF].inited = 1;
- if (image_base_statement)
- image_base_statement->exp
- = exp_assign ("__image_base__", exp_intop (pep.ImageBase),
- FALSE);
- }
-
- if (pep_def_file->stack_reserve != -1
- && ! saw_option ("__size_of_stack_reserve__"))
- {
- pep.SizeOfStackReserve = pep_def_file->stack_reserve;
- if (pep_def_file->stack_commit != -1)
- pep.SizeOfStackCommit = pep_def_file->stack_commit;
- }
- if (pep_def_file->heap_reserve != -1
- && ! saw_option ("__size_of_heap_reserve__"))
- {
- pep.SizeOfHeapReserve = pep_def_file->heap_reserve;
- if (pep_def_file->heap_commit != -1)
- pep.SizeOfHeapCommit = pep_def_file->heap_commit;
- }
- return TRUE;
- }
- }
-#endif
- return FALSE;
-}
-
-static bfd_boolean
-gld_${EMULATION_NAME}_recognized_file (lang_input_statement_type *entry ATTRIBUTE_UNUSED)
-{
- is_underscoring ();
-#ifdef DLL_SUPPORT
-#ifdef TARGET_IS_i386pep
- pep_dll_id_target ("pei-x86-64");
-#endif
- if (pep_bfd_is_dll (entry->the_bfd))
- return pep_implied_import_dll (entry->filename);
-#endif
- return FALSE;
-}
-
-static void
-gld_${EMULATION_NAME}_finish (void)
-{
- is_underscoring ();
- finish_default ();
-
-#ifdef DLL_SUPPORT
- if (link_info.shared
- || (!link_info.relocatable && pep_def_file->num_exports != 0))
- {
- pep_dll_fill_sections (link_info.output_bfd, &link_info);
- if (pep_implib_filename)
- pep_dll_generate_implib (pep_def_file, pep_implib_filename, &link_info);
- }
-
- if (pep_out_def_filename)
- pep_dll_generate_def_file (pep_out_def_filename);
-#endif /* DLL_SUPPORT */
-
- /* I don't know where .idata gets set as code, but it shouldn't be. */
- {
- asection *asec = bfd_get_section_by_name (link_info.output_bfd, ".idata");
-
- if (asec)
- {
- asec->flags &= ~SEC_CODE;
- asec->flags |= SEC_DATA;
- }
- }
-}
-
-
-/* Place an orphan section.
-
- We use this to put sections in a reasonable place in the file, and
- to ensure that they are aligned as required.
-
- We handle grouped sections here as well. A section named .foo\$nn
- goes into the output section .foo. All grouped sections are sorted
- by name.
-
- Grouped sections for the default sections are handled by the
- default linker script using wildcards, and are sorted by
- sort_sections. */
-
-static lang_output_section_statement_type *
-gld_${EMULATION_NAME}_place_orphan (asection *s,
- const char *secname,
- int constraint)
-{
- const char *orig_secname = secname;
- char *dollar = NULL;
- lang_output_section_statement_type *os;
- lang_statement_list_type add_child;
- lang_output_section_statement_type *match_by_name = NULL;
- lang_statement_union_type **pl;
-
- /* Look through the script to see where to place this section. */
- if (!link_info.relocatable
- && (dollar = strchr (secname, '\$')) != NULL)
- {
- size_t len = dollar - secname;
- char *newname = xmalloc (len + 1);
- memcpy (newname, secname, len);
- newname[len] = '\0';
- secname = newname;
- }
-
- lang_list_init (&add_child);
-
- os = NULL;
- if (constraint == 0)
- for (os = lang_output_section_find (secname);
- os != NULL;
- os = next_matching_output_section_statement (os, 0))
- {
- /* If we don't match an existing output section, tell
- lang_insert_orphan to create a new output section. */
- constraint = SPECIAL;
-
- if (os->bfd_section != NULL
- && (os->bfd_section->flags == 0
- || ((s->flags ^ os->bfd_section->flags)
- & (SEC_LOAD | SEC_ALLOC)) == 0))
- {
- /* 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 (&add_child, s, NULL, os);
- break;
- }
-
- /* Save unused output sections in case we can match them
- against orphans later. */
- if (os->bfd_section == NULL)
- match_by_name = os;
- }
-
- /* If we didn't match an active output section, see if we matched an
- unused one and use that. */
- if (os == NULL && match_by_name)
- {
- lang_add_section (&match_by_name->children, s, NULL, match_by_name);
- return match_by_name;
- }
-
- if (os == NULL)
- {
- static struct orphan_save hold[] =
- {
- { ".text",
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE,
- 0, 0, 0, 0 },
- { ".idata",
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA,
- 0, 0, 0, 0 },
- { ".rdata",
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA,
- 0, 0, 0, 0 },
- { ".data",
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_DATA,
- 0, 0, 0, 0 },
- { ".bss",
- SEC_ALLOC,
- 0, 0, 0, 0 }
- };
- enum orphan_save_index
- {
- orphan_text = 0,
- orphan_idata,
- orphan_rodata,
- orphan_data,
- orphan_bss
- };
- static int orphan_init_done = 0;
- struct orphan_save *place;
- lang_output_section_statement_type *after;
- etree_type *address;
-
- if (!orphan_init_done)
- {
- struct orphan_save *ho;
- for (ho = hold; ho < hold + sizeof (hold) / sizeof (hold[0]); ++ho)
- if (ho->name != NULL)
- {
- ho->os = lang_output_section_find (ho->name);
- if (ho->os != NULL && ho->os->flags == 0)
- ho->os->flags = ho->flags;
- }
- orphan_init_done = 1;
- }
-
- /* Try to put the new output section in a reasonable place based
- on the section name and section flags. */
-
- place = NULL;
- if ((s->flags & SEC_ALLOC) == 0)
- ;
- else if ((s->flags & (SEC_LOAD | SEC_HAS_CONTENTS)) == 0)
- place = &hold[orphan_bss];
- else if ((s->flags & SEC_READONLY) == 0)
- place = &hold[orphan_data];
- else if ((s->flags & SEC_CODE) == 0)
- {
- place = (!strncmp (secname, ".idata\$", 7) ? &hold[orphan_idata]
- : &hold[orphan_rodata]);
- }
- else
- place = &hold[orphan_text];
-
- after = NULL;
- if (place != NULL)
- {
- if (place->os == NULL)
- place->os = lang_output_section_find (place->name);
- after = place->os;
- if (after == NULL)
- after = lang_output_section_find_by_flags (s, &place->os, NULL);
- if (after == NULL)
- /* *ABS* is always the first output section statement. */
- after = (&lang_output_section_statement.head
- ->output_section_statement);
- }
-
- /* All sections in an executable must be aligned to a page boundary.
- In a relocatable link, just preserve the incoming alignment; the
- address is discarded by lang_insert_orphan in that case, anyway. */
- address = exp_unop (ALIGN_K, exp_nameop (NAME, "__section_alignment__"));
- os = lang_insert_orphan (s, secname, constraint, after, place, address,
- &add_child);
- if (link_info.relocatable)
- {
- os->section_alignment = s->alignment_power;
- os->bfd_section->alignment_power = s->alignment_power;
- }
- }
-
- /* If the section name has a '\$', sort it with the other '\$'
- sections. */
- for (pl = &os->children.head; *pl != NULL; pl = &(*pl)->header.next)
- {
- lang_input_section_type *ls;
- const char *lname;
-
- if ((*pl)->header.type != lang_input_section_enum)
- continue;
-
- ls = &(*pl)->input_section;
-
- lname = bfd_get_section_name (ls->section->owner, ls->section);
- if (strchr (lname, '\$') != NULL
- && (dollar == NULL || strcmp (orig_secname, lname) < 0))
- break;
- }
-
- if (add_child.head != NULL)
- {
- *add_child.tail = *pl;
- *pl = add_child.head;
- }
-
- return os;
-}
-
-static bfd_boolean
-gld_${EMULATION_NAME}_open_dynamic_archive
- (const char *arch ATTRIBUTE_UNUSED,
- search_dirs_type *search,
- lang_input_statement_type *entry)
-{
- static const struct
- {
- const char * format;
- bfd_boolean use_prefix;
- }
- libname_fmt [] =
- {
- /* Preferred explicit import library for dll's. */
- { "lib%s.dll.a", FALSE },
- /* Alternate explicit import library for dll's. */
- { "%s.dll.a", FALSE },
- /* "libfoo.a" could be either an import lib or a static lib.
- For backwards compatibility, libfoo.a needs to precede
- libfoo.dll and foo.dll in the search. */
- { "lib%s.a", FALSE },
- /* The 'native' spelling of an import lib name is "foo.lib". */
- { "%s.lib", FALSE },
-#ifdef DLL_SUPPORT
- /* Try "<prefix>foo.dll" (preferred dll name, if specified). */
- { "%s%s.dll", TRUE },
-#endif
- /* Try "libfoo.dll" (default preferred dll name). */
- { "lib%s.dll", FALSE },
- /* Finally try 'native' dll name "foo.dll". */
- { "%s.dll", FALSE },
- /* Note: If adding more formats to this table, make sure to check to
- see if their length is longer than libname_fmt[0].format, and if
- so, update the call to xmalloc() below. */
- { NULL, FALSE }
- };
- static unsigned int format_max_len = 0;
- const char * filename;
- char * full_string;
- char * base_string;
- unsigned int i;
-
-
- if (! entry->flags.maybe_archive)
- return FALSE;
-
- filename = entry->filename;
-
- if (format_max_len == 0)
- /* We need to allow space in the memory that we are going to allocate
- for the characters in the format string. Since the format array is
- static we only need to calculate this information once. In theory
- this value could also be computed statically, but this introduces
- the possibility for a discrepancy and hence a possible memory
- corruption. The lengths we compute here will be too long because
- they will include any formating characters (%s) in the strings, but
- this will not matter. */
- for (i = 0; libname_fmt[i].format; i++)
- if (format_max_len < strlen (libname_fmt[i].format))
- format_max_len = strlen (libname_fmt[i].format);
-
- full_string = xmalloc (strlen (search->name)
- + strlen (filename)
- + format_max_len
-#ifdef DLL_SUPPORT
- + (pep_dll_search_prefix
- ? strlen (pep_dll_search_prefix) : 0)
-#endif
- /* Allow for the terminating NUL and for the path
- separator character that is inserted between
- search->name and the start of the format string. */
- + 2);
-
- sprintf (full_string, "%s/", search->name);
- base_string = full_string + strlen (full_string);
-
- for (i = 0; libname_fmt[i].format; i++)
- {
-#ifdef DLL_SUPPORT
- if (libname_fmt[i].use_prefix)
- {
- if (!pep_dll_search_prefix)
- continue;
- sprintf (base_string, libname_fmt[i].format, pep_dll_search_prefix, filename);
- }
- else
-#endif
- sprintf (base_string, libname_fmt[i].format, filename);
-
- if (ldfile_try_open_bfd (full_string, entry))
- break;
- }
-
- if (!libname_fmt[i].format)
- {
- free (full_string);
- return FALSE;
- }
-
- entry->filename = full_string;
-
- return TRUE;
-}
-
-static int
-gld_${EMULATION_NAME}_find_potential_libraries
- (char *name, lang_input_statement_type *entry)
-{
- return ldfile_open_file_search (name, entry, "", ".lib");
-}
-
-static char *
-gld_${EMULATION_NAME}_get_script (int *isfile)
-EOF
-# Scripts compiled in.
-# sed commands to quote an ld script as a C string.
-sc="-f stringify.sed"
-
-fragment <<EOF
-{
- *isfile = 0;
-
- if (link_info.relocatable && config.build_constructors)
- return
-EOF
-sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c
-if test -n "$GENERATE_AUTO_IMPORT_SCRIPT" ; then
-echo ' ; else if (link_info.pei386_auto_import == 1 && link_info.pei386_runtime_pseudo_reloc != 2) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xa >> e${EMULATION_NAME}.c
-fi
-echo ' ; else return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c
-echo '; }' >> e${EMULATION_NAME}.c
-
-fragment <<EOF
-
-
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
-{
- gld_${EMULATION_NAME}_before_parse,
- syslib_default,
- hll_default,
- gld_${EMULATION_NAME}_after_parse,
- gld_${EMULATION_NAME}_after_open,
- after_allocation_default,
- set_output_arch_default,
- ldemul_default_target,
- gld_${EMULATION_NAME}_before_allocation,
- gld_${EMULATION_NAME}_get_script,
- "${EMULATION_NAME}",
- "${OUTPUT_FORMAT}",
- gld_${EMULATION_NAME}_finish,
- NULL, /* Create output section statements. */
- gld_${EMULATION_NAME}_open_dynamic_archive,
- gld_${EMULATION_NAME}_place_orphan,
- gld_${EMULATION_NAME}_set_symbols,
- NULL, /* parse_args */
- gld${EMULATION_NAME}_add_options,
- gld${EMULATION_NAME}_handle_option,
- gld_${EMULATION_NAME}_unrecognized_file,
- gld_${EMULATION_NAME}_list_options,
- gld_${EMULATION_NAME}_recognized_file,
- gld_${EMULATION_NAME}_find_potential_libraries,
- NULL /* new_vers_pattern. */
-};
-EOF
diff --git a/ld/emultempl/ppc32elf.em b/ld/emultempl/ppc32elf.em
deleted file mode 100644
index 6843770..0000000
--- a/ld/emultempl/ppc32elf.em
+++ /dev/null
@@ -1,251 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2003, 2005, 2007, 2008, 2009, 2010, 2011, 2012
-# 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.
-#
-
-# This file is sourced from elf32.em, and defines extra powerpc32-elf
-# specific routines.
-#
-fragment <<EOF
-
-#include "libbfd.h"
-#include "elf32-ppc.h"
-#include "ldlex.h"
-
-#define is_ppc_elf(bfd) \
- (bfd_get_flavour (bfd) == bfd_target_elf_flavour \
- && elf_object_id (bfd) == PPC32_ELF_DATA)
-
-/* Whether to run tls optimization. */
-static int notlsopt = 0;
-static int no_tls_get_addr_opt = 0;
-
-/* Whether to emit symbols for stubs. */
-static int emit_stub_syms = -1;
-
-/* Chooses the correct place for .plt and .got. */
-static enum ppc_elf_plt_type plt_style = PLT_UNSET;
-static int old_got = 0;
-
-static void
-ppc_after_open (void)
-{
- if (is_ppc_elf (link_info.output_bfd))
- {
- int new_plt;
- int keep_new;
- unsigned int num_plt;
- unsigned int num_got;
- lang_output_section_statement_type *os;
- lang_output_section_statement_type *plt_os[2];
- lang_output_section_statement_type *got_os[2];
-
- if (emit_stub_syms < 0)
- emit_stub_syms = link_info.emitrelocations || link_info.shared;
- new_plt = ppc_elf_select_plt_layout (link_info.output_bfd, &link_info,
- plt_style, emit_stub_syms);
- if (new_plt < 0)
- einfo ("%X%P: select_plt_layout problem %E\n");
-
- num_got = 0;
- num_plt = 0;
- for (os = &lang_output_section_statement.head->output_section_statement;
- os != NULL;
- os = os->next)
- {
- if (os->constraint == SPECIAL && strcmp (os->name, ".plt") == 0)
- {
- if (num_plt < 2)
- plt_os[num_plt] = os;
- ++num_plt;
- }
- if (os->constraint == SPECIAL && strcmp (os->name, ".got") == 0)
- {
- if (num_got < 2)
- got_os[num_got] = os;
- ++num_got;
- }
- }
-
- keep_new = new_plt == 1 ? 0 : -1;
- if (num_plt == 2)
- {
- plt_os[0]->constraint = keep_new;
- plt_os[1]->constraint = ~keep_new;
- }
- if (num_got == 2)
- {
- if (old_got)
- keep_new = -1;
- got_os[0]->constraint = keep_new;
- got_os[1]->constraint = ~keep_new;
- }
- }
-
- gld${EMULATION_NAME}_after_open ();
-}
-
-static void
-ppc_before_allocation (void)
-{
- if (is_ppc_elf (link_info.output_bfd))
- {
- if (ppc_elf_tls_setup (link_info.output_bfd, &link_info,
- no_tls_get_addr_opt)
- && !notlsopt)
- {
- if (!ppc_elf_tls_optimize (link_info.output_bfd, &link_info))
- {
- einfo ("%X%P: TLS problem %E\n");
- return;
- }
- }
- }
-
- gld${EMULATION_NAME}_before_allocation ();
-
- /* Turn on relaxation if executable sections have addresses that
- might make branches overflow. */
- if (RELAXATION_DISABLED_BY_DEFAULT)
- {
- bfd_vma low = (bfd_vma) -1;
- bfd_vma high = 0;
- asection *o;
-
- /* Run lang_size_sections (if not already done). */
- if (expld.phase != lang_mark_phase_enum)
- {
- expld.phase = lang_mark_phase_enum;
- expld.dataseg.phase = exp_dataseg_none;
- one_lang_size_sections_pass (NULL, FALSE);
- lang_reset_memory_regions ();
- }
-
- for (o = link_info.output_bfd->sections; o != NULL; o = o->next)
- {
- if ((o->flags & (SEC_ALLOC | SEC_CODE)) != (SEC_ALLOC | SEC_CODE))
- continue;
- if (o->rawsize == 0)
- continue;
- if (low > o->vma)
- low = o->vma;
- if (high < o->vma + o->rawsize - 1)
- high = o->vma + o->rawsize - 1;
- }
- if (high > low && high - low > (1 << 25) - 1)
- ENABLE_RELAXATION;
- }
-}
-
-EOF
-
-if grep -q 'ld_elf32_spu_emulation' ldemul-list.h; then
- fragment <<EOF
-/* Special handling for embedded SPU executables. */
-extern bfd_boolean embedded_spu_file (lang_input_statement_type *, const char *);
-static bfd_boolean gld${EMULATION_NAME}_load_symbols (lang_input_statement_type *);
-
-static bfd_boolean
-ppc_recognized_file (lang_input_statement_type *entry)
-{
- if (embedded_spu_file (entry, "-m32"))
- return TRUE;
-
- return gld${EMULATION_NAME}_load_symbols (entry);
-}
-
-EOF
-LDEMUL_RECOGNIZED_FILE=ppc_recognized_file
-fi
-
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE=${PARSE_AND_LIST_PROLOGUE}'
-#define OPTION_NO_TLS_OPT 321
-#define OPTION_NO_TLS_GET_ADDR_OPT (OPTION_NO_TLS_OPT + 1)
-#define OPTION_NEW_PLT (OPTION_NO_TLS_GET_ADDR_OPT + 1)
-#define OPTION_OLD_PLT (OPTION_NEW_PLT + 1)
-#define OPTION_OLD_GOT (OPTION_OLD_PLT + 1)
-#define OPTION_STUBSYMS (OPTION_OLD_GOT + 1)
-#define OPTION_NO_STUBSYMS (OPTION_STUBSYMS + 1)
-'
-
-PARSE_AND_LIST_LONGOPTS=${PARSE_AND_LIST_LONGOPTS}'
- { "emit-stub-syms", no_argument, NULL, OPTION_STUBSYMS },
- { "no-emit-stub-syms", no_argument, NULL, OPTION_NO_STUBSYMS },
- { "no-tls-optimize", no_argument, NULL, OPTION_NO_TLS_OPT },
- { "no-tls-get-addr-optimize", no_argument, NULL, OPTION_NO_TLS_GET_ADDR_OPT },
- { "secure-plt", no_argument, NULL, OPTION_NEW_PLT },
- { "bss-plt", no_argument, NULL, OPTION_OLD_PLT },
- { "sdata-got", no_argument, NULL, OPTION_OLD_GOT },
-'
-
-PARSE_AND_LIST_OPTIONS=${PARSE_AND_LIST_OPTIONS}'
- fprintf (file, _("\
- --emit-stub-syms Label linker stubs with a symbol.\n\
- --no-emit-stub-syms Don'\''t label linker stubs with a symbol.\n\
- --no-tls-optimize Don'\''t try to optimize TLS accesses.\n\
- --no-tls-get-addr-optimize Don'\''t use a special __tls_get_addr call.\n\
- --secure-plt Use new-style PLT if possible.\n\
- --bss-plt Force old-style BSS PLT.\n\
- --sdata-got Force GOT location just before .sdata.\n"
- ));
-'
-
-PARSE_AND_LIST_ARGS_CASES=${PARSE_AND_LIST_ARGS_CASES}'
- case OPTION_STUBSYMS:
- emit_stub_syms = 1;
- break;
-
- case OPTION_NO_STUBSYMS:
- emit_stub_syms = 0;
- break;
-
- case OPTION_NO_TLS_OPT:
- notlsopt = 1;
- break;
-
- case OPTION_NO_TLS_GET_ADDR_OPT:
- no_tls_get_addr_opt = 1;
- break;
-
- case OPTION_NEW_PLT:
- plt_style = PLT_NEW;
- break;
-
- case OPTION_OLD_PLT:
- plt_style = PLT_OLD;
- break;
-
- case OPTION_OLD_GOT:
- old_got = 1;
- break;
-
- case OPTION_TRADITIONAL_FORMAT:
- notlsopt = 1;
- no_tls_get_addr_opt = 1;
- return FALSE;
-'
-
-# Put these extra ppc32elf routines in ld_${EMULATION_NAME}_emulation
-#
-LDEMUL_AFTER_OPEN=ppc_after_open
-LDEMUL_BEFORE_ALLOCATION=ppc_before_allocation
diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em
deleted file mode 100644
index f2085d7..0000000
--- a/ld/emultempl/ppc64elf.em
+++ /dev/null
@@ -1,871 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-# 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.
-#
-
-# This file is sourced from elf32.em, and defines extra powerpc64-elf
-# specific routines.
-#
-fragment <<EOF
-
-#include "ldctor.h"
-#include "libbfd.h"
-#include "elf-bfd.h"
-#include "elf64-ppc.h"
-#include "ldlex.h"
-
-/* Fake input file for stubs. */
-static lang_input_statement_type *stub_file;
-static int stub_added = 0;
-
-/* Whether we need to call ppc_layout_sections_again. */
-static int need_laying_out = 0;
-
-/* Maximum size of a group of input sections that can be handled by
- one stub section. A value of +/-1 indicates the bfd back-end
- should use a suitable default size. */
-static bfd_signed_vma group_size = 1;
-
-/* Whether to add ".foo" entries for each "foo" in a version script. */
-static int dotsyms = 1;
-
-/* Whether to run tls optimization. */
-static int no_tls_opt = 0;
-static int no_tls_get_addr_opt = 0;
-
-/* Whether to run opd optimization. */
-static int no_opd_opt = 0;
-
-/* Whether to run toc optimization. */
-static int no_toc_opt = 0;
-
-/* Whether to allow multiple toc sections. */
-static int no_multi_toc = 0;
-
-/* Whether to sort input toc and got sections. */
-static int no_toc_sort = 0;
-
-/* Set if PLT call stubs should load r11. */
-static int plt_static_chain = ${DEFAULT_PLT_STATIC_CHAIN-0};
-
-/* Set if PLT call stubs need to be thread safe on power7+. */
-static int plt_thread_safe = -1;
-
-/* Set if individual PLT call stubs should be aligned. */
-static int plt_stub_align = 0;
-
-/* Whether to emit symbols for stubs. */
-static int emit_stub_syms = -1;
-
-static asection *toc_section = 0;
-
-/* Whether to canonicalize .opd so that there are no overlapping
- .opd entries. */
-static int non_overlapping_opd = 0;
-
-/* This is called before the input files are opened. We create a new
- fake input file to hold the stub sections. */
-
-static void
-ppc_create_output_section_statements (void)
-{
- if (!(bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour
- && elf_object_id (link_info.output_bfd) == PPC64_ELF_DATA))
- return;
-
- link_info.wrap_char = '.';
-
- stub_file = lang_add_input_file ("linker stubs",
- lang_input_file_is_fake_enum,
- NULL);
- stub_file->the_bfd = bfd_create ("linker stubs", link_info.output_bfd);
- if (stub_file->the_bfd == NULL
- || !bfd_set_arch_mach (stub_file->the_bfd,
- bfd_get_arch (link_info.output_bfd),
- bfd_get_mach (link_info.output_bfd)))
- {
- einfo ("%F%P: can not create BFD: %E\n");
- return;
- }
-
- stub_file->the_bfd->flags |= BFD_LINKER_CREATED;
- ldlang_add_file (stub_file);
- if (!ppc64_elf_init_stub_bfd (stub_file->the_bfd, &link_info))
- einfo ("%F%P: can not init BFD: %E\n");
-}
-
-/* Move the input section statement at *U which happens to be on LIST
- to be just before *TO. */
-
-static void
-move_input_section (lang_statement_list_type *list,
- lang_statement_union_type **u,
- lang_statement_union_type **to)
-{
- lang_statement_union_type *s = *u;
- asection *i = s->input_section.section;
- asection *p, *n;
-
- /* Snip the input section from the statement list. If it was the
- last statement, fix the list tail pointer. */
- *u = s->header.next;
- if (*u == NULL)
- list->tail = u;
- /* Add it back in the new position. */
- s->header.next = *to;
- *to = s;
- if (list->tail == to)
- list->tail = &s->header.next;
-
- /* Trim I off the bfd map_head/map_tail doubly linked lists. */
- n = i->map_head.s;
- p = i->map_tail.s;
- (p != NULL ? p : i->output_section)->map_head.s = n;
- (n != NULL ? n : i->output_section)->map_tail.s = p;
-
- /* Add I back on in its new position. */
- if (s->header.next->header.type == lang_input_section_enum)
- {
- n = s->header.next->input_section.section;
- p = n->map_tail.s;
- }
- else
- {
- /* If the next statement is not an input section statement then
- TO must point at the previous input section statement
- header.next field. */
- lang_input_section_type *prev = (lang_input_section_type *)
- ((char *) to - offsetof (lang_statement_union_type, header.next));
-
- ASSERT (prev->header.type == lang_input_section_enum);
- p = prev->section;
- n = p->map_head.s;
- }
- i->map_head.s = n;
- i->map_tail.s = p;
- (p != NULL ? p : i->output_section)->map_head.s = i;
- (n != NULL ? n : i->output_section)->map_tail.s = i;
-}
-
-/* Sort input section statements in the linker script tree rooted at
- LIST so that those whose owning bfd happens to have a section
- called .init or .fini are placed first. Place any TOC sections
- referenced by small TOC relocs next, with TOC sections referenced
- only by bigtoc relocs last. */
-
-static void
-sort_toc_sections (lang_statement_list_type *list,
- lang_statement_union_type **ini,
- lang_statement_union_type **small)
-{
- lang_statement_union_type *s, **u;
- asection *i;
-
- u = &list->head;
- while ((s = *u) != NULL)
- {
- switch (s->header.type)
- {
- case lang_wild_statement_enum:
- sort_toc_sections (&s->wild_statement.children, ini, small);
- break;
-
- case lang_group_statement_enum:
- sort_toc_sections (&s->group_statement.children, ini, small);
- break;
-
- case lang_input_section_enum:
- i = s->input_section.section;
- /* Leave the stub_file .got where it is. We put the .got
- header there. */
- if (i->owner == stub_file->the_bfd)
- break;
- if (bfd_get_section_by_name (i->owner, ".init") != NULL
- || bfd_get_section_by_name (i->owner, ".fini") != NULL)
- {
- if (ini != NULL && *ini != s)
- {
- move_input_section (list, u, ini);
- if (small == ini)
- small = &s->header.next;
- ini = &s->header.next;
- continue;
- }
- if (small == ini)
- small = &s->header.next;
- ini = &s->header.next;
- break;
- }
- else if (ini == NULL)
- ini = u;
-
- if (ppc64_elf_has_small_toc_reloc (i))
- {
- if (small != NULL && *small != s)
- {
- move_input_section (list, u, small);
- small = &s->header.next;
- continue;
- }
- small = &s->header.next;
- }
- else if (small == NULL)
- small = u;
- break;
-
- default:
- break;
- }
- u = &s->header.next;
- }
-}
-
-static void
-prelim_size_sections (void)
-{
- if (expld.phase != lang_mark_phase_enum)
- {
- expld.phase = lang_mark_phase_enum;
- expld.dataseg.phase = exp_dataseg_none;
- one_lang_size_sections_pass (NULL, FALSE);
- /* We must not cache anything from the preliminary sizing. */
- lang_reset_memory_regions ();
- }
-}
-
-static void
-ppc_before_allocation (void)
-{
- if (stub_file != NULL)
- {
- if (!no_opd_opt
- && !ppc64_elf_edit_opd (&link_info, non_overlapping_opd))
- einfo ("%X%P: can not edit %s: %E\n", "opd");
-
- if (ppc64_elf_tls_setup (&link_info, no_tls_get_addr_opt, &no_multi_toc)
- && !no_tls_opt)
- {
- /* Size the sections. This is premature, but we want to know the
- TLS segment layout so that certain optimizations can be done. */
- prelim_size_sections ();
-
- if (!ppc64_elf_tls_optimize (&link_info))
- einfo ("%X%P: TLS problem %E\n");
- }
-
- if (!no_toc_opt
- && !link_info.relocatable)
- {
- prelim_size_sections ();
-
- if (!ppc64_elf_edit_toc (&link_info))
- einfo ("%X%P: can not edit %s: %E\n", "toc");
- }
-
- if (!no_toc_sort)
- {
- lang_output_section_statement_type *toc_os;
-
- toc_os = lang_output_section_find (".got");
- if (toc_os != NULL)
- sort_toc_sections (&toc_os->children, NULL, NULL);
- }
- }
-
- gld${EMULATION_NAME}_before_allocation ();
-}
-
-struct hook_stub_info
-{
- lang_statement_list_type add;
- asection *input_section;
-};
-
-/* Traverse the linker tree to find the spot where the stub goes. */
-
-static bfd_boolean
-hook_in_stub (struct hook_stub_info *info, lang_statement_union_type **lp)
-{
- lang_statement_union_type *l;
- bfd_boolean ret;
-
- for (; (l = *lp) != NULL; lp = &l->header.next)
- {
- switch (l->header.type)
- {
- case lang_constructors_statement_enum:
- ret = hook_in_stub (info, &constructor_list.head);
- if (ret)
- return ret;
- break;
-
- case lang_output_section_statement_enum:
- ret = hook_in_stub (info,
- &l->output_section_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_wild_statement_enum:
- ret = hook_in_stub (info, &l->wild_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_group_statement_enum:
- ret = hook_in_stub (info, &l->group_statement.children.head);
- if (ret)
- return ret;
- break;
-
- case lang_input_section_enum:
- if (l->input_section.section == info->input_section)
- {
- /* We've found our section. Insert the stub immediately
- before its associated input section. */
- *lp = info->add.head;
- *(info->add.tail) = l;
- return TRUE;
- }
- break;
-
- case lang_data_statement_enum:
- case lang_reloc_statement_enum:
- case lang_object_symbols_statement_enum:
- case lang_output_statement_enum:
- case lang_target_statement_enum:
- case lang_input_statement_enum:
- case lang_assignment_statement_enum:
- case lang_padding_statement_enum:
- case lang_address_statement_enum:
- case lang_fill_statement_enum:
- break;
-
- default:
- FAIL ();
- break;
- }
- }
- return FALSE;
-}
-
-
-/* Call-back for ppc64_elf_size_stubs. */
-
-/* Create a new stub section, and arrange for it to be linked
- immediately before INPUT_SECTION. */
-
-static asection *
-ppc_add_stub_section (const char *stub_sec_name, asection *input_section)
-{
- asection *stub_sec;
- flagword flags;
- asection *output_section;
- const char *secname;
- lang_output_section_statement_type *os;
- struct hook_stub_info info;
-
- flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE
- | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_KEEP);
- stub_sec = bfd_make_section_anyway_with_flags (stub_file->the_bfd,
- stub_sec_name, flags);
- if (stub_sec == NULL
- || !bfd_set_section_alignment (stub_file->the_bfd, stub_sec,
- plt_stub_align > 5 ? plt_stub_align : 5))
- goto err_ret;
-
- output_section = input_section->output_section;
- secname = bfd_get_section_name (output_section->owner, output_section);
- os = lang_output_section_find (secname);
-
- info.input_section = input_section;
- lang_list_init (&info.add);
- lang_add_section (&info.add, stub_sec, NULL, os);
-
- if (info.add.head == NULL)
- goto err_ret;
-
- stub_added = 1;
- if (hook_in_stub (&info, &os->children.head))
- return stub_sec;
-
- err_ret:
- einfo ("%X%P: can not make stub section: %E\n");
- return NULL;
-}
-
-
-/* Another call-back for ppc64_elf_size_stubs. */
-
-static void
-ppc_layout_sections_again (void)
-{
- /* If we have changed sizes of the stub sections, then we need
- to recalculate all the section offsets. This may mean we need to
- add even more stubs. */
- gld${EMULATION_NAME}_map_segments (TRUE);
-
- if (!link_info.relocatable)
- ppc64_elf_set_toc (&link_info, link_info.output_bfd);
-
- need_laying_out = -1;
-}
-
-
-static void
-build_toc_list (lang_statement_union_type *statement)
-{
- if (statement->header.type == lang_input_section_enum)
- {
- asection *i = statement->input_section.section;
-
- if (i->sec_info_type != SEC_INFO_TYPE_JUST_SYMS
- && (i->flags & SEC_EXCLUDE) == 0
- && i->output_section == toc_section)
- {
- if (!ppc64_elf_next_toc_section (&link_info, i))
- einfo ("%X%P: linker script separates .got and .toc\n");
- }
- }
-}
-
-
-static void
-build_section_lists (lang_statement_union_type *statement)
-{
- if (statement->header.type == lang_input_section_enum)
- {
- asection *i = statement->input_section.section;
-
- if (!((lang_input_statement_type *) i->owner->usrdata)->flags.just_syms
- && (i->flags & SEC_EXCLUDE) == 0
- && i->output_section != NULL
- && i->output_section->owner == link_info.output_bfd)
- {
- if (!ppc64_elf_next_input_section (&link_info, i))
- einfo ("%X%P: can not size stub section: %E\n");
- }
- }
-}
-
-
-/* Call the back-end function to set TOC base after we have placed all
- the sections. */
-static void
-gld${EMULATION_NAME}_after_allocation (void)
-{
- /* bfd_elf_discard_info just plays with data and debugging sections,
- ie. doesn't affect code size, so we can delay resizing the
- sections. It's likely we'll resize everything in the process of
- adding stubs. */
- if (bfd_elf_discard_info (link_info.output_bfd, &link_info))
- need_laying_out = 1;
-
- /* If generating a relocatable output file, then we don't have any
- stubs. */
- if (stub_file != NULL && !link_info.relocatable)
- {
- int ret = ppc64_elf_setup_section_lists (&link_info,
- &ppc_add_stub_section,
- &ppc_layout_sections_again);
- if (ret < 0)
- einfo ("%X%P: can not size stub section: %E\n");
- else if (ret > 0)
- {
- ppc64_elf_start_multitoc_partition (&link_info);
-
- if (!no_multi_toc)
- {
- toc_section = bfd_get_section_by_name (link_info.output_bfd,
- ".got");
- if (toc_section != NULL)
- lang_for_each_statement (build_toc_list);
- }
-
- if (ppc64_elf_layout_multitoc (&link_info)
- && !no_multi_toc
- && toc_section != NULL)
- lang_for_each_statement (build_toc_list);
-
- ppc64_elf_finish_multitoc_partition (&link_info);
-
- lang_for_each_statement (build_section_lists);
-
- if (!ppc64_elf_check_init_fini (&link_info))
- einfo ("%P: .init/.fini fragments use differing TOC pointers\n");
-
- /* Call into the BFD backend to do the real work. */
- if (!ppc64_elf_size_stubs (&link_info, group_size,
- plt_static_chain, plt_thread_safe,
- plt_stub_align))
- einfo ("%X%P: can not size stub section: %E\n");
- }
- }
-
- if (need_laying_out != -1)
- {
- gld${EMULATION_NAME}_map_segments (need_laying_out);
-
- if (!link_info.relocatable)
- ppc64_elf_set_toc (&link_info, link_info.output_bfd);
- }
-}
-
-
-/* Final emulation specific call. */
-
-static void
-gld${EMULATION_NAME}_finish (void)
-{
- /* e_entry on PowerPC64 points to the function descriptor for
- _start. If _start is missing, default to the first function
- descriptor in the .opd section. */
- entry_section = ".opd";
-
- if (stub_added)
- {
- char *msg = NULL;
- char *line, *endline;
-
- if (emit_stub_syms < 0)
- emit_stub_syms = 1;
- if (!ppc64_elf_build_stubs (emit_stub_syms, &link_info,
- config.stats ? &msg : NULL))
- einfo ("%X%P: can not build stubs: %E\n");
-
- fflush (stdout);
- for (line = msg; line != NULL; line = endline)
- {
- endline = strchr (line, '\n');
- if (endline != NULL)
- *endline++ = '\0';
- fprintf (stderr, "%s: %s\n", program_name, line);
- }
- fflush (stderr);
- if (msg != NULL)
- free (msg);
- }
-
- ppc64_elf_restore_symbols (&link_info);
- finish_default ();
-}
-
-
-/* Add a pattern matching ".foo" for every "foo" in a version script.
-
- The reason for doing this is that many shared library version
- scripts export a selected set of functions or data symbols, forcing
- others local. eg.
-
- . VERS_1 {
- . global:
- . this; that; some; thing;
- . local:
- . *;
- . };
-
- To make the above work for PowerPC64, we need to export ".this",
- ".that" and so on, otherwise only the function descriptor syms are
- exported. Lack of an exported function code sym may cause a
- definition to be pulled in from a static library. */
-
-static struct bfd_elf_version_expr *
-gld${EMULATION_NAME}_new_vers_pattern (struct bfd_elf_version_expr *entry)
-{
- struct bfd_elf_version_expr *dot_entry;
- unsigned int len;
- char *dot_pat;
-
- if (!dotsyms
- || entry->pattern[0] == '.'
- || (!entry->literal && entry->pattern[0] == '*'))
- return entry;
-
- dot_entry = xmalloc (sizeof *dot_entry);
- *dot_entry = *entry;
- dot_entry->next = entry;
- len = strlen (entry->pattern) + 2;
- dot_pat = xmalloc (len);
- dot_pat[0] = '.';
- memcpy (dot_pat + 1, entry->pattern, len - 1);
- dot_entry->pattern = dot_pat;
- dot_entry->script = 1;
- return dot_entry;
-}
-
-
-/* Avoid processing the fake stub_file in vercheck, stat_needed and
- check_needed routines. */
-
-static void (*real_func) (lang_input_statement_type *);
-
-static void ppc_for_each_input_file_wrapper (lang_input_statement_type *l)
-{
- if (l != stub_file)
- (*real_func) (l);
-}
-
-static void
-ppc_lang_for_each_input_file (void (*func) (lang_input_statement_type *))
-{
- real_func = func;
- lang_for_each_input_file (&ppc_for_each_input_file_wrapper);
-}
-
-#define lang_for_each_input_file ppc_lang_for_each_input_file
-
-EOF
-
-if grep -q 'ld_elf32_spu_emulation' ldemul-list.h; then
- fragment <<EOF
-/* Special handling for embedded SPU executables. */
-extern bfd_boolean embedded_spu_file (lang_input_statement_type *, const char *);
-static bfd_boolean gld${EMULATION_NAME}_load_symbols (lang_input_statement_type *);
-
-static bfd_boolean
-ppc64_recognized_file (lang_input_statement_type *entry)
-{
- if (embedded_spu_file (entry, "-m64"))
- return TRUE;
-
- return gld${EMULATION_NAME}_load_symbols (entry);
-}
-EOF
-LDEMUL_RECOGNIZED_FILE=ppc64_recognized_file
-fi
-
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE=${PARSE_AND_LIST_PROLOGUE}'
-#define OPTION_STUBGROUP_SIZE 321
-#define OPTION_PLT_STATIC_CHAIN (OPTION_STUBGROUP_SIZE + 1)
-#define OPTION_NO_PLT_STATIC_CHAIN (OPTION_PLT_STATIC_CHAIN + 1)
-#define OPTION_PLT_THREAD_SAFE (OPTION_NO_PLT_STATIC_CHAIN + 1)
-#define OPTION_NO_PLT_THREAD_SAFE (OPTION_PLT_THREAD_SAFE + 1)
-#define OPTION_PLT_ALIGN (OPTION_NO_PLT_THREAD_SAFE + 1)
-#define OPTION_NO_PLT_ALIGN (OPTION_PLT_ALIGN + 1)
-#define OPTION_STUBSYMS (OPTION_NO_PLT_ALIGN + 1)
-#define OPTION_NO_STUBSYMS (OPTION_STUBSYMS + 1)
-#define OPTION_DOTSYMS (OPTION_NO_STUBSYMS + 1)
-#define OPTION_NO_DOTSYMS (OPTION_DOTSYMS + 1)
-#define OPTION_NO_TLS_OPT (OPTION_NO_DOTSYMS + 1)
-#define OPTION_NO_TLS_GET_ADDR_OPT (OPTION_NO_TLS_OPT + 1)
-#define OPTION_NO_OPD_OPT (OPTION_NO_TLS_GET_ADDR_OPT + 1)
-#define OPTION_NO_TOC_OPT (OPTION_NO_OPD_OPT + 1)
-#define OPTION_NO_MULTI_TOC (OPTION_NO_TOC_OPT + 1)
-#define OPTION_NO_TOC_SORT (OPTION_NO_MULTI_TOC + 1)
-#define OPTION_NON_OVERLAPPING_OPD (OPTION_NO_TOC_SORT + 1)
-'
-
-PARSE_AND_LIST_LONGOPTS=${PARSE_AND_LIST_LONGOPTS}'
- { "stub-group-size", required_argument, NULL, OPTION_STUBGROUP_SIZE },
- { "plt-static-chain", no_argument, NULL, OPTION_PLT_STATIC_CHAIN },
- { "no-plt-static-chain", no_argument, NULL, OPTION_NO_PLT_STATIC_CHAIN },
- { "plt-thread-safe", no_argument, NULL, OPTION_PLT_THREAD_SAFE },
- { "no-plt-thread-safe", no_argument, NULL, OPTION_NO_PLT_THREAD_SAFE },
- { "plt-align", optional_argument, NULL, OPTION_PLT_ALIGN },
- { "no-plt-align", no_argument, NULL, OPTION_NO_PLT_ALIGN },
- { "emit-stub-syms", no_argument, NULL, OPTION_STUBSYMS },
- { "no-emit-stub-syms", no_argument, NULL, OPTION_NO_STUBSYMS },
- { "dotsyms", no_argument, NULL, OPTION_DOTSYMS },
- { "no-dotsyms", no_argument, NULL, OPTION_NO_DOTSYMS },
- { "no-tls-optimize", no_argument, NULL, OPTION_NO_TLS_OPT },
- { "no-tls-get-addr-optimize", no_argument, NULL, OPTION_NO_TLS_GET_ADDR_OPT },
- { "no-opd-optimize", no_argument, NULL, OPTION_NO_OPD_OPT },
- { "no-toc-optimize", no_argument, NULL, OPTION_NO_TOC_OPT },
- { "no-multi-toc", no_argument, NULL, OPTION_NO_MULTI_TOC },
- { "no-toc-sort", no_argument, NULL, OPTION_NO_TOC_SORT },
- { "non-overlapping-opd", no_argument, NULL, OPTION_NON_OVERLAPPING_OPD },
-'
-
-PARSE_AND_LIST_OPTIONS=${PARSE_AND_LIST_OPTIONS}'
- fprintf (file, _("\
- --stub-group-size=N Maximum size of a group of input sections that\n\
- can be handled by one stub section. A negative\n\
- value locates all stubs before their branches\n\
- (with a group size of -N), while a positive\n\
- value allows two groups of input sections, one\n\
- before, and one after each stub section.\n\
- Values of +/-1 indicate the linker should\n\
- choose suitable defaults.\n"
- ));
- fprintf (file, _("\
- --plt-static-chain PLT call stubs should load r11.${DEFAULT_PLT_STATIC_CHAIN- (default)}\n"
- ));
- fprintf (file, _("\
- --no-plt-static-chain PLT call stubs should not load r11.${DEFAULT_PLT_STATIC_CHAIN+ (default)}\n"
- ));
- fprintf (file, _("\
- --plt-thread-safe PLT call stubs with load-load barrier.\n"
- ));
- fprintf (file, _("\
- --no-plt-thread-safe PLT call stubs without barrier.\n"
- ));
- fprintf (file, _("\
- --plt-align [=<align>] Align PLT call stubs to fit cache lines.\n"
- ));
- fprintf (file, _("\
- --no-plt-align Dont'\''t align individual PLT call stubs.\n"
- ));
- fprintf (file, _("\
- --emit-stub-syms Label linker stubs with a symbol.\n"
- ));
- fprintf (file, _("\
- --no-emit-stub-syms Don'\''t label linker stubs with a symbol.\n"
- ));
- fprintf (file, _("\
- --dotsyms For every version pattern \"foo\" in a version\n\
- script, add \".foo\" so that function code\n\
- symbols are treated the same as function\n\
- descriptor symbols. Defaults to on.\n"
- ));
- fprintf (file, _("\
- --no-dotsyms Don'\''t do anything special in version scripts.\n"
- ));
- fprintf (file, _("\
- --no-tls-optimize Don'\''t try to optimize TLS accesses.\n"
- ));
- fprintf (file, _("\
- --no-tls-get-addr-optimize Don'\''t use a special __tls_get_addr call.\n"
- ));
- fprintf (file, _("\
- --no-opd-optimize Don'\''t optimize the OPD section.\n"
- ));
- fprintf (file, _("\
- --no-toc-optimize Don'\''t optimize the TOC section.\n"
- ));
- fprintf (file, _("\
- --no-multi-toc Disallow automatic multiple toc sections.\n"
- ));
- fprintf (file, _("\
- --no-toc-sort Don'\''t sort TOC and GOT sections.\n"
- ));
- fprintf (file, _("\
- --non-overlapping-opd Canonicalize .opd, so that there are no\n\
- overlapping .opd entries.\n"
- ));
-'
-
-PARSE_AND_LIST_ARGS_CASES=${PARSE_AND_LIST_ARGS_CASES}'
- case OPTION_STUBGROUP_SIZE:
- {
- const char *end;
- group_size = bfd_scan_vma (optarg, &end, 0);
- if (*end)
- einfo (_("%P%F: invalid number `%s'\''\n"), optarg);
- }
- break;
-
- case OPTION_PLT_STATIC_CHAIN:
- plt_static_chain = 1;
- break;
-
- case OPTION_NO_PLT_STATIC_CHAIN:
- plt_static_chain = 0;
- break;
-
- case OPTION_PLT_THREAD_SAFE:
- plt_thread_safe = 1;
- break;
-
- case OPTION_NO_PLT_THREAD_SAFE:
- plt_thread_safe = 0;
- break;
-
- case OPTION_PLT_ALIGN:
- if (optarg != NULL)
- {
- char *end;
- unsigned long val = strtoul (optarg, &end, 0);
- if (*end || val > 8)
- einfo (_("%P%F: invalid --plt-align `%s'\''\n"), optarg);
- plt_stub_align = val;
- }
- else
- plt_stub_align = 5;
- break;
-
- case OPTION_NO_PLT_ALIGN:
- plt_stub_align = 0;
- break;
-
- case OPTION_STUBSYMS:
- emit_stub_syms = 1;
- break;
-
- case OPTION_NO_STUBSYMS:
- emit_stub_syms = 0;
- break;
-
- case OPTION_DOTSYMS:
- dotsyms = 1;
- break;
-
- case OPTION_NO_DOTSYMS:
- dotsyms = 0;
- break;
-
- case OPTION_NO_TLS_OPT:
- no_tls_opt = 1;
- break;
-
- case OPTION_NO_TLS_GET_ADDR_OPT:
- no_tls_get_addr_opt = 1;
- break;
-
- case OPTION_NO_OPD_OPT:
- no_opd_opt = 1;
- break;
-
- case OPTION_NO_TOC_OPT:
- no_toc_opt = 1;
- break;
-
- case OPTION_NO_MULTI_TOC:
- no_multi_toc = 1;
- break;
-
- case OPTION_NO_TOC_SORT:
- no_toc_sort = 1;
- break;
-
- case OPTION_NON_OVERLAPPING_OPD:
- non_overlapping_opd = 1;
- break;
-
- case OPTION_TRADITIONAL_FORMAT:
- no_tls_opt = 1;
- no_tls_get_addr_opt = 1;
- no_opd_opt = 1;
- no_toc_opt = 1;
- no_multi_toc = 1;
- no_toc_sort = 1;
- plt_static_chain = 1;
- return FALSE;
-'
-
-# Put these extra ppc64elf routines in ld_${EMULATION_NAME}_emulation
-#
-LDEMUL_BEFORE_ALLOCATION=ppc_before_allocation
-LDEMUL_AFTER_ALLOCATION=gld${EMULATION_NAME}_after_allocation
-LDEMUL_FINISH=gld${EMULATION_NAME}_finish
-LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=ppc_create_output_section_statements
-LDEMUL_NEW_VERS_PATTERN=gld${EMULATION_NAME}_new_vers_pattern
diff --git a/ld/emultempl/rxelf.em b/ld/emultempl/rxelf.em
deleted file mode 100644
index f27e8e6..0000000
--- a/ld/emultempl/rxelf.em
+++ /dev/null
@@ -1,88 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2009, 2011 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.
-#
-
-# This file is sourced from elf32.em, and defines extra rx-elf
-# specific routines.
-#
-test -z "$TARGET2_TYPE" && TARGET2_TYPE="rel"
-fragment <<EOF
-
-static bfd_boolean no_flag_mismatch_warnings = TRUE;
-static bfd_boolean ignore_lma = TRUE;
-
-/* This is a convenient point to tell BFD about target specific flags.
- After the output has been created, but before inputs are read. */
-static void
-rx_elf_create_output_section_statements (void)
-{
- extern void bfd_elf32_rx_set_target_flags (bfd_boolean, bfd_boolean);
-
- bfd_elf32_rx_set_target_flags (no_flag_mismatch_warnings, ignore_lma);
-}
-
-EOF
-
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE='
-#define OPTION_NO_FLAG_MISMATCH_WARNINGS 301
-#define OPTION_IGNORE_LMA 302
-#define OPTION_NO_IGNORE_LMA 303
-#define OPTION_FLAG_MISMATCH_WARNINGS 304
-'
-
-PARSE_AND_LIST_LONGOPTS='
- { "no-flag-mismatch-warnings", no_argument, NULL, OPTION_NO_FLAG_MISMATCH_WARNINGS},
- { "flag-mismatch-warnings", no_argument, NULL, OPTION_FLAG_MISMATCH_WARNINGS},
- { "ignore-lma", no_argument, NULL, OPTION_IGNORE_LMA},
- { "no-ignore-lma", no_argument, NULL, OPTION_NO_IGNORE_LMA},
-'
-
-PARSE_AND_LIST_OPTIONS='
- fprintf (file, _(" --no-flag-mismatch-warnings Don'\''t warn about objects with incompatible\n"
- " endian or dsp settings\n"));
- fprintf (file, _(" --flag-mismatch-warnings Warn about objects with incompatible\n"
- " endian, dsp or ABI settings\n"));
- fprintf (file, _(" --ignore-lma Ignore segment LMAs [default]\n"
- " (for Renesas Tools compatibility)\n"));
- fprintf (file, _(" --no-ignore-lma Don'\''t ignore segment LMAs\n"));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
- case OPTION_NO_FLAG_MISMATCH_WARNINGS:
- no_flag_mismatch_warnings = TRUE;
- break;
-
- case OPTION_FLAG_MISMATCH_WARNINGS:
- no_flag_mismatch_warnings = FALSE;
- break;
-
- case OPTION_IGNORE_LMA:
- ignore_lma = TRUE;
- break;
-
- case OPTION_NO_IGNORE_LMA:
- ignore_lma = FALSE;
- break;
-'
-
-LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=rx_elf_create_output_section_statements
diff --git a/ld/emultempl/scoreelf.em b/ld/emultempl/scoreelf.em
deleted file mode 100644
index 8556b40..0000000
--- a/ld/emultempl/scoreelf.em
+++ /dev/null
@@ -1,77 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2006, 2007, 2008, 2009, 2012 Free Software Foundation, Inc.
-# Contributed by:
-# Brain.lin (brain.lin@sunplusct.com)
-# Mei Ligang (ligang@sunnorth.com.cn)
-# Pei-Lin Tsai (pltsai@sunplus.com)
-
-# 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.
-#
-
-# This file is sourced from elf32.em, and defines extra score-elf
-# specific routines.
-#
-fragment <<EOF
-
-#include "elf32-score.h"
-
-static void
-gld${EMULATION_NAME}_before_parse ()
-{
-#ifndef TARGET_ /* I.e., if not generic. */
- ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown);
-#endif /* not TARGET_ */
- input_flags.dynamic = ${DYNAMIC_LINK-TRUE};
- config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
- config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
-}
-
-static void
-score_elf_after_open (void)
-{
- if (strstr (bfd_get_target (link_info.output_bfd), "score") == NULL)
- {
- /* The score backend needs special fields in the output hash structure.
- These will only be created if the output format is an score format,
- hence we do not support linking and changing output formats at the
- same time. Use a link followed by objcopy to change output formats. */
- einfo ("%F%X%P: error: cannot change output format whilst linking S+core binaries\n");
- return;
- }
-
- /* Call the standard elf routine. */
- gld${EMULATION_NAME}_after_open ();
-}
-
-EOF
-
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE=''
-PARSE_AND_LIST_SHORTOPTS=
-PARSE_AND_LIST_LONGOPTS=''
-PARSE_AND_LIST_OPTIONS=''
-PARSE_AND_LIST_ARGS_CASES=''
-
-# We have our own after_open and before_allocation functions, but they call
-# the standard routines, so give them a different name.
-LDEMUL_AFTER_OPEN=score_elf_after_open
-
-# Replace the elf before_parse function with our own.
-LDEMUL_BEFORE_PARSE=gld"${EMULATION_NAME}"_before_parse
diff --git a/ld/emultempl/sh64elf.em b/ld/emultempl/sh64elf.em
deleted file mode 100644
index 17f9dde..0000000
--- a/ld/emultempl/sh64elf.em
+++ /dev/null
@@ -1,561 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
-# 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.
-#
-
-# This file is sourced from elf32.em, and defines extra sh64
-# specific routines.
-#
-
-LDEMUL_AFTER_ALLOCATION=sh64_elf_${EMULATION_NAME}_after_allocation
-LDEMUL_BEFORE_ALLOCATION=sh64_elf_${EMULATION_NAME}_before_allocation
-
-fragment <<EOF
-
-#include "libiberty.h"
-#include "libbfd.h"
-#include "elf-bfd.h"
-#include "elf/sh.h"
-#include "elf32-sh64.h"
-
-/* Check if we need a .cranges section and create it if it's not in any
- input file. It might seem better to always create it and if unneeded,
- discard it, but I don't find a simple way to discard it totally from
- the output.
-
- Putting it here instead of as a elf_backend_always_size_sections hook
- in elf32-sh64.c, means that we have access to linker command line
- options here, and we can access input sections in the order in which
- they will be linked. */
-
-static void
-sh64_elf_${EMULATION_NAME}_before_allocation (void)
-{
- asection *cranges;
- asection *osec;
-
- /* Call main function; we're just extending it. */
- gld${EMULATION_NAME}_before_allocation ();
-
- cranges = bfd_get_section_by_name (link_info.output_bfd,
- SH64_CRANGES_SECTION_NAME);
-
- if (cranges != NULL)
- {
- if (RELAXATION_ENABLED)
- {
- /* FIXME: Look through incoming sections with .cranges
- descriptors, build up some kind of descriptors that the
- relaxing function will pick up and adjust, or perhaps make it
- find and adjust an associated .cranges descriptor. We could
- also look through incoming relocs and kill the ones marking
- relaxation areas, but that wouldn't be TRT. */
- einfo
- (_("%P: Sorry, turning off relaxing: .cranges section in input.\n"));
- einfo (_(" A .cranges section is present in:\n"));
-
- {
- LANG_FOR_EACH_INPUT_STATEMENT (f)
- {
- asection *input_cranges
- = bfd_get_section_by_name (f->the_bfd,
- SH64_CRANGES_SECTION_NAME);
- if (input_cranges != NULL)
- einfo (" %I\n", f);
- }
- }
-
- DISABLE_RELAXATION;
- }
-
- /* We wouldn't need to do anything when there's already a .cranges
- section (and have a return here), except that we need to set the
- section flags right for output sections that *don't* need a
- .cranges section. */
- }
-
- if (RELAXATION_ENABLED)
- {
- LANG_FOR_EACH_INPUT_STATEMENT (f)
- {
- if (bfd_get_flavour (f->the_bfd) == bfd_target_elf_flavour)
- {
- asection *isec;
-
- for (isec = f->the_bfd->sections;
- isec != NULL;
- isec = isec->next)
- {
- if (elf_section_data (isec)->this_hdr.sh_flags
- & (SHF_SH5_ISA32 | SHF_SH5_ISA32_MIXED))
- {
- einfo (_("%P: Sorry, turning off relaxing: SHmedia sections present.\n"));
- einfo (" %I\n", f);
- DISABLE_RELAXATION;
- goto done_scanning_shmedia_sections;
- }
- }
- }
- }
- }
- done_scanning_shmedia_sections:
-
- /* For each non-empty input section in each output section, check if it
- has the same SH64-specific flags. If some input section differs, we
- need a .cranges section. */
- for (osec = link_info.output_bfd->sections;
- osec != NULL;
- osec = osec->next)
- {
- struct sh64_section_data *sh64_sec_data;
- bfd_vma oflags_isa = 0;
- bfd_vma iflags_isa = 0;
-
- if (bfd_get_flavour (link_info.output_bfd) != bfd_target_elf_flavour)
- einfo (_("%FError: non-ELF output formats are not supported by this target's linker.\n"));
-
- sh64_sec_data = sh64_elf_section_data (osec)->sh64_info;
-
- /* Omit excluded or garbage-collected sections. */
- if (bfd_get_section_flags (link_info.output_bfd, osec) & SEC_EXCLUDE)
- continue;
-
- /* Make sure we have the target section data initialized. */
- if (sh64_sec_data == NULL)
- {
- sh64_sec_data = xcalloc (1, sizeof (struct sh64_section_data));
- sh64_elf_section_data (osec)->sh64_info = sh64_sec_data;
- }
-
- /* First find an input section so we have flags to compare with; the
- flags in the output section are not valid. */
- {
- LANG_FOR_EACH_INPUT_STATEMENT (f)
- {
- asection *isec;
-
- for (isec = f->the_bfd->sections;
- isec != NULL;
- isec = isec->next)
- {
- if (isec->output_section == osec
- && isec->size != 0
- && (bfd_get_section_flags (isec->owner, isec)
- & SEC_EXCLUDE) == 0)
- {
- oflags_isa
- = (elf_section_data (isec)->this_hdr.sh_flags
- & (SHF_SH5_ISA32 | SHF_SH5_ISA32_MIXED));
- goto break_1;
- }
- }
- }
- }
-
- break_1:
-
- /* Check that all input sections have the same contents-type flags
- as the first input section. */
- {
- LANG_FOR_EACH_INPUT_STATEMENT (f)
- {
- asection *isec;
-
- for (isec = f->the_bfd->sections;
- isec != NULL;
- isec = isec->next)
- {
- if (isec->output_section == osec
- && isec->size != 0
- && (bfd_get_section_flags (isec->owner, isec)
- & SEC_EXCLUDE) == 0)
- {
- iflags_isa
- = (elf_section_data (isec)->this_hdr.sh_flags
- & (SHF_SH5_ISA32 | SHF_SH5_ISA32_MIXED));
-
- /* If flags don't agree, we need a .cranges section.
- Create it here if it did not exist through input
- sections. */
- if (iflags_isa != oflags_isa)
- {
- if (cranges == NULL)
- {
- /* This section will be *appended* to
- sections, so the outer iteration will reach
- it in due time and set
- sh64_elf_section_data; no need to set it
- specifically here. */
- cranges
- = bfd_make_section_with_flags (link_info.output_bfd,
- SH64_CRANGES_SECTION_NAME,
- SEC_LINKER_CREATED
- | SEC_KEEP
- | SEC_HAS_CONTENTS
- | SEC_DEBUGGING);
- if (cranges == NULL)
- einfo
- (_("%P%E%F: Can't make .cranges section\n"));
- }
-
- /* We don't need to look at more input sections,
- and we know this section will have mixed
- contents. */
- goto break_2;
- }
- }
- }
- }
- }
-
- /* If we got here, then all input sections in this output section
- have the same contents flag. Put that where we expect to see
- contents flags. We don't need to do this for sections that will
- need additional, linker-generated .cranges entries. */
- sh64_sec_data->contents_flags = iflags_isa;
-
- break_2:
- ;
- }
-}
-
-/* Size up and extend the .cranges section, merging generated entries. */
-
-static void
-sh64_elf_${EMULATION_NAME}_after_allocation (void)
-{
- bfd_vma new_cranges = 0;
- bfd_vma cranges_growth = 0;
- asection *osec;
- bfd_byte *crangesp;
- asection *cranges;
-
- gld${EMULATION_NAME}_after_allocation ();
-
- cranges = bfd_get_section_by_name (link_info.output_bfd,
- SH64_CRANGES_SECTION_NAME);
-
- /* If there is no .cranges section, it is because it was seen earlier on
- that none was needed. Otherwise it must have been created then, or
- be present in input. */
- if (cranges == NULL)
- return;
-
- /* First, we set the ISA flags for each output section according to the
- first non-discarded section. For each input section in osec, we
- check if it has the same flags. If it does not, we set flags to mark
- a mixed section (and exit the loop early). */
- for (osec = link_info.output_bfd->sections;
- osec != NULL;
- osec = osec->next)
- {
- bfd_vma oflags_isa = 0;
- bfd_boolean need_check_cranges = FALSE;
-
- /* Omit excluded or garbage-collected sections. */
- if (bfd_get_section_flags (link_info.output_bfd, osec) & SEC_EXCLUDE)
- continue;
-
- /* First find an input section so we have flags to compare with; the
- flags in the output section are not valid. */
- {
- LANG_FOR_EACH_INPUT_STATEMENT (f)
- {
- asection *isec;
-
- for (isec = f->the_bfd->sections;
- isec != NULL;
- isec = isec->next)
- {
- if (isec->output_section == osec
- && isec->size != 0
- && (bfd_get_section_flags (isec->owner, isec)
- & SEC_EXCLUDE) == 0)
- {
- oflags_isa
- = (elf_section_data (isec)->this_hdr.sh_flags
- & (SHF_SH5_ISA32 | SHF_SH5_ISA32_MIXED));
- goto break_1;
- }
- }
- }
- }
-
- break_1:
-
- /* Check that all input sections have the same contents-type flags
- as the first input section. */
- {
- LANG_FOR_EACH_INPUT_STATEMENT (f)
- {
- asection *isec;
-
- for (isec = f->the_bfd->sections;
- isec != NULL;
- isec = isec->next)
- {
- if (isec->output_section == osec
- && isec->size != 0
- && (bfd_get_section_flags (isec->owner, isec)
- & SEC_EXCLUDE) == 0)
- {
- bfd_vma iflags_isa
- = (elf_section_data (isec)->this_hdr.sh_flags
- & (SHF_SH5_ISA32 | SHF_SH5_ISA32_MIXED));
-
- /* If flags don't agree, set the target-specific data
- of the section to mark that this section needs to
- be have .cranges section entries added. Don't
- bother setting ELF section flags in output section;
- they will be cleared later and will have to be
- re-initialized before the linked file is written. */
- if (iflags_isa != oflags_isa)
- {
- oflags_isa = SHF_SH5_ISA32_MIXED;
-
- BFD_ASSERT (sh64_elf_section_data (osec)->sh64_info);
-
- sh64_elf_section_data (osec)->sh64_info->contents_flags
- = SHF_SH5_ISA32_MIXED;
- need_check_cranges = TRUE;
- goto break_2;
- }
- }
- }
- }
- }
-
- break_2:
-
- /* If there were no new ranges for this output section, we don't
- need to iterate over the input sections to check how many are
- needed. */
- if (! need_check_cranges)
- continue;
-
- /* If we found a section with differing contents type, we need more
- ranges to mark the sections that are not mixed (and already have
- .cranges descriptors). Calculate the maximum number of new
- entries here. We may merge some of them, so that number is not
- final; it can shrink. */
- {
- LANG_FOR_EACH_INPUT_STATEMENT (f)
- {
- asection *isec;
-
- for (isec = f->the_bfd->sections;
- isec != NULL;
- isec = isec->next)
- {
- if (isec->output_section == osec
- && isec->size != 0
- && (bfd_get_section_flags (isec->owner, isec)
- & SEC_EXCLUDE) == 0
- && ((elf_section_data (isec)->this_hdr.sh_flags
- & (SHF_SH5_ISA32 | SHF_SH5_ISA32_MIXED))
- != SHF_SH5_ISA32_MIXED))
- new_cranges++;
- }
- }
- }
- }
-
- if (cranges->contents != NULL)
- free (cranges->contents);
-
- BFD_ASSERT (sh64_elf_section_data (cranges)->sh64_info != NULL);
-
- /* Make sure we have .cranges in memory even if there were only
- assembler-generated .cranges. */
- cranges_growth = new_cranges * SH64_CRANGE_SIZE;
- cranges->contents = xcalloc (cranges->size + cranges_growth, 1);
- bfd_set_section_flags (cranges->owner, cranges,
- bfd_get_section_flags (cranges->owner, cranges)
- | SEC_IN_MEMORY);
-
- /* If we don't need to grow the .cranges section beyond what was in the
- input sections, we have nothing more to do here. We then only got
- here because there was a .cranges section coming from input. Zero
- out the number of generated .cranges. */
- if (new_cranges == 0)
- {
- sh64_elf_section_data (cranges)->sh64_info->cranges_growth = 0;
- return;
- }
-
- crangesp = cranges->contents + cranges->size;
-
- /* Now pass over the sections again, and make reloc orders for the new
- .cranges entries. Constants are set as we go. */
- for (osec = link_info.output_bfd->sections;
- osec != NULL;
- osec = osec->next)
- {
- struct bfd_link_order *cr_addr_order = NULL;
- enum sh64_elf_cr_type last_cr_type = CRT_NONE;
- bfd_vma last_cr_size = 0;
- bfd_vma continuation_vma = 0;
-
- /* Omit excluded or garbage-collected sections, and output sections
- which were not marked as needing further processing. */
- if ((bfd_get_section_flags (link_info.output_bfd, osec) & SEC_EXCLUDE) != 0
- || (sh64_elf_section_data (osec)->sh64_info->contents_flags
- != SHF_SH5_ISA32_MIXED))
- continue;
-
- {
- LANG_FOR_EACH_INPUT_STATEMENT (f)
- {
- asection *isec;
-
- for (isec = f->the_bfd->sections;
- isec != NULL;
- isec = isec->next)
- {
- /* Allow only sections that have (at least initially) a
- non-zero size, and are not excluded, and are not marked
- as containing mixed data, thus already having .cranges
- entries. */
- if (isec->output_section == osec
- && isec->size != 0
- && (bfd_get_section_flags (isec->owner, isec)
- & SEC_EXCLUDE) == 0
- && ((elf_section_data (isec)->this_hdr.sh_flags
- & (SHF_SH5_ISA32 | SHF_SH5_ISA32_MIXED))
- != SHF_SH5_ISA32_MIXED))
- {
- enum sh64_elf_cr_type cr_type;
- bfd_vma cr_size;
- bfd_vma isa_flags
- = (elf_section_data (isec)->this_hdr.sh_flags
- & (SHF_SH5_ISA32 | SHF_SH5_ISA32_MIXED));
-
- if (isa_flags == SHF_SH5_ISA32)
- cr_type = CRT_SH5_ISA32;
- else if ((bfd_get_section_flags (isec->owner, isec)
- & SEC_CODE) == 0)
- cr_type = CRT_DATA;
- else
- cr_type = CRT_SH5_ISA16;
-
- cr_size = isec->size;
-
- /* Sections can be empty, like .text in a file that
- only contains other sections. Ranges shouldn't be
- emitted for them. This can presumably happen after
- relaxing and is not be caught at the "raw size"
- test above. */
- if (cr_size == 0)
- continue;
-
- /* See if this is a continuation of the previous range
- for the same output section. If so, just change
- the size of the last range and continue. */
- if (cr_type == last_cr_type
- && (continuation_vma
- == osec->vma + isec->output_offset))
- {
- last_cr_size += cr_size;
- bfd_put_32 (link_info.output_bfd, last_cr_size,
- crangesp - SH64_CRANGE_SIZE
- + SH64_CRANGE_CR_SIZE_OFFSET);
-
- continuation_vma += cr_size;
- continue;
- }
-
- /* If we emit relocatable contents, we need a
- relocation for the start address. */
- if (link_info.relocatable || link_info.emitrelocations)
- {
- /* FIXME: We could perhaps use lang_add_reloc and
- friends here, but I'm not really sure that
- would leave us free to do some optimizations
- later. */
- cr_addr_order
- = bfd_new_link_order (link_info.output_bfd, cranges);
-
- if (cr_addr_order == NULL)
- {
- einfo (_("%P%F: bfd_new_link_order failed\n"));
- return;
- }
-
- cr_addr_order->type = bfd_section_reloc_link_order;
- cr_addr_order->offset
- = (cranges->output_offset
- + crangesp + SH64_CRANGE_CR_ADDR_OFFSET
- - cranges->contents);
- cr_addr_order->size = 4;
- cr_addr_order->u.reloc.p
- = xmalloc (sizeof (struct bfd_link_order_reloc));
-
- cr_addr_order->u.reloc.p->reloc = BFD_RELOC_32;
- cr_addr_order->u.reloc.p->u.section = osec;
-
- /* Since SH, unlike normal RELA-targets, uses a
- "partial inplace" REL-like relocation for this,
- we put the addend in the contents and specify 0
- for the reloc. */
- bfd_put_32 (link_info.output_bfd, isec->output_offset,
- crangesp + SH64_CRANGE_CR_ADDR_OFFSET);
- cr_addr_order->u.reloc.p->addend = 0;
- }
- else
- bfd_put_32 (link_info.output_bfd,
- osec->vma + isec->output_offset,
- crangesp + SH64_CRANGE_CR_ADDR_OFFSET);
-
- /* If we could make a reloc for cr_size we would do
- it, but we would have to have a symbol for the size
- of the _input_ section and there's no way to
- generate that. */
- bfd_put_32 (link_info.output_bfd, cr_size,
- crangesp + SH64_CRANGE_CR_SIZE_OFFSET);
-
- bfd_put_16 (link_info.output_bfd, cr_type,
- crangesp + SH64_CRANGE_CR_TYPE_OFFSET);
-
- last_cr_type = cr_type;
- last_cr_size = cr_size;
- continuation_vma
- = osec->vma + isec->output_offset + cr_size;
- crangesp += SH64_CRANGE_SIZE;
- }
- }
- }
- }
- }
-
- /* The .cranges section will have this size, no larger or smaller.
- Since relocs (if relocatable linking) will be emitted into the
- "extended" size, we must set the raw size to the total. We have to
- keep track of the number of new .cranges entries.
-
- Sorting before writing is done by sh64_elf_final_write_processing. */
-
- sh64_elf_section_data (cranges)->sh64_info->cranges_growth
- = crangesp - cranges->contents - cranges->size;
- cranges->size = crangesp - cranges->contents;
- cranges->rawsize = cranges->size;
-}
-EOF
-
-
diff --git a/ld/emultempl/solaris2.em b/ld/emultempl/solaris2.em
deleted file mode 100644
index 2c24467..0000000
--- a/ld/emultempl/solaris2.em
+++ /dev/null
@@ -1,155 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-if [ -z "$MACHINE" ]; then
- OUTPUT_ARCH=${ARCH}
-else
- OUTPUT_ARCH=${ARCH}:${MACHINE}
-fi
-fragment <<EOF
-/* This file is generated by a shell script. DO NOT EDIT! */
-
-/* Solaris 2 emulation code for ${EMULATION_NAME}
- Copyright 2010 Free Software Foundation, Inc.
- Written by Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- 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. */
-
-#define TARGET_IS_${EMULATION_NAME}
-
-/* The Solaris 2 ABI requires some global symbols to be present in the
- .dynsym table of executables and shared objects. If generating a
- versioned shared object, they must always be bound to the base version.
-
- Cf. Linker and Libraries Guide, Ch. 2, Link-Editor, Generating the Output
- File, p.63. */
-static void
-elf_solaris2_before_allocation (void)
-{
- /* Global symbols required by the Solaris 2 ABI. */
- static const char *global_syms[] = {
- "_DYNAMIC",
- "_GLOBAL_OFFSET_TABLE_",
- "_PROCEDURE_LINKAGE_TABLE_",
- "_edata",
- "_end",
- "_etext",
- NULL
- };
- const char **sym;
-
- /* Do this for both executables and shared objects. */
- if (!link_info.relocatable)
- {
- for (sym = global_syms; *sym != NULL; sym++)
- {
- struct elf_link_hash_entry *h;
-
- /* Lookup symbol. */
- h = elf_link_hash_lookup (elf_hash_table (&link_info), *sym,
- FALSE, FALSE, FALSE);
- if (h == NULL)
- continue;
-
- /* Undo the hiding done by _bfd_elf_define_linkage_sym. */
- h->forced_local = 0;
- h->other &= ~STV_HIDDEN;
-
- /* Emit it into the .dynamic section, too. */
- bfd_elf_link_record_dynamic_symbol (&link_info, h);
- }
- }
-
- /* Only do this if emitting a shared object and versioning is in place. */
- if (link_info.shared
- && (link_info.version_info != NULL
- || link_info.create_default_symver))
- {
- struct bfd_elf_version_expr *globals = NULL, *locals = NULL;
- struct bfd_elf_version_tree *basever;
- const char *soname;
-
- for (sym = global_syms; *sym != NULL; sym++)
- {
- /* Create a version pattern for this symbol. Some of them start
- off as local, others as global, so try both. */
- globals = lang_new_vers_pattern (globals, *sym, NULL, TRUE);
- locals = lang_new_vers_pattern (locals, *sym, NULL, TRUE);
- }
-
- /* New version node for those symbols. */
- basever = lang_new_vers_node (globals, locals);
-
- /* The version name matches what bfd_elf_size_dynamic_sections uses
- for the base version. */
- soname = bfd_elf_get_dt_soname (link_info.output_bfd);
- if (soname == NULL)
- soname = lbasename (bfd_get_filename (link_info.output_bfd));
-
- /* Register the node. */
- lang_register_vers_node (soname, basever, NULL);
- /* Enforce base version. The encoded vd_ndx is vernum + 1. */
- basever->vernum = 0;
- }
-
- gld${EMULATION_NAME}_before_allocation ();
-}
-
-/* The Solaris 2 ABI requires two local symbols to be emitted for every
- executable and shared object.
-
- Cf. Linker and Libraries Guide, Ch. 2, Link-Editor, Generating the Output
- File, p.63. */
-static void
-elf_solaris2_after_allocation (void)
-{
- /* Local symbols required by the Solaris 2 ABI. Already emitted by
- emulparams/solaris2.sh. */
- static const char *local_syms[] = {
- "_START_",
- "_END_",
- NULL
- };
- const char **sym;
-
- /* Do this for both executables and shared objects. */
- if (!link_info.relocatable)
- {
- for (sym = local_syms; *sym != NULL; sym++)
- {
- struct elf_link_hash_entry *h;
-
- /* Lookup symbol. */
- h = elf_link_hash_lookup (elf_hash_table (&link_info), *sym,
- FALSE, FALSE, FALSE);
- if (h == NULL)
- continue;
-
- /* Turn it local. */
- h->forced_local = 1;
- /* Type should be STT_OBJECT, not STT_NOTYPE. */
- h->type = STT_OBJECT;
- }
- }
-
- gld${EMULATION_NAME}_after_allocation ();
-}
-
-EOF
-
-LDEMUL_BEFORE_ALLOCATION=elf_solaris2_before_allocation
-LDEMUL_AFTER_ALLOCATION=elf_solaris2_after_allocation
diff --git a/ld/emultempl/spu_icache.S b/ld/emultempl/spu_icache.S
deleted file mode 100644
index 12eb7f1..0000000
--- a/ld/emultempl/spu_icache.S
+++ /dev/null
@@ -1,7 +0,0 @@
- .text
- .global __icache_br_handler
-__icache_br_handler:
- stop
- .global __icache_call_handler
-__icache_call_handler:
- stop
diff --git a/ld/emultempl/spu_icache.o_c b/ld/emultempl/spu_icache.o_c
deleted file mode 100644
index 2006fe2..0000000
--- a/ld/emultempl/spu_icache.o_c
+++ /dev/null
@@ -1,33 +0,0 @@
-0x7f,0x45,0x4c,0x46,0x01,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x00,0x00,0x28,
-0x00,0x07,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x73,0x79,
-0x6d,0x74,0x61,0x62,0x00,0x2e,0x73,0x74,0x72,0x74,0x61,0x62,0x00,0x2e,0x73,0x68,
-0x73,0x74,0x72,0x74,0x61,0x62,0x00,0x2e,0x74,0x65,0x78,0x74,0x00,0x2e,0x64,0x61,
-0x74,0x61,0x00,0x2e,0x62,0x73,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,
-0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x03,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x2c,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,
-0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x03,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xe0,0x00,0x00,0x00,0x2b,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x01,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x02,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x03,
-0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x01,
-0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x01,
-0x00,0x5f,0x5f,0x69,0x63,0x61,0x63,0x68,0x65,0x5f,0x62,0x72,0x5f,0x68,0x61,0x6e,
-0x64,0x6c,0x65,0x72,0x00,0x5f,0x5f,0x69,0x63,0x61,0x63,0x68,0x65,0x5f,0x63,0x61,
-0x6c,0x6c,0x5f,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x00,
diff --git a/ld/emultempl/spu_ovl.S b/ld/emultempl/spu_ovl.S
deleted file mode 100644
index 509397a..0000000
--- a/ld/emultempl/spu_ovl.S
+++ /dev/null
@@ -1,471 +0,0 @@
-/* Overlay manager for SPU.
-
- Copyright 2006, 2007, 2008 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. */
-
-/* MFC DMA defn's. */
-#define MFC_GET_CMD 0x40
-#define MFC_MAX_DMA_SIZE 0x4000
-#define MFC_TAG_UPDATE_ALL 2
-#define MFC_TAG_ID 0
-
-/* Register usage. */
-#define reserved1 $75
-#define parm $75
-#define tab1 reserved1
-#define tab2 reserved1
-#define vma reserved1
-#define oldvma reserved1
-#define newmask reserved1
-#define map reserved1
-
-#define reserved2 $76
-#define off1 reserved2
-#define off2 reserved2
-#define present1 reserved2
-#define present2 reserved2
-#define sz reserved2
-#define cmp reserved2
-#define add64 reserved2
-#define cgbits reserved2
-#define off3 reserved2
-#define off4 reserved2
-#define addr4 reserved2
-#define off5 reserved2
-#define tagstat reserved2
-
-#define reserved3 $77
-#define size1 reserved3
-#define size2 reserved3
-#define rv3 reserved3
-#define ealo reserved3
-#define cmd reserved3
-#define off64 reserved3
-#define tab3 reserved3
-#define tab4 reserved3
-#define tab5 reserved3
-
-#define reserved4 $78
-#define ovl reserved4
-#define rv2 reserved4
-#define rv5 reserved4
-#define cgshuf reserved4
-#define newovl reserved4
-#define irqtmp1 reserved4
-#define irqtmp2 reserved4
-
-#define reserved5 $79
-#define target reserved5
-
-#define save1 $74
-#define rv4 save1
-#define rv7 save1
-#define tagid save1
-#define maxsize save1
-#define pbyte save1
-#define pbit save1
-
-#define save2 $73
-#define cur save2
-#define rv6 save2
-#define osize save2
-#define zovl save2
-#define oldovl save2
-#define newvma save2
-
-#define save3 $72
-#define rv1 save3
-#define ea64 save3
-#define buf3 save3
-#define genwi save3
-#define newmap save3
-#define oldmask save3
-
-#define save4 $71
-#define irq_stat save4
-
- .text
- .align 4
- .type __rv_pattern, @object
- .size __rv_pattern, 16
-__rv_pattern:
- .word 0x00010203, 0x10111213, 0x80808080, 0x80808080
-
- .type __cg_pattern, @object
- .size __cg_pattern, 16
-__cg_pattern:
- .word 0x04050607, 0x80808080, 0x80808080, 0x80808080
-
- .type __ovly_current, @object
- .size __ovly_current, 16
-__ovly_current:
- .space 16
-
-/*
- * __ovly_return - stub for returning from overlay functions.
- *
- * On entry the four slots of $lr are:
- * __ovly_return, prev ovl index, caller return addr, undefined.
- *
- * Load the previous overlay and jump to the caller return address.
- * Updates __ovly_current.
- */
- .align 4
- .global __ovly_return
- .type __ovly_return, @function
-__ovly_return:
- ila tab1, _ovly_table - 16 # 0,2 0
- shlqbyi ovl, $lr, 4 # 1,4 0
-#nop
- shlqbyi target, $lr, 8 # 1,4 1
-#nop; lnop
-#nop; lnop
- shli off1, ovl, 4 # 0,4 4
-#lnop
-#nop
- hbr ovly_ret9, target # 1,15 5
-#nop; lnop
-#nop; lnop
-#nop
- lqx vma, tab1, off1 # 1,6 8
-#ifdef OVLY_IRQ_SAVE
- nop
- stqd save4, -64($sp) # 1,6 9
-#else
-#nop; lnop
-#endif
-#nop; lnop
-#nop; lnop
-#nop; lnop
-#nop; lnop
-#nop
- rotqbyi size1, vma, 4 # 1,4 14
-#nop
- stqd save3, -48($sp) # 1,6 15
-#nop
- stqd save2, -32($sp) # 1,6 16
-#nop
- stqd save1, -16($sp) # 1,6 17
- andi present1, size1, 1 # 0,2 18
- stqr ovl, __ovly_current # 1,6 18
-#nop; lnop
-#nop
- brz present1, do_load # 1,4 20
-ovly_ret9:
-#nop
- bi target # 1,4 21
-
-/*
- * __ovly_load - copy an overlay partion to local store.
- *
- * On entry $75 points to a word consisting of the overlay index in
- * the top 14 bits, and the target address in the bottom 18 bits.
- *
- * Sets up $lr to return via __ovly_return. If $lr is already set
- * to return via __ovly_return, don't change it. In that case we
- * have a tail call from one overlay function to another.
- * Updates __ovly_current.
- */
- .align 3
- .global __ovly_load
- .type __ovly_load, @function
-__ovly_load:
-#if OVL_STUB_SIZE == 8
-########
-#nop
- lqd target, 0(parm) # 1,6 -11
-#nop; lnop
-#nop; lnop
-#nop; lnop
-#nop; lnop
-#nop; lnop
-#nop
- rotqby target, target, parm # 1,4 -5
- ila tab2, _ovly_table - 16 # 0,2 -4
- stqd save3, -48($sp) # 1,6 -4
-#nop
- stqd save2, -32($sp) # 1,6 -3
-#nop
- stqd save1, -16($sp) # 1,6 -2
- rotmi ovl, target, -18 # 0,4 -1
- hbr ovly_load9, target # 1,15 -1
- ila rv1, __ovly_return # 0,2 0
-#lnop
-#nop; lnop
-#nop
- lqr cur, __ovly_current # 1,6 2
- shli off2, ovl, 4 # 0,4 3
- stqr ovl, __ovly_current # 1,6 3
- ceq rv2, $lr, rv1 # 0,2 4
- lqr rv3, __rv_pattern # 1,6 4
-#nop; lnop
-#nop; lnop
-#nop
- lqx vma, tab2, off2 # 1,6 7
-########
-#else /* OVL_STUB_SIZE == 16 */
-########
- ila tab2, _ovly_table - 16 # 0,2 0
- stqd save3, -48($sp) # 1,6 0
- ila rv1, __ovly_return # 0,2 1
- stqd save2, -32($sp) # 1,6 1
- shli off2, ovl, 4 # 0,4 2
- lqr cur, __ovly_current # 1,6 2
- nop
- stqr ovl, __ovly_current # 1,6 3
- ceq rv2, $lr, rv1 # 0,2 4
- lqr rv3, __rv_pattern # 1,6 4
-#nop
- hbr ovly_load9, target # 1,15 5
-#nop
- lqx vma, tab2, off2 # 1,6 6
-#nop
- stqd save1, -16($sp) # 1,6 7
-########
-#endif
-
-#nop; lnop
-#nop; lnop
-#nop
- shufb rv4, rv1, cur, rv3 # 1,4 10
-#nop
- fsmb rv5, rv2 # 1,4 11
-#nop
- rotqmbyi rv6, $lr, -8 # 1,4 12
-#nop
- rotqbyi size2, vma, 4 # 1,4 13
-#nop
- lqd save3, -48($sp) # 1,6 14
-#nop; lnop
- or rv7, rv4, rv6 # 0,2 16
- lqd save2, -32($sp) # 1,6 16
- andi present2, size2, 1 # 0,2 17
-#ifdef OVLY_IRQ_SAVE
- stqd save4, -64($sp) # 1,6 17
-#else
- lnop # 1,0 17
-#endif
- selb $lr, rv7, $lr, rv5 # 0,2 18
- lqd save1, -16($sp) # 1,6 18
-#nop
- brz present2, do_load # 1,4 19
-ovly_load9:
-#nop
- bi target # 1,4 20
-
-/* If we get here, we are about to load a new overlay.
- * "vma" contains the relevant entry from _ovly_table[].
- * extern struct {
- * u32 vma;
- * u32 size;
- * u32 file_offset;
- * u32 buf;
- * } _ovly_table[];
- */
- .align 3
- .global __ovly_load_event
- .type __ovly_load_event, @function
-__ovly_load_event:
-do_load:
-#ifdef OVLY_IRQ_SAVE
- ila irqtmp1, do_load10 # 0,2 -5
- rotqbyi sz, vma, 8 # 1,4 -5
-#nop
- rdch irq_stat, $SPU_RdMachStat # 1,6 -4
-#nop
- bid irqtmp1 # 1,4 -3
-do_load10:
- nop
-#else
-#nop
- rotqbyi sz, vma, 8 # 1,4 0
-#endif
- rotqbyi osize, vma, 4 # 1,4 1
-#nop
- lqa ea64, _EAR_ # 1,6 2
-#nop
- lqr cgshuf, __cg_pattern # 1,6 3
-
-/* We could predict the branch at the end of this loop by adding a few
- instructions, and there are plenty of free cycles to do so without
- impacting loop execution time. However, it doesn't make a great
- deal of sense since we need to wait for the dma to complete anyway. */
-__ovly_xfer_loop:
-#nop
- rotqmbyi off64, sz, -4 # 1,4 4
-#nop; lnop
-#nop; lnop
-#nop; lnop
- cg cgbits, ea64, off64 # 0,2 8
-#lnop
-#nop; lnop
-#nop
- shufb add64, cgbits, cgbits, cgshuf # 1,4 10
-#nop; lnop
-#nop; lnop
-#nop; lnop
- addx add64, ea64, off64 # 0,2 14
-#lnop
- ila maxsize, MFC_MAX_DMA_SIZE # 0,2 15
- lnop
- ori ea64, add64, 0 # 0,2 16
- rotqbyi ealo, add64, 4 # 1,4 16
- cgt cmp, osize, maxsize # 0,2 17
- wrch $MFC_LSA, vma # 1,6 17
-#nop; lnop
- selb sz, osize, maxsize, cmp # 0,2 19
- wrch $MFC_EAH, ea64 # 1,6 19
- ila tagid, MFC_TAG_ID # 0,2 20
- wrch $MFC_EAL, ealo # 1,6 20
- ila cmd, MFC_GET_CMD # 0,2 21
- wrch $MFC_Size, sz # 1,6 21
- sf osize, sz, osize # 0,2 22
- wrch $MFC_TagId, tagid # 1,6 22
- a vma, vma, sz # 0,2 23
- wrch $MFC_Cmd, cmd # 1,6 23
-#nop
- brnz osize, __ovly_xfer_loop # 1,4 24
-
-/* Now update our data structions while waiting for DMA to complete.
- Low bit of .size needs to be cleared on the _ovly_table entry
- corresponding to the evicted overlay, and set on the entry for the
- newly loaded overlay. Note that no overlay may in fact be evicted
- as _ovly_buf_table[] starts with all zeros. Don't zap .size entry
- for zero index! Also of course update the _ovly_buf_table entry. */
-#nop
- lqr newovl, __ovly_current # 1,6 25
-#nop; lnop
-#nop; lnop
-#nop; lnop
-#nop; lnop
-#nop; lnop
- shli off3, newovl, 4 # 0,4 31
-#lnop
- ila tab3, _ovly_table - 16 # 0,2 32
-#lnop
-#nop
- fsmbi pbyte, 0x100 # 1,4 33
-#nop; lnop
-#nop
- lqx vma, tab3, off3 # 1,6 35
-#nop; lnop
- andi pbit, pbyte, 1 # 0,2 37
- lnop
-#nop; lnop
-#nop; lnop
-#nop; lnop
- or newvma, vma, pbit # 0,2 41
- rotqbyi buf3, vma, 12 # 1,4 41
-#nop; lnop
-#nop
- stqx newvma, tab3, off3 # 1,6 43
-#nop; lnop
- shli off4, buf3, 2 # 1,4 45
-#lnop
- ila tab4, _ovly_buf_table - 4 # 0,2 46
-#lnop
-#nop; lnop
-#nop; lnop
-#nop
- lqx map, tab4, off4 # 1,6 49
-#nop
- cwx genwi, tab4, off4 # 1,4 50
- a addr4, tab4, off4 # 0,2 51
-#lnop
-#nop; lnop
-#nop; lnop
-#nop; lnop
-#nop
- rotqby oldovl, map, addr4 # 1,4 55
-#nop
- shufb newmap, newovl, map, genwi # 0,4 56
-#if MFC_TAG_ID < 16
- ila newmask, 1 << MFC_TAG_ID # 0,2 57
-#else
- ilhu newmask, 1 << (MFC_TAG_ID - 16) # 0,2 57
-#endif
-#lnop
-#nop; lnop
-#nop; lnop
- stqd newmap, 0(addr4) # 1,6 60
-
-/* Save app's tagmask, wait for DMA complete, restore mask. */
- ila tagstat, MFC_TAG_UPDATE_ALL # 0,2 61
- rdch oldmask, $MFC_RdTagMask # 1,6 61
-#nop
- wrch $MFC_WrTagMask, newmask # 1,6 62
-#nop
- wrch $MFC_WrTagUpdate, tagstat # 1,6 63
-#nop
- rdch tagstat, $MFC_RdTagStat # 1,6 64
-#nop
- sync # 1,4 65
-/* Any hint prior to the sync is lost. A hint here allows the branch
- to complete 15 cycles after the hint. With no hint the branch will
- take 18 or 19 cycles. */
- ila tab5, _ovly_table - 16 # 0,2 66
- hbr do_load99, target # 1,15 66
- shli off5, oldovl, 4 # 0,4 67
- wrch $MFC_WrTagMask, oldmask # 1,6 67
- ceqi zovl, oldovl, 0 # 0,2 68
-#lnop
-#nop; lnop
-#nop
- fsm zovl, zovl # 1,4 70
-#nop
- lqx oldvma, tab5, off5 # 1,6 71
-#nop
- lqd save3, -48($sp) # 1,6 72
-#nop; lnop
- andc pbit, pbit, zovl # 0,2 74
- lqd save2, -32($sp) # 1,6 74
-#ifdef OVLY_IRQ_SAVE
- ila irqtmp2, do_load90 # 0,2 75
-#lnop
- andi irq_stat, irq_stat, 1 # 0,2 76
-#lnop
-#else
-#nop; lnop
-#nop; lnop
-#endif
- andc oldvma, oldvma, pbit # 0,2 77
- lqd save1, -16($sp) # 1,6 77
- nop # 0,0 78
-#lnop
-#nop
- stqx oldvma, tab5, off5 # 1,6 79
-#nop
-#ifdef OVLY_IRQ_SAVE
- binze irq_stat, irqtmp2 # 1,4 80
-do_load90:
-#nop
- lqd save4, -64($sp) # 1,6 84
-#else
-#nop; lnop
-#endif
-
- .global _ovly_debug_event
- .type _ovly_debug_event, @function
-_ovly_debug_event:
- nop
-/* Branch to target address. */
-do_load99:
- bi target # 1,4 81/85
-
- .size __ovly_load, . - __ovly_load
diff --git a/ld/emultempl/spu_ovl.o_c b/ld/emultempl/spu_ovl.o_c
deleted file mode 100644
index c9eff93..0000000
--- a/ld/emultempl/spu_ovl.o_c
+++ /dev/null
@@ -1,101 +0,0 @@
-0x7f,0x45,0x4c,0x46,0x01,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x02,0x74,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x00,0x00,0x28,
-0x00,0x08,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x01,0x02,0x03,0x10,0x11,0x12,0x13,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
-0x04,0x05,0x06,0x07,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x42,0x00,0x00,0x4b,0x3f,0xe1,0x00,0x4e,0x3f,0xe2,0x00,0x4f,0x0f,0x61,0x27,0x4c,
-0x35,0x80,0x27,0x8b,0x38,0x93,0x25,0xcb,0x40,0x20,0x00,0x00,0x24,0xff,0x00,0xc7,
-0x3f,0x81,0x25,0xcd,0x24,0xff,0x40,0xc8,0x24,0xff,0x80,0xc9,0x24,0xff,0xc0,0xca,
-0x14,0x00,0x66,0xcc,0x23,0xff,0xf7,0xce,0x20,0x00,0x0e,0x4c,0x35,0x00,0x27,0x80,
-0x42,0x00,0x00,0x4b,0x24,0xff,0x40,0xc8,0x42,0x00,0x00,0x48,0x24,0xff,0x80,0xc9,
-0x0f,0x61,0x27,0x4c,0x33,0xff,0xf3,0xc9,0x40,0x20,0x00,0x00,0x23,0xff,0xf2,0xce,
-0x78,0x12,0x00,0x4e,0x33,0xff,0xed,0xcd,0x35,0x80,0x27,0x8f,0x38,0x93,0x25,0xcb,
-0x24,0xff,0xc0,0xca,0xb9,0x52,0x64,0x4d,0x36,0xc0,0x27,0x4e,0x3f,0xbe,0x00,0x49,
-0x3f,0x81,0x25,0xcd,0x34,0xff,0x40,0xc8,0x08,0x32,0x65,0x4a,0x34,0xff,0x80,0xc9,
-0x14,0x00,0x66,0xcc,0x24,0xff,0x00,0xc7,0x80,0x00,0x25,0x4e,0x34,0xff,0xc0,0xca,
-0x20,0x00,0x01,0x4c,0x35,0x00,0x27,0x80,0x42,0x00,0x00,0x4e,0x3f,0x82,0x25,0xcc,
-0x01,0xa0,0x06,0xc7,0x35,0x08,0x27,0x00,0x40,0x20,0x00,0x00,0x3f,0x81,0x25,0xc9,
-0x30,0x80,0x00,0x48,0x33,0xff,0xe3,0xce,0x3f,0xbf,0x26,0x4d,0x18,0x53,0x64,0x4c,
-0xb9,0x93,0x26,0x4e,0x68,0x13,0x64,0x4c,0x42,0x20,0x00,0x4a,0x00,0x20,0x00,0x00,
-0x04,0x00,0x26,0x48,0x3f,0x81,0x26,0x4d,0x48,0x12,0xa4,0xcc,0x21,0xa0,0x08,0x4b,
-0x89,0x92,0xa4,0xcc,0x21,0xa0,0x08,0xc8,0x42,0x00,0x00,0x4a,0x21,0xa0,0x09,0x4d,
-0x42,0x00,0x20,0x4d,0x21,0xa0,0x09,0xcc,0x08,0x12,0x66,0x49,0x21,0xa0,0x0a,0x4a,
-0x18,0x13,0x25,0xcb,0x21,0xa0,0x0a,0xcd,0x21,0x7f,0xf6,0x49,0x33,0xff,0xda,0xce,
-0x0f,0x61,0x27,0x4c,0x42,0x00,0x00,0x4d,0x32,0x80,0x80,0x4a,0x38,0x93,0x26,0xcb,
-0x14,0x00,0x65,0x4a,0x00,0x20,0x00,0x00,0x08,0x32,0xa5,0xc9,0x3f,0x83,0x25,0xc8,
-0x28,0x93,0x26,0xc9,0x0f,0x60,0xa4,0x4c,0x42,0x00,0x00,0x4d,0x38,0x93,0x26,0xcb,
-0x3a,0xd3,0x26,0xc8,0x18,0x13,0x26,0xcc,0x3b,0x93,0x25,0xc9,0xb9,0x12,0xe7,0x48,
-0x42,0x00,0x00,0xcb,0x24,0x00,0x26,0x48,0x42,0x00,0x01,0x4c,0x01,0xa0,0x06,0x48,
-0x21,0xa0,0x0b,0x4b,0x21,0xa0,0x0b,0xcc,0x01,0xa0,0x0c,0x4c,0x00,0x40,0x00,0x00,
-0x42,0x00,0x00,0x4d,0x35,0x80,0x27,0x92,0x0f,0x61,0x24,0xcc,0x21,0xa0,0x0b,0x48,
-0x7c,0x00,0x24,0xc9,0x36,0x80,0x24,0xc9,0x38,0x93,0x26,0xcb,0x34,0xff,0x40,0xc8,
-0x58,0x32,0x65,0x4a,0x34,0xff,0x80,0xc9,0x42,0x00,0x00,0x4e,0x14,0x00,0x63,0xc7,
-0x58,0x32,0xa5,0xcb,0x34,0xff,0xc0,0xca,0x40,0x20,0x00,0x00,0x28,0x93,0x26,0xcb,
-0x25,0x24,0x27,0x47,0x34,0xff,0x00,0xc7,0x40,0x20,0x00,0x00,0x35,0x00,0x27,0x80,
-0x00,0x2e,0x73,0x79,0x6d,0x74,0x61,0x62,0x00,0x2e,0x73,0x74,0x72,0x74,0x61,0x62,
-0x00,0x2e,0x73,0x68,0x73,0x74,0x72,0x74,0x61,0x62,0x00,0x2e,0x72,0x65,0x6c,0x61,
-0x2e,0x74,0x65,0x78,0x74,0x00,0x2e,0x64,0x61,0x74,0x61,0x00,0x2e,0x62,0x73,0x73,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,
-0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,
-0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x05,0xdc,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x06,
-0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x26,
-0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x03,
-0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,
-0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,
-0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xb4,0x00,0x00,0x01,0x50,0x00,0x00,0x00,0x07,
-0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x09,
-0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x04,
-0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x03,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x03,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,
-0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,
-0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x10,
-0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x62,0x00,0x00,0x01,0xfc,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6c,0x00,0x00,0x01,0xf4,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,
-0x12,0x00,0x00,0x01,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x70,0x00,0x00,0x01,0x90,
-0x12,0x00,0x00,0x01,0x00,0x00,0x00,0x9c,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x00,
-0x12,0x00,0x00,0x01,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xc4,0x00,0x00,0x01,0xf8,0x00,0x00,0x00,0x00,
-0x12,0x00,0x00,0x01,0x00,0x5f,0x5f,0x72,0x76,0x5f,0x70,0x61,0x74,0x74,0x65,0x72,
-0x6e,0x00,0x5f,0x5f,0x63,0x67,0x5f,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x00,0x5f,
-0x5f,0x6f,0x76,0x6c,0x79,0x5f,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x00,0x6f,0x76,
-0x6c,0x79,0x5f,0x72,0x65,0x74,0x39,0x00,0x64,0x6f,0x5f,0x6c,0x6f,0x61,0x64,0x00,
-0x6f,0x76,0x6c,0x79,0x5f,0x6c,0x6f,0x61,0x64,0x39,0x00,0x64,0x6f,0x5f,0x6c,0x6f,
-0x61,0x64,0x31,0x30,0x00,0x5f,0x5f,0x6f,0x76,0x6c,0x79,0x5f,0x78,0x66,0x65,0x72,
-0x5f,0x6c,0x6f,0x6f,0x70,0x00,0x64,0x6f,0x5f,0x6c,0x6f,0x61,0x64,0x39,0x39,0x00,
-0x64,0x6f,0x5f,0x6c,0x6f,0x61,0x64,0x39,0x30,0x00,0x5f,0x5f,0x6f,0x76,0x6c,0x79,
-0x5f,0x72,0x65,0x74,0x75,0x72,0x6e,0x00,0x5f,0x6f,0x76,0x6c,0x79,0x5f,0x74,0x61,
-0x62,0x6c,0x65,0x00,0x5f,0x5f,0x6f,0x76,0x6c,0x79,0x5f,0x6c,0x6f,0x61,0x64,0x00,
-0x5f,0x5f,0x6f,0x76,0x6c,0x79,0x5f,0x6c,0x6f,0x61,0x64,0x5f,0x65,0x76,0x65,0x6e,
-0x74,0x00,0x5f,0x45,0x41,0x52,0x5f,0x00,0x5f,0x6f,0x76,0x6c,0x79,0x5f,0x62,0x75,
-0x66,0x5f,0x74,0x61,0x62,0x6c,0x65,0x00,0x5f,0x6f,0x76,0x6c,0x79,0x5f,0x64,0x65,
-0x62,0x75,0x67,0x5f,0x65,0x76,0x65,0x6e,0x74,0x00,0x00,0x00,0x00,0x00,0x00,0x30,
-0x00,0x00,0x0f,0x05,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x70,0x00,0x00,0x0f,0x05,
-0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x78,0x00,0x00,0x0e,0x05,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0xd8,0x00,0x00,0x01,0x05,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xf0,
-0x00,0x00,0x12,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x54,0x00,0x00,0x0f,0x05,
-0xff,0xff,0xff,0xf0,0x00,0x00,0x01,0x78,0x00,0x00,0x13,0x05,0xff,0xff,0xff,0xfc,
-0x00,0x00,0x01,0xb0,0x00,0x00,0x0f,0x05,0xff,0xff,0xff,0xf0,0x00,0x00,0x01,0xd8,
-0x00,0x00,0x01,0x05,0x00,0x00,0x01,0xf4,
diff --git a/ld/emultempl/spuelf.em b/ld/emultempl/spuelf.em
deleted file mode 100644
index e14fa26..0000000
--- a/ld/emultempl/spuelf.em
+++ /dev/null
@@ -1,836 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012
-# 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.
-#
-
-# This file is sourced from elf32.em, and defines extra spu specific
-# features.
-#
-fragment <<EOF
-#include "ldctor.h"
-#include "elf32-spu.h"
-
-static void spu_place_special_section (asection *, asection *, const char *);
-static bfd_size_type spu_elf_load_ovl_mgr (void);
-static FILE *spu_elf_open_overlay_script (void);
-static void spu_elf_relink (void);
-
-static struct spu_elf_params params =
-{
- &spu_place_special_section,
- &spu_elf_load_ovl_mgr,
- &spu_elf_open_overlay_script,
- &spu_elf_relink,
- 0, ovly_normal, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0x3ffff,
- 1, 0, 16, 0, 0, 2000
-};
-
-static unsigned int no_overlays = 0;
-static unsigned int num_lines_set = 0;
-static unsigned int line_size_set = 0;
-static char *auto_overlay_file = 0;
-int my_argc;
-char **my_argv;
-
-static const char ovl_mgr[] = {
-EOF
-
-if ! cat ${srcdir}/emultempl/spu_ovl.o_c >> e${EMULATION_NAME}.c
-then
- echo >&2 "Missing ${srcdir}/emultempl/spu_ovl.o_c"
- echo >&2 "You must build gas/as-new with --target=spu"
- exit 1
-fi
-
-fragment <<EOF
-};
-
-static const char icache_mgr[] = {
-EOF
-
-if ! cat ${srcdir}/emultempl/spu_icache.o_c >> e${EMULATION_NAME}.c
-then
- echo >&2 "Missing ${srcdir}/emultempl/spu_icache.o_c"
- echo >&2 "You must build gas/as-new with --target=spu"
- exit 1
-fi
-
-fragment <<EOF
-};
-
-static const struct _ovl_stream ovl_mgr_stream = {
- ovl_mgr,
- ovl_mgr + sizeof (ovl_mgr)
-};
-
-static const struct _ovl_stream icache_mgr_stream = {
- icache_mgr,
- icache_mgr + sizeof (icache_mgr)
-};
-
-
-static int
-is_spu_target (void)
-{
- extern const bfd_target bfd_elf32_spu_vec;
-
- return link_info.output_bfd->xvec == &bfd_elf32_spu_vec;
-}
-
-/* Create our note section. */
-
-static void
-spu_after_open (void)
-{
- if (is_spu_target ())
- {
- /* Pass params to backend. */
- if ((params.auto_overlay & AUTO_OVERLAY) == 0)
- params.auto_overlay = 0;
- params.emit_stub_syms |= link_info.emitrelocations;
- spu_elf_setup (&link_info, &params);
-
- if (link_info.relocatable)
- lang_add_unique (".text.ia.*");
-
- if (!link_info.relocatable
- && link_info.input_bfds != NULL
- && !spu_elf_create_sections (&link_info))
- einfo ("%X%P: can not create note section: %E\n");
- }
-
- gld${EMULATION_NAME}_after_open ();
-}
-
-/* If O is NULL, add section S at the end of output section OUTPUT_NAME.
- If O is not NULL, add section S at the beginning of output section O,
- except for soft-icache which adds to the end.
-
- Really, we should be duplicating ldlang.c map_input_to_output_sections
- logic here, ie. using the linker script to find where the section
- goes. That's rather a lot of code, and we don't want to run
- map_input_to_output_sections again because most sections are already
- mapped. So cheat, and put the section in a fixed place, ignoring any
- attempt via a linker script to put .stub, .ovtab, and built-in
- overlay manager code somewhere else. */
-
-static void
-spu_place_special_section (asection *s, asection *o, const char *output_name)
-{
- lang_output_section_statement_type *os;
-
- if (o != NULL)
- output_name = o->name;
- os = lang_output_section_find (output_name);
- if (os == NULL)
- {
- os = gld${EMULATION_NAME}_place_orphan (s, output_name, 0);
- os->addr_tree = NULL;
- }
- else if (params.ovly_flavour != ovly_soft_icache
- && o != NULL && os->children.head != NULL)
- {
- lang_statement_list_type add;
-
- lang_list_init (&add);
- lang_add_section (&add, s, NULL, os);
- *add.tail = os->children.head;
- os->children.head = add.head;
- }
- else
- {
- if (params.ovly_flavour == ovly_soft_icache && o != NULL)
- {
- /* Pad this stub section so that it finishes at the
- end of the icache line. */
- etree_type *e_size;
-
- push_stat_ptr (&os->children);
- e_size = exp_intop (params.line_size - s->size);
- lang_add_assignment (exp_assign (".", e_size, FALSE));
- pop_stat_ptr ();
- }
- lang_add_section (&os->children, s, NULL, os);
- }
-
- s->output_section->size += s->size;
-}
-
-/* Load built-in overlay manager. */
-
-static bfd_size_type
-spu_elf_load_ovl_mgr (void)
-{
- struct elf_link_hash_entry *h;
- const char *ovly_mgr_entry;
- const struct _ovl_stream *mgr_stream;
- bfd_size_type total = 0;
-
- ovly_mgr_entry = "__ovly_load";
- mgr_stream = &ovl_mgr_stream;
- if (params.ovly_flavour == ovly_soft_icache)
- {
- ovly_mgr_entry = "__icache_br_handler";
- mgr_stream = &icache_mgr_stream;
- }
- h = elf_link_hash_lookup (elf_hash_table (&link_info),
- ovly_mgr_entry, FALSE, FALSE, FALSE);
-
- if (h != NULL
- && (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- && h->def_regular)
- {
- /* User supplied __ovly_load. */
- }
- else if (mgr_stream->start == mgr_stream->end)
- einfo ("%F%P: no built-in overlay manager\n");
- else
- {
- lang_input_statement_type *ovl_is;
-
- ovl_is = lang_add_input_file ("builtin ovl_mgr",
- lang_input_file_is_file_enum,
- NULL);
-
- if (!spu_elf_open_builtin_lib (&ovl_is->the_bfd, mgr_stream))
- einfo ("%X%P: can not open built-in overlay manager: %E\n");
- else
- {
- asection *in;
-
- if (!load_symbols (ovl_is, NULL))
- einfo ("%X%P: can not load built-in overlay manager: %E\n");
-
- /* Map overlay manager sections to output sections.
- First try for a matching output section name, if that
- fails then try mapping .abc.xyz to .abc, otherwise map
- to .text. */
- for (in = ovl_is->the_bfd->sections; in != NULL; in = in->next)
- if ((in->flags & (SEC_ALLOC | SEC_LOAD))
- == (SEC_ALLOC | SEC_LOAD))
- {
- const char *oname = in->name;
- if (strncmp (in->name, ".ovl.init", 9) != 0)
- {
- total += in->size;
- if (!lang_output_section_find (oname))
- {
- lang_output_section_statement_type *os = NULL;
- char *p = strchr (oname + 1, '.');
- if (p != NULL)
- {
- size_t len = p - oname;
- p = memcpy (xmalloc (len + 1), oname, len);
- p[len] = '\0';
- os = lang_output_section_find (p);
- free (p);
- }
- if (os != NULL)
- oname = os->name;
- else
- oname = ".text";
- }
- }
-
- spu_place_special_section (in, NULL, oname);
- }
- }
- }
- return total;
-}
-
-/* Go find if we need to do anything special for overlays. */
-
-static void
-spu_before_allocation (void)
-{
- if (is_spu_target ()
- && !link_info.relocatable
- && !no_overlays)
- {
- int ret;
-
- /* Size the sections. This is premature, but we need to know the
- rough layout so that overlays can be found. */
- expld.phase = lang_mark_phase_enum;
- expld.dataseg.phase = exp_dataseg_none;
- one_lang_size_sections_pass (NULL, TRUE);
-
- /* Find overlays by inspecting section vmas. */
- ret = spu_elf_find_overlays (&link_info);
- if (ret == 0)
- einfo ("%X%P: can not find overlays: %E\n");
- else if (ret == 2)
- {
- lang_output_section_statement_type *os;
-
- if (params.auto_overlay != 0)
- {
- einfo ("%P: --auto-overlay ignored with user overlay script\n");
- params.auto_overlay = 0;
- }
-
- /* Ensure alignment of overlay sections is sufficient. */
- for (os = &lang_output_section_statement.head->output_section_statement;
- os != NULL;
- os = os->next)
- if (os->bfd_section != NULL
- && spu_elf_section_data (os->bfd_section) != NULL
- && spu_elf_section_data (os->bfd_section)->u.o.ovl_index != 0)
- {
- if (os->bfd_section->alignment_power < 4)
- os->bfd_section->alignment_power = 4;
-
- /* Also ensure size rounds up. */
- os->block_value = 16;
- }
-
- ret = spu_elf_size_stubs (&link_info);
- if (ret == 0)
- einfo ("%X%P: can not size overlay stubs: %E\n");
- else if (ret == 2)
- spu_elf_load_ovl_mgr ();
-
- spu_elf_place_overlay_data (&link_info);
- }
-
- /* We must not cache anything from the preliminary sizing. */
- lang_reset_memory_regions ();
- }
-
- if (is_spu_target ()
- && !link_info.relocatable)
- spu_elf_size_sections (link_info.output_bfd, &link_info);
-
- gld${EMULATION_NAME}_before_allocation ();
-}
-
-struct tflist {
- struct tflist *next;
- char name[9];
-};
-
-static struct tflist *tmp_file_list;
-
-static void clean_tmp (void)
-{
- for (; tmp_file_list != NULL; tmp_file_list = tmp_file_list->next)
- unlink (tmp_file_list->name);
-}
-
-static int
-new_tmp_file (char **fname)
-{
- struct tflist *tf;
- int fd;
-
- if (tmp_file_list == NULL)
- atexit (clean_tmp);
- tf = xmalloc (sizeof (*tf));
- tf->next = tmp_file_list;
- tmp_file_list = tf;
- memcpy (tf->name, "ldXXXXXX", sizeof (tf->name));
- *fname = tf->name;
-#ifdef HAVE_MKSTEMP
- fd = mkstemp (*fname);
-#else
- *fname = mktemp (*fname);
- if (*fname == NULL)
- return -1;
- fd = open (*fname, O_RDWR | O_CREAT | O_EXCL, 0600);
-#endif
- return fd;
-}
-
-static FILE *
-spu_elf_open_overlay_script (void)
-{
- FILE *script = NULL;
-
- if (auto_overlay_file == NULL)
- {
- int fd = new_tmp_file (&auto_overlay_file);
- if (fd == -1)
- goto file_err;
- script = fdopen (fd, "w");
- }
- else
- script = fopen (auto_overlay_file, "w");
-
- if (script == NULL)
- {
- file_err:
- einfo ("%F%P: can not open script: %E\n");
- }
- return script;
-}
-
-#include <errno.h>
-
-static void
-spu_elf_relink (void)
-{
- const char *pex_return;
- int status;
- char **argv = xmalloc ((my_argc + 4) * sizeof (*argv));
-
- memcpy (argv, my_argv, my_argc * sizeof (*argv));
- argv[my_argc++] = "--no-auto-overlay";
- if (tmp_file_list->name == auto_overlay_file)
- argv[my_argc - 1] = concat (argv[my_argc - 1], "=",
- auto_overlay_file, (const char *) NULL);
- argv[my_argc++] = "-T";
- argv[my_argc++] = auto_overlay_file;
- argv[my_argc] = 0;
-
- pex_return = pex_one (PEX_SEARCH | PEX_LAST, (const char *) argv[0],
- (char * const *) argv, (const char *) argv[0],
- NULL, NULL, & status, & errno);
- if (pex_return != NULL)
- {
- perror (pex_return);
- _exit (127);
- }
- exit (status);
-}
-
-/* Final emulation specific call. */
-
-static void
-gld${EMULATION_NAME}_finish (void)
-{
- if (is_spu_target ())
- {
- if (params.local_store_lo < params.local_store_hi)
- {
- asection *s;
-
- s = spu_elf_check_vma (&link_info);
- if (s != NULL && !params.auto_overlay)
- einfo ("%X%P: %A exceeds local store range\n", s);
- }
- else if (params.auto_overlay)
- einfo ("%P: --auto-overlay ignored with zero local store range\n");
- }
-
- finish_default ();
-}
-
-static char *
-gld${EMULATION_NAME}_choose_target (int argc, char *argv[])
-{
- my_argc = argc;
- my_argv = argv;
- return ldemul_default_target (argc, argv);
-}
-
-EOF
-
-if grep -q 'ld_elf.*ppc.*_emulation' ldemul-list.h; then
- fragment <<EOF
-#include <errno.h>
-#include "filenames.h"
-#include "libiberty.h"
-
-static const char *
-base_name (const char *path)
-{
- const char *file = strrchr (path, '/');
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- {
- char *bslash = strrchr (path, '\\\\');
-
- if (file == NULL || (bslash != NULL && bslash > file))
- file = bslash;
- if (file == NULL
- && path[0] != '\0'
- && path[1] == ':')
- file = path + 1;
- }
-#endif
- if (file == NULL)
- file = path;
- else
- ++file;
- return file;
-}
-
-/* This function is called when building a ppc32 or ppc64 executable
- to handle embedded spu images. */
-extern bfd_boolean embedded_spu_file (lang_input_statement_type *, const char *);
-
-bfd_boolean
-embedded_spu_file (lang_input_statement_type *entry, const char *flags)
-{
- const char *cmd[6];
- const char *pex_return;
- const char *sym;
- char *handle, *p;
- char *oname;
- int fd;
- int status;
- union lang_statement_union **old_stat_tail;
- union lang_statement_union **old_file_tail;
- union lang_statement_union *new_ent;
- lang_input_statement_type *search;
-
- if (entry->the_bfd->format != bfd_object
- || strcmp (entry->the_bfd->xvec->name, "elf32-spu") != 0
- || (entry->the_bfd->tdata.elf_obj_data->elf_header->e_type != ET_EXEC
- && entry->the_bfd->tdata.elf_obj_data->elf_header->e_type != ET_DYN))
- return FALSE;
-
- /* Use the filename as the symbol marking the program handle struct. */
- sym = base_name (entry->the_bfd->filename);
-
- handle = xstrdup (sym);
- for (p = handle; *p; ++p)
- if (!(ISALNUM (*p) || *p == '$' || *p == '.'))
- *p = '_';
-
- fd = new_tmp_file (&oname);
- if (fd == -1)
- return FALSE;
- close (fd);
-
- for (search = (lang_input_statement_type *) input_file_chain.head;
- search != NULL;
- search = (lang_input_statement_type *) search->next_real_file)
- if (search->filename != NULL)
- {
- const char *infile = base_name (search->filename);
-
- if (strncmp (infile, "crtbegin", 8) == 0)
- {
- if (infile[8] == 'S')
- flags = concat (flags, " -fPIC", (const char *) NULL);
- else if (infile[8] == 'T')
- flags = concat (flags, " -fpie", (const char *) NULL);
- break;
- }
- }
-
- cmd[0] = EMBEDSPU;
- cmd[1] = flags;
- cmd[2] = handle;
- cmd[3] = entry->the_bfd->filename;
- cmd[4] = oname;
- cmd[5] = NULL;
- if (verbose)
- {
- info_msg (_("running: %s \"%s\" \"%s\" \"%s\" \"%s\"\n"),
- cmd[0], cmd[1], cmd[2], cmd[3], cmd[4]);
- fflush (stdout);
- }
-
- pex_return = pex_one (PEX_SEARCH | PEX_LAST, cmd[0], (char *const *) cmd,
- cmd[0], NULL, NULL, &status, &errno);
- if (NULL != pex_return) {
- if (strcmp ("embedspu", EMBEDSPU) != 0)
- {
- cmd[0] = "embedspu";
- pex_return = pex_one (PEX_SEARCH | PEX_LAST, cmd[0], (char *const *) cmd,
- cmd[0], NULL, NULL, &status, &errno);
- }
- if (NULL != pex_return) {
- perror (pex_return);
- _exit (127);
- }
- }
- if (status)
- return FALSE;
-
-
- old_stat_tail = stat_ptr->tail;
- old_file_tail = input_file_chain.tail;
- if (lang_add_input_file (oname, lang_input_file_is_file_enum, NULL) == NULL)
- return FALSE;
-
- /* lang_add_input_file puts the new list entry at the end of the statement
- and input file lists. Move it to just after the current entry. */
- new_ent = *old_stat_tail;
- *old_stat_tail = NULL;
- stat_ptr->tail = old_stat_tail;
- *old_file_tail = NULL;
- input_file_chain.tail = old_file_tail;
- new_ent->header.next = entry->header.next;
- entry->header.next = new_ent;
- new_ent->input_statement.next_real_file = entry->next_real_file;
- entry->next_real_file = new_ent;
-
- /* Ensure bfd sections are excluded from the output. */
- bfd_section_list_clear (entry->the_bfd);
- entry->flags.loaded = TRUE;
- return TRUE;
-}
-
-EOF
-fi
-
-# Define some shell vars to insert bits of code into the standard elf
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE='
-#define OPTION_SPU_PLUGIN 301
-#define OPTION_SPU_NO_OVERLAYS (OPTION_SPU_PLUGIN + 1)
-#define OPTION_SPU_COMPACT_STUBS (OPTION_SPU_NO_OVERLAYS + 1)
-#define OPTION_SPU_STUB_SYMS (OPTION_SPU_COMPACT_STUBS + 1)
-#define OPTION_SPU_NON_OVERLAY_STUBS (OPTION_SPU_STUB_SYMS + 1)
-#define OPTION_SPU_LOCAL_STORE (OPTION_SPU_NON_OVERLAY_STUBS + 1)
-#define OPTION_SPU_STACK_ANALYSIS (OPTION_SPU_LOCAL_STORE + 1)
-#define OPTION_SPU_STACK_SYMS (OPTION_SPU_STACK_ANALYSIS + 1)
-#define OPTION_SPU_AUTO_OVERLAY (OPTION_SPU_STACK_SYMS + 1)
-#define OPTION_SPU_AUTO_RELINK (OPTION_SPU_AUTO_OVERLAY + 1)
-#define OPTION_SPU_OVERLAY_RODATA (OPTION_SPU_AUTO_RELINK + 1)
-#define OPTION_SPU_SOFT_ICACHE (OPTION_SPU_OVERLAY_RODATA + 1)
-#define OPTION_SPU_LINE_SIZE (OPTION_SPU_SOFT_ICACHE + 1)
-#define OPTION_SPU_NUM_LINES (OPTION_SPU_LINE_SIZE + 1)
-#define OPTION_SPU_LRLIVE (OPTION_SPU_NUM_LINES + 1)
-#define OPTION_SPU_NON_IA_TEXT (OPTION_SPU_LRLIVE + 1)
-#define OPTION_SPU_FIXED_SPACE (OPTION_SPU_NON_IA_TEXT + 1)
-#define OPTION_SPU_RESERVED_SPACE (OPTION_SPU_FIXED_SPACE + 1)
-#define OPTION_SPU_EXTRA_STACK (OPTION_SPU_RESERVED_SPACE + 1)
-#define OPTION_SPU_NO_AUTO_OVERLAY (OPTION_SPU_EXTRA_STACK + 1)
-#define OPTION_SPU_EMIT_FIXUPS (OPTION_SPU_NO_AUTO_OVERLAY + 1)
-'
-
-PARSE_AND_LIST_LONGOPTS='
- { "plugin", no_argument, NULL, OPTION_SPU_PLUGIN },
- { "soft-icache", no_argument, NULL, OPTION_SPU_SOFT_ICACHE },
- { "lrlive-analysis", no_argument, NULL, OPTION_SPU_LRLIVE },
- { "num-lines", required_argument, NULL, OPTION_SPU_NUM_LINES },
- { "line-size", required_argument, NULL, OPTION_SPU_LINE_SIZE },
- { "non-ia-text", no_argument, NULL, OPTION_SPU_NON_IA_TEXT },
- { "no-overlays", no_argument, NULL, OPTION_SPU_NO_OVERLAYS },
- { "compact-stubs", no_argument, NULL, OPTION_SPU_COMPACT_STUBS },
- { "emit-stub-syms", no_argument, NULL, OPTION_SPU_STUB_SYMS },
- { "extra-overlay-stubs", no_argument, NULL, OPTION_SPU_NON_OVERLAY_STUBS },
- { "local-store", required_argument, NULL, OPTION_SPU_LOCAL_STORE },
- { "stack-analysis", no_argument, NULL, OPTION_SPU_STACK_ANALYSIS },
- { "emit-stack-syms", no_argument, NULL, OPTION_SPU_STACK_SYMS },
- { "auto-overlay", optional_argument, NULL, OPTION_SPU_AUTO_OVERLAY },
- { "auto-relink", no_argument, NULL, OPTION_SPU_AUTO_RELINK },
- { "overlay-rodata", no_argument, NULL, OPTION_SPU_OVERLAY_RODATA },
- { "num-regions", required_argument, NULL, OPTION_SPU_NUM_LINES },
- { "region-size", required_argument, NULL, OPTION_SPU_LINE_SIZE },
- { "fixed-space", required_argument, NULL, OPTION_SPU_FIXED_SPACE },
- { "reserved-space", required_argument, NULL, OPTION_SPU_RESERVED_SPACE },
- { "extra-stack-space", required_argument, NULL, OPTION_SPU_EXTRA_STACK },
- { "no-auto-overlay", optional_argument, NULL, OPTION_SPU_NO_AUTO_OVERLAY },
- { "emit-fixups", optional_argument, NULL, OPTION_SPU_EMIT_FIXUPS },
-'
-
-PARSE_AND_LIST_OPTIONS='
- fprintf (file, _("\
- --plugin Make SPU plugin.\n\
- --no-overlays No overlay handling.\n\
- --compact-stubs Use smaller and possibly slower call stubs.\n\
- --emit-stub-syms Add symbols on overlay call stubs.\n\
- --extra-overlay-stubs Add stubs on all calls out of overlay regions.\n\
- --local-store=lo:hi Valid address range.\n\
- --stack-analysis Estimate maximum stack requirement.\n\
- --emit-stack-syms Add sym giving stack needed for each func.\n\
- --auto-overlay [=filename] Create an overlay script in filename if\n\
- executable does not fit in local store.\n\
- --auto-relink Rerun linker using auto-overlay script.\n\
- --overlay-rodata Place read-only data with associated function\n\
- code in overlays.\n\
- --num-regions Number of overlay buffers (default 1).\n\
- --region-size Size of overlay buffers (default 0, auto).\n\
- --fixed-space=bytes Local store for non-overlay code and data.\n\
- --reserved-space=bytes Local store for stack and heap. If not specified\n\
- ld will estimate stack size and assume no heap.\n\
- --extra-stack-space=bytes Space for negative sp access (default 2000) if\n\
- --reserved-space not given.\n\
- --soft-icache Generate software icache overlays.\n\
- --num-lines Number of soft-icache lines (default 32).\n\
- --line-size Size of soft-icache lines (default 1k).\n\
- --non-ia-text Allow non-icache code in icache lines.\n\
- --lrlive-analysis Scan function prologue for lr liveness.\n"
- ));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
- case OPTION_SPU_PLUGIN:
- spu_elf_plugin (1);
- break;
-
- case OPTION_SPU_NO_OVERLAYS:
- no_overlays = 1;
- break;
-
- case OPTION_SPU_COMPACT_STUBS:
- params.compact_stub = 1;
- break;
-
- case OPTION_SPU_STUB_SYMS:
- params.emit_stub_syms = 1;
- break;
-
- case OPTION_SPU_NON_OVERLAY_STUBS:
- params.non_overlay_stubs = 1;
- break;
-
- case OPTION_SPU_LOCAL_STORE:
- {
- char *end;
- params.local_store_lo = strtoul (optarg, &end, 0);
- if (*end == '\'':'\'')
- {
- params.local_store_hi = strtoul (end + 1, &end, 0);
- if (*end == 0)
- break;
- }
- einfo (_("%P%F: invalid --local-store address range `%s'\''\n"), optarg);
- }
- break;
-
- case OPTION_SPU_STACK_ANALYSIS:
- params.stack_analysis = 1;
- break;
-
- case OPTION_SPU_STACK_SYMS:
- params.emit_stack_syms = 1;
- break;
-
- case OPTION_SPU_AUTO_OVERLAY:
- params.auto_overlay |= 1;
- if (optarg != NULL)
- {
- auto_overlay_file = optarg;
- break;
- }
- /* Fall thru */
-
- case OPTION_SPU_AUTO_RELINK:
- params.auto_overlay |= 2;
- break;
-
- case OPTION_SPU_OVERLAY_RODATA:
- params.auto_overlay |= 4;
- break;
-
- case OPTION_SPU_SOFT_ICACHE:
- params.ovly_flavour = ovly_soft_icache;
- /* Software i-cache stubs are always "compact". */
- params.compact_stub = 1;
- if (!num_lines_set)
- params.num_lines = 32;
- else if ((params.num_lines & -params.num_lines) != params.num_lines)
- einfo (_("%P%F: invalid --num-lines/--num-regions `%u'\''\n"),
- params.num_lines);
- if (!line_size_set)
- params.line_size = 1024;
- else if ((params.line_size & -params.line_size) != params.line_size)
- einfo (_("%P%F: invalid --line-size/--region-size `%u'\''\n"),
- params.line_size);
- break;
-
- case OPTION_SPU_LRLIVE:
- params.lrlive_analysis = 1;
- break;
-
- case OPTION_SPU_NON_IA_TEXT:
- params.non_ia_text = 1;
- break;
-
- case OPTION_SPU_NUM_LINES:
- {
- char *end;
- params.num_lines = strtoul (optarg, &end, 0);
- num_lines_set = 1;
- if (*end == 0
- && (params.ovly_flavour != ovly_soft_icache
- || (params.num_lines & -params.num_lines) == params.num_lines))
- break;
- einfo (_("%P%F: invalid --num-lines/--num-regions `%s'\''\n"), optarg);
- }
- break;
-
- case OPTION_SPU_LINE_SIZE:
- {
- char *end;
- params.line_size = strtoul (optarg, &end, 0);
- line_size_set = 1;
- if (*end == 0
- && (params.ovly_flavour != ovly_soft_icache
- || (params.line_size & -params.line_size) == params.line_size))
- break;
- einfo (_("%P%F: invalid --line-size/--region-size `%s'\''\n"), optarg);
- }
- break;
-
- case OPTION_SPU_FIXED_SPACE:
- {
- char *end;
- params.auto_overlay_fixed = strtoul (optarg, &end, 0);
- if (*end != 0)
- einfo (_("%P%F: invalid --fixed-space value `%s'\''\n"), optarg);
- }
- break;
-
- case OPTION_SPU_RESERVED_SPACE:
- {
- char *end;
- params.auto_overlay_reserved = strtoul (optarg, &end, 0);
- if (*end != 0)
- einfo (_("%P%F: invalid --reserved-space value `%s'\''\n"), optarg);
- }
- break;
-
- case OPTION_SPU_EXTRA_STACK:
- {
- char *end;
- params.extra_stack_space = strtol (optarg, &end, 0);
- if (*end != 0)
- einfo (_("%P%F: invalid --extra-stack-space value `%s'\''\n"), optarg);
- }
- break;
-
- case OPTION_SPU_NO_AUTO_OVERLAY:
- params.auto_overlay = 0;
- if (optarg != NULL)
- {
- struct tflist *tf;
- size_t len;
-
- if (tmp_file_list == NULL)
- atexit (clean_tmp);
-
- len = strlen (optarg) + 1;
- tf = xmalloc (sizeof (*tf) - sizeof (tf->name) + len);
- memcpy (tf->name, optarg, len);
- tf->next = tmp_file_list;
- tmp_file_list = tf;
- break;
- }
- break;
-
- case OPTION_SPU_EMIT_FIXUPS:
- params.emit_fixups = 1;
- break;
-'
-
-LDEMUL_AFTER_OPEN=spu_after_open
-LDEMUL_BEFORE_ALLOCATION=spu_before_allocation
-LDEMUL_FINISH=gld${EMULATION_NAME}_finish
-LDEMUL_CHOOSE_TARGET=gld${EMULATION_NAME}_choose_target
diff --git a/ld/emultempl/sunos.em b/ld/emultempl/sunos.em
deleted file mode 100644
index af11027..0000000
--- a/ld/emultempl/sunos.em
+++ /dev/null
@@ -1,1040 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-if [ -z "$MACHINE" ]; then
- OUTPUT_ARCH=${ARCH}
-else
- OUTPUT_ARCH=${ARCH}:${MACHINE}
-fi
-fragment <<EOF
-/* This file is is generated by a shell script. DO NOT EDIT! */
-
-/* SunOS emulation code for ${EMULATION_NAME}
- Copyright 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2012
- Free Software Foundation, Inc.
- Written by Steve Chamberlain <sac@cygnus.com>
- SunOS shared library support by Ian Lance Taylor <ian@cygnus.com>
-
- 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. */
-
-#define TARGET_IS_${EMULATION_NAME}
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "bfdlink.h"
-#include "libiberty.h"
-#include "safe-ctype.h"
-
-#include "ld.h"
-#include "ldmain.h"
-#include "ldmisc.h"
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-
-#ifdef HAVE_DIRENT_H
-# include <dirent.h>
-#else
-# define dirent direct
-# ifdef HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif
-# ifdef HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif
-# ifdef HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif
-
-static void gld${EMULATION_NAME}_find_so
- (lang_input_statement_type *);
-static char *gld${EMULATION_NAME}_search_dir
- (const char *, const char *, bfd_boolean *);
-static void gld${EMULATION_NAME}_check_needed
- (lang_input_statement_type *);
-static bfd_boolean gld${EMULATION_NAME}_search_needed
- (const char *, const char *);
-static bfd_boolean gld${EMULATION_NAME}_try_needed
- (const char *, const char *);
-static void gld${EMULATION_NAME}_find_assignment
- (lang_statement_union_type *);
-static void gld${EMULATION_NAME}_find_exp_assignment
- (etree_type *);
-static void gld${EMULATION_NAME}_count_need
- (lang_input_statement_type *);
-static void gld${EMULATION_NAME}_set_need
- (lang_input_statement_type *);
-
-static void
-gld${EMULATION_NAME}_before_parse (void)
-{
- ldfile_set_output_arch ("${OUTPUT_ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`);
- input_flags.dynamic = TRUE;
- config.has_shared = TRUE;
-}
-
-/* This is called after the command line arguments have been parsed,
- but before the linker script has been read. If this is a native
- linker, we add the directories in LD_LIBRARY_PATH to the search
- list. */
-
-static void
-gld${EMULATION_NAME}_set_symbols (void)
-{
-EOF
-if [ "x${host}" = "x${target}" ] ; then
- case " ${EMULATION_LIBPATH} " in
- *" ${EMULATION_NAME} "*)
-fragment <<EOF
- const char *env;
-
- env = (const char *) getenv ("LD_LIBRARY_PATH");
- if (env != NULL)
- {
- char *l;
-
- l = xstrdup (env);
- while (1)
- {
- char *c;
-
- c = strchr (l, ':');
- if (c != NULL)
- *c++ = '\0';
- if (*l != '\0')
- ldfile_add_library_path (l, FALSE);
- if (c == NULL)
- break;
- l = c;
- }
- }
-EOF
- ;;
- esac
-fi
-fragment <<EOF
-}
-
-/* Despite the name, we use this routine to search for dynamic
- libraries. On SunOS this requires a directory search. We need to
- find the .so file with the highest version number. The user may
- restrict the major version by saying, e.g., -lc.1. Also, if we
- find a .so file, we need to look for a the same file after
- replacing .so with .sa; if it exists, it will be an archive which
- provide some initializations for data symbols, and we need to
- search it after including the .so file. */
-
-static void
-gld${EMULATION_NAME}_create_output_section_statements (void)
-{
- lang_for_each_input_file (gld${EMULATION_NAME}_find_so);
-}
-
-/* Search the directory for a .so file for each library search. */
-
-static void
-gld${EMULATION_NAME}_find_so (lang_input_statement_type *inp)
-{
- search_dirs_type *search;
- char *found = NULL;
- char *alc;
- struct stat st;
-
- if (! inp->flags.search_dirs
- || ! inp->flags.maybe_archive
- || ! inp->flags.dynamic)
- return;
-
- ASSERT (CONST_STRNEQ (inp->local_sym_name, "-l"));
-
- for (search = search_head; search != NULL; search = search->next)
- {
- bfd_boolean found_static;
-
- found = gld${EMULATION_NAME}_search_dir (search->name, inp->filename,
- &found_static);
- if (found != NULL || found_static)
- break;
- }
-
- if (found == NULL)
- {
- /* We did not find a matching .so file. This isn't an error,
- since there might still be a matching .a file, which will be
- found by the usual search. */
- return;
- }
-
- /* Replace the filename with the one we have found. */
- alc = (char *) xmalloc (strlen (search->name) + strlen (found) + 2);
- sprintf (alc, "%s/%s", search->name, found);
- inp->filename = alc;
-
- /* Turn off the search_dirs_flag to prevent ldfile_open_file from
- searching for this file again. */
- inp->flags.search_dirs = FALSE;
-
- free (found);
-
- /* Now look for the same file name, but with .sa instead of .so. If
- found, add it to the list of input files. */
- alc = (char *) xmalloc (strlen (inp->filename) + 1);
- strcpy (alc, inp->filename);
- strstr (alc + strlen (search->name), ".so")[2] = 'a';
- if (stat (alc, &st) != 0)
- free (alc);
- else
- {
- lang_input_statement_type *sa;
-
- /* Add the .sa file to the statement list just before the .so
- file. This is really a hack. */
- sa = ((lang_input_statement_type *)
- xmalloc (sizeof (lang_input_statement_type)));
- *sa = *inp;
-
- inp->filename = alc;
- inp->local_sym_name = alc;
-
- inp->header.next = (lang_statement_union_type *) sa;
- inp->next_real_file = (lang_statement_union_type *) sa;
- }
-}
-
-/* Search a directory for a .so file. */
-
-static char *
-gld${EMULATION_NAME}_search_dir
- (const char *dirname, const char *filename, bfd_boolean *found_static)
-{
- int force_maj, force_min;
- const char *dot;
- unsigned int len;
- char *alc;
- char *found;
- int max_maj, max_min;
- DIR *dir;
- struct dirent *entry;
- unsigned int dirnamelen;
- char *full_path;
- int statval;
- struct stat st;
-
- *found_static = FALSE;
-
- force_maj = -1;
- force_min = -1;
- dot = strchr (filename, '.');
- if (dot == NULL)
- {
- len = strlen (filename);
- alc = NULL;
- }
- else
- {
- force_maj = atoi (dot + 1);
-
- len = dot - filename;
- alc = (char *) xmalloc (len + 1);
- strncpy (alc, filename, len);
- alc[len] = '\0';
- filename = alc;
-
- dot = strchr (dot + 1, '.');
- if (dot != NULL)
- force_min = atoi (dot + 1);
- }
-
- found = NULL;
- max_maj = max_min = 0;
-
- dir = opendir (dirname);
- if (dir == NULL)
- return NULL;
- dirnamelen = strlen (dirname);
-
- while ((entry = readdir (dir)) != NULL)
- {
- const char *s;
- int found_maj, found_min;
-
- if (! CONST_STRNEQ (entry->d_name, "lib")
- || strncmp (entry->d_name + 3, filename, len) != 0)
- continue;
-
- if (dot == NULL
- && strcmp (entry->d_name + 3 + len, ".a") == 0)
- {
- *found_static = TRUE;
- continue;
- }
-
- /* We accept libfoo.so without a version number, even though the
- native linker does not. This is more convenient for packages
- which just generate .so files for shared libraries, as on ELF
- systems. */
- if (! CONST_STRNEQ (entry->d_name + 3 + len, ".so"))
- continue;
- if (entry->d_name[6 + len] == '\0')
- ;
- else if (entry->d_name[6 + len] == '.'
- && ISDIGIT (entry->d_name[7 + len]))
- ;
- else
- continue;
-
- for (s = entry->d_name + 6 + len; *s != '\0'; s++)
- if (*s != '.' && ! ISDIGIT (*s))
- break;
- if (*s != '\0')
- continue;
-
- /* We've found a .so file. Work out the major and minor
- version numbers. */
- found_maj = 0;
- found_min = 0;
- sscanf (entry->d_name + 3 + len, ".so.%d.%d",
- &found_maj, &found_min);
-
- if ((force_maj != -1 && force_maj != found_maj)
- || (force_min != -1 && force_min != found_min))
- continue;
-
- /* Make sure the file really exists (ignore broken symlinks). */
- full_path = xmalloc (dirnamelen + 1 + strlen (entry->d_name) + 1);
- sprintf (full_path, "%s/%s", dirname, entry->d_name);
- statval = stat (full_path, &st);
- free (full_path);
- if (statval != 0)
- continue;
-
- /* We've found a match for the name we are searching for. See
- if this is the version we should use. If the major and minor
- versions match, we use the last entry in alphabetical order;
- I don't know if this is how SunOS distinguishes libc.so.1.8
- from libc.so.1.8.1, but it ought to suffice. */
- if (found == NULL
- || (found_maj > max_maj)
- || (found_maj == max_maj
- && (found_min > max_min
- || (found_min == max_min
- && strcmp (entry->d_name, found) > 0))))
- {
- if (found != NULL)
- free (found);
- found = (char *) xmalloc (strlen (entry->d_name) + 1);
- strcpy (found, entry->d_name);
- max_maj = found_maj;
- max_min = found_min;
- }
- }
-
- closedir (dir);
-
- if (alc != NULL)
- free (alc);
-
- return found;
-}
-
-/* These variables are required to pass information back and forth
- between after_open and check_needed. */
-
-static struct bfd_link_needed_list *global_needed;
-static bfd_boolean global_found;
-
-/* This is called after all the input files have been opened. */
-
-static void
-gld${EMULATION_NAME}_after_open (void)
-{
- struct bfd_link_needed_list *needed, *l;
-
- after_open_default ();
-
- /* We only need to worry about this when doing a final link. */
- if (link_info.relocatable || link_info.shared)
- return;
-
- /* Get the list of files which appear in ld_need entries in dynamic
- objects included in the link. For each such file, we want to
- track down the corresponding library, and include the symbol
- table in the link. This is what the runtime dynamic linker will
- do. Tracking the files down here permits one dynamic object to
- include another without requiring special action by the person
- doing the link. Note that the needed list can actually grow
- while we are stepping through this loop. */
- needed = bfd_sunos_get_needed_list (link_info.output_bfd, &link_info);
- for (l = needed; l != NULL; l = l->next)
- {
- struct bfd_link_needed_list *ll;
- const char *lname;
- search_dirs_type *search;
-
- lname = l->name;
-
- /* If we've already seen this file, skip it. */
- for (ll = needed; ll != l; ll = ll->next)
- if (strcmp (ll->name, lname) == 0)
- break;
- if (ll != l)
- continue;
-
- /* See if this file was included in the link explicitly. */
- global_needed = l;
- global_found = FALSE;
- lang_for_each_input_file (gld${EMULATION_NAME}_check_needed);
- if (global_found)
- continue;
-
- if (! CONST_STRNEQ (lname, "-l"))
- {
- bfd *abfd;
-
- abfd = bfd_openr (lname, bfd_get_target (link_info.output_bfd));
- if (abfd != NULL)
- {
- if (! bfd_check_format (abfd, bfd_object))
- {
- (void) bfd_close (abfd);
- abfd = NULL;
- }
- }
- if (abfd != NULL)
- {
- if ((bfd_get_file_flags (abfd) & DYNAMIC) == 0)
- {
- (void) bfd_close (abfd);
- abfd = NULL;
- }
- }
- if (abfd != NULL)
- {
- /* We've found the needed dynamic object. */
- if (! bfd_link_add_symbols (abfd, &link_info))
- einfo ("%F%B: error adding symbols: %E\n", abfd);
- }
- else
- {
- einfo ("%P: warning: %s, needed by %B, not found\n",
- lname, l->by);
- }
-
- continue;
- }
-
- lname += 2;
-
- /* We want to search for the file in the same way that the
- dynamic linker will search. That means that we want to use
- rpath_link, rpath or -L, then the environment variable
- LD_LIBRARY_PATH (native only), then (if rpath was used) the
- linker script LIB_SEARCH_DIRS. */
- if (gld${EMULATION_NAME}_search_needed (command_line.rpath_link,
- lname))
- continue;
- if (command_line.rpath != NULL)
- {
- if (gld${EMULATION_NAME}_search_needed (command_line.rpath, lname))
- continue;
- }
- else
- {
- for (search = search_head; search != NULL; search = search->next)
- if (gld${EMULATION_NAME}_try_needed (search->name, lname))
- break;
- if (search != NULL)
- continue;
- }
-EOF
-if [ "x${host}" = "x${target}" ] ; then
- case " ${EMULATION_LIBPATH} " in
- *" ${EMULATION_NAME} "*)
-fragment <<EOF
- {
- const char *lib_path;
-
- lib_path = (const char *) getenv ("LD_LIBRARY_PATH");
- if (gld${EMULATION_NAME}_search_needed (lib_path, lname))
- continue;
- }
-EOF
- ;;
- esac
-fi
-fragment <<EOF
- if (command_line.rpath != NULL)
- {
- for (search = search_head; search != NULL; search = search->next)
- {
- if (search->cmdline)
- continue;
- if (gld${EMULATION_NAME}_try_needed (search->name, lname))
- break;
- }
- if (search != NULL)
- continue;
- }
-
- einfo ("%P: warning: %s, needed by %B, not found\n",
- l->name, l->by);
- }
-}
-
-/* Search for a needed file in a path. */
-
-static bfd_boolean
-gld${EMULATION_NAME}_search_needed (const char *path, const char *name)
-{
- const char *s;
-
- if (path == NULL || *path == '\0')
- return FALSE;
- while (1)
- {
- const char *dir;
- char *dircopy;
-
- s = strchr (path, ':');
- if (s == NULL)
- {
- dircopy = NULL;
- dir = path;
- }
- else
- {
- dircopy = (char *) xmalloc (s - path + 1);
- memcpy (dircopy, path, s - path);
- dircopy[s - path] = '\0';
- dir = dircopy;
- }
-
- if (gld${EMULATION_NAME}_try_needed (dir, name))
- return TRUE;
-
- if (dircopy != NULL)
- free (dircopy);
-
- if (s == NULL)
- break;
- path = s + 1;
- }
-
- return FALSE;
-}
-
-/* This function is called for each possible directory for a needed
- dynamic object. */
-
-static bfd_boolean
-gld${EMULATION_NAME}_try_needed (const char *dir, const char *name)
-{
- char *file;
- char *alc;
- bfd_boolean ignore;
- bfd *abfd;
-
- file = gld${EMULATION_NAME}_search_dir (dir, name, &ignore);
- if (file == NULL)
- return FALSE;
-
- alc = (char *) xmalloc (strlen (dir) + strlen (file) + 2);
- sprintf (alc, "%s/%s", dir, file);
- free (file);
- abfd = bfd_openr (alc, bfd_get_target (link_info.output_bfd));
- if (abfd == NULL)
- return FALSE;
- if (! bfd_check_format (abfd, bfd_object))
- {
- (void) bfd_close (abfd);
- return FALSE;
- }
- if ((bfd_get_file_flags (abfd) & DYNAMIC) == 0)
- {
- (void) bfd_close (abfd);
- return FALSE;
- }
-
- /* We've found the needed dynamic object. */
-
- /* Add this file into the symbol table. */
- if (! bfd_link_add_symbols (abfd, &link_info))
- einfo ("%F%B: error adding symbols: %E\n", abfd);
-
- return TRUE;
-}
-
-/* See if we have already included a needed object in the link. This
- does not have to be precise, as it does no harm to include a
- dynamic object more than once. */
-
-static void
-gld${EMULATION_NAME}_check_needed (lang_input_statement_type *s)
-{
- if (s->filename == NULL)
- return;
- if (! CONST_STRNEQ (global_needed->name, "-l"))
- {
- if (strcmp (s->filename, global_needed->name) == 0)
- global_found = TRUE;
- }
- else
- {
- const char *sname, *lname;
- const char *sdot, *ldot;
- int lmaj, lmin, smaj, smin;
-
- lname = global_needed->name + 2;
-
- sname = strrchr (s->filename, '/');
- if (sname == NULL)
- sname = s->filename;
- else
- ++sname;
-
- if (! CONST_STRNEQ (sname, "lib"))
- return;
- sname += 3;
-
- ldot = strchr (lname, '.');
- if (ldot == NULL)
- ldot = lname + strlen (lname);
-
- sdot = strstr (sname, ".so.");
- if (sdot == NULL)
- return;
-
- if (sdot - sname != ldot - lname
- || strncmp (lname, sname, sdot - sname) != 0)
- return;
-
- lmaj = lmin = -1;
- sscanf (ldot, ".%d.%d", &lmaj, &lmin);
- smaj = smin = -1;
- sscanf (sdot, ".so.%d.%d", &smaj, &smin);
- if ((smaj != lmaj && smaj != -1 && lmaj != -1)
- || (smin != lmin && smin != -1 && lmin != -1))
- return;
-
- global_found = TRUE;
- }
-}
-
-/* We need to use static variables to pass information around the call
- to lang_for_each_statement. Ick. */
-
-static const char *find_assign;
-static bfd_boolean found_assign;
-
-/* We need to use static variables to pass information around the call
- to lang_for_each_input_file. Ick. */
-
-static bfd_size_type need_size;
-static bfd_size_type need_entries;
-static bfd_byte *need_contents;
-static bfd_byte *need_pinfo;
-static bfd_byte *need_pnames;
-
-/* The size of one entry in the .need section, not including the file
- name. */
-
-#define NEED_ENTRY_SIZE (16)
-
-/* This is called after the sections have been attached to output
- sections, but before any sizes or addresses have been set. */
-
-static void
-gld${EMULATION_NAME}_before_allocation (void)
-{
- struct bfd_link_hash_entry *hdyn = NULL;
- asection *sneed;
- asection *srules;
- asection *sdyn;
-
- /* The SunOS native linker creates a shared library whenever there
- are any undefined symbols in a link, unless -e is used. This is
- pretty weird, but we are compatible. */
- if (! link_info.shared && ! link_info.relocatable && ! entry_from_cmdline)
- {
- struct bfd_link_hash_entry *h;
-
- for (h = link_info.hash->undefs; h != NULL; h = h->u.undef.next)
- {
- if (h->type == bfd_link_hash_undefined
- && h->u.undef.abfd != NULL
- && (h->u.undef.abfd->flags & DYNAMIC) == 0
- && strcmp (h->root.string, "__DYNAMIC") != 0
- && strcmp (h->root.string, "__GLOBAL_OFFSET_TABLE_") != 0)
- {
- find_assign = h->root.string;
- found_assign = FALSE;
- lang_for_each_statement (gld${EMULATION_NAME}_find_assignment);
- if (! found_assign)
- {
- link_info.shared = TRUE;
- break;
- }
- }
- }
- }
-
- if (link_info.shared)
- {
- lang_output_section_statement_type *os;
-
- /* Set the .text section to start at 0x20, not 0x2020. FIXME:
- This is too magical. */
- os = lang_output_section_statement_lookup (".text", 0, TRUE);
- if (os->addr_tree == NULL)
- os->addr_tree = exp_intop (0x20);
- }
-
- /* We need to create a __DYNAMIC symbol. We don't do this in the
- linker script because we want to set the value to the start of
- the dynamic section if there is one, or to zero if there isn't
- one. We need to create the symbol before calling
- size_dynamic_sections, although we can't set the value until
- afterward. */
- if (! link_info.relocatable)
- {
- hdyn = bfd_link_hash_lookup (link_info.hash, "__DYNAMIC", TRUE, FALSE,
- FALSE);
- if (hdyn == NULL)
- einfo ("%P%F: bfd_link_hash_lookup: %E\n");
- if (! bfd_sunos_record_link_assignment (link_info.output_bfd, &link_info,
- "__DYNAMIC"))
- einfo ("%P%F: failed to record assignment to __DYNAMIC: %E\n");
- }
-
- /* If we are going to make any variable assignments, we need to let
- the backend linker know about them in case the variables are
- referred to by dynamic objects. */
- lang_for_each_statement (gld${EMULATION_NAME}_find_assignment);
-
- /* Let the backend linker work out the sizes of any sections
- required by dynamic linking. */
- if (! bfd_sunos_size_dynamic_sections (link_info.output_bfd, &link_info,
- &sdyn, &sneed, &srules))
- einfo ("%P%F: failed to set dynamic section sizes: %E\n");
-
- if (sneed != NULL)
- {
- /* Set up the .need section. See the description of the ld_need
- field in include/aout/sun4.h. */
-
- need_entries = 0;
- need_size = 0;
-
- lang_for_each_input_file (gld${EMULATION_NAME}_count_need);
-
- /* We should only have a .need section if we have at least one
- dynamic object. */
- ASSERT (need_entries != 0);
-
- sneed->size = need_size;
- sneed->contents = (bfd_byte *) xmalloc (need_size);
-
- need_contents = sneed->contents;
- need_pinfo = sneed->contents;
- need_pnames = sneed->contents + need_entries * 16;
-
- lang_for_each_input_file (gld${EMULATION_NAME}_set_need);
-
- ASSERT ((bfd_size_type) (need_pnames - sneed->contents) == need_size);
- }
-
- if (srules != NULL)
- {
- /* Set up the .rules section. This is just a PATH like string
- of the -L arguments given on the command line. We permit the
- user to specify the directories using the -rpath command line
- option. */
- if (command_line.rpath)
- {
- srules->size = strlen (command_line.rpath);
- srules->contents = (bfd_byte *) command_line.rpath;
- }
- else
- {
- unsigned int size;
- search_dirs_type *search;
-
- size = 0;
- for (search = search_head; search != NULL; search = search->next)
- if (search->cmdline)
- size += strlen (search->name) + 1;
- srules->size = size;
- if (size > 0)
- {
- char *p;
-
- srules->contents = (bfd_byte *) xmalloc (size);
- p = (char *) srules->contents;
- *p = '\0';
- for (search = search_head; search != NULL; search = search->next)
- {
- if (search->cmdline)
- {
- if (p != (char *) srules->contents)
- *p++ = ':';
- strcpy (p, search->name);
- p += strlen (p);
- }
- }
- }
- }
- }
-
- /* We must assign a value to __DYNAMIC. It should be zero if we are
- not doing a dynamic link, or the start of the .dynamic section if
- we are doing one. */
- if (! link_info.relocatable)
- {
- hdyn->type = bfd_link_hash_defined;
- hdyn->u.def.value = 0;
- if (sdyn != NULL)
- hdyn->u.def.section = sdyn;
- else
- hdyn->u.def.section = bfd_abs_section_ptr;
- }
-
- before_allocation_default ();
-}
-
-/* This is called by the before_allocation routine via
- lang_for_each_statement. It does one of two things: if the
- variable find_assign is set, it sets found_assign if it finds an
- assignment to that variable; otherwise it tells the backend linker
- about all assignment statements, in case they are assignments to
- symbols which are referred to by dynamic objects. */
-
-static void
-gld${EMULATION_NAME}_find_assignment (lang_statement_union_type *s)
-{
- if (s->header.type == lang_assignment_statement_enum
- && (find_assign == NULL || ! found_assign))
- gld${EMULATION_NAME}_find_exp_assignment (s->assignment_statement.exp);
-}
-
-/* Look through an expression for an assignment statement. */
-
-static void
-gld${EMULATION_NAME}_find_exp_assignment (etree_type *exp)
-{
- switch (exp->type.node_class)
- {
- case etree_assign:
- if (find_assign != NULL)
- {
- if (strcmp (find_assign, exp->assign.dst) == 0)
- found_assign = TRUE;
- return;
- }
-
- if (strcmp (exp->assign.dst, ".") != 0)
- {
- if (! bfd_sunos_record_link_assignment (link_info.output_bfd,
- &link_info,
- exp->assign.dst))
- einfo ("%P%F: failed to record assignment to %s: %E\n",
- exp->assign.dst);
- }
- gld${EMULATION_NAME}_find_exp_assignment (exp->assign.src);
- break;
-
- case etree_binary:
- gld${EMULATION_NAME}_find_exp_assignment (exp->binary.lhs);
- gld${EMULATION_NAME}_find_exp_assignment (exp->binary.rhs);
- break;
-
- case etree_trinary:
- gld${EMULATION_NAME}_find_exp_assignment (exp->trinary.cond);
- gld${EMULATION_NAME}_find_exp_assignment (exp->trinary.lhs);
- gld${EMULATION_NAME}_find_exp_assignment (exp->trinary.rhs);
- break;
-
- case etree_unary:
- gld${EMULATION_NAME}_find_exp_assignment (exp->unary.child);
- break;
-
- default:
- break;
- }
-}
-
-/* Work out the size of the .need section, and the number of entries.
- The backend will set the ld_need field of the dynamic linking
- information to point to the .need section. See include/aout/sun4.h
- for more information. */
-
-static void
-gld${EMULATION_NAME}_count_need (lang_input_statement_type *inp)
-{
- if (inp->the_bfd != NULL
- && (inp->the_bfd->flags & DYNAMIC) != 0)
- {
- ++need_entries;
- need_size += NEED_ENTRY_SIZE;
- if (! inp->flags.maybe_archive)
- need_size += strlen (inp->filename) + 1;
- else
- {
- ASSERT (inp->local_sym_name[0] == '-'
- && inp->local_sym_name[1] == 'l');
- need_size += strlen (inp->local_sym_name + 2) + 1;
- }
- }
-}
-
-/* Fill in the contents of the .need section. */
-
-static void
-gld${EMULATION_NAME}_set_need (lang_input_statement_type *inp)
-{
- if (inp->the_bfd != NULL
- && (inp->the_bfd->flags & DYNAMIC) != 0)
- {
- bfd_size_type c;
-
- /* To really fill in the .need section contents, we need to know
- the final file position of the section, but we don't.
- Instead, we use offsets, and rely on the BFD backend to
- finish the section up correctly. FIXME: Talk about lack of
- referential locality. */
- bfd_put_32 (link_info.output_bfd, need_pnames - need_contents,
- need_pinfo);
- if (! inp->flags.maybe_archive)
- {
- bfd_put_32 (link_info.output_bfd, (bfd_vma) 0, need_pinfo + 4);
- bfd_put_16 (link_info.output_bfd, (bfd_vma) 0, need_pinfo + 8);
- bfd_put_16 (link_info.output_bfd, (bfd_vma) 0, need_pinfo + 10);
- strcpy ((char *) need_pnames, inp->filename);
- }
- else
- {
- char *verstr;
- int maj, min;
-
- bfd_put_32 (link_info.output_bfd, (bfd_vma) 0x80000000,
- need_pinfo + 4);
- maj = 0;
- min = 0;
- verstr = strstr (inp->filename, ".so.");
- if (verstr != NULL)
- sscanf (verstr, ".so.%d.%d", &maj, &min);
- bfd_put_16 (link_info.output_bfd, (bfd_vma) maj, need_pinfo + 8);
- bfd_put_16 (link_info.output_bfd, (bfd_vma) min, need_pinfo + 10);
- strcpy ((char *) need_pnames, inp->local_sym_name + 2);
- }
-
- c = (need_pinfo - need_contents) / NEED_ENTRY_SIZE;
- if (c + 1 >= need_entries)
- bfd_put_32 (link_info.output_bfd, (bfd_vma) 0, need_pinfo + 12);
- else
- bfd_put_32 (link_info.output_bfd, (bfd_vma) (c + 1) * NEED_ENTRY_SIZE,
- need_pinfo + 12);
-
- need_pinfo += NEED_ENTRY_SIZE;
- need_pnames += strlen ((char *) need_pnames) + 1;
- }
-}
-
-static char *
-gld${EMULATION_NAME}_get_script (int *isfile)
-EOF
-
-if test -n "$COMPILE_IN"
-then
-# Scripts compiled in.
-
-# sed commands to quote an ld script as a C string.
-sc="-f stringify.sed"
-
-fragment <<EOF
-{
- *isfile = 0;
-
- if (link_info.relocatable && config.build_constructors)
- return
-EOF
-sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c
-echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c
-echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c
-echo ' ; else return' >> e${EMULATION_NAME}.c
-sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c
-echo '; }' >> e${EMULATION_NAME}.c
-
-else
-# Scripts read from the filesystem.
-
-fragment <<EOF
-{
- *isfile = 1;
-
- if (link_info.relocatable && config.build_constructors)
- return "ldscripts/${EMULATION_NAME}.xu";
- else if (link_info.relocatable)
- return "ldscripts/${EMULATION_NAME}.xr";
- else if (!config.text_read_only)
- return "ldscripts/${EMULATION_NAME}.xbn";
- else if (!config.magic_demand_paged)
- return "ldscripts/${EMULATION_NAME}.xn";
- else
- return "ldscripts/${EMULATION_NAME}.x";
-}
-EOF
-
-fi
-
-fragment <<EOF
-
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
-{
- gld${EMULATION_NAME}_before_parse,
- syslib_default,
- hll_default,
- after_parse_default,
- gld${EMULATION_NAME}_after_open,
- after_allocation_default,
- set_output_arch_default,
- ldemul_default_target,
- gld${EMULATION_NAME}_before_allocation,
- gld${EMULATION_NAME}_get_script,
- "${EMULATION_NAME}",
- "${OUTPUT_FORMAT}",
- finish_default,
- gld${EMULATION_NAME}_create_output_section_statements,
- NULL, /* open dynamic archive */
- NULL, /* place orphan */
- gld${EMULATION_NAME}_set_symbols,
- NULL, /* parse args */
- NULL, /* add_options */
- NULL, /* handle_option */
- NULL, /* unrecognized file */
- NULL, /* list options */
- NULL, /* recognized file */
- NULL, /* find_potential_libraries */
- NULL /* new_vers_pattern */
-};
-EOF
diff --git a/ld/emultempl/tic6xdsbt.em b/ld/emultempl/tic6xdsbt.em
deleted file mode 100644
index 01923b3..0000000
--- a/ld/emultempl/tic6xdsbt.em
+++ /dev/null
@@ -1,207 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2011, 2012 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.
-#
-
-# This file is sourced from elf32.em, and defines extra C6X DSBT specific
-# features.
-#
-fragment <<EOF
-#include "ldctor.h"
-#include "elf32-tic6x.h"
-
-static struct elf32_tic6x_params params =
-{
- 0, 64
-};
-
-static int merge_exidx_entries = -1;
-
-static int
-is_tic6x_target (void)
-{
- extern const bfd_target bfd_elf32_tic6x_le_vec;
- extern const bfd_target bfd_elf32_tic6x_be_vec;
- extern const bfd_target bfd_elf32_tic6x_linux_le_vec;
- extern const bfd_target bfd_elf32_tic6x_linux_be_vec;
- extern const bfd_target bfd_elf32_tic6x_elf_le_vec;
- extern const bfd_target bfd_elf32_tic6x_elf_be_vec;
-
- return (link_info.output_bfd->xvec == &bfd_elf32_tic6x_le_vec
- || link_info.output_bfd->xvec == &bfd_elf32_tic6x_be_vec
- || link_info.output_bfd->xvec == &bfd_elf32_tic6x_linux_le_vec
- || link_info.output_bfd->xvec == &bfd_elf32_tic6x_linux_be_vec
- || link_info.output_bfd->xvec == &bfd_elf32_tic6x_elf_le_vec
- || link_info.output_bfd->xvec == &bfd_elf32_tic6x_elf_be_vec);
-}
-
-/* Pass params to backend. */
-
-static void
-tic6x_after_open (void)
-{
- if (is_tic6x_target ())
- {
- if (params.dsbt_index >= params.dsbt_size)
- {
- einfo (_("%P%F: invalid --dsbt-index %d, outside DSBT size.\n"),
- params.dsbt_index);
- }
- elf32_tic6x_setup (&link_info, &params);
- }
-
- gld${EMULATION_NAME}_after_open ();
-}
-
-static int
-compare_output_sec_vma (const void *a, const void *b)
-{
- asection *asec = *(asection **) a, *bsec = *(asection **) b;
- asection *aout = asec->output_section, *bout = bsec->output_section;
- bfd_vma avma, bvma;
-
- /* If there's no output section for some reason, compare equal. */
- if (!aout || !bout)
- return 0;
-
- avma = aout->vma + asec->output_offset;
- bvma = bout->vma + bsec->output_offset;
-
- if (avma > bvma)
- return 1;
- else if (avma < bvma)
- return -1;
-
- return 0;
-}
-
-static void
-gld${EMULATION_NAME}_after_allocation (void)
-{
- int layout_changed = 0;
-
- if (!link_info.relocatable)
- {
- /* Build a sorted list of input text sections, then use that to process
- the unwind table index. */
- unsigned int list_size = 10;
- asection **sec_list = (asection **)
- xmalloc (list_size * sizeof (asection *));
- unsigned int sec_count = 0;
-
- LANG_FOR_EACH_INPUT_STATEMENT (is)
- {
- bfd *abfd = is->the_bfd;
- asection *sec;
-
- if ((abfd->flags & (EXEC_P | DYNAMIC)) != 0)
- continue;
-
- for (sec = abfd->sections; sec != NULL; sec = sec->next)
- {
- asection *out_sec = sec->output_section;
-
- if (out_sec
- && elf_section_data (sec)
- && elf_section_type (sec) == SHT_PROGBITS
- && (elf_section_flags (sec) & SHF_EXECINSTR) != 0
- && (sec->flags & SEC_EXCLUDE) == 0
- && sec->sec_info_type != SEC_INFO_TYPE_JUST_SYMS
- && out_sec != bfd_abs_section_ptr)
- {
- if (sec_count == list_size)
- {
- list_size *= 2;
- sec_list = (asection **)
- xrealloc (sec_list, list_size * sizeof (asection *));
- }
-
- sec_list[sec_count++] = sec;
- }
- }
- }
-
- qsort (sec_list, sec_count, sizeof (asection *), &compare_output_sec_vma);
-
- if (elf32_tic6x_fix_exidx_coverage (sec_list, sec_count, &link_info,
- merge_exidx_entries))
- layout_changed = 1;
-
- free (sec_list);
- }
-
- /* bfd_elf32_discard_info just plays with debugging sections,
- ie. doesn't affect any code, so we can delay resizing the
- sections. */
- if (bfd_elf_discard_info (link_info.output_bfd, & link_info))
- layout_changed = 1;
-
- gld${EMULATION_NAME}_map_segments (layout_changed);
-}
-EOF
-
-# This code gets inserted into the generic elf32.sc linker script
-# and allows us to define our own command line switches.
-PARSE_AND_LIST_PROLOGUE='
-#define OPTION_DSBT_INDEX 300
-#define OPTION_DSBT_SIZE 301
-#define OPTION_NO_MERGE_EXIDX_ENTRIES 302
-'
-
-PARSE_AND_LIST_LONGOPTS='
- {"dsbt-index", required_argument, NULL, OPTION_DSBT_INDEX},
- {"dsbt-size", required_argument, NULL, OPTION_DSBT_SIZE},
- { "no-merge-exidx-entries", no_argument, NULL, OPTION_NO_MERGE_EXIDX_ENTRIES },
-'
-
-PARSE_AND_LIST_OPTIONS='
- fprintf (file, _(" --dsbt-index <index>\n"));
- fprintf (file, _("\t\t\tUse this as the DSBT index for the output object\n"));
- fprintf (file, _(" --dsbt-size <index>\n"));
- fprintf (file, _("\t\t\tUse this as the number of entries in the DSBT table\n"));
- fprintf (file, _(" --no-merge-exidx-entries Disable merging exidx entries\n"));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
- case OPTION_DSBT_INDEX:
- {
- char *end;
- params.dsbt_index = strtol (optarg, &end, 0);
- if (*end == 0
- && params.dsbt_index >= 0 && params.dsbt_index < 0x7fff)
- break;
- einfo (_("%P%F: invalid --dsbt-index %s\n"), optarg);
- }
- break;
- case OPTION_DSBT_SIZE:
- {
- char *end;
- params.dsbt_size = strtol (optarg, &end, 0);
- if (*end == 0
- && params.dsbt_size >= 0 && params.dsbt_size < 0x7fff)
- break;
- einfo (_("%P%F: invalid --dsbt-size %s\n"), optarg);
- }
- break;
- case OPTION_NO_MERGE_EXIDX_ENTRIES:
- merge_exidx_entries = 0;
-'
-
-LDEMUL_AFTER_OPEN=tic6x_after_open
-LDEMUL_AFTER_ALLOCATION=gld${EMULATION_NAME}_after_allocation
diff --git a/ld/emultempl/ticoff.em b/ld/emultempl/ticoff.em
deleted file mode 100644
index dff1d70..0000000
--- a/ld/emultempl/ticoff.em
+++ /dev/null
@@ -1,186 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-(echo;echo;echo;echo)>e${EMULATION_NAME}.c # there, now line numbers match ;-)
-fragment <<EOF
-/* This file is part of GLD, the Gnu Linker.
- Copyright 1999, 2000, 2002, 2003, 2004, 2005, 2007
- 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. */
-
-/* For TI COFF */
-/* Need to determine load and run pages for output sections */
-
-#define TARGET_IS_${EMULATION_NAME}
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "bfdlink.h"
-#include "getopt.h"
-
-#include "ld.h"
-#include "ldmain.h"
-#include "ldmisc.h"
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-
-static int coff_version;
-
-/* TI COFF extra command line options */
-#define OPTION_COFF_FORMAT (300 + 1)
-
-static void
-gld${EMULATION_NAME}_add_options
- (int ns ATTRIBUTE_UNUSED, char **shortopts ATTRIBUTE_UNUSED, int nl,
- struct option **longopts, int nrl ATTRIBUTE_UNUSED,
- struct option **really_longopts ATTRIBUTE_UNUSED)
-{
- static const struct option xtra_long[] = {
- /* TI COFF options */
- {"format", required_argument, NULL, OPTION_COFF_FORMAT },
- {NULL, no_argument, NULL, 0}
- };
-
- *longopts = (struct option *)
- xrealloc (*longopts, nl * sizeof (struct option) + sizeof (xtra_long));
- memcpy (*longopts + nl, &xtra_long, sizeof (xtra_long));
-}
-
-static void
-gld_${EMULATION_NAME}_list_options (FILE * file)
-{
- fprintf (file, _(" --format 0|1|2 Specify which COFF version to use\n"));
-}
-
-static bfd_boolean
-gld${EMULATION_NAME}_handle_option (int optc)
-{
- switch (optc)
- {
- default:
- return FALSE;
-
- case OPTION_COFF_FORMAT:
- if ((*optarg == '0' || *optarg == '1' || *optarg == '2')
- && optarg[1] == '\0')
- {
- static char buf[] = "coffX-${OUTPUT_FORMAT_TEMPLATE}";
- coff_version = *optarg - '0';
- buf[4] = *optarg;
- lang_add_output_format (buf, NULL, NULL, 0);
- }
- else
- {
- einfo (_("%P%F: invalid COFF format version %s\n"), optarg);
- }
- break;
- }
- return FALSE;
-}
-
-static void
-gld_${EMULATION_NAME}_before_parse(void)
-{
-#ifndef TARGET_ /* I.e., if not generic. */
- ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown);
-#endif /* not TARGET_ */
-}
-
-static char *
-gld_${EMULATION_NAME}_get_script (int *isfile)
-EOF
-if test -n "$COMPILE_IN"
-then
-# Scripts compiled in.
-
-# sed commands to quote an ld script as a C string.
-sc='s/["\\]/\\&/g
-s/$/\\n\\/
-1s/^/"/
-$s/$/n"/
-'
-fragment <<EOF
-{
- *isfile = 0;
- if (link_info.relocatable && config.build_constructors)
- return `sed "$sc" ldscripts/${EMULATION_NAME}.xu`;
- else if (link_info.relocatable)
- return `sed "$sc" ldscripts/${EMULATION_NAME}.xr`;
- else if (!config.text_read_only)
- return `sed "$sc" ldscripts/${EMULATION_NAME}.xbn`;
- else if (!config.magic_demand_paged)
- return `sed "$sc" ldscripts/${EMULATION_NAME}.xn`;
- else
- return `sed "$sc" ldscripts/${EMULATION_NAME}.x`;
-}
-EOF
-
-else
-# Scripts read from the filesystem.
-
-fragment <<EOF
-{
- *isfile = 1;
-
- if (link_info.relocatable && config.build_constructors)
- return "ldscripts/${EMULATION_NAME}.xu";
- else if (link_info.relocatable)
- return "ldscripts/${EMULATION_NAME}.xr";
- else if (!config.text_read_only)
- return "ldscripts/${EMULATION_NAME}.xbn";
- else if (!config.magic_demand_paged)
- return "ldscripts/${EMULATION_NAME}.xn";
- else
- return "ldscripts/${EMULATION_NAME}.x";
-}
-EOF
-
-fi
-
-fragment <<EOF
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
-{
- gld_${EMULATION_NAME}_before_parse,
- syslib_default,
- hll_default,
- after_parse_default,
- after_open_default,
- after_allocation_default,
- set_output_arch_default,
- ldemul_default_target,
- before_allocation_default,
- gld_${EMULATION_NAME}_get_script,
- "${EMULATION_NAME}",
- "${OUTPUT_FORMAT}",
- finish_default,
- NULL, /* create output section statements */
- NULL, /* open dynamic archive */
- NULL, /* place orphan */
- NULL, /* set_symbols */
- NULL, /* parse_args */
- gld${EMULATION_NAME}_add_options,
- gld${EMULATION_NAME}_handle_option,
- NULL, /* unrecognized_file */
- gld_${EMULATION_NAME}_list_options,
- NULL, /* recognized file */
- NULL, /* find_potential_libraries */
- NULL /* new_vers_pattern */
-};
-EOF
diff --git a/ld/emultempl/vanilla.em b/ld/emultempl/vanilla.em
deleted file mode 100644
index 4a83dfd..0000000
--- a/ld/emultempl/vanilla.em
+++ /dev/null
@@ -1,87 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# It does some substitutions.
-fragment <<EOF
-/* A vanilla emulation with no defaults
- Copyright 1991, 1992, 1994, 2000, 2001, 2002, 2003, 2005, 2007, 2008
- Free Software Foundation, Inc.
- Written by Steve Chamberlain steve@cygnus.com
-
- 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. */
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "bfdlink.h"
-
-#include "ld.h"
-#include "ldmisc.h"
-#include "ldmain.h"
-
-#include "ldexp.h"
-#include "ldlang.h"
-#include "ldfile.h"
-#include "ldemul.h"
-
-static void vanilla_before_parse (void)
-{
-}
-
-static void
-vanilla_set_output_arch (void)
-{
- /* Set the output architecture and machine if possible */
- unsigned long machine = 0;
- bfd_set_arch_mach (link_info.output_bfd,
- ldfile_output_architecture, machine);
-}
-
-static char *
-vanilla_get_script (int *isfile)
-{
- *isfile = 0;
- return "";
-}
-
-struct ld_emulation_xfer_struct ld_vanilla_emulation =
-{
- vanilla_before_parse,
- syslib_default,
- hll_default,
- after_parse_default,
- after_open_default,
- after_allocation_default,
- vanilla_set_output_arch,
- ldemul_default_target,
- before_allocation_default,
- vanilla_get_script,
- "vanilla",
- "a.out-sunos-big",
- finish_default,
- NULL, /* create output section statements */
- NULL, /* open dynamic archive */
- NULL, /* place orphan */
- NULL, /* set symbols */
- NULL, /* parse args */
- NULL, /* add_options */
- NULL, /* handle_option */
- NULL, /* unrecognized file */
- NULL, /* list options */
- NULL, /* recognized file */
- NULL, /* find_potential_libraries */
- NULL /* new_vers_pattern */
-};
-EOF
diff --git a/ld/emultempl/vms.em b/ld/emultempl/vms.em
deleted file mode 100644
index 30c1a16..0000000
--- a/ld/emultempl/vms.em
+++ /dev/null
@@ -1,238 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2010, 2012
-# 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.
-#
-
-# This file is sourced from generic.em.
-
-fragment <<EOF
-#include "getopt.h"
-
-static void
-gld${EMULATION_NAME}_before_parse (void)
-{
- ldfile_set_output_arch ("${ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`);
- input_flags.dynamic = TRUE;
- config.has_shared = FALSE; /* Not yet. */
-
- /* For ia64, harmless for alpha. */
- link_info.emit_hash = FALSE;
- link_info.spare_dynamic_tags = 0;
-}
-
-/* This is called before the input files are opened. We add the
- standard library. */
-
-static void
-gld${EMULATION_NAME}_create_output_section_statements (void)
-{
- lang_add_input_file ("imagelib", lang_input_file_is_l_enum, NULL);
- lang_add_input_file ("starlet", lang_input_file_is_l_enum, NULL);
- lang_add_input_file ("sys\$public_vectors", lang_input_file_is_l_enum, NULL);
-}
-
-/* Try to open a dynamic archive. This is where we know that VMS
- shared images (dynamic libraries) have an extension of .exe. */
-
-static bfd_boolean
-gld${EMULATION_NAME}_open_dynamic_archive (const char *arch ATTRIBUTE_UNUSED,
- search_dirs_type *search,
- lang_input_statement_type *entry)
-{
- char *string;
-
- if (! entry->flags.maybe_archive)
- return FALSE;
-
- string = (char *) xmalloc (strlen (search->name)
- + strlen (entry->filename)
- + sizeof "/.exe");
-
- sprintf (string, "%s/%s.exe", search->name, entry->filename);
-
- if (! ldfile_try_open_bfd (string, entry))
- {
- free (string);
- return FALSE;
- }
-
- entry->filename = string;
-
- return TRUE;
-}
-
-static int
-gld${EMULATION_NAME}_find_potential_libraries
- (char *name, lang_input_statement_type *entry)
-{
- return ldfile_open_file_search (name, entry, "", ".olb");
-}
-
-/* Place an orphan section. We use this to put random OVR sections.
- Much borrowed from elf32.em. */
-
-static lang_output_section_statement_type *
-vms_place_orphan (asection *s,
- const char *secname ATTRIBUTE_UNUSED,
- int constraint ATTRIBUTE_UNUSED)
-{
- static struct orphan_save hold_data =
- {
- "\$DATA\$",
- SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_DATA,
- 0, 0, 0, 0
- };
-
- /* We have nothing to say for anything other than a final link or an excluded
- section. */
- if (link_info.relocatable
- || (s->flags & (SEC_EXCLUDE | SEC_LOAD)) != SEC_LOAD)
- return NULL;
-
- /* FIXME: we should place sections by VMS program section flags. */
-
- /* Only handle data sections. */
- if ((s->flags & SEC_DATA) == 0)
- return NULL;
-
- if (hold_data.os == NULL)
- hold_data.os = lang_output_section_find (hold_data.name);
-
- if (hold_data.os != NULL)
- {
- lang_add_section (&hold_data.os->children, s, NULL, hold_data.os);
- return hold_data.os;
- }
- else
- return NULL;
-}
-
-/* VMS specific options. */
-#define OPTION_IDENTIFICATION (300 + 1)
-
-static void
-gld${EMULATION_NAME}_add_options
- (int ns ATTRIBUTE_UNUSED,
- char **shortopts ATTRIBUTE_UNUSED,
- int nl,
- struct option **longopts,
- int nrl ATTRIBUTE_UNUSED,
- struct option **really_longopts ATTRIBUTE_UNUSED)
-{
- static const struct option xtra_long[] =
- {
- {"identification", required_argument, NULL, OPTION_IDENTIFICATION},
- {NULL, no_argument, NULL, 0}
- };
-
- *longopts
- = xrealloc (*longopts, nl * sizeof (struct option) + sizeof (xtra_long));
- memcpy (*longopts + nl, &xtra_long, sizeof (xtra_long));
-}
-
-static void
-gld${EMULATION_NAME}_list_options (FILE *file)
-{
- fprintf (file, _(" --identification <string> Set the identification of the output\n"));
-}
-
-static bfd_boolean
-gld${EMULATION_NAME}_handle_option (int optc)
-{
- switch (optc)
- {
- default:
- return FALSE;
-
- case OPTION_IDENTIFICATION:
- /* Currently ignored. */
- break;
- }
-
- return TRUE;
-}
-
-EOF
-
-if test "$OUTPUT_FORMAT" = "elf64-ia64-vms"; then
-
-fragment <<EOF
-#include "elf-bfd.h"
-EOF
-
-source_em ${srcdir}/emultempl/elf-generic.em
-
-fragment <<EOF
-
-/* This is called after the sections have been attached to output
- sections, but before any sizes or addresses have been set. */
-
-static void
-gld${EMULATION_NAME}_before_allocation (void)
-{
- const struct elf_backend_data *bed;
-
- if (!is_elf_hash_table (link_info.hash))
- return;
-
- bed = get_elf_backend_data (link_info.output_bfd);
-
- /* The backend must work out the sizes of all the other dynamic
- sections. */
- if (elf_hash_table (&link_info)->dynamic_sections_created
- && bed->elf_backend_size_dynamic_sections
- && ! (*bed->elf_backend_size_dynamic_sections) (link_info.output_bfd,
- &link_info))
- einfo ("%P%F: failed to set dynamic section sizes: %E\n");
-
- before_allocation_default ();
-}
-
-static void
-gld${EMULATION_NAME}_after_allocation (void)
-{
- bfd_boolean need_layout = bfd_elf_discard_info (link_info.output_bfd,
- &link_info);
- gld${EMULATION_NAME}_map_segments (need_layout);
-}
-
-static void
-gld${EMULATION_NAME}_after_parse (void)
-{
- link_info.relax_pass = 2;
- after_parse_default ();
-}
-EOF
-
-LDEMUL_BEFORE_ALLOCATION=gld"$EMULATION_NAME"_before_allocation
-LDEMUL_AFTER_ALLOCATION=gld"$EMULATION_NAME"_after_allocation
-
-LDEMUL_AFTER_PARSE=gld${EMULATION_NAME}_after_parse
-source_em ${srcdir}/emultempl/needrelax.em
-fi
-
-LDEMUL_PLACE_ORPHAN=vms_place_orphan
-LDEMUL_BEFORE_PARSE=gld"$EMULATION_NAME"_before_parse
-LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=gld"$EMULATION_NAME"_create_output_section_statements
-LDEMUL_FIND_POTENTIAL_LIBRARIES=gld"$EMULATION_NAME"_find_potential_libraries
-LDEMUL_OPEN_DYNAMIC_ARCHIVE=gld"$EMULATION_NAME"_open_dynamic_archive
-LDEMUL_ADD_OPTIONS=gld"$EMULATION_NAME"_add_options
-LDEMUL_HANDLE_OPTION=gld"$EMULATION_NAME"_handle_option
-LDEMUL_LIST_OPTIONS=gld"$EMULATION_NAME"_list_options
diff --git a/ld/emultempl/vxworks.em b/ld/emultempl/vxworks.em
deleted file mode 100644
index 7a21ac3..0000000
--- a/ld/emultempl/vxworks.em
+++ /dev/null
@@ -1,102 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2006, 2007, 2008, 2010 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 test -n "$VXWORKS_BASE_EM_FILE" ; then
- source_em "${srcdir}/emultempl/${VXWORKS_BASE_EM_FILE}.em"
-fi
-
-fragment <<EOF
-
-static int force_dynamic;
-
-static void
-vxworks_before_parse (void)
-{
- ${LDEMUL_BEFORE_PARSE-gld${EMULATION_NAME}_before_parse} ();
- config.rpath_separator = ';';
-}
-
-static void
-vxworks_after_open (void)
-{
- ${LDEMUL_AFTER_OPEN-gld${EMULATION_NAME}_after_open} ();
-
- if (force_dynamic
- && link_info.input_bfds
- && bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour
- && !_bfd_elf_link_create_dynamic_sections (link_info.input_bfds,
- &link_info))
- einfo ("%X%P: Cannot create dynamic sections %E\n");
-
- if (!force_dynamic
- && !link_info.shared
- && bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour
- && elf_hash_table (&link_info)->dynamic_sections_created)
- einfo ("%X%P: Dynamic sections created in non-dynamic link\n");
-}
-
-EOF
-
-PARSE_AND_LIST_PROLOGUE=$PARSE_AND_LIST_PROLOGUE'
-enum {
- OPTION_FORCE_DYNAMIC = 501
-};
-'
-
-PARSE_AND_LIST_LONGOPTS=$PARSE_AND_LIST_LONGOPTS'
- {"force-dynamic", no_argument, NULL, OPTION_FORCE_DYNAMIC},
-'
-
-PARSE_AND_LIST_OPTIONS=$PARSE_AND_LIST_OPTIONS'
- fprintf (file, _("\
- --force-dynamic Always create dynamic sections\n"));
-'
-
-PARSE_AND_LIST_ARGS_CASES=$PARSE_AND_LIST_ARGS_CASES'
- case OPTION_FORCE_DYNAMIC:
- force_dynamic = 1;
- break;
-'
-
-# Hook in our routines above. There are three possibilities:
-#
-# (1) VXWORKS_BASE_EM_FILE did not set the hook's LDEMUL_FOO variable.
-# We want to define LDEMUL_FOO to vxworks_foo in that case,
-#
-# (2) VXWORKS_BASE_EM_FILE set the hook's LDEMUL_FOO variable to
-# gld${EMULATION_NAME}_foo. This means that the file has
-# replaced elf32.em's default definition, so we simply #define
-# the current value of LDEMUL_FOO to vxworks_foo.
-#
-# (3) VXWORKS_BASE_EM_FILE set the hook's LDEMUL_FOO variable to
-# something other than gld${EMULATION_NAME}_foo. We handle
-# this case in the same way as (1).
-for override in before_parse after_open; do
- var="LDEMUL_`echo ${override} | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`"
- eval value=\$${var}
- if test "${value}" = "gld${EMULATION_NAME}_${override}"; then
- fragment <<EOF
-#define ${value} vxworks_${override}
-EOF
- else
- eval $var=vxworks_${override}
- fi
-done
diff --git a/ld/emultempl/xtensaelf.em b/ld/emultempl/xtensaelf.em
deleted file mode 100644
index 1e6eb07..0000000
--- a/ld/emultempl/xtensaelf.em
+++ /dev/null
@@ -1,1962 +0,0 @@
-# This shell script emits a C file. -*- C -*-
-# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
-# 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.
-#
-
-# This file is sourced from elf32.em, and defines extra xtensa-elf
-# specific routines.
-#
-fragment <<EOF
-
-#include <xtensa-config.h>
-#include "../bfd/elf-bfd.h"
-#include "../bfd/libbfd.h"
-#include "elf/xtensa.h"
-#include "bfd.h"
-
-/* Provide default values for new configuration settings. */
-#ifndef XSHAL_ABI
-#define XSHAL_ABI 0
-#endif
-
-static void xtensa_wild_group_interleave (lang_statement_union_type *);
-static void xtensa_colocate_output_literals (lang_statement_union_type *);
-static void xtensa_strip_inconsistent_linkonce_sections
- (lang_statement_list_type *);
-
-
-/* This number is irrelevant until we turn on use_literal_pages */
-static bfd_vma xtensa_page_power = 12; /* 4K pages. */
-
-/* To force a page break between literals and text, change
- xtensa_use_literal_pages to "TRUE". */
-static bfd_boolean xtensa_use_literal_pages = FALSE;
-
-#define EXTRA_VALIDATION 0
-
-
-static char *
-elf_xtensa_choose_target (int argc ATTRIBUTE_UNUSED,
- char **argv ATTRIBUTE_UNUSED)
-{
- if (XCHAL_HAVE_BE)
- return "${BIG_OUTPUT_FORMAT}";
- else
- return "${LITTLE_OUTPUT_FORMAT}";
-}
-
-
-static void
-elf_xtensa_before_parse (void)
-{
- /* Just call the default hook.... Tensilica's version of this function
- does some other work that isn't relevant here. */
- gld${EMULATION_NAME}_before_parse ();
-}
-
-
-static void
-remove_section (bfd *abfd, asection *os)
-{
- asection **spp;
- for (spp = &abfd->sections; *spp; spp = &(*spp)->next)
- if (*spp == os)
- {
- *spp = os->next;
- os->owner->section_count--;
- break;
- }
-}
-
-
-static bfd_boolean
-replace_insn_sec_with_prop_sec (bfd *abfd,
- const char *insn_sec_name,
- const char *prop_sec_name,
- char **error_message)
-{
- asection *insn_sec;
- asection *prop_sec;
- bfd_byte *prop_contents = NULL;
- bfd_byte *insn_contents = NULL;
- unsigned entry_count;
- unsigned entry;
- Elf_Internal_Shdr *rel_hdr;
- Elf_Internal_Rela *internal_relocs = NULL;
- unsigned reloc_count;
-
- *error_message = "";
- insn_sec = bfd_get_section_by_name (abfd, insn_sec_name);
- if (insn_sec == NULL)
- return TRUE;
- entry_count = insn_sec->size / 8;
-
- prop_sec = bfd_get_section_by_name (abfd, prop_sec_name);
- if (prop_sec != NULL && insn_sec != NULL)
- {
- *error_message = _("file already has property tables");
- return FALSE;
- }
-
- if (insn_sec->size != 0)
- {
- insn_contents = (bfd_byte *) bfd_malloc (insn_sec->size);
- if (insn_contents == NULL)
- {
- *error_message = _("out of memory");
- goto cleanup;
- }
- if (! bfd_get_section_contents (abfd, insn_sec, insn_contents,
- (file_ptr) 0, insn_sec->size))
- {
- *error_message = _("failed to read section contents");
- goto cleanup;
- }
- }
-
- /* Create a property table section for it. */
- prop_sec_name = strdup (prop_sec_name);
- prop_sec = bfd_make_section_with_flags
- (abfd, prop_sec_name, bfd_get_section_flags (abfd, insn_sec));
- if (prop_sec == NULL
- || ! bfd_set_section_alignment (abfd, prop_sec, 2))
- {
- *error_message = _("could not create new section");
- goto cleanup;
- }
-
- prop_sec->size = entry_count * 12;
- prop_contents = (bfd_byte *) bfd_zalloc (abfd, prop_sec->size);
- elf_section_data (prop_sec)->this_hdr.contents = prop_contents;
-
- /* The entry size and size must be set to allow the linker to compute
- the number of relocations since it does not use reloc_count. */
- rel_hdr = _bfd_elf_single_rel_hdr (prop_sec);
- rel_hdr->sh_entsize = sizeof (Elf32_External_Rela);
- rel_hdr->sh_size = _bfd_elf_single_rel_hdr (insn_sec)->sh_size;
-
- if (prop_contents == NULL && prop_sec->size != 0)
- {
- *error_message = _("could not allocate section contents");
- goto cleanup;
- }
-
- /* Read the relocations. */
- reloc_count = insn_sec->reloc_count;
- if (reloc_count != 0)
- {
- /* If there is already an internal_reloc, then save it so that the
- read_relocs function freshly allocates a copy. */
- Elf_Internal_Rela *saved_relocs = elf_section_data (insn_sec)->relocs;
-
- elf_section_data (insn_sec)->relocs = NULL;
- internal_relocs =
- _bfd_elf_link_read_relocs (abfd, insn_sec, NULL, NULL, FALSE);
- elf_section_data (insn_sec)->relocs = saved_relocs;
-
- if (internal_relocs == NULL)
- {
- *error_message = _("out of memory");
- goto cleanup;
- }
- }
-
- /* Create a relocation section for the property section. */
- if (internal_relocs != NULL)
- {
- elf_section_data (prop_sec)->relocs = internal_relocs;
- prop_sec->reloc_count = reloc_count;
- }
-
- /* Now copy each insn table entry to the prop table entry with
- appropriate flags. */
- for (entry = 0; entry < entry_count; ++entry)
- {
- unsigned value;
- unsigned flags = (XTENSA_PROP_INSN | XTENSA_PROP_NO_TRANSFORM
- | XTENSA_PROP_INSN_NO_REORDER);
- value = bfd_get_32 (abfd, insn_contents + entry * 8 + 0);
- bfd_put_32 (abfd, value, prop_contents + entry * 12 + 0);
- value = bfd_get_32 (abfd, insn_contents + entry * 8 + 4);
- bfd_put_32 (abfd, value, prop_contents + entry * 12 + 4);
- bfd_put_32 (abfd, flags, prop_contents + entry * 12 + 8);
- }
-
- /* Now copy all of the relocations. Change offsets for the
- instruction table section to offsets in the property table
- section. */
- if (internal_relocs)
- {
- unsigned i;
-
- for (i = 0; i < reloc_count; i++)
- {
- Elf_Internal_Rela *rela;
- unsigned r_offset;
-
- rela = &internal_relocs[i];
-
- /* If this relocation is to the .xt.insn section,
- change the section number and the offset. */
- r_offset = rela->r_offset;
- r_offset += 4 * (r_offset / 8);
- rela->r_offset = r_offset;
- }
- }
-
- remove_section (abfd, insn_sec);
-
- if (insn_contents)
- free (insn_contents);
-
- return TRUE;
-
- cleanup:
- if (prop_sec && prop_sec->owner)
- remove_section (abfd, prop_sec);
- if (insn_contents)
- free (insn_contents);
- if (internal_relocs)
- free (internal_relocs);
-
- return FALSE;
-}
-
-
-#define PROP_SEC_BASE_NAME ".xt.prop"
-#define INSN_SEC_BASE_NAME ".xt.insn"
-#define LINKONCE_SEC_OLD_TEXT_BASE_NAME ".gnu.linkonce.x."
-
-
-static void
-replace_instruction_table_sections (bfd *abfd, asection *sec)
-{
- char *message = "";
- const char *insn_sec_name = NULL;
- char *prop_sec_name = NULL;
- char *owned_prop_sec_name = NULL;
- const char *sec_name;
-
- sec_name = bfd_get_section_name (abfd, sec);
- if (strcmp (sec_name, INSN_SEC_BASE_NAME) == 0)
- {
- insn_sec_name = INSN_SEC_BASE_NAME;
- prop_sec_name = PROP_SEC_BASE_NAME;
- }
- else if (CONST_STRNEQ (sec_name, LINKONCE_SEC_OLD_TEXT_BASE_NAME))
- {
- insn_sec_name = sec_name;
- owned_prop_sec_name = (char *) xmalloc (strlen (sec_name) + 20);
- prop_sec_name = owned_prop_sec_name;
- strcpy (prop_sec_name, ".gnu.linkonce.prop.t.");
- strcat (prop_sec_name,
- sec_name + strlen (LINKONCE_SEC_OLD_TEXT_BASE_NAME));
- }
- if (insn_sec_name != NULL)
- {
- if (! replace_insn_sec_with_prop_sec (abfd, insn_sec_name, prop_sec_name,
- &message))
- {
- einfo (_("%P: warning: failed to convert %s table in %B (%s); subsequent disassembly may be incomplete\n"),
- insn_sec_name, abfd, message);
- }
- }
- if (owned_prop_sec_name)
- free (owned_prop_sec_name);
-}
-
-
-/* This is called after all input sections have been opened to convert
- instruction tables (.xt.insn, gnu.linkonce.x.*) tables into property
- tables (.xt.prop) before any section placement. */
-
-static void
-elf_xtensa_after_open (void)
-{
- /* First call the ELF version. */
- gld${EMULATION_NAME}_after_open ();
-
- /* Now search the input files looking for instruction table sections. */
- LANG_FOR_EACH_INPUT_STATEMENT (f)
- {
- asection *sec = f->the_bfd->sections;
- asection *next_sec;
-
- /* Do not use bfd_map_over_sections here since we are removing
- sections as we iterate. */
- while (sec != NULL)
- {
- next_sec = sec->next;
- replace_instruction_table_sections (f->the_bfd, sec);
- sec = next_sec;
- }
- }
-}
-
-
-static bfd_boolean
-xt_config_info_unpack_and_check (char *data,
- bfd_boolean *pmismatch,
- char **pmsg)
-{
- char *d, *key;
- unsigned num;
-
- *pmismatch = FALSE;
-
- d = data;
- while (*d)
- {
- key = d;
- d = strchr (d, '=');
- if (! d)
- goto error;
-
- /* Overwrite the equal sign. */
- *d++ = 0;
-
- /* Check if this is a quoted string or a number. */
- if (*d == '"')
- {
- /* No string values are currently checked by LD;
- just skip over the quotes. */
- d++;
- d = strchr (d, '"');
- if (! d)
- goto error;
- /* Overwrite the trailing quote. */
- *d++ = 0;
- }
- else
- {
- if (*d == 0)
- goto error;
- num = strtoul (d, &d, 0);
-
- if (! strcmp (key, "ABI"))
- {
- if (num != XSHAL_ABI)
- {
- *pmismatch = TRUE;
- *pmsg = "ABI does not match";
- }
- }
- else if (! strcmp (key, "USE_ABSOLUTE_LITERALS"))
- {
- if (num != XSHAL_USE_ABSOLUTE_LITERALS)
- {
- *pmismatch = TRUE;
- *pmsg = "incompatible use of the Extended L32R option";
- }
- }
- }
-
- if (*d++ != '\n')
- goto error;
- }
-
- return TRUE;
-
- error:
- return FALSE;
-}
-
-
-#define XTINFO_NAME "Xtensa_Info"
-#define XTINFO_NAMESZ 12
-#define XTINFO_TYPE 1
-
-static void
-check_xtensa_info (bfd *abfd, asection *info_sec)
-{
- char *data, *errmsg = "";
- bfd_boolean mismatch;
-
- data = xmalloc (info_sec->size);
- if (! bfd_get_section_contents (abfd, info_sec, data, 0, info_sec->size))
- einfo (_("%F%P:%B: cannot read contents of section %A\n"), abfd, info_sec);
-
- if (info_sec->size > 24
- && info_sec->size >= 24 + bfd_get_32 (abfd, data + 4)
- && bfd_get_32 (abfd, data + 0) == XTINFO_NAMESZ
- && bfd_get_32 (abfd, data + 8) == XTINFO_TYPE
- && strcmp (data + 12, XTINFO_NAME) == 0
- && xt_config_info_unpack_and_check (data + 12 + XTINFO_NAMESZ,
- &mismatch, &errmsg))
- {
- if (mismatch)
- einfo (_("%P:%B: warning: incompatible Xtensa configuration (%s)\n"),
- abfd, errmsg);
- }
- else
- einfo (_("%P:%B: warning: cannot parse .xtensa.info section\n"), abfd);
-
- free (data);
-}
-
-
-/* This is called after the sections have been attached to output
- sections, but before any sizes or addresses have been set. */
-
-static void
-elf_xtensa_before_allocation (void)
-{
- asection *info_sec, *first_info_sec;
- bfd *first_bfd;
- bfd_boolean is_big_endian = XCHAL_HAVE_BE;
-
- /* Check that the output endianness matches the Xtensa
- configuration. The BFD library always includes both big and
- little endian target vectors for Xtensa, but it only supports the
- detailed instruction encode/decode operations (such as are
- required to process relocations) for the selected Xtensa
- configuration. */
-
- if (is_big_endian
- && link_info.output_bfd->xvec->byteorder == BFD_ENDIAN_LITTLE)
- {
- einfo (_("%F%P: little endian output does not match "
- "Xtensa configuration\n"));
- }
- if (!is_big_endian
- && link_info.output_bfd->xvec->byteorder == BFD_ENDIAN_BIG)
- {
- einfo (_("%F%P: big endian output does not match "
- "Xtensa configuration\n"));
- }
-
- /* Keep track of the first input .xtensa.info section, and as a fallback,
- the first input bfd where a .xtensa.info section could be created.
- After the input .xtensa.info has been checked, the contents of the
- first one will be replaced with the output .xtensa.info table. */
- first_info_sec = 0;
- first_bfd = 0;
-
- LANG_FOR_EACH_INPUT_STATEMENT (f)
- {
- /* Check that the endianness for each input file matches the output.
- The merge_private_bfd_data hook has already reported any mismatches
- as errors, but those errors are not fatal. At this point, we
- cannot go any further if there are any mismatches. */
- if ((is_big_endian && f->the_bfd->xvec->byteorder == BFD_ENDIAN_LITTLE)
- || (!is_big_endian && f->the_bfd->xvec->byteorder == BFD_ENDIAN_BIG))
- einfo (_("%F%P: cross-endian linking for %B not supported\n"),
- f->the_bfd);
-
- if (! first_bfd)
- first_bfd = f->the_bfd;
-
- info_sec = bfd_get_section_by_name (f->the_bfd, ".xtensa.info");
- if (! info_sec)
- continue;
-
- if (! first_info_sec)
- first_info_sec = info_sec;
-
- /* Unpack the .xtensa.info section and check it against the current
- Xtensa configuration. */
- check_xtensa_info (f->the_bfd, info_sec);
-
- /* Do not include this copy of .xtensa.info in the output. */
- info_sec->size = 0;
- info_sec->flags |= SEC_EXCLUDE;
- }
-
- /* Reuse the first .xtensa.info input section to hold the output
- .xtensa.info; or, if none were found, create a new section in the
- first input bfd (assuming there is one). */
- info_sec = first_info_sec;
- if (! info_sec && first_bfd)
- {
- info_sec = bfd_make_section_with_flags (first_bfd, ".xtensa.info",
- SEC_HAS_CONTENTS | SEC_READONLY);
- if (! info_sec)
- einfo (_("%F%P: failed to create .xtensa.info section\n"));
- }
- if (info_sec)
- {
- int xtensa_info_size;
- char *data;
-
- info_sec->flags &= ~SEC_EXCLUDE;
- info_sec->flags |= SEC_IN_MEMORY;
-
- data = xmalloc (100);
- sprintf (data, "USE_ABSOLUTE_LITERALS=%d\nABI=%d\n",
- XSHAL_USE_ABSOLUTE_LITERALS, XSHAL_ABI);
- xtensa_info_size = strlen (data) + 1;
-
- /* Add enough null terminators to pad to a word boundary. */
- do
- data[xtensa_info_size++] = 0;
- while ((xtensa_info_size & 3) != 0);
-
- info_sec->size = 12 + XTINFO_NAMESZ + xtensa_info_size;
- info_sec->contents = xmalloc (info_sec->size);
- bfd_put_32 (info_sec->owner, XTINFO_NAMESZ, info_sec->contents + 0);
- bfd_put_32 (info_sec->owner, xtensa_info_size, info_sec->contents + 4);
- bfd_put_32 (info_sec->owner, XTINFO_TYPE, info_sec->contents + 8);
- memcpy (info_sec->contents + 12, XTINFO_NAME, XTINFO_NAMESZ);
- memcpy (info_sec->contents + 12 + XTINFO_NAMESZ, data, xtensa_info_size);
- free (data);
- }
-
- /* Enable relaxation by default if the "--no-relax" option was not
- specified. This is done here instead of in the before_parse hook
- because there is a check in main() to prohibit use of --relax and
- -r together and that combination should be allowed for Xtensa. */
- if (RELAXATION_DISABLED_BY_DEFAULT)
- ENABLE_RELAXATION;
-
- xtensa_strip_inconsistent_linkonce_sections (stat_ptr);
-
- gld${EMULATION_NAME}_before_allocation ();
-
- xtensa_wild_group_interleave (stat_ptr->head);
-
- if (RELAXATION_ENABLED)
- xtensa_colocate_output_literals (stat_ptr->head);
-
- /* TBD: We need to force the page alignments to here and only do
- them as needed for the entire output section. Finally, if this
- is a relocatable link then we need to add alignment notes so
- that the literals can be separated later. */
-}
-
-
-typedef struct wildcard_list section_name_list;
-
-typedef struct reloc_deps_e_t reloc_deps_e;
-typedef struct reloc_deps_section_t reloc_deps_section;
-typedef struct reloc_deps_graph_t reloc_deps_graph;
-
-
-struct reloc_deps_e_t
-{
- asection *src; /* Contains l32rs. */
- asection *tgt; /* Contains literals. */
- reloc_deps_e *next;
-};
-
-/* Place these in the userdata field. */
-struct reloc_deps_section_t
-{
- reloc_deps_e *preds;
- reloc_deps_e *succs;
- bfd_boolean is_only_literal;
-};
-
-
-struct reloc_deps_graph_t
-{
- size_t count;
- size_t size;
- asection **sections;
-};
-
-static void xtensa_layout_wild
- (const reloc_deps_graph *, lang_wild_statement_type *);
-
-typedef void (*deps_callback_t) (asection *, /* src_sec */
- bfd_vma, /* src_offset */
- asection *, /* target_sec */
- bfd_vma, /* target_offset */
- void *); /* closure */
-
-extern bfd_boolean xtensa_callback_required_dependence
- (bfd *, asection *, struct bfd_link_info *, deps_callback_t, void *);
-static void xtensa_ldlang_clear_addresses (lang_statement_union_type *);
-static bfd_boolean ld_local_file_relocations_fit
- (lang_statement_union_type *, const reloc_deps_graph *);
-static bfd_vma ld_assign_relative_paged_dot
- (bfd_vma, lang_statement_union_type *, const reloc_deps_graph *,
- bfd_boolean);
-static bfd_vma ld_xtensa_insert_page_offsets
- (bfd_vma, lang_statement_union_type *, reloc_deps_graph *, bfd_boolean);
-#if EXTRA_VALIDATION
-static size_t ld_count_children (lang_statement_union_type *);
-#endif
-
-extern lang_statement_list_type constructor_list;
-
-static reloc_deps_section *
-xtensa_get_section_deps (const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
- asection *sec)
-{
- /* We have a separate function for this so that
- we could in the future keep a completely independent
- structure that maps a section to its dependence edges.
- For now, we place these in the sec->userdata field. */
- reloc_deps_section *sec_deps = sec->userdata;
- return sec_deps;
-}
-
-static void
-xtensa_set_section_deps (const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
- asection *sec,
- reloc_deps_section *deps_section)
-{
- sec->userdata = deps_section;
-}
-
-
-/* This is used to keep a list of all of the sections participating in
- the graph so we can clean them up quickly. */
-
-static void
-xtensa_append_section_deps (reloc_deps_graph *deps, asection *sec)
-{
- if (deps->size <= deps->count)
- {
- asection **new_sections;
- size_t i;
- size_t new_size;
-
- new_size = deps->size * 2;
- if (new_size == 0)
- new_size = 20;
-
- new_sections = xmalloc (sizeof (asection *) * new_size);
- memset (new_sections, 0, sizeof (asection *) * new_size);
- for (i = 0; i < deps->count; i++)
- {
- new_sections[i] = deps->sections[i];
- }
- if (deps->sections != NULL)
- free (deps->sections);
- deps->sections = new_sections;
- deps->size = new_size;
- }
- deps->sections[deps->count] = sec;
- deps->count++;
-}
-
-
-static void
-free_reloc_deps_graph (reloc_deps_graph *deps)
-{
- size_t i;
- for (i = 0; i < deps->count; i++)
- {
- asection *sec = deps->sections[i];
- reloc_deps_section *sec_deps;
- sec_deps = xtensa_get_section_deps (deps, sec);
- if (sec_deps)
- {
- reloc_deps_e *next;
- while (sec_deps->succs != NULL)
- {
- next = sec_deps->succs->next;
- free (sec_deps->succs);
- sec_deps->succs = next;
- }
-
- while (sec_deps->preds != NULL)
- {
- next = sec_deps->preds->next;
- free (sec_deps->preds);
- sec_deps->preds = next;
- }
- free (sec_deps);
- }
- xtensa_set_section_deps (deps, sec, NULL);
- }
- if (deps->sections)
- free (deps->sections);
-
- free (deps);
-}
-
-
-static bfd_boolean
-section_is_source (const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
- lang_statement_union_type *s)
-{
- asection *sec;
- const reloc_deps_section *sec_deps;
-
- if (s->header.type != lang_input_section_enum)
- return FALSE;
- sec = s->input_section.section;
-
- sec_deps = xtensa_get_section_deps (deps, sec);
- return sec_deps && sec_deps->succs != NULL;
-}
-
-
-static bfd_boolean
-section_is_target (const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
- lang_statement_union_type *s)
-{
- asection *sec;
- const reloc_deps_section *sec_deps;
-
- if (s->header.type != lang_input_section_enum)
- return FALSE;
- sec = s->input_section.section;
-
- sec_deps = xtensa_get_section_deps (deps, sec);
- return sec_deps && sec_deps->preds != NULL;
-}
-
-
-static bfd_boolean
-section_is_source_or_target (const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
- lang_statement_union_type *s)
-{
- return (section_is_source (deps, s)
- || section_is_target (deps, s));
-}
-
-
-typedef struct xtensa_ld_iter_stack_t xtensa_ld_iter_stack;
-typedef struct xtensa_ld_iter_t xtensa_ld_iter;
-
-struct xtensa_ld_iter_t
-{
- lang_statement_union_type *parent; /* Parent of the list. */
- lang_statement_list_type *l; /* List that holds it. */
- lang_statement_union_type **loc; /* Place in the list. */
-};
-
-struct xtensa_ld_iter_stack_t
-{
- xtensa_ld_iter iterloc; /* List that hold it. */
-
- xtensa_ld_iter_stack *next; /* Next in the stack. */
- xtensa_ld_iter_stack *prev; /* Back pointer for stack. */
-};
-
-
-static void
-ld_xtensa_move_section_after (xtensa_ld_iter *to, xtensa_ld_iter *current)
-{
- lang_statement_union_type *to_next;
- lang_statement_union_type *current_next;
- lang_statement_union_type **e;
-
-#if EXTRA_VALIDATION
- size_t old_to_count, new_to_count;
- size_t old_current_count, new_current_count;
-#endif
-
- if (to == current)
- return;
-
-#if EXTRA_VALIDATION
- old_to_count = ld_count_children (to->parent);
- old_current_count = ld_count_children (current->parent);
-#endif
-
- to_next = *(to->loc);
- current_next = (*current->loc)->header.next;
-
- *(to->loc) = *(current->loc);
-
- *(current->loc) = current_next;
- (*(to->loc))->header.next = to_next;
-
- /* reset "to" list tail */
- for (e = &to->l->head; *e != NULL; e = &(*e)->header.next)
- ;
- to->l->tail = e;
-
- /* reset "current" list tail */
- for (e = &current->l->head; *e != NULL; e = &(*e)->header.next)
- ;
- current->l->tail = e;
-
-#if EXTRA_VALIDATION
- new_to_count = ld_count_children (to->parent);
- new_current_count = ld_count_children (current->parent);
-
- ASSERT ((old_to_count + old_current_count)
- == (new_to_count + new_current_count));
-#endif
-}
-
-
-/* Can only be called with lang_statements that have lists. Returns
- FALSE if the list is empty. */
-
-static bfd_boolean
-iter_stack_empty (xtensa_ld_iter_stack **stack_p)
-{
- return *stack_p == NULL;
-}
-
-
-static bfd_boolean
-iter_stack_push (xtensa_ld_iter_stack **stack_p,
- lang_statement_union_type *parent)
-{
- xtensa_ld_iter_stack *stack;
- lang_statement_list_type *l = NULL;
-
- switch (parent->header.type)
- {
- case lang_output_section_statement_enum:
- l = &parent->output_section_statement.children;
- break;
- case lang_wild_statement_enum:
- l = &parent->wild_statement.children;
- break;
- case lang_group_statement_enum:
- l = &parent->group_statement.children;
- break;
- default:
- ASSERT (0);
- return FALSE;
- }
-
- /* Empty. do not push. */
- if (l->tail == &l->head)
- return FALSE;
-
- stack = xmalloc (sizeof (xtensa_ld_iter_stack));
- memset (stack, 0, sizeof (xtensa_ld_iter_stack));
- stack->iterloc.parent = parent;
- stack->iterloc.l = l;
- stack->iterloc.loc = &l->head;
-
- stack->next = *stack_p;
- stack->prev = NULL;
- if (*stack_p != NULL)
- (*stack_p)->prev = stack;
- *stack_p = stack;
- return TRUE;
-}
-
-
-static void
-iter_stack_pop (xtensa_ld_iter_stack **stack_p)
-{
- xtensa_ld_iter_stack *stack;
-
- stack = *stack_p;
-
- if (stack == NULL)
- {
- ASSERT (stack != NULL);
- return;
- }
-
- if (stack->next != NULL)
- stack->next->prev = NULL;
-
- *stack_p = stack->next;
- free (stack);
-}
-
-
-/* This MUST be called if, during iteration, the user changes the
- underlying structure. It will check for a NULL current and advance
- accordingly. */
-
-static void
-iter_stack_update (xtensa_ld_iter_stack **stack_p)
-{
- if (!iter_stack_empty (stack_p)
- && (*(*stack_p)->iterloc.loc) == NULL)
- {
- iter_stack_pop (stack_p);
-
- while (!iter_stack_empty (stack_p)
- && ((*(*stack_p)->iterloc.loc)->header.next == NULL))
- {
- iter_stack_pop (stack_p);
- }
- if (!iter_stack_empty (stack_p))
- (*stack_p)->iterloc.loc = &(*(*stack_p)->iterloc.loc)->header.next;
- }
-}
-
-
-static void
-iter_stack_next (xtensa_ld_iter_stack **stack_p)
-{
- xtensa_ld_iter_stack *stack;
- lang_statement_union_type *current;
- stack = *stack_p;
-
- current = *stack->iterloc.loc;
- /* If we are on the first element. */
- if (current != NULL)
- {
- switch (current->header.type)
- {
- case lang_output_section_statement_enum:
- case lang_wild_statement_enum:
- case lang_group_statement_enum:
- /* If the list if not empty, we are done. */
- if (iter_stack_push (stack_p, *stack->iterloc.loc))
- return;
- /* Otherwise increment the pointer as normal. */
- break;
- default:
- break;
- }
- }
-
- while (!iter_stack_empty (stack_p)
- && ((*(*stack_p)->iterloc.loc)->header.next == NULL))
- {
- iter_stack_pop (stack_p);
- }
- if (!iter_stack_empty (stack_p))
- (*stack_p)->iterloc.loc = &(*(*stack_p)->iterloc.loc)->header.next;
-}
-
-
-static lang_statement_union_type *
-iter_stack_current (xtensa_ld_iter_stack **stack_p)
-{
- return *((*stack_p)->iterloc.loc);
-}
-
-
-/* The iter stack is a preorder. */
-
-static void
-iter_stack_create (xtensa_ld_iter_stack **stack_p,
- lang_statement_union_type *parent)
-{
- iter_stack_push (stack_p, parent);
-}
-
-
-static void
-iter_stack_copy_current (xtensa_ld_iter_stack **stack_p, xtensa_ld_iter *front)
-{
- *front = (*stack_p)->iterloc;
-}
-
-
-static void
-xtensa_colocate_literals (reloc_deps_graph *deps,
- lang_statement_union_type *statement)
-{
- /* Keep a stack of pointers to control iteration through the contours. */
- xtensa_ld_iter_stack *stack = NULL;
- xtensa_ld_iter_stack **stack_p = &stack;
-
- xtensa_ld_iter front; /* Location where new insertion should occur. */
- xtensa_ld_iter *front_p = NULL;
-
- xtensa_ld_iter current; /* Location we are checking. */
- xtensa_ld_iter *current_p = NULL;
- bfd_boolean in_literals = FALSE;
-
- if (deps->count == 0)
- return;
-
- iter_stack_create (stack_p, statement);
-
- while (!iter_stack_empty (stack_p))
- {
- bfd_boolean skip_increment = FALSE;
- lang_statement_union_type *l = iter_stack_current (stack_p);
-
- switch (l->header.type)
- {
- case lang_assignment_statement_enum:
- /* Any assignment statement should block reordering across it. */
- front_p = NULL;
- in_literals = FALSE;
- break;
-
- case lang_input_section_enum:
- if (front_p == NULL)
- {
- in_literals = (section_is_target (deps, l)
- && !section_is_source (deps, l));
- if (in_literals)
- {
- front_p = &front;
- iter_stack_copy_current (stack_p, front_p);
- }
- }
- else
- {
- bfd_boolean is_target;
- current_p = &current;
- iter_stack_copy_current (stack_p, current_p);
- is_target = (section_is_target (deps, l)
- && !section_is_source (deps, l));
-
- if (in_literals)
- {
- iter_stack_copy_current (stack_p, front_p);
- if (!is_target)
- in_literals = FALSE;
- }
- else
- {
- if (is_target)
- {
- /* Try to insert in place. */
- ld_xtensa_move_section_after (front_p, current_p);
- ld_assign_relative_paged_dot (0x100000,
- statement,
- deps,
- xtensa_use_literal_pages);
-
- /* We use this code because it's already written. */
- if (!ld_local_file_relocations_fit (statement, deps))
- {
- /* Move it back. */
- ld_xtensa_move_section_after (current_p, front_p);
- /* Reset the literal placement. */
- iter_stack_copy_current (stack_p, front_p);
- }
- else
- {
- /* Move front pointer up by one. */
- front_p->loc = &(*front_p->loc)->header.next;
-
- /* Do not increment the current pointer. */
- skip_increment = TRUE;
- }
- }
- }
- }
- break;
- default:
- break;
- }
-
- if (!skip_increment)
- iter_stack_next (stack_p);
- else
- /* Be careful to update the stack_p if it now is a null. */
- iter_stack_update (stack_p);
- }
-
- lang_for_each_statement_worker (xtensa_ldlang_clear_addresses, statement);
-}
-
-
-static void
-xtensa_move_dependencies_to_front (reloc_deps_graph *deps,
- lang_wild_statement_type *w)
-{
- /* Keep a front pointer and a current pointer. */
- lang_statement_union_type **front;
- lang_statement_union_type **current;
-
- /* Walk to the end of the targets. */
- for (front = &w->children.head;
- (*front != NULL) && section_is_source_or_target (deps, *front);
- front = &(*front)->header.next)
- ;
-
- if (*front == NULL)
- return;
-
- current = &(*front)->header.next;
- while (*current != NULL)
- {
- if (section_is_source_or_target (deps, *current))
- {
- /* Insert in place. */
- xtensa_ld_iter front_iter;
- xtensa_ld_iter current_iter;
-
- front_iter.parent = (lang_statement_union_type *) w;
- front_iter.l = &w->children;
- front_iter.loc = front;
-
- current_iter.parent = (lang_statement_union_type *) w;
- current_iter.l = &w->children;
- current_iter.loc = current;
-
- ld_xtensa_move_section_after (&front_iter, &current_iter);
- front = &(*front)->header.next;
- }
- else
- {
- current = &(*current)->header.next;
- }
- }
-}
-
-
-static bfd_boolean
-deps_has_sec_edge (const reloc_deps_graph *deps, asection *src, asection *tgt)
-{
- const reloc_deps_section *sec_deps;
- const reloc_deps_e *sec_deps_e;
-
- sec_deps = xtensa_get_section_deps (deps, src);
- if (sec_deps == NULL)
- return FALSE;
-
- for (sec_deps_e = sec_deps->succs;
- sec_deps_e != NULL;
- sec_deps_e = sec_deps_e->next)
- {
- ASSERT (sec_deps_e->src == src);
- if (sec_deps_e->tgt == tgt)
- return TRUE;
- }
- return FALSE;
-}
-
-
-static bfd_boolean
-deps_has_edge (const reloc_deps_graph *deps,
- lang_statement_union_type *src,
- lang_statement_union_type *tgt)
-{
- if (!section_is_source (deps, src))
- return FALSE;
- if (!section_is_target (deps, tgt))
- return FALSE;
-
- if (src->header.type != lang_input_section_enum)
- return FALSE;
- if (tgt->header.type != lang_input_section_enum)
- return FALSE;
-
- return deps_has_sec_edge (deps, src->input_section.section,
- tgt->input_section.section);
-}
-
-
-static void
-add_deps_edge (reloc_deps_graph *deps, asection *src_sec, asection *tgt_sec)
-{
- reloc_deps_section *src_sec_deps;
- reloc_deps_section *tgt_sec_deps;
-
- reloc_deps_e *src_edge;
- reloc_deps_e *tgt_edge;
-
- if (deps_has_sec_edge (deps, src_sec, tgt_sec))
- return;
-
- src_sec_deps = xtensa_get_section_deps (deps, src_sec);
- if (src_sec_deps == NULL)
- {
- /* Add a section. */
- src_sec_deps = xmalloc (sizeof (reloc_deps_section));
- memset (src_sec_deps, 0, sizeof (reloc_deps_section));
- src_sec_deps->is_only_literal = 0;
- src_sec_deps->preds = NULL;
- src_sec_deps->succs = NULL;
- xtensa_set_section_deps (deps, src_sec, src_sec_deps);
- xtensa_append_section_deps (deps, src_sec);
- }
-
- tgt_sec_deps = xtensa_get_section_deps (deps, tgt_sec);
- if (tgt_sec_deps == NULL)
- {
- /* Add a section. */
- tgt_sec_deps = xmalloc (sizeof (reloc_deps_section));
- memset (tgt_sec_deps, 0, sizeof (reloc_deps_section));
- tgt_sec_deps->is_only_literal = 0;
- tgt_sec_deps->preds = NULL;
- tgt_sec_deps->succs = NULL;
- xtensa_set_section_deps (deps, tgt_sec, tgt_sec_deps);
- xtensa_append_section_deps (deps, tgt_sec);
- }
-
- /* Add the edges. */
- src_edge = xmalloc (sizeof (reloc_deps_e));
- memset (src_edge, 0, sizeof (reloc_deps_e));
- src_edge->src = src_sec;
- src_edge->tgt = tgt_sec;
- src_edge->next = src_sec_deps->succs;
- src_sec_deps->succs = src_edge;
-
- tgt_edge = xmalloc (sizeof (reloc_deps_e));
- memset (tgt_edge, 0, sizeof (reloc_deps_e));
- tgt_edge->src = src_sec;
- tgt_edge->tgt = tgt_sec;
- tgt_edge->next = tgt_sec_deps->preds;
- tgt_sec_deps->preds = tgt_edge;
-}
-
-
-static void
-build_deps_graph_callback (asection *src_sec,
- bfd_vma src_offset ATTRIBUTE_UNUSED,
- asection *target_sec,
- bfd_vma target_offset ATTRIBUTE_UNUSED,
- void *closure)
-{
- reloc_deps_graph *deps = closure;
-
- /* If the target is defined. */
- if (target_sec != NULL)
- add_deps_edge (deps, src_sec, target_sec);
-}
-
-
-static reloc_deps_graph *
-ld_build_required_section_dependence (lang_statement_union_type *s)
-{
- reloc_deps_graph *deps;
- xtensa_ld_iter_stack *stack = NULL;
-
- deps = xmalloc (sizeof (reloc_deps_graph));
- deps->sections = NULL;
- deps->count = 0;
- deps->size = 0;
-
- for (iter_stack_create (&stack, s);
- !iter_stack_empty (&stack);
- iter_stack_next (&stack))
- {
- lang_statement_union_type *l = iter_stack_current (&stack);
-
- if (l->header.type == lang_input_section_enum)
- {
- lang_input_section_type *input;
- input = &l->input_section;
- xtensa_callback_required_dependence (input->section->owner,
- input->section,
- &link_info,
- /* Use the same closure. */
- build_deps_graph_callback,
- deps);
- }
- }
- return deps;
-}
-
-
-#if EXTRA_VALIDATION
-static size_t
-ld_count_children (lang_statement_union_type *s)
-{
- size_t count = 0;
- xtensa_ld_iter_stack *stack = NULL;
- for (iter_stack_create (&stack, s);
- !iter_stack_empty (&stack);
- iter_stack_next (&stack))
- {
- lang_statement_union_type *l = iter_stack_current (&stack);
- ASSERT (l != NULL);
- count++;
- }
- return count;
-}
-#endif /* EXTRA_VALIDATION */
-
-
-/* Check if a particular section is included in the link. This will only
- be true for one instance of a particular linkonce section. */
-
-static bfd_boolean input_section_found = FALSE;
-static asection *input_section_target = NULL;
-
-static void
-input_section_linked_worker (lang_statement_union_type *statement)
-{
- if ((statement->header.type == lang_input_section_enum
- && (statement->input_section.section == input_section_target)))
- input_section_found = TRUE;
-}
-
-static bfd_boolean
-input_section_linked (asection *sec)
-{
- input_section_found = FALSE;
- input_section_target = sec;
- lang_for_each_statement_worker (input_section_linked_worker, stat_ptr->head);
- return input_section_found;
-}
-
-
-/* Strip out any linkonce property tables or XCC exception tables where the
- associated linkonce text is from a different object file. Normally,
- a matching set of linkonce sections is taken from the same object file,
- but sometimes the files are compiled differently so that some of the
- linkonce sections are not present in all files. Stripping the
- inconsistent sections like this is not completely robust -- a much
- better solution is to use comdat groups. */
-
-static int linkonce_len = sizeof (".gnu.linkonce.") - 1;
-
-static bfd_boolean
-is_inconsistent_linkonce_section (asection *sec)
-{
- bfd *abfd = sec->owner;
- const char *sec_name = bfd_get_section_name (abfd, sec);
- const char *name;
-
- if ((bfd_get_section_flags (abfd, sec) & SEC_LINK_ONCE) == 0
- || strncmp (sec_name, ".gnu.linkonce.", linkonce_len) != 0)
- return FALSE;
-
- /* Check if this is an Xtensa property section or an exception table
- for Tensilica's XCC compiler. */
- name = sec_name + linkonce_len;
- if (CONST_STRNEQ (name, "prop."))
- name = strchr (name + 5, '.') + 1;
- else if (name[1] == '.'
- && (name[0] == 'p' || name[0] == 'e' || name[0] == 'h'))
- name += 2;
- else
- name = 0;
-
- if (name)
- {
- char *dep_sec_name = xmalloc (strlen (sec_name) + 1);
- asection *dep_sec;
-
- /* Get the associated linkonce text section and check if it is
- included in the link. If not, this section is inconsistent
- and should be stripped. */
- strcpy (dep_sec_name, ".gnu.linkonce.t.");
- strcat (dep_sec_name, name);
- dep_sec = bfd_get_section_by_name (abfd, dep_sec_name);
- if (dep_sec == NULL || ! input_section_linked (dep_sec))
- {
- free (dep_sec_name);
- return TRUE;
- }
- free (dep_sec_name);
- }
-
- return FALSE;
-}
-
-
-static void
-xtensa_strip_inconsistent_linkonce_sections (lang_statement_list_type *slist)
-{
- lang_statement_union_type **s_p = &slist->head;
- while (*s_p)
- {
- lang_statement_union_type *s = *s_p;
- lang_statement_union_type *s_next = (*s_p)->header.next;
-
- switch (s->header.type)
- {
- case lang_input_section_enum:
- if (is_inconsistent_linkonce_section (s->input_section.section))
- {
- s->input_section.section->output_section = bfd_abs_section_ptr;
- *s_p = s_next;
- continue;
- }
- break;
-
- case lang_constructors_statement_enum:
- xtensa_strip_inconsistent_linkonce_sections (&constructor_list);
- break;
-
- case lang_output_section_statement_enum:
- if (s->output_section_statement.children.head)
- xtensa_strip_inconsistent_linkonce_sections
- (&s->output_section_statement.children);
- break;
-
- case lang_wild_statement_enum:
- xtensa_strip_inconsistent_linkonce_sections
- (&s->wild_statement.children);
- break;
-
- case lang_group_statement_enum:
- xtensa_strip_inconsistent_linkonce_sections
- (&s->group_statement.children);
- break;
-
- case lang_data_statement_enum:
- case lang_reloc_statement_enum:
- case lang_object_symbols_statement_enum:
- case lang_output_statement_enum:
- case lang_target_statement_enum:
- case lang_input_statement_enum:
- case lang_assignment_statement_enum:
- case lang_padding_statement_enum:
- case lang_address_statement_enum:
- case lang_fill_statement_enum:
- break;
-
- default:
- FAIL ();
- break;
- }
-
- s_p = &(*s_p)->header.next;
- }
-
- /* Reset the tail of the list, in case the last entry was removed. */
- if (s_p != slist->tail)
- slist->tail = s_p;
-}
-
-
-static void
-xtensa_wild_group_interleave_callback (lang_statement_union_type *statement)
-{
- lang_wild_statement_type *w;
- reloc_deps_graph *deps;
- if (statement->header.type == lang_wild_statement_enum)
- {
-#if EXTRA_VALIDATION
- size_t old_child_count;
- size_t new_child_count;
-#endif
- bfd_boolean no_reorder;
-
- w = &statement->wild_statement;
-
- no_reorder = FALSE;
-
- /* If it has 0 or 1 section bound, then do not reorder. */
- if (w->children.head == NULL
- || (w->children.head->header.type == lang_input_section_enum
- && w->children.head->header.next == NULL))
- no_reorder = TRUE;
-
- if (w->filenames_sorted)
- no_reorder = TRUE;
-
- /* Check for sorting in a section list wildcard spec as well. */
- if (!no_reorder)
- {
- struct wildcard_list *l;
- for (l = w->section_list; l != NULL; l = l->next)
- {
- if (l->spec.sorted == TRUE)
- {
- no_reorder = TRUE;
- break;
- }
- }
- }
-
- /* Special case until the NOREORDER linker directive is supported:
- *(.init) output sections and *(.fini) specs may NOT be reordered. */
-
- /* Check for sorting in a section list wildcard spec as well. */
- if (!no_reorder)
- {
- struct wildcard_list *l;
- for (l = w->section_list; l != NULL; l = l->next)
- {
- if (l->spec.name
- && ((strcmp (".init", l->spec.name) == 0)
- || (strcmp (".fini", l->spec.name) == 0)))
- {
- no_reorder = TRUE;
- break;
- }
- }
- }
-
-#if EXTRA_VALIDATION
- old_child_count = ld_count_children (statement);
-#endif
-
- /* It is now officially a target. Build the graph of source
- section -> target section (kept as a list of edges). */
- deps = ld_build_required_section_dependence (statement);
-
- /* If this wildcard does not reorder.... */
- if (!no_reorder && deps->count != 0)
- {
- /* First check for reverse dependences. Fix if possible. */
- xtensa_layout_wild (deps, w);
-
- xtensa_move_dependencies_to_front (deps, w);
-#if EXTRA_VALIDATION
- new_child_count = ld_count_children (statement);
- ASSERT (new_child_count == old_child_count);
-#endif
-
- xtensa_colocate_literals (deps, statement);
-
-#if EXTRA_VALIDATION
- new_child_count = ld_count_children (statement);
- ASSERT (new_child_count == old_child_count);
-#endif
- }
-
- /* Clean up. */
- free_reloc_deps_graph (deps);
- }
-}
-
-
-static void
-xtensa_wild_group_interleave (lang_statement_union_type *s)
-{
- lang_for_each_statement_worker (xtensa_wild_group_interleave_callback, s);
-}
-
-
-static void
-xtensa_layout_wild (const reloc_deps_graph *deps, lang_wild_statement_type *w)
-{
- /* If it does not fit initially, we need to do this step. Move all
- of the wild literal sections to a new list, then move each of
- them back in just before the first section they depend on. */
- lang_statement_union_type **s_p;
-#if EXTRA_VALIDATION
- size_t old_count, new_count;
- size_t ct1, ct2;
-#endif
-
- lang_wild_statement_type literal_wild;
- literal_wild.header.next = NULL;
- literal_wild.header.type = lang_wild_statement_enum;
- literal_wild.filename = NULL;
- literal_wild.filenames_sorted = FALSE;
- literal_wild.section_list = NULL;
- literal_wild.keep_sections = FALSE;
- literal_wild.children.head = NULL;
- literal_wild.children.tail = &literal_wild.children.head;
-
-#if EXTRA_VALIDATION
- old_count = ld_count_children ((lang_statement_union_type*) w);
-#endif
-
- s_p = &w->children.head;
- while (*s_p != NULL)
- {
- lang_statement_union_type *l = *s_p;
- if (l->header.type == lang_input_section_enum)
- {
- if (section_is_target (deps, l)
- && ! section_is_source (deps, l))
- {
- /* Detach. */
- *s_p = l->header.next;
- if (*s_p == NULL)
- w->children.tail = s_p;
- l->header.next = NULL;
-
- /* Append. */
- *literal_wild.children.tail = l;
- literal_wild.children.tail = &l->header.next;
- continue;
- }
- }
- s_p = &(*s_p)->header.next;
- }
-
-#if EXTRA_VALIDATION
- ct1 = ld_count_children ((lang_statement_union_type*) w);
- ct2 = ld_count_children ((lang_statement_union_type*) &literal_wild);
-
- ASSERT (old_count == (ct1 + ct2));
-#endif
-
- /* Now place them back in front of their dependent sections. */
-
- while (literal_wild.children.head != NULL)
- {
- lang_statement_union_type *lit = literal_wild.children.head;
- bfd_boolean placed = FALSE;
-
-#if EXTRA_VALIDATION
- ASSERT (ct2 > 0);
- ct2--;
-#endif
-
- /* Detach. */
- literal_wild.children.head = lit->header.next;
- if (literal_wild.children.head == NULL)
- literal_wild.children.tail = &literal_wild.children.head;
- lit->header.next = NULL;
-
- /* Find a spot to place it. */
- for (s_p = &w->children.head; *s_p != NULL; s_p = &(*s_p)->header.next)
- {
- lang_statement_union_type *src = *s_p;
- if (deps_has_edge (deps, src, lit))
- {
- /* Place it here. */
- lit->header.next = *s_p;
- *s_p = lit;
- placed = TRUE;
- break;
- }
- }
-
- if (!placed)
- {
- /* Put it at the end. */
- *w->children.tail = lit;
- w->children.tail = &lit->header.next;
- }
- }
-
-#if EXTRA_VALIDATION
- new_count = ld_count_children ((lang_statement_union_type*) w);
- ASSERT (new_count == old_count);
-#endif
-}
-
-
-static void
-xtensa_colocate_output_literals_callback (lang_statement_union_type *statement)
-{
- reloc_deps_graph *deps;
- if (statement->header.type == lang_output_section_statement_enum)
- {
- /* Now, we walk over the contours of the output section statement.
-
- First we build the literal section dependences as before.
-
- At the first uniquely_literal section, we mark it as a good
- spot to place other literals. Continue walking (and counting
- sizes) until we find the next literal section. If this
- section can be moved to the first one, then we move it. If
- we every find a modification of ".", start over. If we find
- a labeling of the current location, start over. Finally, at
- the end, if we require page alignment, add page alignments. */
-
-#if EXTRA_VALIDATION
- size_t old_child_count;
- size_t new_child_count;
-#endif
- bfd_boolean no_reorder = FALSE;
-
-#if EXTRA_VALIDATION
- old_child_count = ld_count_children (statement);
-#endif
-
- /* It is now officially a target. Build the graph of source
- section -> target section (kept as a list of edges). */
-
- deps = ld_build_required_section_dependence (statement);
-
- /* If this wildcard does not reorder.... */
- if (!no_reorder)
- {
- /* First check for reverse dependences. Fix if possible. */
- xtensa_colocate_literals (deps, statement);
-
-#if EXTRA_VALIDATION
- new_child_count = ld_count_children (statement);
- ASSERT (new_child_count == old_child_count);
-#endif
- }
-
- /* Insert align/offset assignment statement. */
- if (xtensa_use_literal_pages)
- {
- ld_xtensa_insert_page_offsets (0, statement, deps,
- xtensa_use_literal_pages);
- lang_for_each_statement_worker (xtensa_ldlang_clear_addresses,
- statement);
- }
-
- /* Clean up. */
- free_reloc_deps_graph (deps);
- }
-}
-
-
-static void
-xtensa_colocate_output_literals (lang_statement_union_type *s)
-{
- lang_for_each_statement_worker (xtensa_colocate_output_literals_callback, s);
-}
-
-
-static void
-xtensa_ldlang_clear_addresses (lang_statement_union_type *statement)
-{
- switch (statement->header.type)
- {
- case lang_input_section_enum:
- {
- asection *bfd_section = statement->input_section.section;
- bfd_section->output_offset = 0;
- }
- break;
- default:
- break;
- }
-}
-
-
-static bfd_vma
-ld_assign_relative_paged_dot (bfd_vma dot,
- lang_statement_union_type *s,
- const reloc_deps_graph *deps ATTRIBUTE_UNUSED,
- bfd_boolean lit_align)
-{
- /* Walk through all of the input statements in this wild statement
- assign dot to all of them. */
-
- xtensa_ld_iter_stack *stack = NULL;
- xtensa_ld_iter_stack **stack_p = &stack;
-
- bfd_boolean first_section = FALSE;
- bfd_boolean in_literals = FALSE;
-
- for (iter_stack_create (stack_p, s);
- !iter_stack_empty (stack_p);
- iter_stack_next (stack_p))
- {
- lang_statement_union_type *l = iter_stack_current (stack_p);
-
- switch (l->header.type)
- {
- case lang_input_section_enum:
- {
- asection *section = l->input_section.section;
- size_t align_pow = section->alignment_power;
- bfd_boolean do_xtensa_alignment = FALSE;
-
- if (lit_align)
- {
- bfd_boolean sec_is_target = section_is_target (deps, l);
- bfd_boolean sec_is_source = section_is_source (deps, l);
-
- if (section->size != 0
- && (first_section
- || (in_literals && !sec_is_target)
- || (!in_literals && sec_is_target)))
- {
- do_xtensa_alignment = TRUE;
- }
- first_section = FALSE;
- if (section->size != 0)
- in_literals = (sec_is_target && !sec_is_source);
- }
-
- if (do_xtensa_alignment && xtensa_page_power != 0)
- dot += (1 << xtensa_page_power);
-
- dot = align_power (dot, align_pow);
- section->output_offset = dot;
- dot += section->size;
- }
- break;
- case lang_fill_statement_enum:
- dot += l->fill_statement.size;
- break;
- case lang_padding_statement_enum:
- dot += l->padding_statement.size;
- break;
- default:
- break;
- }
- }
- return dot;
-}
-
-
-static bfd_boolean
-ld_local_file_relocations_fit (lang_statement_union_type *statement,
- const reloc_deps_graph *deps ATTRIBUTE_UNUSED)
-{
- /* Walk over all of the dependencies that we identified and make
- sure that IF the source and target are here (addr != 0):
- 1) target addr < source addr
- 2) (roundup(source + source_size, 4) - rounddown(target, 4))
- < (256K - (1 << bad align))
- Need a worst-case proof.... */
-
- xtensa_ld_iter_stack *stack = NULL;
- xtensa_ld_iter_stack **stack_p = &stack;
- size_t max_align_power = 0;
- size_t align_penalty = 256;
- reloc_deps_e *e;
- size_t i;
-
- /* Find the worst-case alignment requirement for this set of statements. */
- for (iter_stack_create (stack_p, statement);
- !iter_stack_empty (stack_p);
- iter_stack_next (stack_p))
- {
- lang_statement_union_type *l = iter_stack_current (stack_p);
- if (l->header.type == lang_input_section_enum)
- {
- lang_input_section_type *input = &l->input_section;
- asection *section = input->section;
- if (section->alignment_power > max_align_power)
- max_align_power = section->alignment_power;
- }
- }
-
- /* Now check that everything fits. */
- for (i = 0; i < deps->count; i++)
- {
- asection *sec = deps->sections[i];
- const reloc_deps_section *deps_section =
- xtensa_get_section_deps (deps, sec);
- if (deps_section)
- {
- /* We choose to walk through the successors. */
- for (e = deps_section->succs; e != NULL; e = e->next)
- {
- if (e->src != e->tgt
- && e->src->output_section == e->tgt->output_section
- && e->src->output_offset != 0
- && e->tgt->output_offset != 0)
- {
- bfd_vma l32r_addr =
- align_power (e->src->output_offset + e->src->size, 2);
- bfd_vma target_addr = e->tgt->output_offset & ~3;
- if (l32r_addr < target_addr)
- {
- fflush (stdout);
- fprintf (stderr, "Warning: "
- "l32r target section before l32r\n");
- fflush (stderr);
- return FALSE;
- }
-
- if (l32r_addr - target_addr > 256 * 1024 - align_penalty)
- return FALSE;
- }
- }
- }
- }
-
- return TRUE;
-}
-
-
-static bfd_vma
-ld_xtensa_insert_page_offsets (bfd_vma dot,
- lang_statement_union_type *s,
- reloc_deps_graph *deps,
- bfd_boolean lit_align)
-{
- xtensa_ld_iter_stack *stack = NULL;
- xtensa_ld_iter_stack **stack_p = &stack;
-
- bfd_boolean first_section = FALSE;
- bfd_boolean in_literals = FALSE;
-
- if (!lit_align)
- return FALSE;
-
- for (iter_stack_create (stack_p, s);
- !iter_stack_empty (stack_p);
- iter_stack_next (stack_p))
- {
- lang_statement_union_type *l = iter_stack_current (stack_p);
-
- switch (l->header.type)
- {
- case lang_input_section_enum:
- {
- asection *section = l->input_section.section;
- bfd_boolean do_xtensa_alignment = FALSE;
-
- if (lit_align)
- {
- if (section->size != 0
- && (first_section
- || (in_literals && !section_is_target (deps, l))
- || (!in_literals && section_is_target (deps, l))))
- {
- do_xtensa_alignment = TRUE;
- }
- first_section = FALSE;
- if (section->size != 0)
- {
- in_literals = (section_is_target (deps, l)
- && !section_is_source (deps, l));
- }
- }
-
- if (do_xtensa_alignment && xtensa_page_power != 0)
- {
- /* Create an expression that increments the current address,
- i.e., "dot", by (1 << xtensa_align_power). */
- etree_type *name_op = exp_nameop (NAME, ".");
- etree_type *addend_op = exp_intop (1 << xtensa_page_power);
- etree_type *add_op = exp_binop ('+', name_op, addend_op);
- etree_type *assign_op = exp_assign (".", add_op, FALSE);
-
- lang_assignment_statement_type *assign_stmt;
- lang_statement_union_type *assign_union;
- lang_statement_list_type tmplist;
-
- /* There is hidden state in "lang_add_assignment". It
- appends the new assignment statement to the stat_ptr
- list. Thus, we swap it before and after the call. */
-
- lang_list_init (&tmplist);
- push_stat_ptr (&tmplist);
- /* Warning: side effect; statement appended to stat_ptr. */
- assign_stmt = lang_add_assignment (assign_op);
- assign_union = (lang_statement_union_type *) assign_stmt;
- pop_stat_ptr ();
-
- assign_union->header.next = l;
- *(*stack_p)->iterloc.loc = assign_union;
- iter_stack_next (stack_p);
- }
- }
- break;
- default:
- break;
- }
- }
- return dot;
-}
-
-EOF
-
-# Define some shell vars to insert bits of code into the standard ELF
-# parse_args and list_options functions.
-#
-PARSE_AND_LIST_PROLOGUE='
-#define OPTION_OPT_SIZEOPT (300)
-#define OPTION_LITERAL_MOVEMENT (OPTION_OPT_SIZEOPT + 1)
-#define OPTION_NO_LITERAL_MOVEMENT (OPTION_LITERAL_MOVEMENT + 1)
-extern int elf32xtensa_size_opt;
-extern int elf32xtensa_no_literal_movement;
-'
-
-PARSE_AND_LIST_LONGOPTS='
- { "size-opt", no_argument, NULL, OPTION_OPT_SIZEOPT},
- { "literal-movement", no_argument, NULL, OPTION_LITERAL_MOVEMENT},
- { "no-literal-movement", no_argument, NULL, OPTION_NO_LITERAL_MOVEMENT},
-'
-
-PARSE_AND_LIST_OPTIONS='
- fprintf (file, _("\
- --size-opt When relaxing longcalls, prefer size\n\
- optimization over branch target alignment\n"));
-'
-
-PARSE_AND_LIST_ARGS_CASES='
- case OPTION_OPT_SIZEOPT:
- elf32xtensa_size_opt = 1;
- break;
- case OPTION_LITERAL_MOVEMENT:
- elf32xtensa_no_literal_movement = 0;
- break;
- case OPTION_NO_LITERAL_MOVEMENT:
- elf32xtensa_no_literal_movement = 1;
- break;
-'
-
-# Replace some of the standard ELF functions with our own versions.
-#
-LDEMUL_BEFORE_PARSE=elf_xtensa_before_parse
-LDEMUL_AFTER_OPEN=elf_xtensa_after_open
-LDEMUL_CHOOSE_TARGET=elf_xtensa_choose_target
-LDEMUL_BEFORE_ALLOCATION=elf_xtensa_before_allocation
diff --git a/ld/emultempl/z80.em b/ld/emultempl/z80.em
deleted file mode 100644
index eeb3213..0000000
--- a/ld/emultempl/z80.em
+++ /dev/null
@@ -1,104 +0,0 @@
-# This shell script emits C code -*- C -*-
-# to keep track of the machine type of Z80 object files
-# It does some substitutions.
-# Copyright 2005, 2007, 2008 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.
-
-LDEMUL_BEFORE_PARSE=gldz80_before_parse
-LDEMUL_RECOGNIZED_FILE=gldz80_recognized_file
-LDEMUL_AFTER_OPEN=gldz80_after_open
-
-fragment <<EOF
-/* --- \begin{z80.em} */
-/* Codes for machine types, bitwise or gives the code to use for the
- output. */
-#define M_Z80STRICT 1
-#define M_Z80 3
-#define M_Z80FULL 7
-#define M_R800 11
-#define M_Z80ANY 15
-
-/* Bitwise or of the machine types seen so far. */
-static int result_mach_type;
-
-static void
-${LDEMUL_BEFORE_PARSE} (void)
-{
-#ifndef TARGET_ /* I.e., if not generic. */
- ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown);
-#endif /* not TARGET_ */
- result_mach_type = M_Z80STRICT;
-}
-
-
-/* Update result_mach_type. */
-static bfd_boolean
-${LDEMUL_RECOGNIZED_FILE} (lang_input_statement_type *entry)
-{
- unsigned long mach_type;
-
- mach_type = bfd_get_mach (entry->the_bfd);
- switch (mach_type)
- {
- case bfd_mach_z80strict:
- result_mach_type |= M_Z80STRICT;
- break;
- case bfd_mach_z80:
- result_mach_type |= M_Z80;
- break;
- case bfd_mach_z80full:
- result_mach_type |= M_Z80FULL;
- break;
- case bfd_mach_r800:
- result_mach_type |= M_R800;
- break;
- default:
- result_mach_type |= M_Z80ANY;
- }
- return FALSE;
-}
-
-/* Set the machine type of the output file based on result_mach_type. */
-static void
-gldz80_after_open (void)
-{
- unsigned long mach_type;
-
- after_open_default ();
-
- switch (result_mach_type)
- {
- case M_Z80STRICT:
- mach_type = bfd_mach_z80strict;
- break;
- case M_Z80:
- mach_type = bfd_mach_z80;
- break;
- case M_Z80FULL:
- mach_type = bfd_mach_z80full;
- break;
- case M_R800:
- mach_type = bfd_mach_r800;
- break;
- default:
- mach_type = 0;
- }
- bfd_set_arch_mach (link_info.output_bfd, bfd_arch_z80, mach_type);
-}
-/* --- \end{z80.em} */
-EOF