diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2010-12-31 11:01:00 +0000 |
---|---|---|
committer | Richard Sandiford <rdsandiford@googlemail.com> | 2010-12-31 11:01:00 +0000 |
commit | aeffff67224eb530539e83ab358a907dee834172 (patch) | |
tree | c6ba5a643bf139250c1b923c3f2d78133e0e42d2 /ld | |
parent | a836572f89a477527b109f19601f2fe2b804fd3d (diff) | |
download | gdb-aeffff67224eb530539e83ab358a907dee834172.zip gdb-aeffff67224eb530539e83ab358a907dee834172.tar.gz gdb-aeffff67224eb530539e83ab358a907dee834172.tar.bz2 |
bfd/
2010-12-23 Robert Millan <rmh@gnu.org>
* config.bfd: Recognize mips-freebsd and mips-kfreebsd-gnu.
* configure.host: Likewise.
* configure.in: Support for `bfd_elf32_ntradbigmips_freebsd_vec',
`bfd_elf32_ntradlittlemips_freebsd_vec',
`bfd_elf32_tradbigmips_freebsd_vec',
`bfd_elf32_tradlittlemips_freebsd_vec',
`bfd_elf64_tradbigmips_freebsd_vec' and
`bfd_elf64_tradlittlemips_freebsd_vec'.
* configure: Regenerate.
* elf32-mips.c: New target for FreeBSD support
(same as traditional MIPS but overrides ELF_OSABI
with ELFOSABI_FREEBSD).
* elf64-mips.c: Likewise.
* elfn32-mips.c: Likewise.
* targets.c (_bfd_target_vector): Add
`bfd_elf32_ntradbigmips_freebsd_vec',
`bfd_elf32_ntradlittlemips_freebsd_vec',
`bfd_elf32_tradbigmips_freebsd_vec',
`bfd_elf32_tradlittlemips_freebsd_vec',
`bfd_elf64_tradbigmips_freebsd_vec' and
`bfd_elf64_tradlittlemips_freebsd_vec'.
ld/
2010-12-14 Robert Millan <rmh@gnu.org>
* configure.tgt: Recognize mips-freebsd and mips-kfreebsd-gnu.
* emulparams/elf32btsmip_fbsd.sh: New file.
* emulparams/elf32btsmipn32_fbsd.sh: Likewise.
* emulparams/elf32ltsmip_fbsd.sh: Likewise.
* emulparams/elf32ltsmipn32_fbsd.sh: Likewise.
* emulparams/elf64btsmip_fbsd.sh: Likewise.
* emulparams/elf64ltsmip_fbsd.sh: Likewise.
* Makefile.am: Add build rules for `eelf32btsmip_fbsd.c',
`eelf32btsmipn32_fbsd.c', `eelf32ltsmip_fbsd.c',
`eelf32ltsmipn32_fbsd.c', `eelf64btsmip_fbsd.c' and
`eelf64ltsmip_fbsd.c'.
* Makefile.in: Regenerate.
gas/
2010-12-19 Robert Millan <rmh@gnu.org>
Richard Sandiford <rdsandiford@googlemail.com>
* config/tc-mips.c (ELF_TARGET): New macro. Generates target
names accordingly to whether TE_FreeBSD and whether TE_TMIPS
are defined.
(mips_target_format): Refactor code using ELF_TARGET().
(support_64bit_objects): Likewise.
* configure.in: Recognize mips-freebsd and mips-kfreebsd-gnu.
* configure.tgt: Likewise.
* configure: Regenerate.
binutils/testsuite/
* binutils-all/readelf.exp: Handle MIPS FreeBSD targets.
gas/testsuite/
* gas/mips/e32el-rel2.d: Accept any file format.
* gas/mips/elf-rel.d: Likewise.
* gas/mips/elf-rel2.d: Likewise.
* gas/mips/elf-rel3.d: Likewise.
* gas/mips/elfel-rel.d: Likewise.
* gas/mips/elfel-rel2.d: Likewise.
* gas/mips/elfel-rel3.d: Likewise.
* gas/mips/ldstla-32-mips3-shared.d: Likewise.
* gas/mips/ldstla-32-mips3.d: Likewise.
* gas/mips/ldstla-32-shared.d: Likewise.
* gas/mips/ldstla-32.d: Likewise.
* gas/mips/ldstla-n64-shared.d: Likewise.
* gas/mips/ldstla-n64.d: Likewise.
* gas/mips/noat-1.d: Likewise.
* gas/mips/set-arch.d: Likewise.
* gas/mips/tls-o32.d: Likewise.
ld/testsuite/
* ld-mips-elf/mips-elf-flags.exp: Handle FreeBSD targets.
* ld-mips-elf/mips-elf.exp: Likewise.
* ld-mips-elf/mips16-call-global.d: Accept any file format.
* ld-mips-elf/mips16-intermix.d: Likewise.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 17 | ||||
-rw-r--r-- | ld/Makefile.am | 34 | ||||
-rw-r--r-- | ld/Makefile.in | 40 | ||||
-rw-r--r-- | ld/configure.tgt | 16 | ||||
-rw-r--r-- | ld/emulparams/elf32btsmip_fbsd.sh | 5 | ||||
-rw-r--r-- | ld/emulparams/elf32btsmipn32_fbsd.sh | 5 | ||||
-rw-r--r-- | ld/emulparams/elf32ltsmip_fbsd.sh | 5 | ||||
-rw-r--r-- | ld/emulparams/elf32ltsmipn32_fbsd.sh | 5 | ||||
-rw-r--r-- | ld/emulparams/elf64btsmip_fbsd.sh | 5 | ||||
-rw-r--r-- | ld/emulparams/elf64ltsmip_fbsd.sh | 5 | ||||
-rw-r--r-- | ld/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips-elf-flags.exp | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips-elf.exp | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips16-call-global.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips16-intermix.d | 2 |
15 files changed, 153 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 8bac5f0..fa623ef 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,20 @@ +2010-12-31 Robert Millan <rmh@gnu.org> + + * configure.tgt: Recognize mips-freebsd and mips-kfreebsd-gnu. + + * emulparams/elf32btsmip_fbsd.sh: New file. + * emulparams/elf32btsmipn32_fbsd.sh: Likewise. + * emulparams/elf32ltsmip_fbsd.sh: Likewise. + * emulparams/elf32ltsmipn32_fbsd.sh: Likewise. + * emulparams/elf64btsmip_fbsd.sh: Likewise. + * emulparams/elf64ltsmip_fbsd.sh: Likewise. + + * Makefile.am: Add build rules for `eelf32btsmip_fbsd.c', + `eelf32btsmipn32_fbsd.c', `eelf32ltsmip_fbsd.c', + `eelf32ltsmipn32_fbsd.c', `eelf64btsmip_fbsd.c' and + `eelf64ltsmip_fbsd.c'. + * Makefile.in: Regenerate. + 2010-12-30 H.J. Lu <hongjiu.lu@intel.com> * emulparams/elf32_x86_64.sh: New. diff --git a/ld/Makefile.am b/ld/Makefile.am index aa6d7c5..bd368ca 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -189,10 +189,14 @@ ALL_EMULATION_SOURCES = \ eelf32bmip.c \ eelf32bmipn32.c \ eelf32btsmip.c \ + eelf32btsmip_fbsd.c \ eelf32crx.c \ eelf32btsmipn32.c \ + eelf32btsmipn32_fbsd.c \ eelf32ltsmip.c \ + eelf32ltsmip_fbsd.c \ eelf32ltsmipn32.c \ + eelf32ltsmipn32_fbsd.c \ eelf32ebmip.c \ eelf32ebmipvxworks.c \ eelf32elmip.c \ @@ -456,7 +460,9 @@ ALL_64_EMULATION_SOURCES = \ eelf64alpha_nbsd.c \ eelf64bmip.c \ eelf64btsmip.c \ + eelf64btsmip_fbsd.c \ eelf64ltsmip.c \ + eelf64ltsmip_fbsd.c \ eelf64hppa.c \ eelf64mmix.c \ emmo.c \ @@ -932,6 +938,10 @@ eelf32btsmip.c: $(srcdir)/emulparams/elf32btsmip.sh \ $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32btsmip "$(tdir_elf32btsmip)" +eelf32btsmip_fbsd.c: $(srcdir)/emulparams/elf32btsmip_fbsd.sh \ + $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32btsmip_fbsd "$(tdir_elf32btsmip_fbsd)" eelf32crx.c: $(srcdir)/emulparams/elf32crx.sh \ $(ELF_DEPS) $(srcdir)/emultempl/crxelf.em \ $(srcdir)/scripttempl/elf32crx.sc ${GEN_DEPENDS} @@ -940,16 +950,30 @@ eelf32btsmipn32.c: $(srcdir)/emulparams/elf32btsmipn32.sh \ $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32btsmipn32 "$(tdir_elf32btsmipn32)" +eelf32btsmipn32_fbsd.c: $(srcdir)/emulparams/elf32btsmipn32_fbsd.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32btsmipn32_fbsd "$(tdir_elf32btsmipn32_fbsd)" eelf32ltsmip.c: $(srcdir)/emulparams/elf32ltsmip.sh \ $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \ $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} elf32ltsmip "$(tdir_elf32ltsmip)" +eelf32ltsmip_fbsd.c: $(srcdir)/emulparams/elf32ltsmip_fbsd.sh \ + $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} elf32ltsmip_fbsd "$(tdir_elf32ltsmip_fbsd)" eelf32ltsmipn32.c: $(srcdir)/emulparams/elf32ltsmipn32.sh \ $(srcdir)/emulparams/elf32btsmipn32.sh \ $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ltsmipn32 "$(tdir_elf32ltsmipn32)" +eelf32ltsmipn32_fbsd.c: $(srcdir)/emulparams/elf32ltsmipn32_fbsd.sh \ + $(srcdir)/emulparams/elf32btsmipn32.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32ltsmipn32_fbsd "$(tdir_elf32ltsmipn32_fbsd)" eelf32ebmip.c: $(srcdir)/emulparams/elf32ebmip.sh \ $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -1157,11 +1181,21 @@ eelf64btsmip.c: $(srcdir)/emulparams/elf64btsmip.sh \ $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64btsmip "$(tdir_elf64btsmip)" +eelf64btsmip_fbsd.c: $(srcdir)/emulparams/elf64btsmip_fbsd.sh \ + $(srcdir)/emulparams/elf64bmip-defs.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64btsmip_fbsd "$(tdir_elf64btsmip_fbsd)" eelf64ltsmip.c: $(srcdir)/emulparams/elf64ltsmip.sh \ $(srcdir)/emulparams/elf64btsmip.sh $(srcdir)/emulparams/elf64bmip-defs.sh \ $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64ltsmip "$(tdir_elf64ltsmip)" +eelf64ltsmip_fbsd.c: $(srcdir)/emulparams/elf64ltsmip_fbsd.sh \ + $(srcdir)/emulparams/elf64btsmip_fbsd.sh $(srcdir)/emulparams/elf64bmip-defs.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64ltsmip_fbsd "$(tdir_elf64ltsmip_fbsd)" eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)" diff --git a/ld/Makefile.in b/ld/Makefile.in index dd5bd2d..9227ca1 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -490,10 +490,14 @@ ALL_EMULATION_SOURCES = \ eelf32bmip.c \ eelf32bmipn32.c \ eelf32btsmip.c \ + eelf32btsmip_fbsd.c \ eelf32crx.c \ eelf32btsmipn32.c \ + eelf32btsmipn32_fbsd.c \ eelf32ltsmip.c \ + eelf32ltsmip_fbsd.c \ eelf32ltsmipn32.c \ + eelf32ltsmipn32_fbsd.c \ eelf32ebmip.c \ eelf32ebmipvxworks.c \ eelf32elmip.c \ @@ -756,7 +760,9 @@ ALL_64_EMULATION_SOURCES = \ eelf64alpha_nbsd.c \ eelf64bmip.c \ eelf64btsmip.c \ + eelf64btsmip_fbsd.c \ eelf64ltsmip.c \ + eelf64ltsmip_fbsd.c \ eelf64hppa.c \ eelf64mmix.c \ emmo.c \ @@ -1065,7 +1071,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32bmip.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32bmipn32.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32btsmip.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32btsmip_fbsd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32btsmipn32.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32btsmipn32_fbsd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32cr16.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32cr16c.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32crx.Po@am__quote@ @@ -1088,7 +1096,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lppcnto.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lppcsim.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32ltsmip.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32ltsmip_fbsd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32ltsmipn32.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32ltsmipn32_fbsd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32m32c.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32mb_linux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32mcore.Po@am__quote@ @@ -1124,9 +1134,11 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64alpha_nbsd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64bmip.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64btsmip.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64btsmip_fbsd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64hppa.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64lppc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64ltsmip.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64ltsmip_fbsd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64mmix.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64ppc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386.Po@am__quote@ @@ -2357,6 +2369,10 @@ eelf32btsmip.c: $(srcdir)/emulparams/elf32btsmip.sh \ $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32btsmip "$(tdir_elf32btsmip)" +eelf32btsmip_fbsd.c: $(srcdir)/emulparams/elf32btsmip_fbsd.sh \ + $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32btsmip_fbsd "$(tdir_elf32btsmip_fbsd)" eelf32crx.c: $(srcdir)/emulparams/elf32crx.sh \ $(ELF_DEPS) $(srcdir)/emultempl/crxelf.em \ $(srcdir)/scripttempl/elf32crx.sc ${GEN_DEPENDS} @@ -2365,16 +2381,30 @@ eelf32btsmipn32.c: $(srcdir)/emulparams/elf32btsmipn32.sh \ $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32btsmipn32 "$(tdir_elf32btsmipn32)" +eelf32btsmipn32_fbsd.c: $(srcdir)/emulparams/elf32btsmipn32_fbsd.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32btsmipn32_fbsd "$(tdir_elf32btsmipn32_fbsd)" eelf32ltsmip.c: $(srcdir)/emulparams/elf32ltsmip.sh \ $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \ $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} elf32ltsmip "$(tdir_elf32ltsmip)" +eelf32ltsmip_fbsd.c: $(srcdir)/emulparams/elf32ltsmip_fbsd.sh \ + $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} elf32ltsmip_fbsd "$(tdir_elf32ltsmip_fbsd)" eelf32ltsmipn32.c: $(srcdir)/emulparams/elf32ltsmipn32.sh \ $(srcdir)/emulparams/elf32btsmipn32.sh \ $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ltsmipn32 "$(tdir_elf32ltsmipn32)" +eelf32ltsmipn32_fbsd.c: $(srcdir)/emulparams/elf32ltsmipn32_fbsd.sh \ + $(srcdir)/emulparams/elf32btsmipn32.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32ltsmipn32_fbsd "$(tdir_elf32ltsmipn32_fbsd)" eelf32ebmip.c: $(srcdir)/emulparams/elf32ebmip.sh \ $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -2582,11 +2612,21 @@ eelf64btsmip.c: $(srcdir)/emulparams/elf64btsmip.sh \ $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64btsmip "$(tdir_elf64btsmip)" +eelf64btsmip_fbsd.c: $(srcdir)/emulparams/elf64btsmip_fbsd.sh \ + $(srcdir)/emulparams/elf64bmip-defs.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64btsmip_fbsd "$(tdir_elf64btsmip_fbsd)" eelf64ltsmip.c: $(srcdir)/emulparams/elf64ltsmip.sh \ $(srcdir)/emulparams/elf64btsmip.sh $(srcdir)/emulparams/elf64bmip-defs.sh \ $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64ltsmip "$(tdir_elf64ltsmip)" +eelf64ltsmip_fbsd.c: $(srcdir)/emulparams/elf64ltsmip_fbsd.sh \ + $(srcdir)/emulparams/elf64btsmip_fbsd.sh $(srcdir)/emulparams/elf64bmip-defs.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64ltsmip_fbsd "$(tdir_elf64ltsmip_fbsd)" eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)" diff --git a/ld/configure.tgt b/ld/configure.tgt index 44fae09..4025837 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -413,6 +413,22 @@ mips*el-*-linux-*) targ_emul=elf32ltsmip mips*-*-linux-*) targ_emul=elf32btsmip targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" targ_extra_libpath=$targ_extra_emuls ;; +mips64*el-*-freebsd-* | mips64*el-*-kfreebsd*-gnu) + targ_emul=elf32ltsmipn32_fbsd + targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd" + targ_extra_libpath=$targ_extra_emuls ;; +mips64*-*-freebsd-* | mips64*-*-kfreebsd*-gnu) + targ_emul=elf32btsmipn32_fbsd + targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd" + targ_extra_libpath=$targ_extra_emuls ;; +mips*el-*-freebsd-* | mips*el-*-kfreebsd*-gnu) + targ_emul=elf32ltsmip_fbsd + targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmipn32_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd" + targ_extra_libpath=$targ_extra_emuls ;; +mips*-*-freebsd-* | mips*-*-kfreebsd*-gnu) + targ_emul=elf32btsmip_fbsd + targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmipn32_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd" + targ_extra_libpath=$targ_extra_emuls ;; mips*-*-lnews*) targ_emul=mipslnews ;; mips*-*-sysv4*) targ_emul=elf32btsmip ;; diff --git a/ld/emulparams/elf32btsmip_fbsd.sh b/ld/emulparams/elf32btsmip_fbsd.sh new file mode 100644 index 0000000..e2a9011 --- /dev/null +++ b/ld/emulparams/elf32btsmip_fbsd.sh @@ -0,0 +1,5 @@ +. ${srcdir}/emulparams/elf32btsmip.sh +. ${srcdir}/emulparams/elf_fbsd.sh +OUTPUT_FORMAT="elf32-tradbigmips-freebsd" +BIG_OUTPUT_FORMAT="elf32-tradbigmips-freebsd" +LITTLE_OUTPUT_FORMAT="elf32-tradlittlemips-freebsd" diff --git a/ld/emulparams/elf32btsmipn32_fbsd.sh b/ld/emulparams/elf32btsmipn32_fbsd.sh new file mode 100644 index 0000000..83e2e44 --- /dev/null +++ b/ld/emulparams/elf32btsmipn32_fbsd.sh @@ -0,0 +1,5 @@ +. ${srcdir}/emulparams/elf32ltsmipn32.sh +. ${srcdir}/emulparams/elf_fbsd.sh +OUTPUT_FORMAT="elf32-ntradbigmips-freebsd" +BIG_OUTPUT_FORMAT="elf32-ntradbigmips-freebsd" +LITTLE_OUTPUT_FORMAT="elf32-ntradlittlemips-freebsd" diff --git a/ld/emulparams/elf32ltsmip_fbsd.sh b/ld/emulparams/elf32ltsmip_fbsd.sh new file mode 100644 index 0000000..98cb987 --- /dev/null +++ b/ld/emulparams/elf32ltsmip_fbsd.sh @@ -0,0 +1,5 @@ +. ${srcdir}/emulparams/elf32ltsmip.sh +. ${srcdir}/emulparams/elf_fbsd.sh +OUTPUT_FORMAT="elf32-tradlittlemips-freebsd" +BIG_OUTPUT_FORMAT="elf32-tradbigmips-freebsd" +LITTLE_OUTPUT_FORMAT="elf32-tradlittlemips-freebsd" diff --git a/ld/emulparams/elf32ltsmipn32_fbsd.sh b/ld/emulparams/elf32ltsmipn32_fbsd.sh new file mode 100644 index 0000000..1d39f69 --- /dev/null +++ b/ld/emulparams/elf32ltsmipn32_fbsd.sh @@ -0,0 +1,5 @@ +. ${srcdir}/emulparams/elf32ltsmipn32.sh +. ${srcdir}/emulparams/elf_fbsd.sh +OUTPUT_FORMAT="elf32-ntradlittlemips-freebsd" +BIG_OUTPUT_FORMAT="elf32-ntradbigmips-freebsd" +LITTLE_OUTPUT_FORMAT="elf32-ntradlittlemips-freebsd" diff --git a/ld/emulparams/elf64btsmip_fbsd.sh b/ld/emulparams/elf64btsmip_fbsd.sh new file mode 100644 index 0000000..32889b4 --- /dev/null +++ b/ld/emulparams/elf64btsmip_fbsd.sh @@ -0,0 +1,5 @@ +. ${srcdir}/emulparams/elf64btsmip.sh +. ${srcdir}/emulparams/elf_fbsd.sh +OUTPUT_FORMAT="elf64-tradbigmips-freebsd" +BIG_OUTPUT_FORMAT="elf64-tradbigmips-freebsd" +LITTLE_OUTPUT_FORMAT="elf64-tradlittlemips-freebsd" diff --git a/ld/emulparams/elf64ltsmip_fbsd.sh b/ld/emulparams/elf64ltsmip_fbsd.sh new file mode 100644 index 0000000..0cd0616 --- /dev/null +++ b/ld/emulparams/elf64ltsmip_fbsd.sh @@ -0,0 +1,5 @@ +. ${srcdir}/emulparams/elf64ltsmip.sh +. ${srcdir}/emulparams/elf_fbsd.sh +OUTPUT_FORMAT="elf64-tradlittlemips-freebsd" +BIG_OUTPUT_FORMAT="elf64-tradbigmips-freebsd" +LITTLE_OUTPUT_FORMAT="elf64-tradlittlemips-freebsd" diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 33e6c91..681c326 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2010-12-31 Richard Sandiford <rdsandiford@googlemail.com> + + * ld-mips-elf/mips-elf-flags.exp: Handle FreeBSD targets. + * ld-mips-elf/mips-elf.exp: Likewise. + * ld-mips-elf/mips16-call-global.d: Accept any file format. + * ld-mips-elf/mips16-intermix.d: Likewise. + 2010-12-28 H.J. Lu <hongjiu.lu@intel.com> PR ld/12327 diff --git a/ld/testsuite/ld-mips-elf/mips-elf-flags.exp b/ld/testsuite/ld-mips-elf/mips-elf-flags.exp index 512cf51..a7e4453 100644 --- a/ld/testsuite/ld-mips-elf/mips-elf-flags.exp +++ b/ld/testsuite/ld-mips-elf/mips-elf-flags.exp @@ -28,6 +28,10 @@ if {[istarget mips*-*-irix6*]} { set ldemul "-melf32ltsmip" } elseif {[istarget mips*-*-linux*]} { set ldemul "-melf32btsmip" +} elseif {[istarget mips*el-*-*freebsd*]} { + set ldemul "-melf32ltsmip_fbsd" +} elseif {[istarget mips*-*-*freebsd*]} { + set ldemul "-melf32btsmip_fbsd" } else { set ldemul "" } diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp index 6c283e2..71c8bcc 100644 --- a/ld/testsuite/ld-mips-elf/mips-elf.exp +++ b/ld/testsuite/ld-mips-elf/mips-elf.exp @@ -109,6 +109,9 @@ if { $linux_gnu } { if { [istarget mips64*-linux-gnu] } { set o32_as_flags "-32 -EB" set o32_ld_flags "-melf32btsmip" +} elseif { [istarget mips64*-*freebsd*] } { + set o32_as_flags "-32 -EB" + set o32_ld_flags "-melf32btsmip_fbsd" } else { set o32_as_flags "" set o32_ld_flags "" diff --git a/ld/testsuite/ld-mips-elf/mips16-call-global.d b/ld/testsuite/ld-mips-elf/mips16-call-global.d index 051ebcd..390d84c 100644 --- a/ld/testsuite/ld-mips-elf/mips16-call-global.d +++ b/ld/testsuite/ld-mips-elf/mips16-call-global.d @@ -1,5 +1,5 @@ -.*: file format elf.*mips +.*: file format .* Disassembly of section .text: diff --git a/ld/testsuite/ld-mips-elf/mips16-intermix.d b/ld/testsuite/ld-mips-elf/mips16-intermix.d index cc8c1fe..10c7270 100644 --- a/ld/testsuite/ld-mips-elf/mips16-intermix.d +++ b/ld/testsuite/ld-mips-elf/mips16-intermix.d @@ -1,5 +1,5 @@ -.*: +file format elf.*mips +.*: +file format .* SYMBOL TABLE: #... |