diff options
author | nobody <> | 2013-09-18 10:39:47 +0000 |
---|---|---|
committer | nobody <> | 2013-09-18 10:39:47 +0000 |
commit | 42cae617abbc05543c25ef5107bbcf91d93aa999 (patch) | |
tree | d0082570109dd15c22569c0787801d11abc5c077 /ld/emultempl | |
parent | 4f9545368bc44f2dfd320a99f096401d14c266b2 (diff) | |
download | gdb-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')
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, ¶ms); - - 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, ¶ms); - } - - 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 = ¤t->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 = ¤t; - 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, ¤t_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 |