Add support for OpenRISC 32-bit embedded processor
This commit is contained in:
parent
6d9c411afd
commit
3b16e843f2
@ -1,3 +1,22 @@
|
||||
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
* coff-or32.c: New file.
|
||||
* cpu-or32.c: New file.
|
||||
* elf32-or32.c: New file.
|
||||
* archures.c: Add support for or32.
|
||||
* targets.c: Add support for or32.
|
||||
* bfd-in2.h: Regenerate.
|
||||
* coffcode.h (coff_set_arch_mach_hook, coff_set_flags,
|
||||
coff_write_object_contents): Add support for or32.
|
||||
* config.bfd: Add target.
|
||||
* configure.in: Add support for or32.
|
||||
* configure: Regenerate.
|
||||
* Makefile.am: Add support for or32.
|
||||
* Makefile.in: Regenerate.
|
||||
* doc/Makefile.in: Regenerate.
|
||||
* po/SRC-POTFILES.in: Add or32 files.
|
||||
* po/bfd.pot: Regenerate.
|
||||
|
||||
2002-01-31 Nick Clifton <nickc@cambridge.redhat.com>
|
||||
Don Lindsay <lindsayd@cisco.com>
|
||||
|
||||
|
@ -73,6 +73,7 @@ ALL_MACHINES = \
|
||||
cpu-mcore.lo \
|
||||
cpu-mips.lo \
|
||||
cpu-mmix.lo \
|
||||
cpu-or32.lo \
|
||||
cpu-ns32k.lo \
|
||||
cpu-openrisc.lo \
|
||||
cpu-pdp11.lo \
|
||||
@ -120,6 +121,7 @@ ALL_MACHINES_CFILES = \
|
||||
cpu-mcore.c \
|
||||
cpu-mips.c \
|
||||
cpu-mmix.c \
|
||||
cpu-or32.c \
|
||||
cpu-ns32k.c \
|
||||
cpu-openrisc.c \
|
||||
cpu-pdp11.c \
|
||||
@ -168,6 +170,7 @@ BFD32_BACKENDS = \
|
||||
coff-m68k.lo \
|
||||
coff-m88k.lo \
|
||||
coff-mips.lo \
|
||||
coff-or32.lo \
|
||||
coff-rs6000.lo \
|
||||
coff-sh.lo \
|
||||
coff-sparc.lo \
|
||||
@ -212,6 +215,7 @@ BFD32_BACKENDS = \
|
||||
elf32-mcore.lo \
|
||||
elf32-mips.lo \
|
||||
elf32-openrisc.lo \
|
||||
elf32-or32.lo \
|
||||
elf32-pj.lo \
|
||||
elf32-ppc.lo \
|
||||
elf32-s390.lo \
|
||||
@ -313,6 +317,7 @@ BFD32_BACKENDS_CFILES = \
|
||||
coff-m68k.c \
|
||||
coff-m88k.c \
|
||||
coff-mips.c \
|
||||
coff-or32.c \
|
||||
coff-rs6000.c \
|
||||
coff-sh.c \
|
||||
coff-sparc.c \
|
||||
@ -356,6 +361,7 @@ BFD32_BACKENDS_CFILES = \
|
||||
elf32-mcore.c \
|
||||
elf32-mips.c \
|
||||
elf32-openrisc.c \
|
||||
elf32-or32.c \
|
||||
elf32-pj.c \
|
||||
elf32-ppc.c \
|
||||
elf32-s390.c \
|
||||
@ -1113,6 +1119,10 @@ elf32-openrisc.lo: elf32-openrisc.c $(INCDIR)/filenames.h \
|
||||
$(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/openrisc.h \
|
||||
$(INCDIR)/elf/reloc-macros.h $(INCDIR)/libiberty.h \
|
||||
elf32-target.h
|
||||
elf32-or32.lo: elf32-or32.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/avr.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf32-target.h
|
||||
elf32-pj.lo: elf32-pj.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
|
||||
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
$(INCDIR)/elf/external.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/reloc-macros.h \
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -199,6 +199,7 @@ ALL_MACHINES = \
|
||||
cpu-mcore.lo \
|
||||
cpu-mips.lo \
|
||||
cpu-mmix.lo \
|
||||
cpu-or32.lo \
|
||||
cpu-ns32k.lo \
|
||||
cpu-openrisc.lo \
|
||||
cpu-pdp11.lo \
|
||||
@ -247,6 +248,7 @@ ALL_MACHINES_CFILES = \
|
||||
cpu-mcore.c \
|
||||
cpu-mips.c \
|
||||
cpu-mmix.c \
|
||||
cpu-or32.c \
|
||||
cpu-ns32k.c \
|
||||
cpu-openrisc.c \
|
||||
cpu-pdp11.c \
|
||||
@ -296,6 +298,7 @@ BFD32_BACKENDS = \
|
||||
coff-m68k.lo \
|
||||
coff-m88k.lo \
|
||||
coff-mips.lo \
|
||||
coff-or32.lo \
|
||||
coff-rs6000.lo \
|
||||
coff-sh.lo \
|
||||
coff-sparc.lo \
|
||||
@ -340,6 +343,7 @@ BFD32_BACKENDS = \
|
||||
elf32-mcore.lo \
|
||||
elf32-mips.lo \
|
||||
elf32-openrisc.lo \
|
||||
elf32-or32.lo \
|
||||
elf32-pj.lo \
|
||||
elf32-ppc.lo \
|
||||
elf32-s390.lo \
|
||||
@ -442,6 +446,7 @@ BFD32_BACKENDS_CFILES = \
|
||||
coff-m68k.c \
|
||||
coff-m88k.c \
|
||||
coff-mips.c \
|
||||
coff-or32.c \
|
||||
coff-rs6000.c \
|
||||
coff-sh.c \
|
||||
coff-sparc.c \
|
||||
@ -485,6 +490,7 @@ BFD32_BACKENDS_CFILES = \
|
||||
elf32-mcore.c \
|
||||
elf32-mips.c \
|
||||
elf32-openrisc.c \
|
||||
elf32-or32.c \
|
||||
elf32-pj.c \
|
||||
elf32-ppc.c \
|
||||
elf32-s390.c \
|
||||
@ -740,7 +746,7 @@ configure.in
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = tar
|
||||
TAR = gtar
|
||||
GZIP_ENV = --best
|
||||
SOURCES = $(libbfd_a_SOURCES) $(libbfd_la_SOURCES)
|
||||
OBJECTS = $(libbfd_a_OBJECTS) $(libbfd_la_OBJECTS)
|
||||
@ -907,7 +913,7 @@ maintainer-clean-recursive:
|
||||
dot_seen=no; \
|
||||
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
rev="$$subdir $$rev"; \
|
||||
test "$$subdir" = "." && dot_seen=yes; \
|
||||
test "$$subdir" != "." || dot_seen=yes; \
|
||||
done; \
|
||||
test "$$dot_seen" = "no" && rev=". $$rev"; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
@ -1657,6 +1663,10 @@ elf32-openrisc.lo: elf32-openrisc.c $(INCDIR)/filenames.h \
|
||||
$(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/openrisc.h \
|
||||
$(INCDIR)/elf/reloc-macros.h $(INCDIR)/libiberty.h \
|
||||
elf32-target.h
|
||||
elf32-or32.lo: elf32-or32.c $(INCDIR)/filenames.h elf-bfd.h \
|
||||
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
|
||||
$(INCDIR)/bfdlink.h $(INCDIR)/elf/avr.h $(INCDIR)/elf/reloc-macros.h \
|
||||
elf32-target.h
|
||||
elf32-pj.lo: elf32-pj.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
|
||||
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
|
||||
$(INCDIR)/elf/external.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/reloc-macros.h \
|
||||
|
125
bfd/archures.c
125
bfd/archures.c
@ -1,6 +1,6 @@
|
||||
/* BFD library support routines for architectures.
|
||||
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
2000, 2001
|
||||
2000, 2001, 2002
|
||||
Free Software Foundation, Inc.
|
||||
Hacked by John Gilmore and Steve Chamberlain of Cygnus Support.
|
||||
|
||||
@ -103,6 +103,8 @@ DESCRIPTION
|
||||
.#define bfd_mach_i960_jx 7
|
||||
.#define bfd_mach_i960_hx 8
|
||||
.
|
||||
. bfd_arch_or32, {* OpenRISC 32 *}
|
||||
.
|
||||
. bfd_arch_a29k, {* AMD 29000 *}
|
||||
. bfd_arch_sparc, {* SPARC *}
|
||||
.#define bfd_mach_sparc 1
|
||||
@ -293,16 +295,20 @@ DESCRIPTION
|
||||
. boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *));
|
||||
.
|
||||
. const struct bfd_arch_info *next;
|
||||
.} bfd_arch_info_type;
|
||||
.}
|
||||
.bfd_arch_info_type;
|
||||
.
|
||||
*/
|
||||
|
||||
extern const bfd_arch_info_type bfd_a29k_arch;
|
||||
extern const bfd_arch_info_type bfd_alpha_arch;
|
||||
extern const bfd_arch_info_type bfd_arc_arch;
|
||||
extern const bfd_arch_info_type bfd_arm_arch;
|
||||
extern const bfd_arch_info_type bfd_avr_arch;
|
||||
extern const bfd_arch_info_type bfd_cris_arch;
|
||||
extern const bfd_arch_info_type bfd_d10v_arch;
|
||||
extern const bfd_arch_info_type bfd_d30v_arch;
|
||||
extern const bfd_arch_info_type bfd_fr30_arch;
|
||||
extern const bfd_arch_info_type bfd_h8300_arch;
|
||||
extern const bfd_arch_info_type bfd_h8500_arch;
|
||||
extern const bfd_arch_info_type bfd_hppa_arch;
|
||||
@ -310,86 +316,87 @@ extern const bfd_arch_info_type bfd_i370_arch;
|
||||
extern const bfd_arch_info_type bfd_i386_arch;
|
||||
extern const bfd_arch_info_type bfd_i860_arch;
|
||||
extern const bfd_arch_info_type bfd_i960_arch;
|
||||
extern const bfd_arch_info_type bfd_ia64_arch;
|
||||
extern const bfd_arch_info_type bfd_m32r_arch;
|
||||
extern const bfd_arch_info_type bfd_m68hc11_arch;
|
||||
extern const bfd_arch_info_type bfd_m68hc12_arch;
|
||||
extern const bfd_arch_info_type bfd_m68k_arch;
|
||||
extern const bfd_arch_info_type bfd_m88k_arch;
|
||||
extern const bfd_arch_info_type bfd_mcore_arch;
|
||||
extern const bfd_arch_info_type bfd_mips_arch;
|
||||
extern const bfd_arch_info_type bfd_mmix_arch;
|
||||
extern const bfd_arch_info_type bfd_mn10200_arch;
|
||||
extern const bfd_arch_info_type bfd_mn10300_arch;
|
||||
extern const bfd_arch_info_type bfd_ns32k_arch;
|
||||
extern const bfd_arch_info_type bfd_openrisc_arch;
|
||||
extern const bfd_arch_info_type bfd_or32_arch;
|
||||
extern const bfd_arch_info_type bfd_pdp11_arch;
|
||||
extern const bfd_arch_info_type bfd_pj_arch;
|
||||
extern const bfd_arch_info_type bfd_powerpc_arch;
|
||||
extern const bfd_arch_info_type bfd_rs6000_arch;
|
||||
extern const bfd_arch_info_type bfd_pj_arch;
|
||||
extern const bfd_arch_info_type bfd_s390_arch;
|
||||
extern const bfd_arch_info_type bfd_sh_arch;
|
||||
extern const bfd_arch_info_type bfd_sparc_arch;
|
||||
extern const bfd_arch_info_type bfd_tic30_arch;
|
||||
extern const bfd_arch_info_type bfd_tic54x_arch;
|
||||
extern const bfd_arch_info_type bfd_tic80_arch;
|
||||
extern const bfd_arch_info_type bfd_v850_arch;
|
||||
extern const bfd_arch_info_type bfd_vax_arch;
|
||||
extern const bfd_arch_info_type bfd_we32k_arch;
|
||||
extern const bfd_arch_info_type bfd_z8k_arch;
|
||||
extern const bfd_arch_info_type bfd_ns32k_arch;
|
||||
extern const bfd_arch_info_type bfd_w65_arch;
|
||||
extern const bfd_arch_info_type bfd_v850_arch;
|
||||
extern const bfd_arch_info_type bfd_fr30_arch;
|
||||
extern const bfd_arch_info_type bfd_mcore_arch;
|
||||
extern const bfd_arch_info_type bfd_avr_arch;
|
||||
extern const bfd_arch_info_type bfd_ia64_arch;
|
||||
extern const bfd_arch_info_type bfd_s390_arch;
|
||||
extern const bfd_arch_info_type bfd_openrisc_arch;
|
||||
extern const bfd_arch_info_type bfd_mmix_arch;
|
||||
extern const bfd_arch_info_type bfd_xstormy16_arch;
|
||||
extern const bfd_arch_info_type bfd_z8k_arch;
|
||||
|
||||
static const bfd_arch_info_type * const bfd_archures_list[] = {
|
||||
static const bfd_arch_info_type * const bfd_archures_list[] =
|
||||
{
|
||||
#ifdef SELECT_ARCHITECTURES
|
||||
SELECT_ARCHITECTURES,
|
||||
SELECT_ARCHITECTURES,
|
||||
#else
|
||||
&bfd_a29k_arch,
|
||||
&bfd_alpha_arch,
|
||||
&bfd_arc_arch,
|
||||
&bfd_arm_arch,
|
||||
&bfd_cris_arch,
|
||||
&bfd_d10v_arch,
|
||||
&bfd_d30v_arch,
|
||||
&bfd_h8300_arch,
|
||||
&bfd_h8500_arch,
|
||||
&bfd_hppa_arch,
|
||||
&bfd_i370_arch,
|
||||
&bfd_i386_arch,
|
||||
&bfd_i860_arch,
|
||||
&bfd_i960_arch,
|
||||
&bfd_m32r_arch,
|
||||
&bfd_m68hc11_arch,
|
||||
&bfd_m68hc12_arch,
|
||||
&bfd_m68k_arch,
|
||||
&bfd_m88k_arch,
|
||||
&bfd_mips_arch,
|
||||
&bfd_mn10200_arch,
|
||||
&bfd_mn10300_arch,
|
||||
&bfd_pdp11_arch,
|
||||
&bfd_powerpc_arch,
|
||||
&bfd_rs6000_arch,
|
||||
&bfd_sh_arch,
|
||||
&bfd_sparc_arch,
|
||||
&bfd_tic30_arch,
|
||||
&bfd_tic54x_arch,
|
||||
&bfd_tic80_arch,
|
||||
&bfd_vax_arch,
|
||||
&bfd_we32k_arch,
|
||||
&bfd_z8k_arch,
|
||||
&bfd_ns32k_arch,
|
||||
&bfd_w65_arch,
|
||||
&bfd_v850_arch,
|
||||
&bfd_fr30_arch,
|
||||
&bfd_mcore_arch,
|
||||
&bfd_avr_arch,
|
||||
&bfd_ia64_arch,
|
||||
&bfd_s390_arch,
|
||||
&bfd_openrisc_arch,
|
||||
&bfd_mmix_arch,
|
||||
&bfd_xstormy16_arch,
|
||||
&bfd_a29k_arch,
|
||||
&bfd_alpha_arch,
|
||||
&bfd_arc_arch,
|
||||
&bfd_arm_arch,
|
||||
&bfd_avr_arch,
|
||||
&bfd_cris_arch,
|
||||
&bfd_d10v_arch,
|
||||
&bfd_d30v_arch,
|
||||
&bfd_fr30_arch,
|
||||
&bfd_h8300_arch,
|
||||
&bfd_h8500_arch,
|
||||
&bfd_hppa_arch,
|
||||
&bfd_i370_arch,
|
||||
&bfd_i386_arch,
|
||||
&bfd_i860_arch,
|
||||
&bfd_i960_arch,
|
||||
&bfd_ia64_arch,
|
||||
&bfd_m32r_arch,
|
||||
&bfd_m68hc11_arch,
|
||||
&bfd_m68hc12_arch,
|
||||
&bfd_m68k_arch,
|
||||
&bfd_m88k_arch,
|
||||
&bfd_mcore_arch,
|
||||
&bfd_mips_arch,
|
||||
&bfd_mmix_arch,
|
||||
&bfd_mn10200_arch,
|
||||
&bfd_mn10300_arch,
|
||||
&bfd_ns32k_arch,
|
||||
&bfd_openrisc_arch,
|
||||
&bfd_or32_arch,
|
||||
&bfd_pdp11_arch,
|
||||
&bfd_powerpc_arch,
|
||||
&bfd_rs6000_arch,
|
||||
&bfd_s390_arch,
|
||||
&bfd_sh_arch,
|
||||
&bfd_sparc_arch,
|
||||
&bfd_tic30_arch,
|
||||
&bfd_tic54x_arch,
|
||||
&bfd_tic80_arch,
|
||||
&bfd_v850_arch,
|
||||
&bfd_vax_arch,
|
||||
&bfd_w65_arch,
|
||||
&bfd_we32k_arch,
|
||||
&bfd_xstormy16_arch,
|
||||
&bfd_z8k_arch,
|
||||
#endif
|
||||
0
|
||||
};
|
||||
|
@ -1481,6 +1481,8 @@ enum bfd_architecture
|
||||
#define bfd_mach_i960_jx 7
|
||||
#define bfd_mach_i960_hx 8
|
||||
|
||||
bfd_arch_or32, /* OpenRISC 32 */
|
||||
|
||||
bfd_arch_a29k, /* AMD 29000 */
|
||||
bfd_arch_sparc, /* SPARC */
|
||||
#define bfd_mach_sparc 1
|
||||
@ -1661,7 +1663,9 @@ typedef struct bfd_arch_info
|
||||
boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *));
|
||||
|
||||
const struct bfd_arch_info *next;
|
||||
} bfd_arch_info_type;
|
||||
}
|
||||
bfd_arch_info_type;
|
||||
|
||||
const char *
|
||||
bfd_printable_name PARAMS ((bfd *abfd));
|
||||
|
||||
|
634
bfd/coff-or32.c
Normal file
634
bfd/coff-or32.c
Normal file
@ -0,0 +1,634 @@
|
||||
/* BFD back-end for OpenRISC 1000 COFF binaries.
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define OR32 1
|
||||
|
||||
#include "bfd.h"
|
||||
#include "sysdep.h"
|
||||
#include "libbfd.h"
|
||||
#include "coff/or32.h"
|
||||
#include "coff/internal.h"
|
||||
#include "libcoff.h"
|
||||
|
||||
static long get_symbol_value PARAMS ((asymbol *));
|
||||
static bfd_reloc_status_type or1_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
|
||||
static boolean coff_or1_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **));
|
||||
static boolean coff_or1_adjust_symndx PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, struct internal_reloc *, boolean *));
|
||||
|
||||
#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (2)
|
||||
|
||||
#define INSERT_HWORD(WORD,HWORD) \
|
||||
(((WORD) & 0xffff0000) | ((HWORD)& 0x0000ffff))
|
||||
#define EXTRACT_HWORD(WORD) \
|
||||
((WORD) & 0x0000ffff)
|
||||
#define SIGN_EXTEND_HWORD(HWORD) \
|
||||
((HWORD) & 0x8000 ? (HWORD)|(~0xffffL) : (HWORD))
|
||||
|
||||
#define INSERT_JUMPTARG(WORD,JT) \
|
||||
(((WORD) & 0xfc000000) | ((JT)& 0x03ffffff))
|
||||
#define EXTRACT_JUMPTARG(WORD) \
|
||||
((WORD) & 0x03ffffff)
|
||||
#define SIGN_EXTEND_JUMPTARG(JT) \
|
||||
((JT) & 0x04000000 ? (JT)|(~0x03ffffffL) : (JT))
|
||||
|
||||
/* Provided the symbol, returns the value reffed. */
|
||||
|
||||
static long
|
||||
get_symbol_value (symbol)
|
||||
asymbol *symbol;
|
||||
{
|
||||
long relocation = 0;
|
||||
|
||||
if (bfd_is_com_section (symbol->section))
|
||||
relocation = 0;
|
||||
else
|
||||
relocation = symbol->value +
|
||||
symbol->section->output_section->vma +
|
||||
symbol->section->output_offset;
|
||||
|
||||
return relocation;
|
||||
}
|
||||
|
||||
/* This function is in charge of performing all the or32 relocations. */
|
||||
|
||||
static bfd_reloc_status_type
|
||||
or32_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
|
||||
error_message)
|
||||
bfd *abfd;
|
||||
arelent *reloc_entry;
|
||||
asymbol *symbol_in;
|
||||
PTR data;
|
||||
asection *input_section;
|
||||
bfd *output_bfd;
|
||||
char **error_message;
|
||||
{
|
||||
/* The consth relocation comes in two parts, we have to remember
|
||||
the state between calls, in these variables. */
|
||||
static boolean part1_consth_active = false;
|
||||
static unsigned long part1_consth_value;
|
||||
|
||||
unsigned long insn;
|
||||
unsigned long sym_value;
|
||||
unsigned long unsigned_value;
|
||||
unsigned short r_type;
|
||||
long signed_value;
|
||||
|
||||
unsigned long addr = reloc_entry->address ; /*+ input_section->vma*/
|
||||
bfd_byte *hit_data =addr + (bfd_byte *)(data);
|
||||
|
||||
r_type = reloc_entry->howto->type;
|
||||
|
||||
if (output_bfd)
|
||||
{
|
||||
/* Partial linking - do nothing. */
|
||||
reloc_entry->address += input_section->output_offset;
|
||||
return bfd_reloc_ok;
|
||||
}
|
||||
|
||||
if (symbol_in != NULL
|
||||
&& bfd_is_und_section (symbol_in->section))
|
||||
{
|
||||
/* Keep the state machine happy in case we're called again. */
|
||||
if (r_type == R_IHIHALF)
|
||||
{
|
||||
part1_consth_active = true;
|
||||
part1_consth_value = 0;
|
||||
}
|
||||
|
||||
return bfd_reloc_undefined;
|
||||
}
|
||||
|
||||
if ((part1_consth_active) && (r_type != R_IHCONST))
|
||||
{
|
||||
part1_consth_active = false;
|
||||
*error_message = (char *) "Missing IHCONST";
|
||||
|
||||
return bfd_reloc_dangerous;
|
||||
}
|
||||
|
||||
sym_value = get_symbol_value (symbol_in);
|
||||
|
||||
switch (r_type)
|
||||
{
|
||||
case R_IREL:
|
||||
insn = bfd_get_32(abfd, hit_data);
|
||||
|
||||
/* Take the value in the field and sign extend it. */
|
||||
signed_value = EXTRACT_JUMPTARG (insn);
|
||||
signed_value = SIGN_EXTEND_JUMPTARG (signed_value);
|
||||
signed_value <<= 2;
|
||||
|
||||
/* See the note on the R_IREL reloc in coff_or32_relocate_section. */
|
||||
if (signed_value == - (long) reloc_entry->address)
|
||||
signed_value = 0;
|
||||
|
||||
signed_value += sym_value + reloc_entry->addend;
|
||||
#if 0
|
||||
if ((signed_value & ~0x3ffff) == 0)
|
||||
{ /* Absolute jmp/call. */
|
||||
insn |= (1<<24); /* Make it absolute. */
|
||||
/* FIXME: Should we change r_type to R_IABS. */
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
/* Relative jmp/call, so subtract from the value the
|
||||
address of the place we're coming from. */
|
||||
signed_value -= (reloc_entry->address
|
||||
+ input_section->output_section->vma
|
||||
+ input_section->output_offset);
|
||||
if (signed_value > 0x7ffffff || signed_value < -0x8000000)
|
||||
return bfd_reloc_overflow;
|
||||
}
|
||||
signed_value >>= 2;
|
||||
insn = INSERT_JUMPTARG (insn, signed_value);
|
||||
bfd_put_32 (abfd, insn, hit_data);
|
||||
break;
|
||||
|
||||
case R_ILOHALF:
|
||||
insn = bfd_get_32 (abfd, hit_data);
|
||||
unsigned_value = EXTRACT_HWORD (insn);
|
||||
unsigned_value += sym_value + reloc_entry->addend;
|
||||
insn = INSERT_HWORD (insn, unsigned_value);
|
||||
bfd_put_32 (abfd, insn, hit_data);
|
||||
break;
|
||||
|
||||
case R_IHIHALF:
|
||||
insn = bfd_get_32 (abfd, hit_data);
|
||||
|
||||
/* consth, part 1
|
||||
Just get the symbol value that is referenced. */
|
||||
part1_consth_active = true;
|
||||
part1_consth_value = sym_value + reloc_entry->addend;
|
||||
|
||||
/* Don't modify insn until R_IHCONST. */
|
||||
break;
|
||||
|
||||
case R_IHCONST:
|
||||
insn = bfd_get_32 (abfd, hit_data);
|
||||
|
||||
/* consth, part 2
|
||||
Now relocate the reference. */
|
||||
if (part1_consth_active == false)
|
||||
{
|
||||
*error_message = (char *) "Missing IHIHALF";
|
||||
return bfd_reloc_dangerous;
|
||||
}
|
||||
|
||||
/* sym_ptr_ptr = r_symndx, in coff_slurp_reloc_table() */
|
||||
unsigned_value = 0; /*EXTRACT_HWORD(insn) << 16;*/
|
||||
unsigned_value += reloc_entry->addend; /* r_symndx */
|
||||
unsigned_value += part1_consth_value;
|
||||
unsigned_value = unsigned_value >> 16;
|
||||
insn = INSERT_HWORD (insn, unsigned_value);
|
||||
part1_consth_active = false;
|
||||
bfd_put_32 (abfd, insn, hit_data);
|
||||
break;
|
||||
|
||||
case R_BYTE:
|
||||
insn = bfd_get_8 (abfd, hit_data);
|
||||
unsigned_value = insn + sym_value + reloc_entry->addend;
|
||||
if (unsigned_value & 0xffffff00)
|
||||
return bfd_reloc_overflow;
|
||||
bfd_put_8 (abfd, unsigned_value, hit_data);
|
||||
break;
|
||||
|
||||
case R_HWORD:
|
||||
insn = bfd_get_16 (abfd, hit_data);
|
||||
unsigned_value = insn + sym_value + reloc_entry->addend;
|
||||
if (unsigned_value & 0xffff0000)
|
||||
return bfd_reloc_overflow;
|
||||
bfd_put_16 (abfd, insn, hit_data);
|
||||
break;
|
||||
|
||||
case R_WORD:
|
||||
insn = bfd_get_32 (abfd, hit_data);
|
||||
insn += sym_value + reloc_entry->addend;
|
||||
bfd_put_32 (abfd, insn, hit_data);
|
||||
break;
|
||||
|
||||
default:
|
||||
*error_message = _("Unrecognized reloc");
|
||||
return bfd_reloc_dangerous;
|
||||
}
|
||||
|
||||
return bfd_reloc_ok;
|
||||
}
|
||||
|
||||
/* type rightshift
|
||||
size
|
||||
bitsize
|
||||
pc-relative
|
||||
bitpos
|
||||
absolute
|
||||
complain_on_overflow
|
||||
special_function
|
||||
relocation name
|
||||
partial_inplace
|
||||
src_mask
|
||||
*/
|
||||
|
||||
/* FIXME: I'm not real sure about this table. */
|
||||
static reloc_howto_type howto_table[] =
|
||||
{
|
||||
{ R_ABS, 0, 3, 32, false, 0, complain_overflow_bitfield, or32_reloc, "ABS", true, 0xffffffff,0xffffffff, false },
|
||||
{1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10},
|
||||
{11}, {12}, {13}, {14}, {15}, {16}, {17}, {18}, {19}, {20},
|
||||
{21}, {22}, {23},
|
||||
{ R_IREL, 0, 3, 32, true, 0, complain_overflow_signed, or32_reloc, "IREL", true, 0xffffffff,0xffffffff, false },
|
||||
{ R_IABS, 0, 3, 32, false, 0, complain_overflow_bitfield, or32_reloc, "IABS", true, 0xffffffff,0xffffffff, false },
|
||||
{ R_ILOHALF, 0, 3, 16, true, 0, complain_overflow_signed, or32_reloc, "ILOHALF", true, 0x0000ffff,0x0000ffff, false },
|
||||
{ R_IHIHALF, 0, 3, 16, true, 16,complain_overflow_signed, or32_reloc, "IHIHALF", true, 0xffff0000,0xffff0000, false },
|
||||
{ R_IHCONST, 0, 3, 16, true, 0, complain_overflow_signed, or32_reloc, "IHCONST", true, 0xffff0000,0xffff0000, false },
|
||||
{ R_BYTE, 0, 0, 8, false, 0, complain_overflow_bitfield, or32_reloc, "BYTE", true, 0x000000ff,0x000000ff, false },
|
||||
{ R_HWORD, 0, 1, 16, false, 0, complain_overflow_bitfield, or32_reloc, "HWORD", true, 0x0000ffff,0x0000ffff, false },
|
||||
{ R_WORD, 0, 2, 32, false, 0, complain_overflow_bitfield, or32_reloc, "WORD", true, 0xffffffff,0xffffffff, false },
|
||||
};
|
||||
|
||||
#define BADMAG(x) OR32BADMAG (x)
|
||||
|
||||
#define RELOC_PROCESSING(relent, reloc, symbols, abfd, section) \
|
||||
reloc_processing (relent, reloc, symbols, abfd, section)
|
||||
|
||||
static void
|
||||
reloc_processing (relent,reloc, symbols, abfd, section)
|
||||
arelent *relent;
|
||||
struct internal_reloc *reloc;
|
||||
asymbol **symbols;
|
||||
bfd *abfd;
|
||||
asection *section;
|
||||
{
|
||||
static bfd_vma ihihalf_vaddr = (bfd_vma) -1;
|
||||
|
||||
relent->address = reloc->r_vaddr;
|
||||
relent->howto = howto_table + reloc->r_type;
|
||||
|
||||
if (reloc->r_type == R_IHCONST)
|
||||
{
|
||||
/* The address of an R_IHCONST should always be the address of
|
||||
the immediately preceding R_IHIHALF. relocs generated by gas
|
||||
are correct, but relocs generated by High C are different (I
|
||||
can't figure out what the address means for High C). We can
|
||||
handle both gas and High C by ignoring the address here, and
|
||||
simply reusing the address saved for R_IHIHALF. */
|
||||
if (ihihalf_vaddr == (bfd_vma) -1)
|
||||
abort ();
|
||||
|
||||
relent->address = ihihalf_vaddr;
|
||||
ihihalf_vaddr = (bfd_vma) -1;
|
||||
relent->addend = reloc->r_symndx;
|
||||
relent->sym_ptr_ptr= bfd_abs_section_ptr->symbol_ptr_ptr;
|
||||
}
|
||||
else
|
||||
{
|
||||
asymbol *ptr;
|
||||
relent->sym_ptr_ptr = symbols + obj_convert (abfd)[reloc->r_symndx];
|
||||
|
||||
ptr = *(relent->sym_ptr_ptr);
|
||||
|
||||
relent->addend = 0;
|
||||
relent->address-= section->vma;
|
||||
|
||||
if (reloc->r_type == R_IHIHALF)
|
||||
ihihalf_vaddr = relent->address;
|
||||
else if (ihihalf_vaddr != (bfd_vma) -1)
|
||||
abort ();
|
||||
}
|
||||
}
|
||||
|
||||
/* The reloc processing routine for the optimized COFF linker. */
|
||||
|
||||
static boolean
|
||||
coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
contents, relocs, syms, sections)
|
||||
bfd *output_bfd;
|
||||
struct bfd_link_info *info;
|
||||
bfd *input_bfd;
|
||||
asection *input_section;
|
||||
bfd_byte *contents;
|
||||
struct internal_reloc *relocs;
|
||||
struct internal_syment *syms;
|
||||
asection **sections;
|
||||
{
|
||||
struct internal_reloc *rel;
|
||||
struct internal_reloc *relend;
|
||||
boolean hihalf;
|
||||
bfd_vma hihalf_val;
|
||||
|
||||
/* If we are performing a relocateable link, we don't need to do a
|
||||
thing. The caller will take care of adjusting the reloc
|
||||
addresses and symbol indices. */
|
||||
if (info->relocateable)
|
||||
return true;
|
||||
|
||||
hihalf = false;
|
||||
hihalf_val = 0;
|
||||
|
||||
rel = relocs;
|
||||
relend = rel + input_section->reloc_count;
|
||||
|
||||
for (; rel < relend; rel++)
|
||||
{
|
||||
long symndx;
|
||||
bfd_byte *loc;
|
||||
struct coff_link_hash_entry *h;
|
||||
struct internal_syment *sym;
|
||||
asection *sec;
|
||||
bfd_vma val;
|
||||
boolean overflow;
|
||||
unsigned long insn;
|
||||
long signed_value;
|
||||
unsigned long unsigned_value;
|
||||
bfd_reloc_status_type rstat;
|
||||
|
||||
symndx = rel->r_symndx;
|
||||
loc = contents + rel->r_vaddr - input_section->vma;
|
||||
|
||||
if (symndx == -1 || rel->r_type == R_IHCONST)
|
||||
h = NULL;
|
||||
else
|
||||
h = obj_coff_sym_hashes (input_bfd)[symndx];
|
||||
|
||||
sym = NULL;
|
||||
sec = NULL;
|
||||
val = 0;
|
||||
|
||||
/* An R_IHCONST reloc does not have a symbol. Instead, the
|
||||
symbol index is an addend. R_IHCONST is always used in
|
||||
conjunction with R_IHHALF. */
|
||||
if (rel->r_type != R_IHCONST)
|
||||
{
|
||||
if (h == NULL)
|
||||
{
|
||||
if (symndx == -1)
|
||||
sec = bfd_abs_section_ptr;
|
||||
else
|
||||
{
|
||||
sym = syms + symndx;
|
||||
sec = sections[symndx];
|
||||
val = (sec->output_section->vma
|
||||
+ sec->output_offset
|
||||
+ sym->n_value
|
||||
- sec->vma);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (h->root.type == bfd_link_hash_defined
|
||||
|| h->root.type == bfd_link_hash_defweak)
|
||||
{
|
||||
sec = h->root.u.def.section;
|
||||
val = (h->root.u.def.value
|
||||
+ sec->output_section->vma
|
||||
+ sec->output_offset);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (! ((*info->callbacks->undefined_symbol)
|
||||
(info, h->root.root.string, input_bfd, input_section,
|
||||
rel->r_vaddr - input_section->vma, true)))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (hihalf)
|
||||
{
|
||||
if (! ((*info->callbacks->reloc_dangerous)
|
||||
(info, "missing IHCONST reloc", input_bfd,
|
||||
input_section, rel->r_vaddr - input_section->vma)))
|
||||
return false;
|
||||
hihalf = false;
|
||||
}
|
||||
}
|
||||
|
||||
overflow = false;
|
||||
|
||||
switch (rel->r_type)
|
||||
{
|
||||
default:
|
||||
bfd_set_error (bfd_error_bad_value);
|
||||
return false;
|
||||
|
||||
case R_IREL:
|
||||
insn = bfd_get_32 (input_bfd, loc);
|
||||
|
||||
/* Extract the addend. */
|
||||
signed_value = EXTRACT_JUMPTARG (insn);
|
||||
signed_value = SIGN_EXTEND_JUMPTARG (signed_value);
|
||||
signed_value <<= 2;
|
||||
|
||||
/* Determine the destination of the jump. */
|
||||
signed_value += val;
|
||||
|
||||
#if 0
|
||||
if ((signed_value & ~0x3ffff) == 0)
|
||||
{
|
||||
/* We can use an absolute jump. */
|
||||
insn |= (1 << 24);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
/* Make the destination PC relative. */
|
||||
signed_value -= (input_section->output_section->vma
|
||||
+ input_section->output_offset
|
||||
+ (rel->r_vaddr - input_section->vma));
|
||||
if (signed_value > 0x7ffffff || signed_value < - 0x8000000)
|
||||
{
|
||||
overflow = true;
|
||||
signed_value = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Put the adjusted value back into the instruction. */
|
||||
signed_value >>= 2;
|
||||
insn = INSERT_JUMPTARG(insn, signed_value);
|
||||
|
||||
bfd_put_32 (input_bfd, (bfd_vma) insn, loc);
|
||||
break;
|
||||
|
||||
case R_ILOHALF:
|
||||
insn = bfd_get_32 (input_bfd, loc);
|
||||
unsigned_value = EXTRACT_HWORD (insn);
|
||||
unsigned_value += val;
|
||||
insn = INSERT_HWORD (insn, unsigned_value);
|
||||
bfd_put_32 (input_bfd, insn, loc);
|
||||
break;
|
||||
|
||||
case R_IHIHALF:
|
||||
/* Save the value for the R_IHCONST reloc. */
|
||||
hihalf = true;
|
||||
hihalf_val = val;
|
||||
break;
|
||||
|
||||
case R_IHCONST:
|
||||
if (! hihalf)
|
||||
{
|
||||
if (! ((*info->callbacks->reloc_dangerous)
|
||||
(info, "missing IHIHALF reloc", input_bfd,
|
||||
input_section, rel->r_vaddr - input_section->vma)))
|
||||
return false;
|
||||
hihalf_val = 0;
|
||||
}
|
||||
|
||||
insn = bfd_get_32 (input_bfd, loc);
|
||||
unsigned_value = rel->r_symndx + hihalf_val;
|
||||
unsigned_value >>= 16;
|
||||
insn = INSERT_HWORD (insn, unsigned_value);
|
||||
bfd_put_32 (input_bfd, (bfd_vma) insn, loc);
|
||||
|
||||
hihalf = false;
|
||||
break;
|
||||
|
||||
case R_BYTE:
|
||||
case R_HWORD:
|
||||
case R_WORD:
|
||||
rstat = _bfd_relocate_contents (howto_table + rel->r_type,
|
||||
input_bfd, val, loc);
|
||||
if (rstat == bfd_reloc_overflow)
|
||||
overflow = true;
|
||||
else if (rstat != bfd_reloc_ok)
|
||||
abort ();
|
||||
break;
|
||||
}
|
||||
|
||||
if (overflow)
|
||||
{
|
||||
const char *name;
|
||||
char buf[SYMNMLEN + 1];
|
||||
|
||||
if (symndx == -1)
|
||||
name = "*ABS*";
|
||||
else if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
else if (sym == NULL)
|
||||
name = "*unknown*";
|
||||
else if (sym->_n._n_n._n_zeroes == 0
|
||||
&& sym->_n._n_n._n_offset != 0)
|
||||
name = obj_coff_strings (input_bfd) + sym->_n._n_n._n_offset;
|
||||
else
|
||||
{
|
||||
strncpy (buf, sym->_n._n_name, SYMNMLEN);
|
||||
buf[SYMNMLEN] = '\0';
|
||||
name = buf;
|
||||
}
|
||||
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto_table[rel->r_type].name, (bfd_vma) 0,
|
||||
input_bfd, input_section,
|
||||
rel->r_vaddr - input_section->vma)))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#define coff_relocate_section coff_or32_relocate_section
|
||||
|
||||
/* We don't want to change the symndx of a R_IHCONST reloc, since it
|
||||
is actually an addend, not a symbol index at all. */
|
||||
|
||||
static boolean
|
||||
coff_or32_adjust_symndx (obfd, info, ibfd, sec, irel, adjustedp)
|
||||
bfd *obfd ATTRIBUTE_UNUSED;
|
||||
struct bfd_link_info *info ATTRIBUTE_UNUSED;
|
||||
bfd *ibfd ATTRIBUTE_UNUSED;
|
||||
asection *sec ATTRIBUTE_UNUSED;
|
||||
struct internal_reloc *irel;
|
||||
boolean *adjustedp;
|
||||
{
|
||||
if (irel->r_type == R_IHCONST)
|
||||
*adjustedp = true;
|
||||
else
|
||||
*adjustedp = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
#define coff_adjust_symndx coff_or32_adjust_symndx
|
||||
|
||||
#include "coffcode.h"
|
||||
|
||||
const bfd_target or32coff_big_vec =
|
||||
{
|
||||
"coff-or32-big", /* Name. */
|
||||
bfd_target_coff_flavour,
|
||||
BFD_ENDIAN_BIG, /* Data byte order is big. */
|
||||
BFD_ENDIAN_BIG, /* Header byte order is big. */
|
||||
|
||||
(HAS_RELOC | EXEC_P | /* Object flags. */
|
||||
HAS_LINENO | HAS_DEBUG |
|
||||
HAS_SYMS | HAS_LOCALS | WP_TEXT),
|
||||
|
||||
(SEC_HAS_CONTENTS | SEC_ALLOC | /* Section flags. */
|
||||
SEC_LOAD | SEC_RELOC |
|
||||
SEC_READONLY ),
|
||||
'_', /* Leading underscore. */
|
||||
'/', /* ar_pad_char. */
|
||||
15, /* ar_max_namelen. */
|
||||
|
||||
/* Data. */
|
||||
bfd_getb64, bfd_getb_signed_64, bfd_putb64,
|
||||
bfd_getb32, bfd_getb_signed_32, bfd_putb32,
|
||||
bfd_getb16, bfd_getb_signed_16, bfd_putb16,
|
||||
|
||||
/* Headers. */
|
||||
bfd_getb64, bfd_getb_signed_64, bfd_putb64,
|
||||
bfd_getb32, bfd_getb_signed_32, bfd_putb32,
|
||||
bfd_getb16, bfd_getb_signed_16, bfd_putb16,
|
||||
|
||||
{
|
||||
_bfd_dummy_target,
|
||||
coff_object_p,
|
||||
bfd_generic_archive_p,
|
||||
_bfd_dummy_target
|
||||
},
|
||||
{
|
||||
bfd_false,
|
||||
coff_mkobject,
|
||||
_bfd_generic_mkarchive,
|
||||
bfd_false
|
||||
},
|
||||
{
|
||||
bfd_false,
|
||||
coff_write_object_contents,
|
||||
_bfd_write_archive_contents,
|
||||
bfd_false
|
||||
},
|
||||
|
||||
BFD_JUMP_TABLE_GENERIC (coff),
|
||||
BFD_JUMP_TABLE_COPY (coff),
|
||||
BFD_JUMP_TABLE_CORE (_bfd_nocore),
|
||||
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff),
|
||||
BFD_JUMP_TABLE_SYMBOLS (coff),
|
||||
BFD_JUMP_TABLE_RELOCS (coff),
|
||||
BFD_JUMP_TABLE_WRITE (coff),
|
||||
BFD_JUMP_TABLE_LINK (coff),
|
||||
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
|
||||
|
||||
/* Alternative_target. */
|
||||
#ifdef TARGET_LITTLE_SYM
|
||||
& TARGET_LITTLE_SYM,
|
||||
#else
|
||||
NULL,
|
||||
#endif
|
||||
|
||||
COFF_SWAP_TABLE
|
||||
};
|
@ -1822,6 +1822,13 @@ coff_set_arch_mach_hook (abfd, filehdr)
|
||||
machine = 0;
|
||||
switch (internal_f->f_magic)
|
||||
{
|
||||
#ifdef OR32_MAGIC_BIG
|
||||
case OR32_MAGIC_BIG:
|
||||
case OR32_MAGIC_LITTLE:
|
||||
arch = bfd_arch_or32;
|
||||
machine = 0;
|
||||
break;
|
||||
#endif
|
||||
#ifdef PPCMAGIC
|
||||
case PPCMAGIC:
|
||||
arch = bfd_arch_powerpc;
|
||||
@ -2779,6 +2786,15 @@ coff_set_flags (abfd, magicp, flagsp)
|
||||
return true;
|
||||
#endif
|
||||
|
||||
#ifdef OR32_MAGIC_BIG
|
||||
case bfd_arch_or32:
|
||||
if (bfd_big_endian (abfd))
|
||||
* magicp = OR32_MAGIC_BIG;
|
||||
else
|
||||
* magicp = OR32_MAGIC_LITTLE;
|
||||
return true;
|
||||
#endif
|
||||
|
||||
default: /* Unknown architecture. */
|
||||
/* Fall through to "return false" below, to avoid
|
||||
"statement never reached" errors on the one below. */
|
||||
@ -3830,6 +3846,11 @@ coff_write_object_contents (abfd)
|
||||
internal_a.magic = MIPS_PE_MAGIC;
|
||||
#endif
|
||||
|
||||
#ifdef OR32
|
||||
#define __A_MAGIC_SET__
|
||||
internal_a.magic = NMAGIC; /* Assume separate i/d. */
|
||||
#endif
|
||||
|
||||
#ifndef __A_MAGIC_SET__
|
||||
#include "Your aouthdr magic number is not being set!"
|
||||
#else
|
||||
|
@ -43,6 +43,7 @@ m6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch" ;;
|
||||
m68*) targ_archs=bfd_m68k_arch ;;
|
||||
m88*) targ_archs=bfd_m88k_arch ;;
|
||||
mips*) targ_archs=bfd_mips_arch ;;
|
||||
or32*) targ_archs=bfd_or32_arch ;;
|
||||
pdp11*) targ_archs=bfd_pdp11_arch ;;
|
||||
pj*) targ_archs="bfd_pj_arch bfd_i386_arch";;
|
||||
powerpc*) targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
|
||||
@ -759,6 +760,15 @@ case "${targ}" in
|
||||
targ_defvec=bfd_elf32_openrisc_vec
|
||||
;;
|
||||
|
||||
or32-*-coff | or32-*-rtems*)
|
||||
targ_defvec=or32coff_big_vec
|
||||
targ_underscore=yes
|
||||
;;
|
||||
|
||||
or32-*-elf)
|
||||
targ_defvec=bfd_elf32_or32_big_vec
|
||||
;;
|
||||
|
||||
pdp11-*-*)
|
||||
targ_defvec=pdp11_aout_vec
|
||||
targ_underscore=yes
|
||||
|
1014
bfd/configure
vendored
1014
bfd/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -573,6 +573,7 @@ do
|
||||
bfd_elf32_mn10200_vec) tb="$tb elf-m10200.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_mn10300_vec) tb="$tb elf-m10300.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_openrisc_vec) tb="$tb elf32-openrisc.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_or32_big_vec) tb="$tb elf32-or32.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_pj_vec) tb="$tb elf32-pj.lo elf32.lo $elf";;
|
||||
bfd_elf32_pjl_vec) tb="$tb elf32-pj.lo elf32.lo $elf";;
|
||||
bfd_elf32_powerpc_vec) tb="$tb elf32-ppc.lo elf32.lo $elf" ;;
|
||||
@ -669,6 +670,7 @@ do
|
||||
nlm32_i386_vec) tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;;
|
||||
nlm32_powerpc_vec) tb="$tb nlm32-ppc.lo nlm32.lo nlm.lo" ;;
|
||||
nlm32_sparc_vec) tb="$tb nlm32-sparc.lo nlm32.lo nlm.lo" ;;
|
||||
or32coff_big_vec) tb="$tb coff-or32.lo cofflink.lo" ;;
|
||||
pc532machaout_vec) tb="$tb pc532-mach.lo aout-ns32k.lo" ;;
|
||||
pc532netbsd_vec) tb="$tb ns32knetbsd.lo aout-ns32k.lo" ;;
|
||||
pdp11_aout_vec) tb="$tb pdp11.lo" ;;
|
||||
|
40
bfd/cpu-or32.c
Normal file
40
bfd/cpu-or32.c
Normal file
@ -0,0 +1,40 @@
|
||||
/* BFD support for the OpenRISC 1000 architecture.
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include "bfd.h"
|
||||
#include "sysdep.h"
|
||||
#include "libbfd.h"
|
||||
|
||||
const bfd_arch_info_type bfd_or32_arch =
|
||||
{
|
||||
32, /* 32 bits in a word. */
|
||||
32, /* 32 bits in an address. */
|
||||
8, /* 8 bits in a byte. */
|
||||
bfd_arch_or32,
|
||||
0, /* Only 1 machine. */
|
||||
"or32",
|
||||
"or32",
|
||||
4,
|
||||
true, /* The one and only. */
|
||||
bfd_default_compatible,
|
||||
bfd_default_scan ,
|
||||
0,
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -242,7 +242,7 @@ DIST_COMMON = ChangeLog Makefile.am Makefile.in
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = tar
|
||||
TAR = gtar
|
||||
GZIP_ENV = --best
|
||||
all: all-redirect
|
||||
.SUFFIXES:
|
||||
@ -328,7 +328,7 @@ uninstall-info:
|
||||
else ii=; fi; \
|
||||
list='$(INFO_DEPS)'; \
|
||||
for file in $$list; do \
|
||||
test -z "$ii" \
|
||||
test -z "$$ii" \
|
||||
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
|
||||
done
|
||||
@$(NORMAL_UNINSTALL)
|
||||
|
542
bfd/elf32-or32.c
Normal file
542
bfd/elf32-or32.c
Normal file
@ -0,0 +1,542 @@
|
||||
/* OR32-specific support for 32-bit ELF
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
Contributed by Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include "bfd.h"
|
||||
#include "sysdep.h"
|
||||
#include "libbfd.h"
|
||||
#include "elf-bfd.h"
|
||||
#include "elf/or32.h"
|
||||
#include "libiberty.h"
|
||||
|
||||
static reloc_howto_type * bfd_elf32_bfd_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type));
|
||||
static void or32_info_to_howto_rel PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
|
||||
static boolean or32_elf_object_p PARAMS ((bfd *));
|
||||
static void or32_elf_final_write_processing PARAMS ((bfd *, boolean));
|
||||
static bfd_reloc_status_type or32_elf_32_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
|
||||
static bfd_reloc_status_type or32_elf_16_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
|
||||
static bfd_reloc_status_type or32_elf_8_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
|
||||
static bfd_reloc_status_type or32_elf_const_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
|
||||
static bfd_reloc_status_type or32_elf_consth_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
|
||||
static bfd_reloc_status_type or32_elf_jumptarg_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
|
||||
|
||||
/* Try to minimize the amount of space occupied by relocation tables
|
||||
on the ROM (not that the ROM won't be swamped by other ELF overhead). */
|
||||
#define USE_REL
|
||||
|
||||
static reloc_howto_type elf_or32_howto_table[] =
|
||||
{
|
||||
/* This reloc does nothing. */
|
||||
HOWTO (R_OR32_NONE, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
bfd_elf_generic_reloc, /* special_function */
|
||||
"R_OR32_NONE", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
0, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
/* A standard 32 bit relocation. */
|
||||
HOWTO (R_OR32_32, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
or32_elf_32_reloc, /* special_function */
|
||||
"R_OR32_32", /* name */
|
||||
false, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
/* A standard 16 bit relocation. */
|
||||
HOWTO (R_OR32_16, /* type */
|
||||
0, /* rightshift */
|
||||
1, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
or32_elf_16_reloc, /* special_function */
|
||||
"R_OR32_16", /* name */
|
||||
false, /* partial_inplace */
|
||||
0x0000ffff, /* src_mask */
|
||||
0x0000ffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
/* A standard 8 bit relocation. */
|
||||
HOWTO (R_OR32_8, /* type */
|
||||
0, /* rightshift */
|
||||
0, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
8, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
or32_elf_8_reloc, /* special_function */
|
||||
"R_OR32_8", /* name */
|
||||
false, /* partial_inplace */
|
||||
0x000000ff, /* src_mask */
|
||||
0x000000ff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
/* A standard low 16 bit relocation. */
|
||||
HOWTO (R_OR32_CONST, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
or32_elf_const_reloc, /* special_function */
|
||||
"R_OR32_CONST", /* name */
|
||||
false, /* partial_inplace */
|
||||
0x0000ffff, /* src_mask */
|
||||
0x0000ffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
/* A standard high 16 bit relocation. */
|
||||
HOWTO (R_OR32_CONSTH, /* type */
|
||||
16, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
true, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
or32_elf_consth_reloc, /* special_function */
|
||||
"R_OR32_CONSTH", /* name */
|
||||
false, /* partial_inplace */
|
||||
0xffff0000, /* src_mask */
|
||||
0x0000ffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
/* A standard branch relocation. */
|
||||
HOWTO (R_OR32_JUMPTARG, /* type */
|
||||
2, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
28, /* bitsize */
|
||||
true, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_signed, /* complain_on_overflow */
|
||||
or32_elf_jumptarg_reloc,/* special_function */
|
||||
"R_OR32_JUMPTARG", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
0x03ffffff, /* dst_mask */
|
||||
true), /* pcrel_offset */
|
||||
|
||||
/* GNU extension to record C++ vtable hierarchy. */
|
||||
HOWTO (R_OR32_GNU_VTINHERIT, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
0, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
NULL, /* special_function */
|
||||
"R_OR32_GNU_VTINHERIT", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
0, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
/* GNU extension to record C++ vtable member usage. */
|
||||
HOWTO (R_OR32_GNU_VTENTRY, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
0, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_dont, /* complain_on_overflow */
|
||||
_bfd_elf_rel_vtable_reloc_fn, /* special_function */
|
||||
"R_OR32_GNU_VTENTRY", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
0, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
};
|
||||
|
||||
/* Map BFD reloc types to OR32 ELF reloc types. */
|
||||
|
||||
struct or32_reloc_map
|
||||
{
|
||||
bfd_reloc_code_real_type bfd_reloc_val;
|
||||
unsigned char elf_reloc_val;
|
||||
};
|
||||
|
||||
static const struct or32_reloc_map or32_reloc_map[] =
|
||||
{
|
||||
{ BFD_RELOC_NONE, R_OR32_NONE },
|
||||
{ BFD_RELOC_32, R_OR32_32 },
|
||||
{ BFD_RELOC_16, R_OR32_16 },
|
||||
{ BFD_RELOC_8, R_OR32_8 },
|
||||
{ BFD_RELOC_LO16, R_OR32_CONST },
|
||||
{ BFD_RELOC_HI16, R_OR32_CONSTH },
|
||||
{ BFD_RELOC_32_GOT_PCREL, R_OR32_JUMPTARG },
|
||||
{ BFD_RELOC_VTABLE_INHERIT, R_OR32_GNU_VTINHERIT },
|
||||
{ BFD_RELOC_VTABLE_ENTRY, R_OR32_GNU_VTENTRY },
|
||||
};
|
||||
|
||||
static reloc_howto_type *
|
||||
bfd_elf32_bfd_reloc_type_lookup (abfd, code)
|
||||
bfd *abfd ATTRIBUTE_UNUSED;
|
||||
bfd_reloc_code_real_type code;
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = ARRAY_SIZE (or32_reloc_map); i--;)
|
||||
{
|
||||
if (or32_reloc_map[i].bfd_reloc_val == code)
|
||||
return &elf_or32_howto_table[or32_reloc_map[i].elf_reloc_val];
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Set the howto pointer for an OR32 ELF reloc. */
|
||||
|
||||
static void
|
||||
or32_info_to_howto_rel (abfd, cache_ptr, dst)
|
||||
bfd *abfd ATTRIBUTE_UNUSED;
|
||||
arelent *cache_ptr;
|
||||
Elf32_Internal_Rel *dst;
|
||||
{
|
||||
unsigned int r_type;
|
||||
|
||||
r_type = ELF32_R_TYPE (dst->r_info);
|
||||
BFD_ASSERT (r_type < (unsigned int) R_OR32_max);
|
||||
cache_ptr->howto = &elf_or32_howto_table[r_type];
|
||||
}
|
||||
|
||||
/* Set the right machine number for an OR32 ELF file. */
|
||||
|
||||
static boolean
|
||||
or32_elf_object_p (abfd)
|
||||
bfd *abfd;
|
||||
{
|
||||
(void) bfd_default_set_arch_mach (abfd, bfd_arch_or32, 0);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* The final processing done just before writing out an OR32 ELF object file.
|
||||
This gets the OR32 architecture right based on the machine number. */
|
||||
|
||||
static void
|
||||
or32_elf_final_write_processing (abfd, linker)
|
||||
bfd *abfd;
|
||||
boolean linker ATTRIBUTE_UNUSED;
|
||||
{
|
||||
int mach;
|
||||
unsigned long val;
|
||||
|
||||
switch (mach = bfd_get_mach (abfd))
|
||||
{
|
||||
/*
|
||||
case bfd_mach_arc_base:
|
||||
val = E_OR32_MACH_BASE;
|
||||
break;
|
||||
*/
|
||||
default:
|
||||
val = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
elf_elfheader (abfd)->e_flags &=~ EF_OR32_MACH;
|
||||
elf_elfheader (abfd)->e_flags |= val;
|
||||
}
|
||||
|
||||
bfd_reloc_status_type
|
||||
or32_elf_32_reloc (abfd, reloc_entry, symbol, data, input_section,
|
||||
output_bfd, error_message)
|
||||
bfd *abfd;
|
||||
arelent *reloc_entry;
|
||||
asymbol *symbol;
|
||||
PTR data;
|
||||
asection *input_section;
|
||||
bfd *output_bfd;
|
||||
char **error_message ATTRIBUTE_UNUSED;
|
||||
{
|
||||
if (output_bfd != (bfd *) NULL)
|
||||
{
|
||||
unsigned long insn;
|
||||
bfd_size_type addr = reloc_entry->address;
|
||||
|
||||
reloc_entry->address += input_section->output_offset;
|
||||
|
||||
insn = bfd_get_32 (abfd, (bfd_byte *) data + addr);
|
||||
insn += symbol->section->output_section->vma;
|
||||
insn += symbol->section->output_offset;
|
||||
insn += symbol->value;
|
||||
bfd_put_32 (abfd, insn, (bfd_byte *) data + addr);
|
||||
|
||||
return bfd_reloc_ok;
|
||||
}
|
||||
|
||||
return bfd_reloc_continue;
|
||||
}
|
||||
|
||||
bfd_reloc_status_type
|
||||
or32_elf_16_reloc (abfd, reloc_entry, symbol, data, input_section,
|
||||
output_bfd, error_message)
|
||||
bfd *abfd;
|
||||
arelent *reloc_entry;
|
||||
asymbol *symbol;
|
||||
PTR data;
|
||||
asection *input_section;
|
||||
bfd *output_bfd;
|
||||
char **error_message ATTRIBUTE_UNUSED;
|
||||
{
|
||||
if (output_bfd != (bfd *) NULL)
|
||||
{
|
||||
unsigned short insn;
|
||||
bfd_size_type addr = reloc_entry->address;
|
||||
|
||||
reloc_entry->address += input_section->output_offset;
|
||||
|
||||
insn = bfd_get_16 (abfd, (bfd_byte *) data + addr);
|
||||
insn += symbol->section->output_section->vma;
|
||||
insn += symbol->section->output_offset;
|
||||
insn += symbol->value;
|
||||
bfd_put_16 (abfd, insn, (bfd_byte *) data + addr);
|
||||
|
||||
return bfd_reloc_ok;
|
||||
}
|
||||
|
||||
return bfd_reloc_continue;
|
||||
}
|
||||
|
||||
bfd_reloc_status_type
|
||||
or32_elf_8_reloc (abfd, reloc_entry, symbol, data, input_section,
|
||||
output_bfd, error_message)
|
||||
bfd *abfd ATTRIBUTE_UNUSED;
|
||||
arelent *reloc_entry;
|
||||
asymbol *symbol;
|
||||
PTR data;
|
||||
asection *input_section;
|
||||
bfd *output_bfd;
|
||||
char **error_message ATTRIBUTE_UNUSED;
|
||||
{
|
||||
if (output_bfd != (bfd *) NULL)
|
||||
{
|
||||
unsigned char insn;
|
||||
bfd_size_type addr = reloc_entry->address;
|
||||
|
||||
reloc_entry->address += input_section->output_offset;
|
||||
|
||||
insn = bfd_get_8 (abfd, (bfd_byte *) data + addr);
|
||||
insn += symbol->section->output_section->vma;
|
||||
insn += symbol->section->output_offset;
|
||||
insn += symbol->value;
|
||||
bfd_put_8 (abfd, insn, (bfd_byte *) data + addr);
|
||||
|
||||
return bfd_reloc_ok;
|
||||
}
|
||||
|
||||
return bfd_reloc_continue;
|
||||
}
|
||||
|
||||
/* Do a R_OR32_CONSTH relocation. This has to be done in combination
|
||||
with a R_OR32_CONST reloc, because there is a carry from the LO16 to
|
||||
the HI16. Here we just save the information we need; we do the
|
||||
actual relocation when we see the LO16. OR32 ELF requires that the
|
||||
LO16 immediately follow the HI16. As a GNU extension, we permit an
|
||||
arbitrary number of HI16 relocs to be associated with a single LO16
|
||||
reloc. This extension permits gcc to output the HI and LO relocs
|
||||
itself. This code is copied from the elf32-mips.c. */
|
||||
|
||||
struct or32_consth
|
||||
{
|
||||
struct or32_consth *next;
|
||||
bfd_byte *addr;
|
||||
bfd_vma addend;
|
||||
};
|
||||
|
||||
/* FIXME: This should not be a static variable. */
|
||||
|
||||
static struct or32_consth *or32_consth_list;
|
||||
|
||||
bfd_reloc_status_type
|
||||
or32_elf_consth_reloc (abfd, reloc_entry, symbol, data, input_section,
|
||||
output_bfd, error_message)
|
||||
bfd *abfd ATTRIBUTE_UNUSED;
|
||||
arelent *reloc_entry;
|
||||
asymbol *symbol;
|
||||
PTR data;
|
||||
asection *input_section;
|
||||
bfd *output_bfd;
|
||||
char **error_message ATTRIBUTE_UNUSED;
|
||||
{
|
||||
bfd_reloc_status_type ret;
|
||||
bfd_vma relocation;
|
||||
struct or32_consth *n;
|
||||
|
||||
ret = bfd_reloc_ok;
|
||||
|
||||
if (bfd_is_und_section (symbol->section)
|
||||
&& output_bfd == (bfd *) NULL)
|
||||
ret = bfd_reloc_undefined;
|
||||
|
||||
if (bfd_is_com_section (symbol->section))
|
||||
relocation = 0;
|
||||
else
|
||||
relocation = symbol->value;
|
||||
|
||||
relocation += symbol->section->output_section->vma;
|
||||
relocation += symbol->section->output_offset;
|
||||
relocation += reloc_entry->addend;
|
||||
|
||||
if (reloc_entry->address > input_section->_cooked_size)
|
||||
return bfd_reloc_outofrange;
|
||||
|
||||
/* Save the information, and let LO16 do the actual relocation. */
|
||||
n = (struct or32_consth *) bfd_malloc (sizeof *n);
|
||||
if (n == NULL)
|
||||
return bfd_reloc_outofrange;
|
||||
n->addr = (bfd_byte *) data + reloc_entry->address;
|
||||
n->addend = relocation;
|
||||
n->next = or32_consth_list;
|
||||
or32_consth_list = n;
|
||||
|
||||
if (output_bfd != (bfd *) NULL)
|
||||
reloc_entry->address += input_section->output_offset;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Do a R_OR32_CONST relocation. This is a straightforward 16 bit
|
||||
inplace relocation; this function exists in order to do the
|
||||
R_OR32_CONSTH relocation described above. */
|
||||
|
||||
bfd_reloc_status_type
|
||||
or32_elf_const_reloc (abfd, reloc_entry, symbol, data, input_section,
|
||||
output_bfd, error_message)
|
||||
bfd *abfd;
|
||||
arelent *reloc_entry;
|
||||
asymbol *symbol;
|
||||
PTR data;
|
||||
asection *input_section;
|
||||
bfd *output_bfd;
|
||||
char **error_message;
|
||||
{
|
||||
if (or32_consth_list != NULL)
|
||||
{
|
||||
struct or32_consth *l;
|
||||
|
||||
l = or32_consth_list;
|
||||
while (l != NULL)
|
||||
{
|
||||
unsigned long insn;
|
||||
unsigned long val;
|
||||
unsigned long vallo;
|
||||
struct or32_consth *next;
|
||||
|
||||
/* Do the HI16 relocation. Note that we actually don't need
|
||||
to know anything about the LO16 itself, except where to
|
||||
find the low 16 bits of the addend needed by the LO16. */
|
||||
insn = bfd_get_32 (abfd, l->addr);
|
||||
vallo = (bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address)
|
||||
& 0xffff);
|
||||
val = ((insn & 0xffff) << 16) + vallo;
|
||||
val += l->addend;
|
||||
|
||||
insn = (insn &~ 0xffff) | ((val >> 16) & 0xffff);
|
||||
bfd_put_32 (abfd, insn, l->addr);
|
||||
|
||||
next = l->next;
|
||||
free (l);
|
||||
l = next;
|
||||
}
|
||||
|
||||
or32_consth_list = NULL;
|
||||
}
|
||||
|
||||
if (output_bfd != (bfd *) NULL)
|
||||
{
|
||||
unsigned long insn, tmp;
|
||||
bfd_size_type addr = reloc_entry->address;
|
||||
|
||||
reloc_entry->address += input_section->output_offset;
|
||||
|
||||
insn = bfd_get_32 (abfd, (bfd_byte *) data + addr);
|
||||
tmp = insn & 0x0000ffff;
|
||||
tmp += symbol->section->output_section->vma;
|
||||
tmp += symbol->section->output_offset;
|
||||
tmp += symbol->value;
|
||||
insn = (insn & 0xffff0000) | (tmp & 0x0000ffff);
|
||||
bfd_put_32 (abfd, insn, (bfd_byte *) data + addr);
|
||||
|
||||
return bfd_reloc_ok;
|
||||
}
|
||||
|
||||
/* Now do the LO16 reloc in the usual way. */
|
||||
return bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
|
||||
input_section, output_bfd, error_message);
|
||||
}
|
||||
|
||||
bfd_reloc_status_type
|
||||
or32_elf_jumptarg_reloc (abfd, reloc_entry, symbol, data, input_section,
|
||||
output_bfd, error_message)
|
||||
bfd *abfd;
|
||||
arelent *reloc_entry;
|
||||
asymbol *symbol ATTRIBUTE_UNUSED;
|
||||
PTR data;
|
||||
asection *input_section;
|
||||
bfd *output_bfd;
|
||||
char **error_message ATTRIBUTE_UNUSED;
|
||||
{
|
||||
if (output_bfd != (bfd *) NULL)
|
||||
{
|
||||
unsigned long insn, tmp;
|
||||
bfd_size_type addr = reloc_entry->address;
|
||||
|
||||
reloc_entry->address += input_section->output_offset;
|
||||
|
||||
insn = bfd_get_32 (abfd, (bfd_byte *) data + addr);
|
||||
tmp = insn | 0xfc000000;
|
||||
tmp -= (input_section->output_offset >> 2);
|
||||
insn = (insn & 0xfc000000) | (tmp & 0x03ffffff);
|
||||
bfd_put_32 (abfd, insn, (bfd_byte *) data + addr);
|
||||
|
||||
return bfd_reloc_ok;
|
||||
}
|
||||
|
||||
return bfd_reloc_continue;
|
||||
}
|
||||
|
||||
#define TARGET_LITTLE_SYM bfd_elf32_or32_little_vec
|
||||
#define TARGET_LITTLE_NAME "elf32-littleor32"
|
||||
#define TARGET_BIG_SYM bfd_elf32_or32_big_vec
|
||||
#define TARGET_BIG_NAME "elf32-or32"
|
||||
#define ELF_ARCH bfd_arch_or32
|
||||
#define ELF_MACHINE_CODE EM_OR32
|
||||
#define ELF_MAXPAGESIZE 0x1000
|
||||
|
||||
#define elf_info_to_howto 0
|
||||
#define elf_info_to_howto_rel or32_info_to_howto_rel
|
||||
#define elf_backend_object_p or32_elf_object_p
|
||||
#define elf_backend_final_write_processing \
|
||||
or32_elf_final_write_processing
|
||||
|
||||
#include "elf32-target.h"
|
@ -37,6 +37,7 @@ coff-i960.c
|
||||
coff-m68k.c
|
||||
coff-m88k.c
|
||||
coff-mips.c
|
||||
coff-or32.c
|
||||
coff-rs6000.c
|
||||
coff-sh.c
|
||||
coff-sparc.c
|
||||
@ -84,6 +85,7 @@ cpu-mips.c
|
||||
cpu-mmix.c
|
||||
cpu-ns32k.c
|
||||
cpu-openrisc.c
|
||||
cpu-or32.c
|
||||
cpu-pdp11.c
|
||||
cpu-pj.c
|
||||
cpu-powerpc.c
|
||||
|
742
bfd/po/bfd.pot
742
bfd/po/bfd.pot
File diff suppressed because it is too large
Load Diff
1742
bfd/po/es.po
1742
bfd/po/es.po
File diff suppressed because it is too large
Load Diff
1755
bfd/po/fr.po
1755
bfd/po/fr.po
File diff suppressed because it is too large
Load Diff
3634
bfd/po/ja.po
3634
bfd/po/ja.po
File diff suppressed because it is too large
Load Diff
1647
bfd/po/sv.po
1647
bfd/po/sv.po
File diff suppressed because it is too large
Load Diff
3650
bfd/po/tr.po
3650
bfd/po/tr.po
File diff suppressed because it is too large
Load Diff
@ -525,6 +525,7 @@ extern const bfd_target bfd_elf32_mcore_little_vec;
|
||||
extern const bfd_target bfd_elf32_mn10200_vec;
|
||||
extern const bfd_target bfd_elf32_mn10300_vec;
|
||||
extern const bfd_target bfd_elf32_openrisc_vec;
|
||||
extern const bfd_target bfd_elf32_or32_big_vec;
|
||||
extern const bfd_target bfd_elf32_pj_vec;
|
||||
extern const bfd_target bfd_elf32_pjl_vec;
|
||||
extern const bfd_target bfd_elf32_powerpc_vec;
|
||||
@ -621,6 +622,7 @@ extern const bfd_target nlm32_i386_vec;
|
||||
extern const bfd_target nlm32_powerpc_vec;
|
||||
extern const bfd_target nlm32_sparc_vec;
|
||||
extern const bfd_target oasys_vec;
|
||||
extern const bfd_target or32coff_big_vec;
|
||||
extern const bfd_target pc532machaout_vec;
|
||||
extern const bfd_target pc532netbsd_vec;
|
||||
extern const bfd_target pdp11_aout_vec;
|
||||
@ -770,6 +772,7 @@ static const bfd_target * const _bfd_target_vector[] = {
|
||||
&bfd_elf32_mn10200_vec,
|
||||
&bfd_elf32_mn10300_vec,
|
||||
&bfd_elf32_openrisc_vec,
|
||||
&bfd_elf32_or32_big_vec,
|
||||
&bfd_elf32_pj_vec,
|
||||
&bfd_elf32_pjl_vec,
|
||||
&bfd_elf32_powerpc_vec,
|
||||
@ -903,6 +906,9 @@ static const bfd_target * const _bfd_target_vector[] = {
|
||||
can be annoying target mis-matches. */
|
||||
&oasys_vec,
|
||||
#endif
|
||||
/* Entry for the OpenRISC family. */
|
||||
&or32coff_big_vec,
|
||||
|
||||
&pc532machaout_vec,
|
||||
&pc532netbsd_vec,
|
||||
&pdp11_aout_vec,
|
||||
|
@ -49,34 +49,35 @@
|
||||
|
||||
#define RELOC_MACROS_GEN_FUNC
|
||||
|
||||
#include "elf/i386.h"
|
||||
#include "elf/v850.h"
|
||||
#include "elf/ppc.h"
|
||||
#include "elf/mips.h"
|
||||
#include "elf/alpha.h"
|
||||
#include "elf/arc.h"
|
||||
#include "elf/arm.h"
|
||||
#include "elf/m68k.h"
|
||||
#include "elf/sparc.h"
|
||||
#include "elf/m32r.h"
|
||||
#include "elf/avr.h"
|
||||
#include "elf/cris.h"
|
||||
#include "elf/d10v.h"
|
||||
#include "elf/d30v.h"
|
||||
#include "elf/sh.h"
|
||||
#include "elf/fr30.h"
|
||||
#include "elf/h8.h"
|
||||
#include "elf/hppa.h"
|
||||
#include "elf/i386.h"
|
||||
#include "elf/i860.h"
|
||||
#include "elf/i960.h"
|
||||
#include "elf/ia64.h"
|
||||
#include "elf/m32r.h"
|
||||
#include "elf/m68k.h"
|
||||
#include "elf/mcore.h"
|
||||
#include "elf/mips.h"
|
||||
#include "elf/mmix.h"
|
||||
#include "elf/mn10200.h"
|
||||
#include "elf/mn10300.h"
|
||||
#include "elf/hppa.h"
|
||||
#include "elf/h8.h"
|
||||
#include "elf/arc.h"
|
||||
#include "elf/fr30.h"
|
||||
#include "elf/mcore.h"
|
||||
#include "elf/mmix.h"
|
||||
#include "elf/i960.h"
|
||||
#include "elf/or32.h"
|
||||
#include "elf/pj.h"
|
||||
#include "elf/avr.h"
|
||||
#include "elf/ia64.h"
|
||||
#include "elf/cris.h"
|
||||
#include "elf/i860.h"
|
||||
#include "elf/x86-64.h"
|
||||
#include "elf/ppc.h"
|
||||
#include "elf/s390.h"
|
||||
#include "elf/sh.h"
|
||||
#include "elf/sparc.h"
|
||||
#include "elf/v850.h"
|
||||
#include "elf/x86-64.h"
|
||||
#include "elf/xstormy16.h"
|
||||
|
||||
#include "bucomm.h"
|
||||
@ -596,6 +597,8 @@ guess_is_rela (e_machine)
|
||||
case EM_386:
|
||||
case EM_486:
|
||||
case EM_960:
|
||||
case EM_OPENRISC:
|
||||
case EM_OR32:
|
||||
case EM_M32R:
|
||||
case EM_CYGNUS_M32R:
|
||||
case EM_D10V:
|
||||
@ -1027,6 +1030,11 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
|
||||
rtype = elf_h8_reloc_type (type);
|
||||
break;
|
||||
|
||||
case EM_OPENRISC:
|
||||
case EM_OR32:
|
||||
rtype = elf_or32_reloc_type (type);
|
||||
break;
|
||||
|
||||
case EM_PJ:
|
||||
case EM_PJ_OLD:
|
||||
rtype = elf_pj_reloc_type (type);
|
||||
@ -1458,6 +1466,8 @@ get_machine_name (e_machine)
|
||||
case EM_S390_OLD:
|
||||
case EM_S390: return "IBM S/390";
|
||||
case EM_XSTORMY16: return "Sanyo Xstormy16 CPU core";
|
||||
case EM_OPENRISC:
|
||||
case EM_OR32: return "OpenRISC";
|
||||
default:
|
||||
sprintf (buff, _("<unknown>: %x"), e_machine);
|
||||
return buff;
|
||||
|
@ -1,3 +1,18 @@
|
||||
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
* config/tc-or32.c: New file.
|
||||
* config/tc-or32.h: New file.
|
||||
* configure.in: Add support for or32 targets.
|
||||
* configure: Regenerate.
|
||||
* config/obj-coff.c: Add support for or32 targets.
|
||||
* config/obj-coff.h: Add support for or32 targets.
|
||||
* Makefile.am: Add support for or32 targets.
|
||||
* Makefile.in: Regenerate.
|
||||
* NEWS: Mention support for OpenRISC.
|
||||
* doc/Makefile.in: Regenerate.
|
||||
* po/POTFILES.in: Regenerate.
|
||||
* po/gas.pot: Regenerate.
|
||||
|
||||
2002-01-30 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* config/tc-sh.c (parse_reg): Fix end-of-word check for is, ix, iy
|
||||
|
@ -65,6 +65,7 @@ CPU_TYPES = \
|
||||
mn10300 \
|
||||
ns32k \
|
||||
openrisc \
|
||||
or32 \
|
||||
pdp11 \
|
||||
pj \
|
||||
ppc \
|
||||
@ -251,6 +252,7 @@ TARGET_CPU_CFILES = \
|
||||
config/tc-mn10300.c \
|
||||
config/tc-ns32k.c \
|
||||
config/tc-openrisc.c \
|
||||
config/tc-or32.c \
|
||||
config/tc-pdp11.c \
|
||||
config/tc-pj.c \
|
||||
config/tc-ppc.c \
|
||||
@ -296,6 +298,7 @@ TARGET_CPU_HFILES = \
|
||||
config/tc-mn10300.h \
|
||||
config/tc-ns32k.h \
|
||||
config/tc-openrisc.h \
|
||||
config/tc-or32.h \
|
||||
config/tc-pdp11.h \
|
||||
config/tc-pj.h \
|
||||
config/tc-ppc.h \
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -176,6 +176,7 @@ CPU_TYPES = \
|
||||
mn10300 \
|
||||
ns32k \
|
||||
openrisc \
|
||||
or32 \
|
||||
pdp11 \
|
||||
pj \
|
||||
ppc \
|
||||
@ -368,6 +369,7 @@ TARGET_CPU_CFILES = \
|
||||
config/tc-mn10300.c \
|
||||
config/tc-ns32k.c \
|
||||
config/tc-openrisc.c \
|
||||
config/tc-or32.c \
|
||||
config/tc-pdp11.c \
|
||||
config/tc-pj.c \
|
||||
config/tc-ppc.c \
|
||||
@ -414,6 +416,7 @@ TARGET_CPU_HFILES = \
|
||||
config/tc-mn10300.h \
|
||||
config/tc-ns32k.h \
|
||||
config/tc-openrisc.h \
|
||||
config/tc-or32.h \
|
||||
config/tc-pdp11.h \
|
||||
config/tc-pj.h \
|
||||
config/tc-ppc.h \
|
||||
@ -2228,7 +2231,7 @@ configure configure.in gdbinit.in itbl-lex.c itbl-parse.c
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = tar
|
||||
TAR = gtar
|
||||
GZIP_ENV = --best
|
||||
SOURCES = $(itbl_test_SOURCES) $(as_new_SOURCES) $(EXTRA_as_new_SOURCES) $(gasp_new_SOURCES)
|
||||
OBJECTS = $(itbl_test_OBJECTS) $(as_new_OBJECTS) $(gasp_new_OBJECTS)
|
||||
@ -2389,7 +2392,7 @@ maintainer-clean-recursive:
|
||||
dot_seen=no; \
|
||||
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
rev="$$subdir $$rev"; \
|
||||
test "$$subdir" = "." && dot_seen=yes; \
|
||||
test "$$subdir" != "." || dot_seen=yes; \
|
||||
done; \
|
||||
test "$$dot_seen" = "no" && rev=". $$rev"; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
|
2
gas/NEWS
2
gas/NEWS
@ -1,4 +1,6 @@
|
||||
-*- text -*-
|
||||
Support for the OpenRISC 32-bit embedded processor by OpenCores.
|
||||
|
||||
The ARM assembler now accepts -march=..., -mcpu=... and -mfpu=... for
|
||||
specifying the target instruction set. The old method of specifying the
|
||||
target processor has been deprecated, but is still accepted for
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* coff object file format
|
||||
Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
1999, 2000, 2001
|
||||
1999, 2000, 2001, 2002
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GAS.
|
||||
@ -1889,7 +1889,7 @@ count_entries_in_chain (idx)
|
||||
{
|
||||
if (fixup_ptr->fx_done == 0 && TC_COUNT_RELOC (fixup_ptr))
|
||||
{
|
||||
#ifdef TC_A29K
|
||||
#if defined(TC_A29K) || defined(TC_OR32)
|
||||
if (fixup_ptr->fx_r_type == RELOC_CONSTH)
|
||||
nrelocs += 2;
|
||||
else
|
||||
@ -2047,6 +2047,20 @@ do_relocs_for (abfd, h, file_cursor)
|
||||
(void) bfd_coff_swap_reloc_out (abfd, &intr, ext_ptr);
|
||||
ext_ptr++;
|
||||
}
|
||||
#endif
|
||||
#if defined(TC_OR32)
|
||||
/* The or32 has a special kludge for the high 16 bit
|
||||
reloc. Two relocations are emited, R_IHIHALF,
|
||||
and R_IHCONST. The second one doesn't contain a
|
||||
symbol, but uses the value for offset. */
|
||||
if (intr.r_type == R_IHIHALF)
|
||||
{
|
||||
/* Now emit the second bit. */
|
||||
intr.r_type = R_IHCONST;
|
||||
intr.r_symndx = fix_ptr->fx_addnumber;
|
||||
(void) bfd_coff_swap_reloc_out (abfd, & intr, ext_ptr);
|
||||
ext_ptr ++;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -2127,12 +2141,14 @@ fill_section (abfd, h, file_cursor)
|
||||
COFF_NOLOAD_PROBLEM, and have only one test here. */
|
||||
#ifndef TC_I386
|
||||
#ifndef TC_A29K
|
||||
#ifndef TC_OR32
|
||||
#ifndef COFF_NOLOAD_PROBLEM
|
||||
/* Apparently the SVR3 linker (and exec syscall) and UDI
|
||||
mondfe progrem are confused by noload sections. */
|
||||
s->s_flags |= STYP_NOLOAD;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
else if (strcmp (s->s_name, ".lit") == 0)
|
||||
@ -4420,7 +4436,7 @@ fixup_segment (segP, this_segment_type)
|
||||
break;
|
||||
default:
|
||||
|
||||
#if defined(TC_A29K) || (defined(TE_PE) && defined(TC_I386)) || defined(TC_M88K)
|
||||
#if defined(TC_A29K) || (defined(TE_PE) && defined(TC_I386)) || defined(TC_M88K) || defined(TC_OR32)
|
||||
/* This really should be handled in the linker, but
|
||||
backward compatibility forbids. */
|
||||
add_number += S_GET_VALUE (add_symbolP);
|
||||
@ -4466,7 +4482,7 @@ fixup_segment (segP, this_segment_type)
|
||||
|
||||
if (pcrel)
|
||||
{
|
||||
#if !defined(TC_M88K) && !(defined(TE_PE) && defined(TC_I386)) && !defined(TC_A29K)
|
||||
#if !defined(TC_M88K) && !(defined(TE_PE) && defined(TC_I386)) && !defined(TC_A29K) && !defined(TC_OR32)
|
||||
/* This adjustment is not correct on the m88k, for which the
|
||||
linker does all the computation. */
|
||||
add_number -= md_pcrel_from (fixP);
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* coff object file format
|
||||
Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
1999, 2000
|
||||
1999, 2000, 2002
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GAS.
|
||||
@ -90,6 +90,11 @@
|
||||
#define TARGET_FORMAT "coff-a29k-big"
|
||||
#endif
|
||||
|
||||
#ifdef TC_OR32
|
||||
#include "coff/or32.h"
|
||||
#define TARGET_FORMAT "coff-or32-big"
|
||||
#endif
|
||||
|
||||
#ifdef TC_I960
|
||||
#include "coff/i960.h"
|
||||
#define TARGET_FORMAT "coff-Intel-little"
|
||||
@ -190,9 +195,7 @@ extern void coff_obj_symbol_new_hook PARAMS ((symbolS *));
|
||||
extern void coff_obj_read_begin_hook PARAMS ((void));
|
||||
#define obj_read_begin_hook coff_obj_read_begin_hook
|
||||
|
||||
/* ***********************************************************************
|
||||
|
||||
This file really contains two implementations of the COFF back end.
|
||||
/* This file really contains two implementations of the COFF back end.
|
||||
They are in the process of being merged, but this is only a
|
||||
preliminary, mechanical merging. Many definitions that are
|
||||
identical between the two are still found in both versions.
|
||||
@ -226,9 +229,7 @@ extern void coff_obj_read_begin_hook PARAMS ((void));
|
||||
See doc/internals.texi for a brief discussion of the history, if
|
||||
you care.
|
||||
|
||||
Ken Raeburn, 5 May 1994
|
||||
|
||||
*********************************************************************** */
|
||||
Ken Raeburn, 5 May 1994. */
|
||||
|
||||
#ifdef BFD_ASSEMBLER
|
||||
|
||||
@ -257,10 +258,10 @@ extern void coff_obj_read_begin_hook PARAMS ((void));
|
||||
|
||||
extern void obj_coff_section PARAMS ((int));
|
||||
|
||||
/* The number of auxiliary entries */
|
||||
/* The number of auxiliary entries. */
|
||||
#define S_GET_NUMBER_AUXILIARY(s) \
|
||||
(coffsymbol (symbol_get_bfdsym (s))->native->u.syment.n_numaux)
|
||||
/* The number of auxiliary entries */
|
||||
/* The number of auxiliary entries. */
|
||||
#define S_SET_NUMBER_AUXILIARY(s,v) (S_GET_NUMBER_AUXILIARY (s) = (v))
|
||||
|
||||
/* True if a symbol name is in the string table, i.e. its length is > 8. */
|
||||
@ -271,9 +272,9 @@ extern int S_SET_STORAGE_CLASS PARAMS ((symbolS *, int));
|
||||
extern int S_GET_STORAGE_CLASS PARAMS ((symbolS *));
|
||||
extern void SA_SET_SYM_ENDNDX PARAMS ((symbolS *, symbolS *));
|
||||
|
||||
/* Auxiliary entry macros. SA_ stands for symbol auxiliary */
|
||||
/* Omit the tv related fields */
|
||||
/* Accessors */
|
||||
/* Auxiliary entry macros. SA_ stands for symbol auxiliary. */
|
||||
/* Omit the tv related fields. */
|
||||
/* Accessors. */
|
||||
|
||||
#define SA_GET_SYM_TAGNDX(s) (SYM_AUXENT (s)->x_sym.x_tagndx.l)
|
||||
#define SA_GET_SYM_LNNO(s) (SYM_AUXENT (s)->x_sym.x_misc.x_lnsz.x_lnno)
|
||||
@ -297,15 +298,13 @@ extern void SA_SET_SYM_ENDNDX PARAMS ((symbolS *, symbolS *));
|
||||
#define SA_SET_SCN_NRELOC(s,v) (SYM_AUXENT (s)->x_scn.x_nreloc=(v))
|
||||
#define SA_SET_SCN_NLINNO(s,v) (SYM_AUXENT (s)->x_scn.x_nlinno=(v))
|
||||
|
||||
/*
|
||||
* Internal use only definitions. SF_ stands for symbol flags.
|
||||
*
|
||||
* These values can be assigned to sy_symbol.ost_flags field of a symbolS.
|
||||
*
|
||||
* You'll break i960 if you shift the SYSPROC bits anywhere else. for
|
||||
* more on the balname/callname hack, see tc-i960.h. b.out is done
|
||||
* differently.
|
||||
*/
|
||||
/* Internal use only definitions. SF_ stands for symbol flags.
|
||||
|
||||
These values can be assigned to sy_symbol.ost_flags field of a symbolS.
|
||||
|
||||
You'll break i960 if you shift the SYSPROC bits anywhere else. for
|
||||
more on the balname/callname hack, see tc-i960.h. b.out is done
|
||||
differently. */
|
||||
|
||||
#define SF_I960_MASK (0x000001ff) /* Bits 0-8 are used by the i960 port. */
|
||||
#define SF_SYSPROC (0x0000003f) /* bits 0-5 are used to store the sysproc number */
|
||||
@ -330,7 +329,7 @@ extern void SA_SET_SYM_ENDNDX PARAMS ((symbolS *, symbolS *));
|
||||
#define SF_GET_SEGMENT (0x00200000) /* Get the section of the forward symbol. */
|
||||
/* All other bits are unused. */
|
||||
|
||||
/* Accessors */
|
||||
/* Accessors. */
|
||||
#define SF_GET(s) (*symbol_get_obj (s))
|
||||
#define SF_GET_DEBUG(s) (symbol_get_bfdsym (s)->flags & BSF_DEBUGGING)
|
||||
#define SF_SET_DEBUG(s) (symbol_get_bfdsym (s)->flags |= BSF_DEBUGGING)
|
||||
@ -352,7 +351,7 @@ extern void SA_SET_SYM_ENDNDX PARAMS ((symbolS *, symbolS *));
|
||||
#define SF_GET_IS_SYSPROC(s) (SF_GET (s) & SF_IS_SYSPROC) /* used by i960 */
|
||||
#define SF_GET_SYSPROC(s) (SF_GET (s) & SF_SYSPROC) /* used by i960 */
|
||||
|
||||
/* Modifiers */
|
||||
/* Modifiers. */
|
||||
#define SF_SET(s,v) (SF_GET (s) = (v))
|
||||
#define SF_SET_NORMAL_FIELD(s,v) (SF_GET (s) |= ((v) & SF_NORMAL_MASK))
|
||||
#define SF_SET_DEBUG_FIELD(s,v) (SF_GET (s) |= ((v) & SF_DEBUG_MASK))
|
||||
@ -414,7 +413,7 @@ extern symbolS *coff_last_function;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* sanity check */
|
||||
/* Sanity check. */
|
||||
|
||||
#ifdef TC_I960
|
||||
#ifndef C_LEAFSTAT
|
||||
@ -424,8 +423,8 @@ hey ! Where is the C_LEAFSTAT definition ? i960 - coff support is depending on i
|
||||
|
||||
#else /* not BFD_ASSEMBLER */
|
||||
|
||||
#ifdef TC_A29K
|
||||
/* Allow translate from aout relocs to coff relocs */
|
||||
#if defined TC_A29K || defined TC_OR32
|
||||
/* Allow translate from aout relocs to coff relocs. */
|
||||
#define NO_RELOC 20
|
||||
#define RELOC_32 1
|
||||
#define RELOC_8 2
|
||||
@ -447,7 +446,7 @@ extern const segT N_TYPE_seg[];
|
||||
|
||||
/* SYMBOL TABLE */
|
||||
|
||||
/* Symbol table entry data type */
|
||||
/* Symbol table entry data type. */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
@ -455,18 +454,17 @@ typedef struct
|
||||
struct internal_syment ost_entry;
|
||||
/* Auxiliary entry. */
|
||||
union internal_auxent ost_auxent[OBJ_COFF_MAX_AUXENTRIES];
|
||||
/* obj_coff internal use only flags */
|
||||
/* obj_coff internal use only flags. */
|
||||
unsigned int ost_flags;
|
||||
} obj_symbol_type;
|
||||
|
||||
#ifndef DO_NOT_STRIP
|
||||
#define DO_NOT_STRIP 0
|
||||
#endif
|
||||
/* Symbol table macros and constants */
|
||||
/* Symbol table macros and constants. */
|
||||
|
||||
/* Possible and usefull section number in symbol table
|
||||
* The values of TEXT, DATA and BSS may not be portable.
|
||||
*/
|
||||
The values of TEXT, DATA and BSS may not be portable. */
|
||||
|
||||
#define C_ABS_SECTION N_ABS
|
||||
#define C_UNDEF_SECTION N_UNDEF
|
||||
@ -475,27 +473,25 @@ typedef struct
|
||||
#define C_PTV_SECTION P_TV
|
||||
#define C_REGISTER_SECTION 50
|
||||
|
||||
/*
|
||||
* Macros to extract information from a symbol table entry.
|
||||
* This syntaxic indirection allows independence regarding a.out or coff.
|
||||
* The argument (s) of all these macros is a pointer to a symbol table entry.
|
||||
*/
|
||||
/* Macros to extract information from a symbol table entry.
|
||||
This syntaxic indirection allows independence regarding a.out or coff.
|
||||
The argument (s) of all these macros is a pointer to a symbol table entry. */
|
||||
|
||||
/* Predicates */
|
||||
/* True if the symbol is external */
|
||||
/* Predicates. */
|
||||
/* True if the symbol is external. */
|
||||
#define S_IS_EXTERNAL(s) ((s)->sy_symbol.ost_entry.n_scnum == C_UNDEF_SECTION)
|
||||
/* True if symbol has been defined, ie :
|
||||
section > 0 (DATA, TEXT or BSS)
|
||||
section == 0 and value > 0 (external bss symbol) */
|
||||
section == 0 and value > 0 (external bss symbol). */
|
||||
#define S_IS_DEFINED(s) \
|
||||
((s)->sy_symbol.ost_entry.n_scnum > C_UNDEF_SECTION \
|
||||
|| ((s)->sy_symbol.ost_entry.n_scnum == C_UNDEF_SECTION \
|
||||
&& S_GET_VALUE (s) > 0) \
|
||||
|| ((s)->sy_symbol.ost_entry.n_scnum == C_ABS_SECTION))
|
||||
/* True if a debug special symbol entry */
|
||||
/* True if a debug special symbol entry. */
|
||||
#define S_IS_DEBUG(s) ((s)->sy_symbol.ost_entry.n_scnum == C_DEBUG_SECTION)
|
||||
/* True if a symbol is local symbol name */
|
||||
/* A symbol name whose name includes ^A is a gas internal pseudo symbol */
|
||||
/* True if a symbol is local symbol name. */
|
||||
/* A symbol name whose name includes ^A is a gas internal pseudo symbol. */
|
||||
#define S_IS_LOCAL(s) \
|
||||
((s)->sy_symbol.ost_entry.n_scnum == C_REGISTER_SECTION \
|
||||
|| (S_LOCAL_NAME(s) && ! flag_keep_locals && ! S_IS_DEBUG (s)) \
|
||||
@ -504,13 +500,11 @@ typedef struct
|
||||
|| (flag_strip_local_absolute \
|
||||
&& !S_IS_EXTERNAL(s) \
|
||||
&& (s)->sy_symbol.ost_entry.n_scnum == C_ABS_SECTION))
|
||||
/* True if a symbol is not defined in this file */
|
||||
/* True if a symbol is not defined in this file. */
|
||||
#define S_IS_EXTERN(s) ((s)->sy_symbol.ost_entry.n_scnum == 0 \
|
||||
&& S_GET_VALUE (s) == 0)
|
||||
/*
|
||||
* True if a symbol can be multiply defined (bss symbols have this def
|
||||
* though it is bad practice)
|
||||
*/
|
||||
/* True if a symbol can be multiply defined (bss symbols have this def
|
||||
though it is bad practice). */
|
||||
#define S_IS_COMMON(s) ((s)->sy_symbol.ost_entry.n_scnum == 0 \
|
||||
&& S_GET_VALUE (s) != 0)
|
||||
/* True if a symbol name is in the string table, i.e. its length is > 8. */
|
||||
@ -526,41 +520,41 @@ typedef struct
|
||||
((s)->sy_symbol.ost_entry.n_sclass == C_WEAKEXT)
|
||||
#endif
|
||||
|
||||
/* Accessors */
|
||||
/* The name of the symbol */
|
||||
/* Accessors. */
|
||||
/* The name of the symbol. */
|
||||
#define S_GET_NAME(s) ((char*) (s)->sy_symbol.ost_entry.n_offset)
|
||||
/* The pointer to the string table */
|
||||
/* The pointer to the string table. */
|
||||
#define S_GET_OFFSET(s) ((s)->sy_symbol.ost_entry.n_offset)
|
||||
/* The numeric value of the segment */
|
||||
/* The numeric value of the segment. */
|
||||
#define S_GET_SEGMENT(s) s_get_segment(s)
|
||||
/* The data type */
|
||||
/* The data type. */
|
||||
#define S_GET_DATA_TYPE(s) ((s)->sy_symbol.ost_entry.n_type)
|
||||
/* The storage class */
|
||||
/* The storage class. */
|
||||
#define S_GET_STORAGE_CLASS(s) ((s)->sy_symbol.ost_entry.n_sclass)
|
||||
/* The number of auxiliary entries */
|
||||
/* The number of auxiliary entries. */
|
||||
#define S_GET_NUMBER_AUXILIARY(s) ((s)->sy_symbol.ost_entry.n_numaux)
|
||||
|
||||
/* Modifiers */
|
||||
/* Set the name of the symbol */
|
||||
/* Modifiers. */
|
||||
/* Set the name of the symbol. */
|
||||
#define S_SET_NAME(s,v) ((s)->sy_symbol.ost_entry.n_offset = (unsigned long) (v))
|
||||
/* Set the offset of the symbol */
|
||||
/* Set the offset of the symbol. */
|
||||
#define S_SET_OFFSET(s,v) ((s)->sy_symbol.ost_entry.n_offset = (v))
|
||||
/* The numeric value of the segment */
|
||||
/* The numeric value of the segment. */
|
||||
#define S_SET_SEGMENT(s,v) ((s)->sy_symbol.ost_entry.n_scnum = SEGMENT_TO_SYMBOL_TYPE(v))
|
||||
/* The data type */
|
||||
/* The data type. */
|
||||
#define S_SET_DATA_TYPE(s,v) ((s)->sy_symbol.ost_entry.n_type = (v))
|
||||
/* The storage class */
|
||||
/* The storage class. */
|
||||
#define S_SET_STORAGE_CLASS(s,v) ((s)->sy_symbol.ost_entry.n_sclass = (v))
|
||||
/* The number of auxiliary entries */
|
||||
/* The number of auxiliary entries. */
|
||||
#define S_SET_NUMBER_AUXILIARY(s,v) ((s)->sy_symbol.ost_entry.n_numaux = (v))
|
||||
|
||||
/* Additional modifiers */
|
||||
/* The symbol is external (does not mean undefined) */
|
||||
/* Additional modifiers. */
|
||||
/* The symbol is external (does not mean undefined). */
|
||||
#define S_SET_EXTERNAL(s) { S_SET_STORAGE_CLASS(s, C_EXT) ; SF_CLEAR_LOCAL(s); }
|
||||
|
||||
/* Auxiliary entry macros. SA_ stands for symbol auxiliary */
|
||||
/* Omit the tv related fields */
|
||||
/* Accessors */
|
||||
/* Auxiliary entry macros. SA_ stands for symbol auxiliary. */
|
||||
/* Omit the tv related fields. */
|
||||
/* Accessors. */
|
||||
#define SYM_AUXENT(S) (&(S)->sy_symbol.ost_auxent[0])
|
||||
|
||||
#define SA_GET_SYM_TAGNDX(s) (SYM_AUXENT (s)->x_sym.x_tagndx.l)
|
||||
@ -577,7 +571,7 @@ typedef struct
|
||||
#define SA_GET_SCN_NRELOC(s) (SYM_AUXENT (s)->x_scn.x_nreloc)
|
||||
#define SA_GET_SCN_NLINNO(s) (SYM_AUXENT (s)->x_scn.x_nlinno)
|
||||
|
||||
/* Modifiers */
|
||||
/* Modifiers. */
|
||||
#define SA_SET_SYM_TAGNDX(s,v) (SYM_AUXENT (s)->x_sym.x_tagndx.l=(v))
|
||||
#define SA_SET_SYM_LNNO(s,v) (SYM_AUXENT (s)->x_sym.x_misc.x_lnsz.x_lnno=(v))
|
||||
#define SA_SET_SYM_SIZE(s,v) (SYM_AUXENT (s)->x_sym.x_misc.x_lnsz.x_size=(v))
|
||||
@ -592,15 +586,13 @@ typedef struct
|
||||
#define SA_SET_SCN_NRELOC(s,v) (SYM_AUXENT (s)->x_scn.x_nreloc=(v))
|
||||
#define SA_SET_SCN_NLINNO(s,v) (SYM_AUXENT (s)->x_scn.x_nlinno=(v))
|
||||
|
||||
/*
|
||||
* Internal use only definitions. SF_ stands for symbol flags.
|
||||
*
|
||||
* These values can be assigned to sy_symbol.ost_flags field of a symbolS.
|
||||
*
|
||||
* You'll break i960 if you shift the SYSPROC bits anywhere else. for
|
||||
* more on the balname/callname hack, see tc-i960.h. b.out is done
|
||||
* differently.
|
||||
*/
|
||||
/* Internal use only definitions. SF_ stands for symbol flags.
|
||||
|
||||
These values can be assigned to sy_symbol.ost_flags field of a symbolS.
|
||||
|
||||
You'll break i960 if you shift the SYSPROC bits anywhere else. for
|
||||
more on the balname/callname hack, see tc-i960.h. b.out is done
|
||||
differently. */
|
||||
|
||||
#define SF_I960_MASK (0x000001ff) /* Bits 0-8 are used by the i960 port. */
|
||||
#define SF_SYSPROC (0x0000003f) /* bits 0-5 are used to store the sysproc number */
|
||||
@ -626,7 +618,7 @@ typedef struct
|
||||
#define SF_ADJ_LNNOPTR (0x00400000) /* Has a lnnoptr */
|
||||
/* All other bits are unused. */
|
||||
|
||||
/* Accessors */
|
||||
/* Accessors. */
|
||||
#define SF_GET(s) ((s)->sy_symbol.ost_flags)
|
||||
#define SF_GET_NORMAL_FIELD(s) (SF_GET (s) & SF_NORMAL_MASK)
|
||||
#define SF_GET_DEBUG_FIELD(s) (SF_GET (s) & SF_DEBUG_MASK)
|
||||
@ -648,7 +640,7 @@ typedef struct
|
||||
#define SF_GET_IS_SYSPROC(s) (SF_GET (s) & SF_IS_SYSPROC) /* used by i960 */
|
||||
#define SF_GET_SYSPROC(s) (SF_GET (s) & SF_SYSPROC) /* used by i960 */
|
||||
|
||||
/* Modifiers */
|
||||
/* Modifiers. */
|
||||
#define SF_SET(s,v) (SF_GET (s) = (v))
|
||||
#define SF_SET_NORMAL_FIELD(s,v) (SF_GET (s) |= ((v) & SF_NORMAL_MASK))
|
||||
#define SF_SET_DEBUG_FIELD(s,v) (SF_GET (s) |= ((v) & SF_DEBUG_MASK))
|
||||
@ -671,12 +663,10 @@ typedef struct
|
||||
#define SF_SET_IS_SYSPROC(s) (SF_GET (s) |= SF_IS_SYSPROC) /* used by i960 */
|
||||
#define SF_SET_SYSPROC(s,v) (SF_GET (s) |= ((v) & SF_SYSPROC)) /* used by i960 */
|
||||
|
||||
/* File header macro and type definition */
|
||||
/* File header macro and type definition. */
|
||||
|
||||
/*
|
||||
* File position calculators. Beware to use them when all the
|
||||
* appropriate fields are set in the header.
|
||||
*/
|
||||
/* File position calculators. Beware to use them when all the
|
||||
appropriate fields are set in the header. */
|
||||
|
||||
#ifdef OBJ_COFF_OMIT_OPTIONAL_HEADER
|
||||
#define OBJ_COFF_AOUTHDRSZ (0)
|
||||
@ -714,8 +704,8 @@ typedef struct
|
||||
H_GET_TEXT_SIZE(h) + H_GET_DATA_SIZE(h) + \
|
||||
H_GET_RELOCATION_SIZE(h) + H_GET_LINENO_SIZE(h))
|
||||
|
||||
/* Accessors */
|
||||
/* aouthdr */
|
||||
/* Accessors. */
|
||||
/* aouthdr. */
|
||||
#define H_GET_MAGIC_NUMBER(h) ((h)->aouthdr.magic)
|
||||
#define H_GET_VERSION_STAMP(h) ((h)->aouthdr.vstamp)
|
||||
#define H_GET_TEXT_SIZE(h) ((h)->aouthdr.tsize)
|
||||
@ -724,7 +714,7 @@ typedef struct
|
||||
#define H_GET_ENTRY_POINT(h) ((h)->aouthdr.entry)
|
||||
#define H_GET_TEXT_START(h) ((h)->aouthdr.text_start)
|
||||
#define H_GET_DATA_START(h) ((h)->aouthdr.data_start)
|
||||
/* filehdr */
|
||||
/* filehdr. */
|
||||
#define H_GET_FILE_MAGIC_NUMBER(h) ((h)->filehdr.f_magic)
|
||||
#define H_GET_NUMBER_OF_SECTIONS(h) ((h)->filehdr.f_nscns)
|
||||
#define H_GET_TIME_STAMP(h) ((h)->filehdr.f_timdat)
|
||||
@ -733,7 +723,7 @@ typedef struct
|
||||
#define H_GET_SYMBOL_TABLE_SIZE(h) (H_GET_SYMBOL_COUNT(h) * SYMESZ)
|
||||
#define H_GET_SIZEOF_OPTIONAL_HEADER(h) ((h)->filehdr.f_opthdr)
|
||||
#define H_GET_FLAGS(h) ((h)->filehdr.f_flags)
|
||||
/* Extra fields to achieve bsd a.out compatibility and for convenience */
|
||||
/* Extra fields to achieve bsd a.out compatibility and for convenience. */
|
||||
#define H_GET_RELOCATION_SIZE(h) ((h)->relocation_size)
|
||||
#define H_GET_STRING_SIZE(h) ((h)->string_table_size)
|
||||
#define H_GET_LINENO_SIZE(h) ((h)->lineno_size)
|
||||
@ -750,8 +740,8 @@ typedef struct
|
||||
#define H_GET_TEXT_RELOCATION_SIZE(h) (text_section_header.s_nreloc * RELSZ)
|
||||
#define H_GET_DATA_RELOCATION_SIZE(h) (data_section_header.s_nreloc * RELSZ)
|
||||
|
||||
/* Modifiers */
|
||||
/* aouthdr */
|
||||
/* Modifiers. */
|
||||
/* aouthdr. */
|
||||
#define H_SET_MAGIC_NUMBER(h,v) ((h)->aouthdr.magic = (v))
|
||||
#define H_SET_VERSION_STAMP(h,v) ((h)->aouthdr.vstamp = (v))
|
||||
#define H_SET_TEXT_SIZE(h,v) ((h)->aouthdr.tsize = (v))
|
||||
@ -760,7 +750,7 @@ typedef struct
|
||||
#define H_SET_ENTRY_POINT(h,v) ((h)->aouthdr.entry = (v))
|
||||
#define H_SET_TEXT_START(h,v) ((h)->aouthdr.text_start = (v))
|
||||
#define H_SET_DATA_START(h,v) ((h)->aouthdr.data_start = (v))
|
||||
/* filehdr */
|
||||
/* filehdr. */
|
||||
#define H_SET_FILE_MAGIC_NUMBER(h,v) ((h)->filehdr.f_magic = (v))
|
||||
#define H_SET_NUMBER_OF_SECTIONS(h,v) ((h)->filehdr.f_nscns = (v))
|
||||
#define H_SET_TIME_STAMP(h,v) ((h)->filehdr.f_timdat = (v))
|
||||
@ -768,30 +758,30 @@ typedef struct
|
||||
#define H_SET_SYMBOL_TABLE_SIZE(h,v) ((h)->filehdr.f_nsyms = (v))
|
||||
#define H_SET_SIZEOF_OPTIONAL_HEADER(h,v) ((h)->filehdr.f_opthdr = (v))
|
||||
#define H_SET_FLAGS(h,v) ((h)->filehdr.f_flags = (v))
|
||||
/* Extra fields to achieve bsd a.out compatibility and for convinience */
|
||||
/* Extra fields to achieve bsd a.out compatibility and for convinience. */
|
||||
#define H_SET_RELOCATION_SIZE(h,t,d) ((h)->relocation_size = (t)+(d))
|
||||
#define H_SET_STRING_SIZE(h,v) ((h)->string_table_size = (v))
|
||||
#define H_SET_LINENO_SIZE(h,v) ((h)->lineno_size = (v))
|
||||
|
||||
/* Segment flipping */
|
||||
/* Segment flipping. */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
struct internal_aouthdr aouthdr; /* a.out header */
|
||||
struct internal_filehdr filehdr; /* File header, not machine dep. */
|
||||
long string_table_size; /* names + '\0' + sizeof (int) */
|
||||
long relocation_size; /* Cumulated size of relocation
|
||||
information for all sections in
|
||||
bytes. */
|
||||
long lineno_size; /* Size of the line number information
|
||||
table in bytes */
|
||||
long string_table_size; /* names + '\0' + sizeof (int) */
|
||||
long relocation_size; /* Cumulated size of relocation
|
||||
information for all sections in
|
||||
bytes. */
|
||||
long lineno_size; /* Size of the line number information
|
||||
table in bytes. */
|
||||
} object_headers;
|
||||
|
||||
struct lineno_list
|
||||
{
|
||||
struct bfd_internal_lineno line;
|
||||
char *frag; /* Frag to which the line number is related */
|
||||
struct lineno_list *next; /* Forward chain pointer */
|
||||
char *frag; /* Frag to which the line number is related. */
|
||||
struct lineno_list *next; /* Forward chain pointer. */
|
||||
};
|
||||
|
||||
#define obj_segment_name(i) (segment_info[(int) (i)].scnhdr.s_name)
|
||||
@ -823,7 +813,7 @@ extern void c_section_header PARAMS ((struct internal_scnhdr * header,
|
||||
void tc_coff_symbol_emit_hook PARAMS ((symbolS *));
|
||||
#endif
|
||||
|
||||
/* sanity check */
|
||||
/* Sanity check. */
|
||||
|
||||
#ifdef TC_I960
|
||||
#ifndef C_LEAFSTAT
|
||||
|
1636
gas/config/tc-or32.c
Normal file
1636
gas/config/tc-or32.c
Normal file
File diff suppressed because it is too large
Load Diff
63
gas/config/tc-or32.h
Normal file
63
gas/config/tc-or32.h
Normal file
@ -0,0 +1,63 @@
|
||||
/* tc-or32.h -- Assemble for the OpenRISC 1000.
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
Contributed by Damjan Lampret <lampret@opencores.org>.
|
||||
Based upon a29k port.
|
||||
|
||||
This file is part of GAS, the GNU Assembler.
|
||||
|
||||
GAS 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 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GAS 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 GAS; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define TC_OR32
|
||||
|
||||
#define TARGET_BYTES_BIG_ENDIAN 1
|
||||
|
||||
#define LEX_DOLLAR 1
|
||||
|
||||
#ifdef OBJ_ELF
|
||||
#define TARGET_FORMAT "elf32-or32"
|
||||
#define TARGET_ARCH bfd_arch_or32
|
||||
#endif
|
||||
|
||||
#ifdef OBJ_COFF
|
||||
#define TARGET_FORMAT "coff-or32-big"
|
||||
#define reloc_type int
|
||||
#endif
|
||||
|
||||
#define tc_unrecognized_line(c) or32_unrecognized_line (c)
|
||||
|
||||
extern int or32_unrecognized_line PARAMS ((int));
|
||||
|
||||
#define tc_headers_hook(a) ; /* not used */
|
||||
#define tc_headers_hook(a) ; /* not used */
|
||||
#define tc_crawl_symbol_chain(a) ; /* not used */
|
||||
#define tc_coff_symbol_emit_hook(a) ; /* not used */
|
||||
|
||||
#define AOUT_MACHTYPE 80
|
||||
#define TC_COFF_FIX2RTYPE(fix_ptr) tc_coff_fix2rtype (fix_ptr)
|
||||
#define BFD_ARCH bfd_arch_or32
|
||||
#define COFF_MAGIC SIPFBOMAGIC
|
||||
|
||||
/* Should the reloc be output ?
|
||||
on the 29k, this is true only if there is a symbol attatched.
|
||||
on the h8, this is allways true, since no fixup is done. */
|
||||
#define TC_COUNT_RELOC(x) (x->fx_addsy)
|
||||
#define TC_CONS_RELOC RELOC_32
|
||||
|
||||
#define COFF_FLAGS F_AR32W
|
||||
#define NEED_FX_R_TYPE
|
||||
|
||||
#define ZERO_BASED_SEGMENTS
|
||||
|
917
gas/configure
vendored
917
gas/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -137,6 +137,7 @@ changequote([,])dnl
|
||||
m8*) cpu_type=m88k ;;
|
||||
mips*el) cpu_type=mips endian=little ;;
|
||||
mips*) cpu_type=mips endian=big ;;
|
||||
or32*) cpu_type=or32 endian=big ;;
|
||||
pjl*) cpu_type=pj endian=little ;;
|
||||
pj*) cpu_type=pj endian=big ;;
|
||||
powerpc*le*) cpu_type=ppc endian=little ;;
|
||||
@ -375,6 +376,9 @@ changequote([,])dnl
|
||||
mn10200-*-*) fmt=elf bfd_gas=yes ;;
|
||||
mn10300-*-*) fmt=elf bfd_gas=yes ;;
|
||||
openrisc-*-*) fmt=elf bfd_gas=yes ;;
|
||||
or32-*-rtems*) fmt=coff ;;
|
||||
or32-*-coff) fmt=coff ;;
|
||||
or32-*-elf) fmt=elf ;;
|
||||
pj*) fmt=elf ;;
|
||||
ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
|
||||
fmt=coff em=pe ;;
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -188,7 +188,7 @@ DIST_COMMON = Makefile.am Makefile.in
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = tar
|
||||
TAR = gtar
|
||||
GZIP_ENV = --best
|
||||
all: all-redirect
|
||||
.SUFFIXES:
|
||||
@ -278,7 +278,7 @@ uninstall-info:
|
||||
else ii=; fi; \
|
||||
list='$(INFO_DEPS)'; \
|
||||
for file in $$list; do \
|
||||
test -z "$ii" \
|
||||
test -z "$$ii" \
|
||||
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
|
||||
done
|
||||
@$(NORMAL_UNINSTALL)
|
||||
|
@ -96,6 +96,8 @@ config/tc-ns32k.c
|
||||
config/tc-ns32k.h
|
||||
config/tc-openrisc.c
|
||||
config/tc-openrisc.h
|
||||
config/tc-or32.c
|
||||
config/tc-or32.h
|
||||
config/tc-pdp11.c
|
||||
config/tc-pdp11.h
|
||||
config/tc-pj.c
|
||||
|
1354
gas/po/gas.pot
1354
gas/po/gas.pot
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
2002-01-28 Jason Merrill <jason@redhat.com>
|
||||
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
* elf/dwarf2.h: Sync with gcc version.
|
||||
* dis-asm.h : Add support for or32 targets
|
||||
|
||||
2002-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
@ -10,11 +10,6 @@
|
||||
|
||||
* cgen.h (BFD_VERSION): Use BFD_VERSION_DATE instead.
|
||||
|
||||
2002-01-15 Richard Earnshaw <rearnsha@arm.com>
|
||||
|
||||
* coff/arm.h (F_VFP_FLOAT): Define.
|
||||
* elf/arm.h (F_VFP_FLOAT, EF_ARM_VFP_FLOAT): Define.
|
||||
|
||||
2001-12-14 Nick Clifton <nickc@cambridge.redhat.com>
|
||||
|
||||
* dis-asm.h (INIT_DISASSEMBLE_INFO_NO_ARCH): Initialise the
|
||||
@ -22,7 +17,6 @@
|
||||
|
||||
2001-12-13 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* elf/common.h (PT_GNU_EH_FRAME): Define.
|
||||
* bfdlink.h (struct bfd_link_info): Add eh_frame_hdr field.
|
||||
|
||||
2001-12-07 Geoffrey Keating <geoffk@redhat.com>
|
||||
@ -48,7 +42,7 @@
|
||||
|
||||
2001-10-24 Neil Booth <neil@daikokuya.demon.co.uk>
|
||||
|
||||
* include/safe-ctype.h (_sch_isbasic, IS_ISOBASIC): New.
|
||||
* safe-ctype.h (_sch_isbasic, IS_ISOBASIC): New.
|
||||
|
||||
2001-10-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
@ -160,12 +154,6 @@
|
||||
* libiberty.h (lbasename): Change function declaration to return a
|
||||
const char pointer.
|
||||
|
||||
2001-08-10 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* opcode/mips.h (INSN_GP32): Remove.
|
||||
(OPCODE_IS_MEMBER): Remove gp32 parameter.
|
||||
(M_MOVE): New macro identifier.
|
||||
|
||||
2001-08-02 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
* xregex.h (_REGEX_RE_COMP): Define.
|
||||
@ -177,19 +165,10 @@
|
||||
* bfdlink.h (struct bfd_link_info): add new boolean
|
||||
field pei386_auto_import.
|
||||
|
||||
2001-08-01 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* opcode/mips.h (INSN_ISA_MASK): Nuke bits 12-15.
|
||||
|
||||
2001-07-18 Andreas Jaeger <aj@suse.de>
|
||||
|
||||
* xregex2.h: Place under LGPL version 2.1.
|
||||
|
||||
2001-07-12 Jeff Johnston <jjohnstn@redhat.com>
|
||||
|
||||
* opcode/cgen.h (CGEN_INSN): Add regex support.
|
||||
(build_insn_regex): Declare.
|
||||
|
||||
2001-07-10 Jeff Johnston <jjohnstn@redhat.com>
|
||||
|
||||
* xregex.h: New file to support libiberty regex.
|
||||
@ -207,11 +186,6 @@
|
||||
|
||||
* ansidecl.h (NULL_PTR): Delete.
|
||||
|
||||
2001-05-11 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* elf/ia64.h (ELF_STRING_ia64_unwind_once): Define.
|
||||
(ELF_STRING_ia64_unwind_info_once): Define.
|
||||
|
||||
2001-05-07 Zack Weinberg <zackw@stanford.edu>
|
||||
|
||||
* demangle.h: Use PARAMS for all prototypes.
|
||||
|
@ -1,3 +1,7 @@
|
||||
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
* or32.h: New file.
|
||||
|
||||
2001-12-24 Tom Rix <trix@redhat.com>
|
||||
|
||||
* xcoff.h (xcoff_big_format_p): Make <bigaf> the default archive
|
||||
@ -5,7 +9,6 @@
|
||||
(XCOFFARMAG_ELEMENT_SIZE, XCOFFARMAGBIG_ELEMENT_SIZE): Define for
|
||||
archive header ascii elements.
|
||||
|
||||
|
||||
2001-12-17 Tom Rix <trix@redhat.com>
|
||||
|
||||
* xcoff.h : Add .except and .typchk section string and styp flags.
|
||||
@ -15,6 +18,10 @@
|
||||
|
||||
* xcoff.h : Clean up formatting.
|
||||
|
||||
2002-01-15 Richard Earnshaw <rearnsha@arm.com>
|
||||
|
||||
* arm.h (F_VFP_FLOAT): Define.
|
||||
|
||||
2001-11-11 Timothy Wall <twall@alum.mit.edu>
|
||||
|
||||
* ti.h: Move arch-specific stuff from here...
|
||||
|
287
include/coff/or32.h
Normal file
287
include/coff/or32.h
Normal file
@ -0,0 +1,287 @@
|
||||
/* COFF specification for OpenRISC 1000.
|
||||
Copyright (C) 1993-2000, 2002 Free Software Foundation, Inc.
|
||||
Contributed by David Wood @ New York University.
|
||||
Modified by Johan Rydberg, <johan.rydberg@netinsight.se>
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef OR32
|
||||
# define OR32
|
||||
#endif
|
||||
|
||||
/* File Header and related definitions. */
|
||||
struct external_filehdr
|
||||
{
|
||||
char f_magic[2]; /* magic number */
|
||||
char f_nscns[2]; /* number of sections */
|
||||
char f_timdat[4]; /* time & date stamp */
|
||||
char f_symptr[4]; /* file pointer to symtab */
|
||||
char f_nsyms[4]; /* number of symtab entries */
|
||||
char f_opthdr[2]; /* sizeof(optional hdr) */
|
||||
char f_flags[2]; /* flags */
|
||||
};
|
||||
|
||||
#define FILHDR struct external_filehdr
|
||||
#define FILHSZ 20
|
||||
|
||||
/* Magic numbers for OpenRISC 1000. As it is know we use the
|
||||
numbers for Am29000.
|
||||
|
||||
(AT&T will assign the "real" magic number). */
|
||||
#define SIPFBOMAGIC 0572 /* Am29000 (Byte 0 is MSB). */
|
||||
#define SIPRBOMAGIC 0573 /* Am29000 (Byte 0 is LSB). */
|
||||
|
||||
#define OR32_MAGIC_BIG SIPFBOMAGIC
|
||||
#define OR32_MAGIC_LITTLE SIPRBOMAGIC
|
||||
#define OR32BADMAG(x) (((x).f_magic!=OR32_MAGIC_BIG) && \
|
||||
((x).f_magic!=OR32_MAGIC_LITTLE))
|
||||
|
||||
#define OMAGIC OR32_MAGIC_BIG
|
||||
|
||||
/* Optional (a.out) header. */
|
||||
typedef struct external_aouthdr
|
||||
{
|
||||
char magic[2]; /* type of file */
|
||||
char vstamp[2]; /* version stamp */
|
||||
char tsize[4]; /* text size in bytes, padded to FW bdry */
|
||||
char dsize[4]; /* initialized data " " */
|
||||
char bsize[4]; /* uninitialized data " " */
|
||||
char entry[4]; /* entry pt. */
|
||||
char text_start[4]; /* base of text used for this file */
|
||||
char data_start[4]; /* base of data used for this file */
|
||||
} AOUTHDR;
|
||||
|
||||
#define AOUTSZ 28
|
||||
#define AOUTHDRSZ 28
|
||||
|
||||
/* aouthdr magic numbers. */
|
||||
#define NMAGIC 0410 /* separate i/d executable. */
|
||||
#define SHMAGIC 0406 /* NYU/Ultra3 shared data executable
|
||||
(writable text). */
|
||||
|
||||
#define _ETEXT "_etext"
|
||||
|
||||
/* Section header and related definitions. */
|
||||
struct external_scnhdr
|
||||
{
|
||||
char s_name[8]; /* section name */
|
||||
char s_paddr[4]; /* physical address, aliased s_nlib */
|
||||
char s_vaddr[4]; /* virtual address */
|
||||
char s_size[4]; /* section size */
|
||||
char s_scnptr[4]; /* file ptr to raw data for section */
|
||||
char s_relptr[4]; /* file ptr to relocation */
|
||||
char s_lnnoptr[4]; /* file ptr to line numbers */
|
||||
char s_nreloc[2]; /* number of relocation entries */
|
||||
char s_nlnno[2]; /* number of line number entries */
|
||||
char s_flags[4]; /* flags */
|
||||
};
|
||||
|
||||
#define SCNHDR struct external_scnhdr
|
||||
#define SCNHSZ 40
|
||||
|
||||
/* Names of "special" sections: */
|
||||
#define _TEXT ".text"
|
||||
#define _DATA ".data"
|
||||
#define _BSS ".bss"
|
||||
#define _LIT ".lit"
|
||||
|
||||
/* Section types - with additional section type for global
|
||||
registers which will be relocatable for the OpenRISC 1000.
|
||||
|
||||
In instances where it is necessary for a linker to produce an
|
||||
output file which contains text or data not based at virtual
|
||||
address 0, e.g. for a ROM, then the linker should accept
|
||||
address base information as command input and use PAD sections
|
||||
to skip over unused addresses. */
|
||||
#define STYP_BSSREG 0x1200 /* Global register area (like STYP_INFO) */
|
||||
#define STYP_ENVIR 0x2200 /* Environment (like STYP_INFO) */
|
||||
#define STYP_ABS 0x4000 /* Absolute (allocated, not reloc, loaded) */
|
||||
|
||||
/* Relocation information declaration and related definitions: */
|
||||
struct external_reloc
|
||||
{
|
||||
char r_vaddr[4]; /* (virtual) address of reference */
|
||||
char r_symndx[4]; /* index into symbol table */
|
||||
char r_type[2]; /* relocation type */
|
||||
};
|
||||
|
||||
#define RELOC struct external_reloc
|
||||
#define RELSZ 10 /* sizeof (RELOC) */
|
||||
|
||||
/* Relocation types for the OpenRISC 1000: */
|
||||
|
||||
#define R_ABS 0 /* reference is absolute */
|
||||
#define R_IREL 030 /* instruction relative (jmp/call) */
|
||||
#define R_IABS 031 /* instruction absolute (jmp/call) */
|
||||
#define R_ILOHALF 032 /* instruction low half (const) */
|
||||
#define R_IHIHALF 033 /* instruction high half (consth) part 1 */
|
||||
#define R_IHCONST 034 /* instruction high half (consth) part 2 */
|
||||
/* constant offset of R_IHIHALF relocation */
|
||||
#define R_BYTE 035 /* relocatable byte value */
|
||||
#define R_HWORD 036 /* relocatable halfword value */
|
||||
#define R_WORD 037 /* relocatable word value */
|
||||
|
||||
#define R_IGLBLRC 040 /* instruction global register RC */
|
||||
#define R_IGLBLRA 041 /* instruction global register RA */
|
||||
#define R_IGLBLRB 042 /* instruction global register RB */
|
||||
|
||||
/*
|
||||
NOTE:
|
||||
All the "I" forms refer to 29000 instruction formats. The linker is
|
||||
expected to know how the numeric information is split and/or aligned
|
||||
within the instruction word(s). R_BYTE works for instructions, too.
|
||||
|
||||
If the parameter to a CONSTH instruction is a relocatable type, two
|
||||
relocation records are written. The first has an r_type of R_IHIHALF
|
||||
(33 octal) and a normal r_vaddr and r_symndx. The second relocation
|
||||
record has an r_type of R_IHCONST (34 octal), a normal r_vaddr (which
|
||||
is redundant), and an r_symndx containing the 32-bit constant offset
|
||||
to the relocation instead of the actual symbol table index. This
|
||||
second record is always written, even if the constant offset is zero.
|
||||
The constant fields of the instruction are set to zero. */
|
||||
|
||||
/* Line number entry declaration and related definitions: */
|
||||
struct external_lineno
|
||||
{
|
||||
union
|
||||
{
|
||||
char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
|
||||
char l_paddr[4]; /* (physical) address of line number */
|
||||
}
|
||||
l_addr;
|
||||
|
||||
char l_lnno[2]; /* line number */
|
||||
};
|
||||
|
||||
#define LINENO struct external_lineno
|
||||
#define LINESZ 6 /* sizeof (LINENO) */
|
||||
|
||||
/* Symbol entry declaration and related definitions: */
|
||||
#define E_SYMNMLEN 8 /* Number of characters in a symbol name */
|
||||
|
||||
struct external_syment
|
||||
{
|
||||
union
|
||||
{
|
||||
char e_name[E_SYMNMLEN];
|
||||
struct
|
||||
{
|
||||
char e_zeroes[4];
|
||||
char e_offset[4];
|
||||
}
|
||||
e;
|
||||
}
|
||||
e;
|
||||
|
||||
char e_value[4];
|
||||
char e_scnum[2];
|
||||
char e_type[2];
|
||||
char e_sclass[1];
|
||||
char e_numaux[1];
|
||||
};
|
||||
|
||||
#define SYMENT struct external_syment
|
||||
#define SYMESZ 18
|
||||
|
||||
/* Storage class definitions - new classes for global registers: */
|
||||
#define C_GLBLREG 19 /* global register */
|
||||
#define C_EXTREG 20 /* external global register */
|
||||
#define C_DEFREG 21 /* ext. def. of global register */
|
||||
|
||||
/* Derived symbol mask/shifts: */
|
||||
#define N_BTMASK (0xf)
|
||||
#define N_BTSHFT (4)
|
||||
#define N_TMASK (0x30)
|
||||
#define N_TSHIFT (2)
|
||||
|
||||
/* Auxiliary symbol table entry declaration and related
|
||||
definitions. */
|
||||
#define E_FILNMLEN 14 /* # characters in a file name */
|
||||
#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
|
||||
|
||||
union external_auxent
|
||||
{
|
||||
struct
|
||||
{
|
||||
char x_tagndx[4]; /* str, un, or enum tag indx */
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
char x_lnno[2]; /* declaration line number */
|
||||
char x_size[2]; /* str/union/array size */
|
||||
}
|
||||
x_lnsz;
|
||||
|
||||
char x_fsize[4]; /* size of function */
|
||||
}
|
||||
x_misc;
|
||||
|
||||
union
|
||||
{
|
||||
struct /* if ISFCN, tag, or .bb */
|
||||
{
|
||||
char x_lnnoptr[4]; /* ptr to fcn line # */
|
||||
char x_endndx[4]; /* entry ndx past block end */
|
||||
}
|
||||
x_fcn;
|
||||
|
||||
struct /* if ISARY, up to 4 dimen. */
|
||||
{
|
||||
char x_dimen[E_DIMNUM][2];
|
||||
}
|
||||
x_ary;
|
||||
}
|
||||
x_fcnary;
|
||||
|
||||
char x_tvndx[2]; /* tv index */
|
||||
}
|
||||
x_sym;
|
||||
|
||||
union
|
||||
{
|
||||
char x_fname[E_FILNMLEN];
|
||||
|
||||
struct
|
||||
{
|
||||
char x_zeroes[4];
|
||||
char x_offset[4];
|
||||
}
|
||||
x_n;
|
||||
}
|
||||
x_file;
|
||||
|
||||
struct
|
||||
{
|
||||
char x_scnlen[4]; /* section length */
|
||||
char x_nreloc[2]; /* # relocation entries */
|
||||
char x_nlinno[2]; /* # line numbers */
|
||||
}
|
||||
x_scn;
|
||||
|
||||
struct
|
||||
{
|
||||
char x_tvfill[4]; /* tv fill value */
|
||||
char x_tvlen[2]; /* length of .tv */
|
||||
char x_tvran[2][2]; /* tv range */
|
||||
}
|
||||
x_tv; /* info about .tv section
|
||||
(in auxent of symbol .tv)) */
|
||||
};
|
||||
|
||||
#define AUXENT union external_auxent
|
||||
#define AUXESZ 18
|
@ -1,6 +1,6 @@
|
||||
/* Interface between the opcode library and its callers.
|
||||
|
||||
Copyright 2001 Free Software Foundation, Inc.
|
||||
Copyright 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
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
|
||||
@ -212,6 +212,8 @@ extern int print_insn_mn10200 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_mn10300 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_ns32k PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_openrisc PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_big_or32 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_little_or32 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_pdp11 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_pj PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_big_powerpc PARAMS ((bfd_vma, disassemble_info*));
|
||||
|
@ -1,7 +1,20 @@
|
||||
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
* or32.h: New file.
|
||||
* common.h: Add support for or32 targets.
|
||||
|
||||
2002-01-28 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* dwarf2.h: Sync with gcc version.
|
||||
|
||||
2002-01-16 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* ppc.h (DT_PPC64_GLINK): Define.
|
||||
|
||||
2002-01-15 Richard Earnshaw <rearnsha@arm.com>
|
||||
|
||||
* arm.h (F_VFP_FLOAT, EF_ARM_VFP_FLOAT): Define.
|
||||
|
||||
2002-01-09 Jason Thorpe <thorpej@wasabisystems.com>
|
||||
|
||||
* common.h: Update copyright years.
|
||||
@ -24,6 +37,10 @@
|
||||
unsigned int.
|
||||
* common.h (SHN_BAD): Define.
|
||||
|
||||
2001-12-13 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* elf/common.h (PT_GNU_EH_FRAME): Define.
|
||||
|
||||
2001-12-11 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* common.h (SHN_XINDEX): Comment typo fix.
|
||||
@ -90,7 +107,7 @@
|
||||
(E_H8_MACH_H8300, E_H8_MACH_H8300H, E_H8_MACH_H8300S): New
|
||||
machine types.
|
||||
|
||||
Tue Aug 26 23:32:34 2001 J"orn Rennecke <amylaar@redhat.com>
|
||||
2001-08-26 J"orn Rennecke <amylaar@redhat.com>
|
||||
|
||||
* h8.h: New file.
|
||||
|
||||
@ -118,6 +135,11 @@ Tue Aug 26 23:32:34 2001 J"orn Rennecke <amylaar@redhat.com>
|
||||
* common.h: Remove definition of EM_MIPS_RS4_BE. The constant was
|
||||
never in active use and is used otherwise by the ABI.
|
||||
|
||||
2001-05-11 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* ia64.h (ELF_STRING_ia64_unwind_once): Define.
|
||||
(ELF_STRING_ia64_unwind_info_once): Define.
|
||||
|
||||
2001-05-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||
|
||||
* external.h: Fix typo.
|
||||
@ -390,8 +412,8 @@ Tue Aug 26 23:32:34 2001 J"orn Rennecke <amylaar@redhat.com>
|
||||
(ELFOSABI_MODESTO): Defined.
|
||||
(ELFOSABI_OPENBSD): Likewise.
|
||||
|
||||
Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
|
||||
David Mosberger <davidm@hpl.hp.com>
|
||||
2000-04-21 Richard Henderson <rth@cygnus.com>
|
||||
David Mosberger <davidm@hpl.hp.com>
|
||||
|
||||
* ia64.h: New file.
|
||||
|
||||
@ -425,7 +447,7 @@ Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
|
||||
(PF_ARM_PI): Define.
|
||||
(PF_ARM_ABS): Define.
|
||||
|
||||
Wed Apr 5 22:08:59 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||
2000-04-05 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||
|
||||
* sh.h (R_SH_LOOP_START, R_SH_LOOP_END): New RELOC_NUMBERs.
|
||||
|
||||
@ -454,7 +476,7 @@ Wed Apr 5 22:08:59 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||
|
||||
* common.h (ELFOSABI_LINUX): Define.
|
||||
|
||||
Thu Feb 17 00:18:33 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||
2000-02-17 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||
|
||||
* sh.h: (EF_SH_MACH_MASK, EF_SH_UNKNOWN, EF_SH1, EF_SH2): New macros.
|
||||
(EF_SH3, EF_SH_HAS_DSP, EF_SH_DSP, EF_SH3_DSP): Likewise.
|
||||
|
@ -199,6 +199,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
/* Old version of PowerPC, this should be removed shortly. */
|
||||
#define EM_PPC_OLD 17
|
||||
|
||||
/* (Depreciated) Temporary number for the OpenRISC processor. */
|
||||
#define EM_OR32 0x8472
|
||||
|
||||
/* Cygnus M32R ELF backend. Written in the absence of an ABI. */
|
||||
#define EM_CYGNUS_M32R 0x9041
|
||||
|
||||
|
62
include/elf/or32.h
Normal file
62
include/elf/or32.h
Normal file
@ -0,0 +1,62 @@
|
||||
/* OR1K ELF support for BFD. Derived from ppc.h.
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
Contributed by Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _ELF_OR1K_H
|
||||
#define _ELF_OR1K_H
|
||||
|
||||
#include "elf/reloc-macros.h"
|
||||
|
||||
/* Relocations. */
|
||||
START_RELOC_NUMBERS (elf_or32_reloc_type)
|
||||
RELOC_NUMBER (R_OR32_NONE, 0)
|
||||
RELOC_NUMBER (R_OR32_32, 1)
|
||||
RELOC_NUMBER (R_OR32_16, 2)
|
||||
RELOC_NUMBER (R_OR32_8, 3)
|
||||
RELOC_NUMBER (R_OR32_CONST, 4)
|
||||
RELOC_NUMBER (R_OR32_CONSTH, 5)
|
||||
RELOC_NUMBER (R_OR32_JUMPTARG, 6)
|
||||
RELOC_NUMBER (R_OR32_GNU_VTENTRY, 7)
|
||||
RELOC_NUMBER (R_OR32_GNU_VTINHERIT, 8)
|
||||
END_RELOC_NUMBERS (R_OR32_max)
|
||||
|
||||
/* Four bit OR32 machine type field. */
|
||||
#define EF_OR32_MACH 0x0000000f
|
||||
|
||||
/* Various CPU types. */
|
||||
#define E_OR32_MACH_BASE 0x00000000
|
||||
#define E_OR32_MACH_UNUSED1 0x00000001
|
||||
#define E_OR32_MACH_UNUSED2 0x00000002
|
||||
#define E_OR32_MACH_UNUSED4 0x00000003
|
||||
|
||||
/* Processor specific section headers, sh_type field */
|
||||
#define SHT_ORDERED SHT_HIPROC /* Link editor is to sort the \
|
||||
entries in this section \
|
||||
based on the address \
|
||||
specified in the associated \
|
||||
symbol table entry. */
|
||||
|
||||
/* Processor specific section flags, sh_flags field */
|
||||
#define SHF_EXCLUDE 0x80000000 /* Link editor is to exclude \
|
||||
this section from executable \
|
||||
and shared objects that it \
|
||||
builds when those objects \
|
||||
are not to be furhter \
|
||||
relocated. */
|
||||
#endif /* _ELF_OR1K_H */
|
@ -1,3 +1,7 @@
|
||||
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
* or32.h: New file.
|
||||
|
||||
2002-01-22 Graydon Hoare <graydon@redhat.com>
|
||||
|
||||
* cgen.h (CGEN_MAYBE_MULTI_IFLD): New structure.
|
||||
@ -118,11 +122,26 @@ Mon Dec 31 16:45:41 2001 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* ppc.h: Revert 2001-08-08.
|
||||
|
||||
2001-08-10 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* mips.h (INSN_GP32): Remove.
|
||||
(OPCODE_IS_MEMBER): Remove gp32 parameter.
|
||||
(M_MOVE): New macro identifier.
|
||||
|
||||
2001-08-08 Alan Modra <amodra@one.net.au>
|
||||
|
||||
1999-10-25 Torbjorn Granlund <tege@swox.com>
|
||||
* ppc.h (struct powerpc_operand): New field `reloc'.
|
||||
|
||||
2001-08-01 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* mips.h (INSN_ISA_MASK): Nuke bits 12-15.
|
||||
|
||||
2001-07-12 Jeff Johnston <jjohnstn@redhat.com>
|
||||
|
||||
* cgen.h (CGEN_INSN): Add regex support.
|
||||
(build_insn_regex): Declare.
|
||||
|
||||
2001-07-11 Frank Ch. Eigler <fche@redhat.com>
|
||||
|
||||
* cgen.h (CGEN_MACH): Add insn_chunk_bitsize field.
|
||||
|
188
include/opcode/or32.h
Normal file
188
include/opcode/or32.h
Normal file
@ -0,0 +1,188 @@
|
||||
/* Table of opcodes for the OpenRISC 1000 ISA.
|
||||
Copyright 2002 Free Software Foundation, Inc.
|
||||
Contributed by Damjan Lampret (lampret@opencores.org).
|
||||
|
||||
This file is part of or1k_gen_isa, or1ksim, GDB and GAS.
|
||||
|
||||
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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* We treat all letters the same in encode/decode routines so
|
||||
we need to assign some characteristics to them like signess etc. */
|
||||
|
||||
#ifndef OR32_H_ISA
|
||||
#define OR32_H_ISA
|
||||
|
||||
#define NUM_UNSIGNED (0)
|
||||
#define NUM_SIGNED (1)
|
||||
|
||||
#ifndef PARAMS
|
||||
#define PARAMS(x) x
|
||||
#endif
|
||||
|
||||
#ifndef CONST
|
||||
#define CONST const
|
||||
#endif
|
||||
|
||||
#define MAX_GPRS 32
|
||||
#define PAGE_SIZE 4096
|
||||
#undef __HALF_WORD_INSN__
|
||||
|
||||
#define OPERAND_DELIM (',')
|
||||
|
||||
#define OR32_IF_DELAY (1)
|
||||
#define OR32_W_FLAG (2)
|
||||
#define OR32_R_FLAG (4)
|
||||
|
||||
struct or32_letter
|
||||
{
|
||||
char letter;
|
||||
int sign;
|
||||
/* int reloc; relocation per letter ?? */
|
||||
};
|
||||
|
||||
/* Main instruction specification array. */
|
||||
struct or32_opcode
|
||||
{
|
||||
/* Name of the instruction. */
|
||||
char *name;
|
||||
|
||||
/* A string of characters which describe the operands.
|
||||
Valid characters are:
|
||||
,() Itself. Characters appears in the assembly code.
|
||||
rA Register operand.
|
||||
rB Register operand.
|
||||
rD Register operand.
|
||||
I An immediate operand, range -32768 to 32767.
|
||||
J An immediate operand, range . (unused)
|
||||
K An immediate operand, range 0 to 65535.
|
||||
L An immediate operand, range 0 to 63.
|
||||
M An immediate operand, range . (unused)
|
||||
N An immediate operand, range -33554432 to 33554431.
|
||||
O An immediate operand, range . (unused). */
|
||||
char *args;
|
||||
|
||||
/* Opcode and operand encoding. */
|
||||
char *encoding;
|
||||
void (*exec) PARAMS ((void));
|
||||
unsigned int flags;
|
||||
};
|
||||
|
||||
#define OPTYPE_LAST (0x80000000)
|
||||
#define OPTYPE_OP (0x40000000)
|
||||
#define OPTYPE_REG (0x20000000)
|
||||
#define OPTYPE_SIG (0x10000000)
|
||||
#define OPTYPE_DIS (0x08000000)
|
||||
#define OPTYPE_DST (0x04000000)
|
||||
#define OPTYPE_SBIT (0x00001F00)
|
||||
#define OPTYPE_SHR (0x0000001F)
|
||||
#define OPTYPE_SBIT_SHR (8)
|
||||
|
||||
/* MM: Data how to decode operands. */
|
||||
extern struct insn_op_struct
|
||||
{
|
||||
unsigned long type;
|
||||
unsigned long data;
|
||||
} **op_start;
|
||||
|
||||
#ifdef HAS_EXECUTION
|
||||
extern void l_invalid PARAMS ((void));
|
||||
extern void l_sfne PARAMS ((void));
|
||||
extern void l_bf PARAMS ((void));
|
||||
extern void l_add PARAMS ((void));
|
||||
extern void l_sw PARAMS ((void));
|
||||
extern void l_sb PARAMS ((void));
|
||||
extern void l_sh PARAMS ((void));
|
||||
extern void l_lwz PARAMS ((void));
|
||||
extern void l_lbs PARAMS ((void));
|
||||
extern void l_lbz PARAMS ((void));
|
||||
extern void l_lhs PARAMS ((void));
|
||||
extern void l_lhz PARAMS ((void));
|
||||
extern void l_movhi PARAMS ((void));
|
||||
extern void l_and PARAMS ((void));
|
||||
extern void l_or PARAMS ((void));
|
||||
extern void l_xor PARAMS ((void));
|
||||
extern void l_sub PARAMS ((void));
|
||||
extern void l_mul PARAMS ((void));
|
||||
extern void l_div PARAMS ((void));
|
||||
extern void l_divu PARAMS ((void));
|
||||
extern void l_sll PARAMS ((void));
|
||||
extern void l_sra PARAMS ((void));
|
||||
extern void l_srl PARAMS ((void));
|
||||
extern void l_j PARAMS ((void));
|
||||
extern void l_jal PARAMS ((void));
|
||||
extern void l_jalr PARAMS ((void));
|
||||
extern void l_jr PARAMS ((void));
|
||||
extern void l_rfe PARAMS ((void));
|
||||
extern void l_nop PARAMS ((void));
|
||||
extern void l_bnf PARAMS ((void));
|
||||
extern void l_sfeq PARAMS ((void));
|
||||
extern void l_sfgts PARAMS ((void));
|
||||
extern void l_sfges PARAMS ((void));
|
||||
extern void l_sflts PARAMS ((void));
|
||||
extern void l_sfles PARAMS ((void));
|
||||
extern void l_sfgtu PARAMS ((void));
|
||||
extern void l_sfgeu PARAMS ((void));
|
||||
extern void l_sfltu PARAMS ((void));
|
||||
extern void l_sfleu PARAMS ((void));
|
||||
extern void l_mtspr PARAMS ((void));
|
||||
extern void l_mfspr PARAMS ((void));
|
||||
extern void l_sys PARAMS ((void));
|
||||
extern void l_trap PARAMS ((void)); /* CZ 21/06/01. */
|
||||
extern void l_macrc PARAMS ((void));
|
||||
extern void l_mac PARAMS ((void));
|
||||
extern void l_msb PARAMS ((void));
|
||||
extern void l_invalid PARAMS ((void));
|
||||
extern void l_cust1 PARAMS ((void));
|
||||
extern void l_cust2 PARAMS ((void));
|
||||
extern void l_cust3 PARAMS ((void));
|
||||
extern void l_cust4 PARAMS ((void));
|
||||
#endif
|
||||
extern void l_none PARAMS ((void));
|
||||
|
||||
extern const struct or32_letter or32_letters[];
|
||||
|
||||
extern const struct or32_opcode or32_opcodes[];
|
||||
|
||||
extern const unsigned int or32_num_opcodes;
|
||||
|
||||
/* Calculates instruction length in bytes. Always 4 for OR32. */
|
||||
extern int insn_len PARAMS ((int));
|
||||
|
||||
/* Is individual insn's operand signed or unsigned? */
|
||||
extern int letter_signed PARAMS ((char));
|
||||
|
||||
/* Number of letters in the individual lettered operand. */
|
||||
extern int letter_range PARAMS ((char));
|
||||
|
||||
/* MM: Returns index of given instruction name. */
|
||||
extern int insn_index PARAMS ((char *));
|
||||
|
||||
/* MM: Returns instruction name from index. */
|
||||
extern const char *insn_name PARAMS ((int));
|
||||
|
||||
/* MM: Constructs new FSM, based on or32_opcodes. */
|
||||
extern void build_automata PARAMS ((void));
|
||||
|
||||
/* MM: Destructs FSM. */
|
||||
extern void destruct_automata PARAMS ((void));
|
||||
|
||||
/* MM: Decodes instruction using FSM. Call build_automata first. */
|
||||
extern int insn_decode PARAMS ((unsigned int));
|
||||
|
||||
/* Disassemble one instruction from insn to disassemble.
|
||||
Return the size of the instruction. */
|
||||
int disassemble_insn PARAMS ((unsigned long));
|
||||
|
||||
#endif
|
36
ld/ChangeLog
36
ld/ChangeLog
@ -1,3 +1,15 @@
|
||||
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
* emulparams/or32.sh: New file.
|
||||
* emulparams/or32elf.sh: New file.
|
||||
* scripttempl/or32.sc: New file.
|
||||
* configure.tgt : Add support for or32.
|
||||
* configure: Regenerate
|
||||
* Makefile.am: Add support for or32.
|
||||
* Makefile.in: Regenerate.
|
||||
* NEWS: Mention support for or32.
|
||||
* po/ld.pot: Regenerate.
|
||||
|
||||
2002-01-29 Chris Demetriou <cgd@broadcom.com>
|
||||
Mitch Lichtenberg <mpl@broadcom.com>
|
||||
|
||||
@ -479,7 +491,7 @@
|
||||
* emultempl/elf32.em (gld${EMULATION_NAME}_finish): New.
|
||||
(struct ld_emulation_xfer_struct): Use it.
|
||||
|
||||
Tue Nov 13 11:27:14 2001 Ross Alexander <ross.alexander@uk.neceur.com>
|
||||
2001-11-13 Ross Alexander <ross.alexander@uk.neceur.com>
|
||||
|
||||
* emulparams/elf64hppa.sh (OTHER_BSS_END_SYMBOLS): Add
|
||||
additional symbols referenced by newer crt0.o files from HP.
|
||||
@ -832,7 +844,7 @@ Tue Nov 13 11:27:14 2001 Ross Alexander <ross.alexander@uk.neceur.com>
|
||||
|
||||
* scripttempl/v850.sc: Add gcc_except_table sections.
|
||||
|
||||
Fri Sep 7 11:34:24 2001 Jeffrey A Law (law@cygnus.com)
|
||||
2001-09-11 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* emulparams/h8300helf.sh: Move stack to a much higher memory address.
|
||||
* emulparams/h8300self.sh: Similarly.
|
||||
@ -888,7 +900,7 @@ Fri Sep 7 11:34:24 2001 Jeffrey A Law (law@cygnus.com)
|
||||
ARCH specification.
|
||||
* emulparams/h8300self.sh: Similarly.
|
||||
|
||||
Wed Aug 28 13:37:20 2001 J"orn Rennecke <amylaar@redhat.com>
|
||||
2001-08-28 J"orn Rennecke <amylaar@redhat.com>
|
||||
|
||||
* Makefile.am (ALL_EMULATIONS): Add eh8300elf.o, eh8300elf.o and
|
||||
eh8300self.o .
|
||||
@ -1989,7 +2001,7 @@ Wed Aug 28 13:37:20 2001 J"orn Rennecke <amylaar@redhat.com>
|
||||
* emulparams/elf32ppcsim.sh (OTHER_READWRITE_SECTIONS): Likewise.
|
||||
* emulparams/elf32lppcsim.sh (OTHER_READWRITE_SECTIONS): Likewise.
|
||||
|
||||
Mon Dec 11 14:50:33 MET 2000 Jan Hubicka <jh@suse.cz>
|
||||
2000-12-11 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* NEWS: Add note about x86_64 architecture.
|
||||
|
||||
@ -2058,7 +2070,7 @@ Mon Dec 11 14:50:33 MET 2000 Jan Hubicka <jh@suse.cz>
|
||||
* scripttempl/h8300h.sc: Likewise.
|
||||
* scripttempl/h8300s.sc: Likewise.
|
||||
|
||||
Tue Nov 14 00:59:19 2000 Denis Chertykov <denisc@overta.ru>
|
||||
2000-11-14 Denis Chertykov <denisc@overta.ru>
|
||||
|
||||
* scripttempl/elf32avr.sc: Fix bug in .eeprom segment.
|
||||
|
||||
@ -3017,7 +3029,7 @@ Tue Nov 14 00:59:19 2000 Denis Chertykov <denisc@overta.ru>
|
||||
|
||||
* lexsup.c (parse_args): `i' == `r', not `q'.
|
||||
|
||||
Thu May 18 10:47:57 2000 Jeffrey A Law (law@cygnus.com)
|
||||
2000-05-18 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* configure.tgt (hppa*64*-*-*): Enable PA64 target.
|
||||
|
||||
@ -3058,7 +3070,7 @@ Thu May 18 10:47:57 2000 Jeffrey A Law (law@cygnus.com)
|
||||
* lexsup.c (set_section_start): Use bfd_scan_vma rather than
|
||||
strtoul.
|
||||
|
||||
Mon May 1 17:34:34 2000 Jim Wilson <wilson@cygnus.com>
|
||||
2000-05-01 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* configure.host (ia64-*-linux-gnu*): Change gcc to ${CC}.
|
||||
|
||||
@ -3069,7 +3081,7 @@ Mon May 1 17:34:34 2000 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* ld.h: Correctly check GCC version.
|
||||
|
||||
Tue Apr 25 11:20:43 2000 Jeffrey A Law (law@cygnus.com)
|
||||
2000-04-25 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* Makefile.am: Add PA64 support. Add missing dependencies for
|
||||
PA32 elf support.
|
||||
@ -3108,8 +3120,8 @@ Tue Apr 25 11:20:43 2000 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* configure.tgt: Add NetBSD/sparc ELF, and NetBSD/sparc64 support.
|
||||
|
||||
Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
|
||||
David Mosberger <davidm@hpl.hp.com>
|
||||
2000-04-21 Richard Henderson <rth@cygnus.com>
|
||||
David Mosberger <davidm@hpl.hp.com>
|
||||
|
||||
* Makefile.am (ALL_64_EMULATIONS): Add eelf64_ia64.o.
|
||||
(eelf64_ia64.c): New rule.
|
||||
@ -3188,7 +3200,7 @@ Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* ld.texinfo (Simple Example): Remove extraneous paragraph.
|
||||
|
||||
Fri Apr 7 15:56:57 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
2000-04-07 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* configure.in (WARN_CFLAGS): Set to -W -Wall by default. Add
|
||||
--enable-build-warnings option.
|
||||
@ -3457,7 +3469,7 @@ Fri Apr 7 15:56:57 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
being invoked by a comnpiler driver program.
|
||||
Fix description of the behaviour of the -n command line switch.
|
||||
|
||||
Wed Jan 5 08:02:12 2000 Catherine Moore <clm@cygnus.com>
|
||||
2000-01-05 Catherine Moore <clm@cygnus.com>
|
||||
|
||||
* ld.h (wildcard_spec): Change exclude_name to exclude_name_list.
|
||||
(name_list): New.
|
||||
|
@ -224,6 +224,8 @@ ALL_EMULATIONS = \
|
||||
emipspe.o \
|
||||
enews.o \
|
||||
ens32knbsd.o \
|
||||
eor32.o \
|
||||
eor32elf.o \
|
||||
epc532macha.o \
|
||||
epdp11.o \
|
||||
epjelf.o \
|
||||
@ -793,6 +795,12 @@ enews.c: $(srcdir)/emulparams/news.sh \
|
||||
ens32knbsd.c: $(srcdir)/emulparams/ns32knbsd.sh \
|
||||
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} ns32knbsd "$(tdir_ns32knbsd)"
|
||||
eor32.c: $(srcdir)/emulparams/or32.sh \
|
||||
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/or32.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} or32 "$(tdir_or32)"
|
||||
eor32elf.c: $(srcdir)/emulparams/or32elf.sh \
|
||||
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} or32elf "$(tdir_or32elf)"
|
||||
epc532macha.c: $(srcdir)/emulparams/pc532macha.sh \
|
||||
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} pc532macha "$(tdir_pc532macha)"
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -333,6 +333,8 @@ ALL_EMULATIONS = \
|
||||
emipspe.o \
|
||||
enews.o \
|
||||
ens32knbsd.o \
|
||||
eor32.o \
|
||||
eor32elf.o \
|
||||
epc532macha.o \
|
||||
epdp11.o \
|
||||
epjelf.o \
|
||||
@ -493,7 +495,7 @@ deffilep.c ldgram.c ldlex.c
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = tar
|
||||
TAR = gtar
|
||||
GZIP_ENV = --best
|
||||
SOURCES = $(ld_new_SOURCES) $(EXTRA_ld_new_SOURCES)
|
||||
OBJECTS = $(ld_new_OBJECTS)
|
||||
@ -681,7 +683,7 @@ uninstall-info:
|
||||
else ii=; fi; \
|
||||
list='$(INFO_DEPS)'; \
|
||||
for file in $$list; do \
|
||||
test -z "$ii" \
|
||||
test -z "$$ii" \
|
||||
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
|
||||
done
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@ -794,7 +796,7 @@ maintainer-clean-recursive:
|
||||
dot_seen=no; \
|
||||
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
rev="$$subdir $$rev"; \
|
||||
test "$$subdir" = "." && dot_seen=yes; \
|
||||
test "$$subdir" != "." || dot_seen=yes; \
|
||||
done; \
|
||||
test "$$dot_seen" = "no" && rev=". $$rev"; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
@ -1514,6 +1516,12 @@ enews.c: $(srcdir)/emulparams/news.sh \
|
||||
ens32knbsd.c: $(srcdir)/emulparams/ns32knbsd.sh \
|
||||
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} ns32knbsd "$(tdir_ns32knbsd)"
|
||||
eor32.c: $(srcdir)/emulparams/or32.sh \
|
||||
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/or32.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} or32 "$(tdir_or32)"
|
||||
eor32elf.c: $(srcdir)/emulparams/or32elf.sh \
|
||||
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} or32elf "$(tdir_or32elf)"
|
||||
epc532macha.c: $(srcdir)/emulparams/pc532macha.sh \
|
||||
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
|
||||
${GENSCRIPTS} pc532macha "$(tdir_pc532macha)"
|
||||
|
2
ld/NEWS
2
ld/NEWS
@ -1,4 +1,6 @@
|
||||
-*- text -*-
|
||||
* Support for the OpenRISC 32-bit embedded processor by OpenCores.
|
||||
|
||||
* Support for -z nocopyreloc in the x86 ELF linker, which disables
|
||||
production of copy relocs. Warning: using this option may result in
|
||||
non-sharable applications.
|
||||
|
197
ld/configure
vendored
197
ld/configure
vendored
@ -3145,7 +3145,7 @@ EOF
|
||||
|
||||
fi
|
||||
|
||||
for ac_hdr in unistd.h
|
||||
for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h
|
||||
do
|
||||
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
|
||||
@ -3277,11 +3277,24 @@ else
|
||||
#include <fcntl.h>
|
||||
#include <sys/mman.h>
|
||||
|
||||
#if HAVE_SYS_TYPES_H
|
||||
# include <sys/types.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_STDLIB_H
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_SYS_STAT_H
|
||||
# include <sys/stat.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
/* This mess was copied from the GNU getpagesize.h. */
|
||||
#ifndef HAVE_GETPAGESIZE
|
||||
# ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
# endif
|
||||
|
||||
/* Assume that all systems that can run configure have sys/param.h. */
|
||||
# ifndef HAVE_SYS_PARAM_H
|
||||
@ -3389,7 +3402,7 @@ main()
|
||||
}
|
||||
|
||||
EOF
|
||||
if { (eval echo configure:3393: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:3406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
ac_cv_func_mmap_fixed_mapped=yes
|
||||
else
|
||||
@ -3417,17 +3430,17 @@ unistd.h values.h sys/param.h
|
||||
do
|
||||
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
|
||||
echo "configure:3421: checking for $ac_hdr" >&5
|
||||
echo "configure:3434: checking for $ac_hdr" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3426 "configure"
|
||||
#line 3439 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <$ac_hdr>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:3431: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:3444: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
@ -3457,12 +3470,12 @@ done
|
||||
__argz_count __argz_stringify __argz_next
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:3461: checking for $ac_func" >&5
|
||||
echo "configure:3474: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3466 "configure"
|
||||
#line 3479 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
@ -3485,7 +3498,7 @@ $ac_func();
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:3489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:3502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
@ -3514,12 +3527,12 @@ done
|
||||
for ac_func in stpcpy
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:3518: checking for $ac_func" >&5
|
||||
echo "configure:3531: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3523 "configure"
|
||||
#line 3536 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
@ -3542,7 +3555,7 @@ $ac_func();
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:3546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:3559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
@ -3576,19 +3589,19 @@ EOF
|
||||
|
||||
if test $ac_cv_header_locale_h = yes; then
|
||||
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
|
||||
echo "configure:3580: checking for LC_MESSAGES" >&5
|
||||
echo "configure:3593: checking for LC_MESSAGES" >&5
|
||||
if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3585 "configure"
|
||||
#line 3598 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <locale.h>
|
||||
int main() {
|
||||
return LC_MESSAGES
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:3592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:3605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
am_cv_val_LC_MESSAGES=yes
|
||||
else
|
||||
@ -3609,7 +3622,7 @@ EOF
|
||||
fi
|
||||
fi
|
||||
echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
|
||||
echo "configure:3613: checking whether NLS is requested" >&5
|
||||
echo "configure:3626: checking whether NLS is requested" >&5
|
||||
# Check whether --enable-nls or --disable-nls was given.
|
||||
if test "${enable_nls+set}" = set; then
|
||||
enableval="$enable_nls"
|
||||
@ -3629,7 +3642,7 @@ fi
|
||||
EOF
|
||||
|
||||
echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
|
||||
echo "configure:3633: checking whether included gettext is requested" >&5
|
||||
echo "configure:3646: checking whether included gettext is requested" >&5
|
||||
# Check whether --with-included-gettext or --without-included-gettext was given.
|
||||
if test "${with_included_gettext+set}" = set; then
|
||||
withval="$with_included_gettext"
|
||||
@ -3648,17 +3661,17 @@ fi
|
||||
|
||||
ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
|
||||
echo "configure:3652: checking for libintl.h" >&5
|
||||
echo "configure:3665: checking for libintl.h" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3657 "configure"
|
||||
#line 3670 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <libintl.h>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:3662: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:3675: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
@ -3675,19 +3688,19 @@ fi
|
||||
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
|
||||
echo "$ac_t""yes" 1>&6
|
||||
echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
|
||||
echo "configure:3679: checking for gettext in libc" >&5
|
||||
echo "configure:3692: checking for gettext in libc" >&5
|
||||
if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3684 "configure"
|
||||
#line 3697 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <libintl.h>
|
||||
int main() {
|
||||
return (int) gettext ("")
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:3691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:3704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
gt_cv_func_gettext_libc=yes
|
||||
else
|
||||
@ -3703,7 +3716,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
|
||||
|
||||
if test "$gt_cv_func_gettext_libc" != "yes"; then
|
||||
echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
|
||||
echo "configure:3707: checking for bindtextdomain in -lintl" >&5
|
||||
echo "configure:3720: checking for bindtextdomain in -lintl" >&5
|
||||
ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -3711,7 +3724,7 @@ else
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-lintl $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3715 "configure"
|
||||
#line 3728 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
@ -3722,7 +3735,7 @@ int main() {
|
||||
bindtextdomain()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:3726: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:3739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
@ -3738,19 +3751,19 @@ fi
|
||||
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
|
||||
echo "$ac_t""yes" 1>&6
|
||||
echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
|
||||
echo "configure:3742: checking for gettext in libintl" >&5
|
||||
echo "configure:3755: checking for gettext in libintl" >&5
|
||||
if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3747 "configure"
|
||||
#line 3760 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
return (int) gettext ("")
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:3754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:3767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
gt_cv_func_gettext_libintl=yes
|
||||
else
|
||||
@ -3778,7 +3791,7 @@ EOF
|
||||
# Extract the first word of "msgfmt", so it can be a program name with args.
|
||||
set dummy msgfmt; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:3782: checking for $ac_word" >&5
|
||||
echo "configure:3795: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -3812,12 +3825,12 @@ fi
|
||||
for ac_func in dcgettext
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:3816: checking for $ac_func" >&5
|
||||
echo "configure:3829: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3821 "configure"
|
||||
#line 3834 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
@ -3840,7 +3853,7 @@ $ac_func();
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:3844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:3857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
@ -3867,7 +3880,7 @@ done
|
||||
# Extract the first word of "gmsgfmt", so it can be a program name with args.
|
||||
set dummy gmsgfmt; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:3871: checking for $ac_word" >&5
|
||||
echo "configure:3884: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -3903,7 +3916,7 @@ fi
|
||||
# Extract the first word of "xgettext", so it can be a program name with args.
|
||||
set dummy xgettext; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:3907: checking for $ac_word" >&5
|
||||
echo "configure:3920: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -3935,7 +3948,7 @@ else
|
||||
fi
|
||||
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3939 "configure"
|
||||
#line 3952 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
@ -3943,7 +3956,7 @@ extern int _nl_msg_cat_cntr;
|
||||
return _nl_msg_cat_cntr
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:3947: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:3960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
CATOBJEXT=.gmo
|
||||
DATADIRNAME=share
|
||||
@ -3975,7 +3988,7 @@ fi
|
||||
# Extract the first word of "msgfmt", so it can be a program name with args.
|
||||
set dummy msgfmt; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:3979: checking for $ac_word" >&5
|
||||
echo "configure:3992: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -4009,7 +4022,7 @@ fi
|
||||
# Extract the first word of "gmsgfmt", so it can be a program name with args.
|
||||
set dummy gmsgfmt; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:4013: checking for $ac_word" >&5
|
||||
echo "configure:4026: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -4045,7 +4058,7 @@ fi
|
||||
# Extract the first word of "xgettext", so it can be a program name with args.
|
||||
set dummy xgettext; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:4049: checking for $ac_word" >&5
|
||||
echo "configure:4062: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -4135,7 +4148,7 @@ fi
|
||||
LINGUAS=
|
||||
else
|
||||
echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
|
||||
echo "configure:4139: checking for catalogs to be installed" >&5
|
||||
echo "configure:4152: checking for catalogs to be installed" >&5
|
||||
NEW_LINGUAS=
|
||||
for lang in ${LINGUAS=$ALL_LINGUAS}; do
|
||||
case "$ALL_LINGUAS" in
|
||||
@ -4163,17 +4176,17 @@ echo "configure:4139: checking for catalogs to be installed" >&5
|
||||
if test "$CATOBJEXT" = ".cat"; then
|
||||
ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
|
||||
echo "configure:4167: checking for linux/version.h" >&5
|
||||
echo "configure:4180: checking for linux/version.h" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4172 "configure"
|
||||
#line 4185 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <linux/version.h>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:4177: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:4190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
@ -4238,7 +4251,7 @@ fi
|
||||
|
||||
|
||||
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
|
||||
echo "configure:4242: checking for executable suffix" >&5
|
||||
echo "configure:4255: checking for executable suffix" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -4248,7 +4261,7 @@ else
|
||||
rm -f conftest*
|
||||
echo 'int main () { return 0; }' > conftest.$ac_ext
|
||||
ac_cv_exeext=
|
||||
if { (eval echo configure:4252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
|
||||
if { (eval echo configure:4265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
|
||||
for file in conftest.*; do
|
||||
case $file in
|
||||
*.c | *.o | *.obj) ;;
|
||||
@ -4274,7 +4287,7 @@ do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
set dummy $ac_prog; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:4278: checking for $ac_word" >&5
|
||||
echo "configure:4291: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -4310,7 +4323,7 @@ do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
set dummy $ac_prog; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:4314: checking for $ac_word" >&5
|
||||
echo "configure:4327: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -4343,7 +4356,7 @@ test -n "$LEX" || LEX=""$missing_dir/missing flex""
|
||||
# Extract the first word of "flex", so it can be a program name with args.
|
||||
set dummy flex; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:4347: checking for $ac_word" >&5
|
||||
echo "configure:4360: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -4377,7 +4390,7 @@ then
|
||||
*) ac_lib=l ;;
|
||||
esac
|
||||
echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
|
||||
echo "configure:4381: checking for yywrap in -l$ac_lib" >&5
|
||||
echo "configure:4394: checking for yywrap in -l$ac_lib" >&5
|
||||
ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -4385,7 +4398,7 @@ else
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-l$ac_lib $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4389 "configure"
|
||||
#line 4402 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
@ -4396,7 +4409,7 @@ int main() {
|
||||
yywrap()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:4400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:4413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
@ -4419,7 +4432,7 @@ fi
|
||||
fi
|
||||
|
||||
echo $ac_n "checking lex output file root""... $ac_c" 1>&6
|
||||
echo "configure:4423: checking lex output file root" >&5
|
||||
echo "configure:4436: checking lex output file root" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -4440,7 +4453,7 @@ echo "$ac_t""$ac_cv_prog_lex_root" 1>&6
|
||||
LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
|
||||
|
||||
echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6
|
||||
echo "configure:4444: checking whether yytext is a pointer" >&5
|
||||
echo "configure:4457: checking whether yytext is a pointer" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -4452,14 +4465,14 @@ echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS $LEXLIB"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4456 "configure"
|
||||
#line 4469 "configure"
|
||||
#include "confdefs.h"
|
||||
`cat $LEX_OUTPUT_ROOT.c`
|
||||
int main() {
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:4463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:4476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
ac_cv_prog_lex_yytext_pointer=yes
|
||||
else
|
||||
@ -4482,7 +4495,7 @@ fi
|
||||
|
||||
|
||||
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
|
||||
echo "configure:4486: checking whether to enable maintainer-specific portions of Makefiles" >&5
|
||||
echo "configure:4499: checking whether to enable maintainer-specific portions of Makefiles" >&5
|
||||
# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
|
||||
if test "${enable_maintainer_mode+set}" = set; then
|
||||
enableval="$enable_maintainer_mode"
|
||||
@ -4516,17 +4529,17 @@ for ac_hdr in string.h strings.h stdlib.h unistd.h
|
||||
do
|
||||
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
|
||||
echo "configure:4520: checking for $ac_hdr" >&5
|
||||
echo "configure:4533: checking for $ac_hdr" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4525 "configure"
|
||||
#line 4538 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <$ac_hdr>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:4530: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:4543: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
@ -4555,12 +4568,12 @@ done
|
||||
for ac_func in sbrk
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:4559: checking for $ac_func" >&5
|
||||
echo "configure:4572: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4564 "configure"
|
||||
#line 4577 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
@ -4583,7 +4596,7 @@ $ac_func();
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:4587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:4600: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
@ -4612,12 +4625,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
|
||||
do
|
||||
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
|
||||
echo "configure:4616: checking for $ac_hdr that defines DIR" >&5
|
||||
echo "configure:4629: checking for $ac_hdr that defines DIR" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4621 "configure"
|
||||
#line 4634 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <sys/types.h>
|
||||
#include <$ac_hdr>
|
||||
@ -4625,7 +4638,7 @@ int main() {
|
||||
DIR *dirp = 0;
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:4629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:4642: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_header_dirent_$ac_safe=yes"
|
||||
else
|
||||
@ -4650,7 +4663,7 @@ done
|
||||
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
|
||||
if test $ac_header_dirent = dirent.h; then
|
||||
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
|
||||
echo "configure:4654: checking for opendir in -ldir" >&5
|
||||
echo "configure:4667: checking for opendir in -ldir" >&5
|
||||
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -4658,7 +4671,7 @@ else
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-ldir $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4662 "configure"
|
||||
#line 4675 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
@ -4669,7 +4682,7 @@ int main() {
|
||||
opendir()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:4673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:4686: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
@ -4691,7 +4704,7 @@ fi
|
||||
|
||||
else
|
||||
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
|
||||
echo "configure:4695: checking for opendir in -lx" >&5
|
||||
echo "configure:4708: checking for opendir in -lx" >&5
|
||||
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -4699,7 +4712,7 @@ else
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-lx $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4703 "configure"
|
||||
#line 4716 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
@ -4710,7 +4723,7 @@ int main() {
|
||||
opendir()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:4714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:4727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
@ -4743,12 +4756,12 @@ EOF
|
||||
esac
|
||||
|
||||
echo $ac_n "checking whether strstr must be declared""... $ac_c" 1>&6
|
||||
echo "configure:4747: checking whether strstr must be declared" >&5
|
||||
echo "configure:4760: checking whether strstr must be declared" >&5
|
||||
if eval "test \"`echo '$''{'bfd_cv_decl_needed_strstr'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4752 "configure"
|
||||
#line 4765 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#include <stdio.h>
|
||||
@ -4769,7 +4782,7 @@ int main() {
|
||||
char *(*pfn) = (char *(*)) strstr
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:4773: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:4786: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
bfd_cv_decl_needed_strstr=no
|
||||
else
|
||||
@ -4790,12 +4803,12 @@ EOF
|
||||
fi
|
||||
|
||||
echo $ac_n "checking whether free must be declared""... $ac_c" 1>&6
|
||||
echo "configure:4794: checking whether free must be declared" >&5
|
||||
echo "configure:4807: checking whether free must be declared" >&5
|
||||
if eval "test \"`echo '$''{'bfd_cv_decl_needed_free'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4799 "configure"
|
||||
#line 4812 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#include <stdio.h>
|
||||
@ -4816,7 +4829,7 @@ int main() {
|
||||
char *(*pfn) = (char *(*)) free
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:4820: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:4833: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
bfd_cv_decl_needed_free=no
|
||||
else
|
||||
@ -4837,12 +4850,12 @@ EOF
|
||||
fi
|
||||
|
||||
echo $ac_n "checking whether sbrk must be declared""... $ac_c" 1>&6
|
||||
echo "configure:4841: checking whether sbrk must be declared" >&5
|
||||
echo "configure:4854: checking whether sbrk must be declared" >&5
|
||||
if eval "test \"`echo '$''{'bfd_cv_decl_needed_sbrk'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4846 "configure"
|
||||
#line 4859 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#include <stdio.h>
|
||||
@ -4863,7 +4876,7 @@ int main() {
|
||||
char *(*pfn) = (char *(*)) sbrk
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:4867: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:4880: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
bfd_cv_decl_needed_sbrk=no
|
||||
else
|
||||
@ -4884,12 +4897,12 @@ EOF
|
||||
fi
|
||||
|
||||
echo $ac_n "checking whether getenv must be declared""... $ac_c" 1>&6
|
||||
echo "configure:4888: checking whether getenv must be declared" >&5
|
||||
echo "configure:4901: checking whether getenv must be declared" >&5
|
||||
if eval "test \"`echo '$''{'bfd_cv_decl_needed_getenv'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4893 "configure"
|
||||
#line 4906 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#include <stdio.h>
|
||||
@ -4910,7 +4923,7 @@ int main() {
|
||||
char *(*pfn) = (char *(*)) getenv
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:4914: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:4927: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
bfd_cv_decl_needed_getenv=no
|
||||
else
|
||||
@ -4931,12 +4944,12 @@ EOF
|
||||
fi
|
||||
|
||||
echo $ac_n "checking whether environ must be declared""... $ac_c" 1>&6
|
||||
echo "configure:4935: checking whether environ must be declared" >&5
|
||||
echo "configure:4948: checking whether environ must be declared" >&5
|
||||
if eval "test \"`echo '$''{'bfd_cv_decl_needed_environ'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4940 "configure"
|
||||
#line 4953 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#include <stdio.h>
|
||||
@ -4957,7 +4970,7 @@ int main() {
|
||||
char *(*pfn) = (char *(*)) environ
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:4961: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:4974: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
bfd_cv_decl_needed_environ=no
|
||||
else
|
||||
@ -4985,19 +4998,19 @@ fi
|
||||
# constants, while still supporting pre-ANSI compilers which do not
|
||||
# support string concatenation.
|
||||
echo $ac_n "checking whether ANSI C string concatenation works""... $ac_c" 1>&6
|
||||
echo "configure:4989: checking whether ANSI C string concatenation works" >&5
|
||||
echo "configure:5002: checking whether ANSI C string concatenation works" >&5
|
||||
if eval "test \"`echo '$''{'ld_cv_string_concatenation'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4994 "configure"
|
||||
#line 5007 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
char *a = "a" "a";
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:5001: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:5014: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
ld_cv_string_concatenation=yes
|
||||
else
|
||||
|
@ -368,6 +368,8 @@ z8k-*-coff) targ_emul=z8002; targ_extra_emuls=z8001 ;;
|
||||
ns32k-pc532-mach* | ns32k-pc532-ux*) targ_emul=pc532macha ;;
|
||||
ns32k-pc532-netbsd* | ns32k-pc532-lites*) targ_emul=ns32knbsd ;;
|
||||
openrisc-*-*) targ_emul=elf32openrisc ;;
|
||||
or32-*-coff) targ_emul=or32 ;;
|
||||
or32-*-elf) targ_emul=or32elf ;;
|
||||
pdp11-*-*) targ_emul=pdp11 ;;
|
||||
pjl*-*-*) targ_emul=pjlelf ; targ_extra_emuls="elf_i386" ;;
|
||||
pj*-*-*) targ_emul=pjelf ;;
|
||||
|
6
ld/emulparams/or32.sh
Normal file
6
ld/emulparams/or32.sh
Normal file
@ -0,0 +1,6 @@
|
||||
SCRIPT_NAME=or32
|
||||
OUTPUT_FORMAT="coff-or32-big"
|
||||
# OUTPUT_FORMAT="elf32-or32"
|
||||
TEXT_START_ADDR=0x1000000
|
||||
TARGET_PAGE_SIZE=0x1000000
|
||||
ARCH=or32
|
6
ld/emulparams/or32elf.sh
Normal file
6
ld/emulparams/or32elf.sh
Normal file
@ -0,0 +1,6 @@
|
||||
SCRIPT_NAME=elf
|
||||
OUTPUT_FORMAT="elf32-or32"
|
||||
TEXT_START_ADDR=0x1000000
|
||||
TARGET_PAGE_SIZE=0x1000000
|
||||
MAXPAGESIZE=0x1000
|
||||
ARCH=or32
|
121
ld/po/ld.pot
121
ld/po/ld.pot
@ -6,7 +6,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2002-01-17 13:58+0000\n"
|
||||
"POT-Creation-Date: 2002-01-31 17:09+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -272,7 +272,7 @@ msgid "Errors encountered processing file %s for interworking"
|
||||
msgstr ""
|
||||
|
||||
#: emultempl/pe.em:1297 ldlang.c:2050 ldlang.c:4441 ldlang.c:4474
|
||||
#: ldmain.c:1067
|
||||
#: ldmain.c:1069
|
||||
msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
|
||||
msgstr ""
|
||||
|
||||
@ -311,11 +311,11 @@ msgstr ""
|
||||
msgid "%B%F: could not read symbols; %E\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldcref.c:469 ldmain.c:1133 ldmain.c:1137
|
||||
#: ldcref.c:469 ldmain.c:1135 ldmain.c:1139
|
||||
msgid "%B%F: could not read symbols: %E\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldcref.c:537 ldcref.c:544 ldmain.c:1183 ldmain.c:1190
|
||||
#: ldcref.c:537 ldcref.c:544 ldmain.c:1185 ldmain.c:1192
|
||||
msgid "%B%F: could not read relocs: %E\n"
|
||||
msgstr ""
|
||||
|
||||
@ -755,222 +755,225 @@ msgstr ""
|
||||
msgid "%P%F: -f may not be used without -shared\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:334
|
||||
#, c-format
|
||||
msgid "using %s linker script:\n"
|
||||
#: ldmain.c:335
|
||||
msgid "using external linker script:"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:369
|
||||
#: ldmain.c:337
|
||||
msgid "using internal linker script:"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:371
|
||||
msgid "%P%F: no input files\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:374
|
||||
#: ldmain.c:376
|
||||
msgid "%P: mode %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:391
|
||||
#: ldmain.c:393
|
||||
msgid "%P%F: cannot open map file %s: %E\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:438
|
||||
#: ldmain.c:440
|
||||
msgid "%P: link errors found, deleting executable `%s'\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:449
|
||||
#: ldmain.c:451
|
||||
msgid "%F%B: final close failed: %E\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:473
|
||||
#: ldmain.c:475
|
||||
msgid "%X%P: unable to open for source of copy `%s'\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:475
|
||||
#: ldmain.c:477
|
||||
msgid "%X%P: unable to open for destination of copy `%s'\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:481
|
||||
#: ldmain.c:483
|
||||
msgid "%P: Error writing file `%s'\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:487 pe-dll.c:1442
|
||||
#: ldmain.c:489 pe-dll.c:1442
|
||||
#, c-format
|
||||
msgid "%P: Error closing file `%s'\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:504
|
||||
#: ldmain.c:506
|
||||
#, c-format
|
||||
msgid "%s: total time in link: %ld.%06ld\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:507
|
||||
#: ldmain.c:509
|
||||
#, c-format
|
||||
msgid "%s: data size %ld\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:548
|
||||
#: ldmain.c:550
|
||||
msgid "%P%F: missing argument to -m\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:676 ldmain.c:697 ldmain.c:728
|
||||
#: ldmain.c:678 ldmain.c:699 ldmain.c:730
|
||||
msgid "%P%F: bfd_hash_table_init failed: %E\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:681 ldmain.c:700
|
||||
#: ldmain.c:683 ldmain.c:702
|
||||
msgid "%P%F: bfd_hash_lookup failed: %E\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:715
|
||||
#: ldmain.c:717
|
||||
msgid "%X%P: error: duplicate retain-symbols-file\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:759
|
||||
#: ldmain.c:761
|
||||
msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:764
|
||||
#: ldmain.c:766
|
||||
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:840
|
||||
#: ldmain.c:842
|
||||
msgid ""
|
||||
"Archive member included because of file (symbol)\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:911
|
||||
#: ldmain.c:913
|
||||
msgid "%X%C: multiple definition of `%T'\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:914
|
||||
#: ldmain.c:916
|
||||
msgid "%D: first defined here\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:918
|
||||
#: ldmain.c:920
|
||||
msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:949
|
||||
#: ldmain.c:951
|
||||
msgid "%B: warning: definition of `%T' overriding common\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:952
|
||||
#: ldmain.c:954
|
||||
msgid "%B: warning: common is here\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:959
|
||||
#: ldmain.c:961
|
||||
msgid "%B: warning: common of `%T' overridden by definition\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:962
|
||||
#: ldmain.c:964
|
||||
msgid "%B: warning: defined here\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:969
|
||||
#: ldmain.c:971
|
||||
msgid "%B: warning: common of `%T' overridden by larger common\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:972
|
||||
#: ldmain.c:974
|
||||
msgid "%B: warning: larger common is here\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:976
|
||||
#: ldmain.c:978
|
||||
msgid "%B: warning: common of `%T' overriding smaller common\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:979
|
||||
#: ldmain.c:981
|
||||
msgid "%B: warning: smaller common is here\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:983
|
||||
#: ldmain.c:985
|
||||
msgid "%B: warning: multiple common of `%T'\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:985
|
||||
#: ldmain.c:987
|
||||
msgid "%B: warning: previous common is here\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:1006 ldmain.c:1045
|
||||
#: ldmain.c:1008 ldmain.c:1047
|
||||
msgid "%P: warning: global constructor %s used\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:1055
|
||||
#: ldmain.c:1057
|
||||
msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:1239
|
||||
#: ldmain.c:1241
|
||||
msgid "%F%P: bfd_hash_table_init failed: %E\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:1246
|
||||
#: ldmain.c:1248
|
||||
msgid "%F%P: bfd_hash_lookup failed: %E\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:1266
|
||||
#: ldmain.c:1268
|
||||
msgid "%C: undefined reference to `%T'\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:1272
|
||||
#: ldmain.c:1274
|
||||
msgid "%D: more undefined references to `%T' follow\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:1279
|
||||
#: ldmain.c:1281
|
||||
msgid "%B: undefined reference to `%T'\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:1285
|
||||
#: ldmain.c:1287
|
||||
msgid "%B: more undefined references to `%T' follow\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:1305 ldmain.c:1326 ldmain.c:1345
|
||||
#: ldmain.c:1307 ldmain.c:1328 ldmain.c:1347
|
||||
msgid "%P%X: generated"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:1308
|
||||
#: ldmain.c:1310
|
||||
msgid " relocation truncated to fit: %s %T"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:1329
|
||||
#: ldmain.c:1331
|
||||
#, c-format
|
||||
msgid "dangerous relocation: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmain.c:1348
|
||||
#: ldmain.c:1350
|
||||
msgid " reloc refers to symbol `%T' which is not being output\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmisc.c:176
|
||||
#: ldmisc.c:179
|
||||
msgid "no symbol"
|
||||
msgstr ""
|
||||
|
||||
#: ldmisc.c:240
|
||||
#: ldmisc.c:243
|
||||
#, c-format
|
||||
msgid "built in linker script:%u"
|
||||
msgstr ""
|
||||
|
||||
#: ldmisc.c:290 ldmisc.c:294
|
||||
#: ldmisc.c:293 ldmisc.c:297
|
||||
msgid "%B%F: could not read symbols\n"
|
||||
msgstr ""
|
||||
|
||||
#. We use abfd->filename in this initial line,
|
||||
#. in case filename is a .h file or something
|
||||
#. similarly unhelpful.
|
||||
#: ldmisc.c:330
|
||||
#: ldmisc.c:333
|
||||
msgid "%B: In function `%T':\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmisc.c:439
|
||||
#: ldmisc.c:442
|
||||
msgid "%F%P: internal error %s %d\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmisc.c:489
|
||||
#: ldmisc.c:492
|
||||
msgid "%P: internal error: aborting at %s line %d in %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmisc.c:492
|
||||
#: ldmisc.c:495
|
||||
msgid "%P: internal error: aborting at %s line %d\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldmisc.c:494
|
||||
#: ldmisc.c:497
|
||||
msgid "%P%F: please report this bug\n"
|
||||
msgstr ""
|
||||
|
||||
@ -981,7 +984,7 @@ msgid "GNU ld version %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldver.c:42
|
||||
msgid "Copyright 2001 Free Software Foundation, Inc.\n"
|
||||
msgid "Copyright 2002 Free Software Foundation, Inc.\n"
|
||||
msgstr ""
|
||||
|
||||
#: ldver.c:43
|
||||
|
37
ld/scripttempl/or32.sc
Normal file
37
ld/scripttempl/or32.sc
Normal file
@ -0,0 +1,37 @@
|
||||
cat <<EOF
|
||||
OUTPUT_FORMAT("${OUTPUT_FORMAT}")
|
||||
${LIB_SEARCH_DIRS}
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.text : {
|
||||
*(.text)
|
||||
${RELOCATING+ __etext = .};
|
||||
${CONSTRUCTING+ __CTOR_LIST__ = .;}
|
||||
${CONSTRUCTING+ LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)}
|
||||
${CONSTRUCTING+ *(.ctors)}
|
||||
${CONSTRUCTING+ LONG(0)}
|
||||
${CONSTRUCTING+ __CTOR_END__ = .;}
|
||||
${CONSTRUCTING+ __DTOR_LIST__ = .;}
|
||||
${CONSTRUCTING+ LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)}
|
||||
${CONSTRUCTING+ *(.dtors)}
|
||||
${CONSTRUCTING+ LONG(0)}
|
||||
${CONSTRUCTING+ __DTOR_END__ = .;}
|
||||
*(.lit)
|
||||
*(.shdata)
|
||||
}
|
||||
.shbss SIZEOF(.text) + ADDR(.text) : {
|
||||
*(.shbss)
|
||||
}
|
||||
.data : {
|
||||
*(.data)
|
||||
${RELOCATING+ __edata = .};
|
||||
}
|
||||
.bss SIZEOF(.data) + ADDR(.data) :
|
||||
{
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
${RELOCATING+ __end = ALIGN(0x8)};
|
||||
}
|
||||
}
|
||||
EOF
|
@ -1,3 +1,15 @@
|
||||
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
* or32-dis.c: New file.
|
||||
* or32-opc.c: New file.
|
||||
* configure.in: Add support for or32.
|
||||
* configure: Regenerate.
|
||||
* Makefile.am: Add support for or32.
|
||||
* Makefile.in: Regenerate.
|
||||
* disassemble.c: Add support for or32.
|
||||
* po/POTFILES.in: Regenerate.
|
||||
* po/opcodes.pot: Regenerate.
|
||||
|
||||
2002-01-27 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* configure: Regenerated.
|
||||
|
@ -106,6 +106,8 @@ CFILES = \
|
||||
openrisc-dis.c \
|
||||
openrisc-ibld.c \
|
||||
openrisc-opc.c \
|
||||
or32-dis.c \
|
||||
or32-opc.c \
|
||||
pdp11-dis.c \
|
||||
pdp11-opc.c \
|
||||
pj-dis.c \
|
||||
@ -195,6 +197,8 @@ ALL_MACHINES = \
|
||||
openrisc-dis.lo \
|
||||
openrisc-ibld.lo \
|
||||
openrisc-opc.lo \
|
||||
or32-dis.lo \
|
||||
or32-opc.lo \
|
||||
pdp11-dis.lo \
|
||||
pdp11-opc.lo \
|
||||
pj-dis.lo \
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -217,6 +217,8 @@ CFILES = \
|
||||
openrisc-dis.c \
|
||||
openrisc-ibld.c \
|
||||
openrisc-opc.c \
|
||||
or32-dis.c \
|
||||
or32-opc.c \
|
||||
pdp11-dis.c \
|
||||
pdp11-opc.c \
|
||||
pj-dis.c \
|
||||
@ -307,6 +309,8 @@ ALL_MACHINES = \
|
||||
openrisc-dis.lo \
|
||||
openrisc-ibld.lo \
|
||||
openrisc-opc.lo \
|
||||
or32-dis.lo \
|
||||
or32-opc.lo \
|
||||
pdp11-dis.lo \
|
||||
pdp11-opc.lo \
|
||||
pj-dis.lo \
|
||||
@ -407,7 +411,7 @@ acinclude.m4 aclocal.m4 config.in configure configure.in
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = tar
|
||||
TAR = gtar
|
||||
GZIP_ENV = --best
|
||||
SOURCES = libopcodes.a.c $(libopcodes_la_SOURCES)
|
||||
OBJECTS = libopcodes.a.$(OBJEXT) $(libopcodes_la_OBJECTS)
|
||||
@ -572,7 +576,7 @@ maintainer-clean-recursive:
|
||||
dot_seen=no; \
|
||||
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
rev="$$subdir $$rev"; \
|
||||
test "$$subdir" = "." && dot_seen=yes; \
|
||||
test "$$subdir" != "." || dot_seen=yes; \
|
||||
done; \
|
||||
test "$$dot_seen" = "no" && rev=". $$rev"; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
|
116
opcodes/configure
vendored
116
opcodes/configure
vendored
@ -3240,7 +3240,7 @@ EOF
|
||||
|
||||
fi
|
||||
|
||||
for ac_hdr in unistd.h
|
||||
for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h
|
||||
do
|
||||
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
|
||||
@ -3372,11 +3372,24 @@ else
|
||||
#include <fcntl.h>
|
||||
#include <sys/mman.h>
|
||||
|
||||
#if HAVE_SYS_TYPES_H
|
||||
# include <sys/types.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_STDLIB_H
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_SYS_STAT_H
|
||||
# include <sys/stat.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
/* This mess was copied from the GNU getpagesize.h. */
|
||||
#ifndef HAVE_GETPAGESIZE
|
||||
# ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
# endif
|
||||
|
||||
/* Assume that all systems that can run configure have sys/param.h. */
|
||||
# ifndef HAVE_SYS_PARAM_H
|
||||
@ -3484,7 +3497,7 @@ main()
|
||||
}
|
||||
|
||||
EOF
|
||||
if { (eval echo configure:3488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:3501: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
ac_cv_func_mmap_fixed_mapped=yes
|
||||
else
|
||||
@ -3512,17 +3525,17 @@ unistd.h values.h sys/param.h
|
||||
do
|
||||
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
|
||||
echo "configure:3516: checking for $ac_hdr" >&5
|
||||
echo "configure:3529: checking for $ac_hdr" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3521 "configure"
|
||||
#line 3534 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <$ac_hdr>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:3526: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:3539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
@ -3552,12 +3565,12 @@ done
|
||||
__argz_count __argz_stringify __argz_next
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:3556: checking for $ac_func" >&5
|
||||
echo "configure:3569: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3561 "configure"
|
||||
#line 3574 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
@ -3580,7 +3593,7 @@ $ac_func();
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:3584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:3597: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
@ -3609,12 +3622,12 @@ done
|
||||
for ac_func in stpcpy
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:3613: checking for $ac_func" >&5
|
||||
echo "configure:3626: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3618 "configure"
|
||||
#line 3631 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
@ -3637,7 +3650,7 @@ $ac_func();
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:3641: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:3654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
@ -3671,19 +3684,19 @@ EOF
|
||||
|
||||
if test $ac_cv_header_locale_h = yes; then
|
||||
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
|
||||
echo "configure:3675: checking for LC_MESSAGES" >&5
|
||||
echo "configure:3688: checking for LC_MESSAGES" >&5
|
||||
if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3680 "configure"
|
||||
#line 3693 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <locale.h>
|
||||
int main() {
|
||||
return LC_MESSAGES
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:3687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:3700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
am_cv_val_LC_MESSAGES=yes
|
||||
else
|
||||
@ -3704,7 +3717,7 @@ EOF
|
||||
fi
|
||||
fi
|
||||
echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
|
||||
echo "configure:3708: checking whether NLS is requested" >&5
|
||||
echo "configure:3721: checking whether NLS is requested" >&5
|
||||
# Check whether --enable-nls or --disable-nls was given.
|
||||
if test "${enable_nls+set}" = set; then
|
||||
enableval="$enable_nls"
|
||||
@ -3724,7 +3737,7 @@ fi
|
||||
EOF
|
||||
|
||||
echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
|
||||
echo "configure:3728: checking whether included gettext is requested" >&5
|
||||
echo "configure:3741: checking whether included gettext is requested" >&5
|
||||
# Check whether --with-included-gettext or --without-included-gettext was given.
|
||||
if test "${with_included_gettext+set}" = set; then
|
||||
withval="$with_included_gettext"
|
||||
@ -3743,17 +3756,17 @@ fi
|
||||
|
||||
ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
|
||||
echo "configure:3747: checking for libintl.h" >&5
|
||||
echo "configure:3760: checking for libintl.h" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3752 "configure"
|
||||
#line 3765 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <libintl.h>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:3757: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:3770: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
@ -3770,19 +3783,19 @@ fi
|
||||
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
|
||||
echo "$ac_t""yes" 1>&6
|
||||
echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
|
||||
echo "configure:3774: checking for gettext in libc" >&5
|
||||
echo "configure:3787: checking for gettext in libc" >&5
|
||||
if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3779 "configure"
|
||||
#line 3792 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <libintl.h>
|
||||
int main() {
|
||||
return (int) gettext ("")
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:3786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:3799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
gt_cv_func_gettext_libc=yes
|
||||
else
|
||||
@ -3798,7 +3811,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
|
||||
|
||||
if test "$gt_cv_func_gettext_libc" != "yes"; then
|
||||
echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
|
||||
echo "configure:3802: checking for bindtextdomain in -lintl" >&5
|
||||
echo "configure:3815: checking for bindtextdomain in -lintl" >&5
|
||||
ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -3806,7 +3819,7 @@ else
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-lintl $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3810 "configure"
|
||||
#line 3823 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
@ -3817,7 +3830,7 @@ int main() {
|
||||
bindtextdomain()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:3821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:3834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
@ -3833,19 +3846,19 @@ fi
|
||||
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
|
||||
echo "$ac_t""yes" 1>&6
|
||||
echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
|
||||
echo "configure:3837: checking for gettext in libintl" >&5
|
||||
echo "configure:3850: checking for gettext in libintl" >&5
|
||||
if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3842 "configure"
|
||||
#line 3855 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
return (int) gettext ("")
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:3849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:3862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
gt_cv_func_gettext_libintl=yes
|
||||
else
|
||||
@ -3873,7 +3886,7 @@ EOF
|
||||
# Extract the first word of "msgfmt", so it can be a program name with args.
|
||||
set dummy msgfmt; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:3877: checking for $ac_word" >&5
|
||||
echo "configure:3890: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -3907,12 +3920,12 @@ fi
|
||||
for ac_func in dcgettext
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:3911: checking for $ac_func" >&5
|
||||
echo "configure:3924: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 3916 "configure"
|
||||
#line 3929 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
@ -3935,7 +3948,7 @@ $ac_func();
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:3939: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:3952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
@ -3962,7 +3975,7 @@ done
|
||||
# Extract the first word of "gmsgfmt", so it can be a program name with args.
|
||||
set dummy gmsgfmt; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:3966: checking for $ac_word" >&5
|
||||
echo "configure:3979: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -3998,7 +4011,7 @@ fi
|
||||
# Extract the first word of "xgettext", so it can be a program name with args.
|
||||
set dummy xgettext; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:4002: checking for $ac_word" >&5
|
||||
echo "configure:4015: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -4030,7 +4043,7 @@ else
|
||||
fi
|
||||
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4034 "configure"
|
||||
#line 4047 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
@ -4038,7 +4051,7 @@ extern int _nl_msg_cat_cntr;
|
||||
return _nl_msg_cat_cntr
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:4042: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:4055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
CATOBJEXT=.gmo
|
||||
DATADIRNAME=share
|
||||
@ -4070,7 +4083,7 @@ fi
|
||||
# Extract the first word of "msgfmt", so it can be a program name with args.
|
||||
set dummy msgfmt; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:4074: checking for $ac_word" >&5
|
||||
echo "configure:4087: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -4104,7 +4117,7 @@ fi
|
||||
# Extract the first word of "gmsgfmt", so it can be a program name with args.
|
||||
set dummy gmsgfmt; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:4108: checking for $ac_word" >&5
|
||||
echo "configure:4121: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -4140,7 +4153,7 @@ fi
|
||||
# Extract the first word of "xgettext", so it can be a program name with args.
|
||||
set dummy xgettext; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:4144: checking for $ac_word" >&5
|
||||
echo "configure:4157: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -4230,7 +4243,7 @@ fi
|
||||
LINGUAS=
|
||||
else
|
||||
echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
|
||||
echo "configure:4234: checking for catalogs to be installed" >&5
|
||||
echo "configure:4247: checking for catalogs to be installed" >&5
|
||||
NEW_LINGUAS=
|
||||
for lang in ${LINGUAS=$ALL_LINGUAS}; do
|
||||
case "$ALL_LINGUAS" in
|
||||
@ -4258,17 +4271,17 @@ echo "configure:4234: checking for catalogs to be installed" >&5
|
||||
if test "$CATOBJEXT" = ".cat"; then
|
||||
ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
|
||||
echo "configure:4262: checking for linux/version.h" >&5
|
||||
echo "configure:4275: checking for linux/version.h" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4267 "configure"
|
||||
#line 4280 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <linux/version.h>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:4272: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:4285: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
@ -4346,7 +4359,7 @@ if test "x$cross_compiling" = "xno"; then
|
||||
EXEEXT_FOR_BUILD='$(EXEEXT)'
|
||||
else
|
||||
echo $ac_n "checking for build system executable suffix""... $ac_c" 1>&6
|
||||
echo "configure:4350: checking for build system executable suffix" >&5
|
||||
echo "configure:4363: checking for build system executable suffix" >&5
|
||||
if eval "test \"`echo '$''{'bfd_cv_build_exeext'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -4383,7 +4396,7 @@ fi
|
||||
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
|
||||
# ./install, which can be erroneously created by make from ./install.sh.
|
||||
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
|
||||
echo "configure:4387: checking for a BSD compatible install" >&5
|
||||
echo "configure:4400: checking for a BSD compatible install" >&5
|
||||
if test -z "$INSTALL"; then
|
||||
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -4440,17 +4453,17 @@ for ac_hdr in string.h strings.h stdlib.h
|
||||
do
|
||||
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
|
||||
echo "configure:4444: checking for $ac_hdr" >&5
|
||||
echo "configure:4457: checking for $ac_hdr" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 4449 "configure"
|
||||
#line 4462 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <$ac_hdr>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:4454: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:4467: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
@ -4597,6 +4610,7 @@ if test x${all_targets} = xfalse ; then
|
||||
bfd_mn10300_arch) ta="$ta m10300-dis.lo m10300-opc.lo" ;;
|
||||
bfd_ns32k_arch) ta="$ta ns32k-dis.lo" ;;
|
||||
bfd_openrisc_arch) ta="$ta openrisc-asm.lo openrisc-desc.lo openrisc-dis.lo openrisc-ibld.lo openrisc-opc.lo" using_cgen=yes ;;
|
||||
bfd_or32_arch) ta="$ta or32-dis.lo or32-opc.lo" using_cgen=yes ;;
|
||||
bfd_pdp11_arch) ta="$ta pdp11-dis.lo pdp11-opc.lo" ;;
|
||||
bfd_pj_arch) ta="$ta pj-dis.lo pj-opc.lo" ;;
|
||||
bfd_powerpc_arch) ta="$ta ppc-dis.lo ppc-opc.lo" ;;
|
||||
|
@ -199,6 +199,7 @@ if test x${all_targets} = xfalse ; then
|
||||
bfd_mn10300_arch) ta="$ta m10300-dis.lo m10300-opc.lo" ;;
|
||||
bfd_ns32k_arch) ta="$ta ns32k-dis.lo" ;;
|
||||
bfd_openrisc_arch) ta="$ta openrisc-asm.lo openrisc-desc.lo openrisc-dis.lo openrisc-ibld.lo openrisc-opc.lo" using_cgen=yes ;;
|
||||
bfd_or32_arch) ta="$ta or32-dis.lo or32-opc.lo" using_cgen=yes ;;
|
||||
bfd_pdp11_arch) ta="$ta pdp11-dis.lo pdp11-opc.lo" ;;
|
||||
bfd_pj_arch) ta="$ta pj-dis.lo pj-opc.lo" ;;
|
||||
bfd_powerpc_arch) ta="$ta ppc-dis.lo ppc-opc.lo" ;;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Select disassembly routine for specified architecture.
|
||||
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
||||
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@ -49,6 +49,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#define ARCH_mn10300
|
||||
#define ARCH_ns32k
|
||||
#define ARCH_openrisc
|
||||
#define ARCH_or32
|
||||
#define ARCH_pdp11
|
||||
#define ARCH_pj
|
||||
#define ARCH_powerpc
|
||||
@ -235,6 +236,14 @@ disassembler (abfd)
|
||||
disassemble = print_insn_openrisc;
|
||||
break;
|
||||
#endif
|
||||
#ifdef ARCH_or32
|
||||
case bfd_arch_or32:
|
||||
if (bfd_big_endian (abfd))
|
||||
disassemble = print_insn_big_or32;
|
||||
else
|
||||
disassemble = print_insn_little_or32;
|
||||
break;
|
||||
#endif
|
||||
#ifdef ARCH_pdp11
|
||||
case bfd_arch_pdp11:
|
||||
disassemble = print_insn_pdp11;
|
||||
|
345
opcodes/or32-dis.c
Normal file
345
opcodes/or32-dis.c
Normal file
@ -0,0 +1,345 @@
|
||||
/* Instruction printing code for the OpenRISC 1000
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
Contributed by Damjan Lampret <lampret@opencores.org>.
|
||||
Modified from a29k port.
|
||||
|
||||
This file is part of 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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define DEBUG 0
|
||||
|
||||
#include "dis-asm.h"
|
||||
#include "opcode/or32.h"
|
||||
#include "safe-ctype.h"
|
||||
#include <string.h>
|
||||
|
||||
#define EXTEND29(x) ((x) & 0x10000000 ? ((x) | 0xf0000000) : ((x)))
|
||||
|
||||
static void find_bytes_big PARAMS ((unsigned char *, unsigned long *));
|
||||
static void find_bytes_little PARAMS ((unsigned char *, unsigned long *));
|
||||
static unsigned long or32_extract PARAMS ((char, char *, unsigned long));
|
||||
static int or32_opcode_match PARAMS ((unsigned long, char *));
|
||||
static void or32_print_register PARAMS ((char, char *, unsigned long, struct disassemble_info *));
|
||||
static void or32_print_immediate PARAMS ((char, char *, unsigned long, struct disassemble_info *));
|
||||
static int print_insn PARAMS ((bfd_vma, struct disassemble_info *));
|
||||
|
||||
/* Now find the four bytes of INSN_CH and put them in *INSN. */
|
||||
|
||||
static void
|
||||
find_bytes_big (insn_ch, insn)
|
||||
unsigned char *insn_ch;
|
||||
unsigned long *insn;
|
||||
{
|
||||
*insn =
|
||||
((unsigned long) insn_ch[0] << 24) +
|
||||
((unsigned long) insn_ch[1] << 16) +
|
||||
((unsigned long) insn_ch[2] << 8) +
|
||||
((unsigned long) insn_ch[3]);
|
||||
#if DEBUG
|
||||
printf ("find_bytes_big3: %x\n", *insn);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
find_bytes_little (insn_ch, insn)
|
||||
unsigned char *insn_ch;
|
||||
unsigned long *insn;
|
||||
{
|
||||
*insn =
|
||||
((unsigned long) insn_ch[3] << 24) +
|
||||
((unsigned long) insn_ch[2] << 16) +
|
||||
((unsigned long) insn_ch[1] << 8) +
|
||||
((unsigned long) insn_ch[0]);
|
||||
}
|
||||
|
||||
typedef void (*find_byte_func_type)
|
||||
PARAMS ((unsigned char *, unsigned long *));
|
||||
|
||||
static unsigned long
|
||||
or32_extract (param_ch, enc_initial, insn)
|
||||
char param_ch;
|
||||
char *enc_initial;
|
||||
unsigned long insn;
|
||||
{
|
||||
char *enc;
|
||||
unsigned long ret = 0;
|
||||
int opc_pos = 0;
|
||||
int param_pos = 0;
|
||||
|
||||
for (enc = enc_initial; *enc != '\0'; enc++)
|
||||
if (*enc == param_ch)
|
||||
if (enc - 2 >= enc_initial && (*(enc - 2) == '0') && (*(enc - 1) == 'x'))
|
||||
continue;
|
||||
else
|
||||
param_pos++;
|
||||
|
||||
#if DEBUG
|
||||
printf ("or32_extract: %c %x ", param_ch, param_pos);
|
||||
#endif
|
||||
opc_pos = 32;
|
||||
|
||||
for (enc = enc_initial; *enc != '\0'; )
|
||||
if ((*enc == '0') && (*(enc + 1) == 'x'))
|
||||
{
|
||||
opc_pos -= 4;
|
||||
|
||||
if ((param_ch == '0') || (param_ch == '1'))
|
||||
{
|
||||
unsigned long tmp = strtol (enc, NULL, 16);
|
||||
#if DEBUG
|
||||
printf (" enc=%s, tmp=%x ", enc, tmp);
|
||||
#endif
|
||||
if (param_ch == '0')
|
||||
tmp = 15 - tmp;
|
||||
ret |= tmp << opc_pos;
|
||||
}
|
||||
enc += 3;
|
||||
}
|
||||
else if ((*enc == '0') || (*enc == '1'))
|
||||
{
|
||||
opc_pos--;
|
||||
if (param_ch == *enc)
|
||||
ret |= 1 << opc_pos;
|
||||
enc++;
|
||||
}
|
||||
else if (*enc == param_ch)
|
||||
{
|
||||
opc_pos--;
|
||||
param_pos--;
|
||||
#if DEBUG
|
||||
printf ("\n ret=%x opc_pos=%x, param_pos=%x\n", ret, opc_pos, param_pos);
|
||||
#endif
|
||||
ret += ((insn >> opc_pos) & 0x1) << param_pos;
|
||||
|
||||
if (!param_pos
|
||||
&& letter_signed (param_ch)
|
||||
&& ret >> letter_range (param_ch) - 1)
|
||||
{
|
||||
#if DEBUG
|
||||
printf ("\n ret=%x opc_pos=%x, param_pos=%x\n",
|
||||
ret, opc_pos, param_pos);
|
||||
#endif
|
||||
ret |= 0xffffffff << letter_range(param_ch);
|
||||
#if DEBUG
|
||||
printf ("\n after conversion to signed: ret=%x\n", ret);
|
||||
#endif
|
||||
}
|
||||
enc++;
|
||||
}
|
||||
else if (ISALPHA (*enc))
|
||||
{
|
||||
opc_pos--;
|
||||
enc++;
|
||||
}
|
||||
else if (*enc == '-')
|
||||
{
|
||||
opc_pos--;
|
||||
enc++;
|
||||
}
|
||||
else
|
||||
enc++;
|
||||
|
||||
#if DEBUG
|
||||
printf ("ret=%x\n", ret);
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
or32_opcode_match (insn, encoding)
|
||||
unsigned long insn;
|
||||
char *encoding;
|
||||
{
|
||||
unsigned long ones, zeros;
|
||||
|
||||
#if DEBUG
|
||||
printf ("or32_opcode_match: %.8lx\n", insn);
|
||||
#endif
|
||||
ones = or32_extract ('1', encoding, insn);
|
||||
zeros = or32_extract ('0', encoding, insn);
|
||||
|
||||
#if DEBUG
|
||||
printf ("ones: %x \n", ones);
|
||||
printf ("zeros: %x \n", zeros);
|
||||
#endif
|
||||
if ((insn & ones) != ones)
|
||||
{
|
||||
#if DEBUG
|
||||
printf ("ret1\n");
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((~insn & zeros) != zeros)
|
||||
{
|
||||
#if DEBUG
|
||||
printf ("ret2\n");
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
printf ("ret3\n");
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Print register to INFO->STREAM. Used only by print_insn. */
|
||||
|
||||
static void
|
||||
or32_print_register (param_ch, encoding, insn, info)
|
||||
char param_ch;
|
||||
char *encoding;
|
||||
unsigned long insn;
|
||||
struct disassemble_info *info;
|
||||
{
|
||||
int regnum = or32_extract (param_ch, encoding, insn);
|
||||
|
||||
#if DEBUG
|
||||
printf ("or32_print_register: %c, %s, %x\n", param_ch, encoding, insn);
|
||||
#endif
|
||||
if (param_ch == 'A')
|
||||
(*info->fprintf_func) (info->stream, "r%d", regnum);
|
||||
else if (param_ch == 'B')
|
||||
(*info->fprintf_func) (info->stream, "r%d", regnum);
|
||||
else if (param_ch == 'D')
|
||||
(*info->fprintf_func) (info->stream, "r%d", regnum);
|
||||
else if (regnum < 16)
|
||||
(*info->fprintf_func) (info->stream, "r%d", regnum);
|
||||
else if (regnum < 32)
|
||||
(*info->fprintf_func) (info->stream, "r%d", regnum-16);
|
||||
else
|
||||
(*info->fprintf_func) (info->stream, "X%d", regnum);
|
||||
}
|
||||
|
||||
/* Print immediate to INFO->STREAM. Used only by print_insn. */
|
||||
|
||||
static void
|
||||
or32_print_immediate (param_ch, encoding, insn, info)
|
||||
char param_ch;
|
||||
char *encoding;
|
||||
unsigned long insn;
|
||||
struct disassemble_info *info;
|
||||
{
|
||||
int imm = or32_extract(param_ch, encoding, insn);
|
||||
|
||||
if (letter_signed(param_ch))
|
||||
(*info->fprintf_func) (info->stream, "0x%x", imm);
|
||||
/* (*info->fprintf_func) (info->stream, "%d", imm); */
|
||||
else
|
||||
(*info->fprintf_func) (info->stream, "0x%x", imm);
|
||||
}
|
||||
|
||||
/* Print one instruction from MEMADDR on INFO->STREAM.
|
||||
Return the size of the instruction (always 4 on or32). */
|
||||
|
||||
static int
|
||||
print_insn (memaddr, info)
|
||||
bfd_vma memaddr;
|
||||
struct disassemble_info *info;
|
||||
{
|
||||
/* The raw instruction. */
|
||||
unsigned char insn_ch[4];
|
||||
/* Address. Will be sign extened 27-bit. */
|
||||
int addr;
|
||||
/* The four bytes of the instruction. */
|
||||
unsigned long insn;
|
||||
find_byte_func_type find_byte_func = (find_byte_func_type)info->private_data;
|
||||
struct or32_opcode CONST * opcode;
|
||||
|
||||
{
|
||||
int status =
|
||||
(*info->read_memory_func) (memaddr, (bfd_byte *) &insn_ch[0], 4, info);
|
||||
|
||||
if (status != 0)
|
||||
{
|
||||
(*info->memory_error_func) (status, memaddr, info);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
(*find_byte_func) (&insn_ch[0], &insn);
|
||||
|
||||
for (opcode = &or32_opcodes[0];
|
||||
opcode < &or32_opcodes[or32_num_opcodes];
|
||||
++opcode)
|
||||
{
|
||||
if (or32_opcode_match (insn, opcode->encoding))
|
||||
{
|
||||
char *s;
|
||||
|
||||
(*info->fprintf_func) (info->stream, "%s ", opcode->name);
|
||||
|
||||
for (s = opcode->args; *s != '\0'; ++s)
|
||||
{
|
||||
switch (*s)
|
||||
{
|
||||
case '\0':
|
||||
return 4;
|
||||
|
||||
case 'r':
|
||||
or32_print_register (*++s, opcode->encoding, insn, info);
|
||||
break;
|
||||
|
||||
case 'X':
|
||||
addr = or32_extract ('X', opcode->encoding, insn) << 2;
|
||||
|
||||
/* Calulate the correct address. XXX is this really correct ?? */
|
||||
addr = memaddr + EXTEND29 (addr);
|
||||
|
||||
(*info->print_address_func)
|
||||
(addr, info);
|
||||
break;
|
||||
|
||||
default:
|
||||
if (strchr (opcode->encoding, *s))
|
||||
or32_print_immediate (*s, opcode->encoding, insn, info);
|
||||
else
|
||||
(*info->fprintf_func) (info->stream, "%c", *s);
|
||||
}
|
||||
}
|
||||
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
|
||||
/* This used to be %8x for binutils. */
|
||||
(*info->fprintf_func)
|
||||
(info->stream, ".word 0x%08x", insn);
|
||||
return 4;
|
||||
}
|
||||
|
||||
/* Disassemble a big-endian or32 instruction. */
|
||||
|
||||
int
|
||||
print_insn_big_or32 (memaddr, info)
|
||||
bfd_vma memaddr;
|
||||
struct disassemble_info *info;
|
||||
{
|
||||
info->private_data = (PTR) find_bytes_big;
|
||||
return print_insn (memaddr, info);
|
||||
}
|
||||
|
||||
/* Disassemble a little-endian or32 instruction. */
|
||||
|
||||
int
|
||||
print_insn_little_or32 (memaddr, info)
|
||||
bfd_vma memaddr;
|
||||
struct disassemble_info *info;
|
||||
{
|
||||
info->private_data = (PTR) find_bytes_little;
|
||||
return print_insn (memaddr, info);
|
||||
}
|
1049
opcodes/or32-opc.c
Normal file
1049
opcodes/or32-opc.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -78,6 +78,8 @@ openrisc-dis.c
|
||||
openrisc-ibld.c
|
||||
openrisc-opc.c
|
||||
openrisc-opc.h
|
||||
or32-dis.c
|
||||
or32-opc.c
|
||||
pdp11-dis.c
|
||||
pdp11-opc.c
|
||||
pj-dis.c
|
||||
|
@ -5,7 +5,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: opcodes 2.12-pre020121\n"
|
||||
"POT-Creation-Date: 2002-01-17 13:58+0000\n"
|
||||
"POT-Creation-Date: 2002-01-31 17:10+0000\n"
|
||||
"PO-Revision-Date: 2002-01-25 08:00-0500\n"
|
||||
"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
|
||||
"Language-Team: French <traduc@traduc.org>\n"
|
||||
@ -25,21 +25,21 @@ msgstr "saut indic
|
||||
msgid "Illegal limm reference in last instruction!\n"
|
||||
msgstr "Référence limite illégale dans la dernière instruction!\n"
|
||||
|
||||
#: arm-dis.c:509
|
||||
#: arm-dis.c:502
|
||||
msgid "<illegal precision>"
|
||||
msgstr "<précision illégale>"
|
||||
|
||||
#: arm-dis.c:1019
|
||||
#: arm-dis.c:1012
|
||||
#, c-format
|
||||
msgid "Unrecognised register name set: %s\n"
|
||||
msgstr "Nom de jeu de registres inconnu: %s\n"
|
||||
|
||||
#: arm-dis.c:1026
|
||||
#: arm-dis.c:1019
|
||||
#, c-format
|
||||
msgid "Unrecognised disassembler option: %s\n"
|
||||
msgstr "Option du désassembleur non reconnue: %s\n"
|
||||
|
||||
#: arm-dis.c:1198
|
||||
#: arm-dis.c:1191
|
||||
msgid ""
|
||||
"\n"
|
||||
"The following ARM specific disassembler options are supported for use with\n"
|
||||
@ -63,6 +63,7 @@ msgid "unknown constraint `%c'"
|
||||
msgstr "contrainte inconnue `%c'"
|
||||
|
||||
#: cgen-asm.c:346 fr30-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195
|
||||
#: xstormy16-ibld.c:195
|
||||
#, c-format
|
||||
msgid "operand out of range (%ld not between %ld and %ld)"
|
||||
msgstr "opérande hors gamme (%ld n'est pas entre %ld et %ld)"
|
||||
@ -88,96 +89,101 @@ msgstr "Erreur inconnue %d\n"
|
||||
msgid "Address 0x%x is out of bounds.\n"
|
||||
msgstr "Adresse 0x%x est hors gamme.\n"
|
||||
|
||||
#: fr30-asm.c:324 m32r-asm.c:326 openrisc-asm.c:245
|
||||
#: fr30-asm.c:323 m32r-asm.c:325 openrisc-asm.c:244 xstormy16-asm.c:231
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while parsing.\n"
|
||||
msgstr "Champ non reconnu %d lors de l'analyse.\n"
|
||||
|
||||
#: fr30-asm.c:374 m32r-asm.c:376 openrisc-asm.c:295
|
||||
#: fr30-asm.c:373 m32r-asm.c:375 openrisc-asm.c:294 xstormy16-asm.c:281
|
||||
msgid "missing mnemonic in syntax string"
|
||||
msgstr "mnémonique manquante dans la syntaxe de la chaîne"
|
||||
|
||||
#. We couldn't parse it.
|
||||
#: fr30-asm.c:510 fr30-asm.c:514 fr30-asm.c:601 fr30-asm.c:703 m32r-asm.c:512
|
||||
#: m32r-asm.c:516 m32r-asm.c:603 m32r-asm.c:705 openrisc-asm.c:431
|
||||
#: openrisc-asm.c:435 openrisc-asm.c:522 openrisc-asm.c:624
|
||||
#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 m32r-asm.c:511
|
||||
#: m32r-asm.c:515 m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430
|
||||
#: openrisc-asm.c:434 openrisc-asm.c:521 openrisc-asm.c:623
|
||||
#: xstormy16-asm.c:417 xstormy16-asm.c:421 xstormy16-asm.c:508
|
||||
#: xstormy16-asm.c:610
|
||||
msgid "unrecognized instruction"
|
||||
msgstr "instruction non reconnue"
|
||||
|
||||
#: fr30-asm.c:557 m32r-asm.c:559 openrisc-asm.c:478
|
||||
#: fr30-asm.c:556 m32r-asm.c:558 openrisc-asm.c:477 xstormy16-asm.c:464
|
||||
#, c-format
|
||||
msgid "syntax error (expected char `%c', found `%c')"
|
||||
msgstr "erreur de syntaxe (caractère `%c' attendu, `%c' obtenu)"
|
||||
|
||||
#: fr30-asm.c:567 m32r-asm.c:569 openrisc-asm.c:488
|
||||
#: fr30-asm.c:566 m32r-asm.c:568 openrisc-asm.c:487 xstormy16-asm.c:474
|
||||
#, c-format
|
||||
msgid "syntax error (expected char `%c', found end of instruction)"
|
||||
msgstr "erreur de syntaxe (caractère `%c' attendu, fin de l'instruction obtenue)"
|
||||
msgstr ""
|
||||
"erreur de syntaxe (caractère `%c' attendu, fin de l'instruction obtenue)"
|
||||
|
||||
#: fr30-asm.c:595 m32r-asm.c:597 openrisc-asm.c:516
|
||||
#: fr30-asm.c:594 m32r-asm.c:596 openrisc-asm.c:515 xstormy16-asm.c:502
|
||||
msgid "junk at end of line"
|
||||
msgstr "rebut à la fin de la ligne"
|
||||
|
||||
#: fr30-asm.c:702 m32r-asm.c:704 openrisc-asm.c:623
|
||||
#: fr30-asm.c:701 m32r-asm.c:703 openrisc-asm.c:622 xstormy16-asm.c:609
|
||||
msgid "unrecognized form of instruction"
|
||||
msgstr "forme d'instruction non reconnue"
|
||||
|
||||
#: fr30-asm.c:714 m32r-asm.c:716 openrisc-asm.c:635
|
||||
#: fr30-asm.c:713 m32r-asm.c:715 openrisc-asm.c:634 xstormy16-asm.c:621
|
||||
#, c-format
|
||||
msgid "bad instruction `%.50s...'"
|
||||
msgstr "instruction erronée `%.50s...'"
|
||||
|
||||
#: fr30-asm.c:717 m32r-asm.c:719 openrisc-asm.c:638
|
||||
#: fr30-asm.c:716 m32r-asm.c:718 openrisc-asm.c:637 xstormy16-asm.c:624
|
||||
#, c-format
|
||||
msgid "bad instruction `%.50s'"
|
||||
msgstr "instruction erronée `%.50s'"
|
||||
|
||||
#. Default text to print if an instruction isn't recognized.
|
||||
#: fr30-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39
|
||||
#: xstormy16-dis.c:39
|
||||
msgid "*unknown*"
|
||||
msgstr "*inconnu*"
|
||||
|
||||
#: fr30-dis.c:319 m32r-dis.c:250 openrisc-dis.c:137
|
||||
#: fr30-dis.c:318 m32r-dis.c:249 openrisc-dis.c:136 xstormy16-dis.c:169
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while printing insn.\n"
|
||||
msgstr "Champ non reconnu %d lors de l'impression insn.\n"
|
||||
|
||||
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166
|
||||
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166 xstormy16-ibld.c:166
|
||||
#, c-format
|
||||
msgid "operand out of range (%ld not between %ld and %lu)"
|
||||
msgstr "opérande hors gamme (%ld n'est pas entre %ld et %lu)"
|
||||
|
||||
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179
|
||||
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179 xstormy16-ibld.c:179
|
||||
#, c-format
|
||||
msgid "operand out of range (%lu not between 0 and %lu)"
|
||||
msgstr "opérande hors gamme (%lu n'est pas entre 0 et %lu)"
|
||||
|
||||
#: fr30-ibld.c:731 m32r-ibld.c:660 openrisc-ibld.c:634
|
||||
#: fr30-ibld.c:730 m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while building insn.\n"
|
||||
msgstr "Champ non reconnu %d lors de la construction de insn.\n"
|
||||
|
||||
#: fr30-ibld.c:939 m32r-ibld.c:794 openrisc-ibld.c:737
|
||||
#: fr30-ibld.c:937 m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while decoding insn.\n"
|
||||
msgstr "Champ non reconnu %d lors du décodage de insn.\n"
|
||||
|
||||
#: fr30-ibld.c:1088 m32r-ibld.c:904 openrisc-ibld.c:817
|
||||
#: fr30-ibld.c:1086 m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while getting int operand.\n"
|
||||
msgstr "Champ non reconnu %d lors de la prise d'une opérande int.\n"
|
||||
|
||||
#: fr30-ibld.c:1217 m32r-ibld.c:994 openrisc-ibld.c:877
|
||||
#: fr30-ibld.c:1215 m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while getting vma operand.\n"
|
||||
msgstr "Champ non reconnu %d lors de la prise d'une opérande vma.\n"
|
||||
|
||||
#: fr30-ibld.c:1351 m32r-ibld.c:1092 openrisc-ibld.c:946
|
||||
#: fr30-ibld.c:1349 m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while setting int operand.\n"
|
||||
msgstr "Champ non reconnu %d lors de l'initialisation d'une opérande int.\n"
|
||||
|
||||
#: fr30-ibld.c:1473 m32r-ibld.c:1178 openrisc-ibld.c:1003
|
||||
#: fr30-ibld.c:1471 m32r-ibld.c:1176 openrisc-ibld.c:1001
|
||||
#: xstormy16-ibld.c:1224
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while setting vma operand.\n"
|
||||
msgstr "Champ non reconnu %d lors de l'initialisation d'une opérande vma.\n"
|
||||
@ -283,7 +289,9 @@ msgstr "option conditionnelle invalide"
|
||||
|
||||
#: ppc-opc.c:800
|
||||
msgid "attempt to set y bit when using + or - modifier"
|
||||
msgstr "tentative d'initialisation du bit y lorsque le modificateur + ou - a été utilisé"
|
||||
msgstr ""
|
||||
"tentative d'initialisation du bit y lorsque le modificateur + ou - a été "
|
||||
"utilisé"
|
||||
|
||||
#: ppc-opc.c:832 ppc-opc.c:884
|
||||
msgid "offset not a multiple of 4"
|
||||
@ -299,7 +307,9 @@ msgstr "d
|
||||
|
||||
#: ppc-opc.c:910
|
||||
msgid "ignoring least significant bits in branch offset"
|
||||
msgstr "Les derniers bits les moins significatifs sont ignorés dans le décalage de branchement"
|
||||
msgstr ""
|
||||
"Les derniers bits les moins significatifs sont ignorés dans le décalage de "
|
||||
"branchement"
|
||||
|
||||
#: ppc-opc.c:944 ppc-opc.c:981
|
||||
msgid "illegal bitmask"
|
||||
@ -396,5 +406,36 @@ msgstr "La valeur imm
|
||||
msgid "immediate value must be even"
|
||||
msgstr "La valeur immédiate doit être paire."
|
||||
|
||||
#: xstormy16-asm.c:74
|
||||
#, fuzzy
|
||||
msgid "Bad register in preincrement"
|
||||
msgstr "registre index n'est pas dans la plage de chargement"
|
||||
|
||||
#: xstormy16-asm.c:79
|
||||
#, fuzzy
|
||||
msgid "Bad register in postincrement"
|
||||
msgstr "registre invalide pour un ajustement de la pile"
|
||||
|
||||
#: xstormy16-asm.c:81
|
||||
#, fuzzy
|
||||
msgid "Bad register name"
|
||||
msgstr "registre index n'est pas dans la plage de chargement"
|
||||
|
||||
#: xstormy16-asm.c:85
|
||||
msgid "Label conflicts with register name"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:89
|
||||
msgid "Label conflicts with `Rx'"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:91
|
||||
msgid "Bad immediate expression"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:120
|
||||
msgid "Small operand was not an immediate number"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "unrecognized keyword/register name"
|
||||
#~ msgstr "nom de mot clé ou de registre non reconnu"
|
||||
|
@ -6,7 +6,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2002-01-17 13:58+0000\n"
|
||||
"POT-Creation-Date: 2002-01-31 17:10+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -26,21 +26,21 @@ msgstr ""
|
||||
msgid "Illegal limm reference in last instruction!\n"
|
||||
msgstr ""
|
||||
|
||||
#: arm-dis.c:509
|
||||
#: arm-dis.c:502
|
||||
msgid "<illegal precision>"
|
||||
msgstr ""
|
||||
|
||||
#: arm-dis.c:1019
|
||||
#: arm-dis.c:1012
|
||||
#, c-format
|
||||
msgid "Unrecognised register name set: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: arm-dis.c:1026
|
||||
#: arm-dis.c:1019
|
||||
#, c-format
|
||||
msgid "Unrecognised disassembler option: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: arm-dis.c:1198
|
||||
#: arm-dis.c:1191
|
||||
msgid ""
|
||||
"\n"
|
||||
"The following ARM specific disassembler options are supported for use with\n"
|
||||
@ -61,6 +61,7 @@ msgid "unknown constraint `%c'"
|
||||
msgstr ""
|
||||
|
||||
#: cgen-asm.c:346 fr30-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195
|
||||
#: xstormy16-ibld.c:195
|
||||
#, c-format
|
||||
msgid "operand out of range (%ld not between %ld and %ld)"
|
||||
msgstr ""
|
||||
@ -86,96 +87,100 @@ msgstr ""
|
||||
msgid "Address 0x%x is out of bounds.\n"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-asm.c:324 m32r-asm.c:326 openrisc-asm.c:245
|
||||
#: fr30-asm.c:323 m32r-asm.c:325 openrisc-asm.c:244 xstormy16-asm.c:231
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while parsing.\n"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-asm.c:374 m32r-asm.c:376 openrisc-asm.c:295
|
||||
#: fr30-asm.c:373 m32r-asm.c:375 openrisc-asm.c:294 xstormy16-asm.c:281
|
||||
msgid "missing mnemonic in syntax string"
|
||||
msgstr ""
|
||||
|
||||
#. We couldn't parse it.
|
||||
#: fr30-asm.c:510 fr30-asm.c:514 fr30-asm.c:601 fr30-asm.c:703 m32r-asm.c:512
|
||||
#: m32r-asm.c:516 m32r-asm.c:603 m32r-asm.c:705 openrisc-asm.c:431
|
||||
#: openrisc-asm.c:435 openrisc-asm.c:522 openrisc-asm.c:624
|
||||
#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 m32r-asm.c:511
|
||||
#: m32r-asm.c:515 m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430
|
||||
#: openrisc-asm.c:434 openrisc-asm.c:521 openrisc-asm.c:623
|
||||
#: xstormy16-asm.c:417 xstormy16-asm.c:421 xstormy16-asm.c:508
|
||||
#: xstormy16-asm.c:610
|
||||
msgid "unrecognized instruction"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-asm.c:557 m32r-asm.c:559 openrisc-asm.c:478
|
||||
#: fr30-asm.c:556 m32r-asm.c:558 openrisc-asm.c:477 xstormy16-asm.c:464
|
||||
#, c-format
|
||||
msgid "syntax error (expected char `%c', found `%c')"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-asm.c:567 m32r-asm.c:569 openrisc-asm.c:488
|
||||
#: fr30-asm.c:566 m32r-asm.c:568 openrisc-asm.c:487 xstormy16-asm.c:474
|
||||
#, c-format
|
||||
msgid "syntax error (expected char `%c', found end of instruction)"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-asm.c:595 m32r-asm.c:597 openrisc-asm.c:516
|
||||
#: fr30-asm.c:594 m32r-asm.c:596 openrisc-asm.c:515 xstormy16-asm.c:502
|
||||
msgid "junk at end of line"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-asm.c:702 m32r-asm.c:704 openrisc-asm.c:623
|
||||
#: fr30-asm.c:701 m32r-asm.c:703 openrisc-asm.c:622 xstormy16-asm.c:609
|
||||
msgid "unrecognized form of instruction"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-asm.c:714 m32r-asm.c:716 openrisc-asm.c:635
|
||||
#: fr30-asm.c:713 m32r-asm.c:715 openrisc-asm.c:634 xstormy16-asm.c:621
|
||||
#, c-format
|
||||
msgid "bad instruction `%.50s...'"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-asm.c:717 m32r-asm.c:719 openrisc-asm.c:638
|
||||
#: fr30-asm.c:716 m32r-asm.c:718 openrisc-asm.c:637 xstormy16-asm.c:624
|
||||
#, c-format
|
||||
msgid "bad instruction `%.50s'"
|
||||
msgstr ""
|
||||
|
||||
#. Default text to print if an instruction isn't recognized.
|
||||
#: fr30-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39
|
||||
#: xstormy16-dis.c:39
|
||||
msgid "*unknown*"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-dis.c:319 m32r-dis.c:250 openrisc-dis.c:137
|
||||
#: fr30-dis.c:318 m32r-dis.c:249 openrisc-dis.c:136 xstormy16-dis.c:169
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while printing insn.\n"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166
|
||||
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166 xstormy16-ibld.c:166
|
||||
#, c-format
|
||||
msgid "operand out of range (%ld not between %ld and %lu)"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179
|
||||
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179 xstormy16-ibld.c:179
|
||||
#, c-format
|
||||
msgid "operand out of range (%lu not between 0 and %lu)"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-ibld.c:731 m32r-ibld.c:660 openrisc-ibld.c:634
|
||||
#: fr30-ibld.c:730 m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while building insn.\n"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-ibld.c:939 m32r-ibld.c:794 openrisc-ibld.c:737
|
||||
#: fr30-ibld.c:937 m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while decoding insn.\n"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-ibld.c:1088 m32r-ibld.c:904 openrisc-ibld.c:817
|
||||
#: fr30-ibld.c:1086 m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while getting int operand.\n"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-ibld.c:1217 m32r-ibld.c:994 openrisc-ibld.c:877
|
||||
#: fr30-ibld.c:1215 m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while getting vma operand.\n"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-ibld.c:1351 m32r-ibld.c:1092 openrisc-ibld.c:946
|
||||
#: fr30-ibld.c:1349 m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while setting int operand.\n"
|
||||
msgstr ""
|
||||
|
||||
#: fr30-ibld.c:1473 m32r-ibld.c:1178 openrisc-ibld.c:1003
|
||||
#: fr30-ibld.c:1471 m32r-ibld.c:1176 openrisc-ibld.c:1001
|
||||
#: xstormy16-ibld.c:1224
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while setting vma operand.\n"
|
||||
msgstr ""
|
||||
@ -392,3 +397,31 @@ msgstr ""
|
||||
#: v850-opc.c:375
|
||||
msgid "immediate value must be even"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:74
|
||||
msgid "Bad register in preincrement"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:79
|
||||
msgid "Bad register in postincrement"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:81
|
||||
msgid "Bad register name"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:85
|
||||
msgid "Label conflicts with register name"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:89
|
||||
msgid "Label conflicts with `Rx'"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:91
|
||||
msgid "Bad immediate expression"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:120
|
||||
msgid "Small operand was not an immediate number"
|
||||
msgstr ""
|
||||
|
@ -5,7 +5,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: opcodes 2.11\n"
|
||||
"POT-Creation-Date: 2002-01-17 13:58+0000\n"
|
||||
"POT-Creation-Date: 2002-01-31 17:10+0000\n"
|
||||
"PO-Revision-Date: 2001-10-23 15:35+0200\n"
|
||||
"Last-Translator: Christian Rose <menthos@menthos.com>\n"
|
||||
"Language-Team: Swedish <sv@li.org>\n"
|
||||
@ -25,21 +25,21 @@ msgstr "hopptipset ligger inte p
|
||||
msgid "Illegal limm reference in last instruction!\n"
|
||||
msgstr "Otillåten limm-referens i sista instruktionen!\n"
|
||||
|
||||
#: arm-dis.c:509
|
||||
#: arm-dis.c:502
|
||||
msgid "<illegal precision>"
|
||||
msgstr "<otillåten precision>"
|
||||
|
||||
#: arm-dis.c:1019
|
||||
#: arm-dis.c:1012
|
||||
#, c-format
|
||||
msgid "Unrecognised register name set: %s\n"
|
||||
msgstr "Okänt registernamn är angivet: %s\n"
|
||||
|
||||
#: arm-dis.c:1026
|
||||
#: arm-dis.c:1019
|
||||
#, c-format
|
||||
msgid "Unrecognised disassembler option: %s\n"
|
||||
msgstr "Okänt disassembleralternativ: %s\n"
|
||||
|
||||
#: arm-dis.c:1198
|
||||
#: arm-dis.c:1191
|
||||
msgid ""
|
||||
"\n"
|
||||
"The following ARM specific disassembler options are supported for use with\n"
|
||||
@ -63,6 +63,7 @@ msgid "unknown constraint `%c'"
|
||||
msgstr "okänd begränsning \"%c\""
|
||||
|
||||
#: cgen-asm.c:346 fr30-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195
|
||||
#: xstormy16-ibld.c:195
|
||||
#, c-format
|
||||
msgid "operand out of range (%ld not between %ld and %ld)"
|
||||
msgstr "operanden är utanför intervallet (%ld är inte mellan %ld och %ld)"
|
||||
@ -88,97 +89,101 @@ msgstr "Ok
|
||||
msgid "Address 0x%x is out of bounds.\n"
|
||||
msgstr "Adressen 0x%x ligger utanför tillåtna gränser.\n"
|
||||
|
||||
#: fr30-asm.c:324 m32r-asm.c:326 openrisc-asm.c:245
|
||||
#: fr30-asm.c:323 m32r-asm.c:325 openrisc-asm.c:244 xstormy16-asm.c:231
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while parsing.\n"
|
||||
msgstr "Okänt fält %d vid tolkning.\n"
|
||||
|
||||
#: fr30-asm.c:374 m32r-asm.c:376 openrisc-asm.c:295
|
||||
#: fr30-asm.c:373 m32r-asm.c:375 openrisc-asm.c:294 xstormy16-asm.c:281
|
||||
msgid "missing mnemonic in syntax string"
|
||||
msgstr ""
|
||||
|
||||
#. We couldn't parse it.
|
||||
#: fr30-asm.c:510 fr30-asm.c:514 fr30-asm.c:601 fr30-asm.c:703 m32r-asm.c:512
|
||||
#: m32r-asm.c:516 m32r-asm.c:603 m32r-asm.c:705 openrisc-asm.c:431
|
||||
#: openrisc-asm.c:435 openrisc-asm.c:522 openrisc-asm.c:624
|
||||
#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 m32r-asm.c:511
|
||||
#: m32r-asm.c:515 m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430
|
||||
#: openrisc-asm.c:434 openrisc-asm.c:521 openrisc-asm.c:623
|
||||
#: xstormy16-asm.c:417 xstormy16-asm.c:421 xstormy16-asm.c:508
|
||||
#: xstormy16-asm.c:610
|
||||
msgid "unrecognized instruction"
|
||||
msgstr "okänd instruktion"
|
||||
|
||||
#: fr30-asm.c:557 m32r-asm.c:559 openrisc-asm.c:478
|
||||
#: fr30-asm.c:556 m32r-asm.c:558 openrisc-asm.c:477 xstormy16-asm.c:464
|
||||
#, c-format
|
||||
msgid "syntax error (expected char `%c', found `%c')"
|
||||
msgstr "syntaxfel (tecknet \"%c\" förväntades, hittade \"%c\")"
|
||||
|
||||
#: fr30-asm.c:567 m32r-asm.c:569 openrisc-asm.c:488
|
||||
#: fr30-asm.c:566 m32r-asm.c:568 openrisc-asm.c:487 xstormy16-asm.c:474
|
||||
#, fuzzy, c-format
|
||||
msgid "syntax error (expected char `%c', found end of instruction)"
|
||||
msgstr "syntaxfel (tecknet \"%c\" förväntades, hittade \"%c\")"
|
||||
|
||||
#: fr30-asm.c:595 m32r-asm.c:597 openrisc-asm.c:516
|
||||
#: fr30-asm.c:594 m32r-asm.c:596 openrisc-asm.c:515 xstormy16-asm.c:502
|
||||
msgid "junk at end of line"
|
||||
msgstr "skräp vid slutet på raden"
|
||||
|
||||
#: fr30-asm.c:702 m32r-asm.c:704 openrisc-asm.c:623
|
||||
#: fr30-asm.c:701 m32r-asm.c:703 openrisc-asm.c:622 xstormy16-asm.c:609
|
||||
#, fuzzy
|
||||
msgid "unrecognized form of instruction"
|
||||
msgstr "okänd instruktion"
|
||||
|
||||
#: fr30-asm.c:714 m32r-asm.c:716 openrisc-asm.c:635
|
||||
#: fr30-asm.c:713 m32r-asm.c:715 openrisc-asm.c:634 xstormy16-asm.c:621
|
||||
#, c-format
|
||||
msgid "bad instruction `%.50s...'"
|
||||
msgstr "felaktig instruktion \"%.50s...\""
|
||||
|
||||
#: fr30-asm.c:717 m32r-asm.c:719 openrisc-asm.c:638
|
||||
#: fr30-asm.c:716 m32r-asm.c:718 openrisc-asm.c:637 xstormy16-asm.c:624
|
||||
#, c-format
|
||||
msgid "bad instruction `%.50s'"
|
||||
msgstr "felaktig instruktion \"%.50s\""
|
||||
|
||||
#. Default text to print if an instruction isn't recognized.
|
||||
#: fr30-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39
|
||||
#: xstormy16-dis.c:39
|
||||
msgid "*unknown*"
|
||||
msgstr "*okänd*"
|
||||
|
||||
#: fr30-dis.c:319 m32r-dis.c:250 openrisc-dis.c:137
|
||||
#: fr30-dis.c:318 m32r-dis.c:249 openrisc-dis.c:136 xstormy16-dis.c:169
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while printing insn.\n"
|
||||
msgstr "Okänt fält %d vid utskrift av instruktion.\n"
|
||||
|
||||
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166
|
||||
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166 xstormy16-ibld.c:166
|
||||
#, fuzzy, c-format
|
||||
msgid "operand out of range (%ld not between %ld and %lu)"
|
||||
msgstr "operanden är utanför intervallet (%ld är inte mellan %ld och %ld)"
|
||||
|
||||
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179
|
||||
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179 xstormy16-ibld.c:179
|
||||
#, c-format
|
||||
msgid "operand out of range (%lu not between 0 and %lu)"
|
||||
msgstr "operanden utanför intervallet (%lu inte mellan 0 och %lu)"
|
||||
|
||||
#: fr30-ibld.c:731 m32r-ibld.c:660 openrisc-ibld.c:634
|
||||
#: fr30-ibld.c:730 m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while building insn.\n"
|
||||
msgstr "Okänt fält %d vid konstruktion av instruktion.\n"
|
||||
|
||||
#: fr30-ibld.c:939 m32r-ibld.c:794 openrisc-ibld.c:737
|
||||
#: fr30-ibld.c:937 m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while decoding insn.\n"
|
||||
msgstr "Okänt fält %d vid avkodning av instruktion.\n"
|
||||
|
||||
#: fr30-ibld.c:1088 m32r-ibld.c:904 openrisc-ibld.c:817
|
||||
#: fr30-ibld.c:1086 m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while getting int operand.\n"
|
||||
msgstr "Okänt fält %d vid hämtning av heltalsoperand.\n"
|
||||
|
||||
#: fr30-ibld.c:1217 m32r-ibld.c:994 openrisc-ibld.c:877
|
||||
#: fr30-ibld.c:1215 m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while getting vma operand.\n"
|
||||
msgstr "Okänt fält %d vid hämtning av vma-operand.\n"
|
||||
|
||||
#: fr30-ibld.c:1351 m32r-ibld.c:1092 openrisc-ibld.c:946
|
||||
#: fr30-ibld.c:1349 m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while setting int operand.\n"
|
||||
msgstr "Okänt fält %d vid inställning av heltalsoperand.\n"
|
||||
|
||||
#: fr30-ibld.c:1473 m32r-ibld.c:1178 openrisc-ibld.c:1003
|
||||
#: fr30-ibld.c:1471 m32r-ibld.c:1176 openrisc-ibld.c:1001
|
||||
#: xstormy16-ibld.c:1224
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while setting vma operand.\n"
|
||||
msgstr "Okänt fält %d vid inställning av vma-operand.\n"
|
||||
@ -398,5 +403,36 @@ msgstr "omedelbara v
|
||||
msgid "immediate value must be even"
|
||||
msgstr "omedelbara värdet måste vara jämnt"
|
||||
|
||||
#: xstormy16-asm.c:74
|
||||
#, fuzzy
|
||||
msgid "Bad register in preincrement"
|
||||
msgstr "indexregistret är i inläsningsintervallet"
|
||||
|
||||
#: xstormy16-asm.c:79
|
||||
#, fuzzy
|
||||
msgid "Bad register in postincrement"
|
||||
msgstr "ogiltigt register för stackjustering"
|
||||
|
||||
#: xstormy16-asm.c:81
|
||||
#, fuzzy
|
||||
msgid "Bad register name"
|
||||
msgstr "indexregistret är i inläsningsintervallet"
|
||||
|
||||
#: xstormy16-asm.c:85
|
||||
msgid "Label conflicts with register name"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:89
|
||||
msgid "Label conflicts with `Rx'"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:91
|
||||
msgid "Bad immediate expression"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:120
|
||||
msgid "Small operand was not an immediate number"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "unrecognized keyword/register name"
|
||||
#~ msgstr "okänt namn på nyckelord/register"
|
||||
|
@ -5,7 +5,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: opcodes 2.11\n"
|
||||
"POT-Creation-Date: 2002-01-17 13:58+0000\n"
|
||||
"POT-Creation-Date: 2002-01-31 17:10+0000\n"
|
||||
"PO-Revision-Date: 2001-07-29 22:33EEST\n"
|
||||
"Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n"
|
||||
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
|
||||
@ -26,21 +26,21 @@ msgstr "atlama i
|
||||
msgid "Illegal limm reference in last instruction!\n"
|
||||
msgstr "Son iþlemde geçersiz limm referansý!\n"
|
||||
|
||||
#: arm-dis.c:509
|
||||
#: arm-dis.c:502
|
||||
msgid "<illegal precision>"
|
||||
msgstr "<geçersiz kesinlik>"
|
||||
|
||||
#: arm-dis.c:1019
|
||||
#: arm-dis.c:1012
|
||||
#, c-format
|
||||
msgid "Unrecognised register name set: %s\n"
|
||||
msgstr "Bilinmeyen yazmaç ad kümesi: %s\n"
|
||||
|
||||
#: arm-dis.c:1026
|
||||
#: arm-dis.c:1019
|
||||
#, c-format
|
||||
msgid "Unrecognised disassembler option: %s\n"
|
||||
msgstr "Bilinmeyen karþýt-çevirici seçeneði: %s\n"
|
||||
|
||||
#: arm-dis.c:1198
|
||||
#: arm-dis.c:1191
|
||||
msgid ""
|
||||
"\n"
|
||||
"The following ARM specific disassembler options are supported for use with\n"
|
||||
@ -64,6 +64,7 @@ msgid "unknown constraint `%c'"
|
||||
msgstr "`%c' bilinmeyen kýsýtý"
|
||||
|
||||
#: cgen-asm.c:346 fr30-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195
|
||||
#: xstormy16-ibld.c:195
|
||||
#, c-format
|
||||
msgid "operand out of range (%ld not between %ld and %ld)"
|
||||
msgstr "Kapsam dýþý terim (%ld, %ld ve %ld arasýnda deðil) "
|
||||
@ -89,97 +90,101 @@ msgstr "Bilinmeyen hata %d\n"
|
||||
msgid "Address 0x%x is out of bounds.\n"
|
||||
msgstr "0x%x adresi sýnýrlarýn dýþýnda.\n"
|
||||
|
||||
#: fr30-asm.c:324 m32r-asm.c:326 openrisc-asm.c:245
|
||||
#: fr30-asm.c:323 m32r-asm.c:325 openrisc-asm.c:244 xstormy16-asm.c:231
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while parsing.\n"
|
||||
msgstr "Ayrýþtýrma esnasýnda bilinmeyen alan %d bulundu.\n"
|
||||
|
||||
#: fr30-asm.c:374 m32r-asm.c:376 openrisc-asm.c:295
|
||||
#: fr30-asm.c:373 m32r-asm.c:375 openrisc-asm.c:294 xstormy16-asm.c:281
|
||||
msgid "missing mnemonic in syntax string"
|
||||
msgstr ""
|
||||
|
||||
#. We couldn't parse it.
|
||||
#: fr30-asm.c:510 fr30-asm.c:514 fr30-asm.c:601 fr30-asm.c:703 m32r-asm.c:512
|
||||
#: m32r-asm.c:516 m32r-asm.c:603 m32r-asm.c:705 openrisc-asm.c:431
|
||||
#: openrisc-asm.c:435 openrisc-asm.c:522 openrisc-asm.c:624
|
||||
#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 m32r-asm.c:511
|
||||
#: m32r-asm.c:515 m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430
|
||||
#: openrisc-asm.c:434 openrisc-asm.c:521 openrisc-asm.c:623
|
||||
#: xstormy16-asm.c:417 xstormy16-asm.c:421 xstormy16-asm.c:508
|
||||
#: xstormy16-asm.c:610
|
||||
msgid "unrecognized instruction"
|
||||
msgstr "bilinmeyen iþlem"
|
||||
|
||||
#: fr30-asm.c:557 m32r-asm.c:559 openrisc-asm.c:478
|
||||
#: fr30-asm.c:556 m32r-asm.c:558 openrisc-asm.c:477 xstormy16-asm.c:464
|
||||
#, c-format
|
||||
msgid "syntax error (expected char `%c', found `%c')"
|
||||
msgstr "biçem hatasý (char `%c' beklenirken `%c' bulundu)"
|
||||
|
||||
#: fr30-asm.c:567 m32r-asm.c:569 openrisc-asm.c:488
|
||||
#: fr30-asm.c:566 m32r-asm.c:568 openrisc-asm.c:487 xstormy16-asm.c:474
|
||||
#, fuzzy, c-format
|
||||
msgid "syntax error (expected char `%c', found end of instruction)"
|
||||
msgstr "biçem hatasý (char `%c' beklenirken `%c' bulundu)"
|
||||
|
||||
#: fr30-asm.c:595 m32r-asm.c:597 openrisc-asm.c:516
|
||||
#: fr30-asm.c:594 m32r-asm.c:596 openrisc-asm.c:515 xstormy16-asm.c:502
|
||||
msgid "junk at end of line"
|
||||
msgstr "Satýr sonu bozuk "
|
||||
|
||||
#: fr30-asm.c:702 m32r-asm.c:704 openrisc-asm.c:623
|
||||
#: fr30-asm.c:701 m32r-asm.c:703 openrisc-asm.c:622 xstormy16-asm.c:609
|
||||
#, fuzzy
|
||||
msgid "unrecognized form of instruction"
|
||||
msgstr "bilinmeyen iþlem"
|
||||
|
||||
#: fr30-asm.c:714 m32r-asm.c:716 openrisc-asm.c:635
|
||||
#: fr30-asm.c:713 m32r-asm.c:715 openrisc-asm.c:634 xstormy16-asm.c:621
|
||||
#, c-format
|
||||
msgid "bad instruction `%.50s...'"
|
||||
msgstr "geçersiz iþlem `%.50s...'"
|
||||
|
||||
#: fr30-asm.c:717 m32r-asm.c:719 openrisc-asm.c:638
|
||||
#: fr30-asm.c:716 m32r-asm.c:718 openrisc-asm.c:637 xstormy16-asm.c:624
|
||||
#, c-format
|
||||
msgid "bad instruction `%.50s'"
|
||||
msgstr "geçersiz iþlem `%.50s'"
|
||||
|
||||
#. Default text to print if an instruction isn't recognized.
|
||||
#: fr30-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39
|
||||
#: xstormy16-dis.c:39
|
||||
msgid "*unknown*"
|
||||
msgstr "*bilinmeyen*"
|
||||
|
||||
#: fr30-dis.c:319 m32r-dis.c:250 openrisc-dis.c:137
|
||||
#: fr30-dis.c:318 m32r-dis.c:249 openrisc-dis.c:136 xstormy16-dis.c:169
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while printing insn.\n"
|
||||
msgstr "yönerge yazdýrýlýrken bilinmeyen alan %d bulundu.\n"
|
||||
|
||||
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166
|
||||
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166 xstormy16-ibld.c:166
|
||||
#, fuzzy, c-format
|
||||
msgid "operand out of range (%ld not between %ld and %lu)"
|
||||
msgstr "Kapsam dýþý terim (%ld, %ld ve %ld arasýnda deðil) "
|
||||
|
||||
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179
|
||||
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179 xstormy16-ibld.c:179
|
||||
#, c-format
|
||||
msgid "operand out of range (%lu not between 0 and %lu)"
|
||||
msgstr "kapsam dýþý terim (%lu 0 ve %lu arasýnda deðil) "
|
||||
|
||||
#: fr30-ibld.c:731 m32r-ibld.c:660 openrisc-ibld.c:634
|
||||
#: fr30-ibld.c:730 m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while building insn.\n"
|
||||
msgstr "Yönerge oluþturulurken bilinmeyen alan %d bulundu.\n"
|
||||
|
||||
#: fr30-ibld.c:939 m32r-ibld.c:794 openrisc-ibld.c:737
|
||||
#: fr30-ibld.c:937 m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while decoding insn.\n"
|
||||
msgstr "Yönerge çözümlenirken bilinmeyen alan %d bulundu.\n"
|
||||
|
||||
#: fr30-ibld.c:1088 m32r-ibld.c:904 openrisc-ibld.c:817
|
||||
#: fr30-ibld.c:1086 m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while getting int operand.\n"
|
||||
msgstr "`int' terimi alýnýrken bilinmeyen alan %d bulundu.\n"
|
||||
|
||||
#: fr30-ibld.c:1217 m32r-ibld.c:994 openrisc-ibld.c:877
|
||||
#: fr30-ibld.c:1215 m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while getting vma operand.\n"
|
||||
msgstr "`vma' terimi alýnýrken bilinmeyen alan %d bulundu.\n"
|
||||
|
||||
#: fr30-ibld.c:1351 m32r-ibld.c:1092 openrisc-ibld.c:946
|
||||
#: fr30-ibld.c:1349 m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while setting int operand.\n"
|
||||
msgstr "`int' terimi atanýrken bilinmeyen alan %d bulundu.\n"
|
||||
|
||||
#: fr30-ibld.c:1473 m32r-ibld.c:1178 openrisc-ibld.c:1003
|
||||
#: fr30-ibld.c:1471 m32r-ibld.c:1176 openrisc-ibld.c:1001
|
||||
#: xstormy16-ibld.c:1224
|
||||
#, c-format
|
||||
msgid "Unrecognized field %d while setting vma operand.\n"
|
||||
msgstr "`vma' terimi atanýrken bilinmeyen alan %d bulundu.\n"
|
||||
@ -398,5 +403,36 @@ msgstr "
|
||||
msgid "immediate value must be even"
|
||||
msgstr "þimdiki deðer çift sayý olmalý"
|
||||
|
||||
#: xstormy16-asm.c:74
|
||||
#, fuzzy
|
||||
msgid "Bad register in preincrement"
|
||||
msgstr "yükleme aralýðýnda endeks yazmacý"
|
||||
|
||||
#: xstormy16-asm.c:79
|
||||
#, fuzzy
|
||||
msgid "Bad register in postincrement"
|
||||
msgstr "yýðýt düzeltmesi için geçersiz yazmaç "
|
||||
|
||||
#: xstormy16-asm.c:81
|
||||
#, fuzzy
|
||||
msgid "Bad register name"
|
||||
msgstr "yükleme aralýðýnda endeks yazmacý"
|
||||
|
||||
#: xstormy16-asm.c:85
|
||||
msgid "Label conflicts with register name"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:89
|
||||
msgid "Label conflicts with `Rx'"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:91
|
||||
msgid "Bad immediate expression"
|
||||
msgstr ""
|
||||
|
||||
#: xstormy16-asm.c:120
|
||||
msgid "Small operand was not an immediate number"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "unrecognized keyword/register name"
|
||||
#~ msgstr "Bilinmeyen anahtar/yazmaç adý"
|
||||
|
Loading…
Reference in New Issue
Block a user