This commit was manufactured by cvs2svn to create branch 'binutils-
2_12-branch'. Sprout from gdb_5_1-2001-07-29-branch 2001-07-26 14:20:06 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch' Cherrypick from master 2002-02-09 22:54:16 UTC Richard Henderson <rth@redhat.com> ' * alpha.h (R_ALPHA_BRSGP): New.': COPYING.NEWLIB ChangeLog MAINTAINERS Makefile.in config.guess config.sub configure configure.in etc/ChangeLog etc/Makefile.in gettext.m4 include/ChangeLog include/ansidecl.h include/aout/ChangeLog include/aout/aout64.h include/aout/hp300hpux.h include/bfdlink.h include/coff/ChangeLog include/coff/arm.h include/coff/external.h include/coff/internal.h include/coff/m88k.h include/coff/or32.h include/coff/ti.h include/coff/tic54x.h include/coff/xcoff.h include/demangle.h include/dis-asm.h include/dyn-string.h include/elf/ChangeLog include/elf/alpha.h include/elf/arm.h include/elf/common.h include/elf/dwarf2.h include/elf/external.h include/elf/h8.h include/elf/ia64.h include/elf/internal.h include/elf/mips.h include/elf/mmix.h include/elf/or32.h include/elf/ppc.h include/elf/sh.h include/elf/xstormy16.h include/fibheap.h include/filenames.h include/floatformat.h include/hashtab.h include/libiberty.h include/nlm/ChangeLog include/nlm/common.h include/objalloc.h include/opcode/ChangeLog include/opcode/alpha.h include/opcode/arc.h include/opcode/avr.h include/opcode/cgen.h include/opcode/d10v.h include/opcode/d30v.h include/opcode/h8300.h include/opcode/hppa.h include/opcode/i386.h include/opcode/mips.h include/opcode/mmix.h include/opcode/or32.h include/opcode/ppc.h include/opcode/tic54x.h include/opcode/v850.h include/partition.h include/safe-ctype.h include/sort.h include/splay-tree.h include/xregex.h libtool.m4 ltcf-c.sh ltcf-cxx.sh ltcf-gcj.sh ltconfig ltmain.sh symlink-tree
This commit is contained in:
parent
53c570dbbc
commit
34124a0718
|
@ -9,8 +9,8 @@ All rights reserved.
|
|||
Redistribution and use in source and binary forms are permitted
|
||||
provided that the above copyright notice and this paragraph are
|
||||
duplicated in all such forms and that any documentation,
|
||||
advertising materials, and other materials related to such
|
||||
distribution and use acknowledge that the software was developed
|
||||
and other materials related to such distribution and use
|
||||
acknowledge that the software was developed
|
||||
by the University of California, Berkeley. The name of the
|
||||
University may not be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
@ -112,20 +112,46 @@ of the software without specific, written prior permission.
|
|||
Hewlett-Packard Company makes no representations about the
|
||||
suitability of this software for any purpose.
|
||||
|
||||
(9) Unless otherwise stated in each remaining newlib file, the remaining
|
||||
files in the newlib subdirectory are governed by the following copyright.
|
||||
(9) Hans-Peter Nilsson
|
||||
|
||||
Copyright (c) 1994, 1997, 2001 Red Hat Incorporated.
|
||||
All rights reserved.
|
||||
Copyright (C) 2001 Hans-Peter Nilsson
|
||||
|
||||
Permission to use, copy, modify, and distribute this software is
|
||||
freely granted, provided that the above copyright notice, this notice
|
||||
and the following disclaimer are preserved with no changes.
|
||||
|
||||
Redistribution and use in source and binary forms are permitted
|
||||
provided that the above copyright notice and this paragraph are
|
||||
duplicated in all such forms and that any documentation,
|
||||
advertising materials, and other materials related to such
|
||||
distribution and use acknowledge that the software was developed
|
||||
at Cygnus Solutions. Cygnus Solutions may not be used to
|
||||
endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE.
|
||||
|
||||
(10) Unless otherwise stated in each remaining newlib file, the remaining
|
||||
files in the newlib subdirectory are governed by the following copyright.
|
||||
|
||||
Copyright (c) 1994, 1997, 2001, 2002 Red Hat Incorporated.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
The name of Red Hat Incorporated may not be used to endorse
|
||||
or promote products derived from this software without specific
|
||||
prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
|
332
ChangeLog
332
ChangeLog
|
@ -1,3 +1,223 @@
|
|||
2002-02-09 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
Contribute sh64-elf.
|
||||
2000-12-01 Alexandre Oliva <aoliva@redhat.com>
|
||||
* configure.in: Added sh64-*-*.
|
||||
|
||||
2002-02-04 Jeff Johnston <jjohnstn@redhat.com>
|
||||
|
||||
* COPYING.NEWLIB: Remove advertising clause from
|
||||
Berkeley and Red Hat licenses.
|
||||
|
||||
2002-02-01 Mo DeJong <supermo@bayarea.net>
|
||||
|
||||
* Makefile.in: Add all-tix to deps for all-snavigator
|
||||
so that tix is built when building snavigator.
|
||||
|
||||
2002-02-01 Ben Elliston <bje@redhat.com>
|
||||
|
||||
* config.guess: Import from master sources, rev 1.229.
|
||||
* config.sub: Import from master sources, rev 1.240.
|
||||
|
||||
2002-01-27 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
From Steve Ellcey <sje@cup.hp.com>:
|
||||
* libtool.m4 (HPUX_IA64_MODE): Set to 32 or 64 based on ABI.
|
||||
(lt_cv_deplibs_check_method, lt_cv_file_magic_cmd,
|
||||
lt_cv_file_magic_test_file): Set to appropriate values for HP-UX
|
||||
IA64.
|
||||
* ltcf-c.sh (archive_cmds, hardcode_*): Ditto.
|
||||
* ltconfig (shlibpath_*, dynamic_linker, library_names_spec,
|
||||
soname_spec, sys_lib_search_path_spec): Ditto.
|
||||
|
||||
2002-01-26 Jason Thorpe <thorpej@wasabisystems.com>
|
||||
|
||||
* configure.in (*-*-netbsd*): New. Skip target-newlib,
|
||||
target-libiberty, and target-libgloss. Skip Java-related
|
||||
libraries if not supported for NetBSD on target CPU.
|
||||
|
||||
2002-01-23 Nick Clifton <nickc@cambridge.redhat.com>
|
||||
|
||||
* configure.in: Import StrongARM and XScale target_configdirs from
|
||||
FSF GCC version.
|
||||
|
||||
2002-01-16 H.J. Lu (hjl@gnu.org)
|
||||
|
||||
* config.guess: Import from master sources, rev 1.225.
|
||||
* config.sub: Import from master sources, rev 1.238.
|
||||
|
||||
* MAINTAINERS: Updated notes on config.guess and config.sub.
|
||||
|
||||
2002-01-11 Steve Ellcey <sje@cup.hp.com>
|
||||
|
||||
* configure.in (ia64*-*-hpux*): New target for IA64 HP-UX,
|
||||
ld and gdb are not supported.
|
||||
|
||||
2002-01-07 Jeff Johnston <jjohnstn@redhat.com>
|
||||
|
||||
* Change reference to Cygnus Solutions to be Red Hat.
|
||||
|
||||
2002-01-07 Jeff Johnston <jjohnstn@redhat.com>
|
||||
|
||||
* COPYING.NEWLIB: Update generic copyright date.
|
||||
|
||||
2002-01-07 Mark Salter <msalter@redhat.com>
|
||||
|
||||
* configure.in: Remove target-bsp and target-cygmon from arm builds.
|
||||
Allow target-libgloss to be built for arm, strongarm, and xscale.
|
||||
|
||||
2002-01-03 Ben Elliston <bje@redhat.com>
|
||||
|
||||
* MAINTAINERS: Update URL for config.* scripts.
|
||||
|
||||
2001-12-18 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* config.sub: Import latest version.
|
||||
* config.guess: Likewise.
|
||||
|
||||
2001-12-13 Thomas Fitzsimmons <fitzsim@redhat.com>
|
||||
|
||||
* configure.in (FLAGS_FOR_TARGET): Remove -nostdinc and -isystem
|
||||
options for i[3456]86-pc-linux* native builds.
|
||||
|
||||
2001-12-05 Laurent Guerby <guerby@acm.org>
|
||||
|
||||
* MAINTAINERS: gcc adopts symlink-tree, refer more to
|
||||
libiberty.
|
||||
|
||||
Import this patch from gcc:
|
||||
|
||||
2000-12-09 Laurynas Biveinis <lauras@softhome.net>
|
||||
|
||||
* symlink-tree: handle DOS-style absolute paths.
|
||||
|
||||
2001-11-28 DJ Delorie <dj@redhat.com>
|
||||
Zack Weinberg <zack@codesourcery.com>
|
||||
|
||||
When build != host, create libiberty for the build machine.
|
||||
|
||||
* Makefile.in (TARGET_CONFIGARGS, BUILD_CONFIGARGS): Replace
|
||||
CONFIG_ARGUMENTS.
|
||||
(ALL_BUILD_MODULES_LIST, BUILD_CONFIGDIRS, BUILD_SUBDIR):
|
||||
New variables.
|
||||
(ALL_BUILD_MODULES, CONFIGURE_BUILD_MODULES): New variables
|
||||
and rules.
|
||||
(all.normal): Depend on ALL_BUILD_MODULES.
|
||||
(CONFIGURE_TARGET_MODULES rule): Use TARGET_CONFIGARGS.
|
||||
(all-build-libiberty): Depend on configure-build-libiberty.
|
||||
|
||||
* configure: Calculate and substitute proper value for
|
||||
ALL_BUILD_MODULES.
|
||||
* configure.in: Create the build subdirectory.
|
||||
Calculate and substitute TARGET_CONFIGARGS (formerly
|
||||
CONFIG_ARGUMENTS); also BUILD_SUBDIR and BUILD_CONFIGARGS (new).
|
||||
|
||||
2001-11-26 Geoffrey Keating <geoffk@redhat.com>
|
||||
|
||||
* config.sub: Update to version 1.232 on subversion.
|
||||
|
||||
2001-11-20 Nick Clifton <nickc@cambridge.redhat.com>
|
||||
|
||||
* Makefile.in (do-proto-toplev): Use msgfmt to generate .gmo
|
||||
files from .po files for a distribution.
|
||||
|
||||
2001-11-19 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* COPYING.NEWLIB: Mention preserved notice in specific parts.
|
||||
|
||||
2001-11-13 Jeff Holcomb <jeffh@redhat.com>
|
||||
|
||||
Merged from net gcc:
|
||||
2001-07-30 Jeff Sturm <jsturm@one-pont.com>
|
||||
* ltcf-c.sh: Use $objext, not $ac_objext.
|
||||
2001-07-27 Mark Kettenis <kettenis@gnu.org>
|
||||
* ltcf-cxx.sh: Add support for GNU.
|
||||
2001-07-22 Timothy Wall <twall@redhat.com>
|
||||
* ltcf-c.sh: Don't disable shared libraries for AIX5/IA64. Preserve
|
||||
default settings if using GNU tools with that configuration.
|
||||
* ltcf-cxx.sh: Ditto.
|
||||
* ltcf-gcj.sh: Ditto.
|
||||
2001-07-21 Michael Chastain <chastain@redhat.com>
|
||||
* ltconfig: Set max_cmd_len to a maximum of 512Kb, as it seems some
|
||||
HPUX 11.0 systems have trouble with 1MB. Mark as gcc-local.
|
||||
* ltmain.sh: Mark as gcc-local.
|
||||
|
||||
2001-11-13 Jeff Holcomb <jeffh@redhat.com>
|
||||
|
||||
* Makefile.in (all-bison): Revert 2001-10-24.
|
||||
Don't depend on texinfo.
|
||||
|
||||
2001-11-12 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* COPYING.NEWLIB: Add BSD-style license/copyright blurb for my work.
|
||||
|
||||
2001-11-08 Phil Edwards <pedwards@disaster.jaj.com>
|
||||
|
||||
* configure.in (--enable-languages): Be more permissive about
|
||||
syntax. Check for empty lists better. Warn about $LANGUAGES.
|
||||
|
||||
2001-11-06 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* Makefile.in (MAKEINFO): Use "missing" for makeinfo older than 4.0.
|
||||
|
||||
2001-10-24 Jeff Holcomb <jeffh@redhat.com>
|
||||
|
||||
Makefile.in (all-bison): Don't depend on texinfo.
|
||||
|
||||
2001-10-03 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* gettext.m4: Test po/POTFILES.in exists before trying to read.
|
||||
|
||||
2001-09-29 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* Makefile.in (configure-target-gperf): Depend on $(ALL_GCC_CXX).
|
||||
|
||||
2001-09-28 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
* config.sub, config.guess: Import latest from subversions.
|
||||
|
||||
2001-09-21 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* Makefile.in (AS_FOR_TARGET, LD_FOR_TARGET,
|
||||
DLLTOOL_FOR_TARGET, WINDRES_FOR_TARGET, AR_FOR_TARGET,
|
||||
RANLIB_FOR_TARGET, NM_FOR_TARGET): Don't use double quotes to
|
||||
avoid quotes nesting problems.
|
||||
(NATIVE_CHECK_MODULES): Ditto, just for consistency.
|
||||
(DO_X): Export only variables that are set.
|
||||
|
||||
2001-09-19 Ben Elliston <bje@redhat.com>
|
||||
|
||||
* configure.in (sparc-sun-solaris2*): Don't use /usr/bin/which on
|
||||
Solaris when testing for the /usr/ucb/cc compiler; it has incorrect
|
||||
semantics. Use the shell built-in "type" command instead.
|
||||
|
||||
2001-09-15 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||
|
||||
* config.sub: Reverted the earlier change, this version is not the
|
||||
master file.
|
||||
|
||||
2001-09-14 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||
|
||||
* config.sub: Change machine triplets from mipsel*-* to mips*el-*.
|
||||
Add support for mips64.
|
||||
|
||||
2001-09-03 Jeff Holcomb <jeffh@redhat.com>
|
||||
|
||||
* configure.in: Enable libstdc++-v3 for h8300 targets.
|
||||
|
||||
2001-08-30 Eric Christopher <echristo@redhat.com>
|
||||
Jason Eckhardt <jle@redhat.com>
|
||||
|
||||
* config.sub: Add support for mipsisa32.
|
||||
|
||||
2001-08-30 Eric Christopher <echristo@redhat.com>
|
||||
|
||||
* config.sub, config.guess: Import latest from subversions.
|
||||
|
||||
2001-08-20 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* config.sub, config.guess: Import latest from subversions.
|
||||
|
||||
2001-07-26 DJ Delorie <dj@redhat.com>
|
||||
|
||||
* MAINTAINERS: Clarify libiberty merge rules and procedures.
|
||||
|
@ -46,7 +266,7 @@ Fri Jun 8 11:14:02 2001 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
2001-05-24 Tom Rix <trix@redhat.com>
|
||||
|
||||
* configure.in : enable ld for aix
|
||||
|
||||
|
||||
2001-05-22 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* ltcf-cxx.sh (allow_undefined_flag, no_undefined_flag)
|
||||
|
@ -246,12 +466,12 @@ Fri Jun 8 11:14:02 2001 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
or C++ library to have already been built to work properly.
|
||||
(do_proto_toplev): Set them to an empty string.
|
||||
|
||||
Sat Nov 18 18:57:50 2000 Alexandre Oliva <aoliva@redhat.com>
|
||||
2000-11-18 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* Makefile.in (HOST_LIB_PATH, TARGET_LIB_PATH): New macros.
|
||||
(REALLY_SET_LIB_PATH): Use them.
|
||||
|
||||
Mon Nov 6 14:19:35 2000 Christopher Faylor <cgf@cygnus.com>
|
||||
2000-11-06 Christopher Faylor <cgf@cygnus.com>
|
||||
|
||||
* config.sub: Add support for Sun Chorus
|
||||
|
||||
|
@ -412,7 +632,7 @@ Mon Nov 6 14:19:35 2000 Christopher Faylor <cgf@cygnus.com>
|
|||
|
||||
* symlink-tree: Check number of arguments.
|
||||
|
||||
Thu Jul 6 15:36:55 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
2000-06-06 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* texinfo/texinfo.tex: Update to version 2000-05-28.15.
|
||||
|
||||
|
@ -442,11 +662,11 @@ Thu Jul 6 15:36:55 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
* README-maintainer-mode: New file: Contains notes on using
|
||||
--enable-maintainer-mode with binutils.
|
||||
|
||||
Mon May 29 13:50:03 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
2000-05-29 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* texinfo/texinfo.tex: Update. Version from makeinfo 4.0.
|
||||
|
||||
Tue May 30 19:01:12 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
2000-05-30 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* config.sub: Import CVS version 1.167 Tue May 30 09:00:07 2000.
|
||||
* config.guess: Import CVS version 1.148 Tue May 30 09:00:06 2000
|
||||
|
@ -460,11 +680,11 @@ Tue May 30 19:01:12 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
(GCC_FOR_TARGET): Likewise.
|
||||
(CXX_FOR_TARGET): Likewise.
|
||||
|
||||
Thu May 18 10:58:13 2000 Jeffrey A Law (law@cygnus.com)
|
||||
2000-05-18 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* configure.in (hppa*64*-*-*): Do build ld for this configuration.
|
||||
|
||||
Wed May 17 16:03:48 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||||
2000-05-17 Alexandre Oliva <aoliva@cygnus.com>
|
||||
|
||||
* Makefile.in (configure-target-libiberty): Depend on
|
||||
configure-target-newlib.
|
||||
|
@ -474,12 +694,12 @@ Wed May 17 16:03:48 2000 Alexandre Oliva <aoliva@cygnus.com>
|
|||
* configure.in, Makefile.in: Merge all libffi-related
|
||||
configury stuff from the libgcj tree.
|
||||
|
||||
Tue May 16 10:06:21 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
2000-05-16 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
Thu Apr 27 11:01:48 2000 Andrew Cagney <cagney@b1.cygnus.com>:
|
||||
* Makefile.in (do-tar-bz2, do-md5sum): Skip CVS directories.
|
||||
|
||||
Tue May 16 09:57:35 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
2000-05-16 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
Wed Apr 26 17:03:53 2000 Andrew Cagney <cagney@b1.cygnus.com>:
|
||||
* Makefile.in (do-djunpack): New target. Update djunpack.bat with
|
||||
|
@ -495,11 +715,11 @@ Tue May 16 09:57:35 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
* ltmain.sh: Preserve in relink_command any environment
|
||||
variables that may affect the linker behavior.
|
||||
|
||||
Fri May 12 11:23:17 2000 Jeffrey A Law (law@cygnus.com)
|
||||
2000-05-12 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* config.sub (basic_machine): Recognize hppa64 as a valid cpu type.
|
||||
|
||||
Wed May 10 21:26:51 2000 Jim Wilson <wilson@cygnus.com>
|
||||
2000-05-10 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* configure.in (ia64*-*-elf*): Add gdb and friends to noconfigdirs.
|
||||
|
||||
|
@ -516,7 +736,7 @@ Wed May 10 21:26:51 2000 Jim Wilson <wilson@cygnus.com>
|
|||
|
||||
* djunpack.bat: New file.
|
||||
|
||||
Wed Apr 19 12:46:26 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
2000-04-19 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* Makefile.in (taz, gdb-taz, gas.tar.bz2, binutils.tar.bz2,
|
||||
gas+binutils.tar.bz2, libg++.tar.bz2, gnats.tar.bz2, gdb.tar.bz2,
|
||||
|
@ -528,7 +748,7 @@ Wed Apr 19 12:46:26 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
* config.sub (case $basic_machine): Change default for "ibm-*"
|
||||
to "openedition".
|
||||
|
||||
Wed Apr 12 16:42:48 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
2000-04-12 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* Makefile.in (gdb-taz): New target. GDB specific archive.
|
||||
(do-md5sum): New target.
|
||||
|
@ -542,7 +762,7 @@ Wed Apr 12 16:42:48 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
(gdb.tar.bz2, dejagnu.tar.bz2, gdb+dejagnu.tar.bz2,
|
||||
insight.tar.bz2): Use gdb-taz to create archive.
|
||||
|
||||
Fri Apr 7 18:10:29 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
2000-04-07 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* configure (warn_cflags): Delete.
|
||||
|
||||
|
@ -563,7 +783,7 @@ Fri Apr 7 18:10:29 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
|
||||
* configure.in: -linux-gnu*, not -linux-gnu.
|
||||
|
||||
Fri Mar 3 18:44:08 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
2000-03-03 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* Makefile.in (taz): Set PACKAGE to TOOL when not defined.
|
||||
(do-tar-bz2): Replace TOOL with PACKAGE.
|
||||
|
@ -584,7 +804,7 @@ Fri Mar 3 18:44:08 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
|
||||
* config.sub: Support an OS of "wince".
|
||||
|
||||
Thu Feb 24 16:15:56 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
2000-02-24 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* config.guess, config.sub: Updated to match config's 2000-02-15
|
||||
version.
|
||||
|
@ -611,7 +831,7 @@ Thu Feb 24 16:15:56 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||
|
||||
* config.sub: Add support for avr target.
|
||||
|
||||
Tue Feb 1 00:07:46 2000 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
2000-02-01 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* config.sub: Add mmix-knuth-mmixware.
|
||||
|
||||
|
@ -790,11 +1010,11 @@ Thu Jul 8 12:32:23 1999 John David Anglin <dave@hiauly1.hia.nrc.ca>
|
|||
|
||||
* config.sub: Add mcore target.
|
||||
|
||||
Sun May 30 16:03:16 1999 Cort Dougan <cort@cs.nmt.edu>
|
||||
1999-05-30 Cort Dougan <cort@cs.nmt.edu>
|
||||
|
||||
* config.guess (ppc-*-linux-gnu): Also use ld emul elf32ppclinux.
|
||||
|
||||
Tue May 25 11:20:46 1999 H.J. Lu (hjl@gnu.org)
|
||||
1999-05-25 H.J. Lu (hjl@gnu.org)
|
||||
|
||||
* config.guess (dummy): Changed to $dummy.
|
||||
|
||||
|
@ -811,7 +1031,7 @@ Tue May 25 11:20:46 1999 H.J. Lu (hjl@gnu.org)
|
|||
more accurately recorded in this ChangeLog.
|
||||
* config.sub: Likewise.
|
||||
|
||||
Thu May 20 10:00:42 1999 Stephen L Moshier <moshier@world.std.com>
|
||||
1999-05-20 Stephen L Moshier <moshier@world.std.com>
|
||||
|
||||
* Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
|
||||
|
||||
|
@ -839,13 +1059,13 @@ Tue Apr 13 22:50:54 1999 Donn Terry (donn@interix.com)
|
|||
* configure.in (i?86-*-beos*): Do config gperf; don't config
|
||||
gdb, newlib, or libgloss.
|
||||
|
||||
Sun Apr 11 23:55:34 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
1999-04-11 Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
|
||||
* config-ml.in: On mips*-*-*, if multidirs contains mabi=64, try to
|
||||
link a trivial program with -mabi=64. If it fails, remove mabi=64
|
||||
from multidirs.
|
||||
|
||||
Sat Apr 10 21:50:01 1999 Philipp Thomas (kthomas@gwdg.de)
|
||||
1999-04-10 Philipp Thomas (kthomas@gwdg.de)
|
||||
|
||||
* config.sub: Set basic_machine to i586 when target_alias = k6-*.
|
||||
|
||||
|
@ -925,7 +1145,7 @@ Wed Mar 10 17:39:09 1999 Drew Moseley <dmoseley@cygnus.com>
|
|||
|
||||
* config.sub: Rename CYGNUS LOCAL to EGCS LOCAL
|
||||
|
||||
Sun Feb 28 02:20:00 1999 Geoffrey Noer <noer@cygnus.com>
|
||||
1999-02-28 Geoffrey Noer <noer@cygnus.com>
|
||||
|
||||
* config.sub: Check for "cygwin*" rather than "cygwin32*"
|
||||
|
||||
|
@ -933,14 +1153,14 @@ Sun Feb 28 02:20:00 1999 Geoffrey Noer <noer@cygnus.com>
|
|||
|
||||
* config.sub: Fix typo in arm recognition.
|
||||
|
||||
Wed Feb 24 13:51:40 1999 Drew Moseley <dmoseley@cygnus.com>
|
||||
1999-02-24 Drew Moseley <dmoseley@cygnus.com>
|
||||
|
||||
* configure.in (noconfigdirs): Changed target_configdirs to
|
||||
include target-bsp only for m68k-*-elf* and m68k-*-coff*
|
||||
rather than m68k-*-* since it is not known to work on
|
||||
m68k-aout. Ditto for arm-*-*oabi.
|
||||
|
||||
Wed Feb 24 12:52:17 1999 Stan Shebs <shebs@andros.cygnus.com>
|
||||
1999-02-24 Stan Shebs <shebs@andros.cygnus.com>
|
||||
|
||||
* configure.in (*-*-windows*): Remove, no longer used.
|
||||
* config/mh-windows: Ditto.
|
||||
|
@ -950,11 +1170,11 @@ Wed Feb 24 12:52:17 1999 Stan Shebs <shebs@andros.cygnus.com>
|
|||
* config.guess: Automatically recognise ELF on FreeBSD. From Niall
|
||||
Smart and improved by Andrew Cagney.
|
||||
|
||||
Thu Feb 18 19:55:09 1999 Marc Espie <espie@cvs.openbsd.org>
|
||||
1999-02-18 Marc Espie <espie@cvs.openbsd.org>
|
||||
|
||||
* config.guess: Recognize openbsd-*-hppa.
|
||||
|
||||
Wed Feb 17 01:38:59 1999 H.J. Lu (hjl@gnu.org)
|
||||
1999-02-17 H.J. Lu (hjl@gnu.org)
|
||||
|
||||
* Makefile.in (REALLY_SET_LIB_PATH): Append $$$(RPATH_ENVVAR)
|
||||
only if it is not empty.
|
||||
|
@ -971,7 +1191,7 @@ Wed Feb 17 01:38:59 1999 H.J. Lu (hjl@gnu.org)
|
|||
|
||||
* configure.in: Added target-bsp for sparclite.
|
||||
|
||||
Mon Feb 8 14:17:24 1999 Richard Henderson <rth@cygnus.com>
|
||||
1999-02-08 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* config.sub: Recognize alphapca5[67] and up to alphaev8.
|
||||
|
||||
|
@ -980,51 +1200,51 @@ Mon Feb 8 14:17:24 1999 Richard Henderson <rth@cygnus.com>
|
|||
* configure.in: Add support for strongarm port.
|
||||
* config.sub: Add support for strongarm target.
|
||||
|
||||
Sun Feb 7 18:01:54 1999 Mumit Khan <khan@xraylith.wisc.edu>
|
||||
1999-02-07 Mumit Khan <khan@xraylith.wisc.edu>
|
||||
|
||||
* configure.in (*-*-cygwin32*): Use config/mh-cygwin instead of
|
||||
the old name config/mh-cygwin32.
|
||||
Enable texinfo.
|
||||
|
||||
Thu Feb 4 20:43:25 1999 Ian Lance Taylor <ian@cygnus.com>
|
||||
1999-02-04 Ian Lance Taylor <ian@cygnus.com>
|
||||
|
||||
* configure.in: Do build ld for ix86 Solaris.
|
||||
|
||||
Tue Feb 2 19:46:40 1999 Jim Wilson <wilson@cygnus.com>
|
||||
1999-02-02 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* Makefile.in (EXTRA_GCC_FLAGS): Set AR to $AR instead of
|
||||
$AR_FOR_TARGET. Likewise for RANLIB.
|
||||
|
||||
Tue Feb 2 20:05:05 1999 Catherine Moore <clm@cygnus.com>
|
||||
1999-02-02 Catherine Moore <clm@cygnus.com>
|
||||
|
||||
* config.sub (oabi): Recognize.
|
||||
* configure.in (arm-*-oabi): Handle.
|
||||
|
||||
Sat Jan 30 06:09:00 1999 Robert Lipe (robertlipe@usa.net)
|
||||
1999-01-30 Robert Lipe (robertlipe@usa.net)
|
||||
|
||||
* config.guess: Improve detection of i686 on UnixWare 7.
|
||||
|
||||
Sat Jan 30 08:04:00 1999 Mumit Khan <khan@xraylith.wisc.edu>
|
||||
1999-01-30 Mumit Khan <khan@xraylith.wisc.edu>
|
||||
|
||||
* config.guess: Add support for i386-pc-interix.
|
||||
* config.sub: Likewise.
|
||||
* configure.in: Likewise.
|
||||
* config/mh-interix: New file.
|
||||
|
||||
Mon Jan 18 13:59:20 1999 Christopher Faylor <cgf@cygnus.com>
|
||||
1999-01-18 Christopher Faylor <cgf@cygnus.com>
|
||||
|
||||
* Makefile.in: Remove unneeded all-target-libio from
|
||||
from all-target-winsup target since it is now unneeded.
|
||||
Add all-target-libtermcap in its place since it is now
|
||||
needed.
|
||||
|
||||
Wed Dec 30 20:34:52 1998 Christopher Faylor <cgf@cygnus.com>
|
||||
1998-12-30 Christopher Faylor <cgf@cygnus.com>
|
||||
|
||||
* configure.in: makefile stub for cygwin target is probably
|
||||
unnecessary. Remove it for now.
|
||||
* config/mt-cygwin: Remove.
|
||||
|
||||
Wed Dec 30 01:13:03 1998 Christopher Faylor <cgf@cygnus.com>
|
||||
1998-12-30 Christopher Faylor <cgf@cygnus.com>
|
||||
|
||||
* configure.in: libtermcap.a should be built when cygwin is the
|
||||
target as well as the host.
|
||||
|
@ -1032,11 +1252,11 @@ Wed Dec 30 01:13:03 1998 Christopher Faylor <cgf@cygnus.com>
|
|||
* Makefile.in: Add libtermcap target.
|
||||
* config/mt-cygwin: New file. libtermcap target info.
|
||||
|
||||
Wed Dec 23 00:20:50 1998 Jeffrey A Law (law@cygnus.com)
|
||||
1998-12-23 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* config.sub: Clean up handling of hppa2.0.
|
||||
|
||||
Tue Dec 22 23:56:31 1998 Rodney Brown (rodneybrown@pmsc.com)
|
||||
1998-12-22 Rodney Brown (rodneybrown@pmsc.com)
|
||||
|
||||
* config.guess: Use C code to identify more HP machines.
|
||||
|
||||
|
@ -1084,7 +1304,7 @@ Wed Nov 18 20:13:29 1998 Christopher Faylor <cgf@cygnus.com>
|
|||
|
||||
* configure.in: Add libtermcap to list of cygwin dependencies.
|
||||
|
||||
Tue Nov 17 16:57:51 1998 Geoffrey Noer <noer@cygnus.com>
|
||||
1998-11-17 Geoffrey Noer <noer@cygnus.com>
|
||||
|
||||
* Makefile.in: modify CC_FOR_TARGET and CXX_FOR_TARGET so that
|
||||
they include winsup/include when it's a cygwin target.
|
||||
|
@ -1099,25 +1319,25 @@ Tue Nov 17 16:57:51 1998 Geoffrey Noer <noer@cygnus.com>
|
|||
(INSTALL_MODULES): Added install-zip.
|
||||
(CLEAN_MODULES): Added clean-zip.
|
||||
|
||||
Thu Nov 12 17:27:21 1998 Geoffrey Noer <noer@cygnus.com>
|
||||
1998-11-12 Geoffrey Noer <noer@cygnus.com>
|
||||
|
||||
* Makefile.in: lose "32" from comment about cygwin.
|
||||
|
||||
Thu Nov 5 15:00:31 1998 Nick Clifton <nickc@cygnus.com>
|
||||
1998-11-05 Nick Clifton <nickc@cygnus.com>
|
||||
|
||||
* configure.in: Use -Os to build target libraries for the fr30.
|
||||
|
||||
Wed Nov 4 18:49:43 1998 Dave Brolley <brolley@cygnus.com>
|
||||
1998-11-04 Dave Brolley <brolley@cygnus.com>
|
||||
|
||||
* config.sub: Add fr30.
|
||||
|
||||
Mon Nov 2 15:19:33 1998 Geoffrey Noer <noer@cygnus.com>
|
||||
1998-11-02 Geoffrey Noer <noer@cygnus.com>
|
||||
|
||||
* configure.in: drop "32" from config/mh-cygwin32. Check
|
||||
cygwin* instead of cygwin32*.
|
||||
* config.sub: Check cygwin* instead of cygwin32*.
|
||||
|
||||
Thu Oct 22 10:55:25 1998 Robert Lipe <robertl@dgii.com>
|
||||
1998-10-22 Robert Lipe <robertl@dgii.com>
|
||||
|
||||
* config.guess: Match any version of Unixware7.
|
||||
|
||||
|
@ -1126,16 +1346,16 @@ Thu Oct 22 10:55:25 1998 Robert Lipe <robertl@dgii.com>
|
|||
* Makefile.in configure.in: Add the ability to use tcl8.1 and tk8.1
|
||||
if desired.
|
||||
|
||||
Sun Oct 18 18:34:50 1998 Jeffrey A Law (law@cygnus.com)
|
||||
1998-10-18 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* config.if (cxx_interface, libstdcxx_interface): Do not try to set
|
||||
these if the appropriate directories and files to not exist.
|
||||
|
||||
Wed Oct 14 10:29:06 1998 Jeffrey A Law (law@cygnus.com)
|
||||
1998-10-14 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* Makefile.in (DEVO_SUPPORT): Add config.if.
|
||||
|
||||
Tue Oct 13 15:45:36 1998 Manfred Hollstein <manfred@s-direktnet.de>
|
||||
1998-10-13 Manfred Hollstein <manfred@s-direktnet.de>
|
||||
|
||||
* configure: Add pattern to replace "build_tooldir"'s
|
||||
definition in the generated Makefile with "tooldir"'s
|
||||
|
@ -7433,7 +7653,7 @@ Fri Dec 13 01:17:06 1991 K. Richard Pixley (rich at cygnus.com)
|
|||
|
||||
* config.subr: resync from rms.
|
||||
|
||||
Wed Dec 11 22:25:20 1991 K. Richard Pixley (rich at rtl.cygnus.com)
|
||||
1991-12-11 K. Richard Pixley (rich at rtl.cygnus.com)
|
||||
|
||||
* configure, config.sub, config.subr: merge config.sub into
|
||||
config.subr, call the result config.subr, remove config.sub, use
|
||||
|
@ -7441,7 +7661,7 @@ Wed Dec 11 22:25:20 1991 K. Richard Pixley (rich at rtl.cygnus.com)
|
|||
|
||||
* Makefile.in: revised install for dir.info.
|
||||
|
||||
Tue Dec 10 00:04:35 1991 K. Richard Pixley (rich at rtl.cygnus.com)
|
||||
1991-12-10 K. Richard Pixley (rich at rtl.cygnus.com)
|
||||
|
||||
* configure.in: add decstation host makefile frag.
|
||||
|
||||
|
@ -7450,11 +7670,11 @@ Tue Dec 10 00:04:35 1991 K. Richard Pixley (rich at rtl.cygnus.com)
|
|||
Make directories for info install. Build dir.info here then
|
||||
install it.
|
||||
|
||||
Mon Dec 9 16:48:33 1991 K. Richard Pixley (rich at rtl.cygnus.com)
|
||||
1991-12-09 K. Richard Pixley (rich at rtl.cygnus.com)
|
||||
|
||||
* Makefile.in: fix for bad directory tests.
|
||||
|
||||
Sat Dec 7 00:17:01 1991 K. Richard Pixley (rich at rtl.cygnus.com)
|
||||
1991-12-07 K. Richard Pixley (rich at rtl.cygnus.com)
|
||||
|
||||
* configure: \{1,2\} appears to be a sysv'ism. Use a different
|
||||
regexp. -srcdir relative was being handled incorrectly.
|
||||
|
@ -7463,13 +7683,13 @@ Sat Dec 7 00:17:01 1991 K. Richard Pixley (rich at rtl.cygnus.com)
|
|||
work again and so one can focus one's attention on a particular
|
||||
package.
|
||||
|
||||
Fri Dec 6 00:22:08 1991 K. Richard Pixley (rich at rtl.cygnus.com)
|
||||
1991-12-06 K. Richard Pixley (rich at rtl.cygnus.com)
|
||||
|
||||
* configure: added PWD as a stand in for `pwd` (for speed). use
|
||||
elif wherever possible. make -srcdir work without -objdir.
|
||||
-objdir= commented out.
|
||||
|
||||
Thu Dec 5 22:46:52 1991 K. Richard Pixley (rich at rtl.cygnus.com)
|
||||
1991-12-05 K. Richard Pixley (rich at rtl.cygnus.com)
|
||||
|
||||
* configure: +options become --options. -subdirs commented out.
|
||||
added -host, -datadir. Renamed -destdir to -prefix. Comment in
|
||||
|
@ -7481,7 +7701,7 @@ Thu Dec 5 22:46:52 1991 K. Richard Pixley (rich at rtl.cygnus.com)
|
|||
and shift gpl to v2. Added ChangeLog if it didn't exist. docdir
|
||||
and mandir now keyed off datadir by default.
|
||||
|
||||
Fri Nov 22 07:38:11 1991 K. Richard Pixley (rich at rtl.cygnus.com)
|
||||
1991-11-22 K. Richard Pixley (rich at rtl.cygnus.com)
|
||||
|
||||
* Freshly created ChangeLog.
|
||||
|
||||
|
|
13
MAINTAINERS
13
MAINTAINERS
|
@ -23,11 +23,14 @@ cgen/; cgen parts of opcodes/, sim/ & include/
|
|||
|
||||
config.guess; config.sub; dejagnu/config.guess;
|
||||
readline/support/config.sub; readline/support/config.guess
|
||||
config: http://gnu.org
|
||||
config: http://savannah.gnu.org/projects/config
|
||||
Patches to config-patches@gnu.org.
|
||||
Changes need to be done in tandem with the official CONFIG
|
||||
sources or submitted to the master file maintainer and brought
|
||||
in via a merge.
|
||||
Please notify the following of any committed patches:
|
||||
binutils@sources.redhat.com
|
||||
gdb-patches@sources.redhat.com
|
||||
|
||||
dejagnu/
|
||||
Notify http://dejagnu.sourceforge.net/ of generic changes.
|
||||
|
@ -58,13 +61,17 @@ ltconfig; ltmain.sh
|
|||
sources or submitted to the master file maintainer and brought
|
||||
in via a merge.
|
||||
|
||||
mkinstalldirs; move-if-change; symlink-tree
|
||||
mkinstalldirs; move-if-change
|
||||
autoconf: http://gnu.org
|
||||
Patches to autoconf-patches@gnu.org.
|
||||
Changes need to be done in tandem with the official AUTOCONF
|
||||
sources or submitted to the master file maintainer and brought
|
||||
in via a merge.
|
||||
|
||||
symlink-tree
|
||||
gcc: http://gcc.gnu.org
|
||||
See libiberty.
|
||||
|
||||
newlib/; libgloss/
|
||||
http://sources.redhat.com/newlib/
|
||||
Patches to newlib@sources.redhat.com.
|
||||
|
@ -93,7 +100,7 @@ expect/; config-ml.in; mpw-README; mpw-build.in; mpw-config.in;
|
|||
mpw-configure; mpw-install; setup.com; missing; makefile.vms; utils/;
|
||||
config/; config.if; makefile.vms; missing; ylwrap; mkdep; etc/;
|
||||
install-sh; intl/
|
||||
Ask.
|
||||
Ask DJ Delorie <dj@redhat.com> after reading the libiberty entry.
|
||||
|
||||
modules file
|
||||
Obviously changes to this file should not go through
|
||||
|
|
179
Makefile.in
179
Makefile.in
|
@ -141,9 +141,13 @@ M4 = `if [ -f $$r/m4/m4 ] ; \
|
|||
then echo $$r/m4/m4 ; \
|
||||
else echo ${DEFAULT_M4} ; fi`
|
||||
|
||||
# For an installed makeinfo, we require it to be from texinfo 4 or
|
||||
# higher, else we use the "missing" dummy.
|
||||
MAKEINFO = `if [ -f $$r/texinfo/makeinfo/Makefile ] ; \
|
||||
then echo $$r/texinfo/makeinfo/makeinfo ; \
|
||||
else echo makeinfo ; fi`
|
||||
else if (makeinfo --version \
|
||||
| egrep 'texinfo[^0-9]*([1-3][0-9]|[4-9])') >/dev/null 2>&1; \
|
||||
then echo makeinfo; else echo $$s/missing makeinfo; fi; fi`
|
||||
|
||||
# This just becomes part of the MAKEINFO definition passed down to
|
||||
# sub-makes. It lets flags be given on the command line while still
|
||||
|
@ -175,8 +179,16 @@ TARGET_CONFIGDIRS = libiberty libgloss $(SPECIAL_LIBS) newlib libio librx libstd
|
|||
# Changed by configure to $(target_alias) if cross.
|
||||
TARGET_SUBDIR = .
|
||||
|
||||
# This is set by the configure script to the arguments passed to configure.
|
||||
CONFIG_ARGUMENTS =
|
||||
BUILD_CONFIGDIRS = libiberty
|
||||
BUILD_SUBDIR = .
|
||||
|
||||
# This is set by the configure script to the arguments to use when configuring
|
||||
# directories built for the target.
|
||||
TARGET_CONFIGARGS =
|
||||
|
||||
# This is set by the configure script to the arguments to use when configuring
|
||||
# directories built for the build system.
|
||||
BUILD_CONFIGARGS =
|
||||
|
||||
# This is set by configure to REALLY_SET_LIB_PATH if --enable-shared
|
||||
# was used.
|
||||
|
@ -234,7 +246,7 @@ AS_FOR_TARGET = ` \
|
|||
elif [ -f $$r/gcc/xgcc ]; then \
|
||||
$(CC_FOR_TARGET) -print-prog-name=as ; \
|
||||
else \
|
||||
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
|
||||
if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
|
||||
echo $(AS); \
|
||||
else \
|
||||
t='$(program_transform_name)'; echo as | sed -e 's/x/x/' $$t ; \
|
||||
|
@ -247,7 +259,7 @@ LD_FOR_TARGET = ` \
|
|||
elif [ -f $$r/gcc/xgcc ]; then \
|
||||
$(CC_FOR_TARGET) -print-prog-name=ld ; \
|
||||
else \
|
||||
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
|
||||
if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
|
||||
echo $(LD); \
|
||||
else \
|
||||
t='$(program_transform_name)'; echo ld | sed -e 's/x/x/' $$t ; \
|
||||
|
@ -258,7 +270,7 @@ DLLTOOL_FOR_TARGET = ` \
|
|||
if [ -f $$r/binutils/dlltool ] ; then \
|
||||
echo $$r/binutils/dlltool ; \
|
||||
else \
|
||||
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
|
||||
if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
|
||||
echo $(DLLTOOL); \
|
||||
else \
|
||||
t='$(program_transform_name)'; echo dlltool | sed -e 's/x/x/' $$t ; \
|
||||
|
@ -269,7 +281,7 @@ WINDRES_FOR_TARGET = ` \
|
|||
if [ -f $$r/binutils/windres ] ; then \
|
||||
echo $$r/binutils/windres ; \
|
||||
else \
|
||||
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
|
||||
if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
|
||||
echo $(WINDRES); \
|
||||
else \
|
||||
t='$(program_transform_name)'; echo windres | sed -e 's/x/x/' $$t ; \
|
||||
|
@ -280,7 +292,7 @@ AR_FOR_TARGET = ` \
|
|||
if [ -f $$r/binutils/ar ] ; then \
|
||||
echo $$r/binutils/ar ; \
|
||||
else \
|
||||
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
|
||||
if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
|
||||
echo $(AR); \
|
||||
else \
|
||||
t='$(program_transform_name)'; echo ar | sed -e 's/x/x/' $$t ; \
|
||||
|
@ -291,8 +303,12 @@ RANLIB_FOR_TARGET = ` \
|
|||
if [ -f $$r/binutils/ranlib ] ; then \
|
||||
echo $$r/binutils/ranlib ; \
|
||||
else \
|
||||
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
|
||||
echo $(RANLIB); \
|
||||
if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
|
||||
if [ x'$(RANLIB)' != x ]; then \
|
||||
echo $(RANLIB); \
|
||||
else \
|
||||
echo ranlib; \
|
||||
fi; \
|
||||
else \
|
||||
t='$(program_transform_name)'; echo ranlib | sed -e 's/x/x/' $$t ; \
|
||||
fi; \
|
||||
|
@ -304,7 +320,7 @@ NM_FOR_TARGET = ` \
|
|||
elif [ -f $$r/gcc/xgcc ]; then \
|
||||
$(CC_FOR_TARGET) -print-prog-name=nm ; \
|
||||
else \
|
||||
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
|
||||
if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
|
||||
echo $(NM); \
|
||||
else \
|
||||
t='$(program_transform_name)'; echo nm | sed -e 's/x/x/' $$t ; \
|
||||
|
@ -480,6 +496,18 @@ EXTRA_GCC_FLAGS = \
|
|||
|
||||
GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS)
|
||||
|
||||
# This is a list of the targets for all of the modules which are compiled
|
||||
# using the build machine's native compiler. Configure edits the second
|
||||
# macro for build!=host builds.
|
||||
ALL_BUILD_MODULES_LIST = \
|
||||
all-build-libiberty
|
||||
ALL_BUILD_MODULES =
|
||||
|
||||
# This is a list of the configure targets for all of the modules which
|
||||
# are compiled using the native tools.
|
||||
CONFIGURE_BUILD_MODULES = \
|
||||
configure-build-libiberty
|
||||
|
||||
# This is a list of the targets for all of the modules which are compiled
|
||||
# using $(FLAGS_TO_PASS).
|
||||
ALL_MODULES = \
|
||||
|
@ -946,6 +974,7 @@ CLEAN_X11_MODULES = \
|
|||
# The target built for a native build.
|
||||
.PHONY: all.normal
|
||||
all.normal: \
|
||||
$(ALL_BUILD_MODULES) \
|
||||
$(ALL_MODULES) \
|
||||
$(ALL_X11_MODULES) \
|
||||
$(ALL_TARGET_MODULES) \
|
||||
|
@ -979,16 +1008,15 @@ $(DO_X):
|
|||
case $$i in \
|
||||
gcc) \
|
||||
for flag in $(EXTRA_GCC_FLAGS); do \
|
||||
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'|"`; \
|
||||
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||||
done; \
|
||||
;; \
|
||||
*) \
|
||||
for flag in $(EXTRA_HOST_FLAGS); do \
|
||||
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'|"`; \
|
||||
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||||
done; \
|
||||
;; \
|
||||
esac ; \
|
||||
export AR AS CC CXX LD NM RANLIB DLLTOOL WINDRES; \
|
||||
if (cd ./$$i; \
|
||||
$(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
|
||||
"CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
|
||||
|
@ -1005,9 +1033,8 @@ $(DO_X):
|
|||
for i in $(TARGET_CONFIGDIRS) -dummy-; do \
|
||||
if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
|
||||
for flag in $(EXTRA_TARGET_FLAGS); do \
|
||||
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'|"`; \
|
||||
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
|
||||
done; \
|
||||
export AR AS CC CXX LD NM RANLIB DLLTOOL WINDRES; \
|
||||
if (cd $(TARGET_SUBDIR)/$$i; \
|
||||
$(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
|
||||
"CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
|
||||
|
@ -1189,6 +1216,106 @@ gcc-no-fixedincludes:
|
|||
mv gcc/tmp-include gcc/include 2>/dev/null; \
|
||||
else true; fi
|
||||
|
||||
# This rule is used to build the modules which are built with the
|
||||
# build machine's native compiler.
|
||||
.PHONY: $(ALL_BUILD_MODULES)
|
||||
$(ALL_BUILD_MODULES):
|
||||
dir=`echo $@ | sed -e 's/all-build-//'`; \
|
||||
if [ -f ./$${dir}/Makefile ] ; then \
|
||||
r=`pwd`; export r; \
|
||||
s=`cd $(srcdir); pwd`; export s; \
|
||||
(cd $(BUILD_SUBDIR)/$${dir} && $(MAKE) all); \
|
||||
else \
|
||||
true; \
|
||||
fi
|
||||
|
||||
# This rule is used to configure the modules which are built with the
|
||||
# native tools.
|
||||
.PHONY: $(CONFIGURE_BUILD_MODULES)
|
||||
$(CONFIGURE_BUILD_MODULES):
|
||||
@dir=`echo $@ | sed -e 's/configure-build-//'`; \
|
||||
if [ ! -d $(BUILD_SUBDIR) ]; then \
|
||||
true; \
|
||||
elif [ -f $(BUILD_SUBDIR)/$${dir}/Makefile ] ; then \
|
||||
true; \
|
||||
elif echo " $(BUILD_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \
|
||||
if [ -d $(srcdir)/$${dir} ]; then \
|
||||
[ -d $(BUILD_SUBDIR)/$${dir} ] || mkdir $(BUILD_SUBDIR)/$${dir};\
|
||||
r=`pwd`; export r; \
|
||||
s=`cd $(srcdir); pwd`; export s; \
|
||||
AR="$(AR_FOR_BUILD)"; export AR; \
|
||||
AS="$(AS_FOR_BUILD)"; export AS; \
|
||||
CC="$(CC_FOR_BUILD)"; export CC; \
|
||||
CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
|
||||
CXX="$(CXX_FOR_BUILD)"; export CXX; \
|
||||
CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
|
||||
GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \
|
||||
DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \
|
||||
LD="$(LD_FOR_BUILD)"; export LD; \
|
||||
LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \
|
||||
NM="$(NM_FOR_BUILD)"; export NM; \
|
||||
RANLIB="$(RANLIB_FOR_BUILD)"; export RANLIB; \
|
||||
WINDRES="$(WINDRES_FOR_BUILD)"; export WINDRES; \
|
||||
echo Configuring in $(BUILD_SUBDIR)/$${dir}; \
|
||||
cd "$(BUILD_SUBDIR)/$${dir}" || exit 1; \
|
||||
case $(srcdir) in \
|
||||
/* | [A-Za-z]:[\\/]*) \
|
||||
topdir=$(srcdir) ;; \
|
||||
*) \
|
||||
case "$(BUILD_SUBDIR)" in \
|
||||
.) topdir="../$(srcdir)" ;; \
|
||||
*) topdir="../../$(srcdir)" ;; \
|
||||
esac ;; \
|
||||
esac; \
|
||||
if [ "$(srcdir)" = "." ] ; then \
|
||||
if [ "$(BUILD_SUBDIR)" != "." ] ; then \
|
||||
if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \
|
||||
if [ -f Makefile ]; then \
|
||||
if $(MAKE) distclean; then \
|
||||
true; \
|
||||
else \
|
||||
exit 1; \
|
||||
fi; \
|
||||
else \
|
||||
true; \
|
||||
fi; \
|
||||
else \
|
||||
exit 1; \
|
||||
fi; \
|
||||
else \
|
||||
true; \
|
||||
fi; \
|
||||
srcdiroption="--srcdir=."; \
|
||||
libsrcdir="."; \
|
||||
else \
|
||||
srcdiroption="--srcdir=$${topdir}/$${dir}"; \
|
||||
libsrcdir="$$s/$${dir}"; \
|
||||
fi; \
|
||||
if [ -f $${libsrcdir}/configure ] ; then \
|
||||
rm -f no-such-file skip-this-dir; \
|
||||
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
|
||||
$(BUILD_CONFIGARGS) $${srcdiroption} \
|
||||
--with-build-subdir="$(BUILD_SUBDIR)"; \
|
||||
else \
|
||||
rm -f no-such-file skip-this-dir; \
|
||||
CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
|
||||
$(BUILD_CONFIGARGS) $${srcdiroption} \
|
||||
--with-build-subdir="$(BUILD_SUBDIR)"; \
|
||||
fi || exit 1; \
|
||||
if [ -f skip-this-dir ] ; then \
|
||||
sh skip-this-dir; \
|
||||
rm -f skip-this-dir; \
|
||||
cd ..; rmdir $${dir} || true; \
|
||||
else \
|
||||
true; \
|
||||
fi; \
|
||||
else \
|
||||
true; \
|
||||
fi; \
|
||||
else \
|
||||
true; \
|
||||
fi
|
||||
|
||||
# This rule is used to build the modules which use FLAGS_TO_PASS. To
|
||||
# build a target all-X means to cd to X and make all.
|
||||
#
|
||||
|
@ -1213,7 +1340,7 @@ $(ALL_MODULES) all-gui all-libproc:
|
|||
|
||||
.PHONY: $(CHECK_MODULES) $(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES)
|
||||
$(NATIVE_CHECK_MODULES):
|
||||
@if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
|
||||
@if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
|
||||
dir=`echo $@ | sed -e 's/check-//'`; \
|
||||
if [ -f ./$${dir}/Makefile ] ; then \
|
||||
r=`pwd`; export r; \
|
||||
|
@ -1333,12 +1460,12 @@ $(CONFIGURE_TARGET_MODULES):
|
|||
if [ -f $${libsrcdir}/configure ] ; then \
|
||||
rm -f no-such-file skip-this-dir; \
|
||||
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
|
||||
$(CONFIG_ARGUMENTS) $${srcdiroption} \
|
||||
$(TARGET_CONFIGARGS) $${srcdiroption} \
|
||||
--with-target-subdir="$(TARGET_SUBDIR)"; \
|
||||
else \
|
||||
rm -f no-such-file skip-this-dir; \
|
||||
CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
|
||||
$(CONFIG_ARGUMENTS) $${srcdiroption} \
|
||||
$(TARGET_CONFIGARGS) $${srcdiroption} \
|
||||
--with-target-subdir="$(TARGET_SUBDIR)"; \
|
||||
fi; \
|
||||
if [ -f skip-this-dir ] ; then \
|
||||
|
@ -1605,8 +1732,8 @@ GDB_TK = all-tk all-tcl all-itcl all-tix all-libgui
|
|||
all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-bison all-byacc all-sim $(gdbnlmrequirements) $(GDB_TK)
|
||||
all-gettext:
|
||||
all-gnuserv:
|
||||
configure-target-gperf: $(ALL_GCC_C)
|
||||
all-target-gperf: configure-target-gperf all-target-libiberty all-target-libstdc++
|
||||
configure-target-gperf: $(ALL_GCC_CXX)
|
||||
all-target-gperf: configure-target-gperf all-target-libiberty all-target-libstdc++-v3
|
||||
all-gprof: all-libiberty all-bfd all-opcodes all-intl
|
||||
all-grep: all-libiberty
|
||||
all-grez: all-libiberty all-bfd all-opcodes
|
||||
|
@ -1629,6 +1756,9 @@ all-target-libio: configure-target-libio all-gas all-ld all-gcc all-target-libib
|
|||
check-target-libio: all-target-libstdc++
|
||||
all-libgui: all-tcl all-tk all-tcl8.1 all-tk8.1 all-itcl
|
||||
all-libiberty:
|
||||
|
||||
all-build-libiberty: configure-build-libiberty
|
||||
|
||||
configure-target-libffi: $(ALL_GCC_C)
|
||||
all-target-libffi: configure-target-libffi
|
||||
configure-target-libjava: $(ALL_GCC_CXX) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-libffi
|
||||
|
@ -1669,7 +1799,7 @@ all-send-pr: all-prms
|
|||
all-shellutils:
|
||||
all-sid: all-tcl all-tk
|
||||
all-sim: all-libiberty all-bfd all-opcodes all-readline all-cgen
|
||||
all-snavigator: all-tcl all-tk all-itcl all-db all-grep all-libgui
|
||||
all-snavigator: all-tcl all-tk all-itcl all-tix all-db all-grep all-libgui
|
||||
all-tar: all-libiberty
|
||||
all-tcl:
|
||||
all-tcl8.1:
|
||||
|
@ -1858,6 +1988,11 @@ do-proto-toplev: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
|
|||
else true; fi
|
||||
chmod -R og=u . || chmod og=u `find . -print`
|
||||
#
|
||||
# Create .gmo files from .po files.
|
||||
for f in `find . -name '*.po' -type f -print`; do \
|
||||
msgfmt -o `echo $$f | sed -e 's/\.po$$/.gmo/'` $$f ; \
|
||||
done
|
||||
#
|
||||
-rm -f $(PACKAGE)-$(VER)
|
||||
ln -s proto-toplev $(PACKAGE)-$(VER)
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
#! /bin/sh
|
||||
# Attempt to guess a canonical system name.
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
||||
# Free Software Foundation, Inc.
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
# 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2001-03-16'
|
||||
timestamp='2002-01-30'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
|
@ -24,8 +24,9 @@ timestamp='2001-03-16'
|
|||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Written by Per Bothner <bothner@cygnus.com>.
|
||||
# Please send patches to <config-patches@gnu.org>.
|
||||
# Originally written by Per Bothner <per@bothner.com>.
|
||||
# Please send patches to <config-patches@gnu.org>. Submit a context
|
||||
# diff and a properly formatted ChangeLog entry.
|
||||
#
|
||||
# This script attempts to guess a canonical system name similar to
|
||||
# config.sub. If it succeeds, it prints the system name on stdout, and
|
||||
|
@ -52,7 +53,7 @@ version="\
|
|||
GNU config.guess ($timestamp)
|
||||
|
||||
Originally written by Per Bothner.
|
||||
Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
|
@ -95,25 +96,25 @@ trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
|
|||
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
|
||||
# use `HOST_CC' if defined, but it is deprecated.
|
||||
|
||||
case $CC_FOR_BUILD,$HOST_CC,$CC in
|
||||
,,) echo "int dummy(){}" > $dummy.c
|
||||
set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
|
||||
,,) echo "int dummy(){}" > $dummy.c ;
|
||||
for c in cc gcc c89 ; do
|
||||
($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1
|
||||
($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
|
||||
if test $? = 0 ; then
|
||||
CC_FOR_BUILD="$c"; break
|
||||
fi
|
||||
done
|
||||
rm -f $dummy.c $dummy.o $dummy.rel
|
||||
CC_FOR_BUILD="$c"; break ;
|
||||
fi ;
|
||||
done ;
|
||||
rm -f $dummy.c $dummy.o $dummy.rel ;
|
||||
if test x"$CC_FOR_BUILD" = x ; then
|
||||
CC_FOR_BUILD=no_compiler_found
|
||||
CC_FOR_BUILD=no_compiler_found ;
|
||||
fi
|
||||
;;
|
||||
,,*) CC_FOR_BUILD=$CC ;;
|
||||
,*,*) CC_FOR_BUILD=$HOST_CC ;;
|
||||
esac
|
||||
esac'
|
||||
|
||||
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
|
||||
# (ghazi@noc.rutgers.edu 8/24/94.)
|
||||
# (ghazi@noc.rutgers.edu 1994-08-24)
|
||||
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
|
||||
PATH=$PATH:/.attbin ; export PATH
|
||||
fi
|
||||
|
@ -127,29 +128,29 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
|
|||
|
||||
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
*:NetBSD:*:*)
|
||||
# Netbsd (nbsd) targets should (where applicable) match one or
|
||||
# NetBSD (nbsd) targets should (where applicable) match one or
|
||||
# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
|
||||
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
|
||||
# switched to ELF, *-*-netbsd* would select the old
|
||||
# object file format. This provides both forward
|
||||
# compatibility and a consistent mechanism for selecting the
|
||||
# object file format.
|
||||
# Determine the machine/vendor (is the vendor relevant).
|
||||
case "${UNAME_MACHINE}" in
|
||||
amiga) machine=m68k-unknown ;;
|
||||
arm32) machine=arm-unknown ;;
|
||||
atari*) machine=m68k-atari ;;
|
||||
sun3*) machine=m68k-sun ;;
|
||||
mac68k) machine=m68k-apple ;;
|
||||
macppc) machine=powerpc-apple ;;
|
||||
hp3[0-9][05]) machine=m68k-hp ;;
|
||||
ibmrt|romp-ibm) machine=romp-ibm ;;
|
||||
*) machine=${UNAME_MACHINE}-unknown ;;
|
||||
#
|
||||
# Note: NetBSD doesn't particularly care about the vendor
|
||||
# portion of the name. We always set it to "unknown".
|
||||
UNAME_MACHINE_ARCH=`(uname -p) 2>/dev/null` || \
|
||||
UNAME_MACHINE_ARCH=unknown
|
||||
case "${UNAME_MACHINE_ARCH}" in
|
||||
arm*) machine=arm-unknown ;;
|
||||
sh3el) machine=shl-unknown ;;
|
||||
sh3eb) machine=sh-unknown ;;
|
||||
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
|
||||
esac
|
||||
# The Operating System including object format, if it has switched
|
||||
# to ELF recently, or will in the future.
|
||||
case "${UNAME_MACHINE}" in
|
||||
i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
|
||||
case "${UNAME_MACHINE_ARCH}" in
|
||||
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
|
||||
eval $set_cc_for_build
|
||||
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||
| grep __ELF__ >/dev/null
|
||||
then
|
||||
|
@ -171,6 +172,45 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
|
||||
echo "${machine}-${os}${release}"
|
||||
exit 0 ;;
|
||||
amiga:OpenBSD:*:*)
|
||||
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
arc:OpenBSD:*:*)
|
||||
echo mipsel-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
hp300:OpenBSD:*:*)
|
||||
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
mac68k:OpenBSD:*:*)
|
||||
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
macppc:OpenBSD:*:*)
|
||||
echo powerpc-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
mvme68k:OpenBSD:*:*)
|
||||
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
mvme88k:OpenBSD:*:*)
|
||||
echo m88k-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
mvmeppc:OpenBSD:*:*)
|
||||
echo powerpc-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
pmax:OpenBSD:*:*)
|
||||
echo mipsel-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
sgi:OpenBSD:*:*)
|
||||
echo mipseb-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
sun3:OpenBSD:*:*)
|
||||
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
wgrisc:OpenBSD:*:*)
|
||||
echo mipsel-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
*:OpenBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
alpha:OSF1:*:*)
|
||||
if test $UNAME_RELEASE = "V4.0"; then
|
||||
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
|
||||
|
@ -204,6 +244,7 @@ main:
|
|||
jsr \$26,exit
|
||||
.end main
|
||||
EOF
|
||||
eval $set_cc_for_build
|
||||
$CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
|
||||
if test "$?" = 0 ; then
|
||||
case `./$dummy` in
|
||||
|
@ -225,6 +266,9 @@ EOF
|
|||
2-307)
|
||||
UNAME_MACHINE="alphaev67"
|
||||
;;
|
||||
2-1307)
|
||||
UNAME_MACHINE="alphaev68"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
rm -f $dummy.s $dummy
|
||||
|
@ -242,29 +286,11 @@ EOF
|
|||
Amiga*:UNIX_System_V:4.0:*)
|
||||
echo m68k-unknown-sysv4
|
||||
exit 0;;
|
||||
amiga:OpenBSD:*:*)
|
||||
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
*:[Aa]miga[Oo][Ss]:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-amigaos
|
||||
exit 0 ;;
|
||||
arc64:OpenBSD:*:*)
|
||||
echo mips64el-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
arc:OpenBSD:*:*)
|
||||
echo mipsel-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
hkmips:OpenBSD:*:*)
|
||||
echo mips-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
pmax:OpenBSD:*:*)
|
||||
echo mipsel-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
sgi:OpenBSD:*:*)
|
||||
echo mips-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
wgrisc:OpenBSD:*:*)
|
||||
echo mipsel-unknown-openbsd${UNAME_RELEASE}
|
||||
*:[Mm]orph[Oo][Ss]:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-morphos
|
||||
exit 0 ;;
|
||||
*:OS/390:*:*)
|
||||
echo i370-ibm-openedition
|
||||
|
@ -328,9 +354,6 @@ EOF
|
|||
aushp:SunOS:*:*)
|
||||
echo sparc-auspex-sunos${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
atari*:OpenBSD:*:*)
|
||||
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
# The situation for MiNT is a little confusing. The machine name
|
||||
# can be virtually everything (everything which is not
|
||||
# "atarist" or "atariste" at least should have a processor
|
||||
|
@ -357,18 +380,6 @@ EOF
|
|||
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
|
||||
echo m68k-unknown-mint${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
sun3*:OpenBSD:*:*)
|
||||
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
mac68k:OpenBSD:*:*)
|
||||
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
mvme68k:OpenBSD:*:*)
|
||||
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
mvme88k:OpenBSD:*:*)
|
||||
echo m88k-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
powerpc:machten:*:*)
|
||||
echo powerpc-apple-machten${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
|
@ -385,6 +396,7 @@ EOF
|
|||
echo clipper-intergraph-clix${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
mips:*:*:UMIPS | mips:*:*:RISCos)
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
#ifdef __cplusplus
|
||||
#include <stdio.h> /* for printf() prototype */
|
||||
|
@ -412,6 +424,9 @@ EOF
|
|||
rm -f $dummy.c $dummy
|
||||
echo mips-mips-riscos${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
Motorola:PowerMAX_OS:*:*)
|
||||
echo powerpc-motorola-powermax
|
||||
exit 0 ;;
|
||||
Night_Hawk:Power_UNIX:*:*)
|
||||
echo powerpc-harris-powerunix
|
||||
exit 0 ;;
|
||||
|
@ -459,7 +474,7 @@ EOF
|
|||
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
|
||||
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
|
||||
exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
|
||||
i?86:AIX:*:*)
|
||||
i*86:AIX:*:*)
|
||||
echo i386-ibm-aix
|
||||
exit 0 ;;
|
||||
ia64:AIX:*:*)
|
||||
|
@ -472,6 +487,7 @@ EOF
|
|||
exit 0 ;;
|
||||
*:AIX:2:3)
|
||||
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
#include <sys/systemcfg.h>
|
||||
|
||||
|
@ -533,10 +549,8 @@ EOF
|
|||
9000/31? ) HP_ARCH=m68000 ;;
|
||||
9000/[34]?? ) HP_ARCH=m68k ;;
|
||||
9000/[678][0-9][0-9])
|
||||
case "${HPUX_REV}" in
|
||||
11.[0-9][0-9])
|
||||
if [ -x /usr/bin/getconf ]; then
|
||||
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
|
||||
if [ -x /usr/bin/getconf ]; then
|
||||
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
|
||||
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
|
||||
case "${sc_cpu_version}" in
|
||||
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
|
||||
|
@ -545,12 +559,13 @@ EOF
|
|||
case "${sc_kernel_bits}" in
|
||||
32) HP_ARCH="hppa2.0n" ;;
|
||||
64) HP_ARCH="hppa2.0w" ;;
|
||||
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
|
||||
esac ;;
|
||||
esac
|
||||
fi ;;
|
||||
esac
|
||||
if [ "${HP_ARCH}" = "" ]; then
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
fi
|
||||
if [ "${HP_ARCH}" = "" ]; then
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
|
||||
#define _HPUX_SOURCE
|
||||
#include <stdlib.h>
|
||||
|
@ -583,10 +598,10 @@ EOF
|
|||
exit (0);
|
||||
}
|
||||
EOF
|
||||
(CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
|
||||
if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
|
||||
rm -f $dummy.c $dummy
|
||||
fi ;;
|
||||
(CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`./$dummy`
|
||||
if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
|
||||
rm -f $dummy.c $dummy
|
||||
fi ;;
|
||||
esac
|
||||
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
|
||||
exit 0 ;;
|
||||
|
@ -595,6 +610,7 @@ EOF
|
|||
echo ia64-hp-hpux${HPUX_REV}
|
||||
exit 0 ;;
|
||||
3050*:HI-UX:*:*)
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
#include <unistd.h>
|
||||
int
|
||||
|
@ -630,7 +646,7 @@ EOF
|
|||
9000/8??:4.3bsd:*:*)
|
||||
echo hppa1.0-hp-bsd
|
||||
exit 0 ;;
|
||||
*9??*:MPE/iX:*:*)
|
||||
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
|
||||
echo hppa1.0-hp-mpeix
|
||||
exit 0 ;;
|
||||
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
|
||||
|
@ -639,7 +655,7 @@ EOF
|
|||
hp8??:OSF1:*:*)
|
||||
echo hppa1.0-hp-osf
|
||||
exit 0 ;;
|
||||
i?86:OSF1:*:*)
|
||||
i*86:OSF1:*:*)
|
||||
if [ -x /usr/sbin/sysversion ] ; then
|
||||
echo ${UNAME_MACHINE}-unknown-osf1mk
|
||||
else
|
||||
|
@ -649,9 +665,6 @@ EOF
|
|||
parisc*:Lites*:*:*)
|
||||
echo hppa1.1-hp-lites
|
||||
exit 0 ;;
|
||||
hppa*:OpenBSD:*:*)
|
||||
echo hppa-unknown-openbsd
|
||||
exit 0 ;;
|
||||
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
|
||||
echo c1-convex-bsd
|
||||
exit 0 ;;
|
||||
|
@ -674,12 +687,13 @@ EOF
|
|||
echo xmp-cray-unicos
|
||||
exit 0 ;;
|
||||
CRAY*Y-MP:*:*:*)
|
||||
echo ymp-cray-unicos${UNAME_RELEASE}
|
||||
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||
exit 0 ;;
|
||||
CRAY*[A-Z]90:*:*:*)
|
||||
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
|
||||
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
|
||||
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
|
||||
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
|
||||
-e 's/\.[^.]*$/.X/'
|
||||
exit 0 ;;
|
||||
CRAY*TS:*:*:*)
|
||||
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||
|
@ -702,10 +716,7 @@ EOF
|
|||
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
|
||||
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||
exit 0 ;;
|
||||
hp300:OpenBSD:*:*)
|
||||
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
i?86:BSD/386:*:* | i?86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
|
||||
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
sparc*:BSD/OS:*:*)
|
||||
|
@ -717,9 +728,6 @@ EOF
|
|||
*:FreeBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
|
||||
exit 0 ;;
|
||||
*:OpenBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
|
||||
exit 0 ;;
|
||||
i*:CYGWIN*:*)
|
||||
echo ${UNAME_MACHINE}-pc-cygwin
|
||||
exit 0 ;;
|
||||
|
@ -729,6 +737,9 @@ EOF
|
|||
i*:PW*:*)
|
||||
echo ${UNAME_MACHINE}-pc-pw32
|
||||
exit 0 ;;
|
||||
x86:Interix*:3*)
|
||||
echo i386-pc-interix3
|
||||
exit 0 ;;
|
||||
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
|
||||
# How do we know it's Interix rather than the generic POSIX subsystem?
|
||||
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
|
||||
|
@ -760,97 +771,43 @@ EOF
|
|||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit 0 ;;
|
||||
mips:Linux:*:*)
|
||||
cat >$dummy.c <<EOF
|
||||
#ifdef __cplusplus
|
||||
#include <stdio.h> /* for printf() prototype */
|
||||
int main (int argc, char *argv[]) {
|
||||
#else
|
||||
int main (argc, argv) int argc; char *argv[]; {
|
||||
#endif
|
||||
#ifdef __MIPSEB__
|
||||
printf ("%s-unknown-linux-gnu\n", argv[1]);
|
||||
#endif
|
||||
#ifdef __MIPSEL__
|
||||
printf ("%sel-unknown-linux-gnu\n", argv[1]);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
#undef CPU
|
||||
#undef mips
|
||||
#undef mipsel
|
||||
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
||||
CPU=mipsel
|
||||
#else
|
||||
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
||||
CPU=mips
|
||||
#else
|
||||
CPU=
|
||||
#endif
|
||||
#endif
|
||||
EOF
|
||||
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
|
||||
rm -f $dummy.c $dummy
|
||||
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
|
||||
rm -f $dummy.c
|
||||
test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
|
||||
;;
|
||||
ppc:Linux:*:*)
|
||||
# Determine Lib Version
|
||||
cat >$dummy.c <<EOF
|
||||
#include <features.h>
|
||||
#if defined(__GLIBC__)
|
||||
extern char __libc_version[];
|
||||
extern char __libc_release[];
|
||||
#endif
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
#if defined(__GLIBC__)
|
||||
printf("%s %s\n", __libc_version, __libc_release);
|
||||
#else
|
||||
printf("unknown\n");
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
LIBC=""
|
||||
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
|
||||
if test "$?" = 0 ; then
|
||||
./$dummy | grep 1\.99 > /dev/null
|
||||
if test "$?" = 0 ; then LIBC="libc1" ; fi
|
||||
fi
|
||||
rm -f $dummy.c $dummy
|
||||
echo powerpc-unknown-linux-gnu${LIBC}
|
||||
echo powerpc-unknown-linux-gnu
|
||||
exit 0 ;;
|
||||
ppc64:Linux:*:*)
|
||||
echo powerpc64-unknown-linux-gnu
|
||||
exit 0 ;;
|
||||
alpha:Linux:*:*)
|
||||
cat <<EOF >$dummy.s
|
||||
.data
|
||||
\$Lformat:
|
||||
.byte 37,100,45,37,120,10,0 # "%d-%x\n"
|
||||
.text
|
||||
.globl main
|
||||
.align 4
|
||||
.ent main
|
||||
main:
|
||||
.frame \$30,16,\$26,0
|
||||
ldgp \$29,0(\$27)
|
||||
.prologue 1
|
||||
.long 0x47e03d80 # implver \$0
|
||||
lda \$2,-1
|
||||
.long 0x47e20c21 # amask \$2,\$1
|
||||
lda \$16,\$Lformat
|
||||
mov \$0,\$17
|
||||
not \$1,\$18
|
||||
jsr \$26,printf
|
||||
ldgp \$29,0(\$26)
|
||||
mov 0,\$16
|
||||
jsr \$26,exit
|
||||
.end main
|
||||
EOF
|
||||
LIBC=""
|
||||
$CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
|
||||
if test "$?" = 0 ; then
|
||||
case `./$dummy` in
|
||||
0-0) UNAME_MACHINE="alpha" ;;
|
||||
1-0) UNAME_MACHINE="alphaev5" ;;
|
||||
1-1) UNAME_MACHINE="alphaev56" ;;
|
||||
1-101) UNAME_MACHINE="alphapca56" ;;
|
||||
2-303) UNAME_MACHINE="alphaev6" ;;
|
||||
2-307) UNAME_MACHINE="alphaev67" ;;
|
||||
esac
|
||||
objdump --private-headers $dummy | \
|
||||
grep ld.so.1 > /dev/null
|
||||
if test "$?" = 0 ; then
|
||||
LIBC="libc1"
|
||||
fi
|
||||
fi
|
||||
rm -f $dummy.s $dummy
|
||||
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
|
||||
EV5) UNAME_MACHINE=alphaev5 ;;
|
||||
EV56) UNAME_MACHINE=alphaev56 ;;
|
||||
PCA56) UNAME_MACHINE=alphapca56 ;;
|
||||
PCA57) UNAME_MACHINE=alphapca56 ;;
|
||||
EV6) UNAME_MACHINE=alphaev6 ;;
|
||||
EV67) UNAME_MACHINE=alphaev67 ;;
|
||||
EV68*) UNAME_MACHINE=alphaev68 ;;
|
||||
esac
|
||||
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
|
||||
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
|
||||
exit 0 ;;
|
||||
parisc:Linux:*:* | hppa:Linux:*:*)
|
||||
|
@ -876,78 +833,68 @@ EOF
|
|||
x86_64:Linux:*:*)
|
||||
echo x86_64-unknown-linux-gnu
|
||||
exit 0 ;;
|
||||
i?86:Linux:*:*)
|
||||
i*86:Linux:*:*)
|
||||
# The BFD linker knows what the default object file format is, so
|
||||
# first see if it will tell us. cd to the root directory to prevent
|
||||
# problems with other programs or directories called `ld' in the path.
|
||||
ld_supported_emulations=`cd /; ld --help 2>&1 \
|
||||
| sed -ne '/supported emulations:/!d
|
||||
# Export LANG=C to prevent ld from outputting information in other
|
||||
# languages.
|
||||
ld_supported_targets=`LANG=C; export LANG; cd /; ld --help 2>&1 \
|
||||
| sed -ne '/supported targets:/!d
|
||||
s/[ ][ ]*/ /g
|
||||
s/.*supported emulations: *//
|
||||
s/.*supported targets: *//
|
||||
s/ .*//
|
||||
p'`
|
||||
case "$ld_supported_emulations" in
|
||||
i?86linux)
|
||||
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
|
||||
exit 0
|
||||
;;
|
||||
elf_i?86)
|
||||
case "$ld_supported_targets" in
|
||||
elf32-i386)
|
||||
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
|
||||
;;
|
||||
i?86coff)
|
||||
a.out-i386-linux)
|
||||
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
|
||||
exit 0 ;;
|
||||
coff-i386)
|
||||
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
# Either a pre-BFD a.out linker (linux-gnuoldld)
|
||||
# or one that does not give us useful --help.
|
||||
# GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
|
||||
# If ld does not provide *any* "supported emulations:"
|
||||
# that means it is gnuoldld.
|
||||
test -z "$ld_supported_emulations" && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
|
||||
case "${UNAME_MACHINE}" in
|
||||
i?86)
|
||||
VENDOR=pc;
|
||||
;;
|
||||
*)
|
||||
VENDOR=unknown;
|
||||
;;
|
||||
exit 0 ;;
|
||||
"")
|
||||
# Either a pre-BFD a.out linker (linux-gnuoldld) or
|
||||
# one that does not give us useful --help.
|
||||
echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
|
||||
exit 0 ;;
|
||||
esac
|
||||
# Determine whether the default compiler is a.out or elf
|
||||
cat >$dummy.c <<EOF
|
||||
#include <features.h>
|
||||
#ifdef __cplusplus
|
||||
#include <stdio.h> /* for printf() prototype */
|
||||
int main (int argc, char *argv[]) {
|
||||
#else
|
||||
int main (argc, argv) int argc; char *argv[]; {
|
||||
#endif
|
||||
#ifdef __ELF__
|
||||
# ifdef __GLIBC__
|
||||
# if __GLIBC__ >= 2
|
||||
printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
|
||||
# else
|
||||
printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
|
||||
# endif
|
||||
# else
|
||||
printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
|
||||
# endif
|
||||
#else
|
||||
printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
#include <features.h>
|
||||
#ifdef __ELF__
|
||||
# ifdef __GLIBC__
|
||||
# if __GLIBC__ >= 2
|
||||
LIBC=gnu
|
||||
# else
|
||||
LIBC=gnulibc1
|
||||
# endif
|
||||
# else
|
||||
LIBC=gnulibc1
|
||||
# endif
|
||||
#else
|
||||
#ifdef __INTEL_COMPILER
|
||||
LIBC=gnu
|
||||
#else
|
||||
LIBC=gnuaout
|
||||
#endif
|
||||
#endif
|
||||
EOF
|
||||
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
|
||||
rm -f $dummy.c $dummy
|
||||
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
|
||||
rm -f $dummy.c
|
||||
test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
|
||||
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
|
||||
;;
|
||||
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
|
||||
# are messed up and put the nodename in both sysname and nodename.
|
||||
i?86:DYNIX/ptx:4*:*)
|
||||
i*86:DYNIX/ptx:4*:*)
|
||||
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
|
||||
# earlier versions are messed up and put the nodename in both
|
||||
# sysname and nodename.
|
||||
echo i386-sequent-sysv4
|
||||
exit 0 ;;
|
||||
i?86:UNIX_SV:4.2MP:2.*)
|
||||
i*86:UNIX_SV:4.2MP:2.*)
|
||||
# Unixware is an offshoot of SVR4, but it has its own version
|
||||
# number series starting with 2...
|
||||
# I am not positive that other SVR4 systems won't match this,
|
||||
|
@ -955,7 +902,7 @@ EOF
|
|||
# Use sysv4.2uw... so that sysv4* matches it.
|
||||
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
|
||||
exit 0 ;;
|
||||
i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
|
||||
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
|
||||
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
|
||||
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
|
||||
echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
|
||||
|
@ -963,16 +910,15 @@ EOF
|
|||
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
|
||||
fi
|
||||
exit 0 ;;
|
||||
i?86:*:5:7*)
|
||||
# Fixed at (any) Pentium or better
|
||||
UNAME_MACHINE=i586
|
||||
if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
|
||||
echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
|
||||
else
|
||||
echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
|
||||
fi
|
||||
i*86:*:5:[78]*)
|
||||
case `/bin/uname -X | grep "^Machine"` in
|
||||
*486*) UNAME_MACHINE=i486 ;;
|
||||
*Pentium) UNAME_MACHINE=i586 ;;
|
||||
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
|
||||
esac
|
||||
echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
|
||||
exit 0 ;;
|
||||
i?86:*:3.2:*)
|
||||
i*86:*:3.2:*)
|
||||
if test -f /usr/options/cb.name; then
|
||||
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
|
||||
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
|
||||
|
@ -990,7 +936,7 @@ EOF
|
|||
echo ${UNAME_MACHINE}-pc-sysv32
|
||||
fi
|
||||
exit 0 ;;
|
||||
i?86:*DOS:*:*)
|
||||
i*86:*DOS:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-msdosdjgpp
|
||||
exit 0 ;;
|
||||
pc:*:*:*)
|
||||
|
@ -1018,7 +964,7 @@ EOF
|
|||
exit 0 ;;
|
||||
M68*:*:R3V[567]*:*)
|
||||
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
|
||||
3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
|
||||
3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
|
||||
OS_REL=''
|
||||
test -r /etc/.relid \
|
||||
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
|
||||
|
@ -1029,13 +975,13 @@ EOF
|
|||
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
|
||||
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
||||
&& echo i486-ncr-sysv4 && exit 0 ;;
|
||||
m68*:LynxOS:2.*:*)
|
||||
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
|
||||
echo m68k-unknown-lynxos${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
mc68030:UNIX_System_V:4.*:*)
|
||||
echo m68k-atari-sysv4
|
||||
exit 0 ;;
|
||||
i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*)
|
||||
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
|
||||
echo i386-unknown-lynxos${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
TSUNAMI:LynxOS:2.*:*)
|
||||
|
@ -1044,7 +990,7 @@ EOF
|
|||
rs6000:LynxOS:2.*:*)
|
||||
echo rs6000-unknown-lynxos${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:*)
|
||||
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
|
||||
echo powerpc-unknown-lynxos${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
SM[BE]S:UNIX_SV:*:*)
|
||||
|
@ -1064,8 +1010,8 @@ EOF
|
|||
echo ns32k-sni-sysv
|
||||
fi
|
||||
exit 0 ;;
|
||||
PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
|
||||
# says <Richard.M.Bartel@ccMail.Census.GOV>
|
||||
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
|
||||
# says <Richard.M.Bartel@ccMail.Census.GOV>
|
||||
echo i586-unisys-sysv4
|
||||
exit 0 ;;
|
||||
*:UNIX_System_V:4*:FTX*)
|
||||
|
@ -1077,6 +1023,10 @@ EOF
|
|||
# From seanf@swdc.stratus.com.
|
||||
echo i860-stratus-sysv4
|
||||
exit 0 ;;
|
||||
*:VOS:*:*)
|
||||
# From Paul.Green@stratus.com.
|
||||
echo hppa1.1-stratus-vos
|
||||
exit 0 ;;
|
||||
mc68*:A/UX:*:*)
|
||||
echo m68k-apple-aux${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
|
@ -1117,13 +1067,15 @@ EOF
|
|||
*:procnto*:*:* | *:QNX:[0123456789]*:*)
|
||||
if test "${UNAME_MACHINE}" = "x86pc"; then
|
||||
UNAME_MACHINE=pc
|
||||
echo i386-${UNAME_MACHINE}-nto-qnx
|
||||
else
|
||||
echo `uname -p`-${UNAME_MACHINE}-nto-qnx
|
||||
fi
|
||||
echo `uname -p`-${UNAME_MACHINE}-nto-qnx
|
||||
exit 0 ;;
|
||||
*:QNX:*:4*)
|
||||
echo i386-pc-qnx
|
||||
exit 0 ;;
|
||||
NSR-[KW]:NONSTOP_KERNEL:*:*)
|
||||
NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
|
||||
echo nsr-tandem-nsk${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
*:NonStop-UX:*:*)
|
||||
|
@ -1146,7 +1098,7 @@ EOF
|
|||
fi
|
||||
echo ${UNAME_MACHINE}-unknown-plan9
|
||||
exit 0 ;;
|
||||
i?86:OS/2:*:*)
|
||||
i*86:OS/2:*:*)
|
||||
# If we were able to find `uname', then EMX Unix compatibility
|
||||
# is probably installed.
|
||||
echo ${UNAME_MACHINE}-pc-os2-emx
|
||||
|
@ -1169,11 +1121,18 @@ EOF
|
|||
*:ITS:*:*)
|
||||
echo pdp10-unknown-its
|
||||
exit 0 ;;
|
||||
i*86:XTS-300:*:STOP)
|
||||
echo ${UNAME_MACHINE}-unknown-stop
|
||||
exit 0 ;;
|
||||
i*86:atheos:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-atheos
|
||||
exit 0 ;;
|
||||
esac
|
||||
|
||||
#echo '(No uname command or uname output not recognized.)' 1>&2
|
||||
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
|
||||
|
||||
eval $set_cc_for_build
|
||||
cat >$dummy.c <<EOF
|
||||
#ifdef _SEQUENT_
|
||||
# include <sys/types.h>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
#! /bin/sh
|
||||
# Configuration validation subroutine script.
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
||||
# Free Software Foundation, Inc.
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
# 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2001-03-19'
|
||||
timestamp='2002-02-01'
|
||||
|
||||
# This file is (in principle) common to ALL GNU software.
|
||||
# The presence of a machine in this file suggests that SOME GNU software
|
||||
|
@ -29,7 +29,8 @@ timestamp='2001-03-19'
|
|||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Please send patches to <config-patches@gnu.org>.
|
||||
# Please send patches to <config-patches@gnu.org>. Submit a context
|
||||
# diff and a properly formatted ChangeLog entry.
|
||||
#
|
||||
# Configuration subroutine to validate and canonicalize a configuration type.
|
||||
# Supply the specified configuration type as an argument.
|
||||
|
@ -117,7 +118,7 @@ esac
|
|||
# Here we must recognize all the valid KERNEL-OS combinations.
|
||||
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||||
case $maybe_os in
|
||||
nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*)
|
||||
nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-*)
|
||||
os=-$maybe_os
|
||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||
;;
|
||||
|
@ -157,6 +158,14 @@ case $os in
|
|||
os=-vxworks
|
||||
basic_machine=$1
|
||||
;;
|
||||
-chorusos*)
|
||||
os=-chorusos
|
||||
basic_machine=$1
|
||||
;;
|
||||
-chorusrdb)
|
||||
os=-chorusrdb
|
||||
basic_machine=$1
|
||||
;;
|
||||
-hiux*)
|
||||
os=-hiuxwe2
|
||||
;;
|
||||
|
@ -215,25 +224,36 @@ esac
|
|||
case $basic_machine in
|
||||
# Recognize the basic CPU types without company name.
|
||||
# Some are omitted here because they have special meanings below.
|
||||
tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \
|
||||
| arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \
|
||||
| pyramid | mn10200 | mn10300 | tron | a29k \
|
||||
| 580 | i960 | h8300 \
|
||||
| x86 | ppcbe | mipsbe | mipsle | shbe | shle \
|
||||
| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
|
||||
| hppa64 \
|
||||
| alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
|
||||
| alphaev6[78] \
|
||||
| we32k | ns16k | clipper | i370 | sh | sh[34] \
|
||||
| powerpc | powerpcle \
|
||||
| 1750a | dsp16xx | pdp10 | pdp11 \
|
||||
| mips16 | mips64 | mipsel | mips64el \
|
||||
| mips64orion | mips64orionel | mipstx39 | mipstx39el \
|
||||
| mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
|
||||
| mips64vr5000 | miprs64vr5000el | mcore | s390 | s390x \
|
||||
| sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
|
||||
| thumb | d10v | d30v | fr30 | avr | openrisc | tic80 \
|
||||
| pj | pjl | h8500)
|
||||
1750a | 580 \
|
||||
| a29k \
|
||||
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
|
||||
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
||||
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
|
||||
| c4x | clipper \
|
||||
| d10v | d30v | dsp16xx \
|
||||
| fr30 \
|
||||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||
| i370 | i860 | i960 | ia64 \
|
||||
| m32r | m68000 | m68k | m88k | mcore \
|
||||
| mips16 | mips64 | mips64el | mips64orion | mips64orionel \
|
||||
| mips64vr4100 | mips64vr4100el | mips64vr4300 \
|
||||
| mips64vr4300el | mips64vr5000 | mips64vr5000el \
|
||||
| mipsbe | mipseb | mipsel | mipsle | mipstx39 | mipstx39el \
|
||||
| mipsisa32 \
|
||||
| mn10200 | mn10300 \
|
||||
| ns16k | ns32k \
|
||||
| openrisc | or32 \
|
||||
| pdp10 | pdp11 | pj | pjl \
|
||||
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
||||
| pyramid \
|
||||
| sh | sh[34] | sh[34]eb | shbe | shle | sh64 \
|
||||
| sparc | sparc64 | sparclet | sparclite | sparcv9 | sparcv9b \
|
||||
| strongarm \
|
||||
| tahoe | thumb | tic80 | tron \
|
||||
| v850 | v850e \
|
||||
| we32k \
|
||||
| x86 | xscale | xstormy16 | xtensa \
|
||||
| z8k)
|
||||
basic_machine=$basic_machine-unknown
|
||||
;;
|
||||
m6811 | m68hc11 | m6812 | m68hc12)
|
||||
|
@ -241,13 +261,13 @@ case $basic_machine in
|
|||
basic_machine=$basic_machine-unknown
|
||||
os=-none
|
||||
;;
|
||||
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | w65)
|
||||
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
|
||||
;;
|
||||
|
||||
# We use `pc' rather than `unknown'
|
||||
# because (1) that's what they normally are, and
|
||||
# (2) the word "unknown" tends to confuse beginning users.
|
||||
i[234567]86 | x86_64)
|
||||
i*86 | x86_64)
|
||||
basic_machine=$basic_machine-pc
|
||||
;;
|
||||
# Object if more than one company name word.
|
||||
|
@ -256,30 +276,45 @@ case $basic_machine in
|
|||
exit 1
|
||||
;;
|
||||
# Recognize the basic CPU types with company name.
|
||||
# FIXME: clean up the formatting here.
|
||||
vax-* | tahoe-* | i[234567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
|
||||
| m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \
|
||||
| arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \
|
||||
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
|
||||
| power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
|
||||
| xmp-* | ymp-* \
|
||||
| x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \
|
||||
| hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
|
||||
| hppa2.0n-* | hppa64-* \
|
||||
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
|
||||
| alphaev6[78]-* \
|
||||
| we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
|
||||
| clipper-* | orion-* \
|
||||
| sparclite-* | pdp10-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
|
||||
| sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
|
||||
| mips64el-* | mips64orion-* | mips64orionel-* \
|
||||
| mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
|
||||
| mipstx39-* | mipstx39el-* | mcore-* \
|
||||
| f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \
|
||||
| [cjt]90-* \
|
||||
| m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
|
||||
| thumb-* | v850-* | d30v-* | tic30-* | tic80-* | c30-* | fr30-* \
|
||||
| bs2000-* | tic54x-* | c54x-* | x86_64-* | pj-* | pjl-*)
|
||||
580-* \
|
||||
| a29k-* \
|
||||
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
|
||||
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
||||
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
||||
| arm-* | armbe-* | armle-* | armv*-* \
|
||||
| avr-* \
|
||||
| bs2000-* \
|
||||
| c[123]* | c30-* | [cjt]90-* | c54x-* \
|
||||
| clipper-* | cray2-* | cydra-* \
|
||||
| d10v-* | d30v-* \
|
||||
| elxsi-* \
|
||||
| f30[01]-* | f700-* | fr30-* | fx80-* \
|
||||
| h8300-* | h8500-* \
|
||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||
| i*86-* | i860-* | i960-* | ia64-* \
|
||||
| m32r-* \
|
||||
| m68000-* | m680[01234]0-* | m68360-* | m683?2-* | m68k-* \
|
||||
| m88110-* | m88k-* | mcore-* \
|
||||
| mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \
|
||||
| mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \
|
||||
| mips64vr4300-* | mips64vr4300el-* | mipsbe-* | mipseb-* \
|
||||
| mipsle-* | mipsel-* | mipstx39-* | mipstx39el-* \
|
||||
| none-* | np1-* | ns16k-* | ns32k-* \
|
||||
| orion-* \
|
||||
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
|
||||
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
||||
| pyramid-* \
|
||||
| romp-* | rs6000-* \
|
||||
| sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* | sh64-* \
|
||||
| sparc-* | sparc64-* | sparc86x-* | sparclite-* \
|
||||
| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* \
|
||||
| t3e-* | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
|
||||
| v850-* | v850e-* | vax-* \
|
||||
| we32k-* \
|
||||
| x86-* | x86_64-* | xmp-* | xps100-* | xscale-* | xstormy16-* \
|
||||
| xtensa-* \
|
||||
| ymp-* \
|
||||
| z8k-*)
|
||||
;;
|
||||
# Recognize the various machine names and aliases which stand
|
||||
# for a CPU type and a company and sometimes even an OS.
|
||||
|
@ -386,6 +421,14 @@ case $basic_machine in
|
|||
decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
|
||||
basic_machine=mips-dec
|
||||
;;
|
||||
decsystem10* | dec10*)
|
||||
basic_machine=pdp10-dec
|
||||
os=-tops10
|
||||
;;
|
||||
decsystem20* | dec20*)
|
||||
basic_machine=pdp10-dec
|
||||
os=-tops20
|
||||
;;
|
||||
delta | 3300 | motorola-3300 | motorola-delta \
|
||||
| 3300-motorola | delta-motorola)
|
||||
basic_machine=m68k-motorola
|
||||
|
@ -506,19 +549,19 @@ case $basic_machine in
|
|||
basic_machine=i370-ibm
|
||||
;;
|
||||
# I'm not sure what "Sysv32" means. Should this be sysv3.2?
|
||||
i[34567]86v32)
|
||||
i*86v32)
|
||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
||||
os=-sysv32
|
||||
;;
|
||||
i[34567]86v4*)
|
||||
i*86v4*)
|
||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
||||
os=-sysv4
|
||||
;;
|
||||
i[34567]86v)
|
||||
i*86v)
|
||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
||||
os=-sysv
|
||||
;;
|
||||
i[34567]86sol2)
|
||||
i*86sol2)
|
||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
||||
os=-solaris2
|
||||
;;
|
||||
|
@ -588,6 +631,10 @@ case $basic_machine in
|
|||
basic_machine=m68k-rom68k
|
||||
os=-coff
|
||||
;;
|
||||
morphos)
|
||||
basic_machine=powerpc-unknown
|
||||
os=-morphos
|
||||
;;
|
||||
msdos)
|
||||
basic_machine=i386-pc
|
||||
os=-msdos
|
||||
|
@ -667,6 +714,10 @@ case $basic_machine in
|
|||
basic_machine=hppa1.1-oki
|
||||
os=-proelf
|
||||
;;
|
||||
or32 | or32-*)
|
||||
basic_machine=or32-unknown
|
||||
os=-coff
|
||||
;;
|
||||
OSE68000 | ose68000)
|
||||
basic_machine=m68000-ericsson
|
||||
os=-ose
|
||||
|
@ -692,7 +743,7 @@ case $basic_machine in
|
|||
pc532 | pc532-*)
|
||||
basic_machine=ns32k-pc532
|
||||
;;
|
||||
pentium | p5 | k5 | k6 | nexgen)
|
||||
pentium | p5 | k5 | k6 | nexgen | viac3)
|
||||
basic_machine=i586-pc
|
||||
;;
|
||||
pentiumpro | p6 | 6x86 | athlon)
|
||||
|
@ -701,7 +752,7 @@ case $basic_machine in
|
|||
pentiumii | pentium2)
|
||||
basic_machine=i686-pc
|
||||
;;
|
||||
pentium-* | p5-* | k5-* | k6-* | nexgen-*)
|
||||
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
|
||||
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
pentiumpro-* | p6-* | 6x86-* | athlon-*)
|
||||
|
@ -725,6 +776,16 @@ case $basic_machine in
|
|||
ppcle-* | powerpclittle-*)
|
||||
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
ppc64) basic_machine=powerpc64-unknown
|
||||
;;
|
||||
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
ppc64le | powerpc64little | ppc64-le | powerpc64-little)
|
||||
basic_machine=powerpc64le-unknown
|
||||
;;
|
||||
ppc64le-* | powerpc64little-*)
|
||||
basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
ps2)
|
||||
basic_machine=i386-ibm
|
||||
;;
|
||||
|
@ -742,6 +803,12 @@ case $basic_machine in
|
|||
rtpc | rtpc-*)
|
||||
basic_machine=romp-ibm
|
||||
;;
|
||||
s390 | s390-*)
|
||||
basic_machine=s390-ibm
|
||||
;;
|
||||
s390x | s390x-*)
|
||||
basic_machine=s390x-ibm
|
||||
;;
|
||||
sa29200)
|
||||
basic_machine=a29k-amd
|
||||
os=-udi
|
||||
|
@ -753,7 +820,7 @@ case $basic_machine in
|
|||
basic_machine=sh-hitachi
|
||||
os=-hms
|
||||
;;
|
||||
sparclite-wrs)
|
||||
sparclite-wrs | simso-wrs)
|
||||
basic_machine=sparclite-wrs
|
||||
os=-vxworks
|
||||
;;
|
||||
|
@ -833,6 +900,10 @@ case $basic_machine in
|
|||
tx39el)
|
||||
basic_machine=mipstx39el-unknown
|
||||
;;
|
||||
toad1)
|
||||
basic_machine=pdp10-xkl
|
||||
os=-tops20
|
||||
;;
|
||||
tower | tower-32)
|
||||
basic_machine=m68k-ncr
|
||||
;;
|
||||
|
@ -879,6 +950,10 @@ case $basic_machine in
|
|||
basic_machine=hppa1.1-winbond
|
||||
os=-proelf
|
||||
;;
|
||||
windows32)
|
||||
basic_machine=i386-pc
|
||||
os=-windows32-msvcrt
|
||||
;;
|
||||
xmp)
|
||||
basic_machine=xmp-cray
|
||||
os=-unicos
|
||||
|
@ -932,10 +1007,13 @@ case $basic_machine in
|
|||
we32k)
|
||||
basic_machine=we32k-att
|
||||
;;
|
||||
sh3 | sh4)
|
||||
sh3 | sh4 | sh3eb | sh4eb)
|
||||
basic_machine=sh-unknown
|
||||
;;
|
||||
sparc | sparcv9)
|
||||
sh64)
|
||||
basic_machine=sh64-unknown
|
||||
;;
|
||||
sparc | sparcv9 | sparcv9b)
|
||||
basic_machine=sparc-sun
|
||||
;;
|
||||
cydra)
|
||||
|
@ -957,6 +1035,9 @@ case $basic_machine in
|
|||
basic_machine=c4x-none
|
||||
os=-coff
|
||||
;;
|
||||
*-unknown)
|
||||
# Make sure to match an already-canonicalized machine name.
|
||||
;;
|
||||
*)
|
||||
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
|
||||
exit 1
|
||||
|
@ -1013,16 +1094,18 @@ case $os in
|
|||
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
||||
| -chorusos* | -chorusrdb* \
|
||||
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
|
||||
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
|
||||
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
||||
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*)
|
||||
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
|
||||
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* | -morphos*)
|
||||
# Remember, each alternative MUST END IN *, to match a version number.
|
||||
;;
|
||||
-qnx*)
|
||||
case $basic_machine in
|
||||
x86-* | i[34567]86-*)
|
||||
x86-* | i*86-*)
|
||||
;;
|
||||
*)
|
||||
os=-nto$os
|
||||
|
@ -1069,6 +1152,9 @@ case $os in
|
|||
-acis*)
|
||||
os=-aos
|
||||
;;
|
||||
-atheos*)
|
||||
os=-atheos
|
||||
;;
|
||||
-386bsd)
|
||||
os=-bsd
|
||||
;;
|
||||
|
@ -1149,6 +1235,7 @@ case $basic_machine in
|
|||
arm*-semi)
|
||||
os=-aout
|
||||
;;
|
||||
# This must come before the *-dec entry.
|
||||
pdp10-*)
|
||||
os=-tops20
|
||||
;;
|
||||
|
@ -1179,6 +1266,9 @@ case $basic_machine in
|
|||
mips*-*)
|
||||
os=-elf
|
||||
;;
|
||||
or32-*)
|
||||
os=-coff
|
||||
;;
|
||||
*-tti) # must be before sparc entry or we get the wrong os.
|
||||
os=-sysv3
|
||||
;;
|
||||
|
@ -1341,6 +1431,9 @@ case $basic_machine in
|
|||
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
|
||||
vendor=atari
|
||||
;;
|
||||
-vos*)
|
||||
vendor=stratus
|
||||
;;
|
||||
esac
|
||||
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
|
||||
;;
|
||||
|
|
|
@ -1078,6 +1078,12 @@ else
|
|||
GDB_TK=""
|
||||
fi
|
||||
|
||||
all_build_modules=
|
||||
if test x"${build_alias}" != x"${host_alias}"
|
||||
then
|
||||
all_build_modules='$(ALL_BUILD_MODULES_LIST)'
|
||||
fi
|
||||
|
||||
for subdir in . ${subdirs} ; do
|
||||
|
||||
# ${subdir} is relative path from . to the directory we're currently
|
||||
|
@ -1378,6 +1384,7 @@ EOF
|
|||
-e "s|^oldincludedir[ ]*=.*$|oldincludedir = ${oldincludedir}|" \
|
||||
-e "s|^infodir[ ]*=.*$|infodir = ${infodir}|" \
|
||||
-e "s|^mandir[ ]*=.*$|mandir = ${mandir}|" \
|
||||
-e "s|^ALL_BUILD_MODULES =.*|ALL_BUILD_MODULES =${all_build_modules}|" \
|
||||
-e "/^CC[ ]*=/{
|
||||
:loop1
|
||||
/\\\\$/ N
|
||||
|
|
102
configure.in
102
configure.in
|
@ -434,6 +434,18 @@ if [ ! -d ${target_subdir} ] ; then
|
|||
fi
|
||||
fi
|
||||
|
||||
build_subdir=${build_alias}
|
||||
|
||||
if [ x"${build_alias}" != x"${host}" ] ; then
|
||||
if [ ! -d ${build_subdir} ] ; then
|
||||
if mkdir ${build_subdir} ; then true
|
||||
else
|
||||
echo "'*** could not make ${PWD=`pwd`}/${build_subdir}" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
copy_dirs=
|
||||
|
||||
# Handle --with-headers=XXX. The contents of the named directory are
|
||||
|
@ -589,6 +601,17 @@ no)
|
|||
esac
|
||||
|
||||
case "${target}" in
|
||||
*-*-netbsd*)
|
||||
# Skip some stuff on all NetBSD configurations.
|
||||
skipdirs="$skipdirs target-newlib target-libiberty target-libgloss"
|
||||
|
||||
# Skip some stuff that's unsupported on some NetBSD configurations.
|
||||
case "${target}" in
|
||||
*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj}"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*-*-netware)
|
||||
noconfigdirs="$noconfigdirs ${libstdcxx_version} target-newlib target-libiberty target-libgloss target-libffi"
|
||||
;;
|
||||
|
@ -632,18 +655,6 @@ case "${target}" in
|
|||
arm-*-pe*)
|
||||
noconfigdirs="$noconfigdirs target-libgloss"
|
||||
;;
|
||||
arm-*-coff*)
|
||||
noconfigdirs="$noconfigdirs target-libgloss"
|
||||
if [ x${is_cross_compiler} != xno ] ; then
|
||||
target_configdirs="${target_configdirs} target-bsp target-cygmon"
|
||||
fi
|
||||
;;
|
||||
arm-*-elf*)
|
||||
noconfigdirs="$noconfigdirs target-libgloss"
|
||||
if [ x${is_cross_compiler} != xno ] ; then
|
||||
target_configdirs="${target_configdirs} target-bsp target-cygmon"
|
||||
fi
|
||||
;;
|
||||
arm-*-oabi*)
|
||||
noconfigdirs="$noconfigdirs target-libgloss target-libffi"
|
||||
;;
|
||||
|
@ -657,25 +668,25 @@ case "${target}" in
|
|||
noconfigdirs="$noconfigdirs target-libgloss target-libffi"
|
||||
;;
|
||||
strongarm-*-elf)
|
||||
noconfigdirs="$noconfigdirs target-libgloss target-libffi"
|
||||
noconfigdirs="$noconfigdirs target-libffi"
|
||||
if [ x${is_cross_compiler} != xno ] ; then
|
||||
target_configdirs="${target_configdirs} target-bsp target-cygmon"
|
||||
fi
|
||||
;;
|
||||
strongarm-*-coff)
|
||||
noconfigdirs="$noconfigdirs target-libgloss target-libffi"
|
||||
noconfigdirs="$noconfigdirs target-libffi"
|
||||
if [ x${is_cross_compiler} != xno ] ; then
|
||||
target_configdirs="${target_configdirs} target-bsp target-cygmon"
|
||||
fi
|
||||
;;
|
||||
xscale-*-elf)
|
||||
noconfigdirs="$noconfigdirs target-libgloss target-libffi"
|
||||
noconfigdirs="$noconfigdirs target-libffi"
|
||||
if [ x${is_cross_compiler} != xno ] ; then
|
||||
target_configdirs="${target_configdirs} target-bsp target-cygmon"
|
||||
fi
|
||||
;;
|
||||
xscale-*-coff)
|
||||
noconfigdirs="$noconfigdirs target-libgloss target-libffi"
|
||||
noconfigdirs="$noconfigdirs target-libffi"
|
||||
if [ x${is_cross_compiler} != xno ] ; then
|
||||
target_configdirs="${target_configdirs} target-bsp target-cygmon"
|
||||
fi
|
||||
|
@ -702,7 +713,9 @@ case "${target}" in
|
|||
target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
|
||||
fi
|
||||
;;
|
||||
h8300*-*-* | \
|
||||
h8300*-*-*)
|
||||
noconfigdirs="$noconfigdirs target-libgloss"
|
||||
;;
|
||||
h8500-*-*)
|
||||
noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss target-libffi"
|
||||
;;
|
||||
|
@ -728,6 +741,10 @@ case "${target}" in
|
|||
# No gdb support yet.
|
||||
noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb"
|
||||
;;
|
||||
ia64*-**-hpux*)
|
||||
# No gdb or ld support yet.
|
||||
noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb ld"
|
||||
;;
|
||||
i[3456]86-*-coff | i[3456]86-*-elf)
|
||||
if [ x${is_cross_compiler} != xno ] ; then
|
||||
target_configdirs="${target_configdirs} target-libstub target-cygmon"
|
||||
|
@ -887,6 +904,9 @@ case "${target}" in
|
|||
esac
|
||||
noconfigdirs="$noconfigdirs target-libgloss target-libffi"
|
||||
;;
|
||||
sh64-*-*)
|
||||
noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
|
||||
;;
|
||||
sparc-*-elf*)
|
||||
if [ x${is_cross_compiler} != xno ] ; then
|
||||
target_configdirs="${target_configdirs} target-libstub target-cygmon"
|
||||
|
@ -974,18 +994,24 @@ fi
|
|||
# Look if the user specified --enable-languages="..."; if not, use
|
||||
# the environment variable $LANGUAGES if defined. $LANGUAGES might
|
||||
# go away some day.
|
||||
# NB: embedded tabs in this IF block -- do not untabify
|
||||
if test x"${enable_languages+set}" != xset; then
|
||||
if test x"${LANGUAGES+set}" = xset; then
|
||||
enable_languages="`echo ${LANGUAGES} | tr ' ' ','`"
|
||||
enable_languages="${LANGUAGES}"
|
||||
echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
|
||||
else
|
||||
enable_languages=all
|
||||
fi
|
||||
else
|
||||
if test x"${enable_languages}" = x; then
|
||||
echo configure.in: --enable-languages needs at least one argument 1>&2
|
||||
if test x"${enable_languages}" = x ||
|
||||
test x"${enable_languages}" = xyes;
|
||||
then
|
||||
echo configure.in: --enable-languages needs at least one language argument 1>&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
enable_languages=`echo "${enable_languages}" | sed -e 's/[ ,][ ,]*/,/g' -e 's/,$//'`
|
||||
|
||||
subdirs=
|
||||
for lang in ${srcdir}/gcc/*/config-lang.in ..
|
||||
do
|
||||
|
@ -1210,7 +1236,7 @@ rm -f conftest*
|
|||
case "${host}" in
|
||||
sparc-sun-solaris2*)
|
||||
CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
|
||||
if [ "`/usr/bin/which $CCBASE`" = "/usr/ucb/cc" ] ; then
|
||||
if [ "`type $CCBASE | sed 's/^[^/]*//'`" = "/usr/ucb/cc" ] ; then
|
||||
could_use=
|
||||
[ -d /opt/SUNWspro/bin ] && could_use="/opt/SUNWspro/bin"
|
||||
if [ -d /opt/cygnus/bin ] ; then
|
||||
|
@ -1252,7 +1278,8 @@ if [ "${shared}" = "yes" ]; then
|
|||
esac
|
||||
fi
|
||||
|
||||
# Record target_configdirs and the configure arguments in Makefile.
|
||||
# Record target_configdirs and the configure arguments for target and
|
||||
# build configuration in Makefile.
|
||||
target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
|
||||
targargs=`echo "${arguments}" | \
|
||||
sed -e 's/--no[^ ]*//' \
|
||||
|
@ -1261,6 +1288,11 @@ targargs=`echo "${arguments}" | \
|
|||
-e 's/--bu[a-z-]*=[^ ]*//' \
|
||||
-e 's/--ta[a-z-]*=[^ ]*//'`
|
||||
|
||||
# For the build-side libraries, we just need to pretend we're native,
|
||||
# and not use the same cache file. Multilibs are neither needed nor
|
||||
# desired.
|
||||
buildargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${targargs}"
|
||||
|
||||
# Passing a --with-cross-host argument lets the target libraries know
|
||||
# whether they are being built with a cross-compiler or being built
|
||||
# native. However, it would be better to use other mechanisms to make the
|
||||
|
@ -1281,6 +1313,9 @@ if [ x${with_newlib} != xno ] && echo " ${target_configdirs} " | grep " newlib "
|
|||
targargs="--with-newlib ${targargs}"
|
||||
fi
|
||||
|
||||
# Pass the appropriate --host, --build, and --cache-file arguments.
|
||||
targargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${targargs}"
|
||||
|
||||
# provide a proper gxx_include_dir.
|
||||
# Note, if you change the default, make sure to fix both here and in
|
||||
# the gcc, libio, and libstdc++ subdirectories.
|
||||
|
@ -1342,10 +1377,20 @@ case " $skipdirs " in
|
|||
fi
|
||||
fi
|
||||
|
||||
# If we're building newlib, use its generic headers last, but search
|
||||
# for any libc-related directories first (so make it the last -B
|
||||
# switch).
|
||||
FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
|
||||
case "${target}-${is_cross_compiler}" in
|
||||
i[3456]86-pc-linux*-no)
|
||||
# Here host == target, so we don't need to build gcc,
|
||||
# so we don't want to discard standard headers.
|
||||
FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
|
||||
FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/'
|
||||
;;
|
||||
*)
|
||||
# If we're building newlib, use its generic headers last, but search
|
||||
# for any libc-related directories first (so make it the last -B
|
||||
# switch).
|
||||
FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
|
@ -1418,15 +1463,16 @@ qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'`
|
|||
# macros.
|
||||
qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'`
|
||||
|
||||
targargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${targargs}"
|
||||
sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \
|
||||
-e "s%^CONFIG_ARGUMENTS[ ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \
|
||||
-e "s%^TARGET_CONFIGARGS[ ]*=.*$%TARGET_CONFIGARGS = ${targargs}%" \
|
||||
-e "s%^FLAGS_FOR_TARGET[ ]*=.*$%FLAGS_FOR_TARGET = ${FLAGS_FOR_TARGET}%" \
|
||||
-e "s%^CC_FOR_TARGET[ ]*=.*$%CC_FOR_TARGET = ${CC_FOR_TARGET}%" \
|
||||
-e "s%^CHILL_FOR_TARGET[ ]*=.*$%CHILL_FOR_TARGET = ${CHILL_FOR_TARGET}%" \
|
||||
-e "s%^CXX_FOR_TARGET[ ]*=.*$%CXX_FOR_TARGET = ${qCXX_FOR_TARGET}%" \
|
||||
-e "s%^CXX_FOR_TARGET_FOR_RECURSIVE_MAKE[ ]*=.*$%CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = ${qqCXX_FOR_TARGET}%" \
|
||||
-e "s%^TARGET_SUBDIR[ ]*=.*$%TARGET_SUBDIR = ${target_subdir}%" \
|
||||
-e "s%^BUILD_SUBDIR[ ]*=.*$%BUILD_SUBDIR = ${build_subdir}%" \
|
||||
-e "s%^BUILD_CONFIGARGS[ ]*=.*$%BUILD_CONFIGARGS = ${buildargs}%" \
|
||||
-e "s%^gxx_include_dir[ ]*=.*$%gxx_include_dir=${gxx_include_dir}%" \
|
||||
Makefile > Makefile.tem
|
||||
rm -f Makefile
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2002-01-26 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* Makefile.in (install): Depend on install-info.
|
||||
|
||||
2001-03-25 Stephane Carrez <Stephane.Carrez@worldnet.fr>
|
||||
|
||||
* texi2pod.pl: New file (from gcc/contrib).
|
||||
|
|
|
@ -51,7 +51,8 @@ DVIFILES = standards.dvi configure.dvi
|
|||
|
||||
all:
|
||||
|
||||
install:
|
||||
# We want install to imply install-info as per GNU standards.
|
||||
install: install-info
|
||||
|
||||
uninstall:
|
||||
|
||||
|
|
|
@ -256,8 +256,8 @@ __argz_count __argz_stringify __argz_next])
|
|||
|
||||
dnl Generate list of files to be processed by xgettext which will
|
||||
dnl be included in po/Makefile. But only do this if the po directory
|
||||
dnl exists in srcdir.
|
||||
if test -d $srcdir/po; then
|
||||
dnl exists in srcdir and contains POTFILES.in.
|
||||
if test -f $srcdir/po/POTFILES.in; then
|
||||
test -d po || mkdir po
|
||||
if test "x$srcdir" != "x."; then
|
||||
if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
|
||||
|
|
|
@ -1,12 +1,193 @@
|
|||
2002-02-08 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
Contribute sh64-elf.
|
||||
2000-11-25 Hans-Peter Nilsson <hpn@cygnus.com>
|
||||
* dis-asm.h (print_insn_sh64): New prototype.
|
||||
(print_insn_sh64l): New prototype.
|
||||
(print_insn_sh64x_media): New prototype.
|
||||
|
||||
2002-02-05 Frank Ch. Eigler <fche@redhat.com>
|
||||
|
||||
* dis-asm.h (disassemble_info): New field `insn_sets'.
|
||||
(INIT_DISASSEMBLE_INFO): Clear it.
|
||||
|
||||
2002-02-05 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* demangle.h (cplus_demangle_v3): Add "options" parm.
|
||||
(cplus_demangle_v3_type): Remove prototype.
|
||||
(DMGL_VERBOSE): New macro.
|
||||
(DMGL_TYPES): New macro.
|
||||
|
||||
2002-02-02 H.J. Lu (hjl@gnu.org)
|
||||
|
||||
* demangle.h (cplus_demangle_v3_type): New prototype.
|
||||
|
||||
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
* dis-asm.h : Add support for or32 targets
|
||||
|
||||
2002-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* libiberty.h (C_alloca): Add ATTRIBUTE_MALLOC.
|
||||
|
||||
2002-01-27 David O'Brien <obrien@FreeBSD.org>
|
||||
|
||||
* cgen.h (BFD_VERSION): Use BFD_VERSION_DATE instead.
|
||||
|
||||
2001-12-14 Nick Clifton <nickc@cambridge.redhat.com>
|
||||
|
||||
* dis-asm.h (INIT_DISASSEMBLE_INFO_NO_ARCH): Initialise the
|
||||
disassembler_options field (to NULL).
|
||||
|
||||
2001-12-13 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* bfdlink.h (struct bfd_link_info): Add eh_frame_hdr field.
|
||||
|
||||
2001-12-07 Geoffrey Keating <geoffk@redhat.com>
|
||||
|
||||
* dis-asm.h (print_insn_xstormy16): Declare.
|
||||
|
||||
2001-12-06 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* demangle.h (no_demangling): New.
|
||||
(NO_DEMANGLING_STYLE_STRING): New.
|
||||
|
||||
2001-11-14 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* dis-asm.h (print_insn_i386): Declare.
|
||||
|
||||
2001-11-11 Timothy Wall <twall@alum.mit.edu>
|
||||
|
||||
* dis-asm.h: Fix comment to refer to octets rather than bytes.
|
||||
|
||||
2001-10-30 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* dis-asm.h (print_insn_mmix): Add prototype.
|
||||
|
||||
2001-10-24 Neil Booth <neil@daikokuya.demon.co.uk>
|
||||
|
||||
* safe-ctype.h (_sch_isbasic, IS_ISOBASIC): New.
|
||||
|
||||
2001-10-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* libiberty.h (hex_init): Revert delete.
|
||||
|
||||
* libiberty.h (_hex_value): Const-ify.
|
||||
(hex_init): Delete.
|
||||
|
||||
2001-10-16 Christopher Faylor <cgf@redhat.com>
|
||||
|
||||
* filenames.h: Add cygwin to the list of dosish style path systems.
|
||||
|
||||
2001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* demangle.h (demangler_engine): Const-ify.
|
||||
* libiberty.h (buildargv): Likewise.
|
||||
|
||||
2001-10-03 Vassili Karpov <malc@pulsesoft.com>
|
||||
|
||||
* bfdlink.h (struct bfd_link_info): Add nocopyreloc field.
|
||||
|
||||
2001-09-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* libiberty.h (reconcat): New function.
|
||||
|
||||
2001-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* libiberty.h (concat, concat_length, concat_copy, concat_copy2,
|
||||
ACONCAT): Improve comments.
|
||||
|
||||
2001-09-18 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* objalloc.h (OBJALLOC_ALIGN): Define using offsetof.
|
||||
|
||||
2001-09-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* libiberty.h (concat_length, concat_copy, concat_copy2,
|
||||
libiberty_concat_ptr, ACONCAT): New.
|
||||
|
||||
* libiberty.h (ASTRDUP): New macro.
|
||||
libiberty_optr, libiberty_nptr, libiberty_len): Declare.
|
||||
|
||||
2001-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* ansidecl.h: Update comments reflecting previous change.
|
||||
|
||||
2001-08-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* ansidecl.h (VA_OPEN, VA_CLOSE): Allow multiple uses.
|
||||
|
||||
2001-08-25 Nick Clifton <nickc@cambridge.redhat.com>
|
||||
|
||||
* bfdlink.h (struct bfd_link_info): Change 'spare_dynamic_tags' to
|
||||
unsigned to remove a compile time warning message.
|
||||
|
||||
2001-08-24 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* bfdlink.h (bfd_link_hash_table_type): New. The linker hash
|
||||
table type, bfd_link_generic_hash_table and
|
||||
bfd_link_elf_hash_table.
|
||||
(bfd_link_hash_table): Add a new field, type, for the linker
|
||||
hash table type.
|
||||
|
||||
2001-08-23 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* bfdlink.h (struct bfd_link_info): Add combreloc and
|
||||
spare_dynamic_tags fields.
|
||||
|
||||
2001-08-23 Lars Brinkhoff <lars@nocrew.org>
|
||||
|
||||
* dyn-string.h, fibheap.h, partition.h, sort.h, splay-tree.h:
|
||||
replace "GNU CC" with "GCC".
|
||||
|
||||
2001-08-21 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* fibheap.h: Tidy formatting.
|
||||
(fibnode_t): Limit degree to 31 bits to avoid warning.
|
||||
|
||||
2001-08-20 Daniel Berlin <dan@cgsoftware.com>
|
||||
|
||||
* fibheap.h: New file. Fibonacci heap.
|
||||
|
||||
2001-08-20 Andrew Cagney <ac131313@redhat.com>
|
||||
|
||||
* floatformat.h (floatformat_arm_ext): Document as deprecated.
|
||||
(floatformat_arm_ext_big, floatformat_arm_ext_littlebyte_bigword)
|
||||
(floatformat_ia64_spill_little, floatformat_ia64_quad_little)
|
||||
(floatformat_ia64_spill_big, floatformat_ia64_quad_big)
|
||||
(floatformat_m88110_harris_ext): Declare.
|
||||
|
||||
2001-08-18 Zack Weinberg <zackw@panix.com>
|
||||
|
||||
* ansidecl.h: Reorganize for readability, remove documentation
|
||||
of obsolete macros, document PARAMS and VPARAMS. Add new
|
||||
macros VA_OPEN, VA_CLOSE, and VA_FIXEDARG for nicer variadic
|
||||
function implementation.
|
||||
|
||||
2001-08-16 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* hashtab.h (htab_hash_string): Declare.
|
||||
|
||||
2001-08-10 Andrew Cagney <ac131313@redhat.com>
|
||||
|
||||
* libiberty.h (lbasename): Change function declaration to return a
|
||||
const char pointer.
|
||||
|
||||
2001-08-02 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
* xregex.h (_REGEX_RE_COMP): Define.
|
||||
(re_comp): Define to xre_comp.
|
||||
(re_exec): Define to xre_exec.
|
||||
|
||||
2001-08-02 Charles Wilson <cwilson@ece.gatech.edu>
|
||||
|
||||
* bfdlink.h (struct bfd_link_info): add new boolean
|
||||
field pei386_auto_import.
|
||||
|
||||
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.
|
||||
|
@ -24,11 +205,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.
|
||||
|
@ -141,11 +317,11 @@
|
|||
|
||||
* getopt.h obstack.h: Standarize copyright statement.
|
||||
|
||||
2000-12-05 Richard Henderson <rth@redhat.com>
|
||||
2000-12-04 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* demangle.h: Change "new_abi" to "v3" everywhere.
|
||||
|
||||
2000-11-29 Zack Weinberg <zack@wolery.stanford.edu>
|
||||
2000-11-22 Zack Weinberg <zack@wolery.stanford.edu>
|
||||
|
||||
* libiberty.h: Move #includes to top. Prototype xmalloc_failed.
|
||||
|
||||
|
@ -1895,7 +2071,7 @@ Fri Oct 25 03:18:20 1991 John Gilmore (gnu at cygnus.com)
|
|||
|
||||
Thu Oct 24 22:11:11 1991 John Gilmore (gnu at cygnus.com)
|
||||
|
||||
RS/6000 support, by Metin G. Ozisik, Mimi Phûông-Thåo Võ, and
|
||||
RS/6000 support, by Metin G. Ozisik, Mimi Ph<EFBFBD>û<EFBFBD>ông-Th<EFBFBD>åo V<EFBFBD>õ, and
|
||||
John Gilmore.
|
||||
|
||||
* a.out.gnu.h: Update slightly.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* ANSI and traditional C compatability macros
|
||||
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000
|
||||
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
|
@ -21,146 +21,103 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
|
||||
ANSI C is assumed if __STDC__ is #defined.
|
||||
|
||||
Macro ANSI C definition Traditional C definition
|
||||
----- ---- - ---------- ----------- - ----------
|
||||
PTR `void *' `char *'
|
||||
LONG_DOUBLE `long double' `double'
|
||||
VOLATILE `volatile' `'
|
||||
SIGNED `signed' `'
|
||||
PTRCONST `void *const' `char *'
|
||||
ANSI_PROTOTYPES 1 not defined
|
||||
Macro ANSI C definition Traditional C definition
|
||||
----- ---- - ---------- ----------- - ----------
|
||||
ANSI_PROTOTYPES 1 not defined
|
||||
PTR `void *' `char *'
|
||||
PTRCONST `void *const' `char *'
|
||||
LONG_DOUBLE `long double' `double'
|
||||
const not defined `'
|
||||
volatile not defined `'
|
||||
signed not defined `'
|
||||
VA_START(ap, var) va_start(ap, var) va_start(ap)
|
||||
|
||||
CONST is also defined, but is obsolete. Just use const.
|
||||
Note that it is safe to write "void foo();" indicating a function
|
||||
with no return value, in all K+R compilers we have been able to test.
|
||||
|
||||
obsolete -- DEFUN (name, arglist, args)
|
||||
For declaring functions with prototypes, we also provide these:
|
||||
|
||||
Defines function NAME.
|
||||
PARAMS ((prototype))
|
||||
-- for functions which take a fixed number of arguments. Use this
|
||||
when declaring the function. When defining the function, write a
|
||||
K+R style argument list. For example:
|
||||
|
||||
ARGLIST lists the arguments, separated by commas and enclosed in
|
||||
parentheses. ARGLIST becomes the argument list in traditional C.
|
||||
char *strcpy PARAMS ((char *dest, char *source));
|
||||
...
|
||||
char *
|
||||
strcpy (dest, source)
|
||||
char *dest;
|
||||
char *source;
|
||||
{ ... }
|
||||
|
||||
ARGS list the arguments with their types. It becomes a prototype in
|
||||
ANSI C, and the type declarations in traditional C. Arguments should
|
||||
be separated with `AND'. For functions with a variable number of
|
||||
arguments, the last thing listed should be `DOTS'.
|
||||
|
||||
obsolete -- DEFUN_VOID (name)
|
||||
VPARAMS ((prototype, ...))
|
||||
-- for functions which take a variable number of arguments. Use
|
||||
PARAMS to declare the function, VPARAMS to define it. For example:
|
||||
|
||||
Defines a function NAME, which takes no arguments.
|
||||
int printf PARAMS ((const char *format, ...));
|
||||
...
|
||||
int
|
||||
printf VPARAMS ((const char *format, ...))
|
||||
{
|
||||
...
|
||||
}
|
||||
|
||||
obsolete -- EXFUN (name, (prototype)) -- obsolete.
|
||||
For writing functions which take variable numbers of arguments, we
|
||||
also provide the VA_OPEN, VA_CLOSE, and VA_FIXEDARG macros. These
|
||||
hide the differences between K+R <varargs.h> and C89 <stdarg.h> more
|
||||
thoroughly than the simple VA_START() macro mentioned above.
|
||||
|
||||
Replaced by PARAMS. Do not use; will disappear someday soon.
|
||||
Was used in external function declarations.
|
||||
In ANSI C it is `NAME PROTOTYPE' (so PROTOTYPE should be enclosed in
|
||||
parentheses). In traditional C it is `NAME()'.
|
||||
For a function that takes no arguments, PROTOTYPE should be `(void)'.
|
||||
VA_OPEN and VA_CLOSE are used *instead of* va_start and va_end.
|
||||
Immediately after VA_OPEN, put a sequence of VA_FIXEDARG calls
|
||||
corresponding to the list of fixed arguments. Then use va_arg
|
||||
normally to get the variable arguments, or pass your va_list object
|
||||
around. You do not declare the va_list yourself; VA_OPEN does it
|
||||
for you.
|
||||
|
||||
obsolete -- PROTO (type, name, (prototype) -- obsolete.
|
||||
Here is a complete example:
|
||||
|
||||
This one has also been replaced by PARAMS. Do not use.
|
||||
int
|
||||
printf VPARAMS ((const char *format, ...))
|
||||
{
|
||||
int result;
|
||||
|
||||
PARAMS ((args))
|
||||
VA_OPEN (ap, format);
|
||||
VA_FIXEDARG (ap, const char *, format);
|
||||
|
||||
We could use the EXFUN macro to handle prototype declarations, but
|
||||
the name is misleading and the result is ugly. So we just define a
|
||||
simple macro to handle the parameter lists, as in:
|
||||
result = vfprintf (stdout, format, ap);
|
||||
VA_CLOSE (ap);
|
||||
|
||||
static int foo PARAMS ((int, char));
|
||||
return result;
|
||||
}
|
||||
|
||||
This produces: `static int foo();' or `static int foo (int, char);'
|
||||
|
||||
EXFUN would have done it like this:
|
||||
You can declare variables either before or after the VA_OPEN,
|
||||
VA_FIXEDARG sequence. Also, VA_OPEN and VA_CLOSE are the beginning
|
||||
and end of a block. They must appear at the same nesting level,
|
||||
and any variables declared after VA_OPEN go out of scope at
|
||||
VA_CLOSE. Unfortunately, with a K+R compiler, that includes the
|
||||
argument list. You can have multiple instances of VA_OPEN/VA_CLOSE
|
||||
pairs in a single function in case you need to traverse the
|
||||
argument list more than once.
|
||||
|
||||
static int EXFUN (foo, (int, char));
|
||||
For ease of writing code which uses GCC extensions but needs to be
|
||||
portable to other compilers, we provide the GCC_VERSION macro that
|
||||
simplifies testing __GNUC__ and __GNUC_MINOR__ together, and various
|
||||
wrappers around __attribute__. Also, __extension__ will be #defined
|
||||
to nothing if it doesn't work. See below.
|
||||
|
||||
but the function is not external...and it's hard to visually parse
|
||||
the function name out of the mess. EXFUN should be considered
|
||||
obsolete; new code should be written to use PARAMS.
|
||||
|
||||
DOTS is also obsolete.
|
||||
|
||||
Examples:
|
||||
|
||||
extern int printf PARAMS ((const char *format, ...));
|
||||
*/
|
||||
This header also defines a lot of obsolete macros:
|
||||
CONST, VOLATILE, SIGNED, PROTO, EXFUN, DEFUN, DEFUN_VOID,
|
||||
AND, DOTS, NOARGS. Don't use them. */
|
||||
|
||||
#ifndef _ANSIDECL_H
|
||||
|
||||
#define _ANSIDECL_H 1
|
||||
|
||||
#define _ANSIDECL_H 1
|
||||
|
||||
/* Every source file includes this file,
|
||||
so they will all get the switch for lint. */
|
||||
/* LINTLIBRARY */
|
||||
|
||||
|
||||
#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32)
|
||||
/* All known AIX compilers implement these things (but don't always
|
||||
define __STDC__). The RISC/OS MIPS compiler defines these things
|
||||
in SVR4 mode, but does not define __STDC__. */
|
||||
|
||||
#define PTR void *
|
||||
#define PTRCONST void *CONST
|
||||
#define LONG_DOUBLE long double
|
||||
|
||||
#ifndef IN_GCC
|
||||
#define AND ,
|
||||
#define NOARGS void
|
||||
#define VOLATILE volatile
|
||||
#define SIGNED signed
|
||||
#endif /* ! IN_GCC */
|
||||
|
||||
#define PARAMS(paramlist) paramlist
|
||||
#define ANSI_PROTOTYPES 1
|
||||
|
||||
#define VPARAMS(ARGS) ARGS
|
||||
#define VA_START(va_list,var) va_start(va_list,var)
|
||||
|
||||
/* These are obsolete. Do not use. */
|
||||
#ifndef IN_GCC
|
||||
#define CONST const
|
||||
#define DOTS , ...
|
||||
#define PROTO(type, name, arglist) type name arglist
|
||||
#define EXFUN(name, proto) name proto
|
||||
#define DEFUN(name, arglist, args) name(args)
|
||||
#define DEFUN_VOID(name) name(void)
|
||||
#endif /* ! IN_GCC */
|
||||
|
||||
#else /* Not ANSI C. */
|
||||
|
||||
#define PTR char *
|
||||
#define PTRCONST PTR
|
||||
#define LONG_DOUBLE double
|
||||
|
||||
#ifndef IN_GCC
|
||||
#define AND ;
|
||||
#define NOARGS
|
||||
#define VOLATILE
|
||||
#define SIGNED
|
||||
#endif /* !IN_GCC */
|
||||
|
||||
#ifndef const /* some systems define it in header files for non-ansi mode */
|
||||
#define const
|
||||
#endif
|
||||
|
||||
#define PARAMS(paramlist) ()
|
||||
|
||||
#define VPARAMS(ARGS) (va_alist) va_dcl
|
||||
#define VA_START(va_list,var) va_start(va_list)
|
||||
|
||||
/* These are obsolete. Do not use. */
|
||||
#ifndef IN_GCC
|
||||
#define CONST
|
||||
#define DOTS
|
||||
#define PROTO(type, name, arglist) type name ()
|
||||
#define EXFUN(name, proto) name()
|
||||
#define DEFUN(name, arglist, args) name arglist args;
|
||||
#define DEFUN_VOID(name) name()
|
||||
#endif /* ! IN_GCC */
|
||||
|
||||
#endif /* ANSI C. */
|
||||
|
||||
/* Using MACRO(x,y) in cpp #if conditionals does not work with some
|
||||
older preprocessors. Thus we can't define something like this:
|
||||
|
||||
|
@ -179,6 +136,101 @@ So instead we use the macro below and test it against specific values. */
|
|||
#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
|
||||
#endif /* GCC_VERSION */
|
||||
|
||||
#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32)
|
||||
/* All known AIX compilers implement these things (but don't always
|
||||
define __STDC__). The RISC/OS MIPS compiler defines these things
|
||||
in SVR4 mode, but does not define __STDC__. */
|
||||
|
||||
#define ANSI_PROTOTYPES 1
|
||||
#define PTR void *
|
||||
#define PTRCONST void *const
|
||||
#define LONG_DOUBLE long double
|
||||
|
||||
#define PARAMS(ARGS) ARGS
|
||||
#define VPARAMS(ARGS) ARGS
|
||||
#define VA_START(VA_LIST, VAR) va_start(VA_LIST, VAR)
|
||||
|
||||
/* variadic function helper macros */
|
||||
/* "struct Qdmy" swallows the semicolon after VA_OPEN/VA_FIXEDARG's
|
||||
use without inhibiting further decls and without declaring an
|
||||
actual variable. */
|
||||
#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP, VAR); { struct Qdmy
|
||||
#define VA_CLOSE(AP) } va_end(AP); }
|
||||
#define VA_FIXEDARG(AP, T, N) struct Qdmy
|
||||
|
||||
#undef const
|
||||
#undef volatile
|
||||
#undef signed
|
||||
|
||||
/* inline requires special treatment; it's in C99, and GCC >=2.7 supports
|
||||
it too, but it's not in C89. */
|
||||
#undef inline
|
||||
#if __STDC_VERSION__ > 199901L
|
||||
/* it's a keyword */
|
||||
#else
|
||||
# if GCC_VERSION >= 2007
|
||||
# define inline __inline__ /* __inline__ prevents -pedantic warnings */
|
||||
# else
|
||||
# define inline /* nothing */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* These are obsolete. Do not use. */
|
||||
#ifndef IN_GCC
|
||||
#define CONST const
|
||||
#define VOLATILE volatile
|
||||
#define SIGNED signed
|
||||
|
||||
#define PROTO(type, name, arglist) type name arglist
|
||||
#define EXFUN(name, proto) name proto
|
||||
#define DEFUN(name, arglist, args) name(args)
|
||||
#define DEFUN_VOID(name) name(void)
|
||||
#define AND ,
|
||||
#define DOTS , ...
|
||||
#define NOARGS void
|
||||
#endif /* ! IN_GCC */
|
||||
|
||||
#else /* Not ANSI C. */
|
||||
|
||||
#undef ANSI_PROTOTYPES
|
||||
#define PTR char *
|
||||
#define PTRCONST PTR
|
||||
#define LONG_DOUBLE double
|
||||
|
||||
#define PARAMS(args) ()
|
||||
#define VPARAMS(args) (va_alist) va_dcl
|
||||
#define VA_START(va_list, var) va_start(va_list)
|
||||
|
||||
#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP); { struct Qdmy
|
||||
#define VA_CLOSE(AP) } va_end(AP); }
|
||||
#define VA_FIXEDARG(AP, TYPE, NAME) TYPE NAME = va_arg(AP, TYPE)
|
||||
|
||||
/* some systems define these in header files for non-ansi mode */
|
||||
#undef const
|
||||
#undef volatile
|
||||
#undef signed
|
||||
#undef inline
|
||||
#define const
|
||||
#define volatile
|
||||
#define signed
|
||||
#define inline
|
||||
|
||||
#ifndef IN_GCC
|
||||
#define CONST
|
||||
#define VOLATILE
|
||||
#define SIGNED
|
||||
|
||||
#define PROTO(type, name, arglist) type name ()
|
||||
#define EXFUN(name, proto) name()
|
||||
#define DEFUN(name, arglist, args) name arglist args;
|
||||
#define DEFUN_VOID(name) name()
|
||||
#define AND ;
|
||||
#define DOTS
|
||||
#define NOARGS
|
||||
#endif /* ! IN_GCC */
|
||||
|
||||
#endif /* ANSI C. */
|
||||
|
||||
/* Define macros for some gcc attributes. This permits us to use the
|
||||
macros freely, and know that they will come into play for the
|
||||
version of gcc in which they are supported. */
|
||||
|
@ -229,20 +281,12 @@ So instead we use the macro below and test it against specific values. */
|
|||
#define __extension__
|
||||
#endif
|
||||
|
||||
/* Bootstrap support: Autoconf will possibly define the `inline' or
|
||||
`const' keywords as macros, however this is only valid for the
|
||||
stage1 compiler. If we detect a modern version of gcc,
|
||||
unconditionally reset the values. This makes sure the right thing
|
||||
happens in stage2 and later. We need to do this very early;
|
||||
i.e. before any header files that might use these keywords.
|
||||
Otherwise conflicts might occur. */
|
||||
|
||||
/* Bootstrap support: Adjust certain macros defined by Autoconf,
|
||||
which are only valid for the stage1 compiler. If we detect
|
||||
a modern version of GCC, we are probably in stage2 or beyond,
|
||||
so unconditionally reset the values. Note that const, inline,
|
||||
etc. have been dealt with above. */
|
||||
#if (GCC_VERSION >= 2007)
|
||||
# ifdef __STDC__
|
||||
# undef const
|
||||
# endif
|
||||
# undef inline
|
||||
# define inline __inline__ /* __inline__ prevents -pedantic warnings */
|
||||
# ifndef HAVE_LONG_DOUBLE
|
||||
# define HAVE_LONG_DOUBLE 1
|
||||
# endif
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
2001-09-18 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* aout64.h: Formatting fixes.
|
||||
(N_TXTADDR): Evaluate to a bfd_vma.
|
||||
(N_DATADDR): Avoid negative unsigned warning.
|
||||
* hp300hpux.h: Formatting fixes.
|
||||
(N_DATADDR): Avoid negative unsigned warning.
|
||||
|
||||
Mon Apr 3 13:29:08 2000 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
* aout64.h (RELOC_EXT_BITS_EXTERN_BIG): Wrap definition in #ifndef.
|
||||
|
|
|
@ -131,7 +131,8 @@ struct external_exec
|
|||
/* This macro is only relevant for ZMAGIC files; QMAGIC always has the header
|
||||
in the text. */
|
||||
#ifndef N_HEADER_IN_TEXT
|
||||
#define N_HEADER_IN_TEXT(x) (((x).a_entry & (TARGET_PAGE_SIZE-1)) >= EXEC_BYTES_SIZE)
|
||||
#define N_HEADER_IN_TEXT(x) \
|
||||
(((x).a_entry & (TARGET_PAGE_SIZE-1)) >= EXEC_BYTES_SIZE)
|
||||
#endif
|
||||
|
||||
/* Sun shared libraries, not linux. This macro is only relevant for ZMAGIC
|
||||
|
@ -151,15 +152,17 @@ struct external_exec
|
|||
|
||||
#ifndef N_TXTADDR
|
||||
#define N_TXTADDR(x) \
|
||||
(/* The address of a QMAGIC file is always one page in, */ \
|
||||
/* with the header in the text. */ \
|
||||
N_IS_QMAGIC (x) ? TARGET_PAGE_SIZE + EXEC_BYTES_SIZE : \
|
||||
N_MAGIC(x) != ZMAGIC ? 0 : /* object file or NMAGIC */\
|
||||
N_SHARED_LIB(x) ? 0 : \
|
||||
N_HEADER_IN_TEXT(x) ? \
|
||||
TEXT_START_ADDR + EXEC_BYTES_SIZE : /* no padding */\
|
||||
TEXT_START_ADDR /* a page of padding */\
|
||||
)
|
||||
(/* The address of a QMAGIC file is always one page in, */ \
|
||||
/* with the header in the text. */ \
|
||||
N_IS_QMAGIC (x) \
|
||||
? (bfd_vma) TARGET_PAGE_SIZE + EXEC_BYTES_SIZE \
|
||||
: (N_MAGIC (x) != ZMAGIC \
|
||||
? (bfd_vma) 0 /* object file or NMAGIC */ \
|
||||
: (N_SHARED_LIB (x) \
|
||||
? (bfd_vma) 0 \
|
||||
: (N_HEADER_IN_TEXT (x) \
|
||||
? (bfd_vma) TEXT_START_ADDR + EXEC_BYTES_SIZE \
|
||||
: (bfd_vma) TEXT_START_ADDR))))
|
||||
#endif
|
||||
|
||||
/* If N_HEADER_IN_TEXT is not true for ZMAGIC, there is some padding
|
||||
|
@ -177,14 +180,15 @@ struct external_exec
|
|||
|
||||
/* Offset in an a.out of the start of the text section. */
|
||||
#ifndef N_TXTOFF
|
||||
#define N_TXTOFF(x) \
|
||||
(/* For {O,N,Q}MAGIC, no padding. */ \
|
||||
N_MAGIC(x) != ZMAGIC ? EXEC_BYTES_SIZE : \
|
||||
N_SHARED_LIB(x) ? 0 : \
|
||||
N_HEADER_IN_TEXT(x) ? \
|
||||
EXEC_BYTES_SIZE : /* no padding */\
|
||||
ZMAGIC_DISK_BLOCK_SIZE /* a page of padding */\
|
||||
)
|
||||
#define N_TXTOFF(x) \
|
||||
(/* For {O,N,Q}MAGIC, no padding. */ \
|
||||
N_MAGIC (x) != ZMAGIC \
|
||||
? EXEC_BYTES_SIZE \
|
||||
: (N_SHARED_LIB (x) \
|
||||
? 0 \
|
||||
: (N_HEADER_IN_TEXT (x) \
|
||||
? EXEC_BYTES_SIZE /* no padding */ \
|
||||
: ZMAGIC_DISK_BLOCK_SIZE /* a page of padding */)))
|
||||
#endif
|
||||
/* Size of the text section. It's always as stated, except that we
|
||||
offset it to `undo' the adjustment to N_TXTADDR and N_TXTOFF
|
||||
|
@ -193,25 +197,28 @@ struct external_exec
|
|||
exec header to be part of the text segment.) */
|
||||
#ifndef N_TXTSIZE
|
||||
#define N_TXTSIZE(x) \
|
||||
(/* For QMAGIC, we don't consider the header part of the text section. */\
|
||||
N_IS_QMAGIC (x) ? (x).a_text - EXEC_BYTES_SIZE : \
|
||||
(N_MAGIC(x) != ZMAGIC || N_SHARED_LIB(x)) ? (x).a_text : \
|
||||
N_HEADER_IN_TEXT(x) ? \
|
||||
(x).a_text - EXEC_BYTES_SIZE: /* no padding */\
|
||||
(x).a_text /* a page of padding */\
|
||||
)
|
||||
(/* For QMAGIC, we don't consider the header part of the text section. */\
|
||||
N_IS_QMAGIC (x) \
|
||||
? (x).a_text - EXEC_BYTES_SIZE \
|
||||
: ((N_MAGIC (x) != ZMAGIC || N_SHARED_LIB (x)) \
|
||||
? (x).a_text \
|
||||
: (N_HEADER_IN_TEXT (x) \
|
||||
? (x).a_text - EXEC_BYTES_SIZE /* no padding */ \
|
||||
: (x).a_text /* a page of padding */ )))
|
||||
#endif
|
||||
/* The address of the data segment in virtual memory.
|
||||
It is the text segment address, plus text segment size, rounded
|
||||
up to a N_SEGSIZE boundary for pure or pageable files. */
|
||||
#ifndef N_DATADDR
|
||||
#define N_DATADDR(x) \
|
||||
(N_MAGIC(x)==OMAGIC? (N_TXTADDR(x)+N_TXTSIZE(x)) \
|
||||
: (N_SEGSIZE(x) + ((N_TXTADDR(x)+N_TXTSIZE(x)-1) & ~(N_SEGSIZE(x)-1))))
|
||||
(N_MAGIC (x) == OMAGIC \
|
||||
? (N_TXTADDR (x) + N_TXTSIZE (x)) \
|
||||
: (N_SEGSIZE (x) + ((N_TXTADDR (x) + N_TXTSIZE (x) - 1) \
|
||||
& ~ (bfd_vma) (N_SEGSIZE (x) - 1))))
|
||||
#endif
|
||||
/* The address of the BSS segment -- immediately after the data segment. */
|
||||
|
||||
#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data)
|
||||
#define N_BSSADDR(x) (N_DATADDR (x) + (x).a_data)
|
||||
|
||||
/* Offsets of the various portions of the file after the text segment. */
|
||||
|
||||
|
@ -228,21 +235,19 @@ struct external_exec
|
|||
for NMAGIC. */
|
||||
|
||||
#ifndef N_DATOFF
|
||||
#define N_DATOFF(x) \
|
||||
(N_TXTOFF(x) + N_TXTSIZE(x))
|
||||
#define N_DATOFF(x) ( N_TXTOFF (x) + N_TXTSIZE (x) )
|
||||
#endif
|
||||
|
||||
#ifndef N_TRELOFF
|
||||
#define N_TRELOFF(x) ( N_DATOFF(x) + (x).a_data )
|
||||
#define N_TRELOFF(x) ( N_DATOFF (x) + (x).a_data )
|
||||
#endif
|
||||
#ifndef N_DRELOFF
|
||||
#define N_DRELOFF(x) ( N_TRELOFF(x) + (x).a_trsize )
|
||||
#define N_DRELOFF(x) ( N_TRELOFF (x) + (x).a_trsize )
|
||||
#endif
|
||||
#ifndef N_SYMOFF
|
||||
#define N_SYMOFF(x) ( N_DRELOFF(x) + (x).a_drsize )
|
||||
#define N_SYMOFF(x) ( N_DRELOFF (x) + (x).a_drsize )
|
||||
#endif
|
||||
#ifndef N_STROFF
|
||||
#define N_STROFF(x) ( N_SYMOFF(x) + (x).a_syms )
|
||||
#define N_STROFF(x) ( N_SYMOFF (x) + (x).a_syms )
|
||||
#endif
|
||||
|
||||
/* Symbols */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Special version of <a.out.h> for use under hp-ux.
|
||||
Copyright 1988, 1993, 1995 Free Software Foundation, Inc. */
|
||||
Copyright 1988, 1993, 1995, 2001 Free Software Foundation, Inc. */
|
||||
|
||||
struct hp300hpux_exec_bytes
|
||||
{
|
||||
|
@ -73,13 +73,13 @@ struct hp300hpux_header_extension
|
|||
#define N_BADMAG(x) ((_N_BADMAG (x)) || (_N_BADMACH (x)))
|
||||
|
||||
#define N_DATADDR(x) \
|
||||
((N_MAGIC(x)==OMAGIC || N_MAGIC(x)==HPUX_DOT_O_MAGIC) ? \
|
||||
(N_TXTADDR(x)+N_TXTSIZE(x)) \
|
||||
: (N_SEGSIZE(x) + ((N_TXTADDR(x)+N_TXTSIZE(x)-1) & ~(N_SEGSIZE(x)-1))))
|
||||
((N_MAGIC (x) == OMAGIC || N_MAGIC (x) == HPUX_DOT_O_MAGIC) \
|
||||
? (N_TXTADDR (x) + N_TXTSIZE (x)) \
|
||||
: (N_SEGSIZE (x) + ((N_TXTADDR (x) + N_TXTSIZE (x) - 1) \
|
||||
& ~ (bfd_vma) (N_SEGSIZE (x) - 1))))
|
||||
|
||||
#define _N_BADMACH(x) \
|
||||
(((N_MACHTYPE (x)) != HP9000S200_ID) && \
|
||||
((N_MACHTYPE (x)) != HP98x6_ID))
|
||||
#define _N_BADMACH(x) \
|
||||
(((N_MACHTYPE (x)) != HP9000S200_ID) && ((N_MACHTYPE (x)) != HP98x6_ID))
|
||||
|
||||
#define _N_BADMAG(x) (N_MAGIC(x) != HPUX_DOT_O_MAGIC \
|
||||
&& N_MAGIC(x) != OMAGIC \
|
||||
|
|
|
@ -41,6 +41,15 @@ enum bfd_link_discard
|
|||
discard_l, /* Discard local temporary symbols. */
|
||||
discard_all /* Discard all locals. */
|
||||
};
|
||||
|
||||
/* Describes the type of hash table entry structure being used.
|
||||
Different hash table structure have different fields and so
|
||||
support different linking features. */
|
||||
enum bfd_link_hash_table_type
|
||||
{
|
||||
bfd_link_generic_hash_table,
|
||||
bfd_link_elf_hash_table
|
||||
};
|
||||
|
||||
/* These are the possible types of an entry in the BFD link hash
|
||||
table. */
|
||||
|
@ -146,6 +155,8 @@ struct bfd_link_hash_table
|
|||
struct bfd_link_hash_entry *undefs;
|
||||
/* Entries are added to the tail of the undefs list. */
|
||||
struct bfd_link_hash_entry *undefs_tail;
|
||||
/* The type of the ink hash table. */
|
||||
enum bfd_link_hash_table_type type;
|
||||
};
|
||||
|
||||
/* Look up an entry in a link hash table. If FOLLOW is true, this
|
||||
|
@ -274,6 +285,25 @@ struct bfd_link_info
|
|||
|
||||
/* May be used to set DT_FLAGS_1 for ELF. */
|
||||
bfd_vma flags_1;
|
||||
|
||||
/* True if auto-import thunks for DATA items in pei386 DLLs
|
||||
should be generated/linked against. */
|
||||
boolean pei386_auto_import;
|
||||
|
||||
/* True if non-PLT relocs should be merged into one reloc section
|
||||
and sorted so that relocs against the same symbol come together. */
|
||||
boolean combreloc;
|
||||
|
||||
/* True if executable should not contain copy relocs.
|
||||
Setting this true may result in a non-sharable text segment. */
|
||||
boolean nocopyreloc;
|
||||
|
||||
/* True if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment
|
||||
should be created. */
|
||||
boolean eh_frame_hdr;
|
||||
|
||||
/* How many spare .dynamic DT_NULL entries should be added? */
|
||||
unsigned int spare_dynamic_tags;
|
||||
};
|
||||
|
||||
/* This structures holds a set of callback functions. These are
|
||||
|
|
|
@ -1,3 +1,70 @@
|
|||
2002-02-01 Tom Rix <trix@redhat.com>
|
||||
|
||||
* xcoff.h: Conditionally support <aiaff> for pre AIX 4.3.
|
||||
|
||||
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
|
||||
format.
|
||||
(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.
|
||||
Fix xcoff_big_format_p macro.
|
||||
|
||||
2001-12-16 Tom Rix <trix@redhat.com>
|
||||
|
||||
* 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...
|
||||
(COFF_ADJUST_SYM_IN/OUT): Optionally put page flag into symbol
|
||||
value.
|
||||
* tic54x.h: ...to here.
|
||||
|
||||
2001-10-26 Christian Groessler <cpg@aladdin.de>
|
||||
|
||||
* external.h (GET_LINENO_LNNO): Fix usage of H_GET_32/16.
|
||||
(PUT_LINENO_LNNO): Likewise with H_PUT_32/16.
|
||||
|
||||
2001-09-21 Nick Clifton <nickc@cambridge.redhat.com>
|
||||
|
||||
* ti.h (GET_SCNHDR_PAGE): Fix compile time warning.
|
||||
|
||||
2001-09-18 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* external.h (GET_LINENO_LNNO): Use H_GET_32/16.
|
||||
(PUT_LINENO_LNNO): Use H_PUT_32/16.
|
||||
* m88k.h (GET_LNSZ_SIZE, GET_LNSZ_LNNO, GET_SCN_NRELOC,
|
||||
GET_SCN_NLINNO): Use H_GET_32.
|
||||
(PUT_LNSZ_LNNO, PUT_LNSZ_SIZE, PUT_SCN_NRELOC, PUT_SCN_NLINNO):
|
||||
Use H_PUT_32.
|
||||
* ti.h: Formatting fixes. Make use of H_GET_* and H_PUT_* throughout.
|
||||
* xcoff.h: White space changes.
|
||||
|
||||
2001-09-05 Tom Rix <trix@redhat.com>
|
||||
|
||||
* xcoff.h : Add XCOFF_SYSCALL32 and XCOFF_SYSCALL64 hash table flags.
|
||||
|
||||
2001-08-27 Andreas Jaeger <aj@suse.de>
|
||||
|
||||
* xcoff.h (struct __rtinit): Make proper prototype for rtl.
|
||||
|
||||
Fri Aug 24 01:18:51 2001 J"orn Rennecke <amylaar@redhat.com>
|
||||
|
||||
* internal.h (R_JMP2, R_JMPL2, R_MOVL2): Comment spelling fix.
|
||||
|
||||
2001-04-05 Tom Rix <trix@redhat.com>
|
||||
|
||||
* rs6000.h : move xcoff32 external structures from xcofflink.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* ARM COFF support for BFD.
|
||||
Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
|
@ -50,6 +50,7 @@
|
|||
#define F_APCS_26 (0x0400)
|
||||
#define F_APCS_SET (0x0800)
|
||||
#define F_SOFT_FLOAT (0x2000)
|
||||
#define F_VFP_FLOAT (0x4000)
|
||||
|
||||
/* Bits stored in flags field of the internal_f structure */
|
||||
|
||||
|
|
|
@ -113,12 +113,12 @@ struct external_lineno
|
|||
#define LINESZ (4 + L_LNNO_SIZE)
|
||||
|
||||
#if L_LNNO_SIZE == 4
|
||||
#define GET_LINENO_LNNO(abfd, ext) bfd_h_get_32 (abfd, (bfd_byte *) (ext->l_lnno));
|
||||
#define PUT_LINENO_LNNO(abfd, val, ext) bfd_h_put_32 (abfd, val, (bfd_byte *) (ext->l_lnno));
|
||||
#define GET_LINENO_LNNO(abfd, ext) H_GET_32 (abfd, (ext->l_lnno))
|
||||
#define PUT_LINENO_LNNO(abfd, val, ext) H_PUT_32 (abfd, val, (ext->l_lnno))
|
||||
#endif
|
||||
#if L_LNNO_SIZE == 2
|
||||
#define GET_LINENO_LNNO(abfd, ext) bfd_h_get_16 (abfd, (bfd_byte *) (ext->l_lnno));
|
||||
#define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_16 (abfd,val, (bfd_byte *) (ext->l_lnno));
|
||||
#define GET_LINENO_LNNO(abfd, ext) H_GET_16 (abfd, (ext->l_lnno))
|
||||
#define PUT_LINENO_LNNO(abfd, val, ext) H_PUT_16 (abfd, val, (ext->l_lnno))
|
||||
#endif
|
||||
|
||||
#endif /* not DO_NOT_DEFINE_LINENO */
|
||||
|
|
|
@ -639,7 +639,7 @@ struct internal_reloc
|
|||
#define R_JMP1 0x43
|
||||
|
||||
/* This reloc identifies a bra with an 8-bit pc-relative
|
||||
target that was formerlly a jmp insn with a 16bit target. */
|
||||
target that was formerly a jmp insn with a 16bit target. */
|
||||
#define R_JMP2 0x44
|
||||
|
||||
/* ??? */
|
||||
|
@ -651,7 +651,7 @@ struct internal_reloc
|
|||
#define R_JMPL1 0x46
|
||||
|
||||
/* This reloc identifies a bra with an 8-bit pc-relative
|
||||
target that was formerlly a jmp insn with a 24bit target. */
|
||||
target that was formerly a jmp insn with a 24bit target. */
|
||||
#define R_JMPL2 0x47
|
||||
|
||||
/* This reloc identifies mov.b instructions with a 24bit absolute
|
||||
|
@ -679,7 +679,7 @@ struct internal_reloc
|
|||
insn with a 16bit absolute address. */
|
||||
#define R_MOVL1 0x4c
|
||||
|
||||
/* This reloc identifies mov.[wl] insns which formerlly had
|
||||
/* This reloc identifies mov.[wl] insns which formerly had
|
||||
a 32/24bit absolute address and now have a 16bit absolute address. */
|
||||
#define R_MOVL2 0x4d
|
||||
|
||||
|
|
|
@ -158,20 +158,22 @@ union external_auxent
|
|||
} x_tv; /* info about .tv section (in auxent of symbol .tv)) */
|
||||
};
|
||||
|
||||
#define GET_FCN_LNNOPTR(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *)ext->x_sym.x_fcnary.x_fcn.x_lnnoptr)
|
||||
#define GET_FCN_ENDNDX(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) ext->x_sym.x_fcnary.x_fcn.x_endndx)
|
||||
#define PUT_FCN_LNNOPTR(abfd, in, ext) bfd_h_put_32(abfd, in, (bfd_byte *) ext->x_sym.x_fcnary.x_fcn.x_lnnoptr)
|
||||
#define PUT_FCN_ENDNDX(abfd, in, ext) bfd_h_put_32(abfd, in, (bfd_byte *) ext->x_sym.x_fcnary.x_fcn.x_endndx)
|
||||
#define GET_LNSZ_SIZE(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) ext->x_sym.x_misc.x_lnsz.x_size)
|
||||
#define GET_LNSZ_LNNO(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) ext->x_sym.x_misc.x_lnsz.x_lnno)
|
||||
#define PUT_LNSZ_LNNO(abfd, in, ext) bfd_h_put_32(abfd, in, (bfd_byte *) ext->x_sym.x_misc.x_lnsz.x_lnno)
|
||||
#define PUT_LNSZ_SIZE(abfd, in, ext) bfd_h_put_32(abfd, in, (bfd_byte *) ext->x_sym.x_misc.x_lnsz.x_size)
|
||||
#define GET_SCN_SCNLEN(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) ext->x_scn.x_scnlen)
|
||||
#define GET_SCN_NRELOC(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) ext->x_scn.x_nreloc)
|
||||
#define GET_SCN_NLINNO(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) ext->x_scn.x_nlinno)
|
||||
#define PUT_SCN_SCNLEN(abfd,in, ext) bfd_h_put_32(abfd, in, (bfd_byte *) ext->x_scn.x_scnlen)
|
||||
#define PUT_SCN_NRELOC(abfd,in, ext) bfd_h_put_32(abfd, in, (bfd_byte *)ext->x_scn.x_nreloc)
|
||||
#define PUT_SCN_NLINNO(abfd,in, ext) bfd_h_put_32(abfd,in, (bfd_byte *) ext->x_scn.x_nlinno)
|
||||
#define GET_LNSZ_SIZE(abfd, ext) \
|
||||
H_GET_32 (abfd, ext->x_sym.x_misc.x_lnsz.x_size)
|
||||
#define GET_LNSZ_LNNO(abfd, ext) \
|
||||
H_GET_32 (abfd, ext->x_sym.x_misc.x_lnsz.x_lnno)
|
||||
#define PUT_LNSZ_LNNO(abfd, in, ext) \
|
||||
H_PUT_32 (abfd, in, ext->x_sym.x_misc.x_lnsz.x_lnno)
|
||||
#define PUT_LNSZ_SIZE(abfd, in, ext) \
|
||||
H_PUT_32 (abfd, in, ext->x_sym.x_misc.x_lnsz.x_size)
|
||||
#define GET_SCN_NRELOC(abfd, ext) \
|
||||
H_GET_32 (abfd, ext->x_scn.x_nreloc)
|
||||
#define GET_SCN_NLINNO(abfd, ext) \
|
||||
H_GET_32 (abfd, ext->x_scn.x_nlinno)
|
||||
#define PUT_SCN_NRELOC(abfd, in, ext) \
|
||||
H_PUT_32 (abfd, in, ext->x_scn.x_nreloc)
|
||||
#define PUT_SCN_NLINNO(abfd, in, ext) \
|
||||
H_PUT_32 (abfd,in, ext->x_scn.x_nlinno)
|
||||
|
||||
#define SYMENT struct external_syment
|
||||
#define SYMESZ 20
|
||||
|
|
|
@ -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
|
|
@ -91,17 +91,23 @@ struct external_filehdr
|
|||
|
||||
/* we need to read/write an extra field in the coff file header */
|
||||
#ifndef COFF_ADJUST_FILEHDR_IN_POST
|
||||
#define COFF_ADJUST_FILEHDR_IN_POST(abfd,src,dst) \
|
||||
do { ((struct internal_filehdr *)(dst))->f_target_id = \
|
||||
bfd_h_get_16(abfd, (bfd_byte *)(((FILHDR *)(src))->f_target_id)); \
|
||||
} while(0)
|
||||
#define COFF_ADJUST_FILEHDR_IN_POST(abfd, src, dst) \
|
||||
do \
|
||||
{ \
|
||||
((struct internal_filehdr *)(dst))->f_target_id = \
|
||||
H_GET_16 (abfd, ((FILHDR *)(src))->f_target_id); \
|
||||
} \
|
||||
while (0)
|
||||
#endif
|
||||
|
||||
#ifndef COFF_ADJUST_FILEHDR_OUT_POST
|
||||
#define COFF_ADJUST_FILEHDR_OUT_POST(abfd,src,dst) \
|
||||
do { bfd_h_put_16(abfd, ((struct internal_filehdr *)(src))->f_target_id, \
|
||||
(bfd_byte *)(((FILHDR *)(dst))->f_target_id)); \
|
||||
} while(0)
|
||||
#define COFF_ADJUST_FILEHDR_OUT_POST(abfd, src, dst) \
|
||||
do \
|
||||
{ \
|
||||
H_PUT_16 (abfd, ((struct internal_filehdr *)(src))->f_target_id, \
|
||||
((FILHDR *)(dst))->f_target_id); \
|
||||
} \
|
||||
while (0)
|
||||
#endif
|
||||
|
||||
#define FILHDR struct external_filehdr
|
||||
|
@ -200,74 +206,59 @@ struct external_scnhdr {
|
|||
Assume we're dealing with the COFF2 scnhdr structure, and adjust
|
||||
accordingly
|
||||
*/
|
||||
#define GET_SCNHDR_NRELOC(ABFD,PTR) \
|
||||
(COFF2_P(ABFD) ? bfd_h_get_32 (ABFD,PTR) : bfd_h_get_16 (ABFD, PTR))
|
||||
#define PUT_SCNHDR_NRELOC(ABFD,VAL,PTR) \
|
||||
(COFF2_P(ABFD) ? bfd_h_put_32 (ABFD,VAL,PTR) : bfd_h_put_16 (ABFD,VAL,PTR))
|
||||
#define GET_SCNHDR_NLNNO(ABFD,PTR) \
|
||||
(COFF2_P(ABFD) ? bfd_h_get_32 (ABFD,PTR) : bfd_h_get_16 (ABFD, (PTR)-2))
|
||||
#define PUT_SCNHDR_NLNNO(ABFD,VAL,PTR) \
|
||||
(COFF2_P(ABFD) ? bfd_h_put_32 (ABFD,VAL,PTR) : bfd_h_put_16 (ABFD,VAL,(PTR)-2))
|
||||
#define GET_SCNHDR_FLAGS(ABFD,PTR) \
|
||||
(COFF2_P(ABFD) ? bfd_h_get_32 (ABFD,PTR) : bfd_h_get_16 (ABFD, (PTR)-4))
|
||||
#define PUT_SCNHDR_FLAGS(ABFD,VAL,PTR) \
|
||||
(COFF2_P(ABFD) ? bfd_h_put_32 (ABFD,VAL,PTR) : bfd_h_put_16 (ABFD,VAL,(PTR)-4))
|
||||
#define GET_SCNHDR_PAGE(ABFD,PTR) \
|
||||
(COFF2_P(ABFD) ? bfd_h_get_16 (ABFD,PTR) : bfd_h_get_8 (ABFD, (PTR)-7))
|
||||
#define GET_SCNHDR_NRELOC(ABFD, PTR) \
|
||||
(COFF2_P (ABFD) ? H_GET_32 (ABFD, PTR) : H_GET_16 (ABFD, PTR))
|
||||
#define PUT_SCNHDR_NRELOC(ABFD, VAL, PTR) \
|
||||
(COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, PTR) : H_PUT_16 (ABFD, VAL, PTR))
|
||||
#define GET_SCNHDR_NLNNO(ABFD, PTR) \
|
||||
(COFF2_P (ABFD) ? H_GET_32 (ABFD, PTR) : H_GET_16 (ABFD, (PTR) -2))
|
||||
#define PUT_SCNHDR_NLNNO(ABFD, VAL, PTR) \
|
||||
(COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, PTR) : H_PUT_16 (ABFD, VAL, (PTR) -2))
|
||||
#define GET_SCNHDR_FLAGS(ABFD, PTR) \
|
||||
(COFF2_P (ABFD) ? H_GET_32 (ABFD, PTR) : H_GET_16 (ABFD, (PTR) -4))
|
||||
#define PUT_SCNHDR_FLAGS(ABFD, VAL, PTR) \
|
||||
(COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, PTR) : H_PUT_16 (ABFD, VAL, (PTR) -4))
|
||||
#define GET_SCNHDR_PAGE(ABFD, PTR) \
|
||||
(COFF2_P (ABFD) ? H_GET_16 (ABFD, PTR) : (unsigned) H_GET_8 (ABFD, (PTR) -7))
|
||||
/* on output, make sure that the "reserved" field is zero */
|
||||
#define PUT_SCNHDR_PAGE(ABFD,VAL,PTR) \
|
||||
(COFF2_P(ABFD) ? bfd_h_put_16 (ABFD,VAL,PTR) : \
|
||||
bfd_h_put_8 (ABFD,VAL,(PTR)-7), bfd_h_put_8 (ABFD, 0, (PTR)-8))
|
||||
#define PUT_SCNHDR_PAGE(ABFD, VAL, PTR) \
|
||||
(COFF2_P (ABFD) \
|
||||
? H_PUT_16 (ABFD, VAL, PTR) \
|
||||
: H_PUT_8 (ABFD, VAL, (PTR) -7), H_PUT_8 (ABFD, 0, (PTR) -8))
|
||||
|
||||
/* TI COFF stores section size as number of bytes (address units, not octets),
|
||||
so adjust to be number of octets, which is what BFD expects */
|
||||
#define GET_SCNHDR_SIZE(ABFD,SZP) \
|
||||
(bfd_h_get_32(ABFD,SZP)*bfd_octets_per_byte(ABFD))
|
||||
#define PUT_SCNHDR_SIZE(ABFD,SZ,SZP) \
|
||||
bfd_h_put_32(ABFD,(SZ)/bfd_octets_per_byte(ABFD),SZP)
|
||||
#define GET_SCNHDR_SIZE(ABFD, SZP) \
|
||||
(H_GET_32 (ABFD, SZP) * bfd_octets_per_byte (ABFD))
|
||||
#define PUT_SCNHDR_SIZE(ABFD, SZ, SZP) \
|
||||
H_PUT_32 (ABFD, (SZ) / bfd_octets_per_byte (ABFD), SZP)
|
||||
|
||||
#define COFF_ADJUST_SCNHDR_IN_POST(ABFD,EXT,INT) \
|
||||
do { ((struct internal_scnhdr *)(INT))->s_page = \
|
||||
GET_SCNHDR_PAGE(ABFD,(bfd_byte *)((SCNHDR *)(EXT))->s_page); \
|
||||
} while(0)
|
||||
#define COFF_ADJUST_SCNHDR_IN_POST(ABFD, EXT, INT) \
|
||||
do \
|
||||
{ \
|
||||
((struct internal_scnhdr *)(INT))->s_page = \
|
||||
GET_SCNHDR_PAGE (ABFD, ((SCNHDR *)(EXT))->s_page); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* The line number and reloc overflow checking in coff_swap_scnhdr_out in
|
||||
coffswap.h doesn't use PUT_X for s_nlnno and s_nreloc.
|
||||
Due to different sized v0/v1/v2 section headers, we have to re-write these
|
||||
fields.
|
||||
*/
|
||||
#define COFF_ADJUST_SCNHDR_OUT_POST(ABFD,INT,EXT) \
|
||||
do { \
|
||||
PUT_SCNHDR_NLNNO(ABFD,((struct internal_scnhdr *)(INT))->s_nlnno,\
|
||||
(bfd_byte *)((SCNHDR *)(EXT))->s_nlnno); \
|
||||
PUT_SCNHDR_NRELOC(ABFD,((struct internal_scnhdr *)(INT))->s_nreloc,\
|
||||
(bfd_byte *)((SCNHDR *)(EXT))->s_nreloc); \
|
||||
PUT_SCNHDR_FLAGS(ABFD,((struct internal_scnhdr *)(INT))->s_flags, \
|
||||
(bfd_byte *)((SCNHDR *)(EXT))->s_flags); \
|
||||
PUT_SCNHDR_PAGE(ABFD,((struct internal_scnhdr *)(INT))->s_page, \
|
||||
(bfd_byte *)((SCNHDR *)(EXT))->s_page); \
|
||||
} while(0)
|
||||
|
||||
/* Page macros
|
||||
|
||||
The first GDB port requires flags in its remote memory access commands to
|
||||
distinguish between data/prog space. Hopefully we can make this go away
|
||||
eventually. Stuff the page in the upper bits of a 32-bit address, since
|
||||
the c5x family only uses 16 or 23 bits.
|
||||
|
||||
c2x, c5x and most c54x devices have 16-bit addresses, but the c548 has
|
||||
23-bit program addresses. Make sure the page flags don't interfere.
|
||||
These flags are used by GDB to identify the destination page for
|
||||
addresses.
|
||||
*/
|
||||
|
||||
/* recognized load pages */
|
||||
#define PG_PROG 0x0 /* PROG page */
|
||||
#define PG_DATA 0x1 /* DATA page */
|
||||
|
||||
#define ADDR_MASK 0x00FFFFFF
|
||||
#define PG_TO_FLAG(p) (((unsigned long)(p) & 0xFF) << 24)
|
||||
#define FLAG_TO_PG(f) (((f) >> 24) & 0xFF)
|
||||
#define COFF_ADJUST_SCNHDR_OUT_POST(ABFD, INT, EXT) \
|
||||
do \
|
||||
{ \
|
||||
PUT_SCNHDR_NLNNO (ABFD, ((struct internal_scnhdr *)(INT))->s_nlnno, \
|
||||
((SCNHDR *)(EXT))->s_nlnno); \
|
||||
PUT_SCNHDR_NRELOC (ABFD, ((struct internal_scnhdr *)(INT))->s_nreloc,\
|
||||
((SCNHDR *)(EXT))->s_nreloc); \
|
||||
PUT_SCNHDR_FLAGS (ABFD, ((struct internal_scnhdr *)(INT))->s_flags, \
|
||||
((SCNHDR *)(EXT))->s_flags); \
|
||||
PUT_SCNHDR_PAGE (ABFD, ((struct internal_scnhdr *)(INT))->s_page, \
|
||||
((SCNHDR *)(EXT))->s_page); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/*
|
||||
* names of "special" sections
|
||||
|
@ -386,40 +377,58 @@ union external_auxent {
|
|||
#define AUXESZ 18
|
||||
|
||||
/* section lengths are in target bytes (not host bytes) */
|
||||
#define GET_SCN_SCNLEN(ABFD,EXT) \
|
||||
(bfd_h_get_32(ABFD,(bfd_byte *)(EXT)->x_scn.x_scnlen)*bfd_octets_per_byte(ABFD))
|
||||
#define PUT_SCN_SCNLEN(ABFD,INT,EXT) \
|
||||
bfd_h_put_32(ABFD,(INT)/bfd_octets_per_byte(ABFD),\
|
||||
(bfd_byte *)(EXT)->x_scn.x_scnlen)
|
||||
#define GET_SCN_SCNLEN(ABFD, EXT) \
|
||||
(H_GET_32 (ABFD, (EXT)->x_scn.x_scnlen) * bfd_octets_per_byte (ABFD))
|
||||
#define PUT_SCN_SCNLEN(ABFD, INT, EXT) \
|
||||
H_PUT_32 (ABFD, (INT) / bfd_octets_per_byte (ABFD), (EXT)->x_scn.x_scnlen)
|
||||
|
||||
/* lnsz size is in bits in COFF file, in bytes in BFD */
|
||||
#define GET_LNSZ_SIZE(abfd, ext) \
|
||||
(bfd_h_get_16(abfd, (bfd_byte *)ext->x_sym.x_misc.x_lnsz.x_size) / \
|
||||
(class != C_FIELD ? 8 : 1))
|
||||
(H_GET_16 (abfd, ext->x_sym.x_misc.x_lnsz.x_size) / (class != C_FIELD ? 8 : 1))
|
||||
|
||||
#define PUT_LNSZ_SIZE(abfd, in, ext) \
|
||||
bfd_h_put_16(abfd, ((class != C_FIELD) ? (in)*8 : (in)), \
|
||||
(bfd_byte*) ext->x_sym.x_misc.x_lnsz.x_size)
|
||||
H_PUT_16 (abfd, ((class != C_FIELD) ? (in) * 8 : (in)), \
|
||||
ext->x_sym.x_misc.x_lnsz.x_size)
|
||||
|
||||
/* TI COFF stores offsets for MOS and MOU in bits; BFD expects bytes */
|
||||
#define COFF_ADJUST_SYM_IN_POST(ABFD,EXT,INT) \
|
||||
do { struct internal_syment *dst = (struct internal_syment *)(INT); \
|
||||
if (dst->n_sclass == C_MOS || dst->n_sclass == C_MOU) dst->n_value /= 8; \
|
||||
} while (0)
|
||||
/* TI COFF stores offsets for MOS and MOU in bits; BFD expects bytes
|
||||
Also put the load page flag of the section into the symbol value if it's an
|
||||
address. */
|
||||
#ifndef NEEDS_PAGE
|
||||
#define NEEDS_PAGE(X) 0
|
||||
#define PAGE_MASK 0
|
||||
#endif
|
||||
#define COFF_ADJUST_SYM_IN_POST(ABFD, EXT, INT) \
|
||||
do \
|
||||
{ \
|
||||
struct internal_syment *dst = (struct internal_syment *)(INT); \
|
||||
if (dst->n_sclass == C_MOS || dst->n_sclass == C_MOU) \
|
||||
dst->n_value /= 8; \
|
||||
else if (NEEDS_PAGE (dst->n_sclass)) { \
|
||||
asection *scn = coff_section_from_bfd_index (abfd, dst->n_scnum); \
|
||||
dst->n_value |= (scn->lma & PAGE_MASK); \
|
||||
} \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#define COFF_ADJUST_SYM_OUT_POST(ABFD,INT,EXT) \
|
||||
do { struct internal_syment *src = (struct internal_syment *)(INT); \
|
||||
SYMENT *dst = (SYMENT *)(EXT); \
|
||||
if(src->n_sclass == C_MOU || src->n_sclass == C_MOS) \
|
||||
bfd_h_put_32(abfd,src->n_value * 8,(bfd_byte *)dst->e_value); \
|
||||
} while (0)
|
||||
#define COFF_ADJUST_SYM_OUT_POST(ABFD, INT, EXT) \
|
||||
do \
|
||||
{ \
|
||||
struct internal_syment *src = (struct internal_syment *)(INT); \
|
||||
SYMENT *dst = (SYMENT *)(EXT); \
|
||||
if (src->n_sclass == C_MOU || src->n_sclass == C_MOS) \
|
||||
H_PUT_32 (abfd, src->n_value * 8, dst->e_value); \
|
||||
else if (NEEDS_PAGE (src->n_sclass)) { \
|
||||
H_PUT_32 (abfd, src->n_value &= ~PAGE_MASK, dst->e_value); \
|
||||
} \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* Detect section-relative absolute symbols so they get flagged with a sym
|
||||
index of -1.
|
||||
*/
|
||||
#define SECTION_RELATIVE_ABSOLUTE_SYMBOL_P(RELOC,SECT) \
|
||||
((*(RELOC)->sym_ptr_ptr)->section->output_section == (SECT) \
|
||||
&& (RELOC)->howto->name[0] == 'A')
|
||||
#define SECTION_RELATIVE_ABSOLUTE_SYMBOL_P(RELOC, SECT) \
|
||||
((*(RELOC)->sym_ptr_ptr)->section->output_section == (SECT) \
|
||||
&& (RELOC)->howto->name[0] == 'A')
|
||||
|
||||
/********************** RELOCATION DIRECTIVES **********************/
|
||||
|
||||
|
|
|
@ -18,8 +18,8 @@
|
|||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef COFF_TIC54X_H
|
||||
|
||||
#define COFF_TIC54X_H
|
||||
|
||||
#define TIC54X_TARGET_ID 0x98
|
||||
#define TIC54XALGMAGIC 0x009B /* c54x algebraic assembler output */
|
||||
#define TIC5X_TARGET_ID 0x92
|
||||
|
@ -29,6 +29,31 @@
|
|||
#define TICOFF_TARGET_ARCH bfd_arch_tic54x
|
||||
#define TICOFF_DEFAULT_MAGIC TICOFF1MAGIC /* we use COFF1 for compatibility */
|
||||
|
||||
/* Page macros
|
||||
|
||||
The first GDB port requires flags in its remote memory access commands to
|
||||
distinguish between data/prog space. Hopefully we can make this go away
|
||||
eventually. Stuff the page in the upper bits of a 32-bit address, since
|
||||
the c5x family only uses 16 or 23 bits.
|
||||
|
||||
c2x, c5x and most c54x devices have 16-bit addresses, but the c548 has
|
||||
23-bit program addresses. Make sure the page flags don't interfere.
|
||||
These flags are used by GDB to identify the destination page for
|
||||
addresses.
|
||||
*/
|
||||
|
||||
/* Recognized load pages (by common convention). */
|
||||
#define PG_PROG 0x0 /* PROG page */
|
||||
#define PG_DATA 0x1 /* DATA page */
|
||||
#define PG_IO 0x2 /* I/O page */
|
||||
|
||||
/** Indicate whether the given storage class requires a page flag. */
|
||||
#define NEEDS_PAGE(X) ((X)==C_EXT)
|
||||
#define PAGE_MASK 0xFF000000
|
||||
#define ADDR_MASK 0x00FFFFFF
|
||||
#define PG_TO_FLAG(p) (((unsigned long)(p) & 0xFF) << 24)
|
||||
#define FLAG_TO_PG(f) (((f) >> 24) & 0xFF)
|
||||
|
||||
#include "coff/ti.h"
|
||||
|
||||
#endif /* COFF_TIC54X_H */
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/* Internal format of XCOFF object file data structures for BFD.
|
||||
|
||||
Copyright 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
||||
Free Software Foundation, Inc.
|
||||
Written by Ian Lance Taylor <ian@cygnus.com>, Cygnus Support.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
@ -22,18 +23,16 @@
|
|||
#ifndef _INTERNAL_XCOFF_H
|
||||
#define _INTERNAL_XCOFF_H
|
||||
|
||||
/*
|
||||
* LINKER
|
||||
*/
|
||||
/* Linker */
|
||||
|
||||
/*
|
||||
* names of "special" sections
|
||||
*/
|
||||
/* Names of "special" sections. */
|
||||
#define _TEXT ".text"
|
||||
#define _DATA ".data"
|
||||
#define _BSS ".bss"
|
||||
#define _PAD ".pad"
|
||||
#define _LOADER ".loader"
|
||||
#define _EXCEPT ".except"
|
||||
#define _TYPCHK ".typchk"
|
||||
|
||||
/* XCOFF uses a special .loader section with type STYP_LOADER. */
|
||||
#define STYP_LOADER 0x1000
|
||||
|
@ -45,11 +44,19 @@
|
|||
another section header with STYP_OVRFLO set. */
|
||||
#define STYP_OVRFLO 0x8000
|
||||
|
||||
/* Specifies an exception section. A section of this type provides
|
||||
information to identify the reason that a trap or ececptin occured within
|
||||
and executable object program */
|
||||
#define STYP_EXCEPT 0x0100
|
||||
|
||||
/* Specifies a type check section. A section of this type contains parameter
|
||||
argument type check strings used by the AIX binder. */
|
||||
#define STYP_TYPCHK 0x4000
|
||||
|
||||
#define RS6K_AOUTHDR_OMAGIC 0x0107 /* old: text & data writeable */
|
||||
#define RS6K_AOUTHDR_NMAGIC 0x0108 /* new: text r/o, data r/w */
|
||||
#define RS6K_AOUTHDR_ZMAGIC 0x010B /* paged: text r/o, both page-aligned */
|
||||
|
||||
|
||||
/* XCOFF relocation types.
|
||||
The relocations are described in the function
|
||||
xcoff[64]_ppc_relocate_section in coff64-rs6000.c and coff-rs6000.c */
|
||||
|
@ -77,22 +84,15 @@
|
|||
#define R_RBR (0x1a)
|
||||
#define R_RBRC (0x1b)
|
||||
|
||||
/* Storage class #defines, from /usr/include/storclass.h that are not already
|
||||
defined in internal.h */
|
||||
|
||||
/*
|
||||
* Storage class #defines, from /usr/include/storclass.h
|
||||
* That are not already defined in internal.h
|
||||
*/
|
||||
#define C_INFO 110 /* Comment string in .info section */
|
||||
/* Comment string in .info section */
|
||||
#define C_INFO 110
|
||||
|
||||
|
||||
/*
|
||||
* AUXILLARY SYMBOL ENTRIES
|
||||
*
|
||||
* auxemt
|
||||
*/
|
||||
/* Auxillary Symbol Entries */
|
||||
|
||||
/* x_smtyp values: */
|
||||
|
||||
#define SMTYP_ALIGN(x) ((x) >> 3) /* log2 of alignment */
|
||||
#define SMTYP_SMTYP(x) ((x) & 0x7) /* symbol type */
|
||||
/* Symbol type values: */
|
||||
|
@ -104,7 +104,6 @@
|
|||
#define XTY_US 5 /* "Reserved for internal use" */
|
||||
|
||||
/* x_smclas values: */
|
||||
|
||||
#define XMC_PR 0 /* Read-only program code */
|
||||
#define XMC_RO 1 /* Read-only constant */
|
||||
#define XMC_DB 2 /* Read-only debug dictionary table */
|
||||
|
@ -122,36 +121,45 @@
|
|||
/* 14 ??? */
|
||||
#define XMC_TC0 15 /* Read-write TOC anchor */
|
||||
#define XMC_TD 16 /* Read-write data in TOC */
|
||||
#define XMC_SV64 17 /* Read-only 64 bit supervisor call */
|
||||
#define XMC_SV3264 18 /* Read-only 32 or 64 bit supervisor call */
|
||||
|
||||
/* The ldhdr structure. This appears at the start of the .loader
|
||||
section. */
|
||||
|
||||
struct internal_ldhdr
|
||||
{
|
||||
/*
|
||||
* The version number:
|
||||
* 1 : 32 bit
|
||||
* 2 : 64 bit
|
||||
*/
|
||||
/* The version number:
|
||||
1 : 32 bit
|
||||
2 : 64 bit */
|
||||
unsigned long l_version;
|
||||
|
||||
/* The number of symbol table entries. */
|
||||
bfd_size_type l_nsyms;
|
||||
|
||||
/* The number of relocation table entries. */
|
||||
bfd_size_type l_nreloc;
|
||||
|
||||
/* The length of the import file string table. */
|
||||
bfd_size_type l_istlen;
|
||||
|
||||
/* The number of import files. */
|
||||
bfd_size_type l_nimpid;
|
||||
|
||||
/* The offset from the start of the .loader section to the first
|
||||
entry in the import file table. */
|
||||
bfd_size_type l_impoff;
|
||||
|
||||
/* The length of the string table. */
|
||||
bfd_size_type l_stlen;
|
||||
|
||||
/* The offset from the start of the .loader section to the first
|
||||
entry in the string table. */
|
||||
bfd_size_type l_stoff;
|
||||
|
||||
/* The offset to start of the symbol table, only in XCOFF64 */
|
||||
bfd_vma l_symoff;
|
||||
|
||||
/* The offset to the start of the relocation table, only in XCOFF64 */
|
||||
bfd_vma l_rldoff;
|
||||
};
|
||||
|
@ -162,28 +170,37 @@ struct internal_ldhdr
|
|||
struct internal_ldsym
|
||||
{
|
||||
union
|
||||
{
|
||||
/* The symbol name if <= SYMNMLEN characters. */
|
||||
char _l_name[SYMNMLEN];
|
||||
struct
|
||||
{
|
||||
/* The symbol name if <= SYMNMLEN characters. */
|
||||
char _l_name[SYMNMLEN];
|
||||
struct
|
||||
{
|
||||
/* Zero if the symbol name is more than SYMNMLEN characters. */
|
||||
long _l_zeroes;
|
||||
/* The offset in the string table if the symbol name is more
|
||||
than SYMNMLEN characters. */
|
||||
long _l_offset;
|
||||
} _l_l;
|
||||
} _l;
|
||||
/* Zero if the symbol name is more than SYMNMLEN characters. */
|
||||
long _l_zeroes;
|
||||
|
||||
/* The offset in the string table if the symbol name is more
|
||||
than SYMNMLEN characters. */
|
||||
long _l_offset;
|
||||
}
|
||||
_l_l;
|
||||
}
|
||||
_l;
|
||||
|
||||
/* The symbol value. */
|
||||
bfd_vma l_value;
|
||||
|
||||
/* The symbol section number. */
|
||||
short l_scnum;
|
||||
|
||||
/* The symbol type and flags. */
|
||||
char l_smtype;
|
||||
|
||||
/* The symbol storage class. */
|
||||
char l_smclas;
|
||||
|
||||
/* The import file ID. */
|
||||
bfd_size_type l_ifile;
|
||||
|
||||
/* Offset to the parameter type check string. */
|
||||
bfd_size_type l_parm;
|
||||
};
|
||||
|
@ -205,10 +222,13 @@ struct internal_ldrel
|
|||
{
|
||||
/* The reloc address. */
|
||||
bfd_vma l_vaddr;
|
||||
|
||||
/* The symbol table index in the .loader section symbol table. */
|
||||
bfd_size_type l_symndx;
|
||||
|
||||
/* The relocation type and size. */
|
||||
short l_rtype;
|
||||
|
||||
/* The section number this relocation applies to. */
|
||||
short l_rsecnm;
|
||||
};
|
||||
|
@ -227,14 +247,16 @@ struct xcoff_link_hash_entry
|
|||
asection *toc_section;
|
||||
|
||||
union
|
||||
{
|
||||
/* If we have created a TOC entry (the XCOFF_SET_TOC flag is
|
||||
set), this is the offset in toc_section. */
|
||||
bfd_vma toc_offset;
|
||||
/* If the TOC entry comes from an input file, this is set to the
|
||||
symbol index of the C_HIDEXT XMC_TC or XMC_TD symbol. */
|
||||
long toc_indx;
|
||||
} u;
|
||||
{
|
||||
/* If we have created a TOC entry (the XCOFF_SET_TOC flag is
|
||||
set), this is the offset in toc_section. */
|
||||
bfd_vma toc_offset;
|
||||
|
||||
/* If the TOC entry comes from an input file, this is set to the
|
||||
symbol index of the C_HIDEXT XMC_TC or XMC_TD symbol. */
|
||||
long toc_indx;
|
||||
}
|
||||
u;
|
||||
|
||||
/* If this symbol is a function entry point which is called, this
|
||||
field holds a pointer to the function descriptor. If this symbol
|
||||
|
@ -257,72 +279,42 @@ struct xcoff_link_hash_entry
|
|||
unsigned char smclas;
|
||||
};
|
||||
|
||||
/*
|
||||
* #define for xcoff_link_hash_entry.flags
|
||||
*
|
||||
* XCOFF_REF_REGULAR
|
||||
* Symbol is referenced by a regular object.
|
||||
*
|
||||
* XCOFF_DEF_REGULAR
|
||||
* Symbol is defined by a regular object.
|
||||
*
|
||||
* XCOFF_DEF_DYNAMIC
|
||||
* Symbol is defined by a dynamic object.
|
||||
*
|
||||
* XCOFF_LDREL
|
||||
* Symbol is used in a reloc being copied into the .loader section.
|
||||
*
|
||||
* XCOFF_ENTRY
|
||||
* Symbol is the entry point.
|
||||
*
|
||||
* XCOFF_CALLED
|
||||
* Symbol is called; this is, it appears in a R_BR reloc.
|
||||
*
|
||||
* XCOFF_SET_TOC
|
||||
* Symbol needs the TOC entry filled in.
|
||||
*
|
||||
* XCOFF_IMPORT
|
||||
* Symbol is explicitly imported.
|
||||
*
|
||||
* XCOFF_EXPORT
|
||||
* Symbol is explicitly exported.
|
||||
*
|
||||
* XCOFF_BUILT_LDSYM
|
||||
* Symbol has been processed by xcoff_build_ldsyms.
|
||||
*
|
||||
* XCOFF_MARK
|
||||
* Symbol is mentioned by a section which was not garbage collected.
|
||||
*
|
||||
* XCOFF_HAS_SIZE
|
||||
* Symbol size is recorded in size_list list from hash table.
|
||||
*
|
||||
* XCOFF_DESCRIPTOR
|
||||
* Symbol is a function descriptor.
|
||||
*
|
||||
* XCOFF_MULTIPLY_DEFINED
|
||||
* Multiple definitions have been for the symbol.
|
||||
*
|
||||
* XCOFF_RTINIT
|
||||
* Symbol is the __rtinit symbol
|
||||
*
|
||||
*/
|
||||
/* Flags for xcoff_link_hash_entry. */
|
||||
|
||||
/* Symbol is referenced by a regular object. */
|
||||
#define XCOFF_REF_REGULAR 0x00000001
|
||||
/* Symbol is defined by a regular object. */
|
||||
#define XCOFF_DEF_REGULAR 0x00000002
|
||||
/* Symbol is defined by a dynamic object. */
|
||||
#define XCOFF_DEF_DYNAMIC 0x00000004
|
||||
/* Symbol is used in a reloc being copied into the .loader section. */
|
||||
#define XCOFF_LDREL 0x00000008
|
||||
/* Symbol is the entry point. */
|
||||
#define XCOFF_ENTRY 0x00000010
|
||||
/* Symbol is called; this is, it appears in a R_BR reloc. */
|
||||
#define XCOFF_CALLED 0x00000020
|
||||
/* Symbol needs the TOC entry filled in. */
|
||||
#define XCOFF_SET_TOC 0x00000040
|
||||
/* Symbol is explicitly imported. */
|
||||
#define XCOFF_IMPORT 0x00000080
|
||||
/* Symbol is explicitly exported. */
|
||||
#define XCOFF_EXPORT 0x00000100
|
||||
/* Symbol has been processed by xcoff_build_ldsyms. */
|
||||
#define XCOFF_BUILT_LDSYM 0x00000200
|
||||
/* Symbol is mentioned by a section which was not garbage collected. */
|
||||
#define XCOFF_MARK 0x00000400
|
||||
/* Symbol size is recorded in size_list list from hash table. */
|
||||
#define XCOFF_HAS_SIZE 0x00000800
|
||||
/* Symbol is a function descriptor. */
|
||||
#define XCOFF_DESCRIPTOR 0x00001000
|
||||
/* Multiple definitions have been for the symbol. */
|
||||
#define XCOFF_MULTIPLY_DEFINED 0x00002000
|
||||
/* Symbol is the __rtinit symbol. */
|
||||
#define XCOFF_RTINIT 0x00004000
|
||||
|
||||
/* Symbol is an imported 32 bit syscall. */
|
||||
#define XCOFF_SYSCALL32 0x00008000
|
||||
/* Symbol is an imported 64 bit syscall. */
|
||||
#define XCOFF_SYSCALL64 0x00010000
|
||||
|
||||
/* The XCOFF linker hash table. */
|
||||
|
||||
|
@ -381,11 +373,12 @@ struct xcoff_link_hash_table
|
|||
|
||||
/* A linked list of symbols for which we have size information. */
|
||||
struct xcoff_link_size_list
|
||||
{
|
||||
struct xcoff_link_size_list *next;
|
||||
struct xcoff_link_hash_entry *h;
|
||||
bfd_size_type size;
|
||||
} *size_list;
|
||||
{
|
||||
struct xcoff_link_size_list *next;
|
||||
struct xcoff_link_hash_entry *h;
|
||||
bfd_size_type size;
|
||||
}
|
||||
*size_list;
|
||||
|
||||
/* Magic sections: _text, _etext, _data, _edata, _end, end. */
|
||||
asection *special_sections[XCOFF_NUMBER_OF_SPECIAL_SECTIONS];
|
||||
|
@ -399,61 +392,77 @@ struct xcoff_loader_info
|
|||
{
|
||||
/* Set if a problem occurred. */
|
||||
boolean failed;
|
||||
|
||||
/* Output BFD. */
|
||||
bfd *output_bfd;
|
||||
|
||||
/* Link information structure. */
|
||||
struct bfd_link_info *info;
|
||||
|
||||
/* Whether all defined symbols should be exported. */
|
||||
boolean export_defineds;
|
||||
|
||||
/* Number of ldsym structures. */
|
||||
size_t ldsym_count;
|
||||
|
||||
/* Size of string table. */
|
||||
size_t string_size;
|
||||
|
||||
/* String table. */
|
||||
bfd_byte *strings;
|
||||
|
||||
/* Allocated size of string table. */
|
||||
size_t string_alc;
|
||||
};
|
||||
|
||||
/* In case we're on a 32-bit machine, construct a 64-bit "-1" value
|
||||
from smaller values. Start with zero, widen, *then* decrement. */
|
||||
#define MINUS_ONE (((bfd_vma)0) - 1)
|
||||
#define MINUS_ONE (((bfd_vma) 0) - 1)
|
||||
|
||||
/* __rtinit, from /usr/include/rtinit.h. */
|
||||
struct __rtinit
|
||||
{
|
||||
/* Pointer to runtime linker.
|
||||
XXX: Is the parameter really void? */
|
||||
int (*rtl) PARAMS ((void));
|
||||
|
||||
/*
|
||||
* __rtinit
|
||||
* from /usr/include/rtinit.h
|
||||
*/
|
||||
struct __rtinit {
|
||||
int (*rtl)(); /* Pointer to runtime linker */
|
||||
int init_offset; /* Offset to array of init functions
|
||||
(0 if none). */
|
||||
int fini_offset; /* Offset to array of fini functions
|
||||
(0 if none). */
|
||||
int __rtinit_descriptor_size; /* Size of __RTINIT_DESCRIPTOR.
|
||||
This value should be used instead
|
||||
of sizeof(__RTINIT_DESCRIPTOR). */
|
||||
/* Offset to array of init functions, 0 if none. */
|
||||
int init_offset;
|
||||
|
||||
/* Offset to array of fini functions, 0 if none. */
|
||||
int fini_offset;
|
||||
|
||||
/* Size of __RTINIT_DESCRIPTOR. This value should be used instead of
|
||||
sizeof(__RTINIT_DESCRIPTOR). */
|
||||
int __rtinit_descriptor_size;
|
||||
};
|
||||
|
||||
#define RTINIT_DESCRIPTOR_SIZE (12)
|
||||
|
||||
struct __rtinit_descriptor {
|
||||
int f; /* Init/fini function. */
|
||||
int name_offset; /* Offset (within __rtinit symbol)
|
||||
to name of function. */
|
||||
unsigned char flags; /* Flags */
|
||||
struct __rtinit_descriptor
|
||||
{
|
||||
/* Init/fini function. */
|
||||
int f;
|
||||
|
||||
/* Offset, relative to the start of the __rtinit symbol, to name of the
|
||||
function. */
|
||||
|
||||
int name_offset;
|
||||
|
||||
/* Flags */
|
||||
unsigned char flags;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ARCHIVE
|
||||
*/
|
||||
/* Archive */
|
||||
|
||||
#define XCOFFARMAG "<aiaff>\012"
|
||||
#define XCOFFARMAGBIG "<bigaf>\012"
|
||||
#define SXCOFFARMAG 8
|
||||
|
||||
/* The size of the ascii archive elements */
|
||||
#define XCOFFARMAG_ELEMENT_SIZE 12
|
||||
#define XCOFFARMAGBIG_ELEMENT_SIZE 20
|
||||
|
||||
/* This terminates an XCOFF archive member name. */
|
||||
|
||||
#define XCOFFARFMAG "`\012"
|
||||
|
@ -467,23 +476,23 @@ struct xcoff_ar_file_hdr
|
|||
char magic[SXCOFFARMAG];
|
||||
|
||||
/* Offset of the member table (decimal ASCII string). */
|
||||
char memoff[12];
|
||||
char memoff[XCOFFARMAG_ELEMENT_SIZE];
|
||||
|
||||
/* Offset of the global symbol table (decimal ASCII string). */
|
||||
char symoff[12];
|
||||
char symoff[XCOFFARMAG_ELEMENT_SIZE];
|
||||
|
||||
/* Offset of the first member in the archive (decimal ASCII string). */
|
||||
char firstmemoff[12];
|
||||
char firstmemoff[XCOFFARMAG_ELEMENT_SIZE];
|
||||
|
||||
/* Offset of the last member in the archive (decimal ASCII string). */
|
||||
char lastmemoff[12];
|
||||
char lastmemoff[XCOFFARMAG_ELEMENT_SIZE];
|
||||
|
||||
/* Offset of the first member on the free list (decimal ASCII
|
||||
string). */
|
||||
char freeoff[12];
|
||||
char freeoff[XCOFFARMAG_ELEMENT_SIZE];
|
||||
};
|
||||
|
||||
#define SIZEOF_AR_FILE_HDR (5 * 12 + SXCOFFARMAG)
|
||||
#define SIZEOF_AR_FILE_HDR (SXCOFFARMAG + 5 * XCOFFARMAG_ELEMENT_SIZE)
|
||||
|
||||
/* This is the equivalent data structure for the big archive format. */
|
||||
|
||||
|
@ -493,42 +502,41 @@ struct xcoff_ar_file_hdr_big
|
|||
char magic[SXCOFFARMAG];
|
||||
|
||||
/* Offset of the member table (decimal ASCII string). */
|
||||
char memoff[20];
|
||||
char memoff[XCOFFARMAGBIG_ELEMENT_SIZE];
|
||||
|
||||
/* Offset of the global symbol table for 32-bit objects (decimal ASCII
|
||||
string). */
|
||||
char symoff[20];
|
||||
char symoff[XCOFFARMAGBIG_ELEMENT_SIZE];
|
||||
|
||||
/* Offset of the global symbol table for 64-bit objects (decimal ASCII
|
||||
string). */
|
||||
char symoff64[20];
|
||||
char symoff64[XCOFFARMAGBIG_ELEMENT_SIZE];
|
||||
|
||||
/* Offset of the first member in the archive (decimal ASCII string). */
|
||||
char firstmemoff[20];
|
||||
char firstmemoff[XCOFFARMAGBIG_ELEMENT_SIZE];
|
||||
|
||||
/* Offset of the last member in the archive (decimal ASCII string). */
|
||||
char lastmemoff[20];
|
||||
char lastmemoff[XCOFFARMAGBIG_ELEMENT_SIZE];
|
||||
|
||||
/* Offset of the first member on the free list (decimal ASCII
|
||||
string). */
|
||||
char freeoff[20];
|
||||
char freeoff[XCOFFARMAGBIG_ELEMENT_SIZE];
|
||||
};
|
||||
|
||||
#define SIZEOF_AR_FILE_HDR_BIG (6 * 20 + SXCOFFARMAG)
|
||||
|
||||
#define SIZEOF_AR_FILE_HDR_BIG (SXCOFFARMAG + 6 * XCOFFARMAGBIG_ELEMENT_SIZE)
|
||||
|
||||
/* Each XCOFF archive member starts with this (printable) structure. */
|
||||
|
||||
struct xcoff_ar_hdr
|
||||
{
|
||||
/* File size not including the header (decimal ASCII string). */
|
||||
char size[12];
|
||||
char size[XCOFFARMAG_ELEMENT_SIZE];
|
||||
|
||||
/* File offset of next archive member (decimal ASCII string). */
|
||||
char nextoff[12];
|
||||
char nextoff[XCOFFARMAG_ELEMENT_SIZE];
|
||||
|
||||
/* File offset of previous archive member (decimal ASCII string). */
|
||||
char prevoff[12];
|
||||
char prevoff[XCOFFARMAG_ELEMENT_SIZE];
|
||||
|
||||
/* File mtime (decimal ASCII string). */
|
||||
char date[12];
|
||||
|
@ -553,20 +561,20 @@ struct xcoff_ar_hdr
|
|||
bytes is given in the size field. */
|
||||
};
|
||||
|
||||
#define SIZEOF_AR_HDR (7 * 12 + 4)
|
||||
#define SIZEOF_AR_HDR (3 * XCOFFARMAG_ELEMENT_SIZE + 4 * 12 + 4)
|
||||
|
||||
/* The equivalent for the big archive format. */
|
||||
|
||||
struct xcoff_ar_hdr_big
|
||||
{
|
||||
/* File size not including the header (decimal ASCII string). */
|
||||
char size[20];
|
||||
char size[XCOFFARMAGBIG_ELEMENT_SIZE];
|
||||
|
||||
/* File offset of next archive member (decimal ASCII string). */
|
||||
char nextoff[20];
|
||||
char nextoff[XCOFFARMAGBIG_ELEMENT_SIZE];
|
||||
|
||||
/* File offset of previous archive member (decimal ASCII string). */
|
||||
char prevoff[20];
|
||||
char prevoff[XCOFFARMAGBIG_ELEMENT_SIZE];
|
||||
|
||||
/* File mtime (decimal ASCII string). */
|
||||
char date[12];
|
||||
|
@ -591,13 +599,27 @@ struct xcoff_ar_hdr_big
|
|||
bytes is given in the size field. */
|
||||
};
|
||||
|
||||
#define SIZEOF_AR_HDR_BIG (3 * 20 + 4 * 12 + 4)
|
||||
#define SIZEOF_AR_HDR_BIG (3 * XCOFFARMAGBIG_ELEMENT_SIZE + 4 * 12 + 4)
|
||||
|
||||
/* We often have to distinguish between the old and big file format.
|
||||
Make it a bit cleaner. We can use `xcoff_ardata' here because the
|
||||
`hdr' member has the same size and position in both formats. */
|
||||
`hdr' member has the same size and position in both formats.
|
||||
<bigaf> is the default format, return true even when xcoff_ardata is
|
||||
NULL. */
|
||||
#ifndef SMALL_ARCHIVE
|
||||
/* Creates big archives by default */
|
||||
#define xcoff_big_format_p(abfd) \
|
||||
(xcoff_ardata (abfd)->magic[1] == 'b')
|
||||
((NULL != bfd_ardata (abfd) && NULL == xcoff_ardata (abfd)) || \
|
||||
((NULL != bfd_ardata (abfd)) && \
|
||||
(NULL != xcoff_ardata (abfd)) && \
|
||||
(xcoff_ardata (abfd)->magic[1] == 'b')))
|
||||
#else
|
||||
/* Creates small archives by default. */
|
||||
#define xcoff_big_format_p(abfd) \
|
||||
(((NULL != bfd_ardata (abfd)) && \
|
||||
(NULL != xcoff_ardata (abfd)) && \
|
||||
(xcoff_ardata (abfd)->magic[1] == 'b')))
|
||||
#endif
|
||||
|
||||
/* We store a copy of the xcoff_ar_file_hdr in the tdata field of the
|
||||
artdata structure. Similar for the big archive. */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Defs for interface to demanglers.
|
||||
Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000
|
||||
Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -29,6 +29,8 @@
|
|||
#define DMGL_PARAMS (1 << 0) /* Include function args */
|
||||
#define DMGL_ANSI (1 << 1) /* Include const, volatile, etc */
|
||||
#define DMGL_JAVA (1 << 2) /* Demangle as Java rather than C++. */
|
||||
#define DMGL_VERBOSE (1 << 3) /* Include implementation details. */
|
||||
#define DMGL_TYPES (1 << 4) /* Also try to demangle type encodings. */
|
||||
|
||||
#define DMGL_AUTO (1 << 8)
|
||||
#define DMGL_GNU (1 << 9)
|
||||
|
@ -54,6 +56,7 @@
|
|||
|
||||
extern enum demangling_styles
|
||||
{
|
||||
no_demangling = -1,
|
||||
unknown_demangling = 0,
|
||||
auto_demangling = DMGL_AUTO,
|
||||
gnu_demangling = DMGL_GNU,
|
||||
|
@ -68,6 +71,7 @@ extern enum demangling_styles
|
|||
|
||||
/* Define string names for the various demangling styles. */
|
||||
|
||||
#define NO_DEMANGLING_STYLE_STRING "none"
|
||||
#define AUTO_DEMANGLING_STYLE_STRING "auto"
|
||||
#define GNU_DEMANGLING_STYLE_STRING "gnu"
|
||||
#define LUCID_DEMANGLING_STYLE_STRING "lucid"
|
||||
|
@ -94,11 +98,11 @@ extern enum demangling_styles
|
|||
/* Provide information about the available demangle styles. This code is
|
||||
pulled from gdb into libiberty because it is useful to binutils also. */
|
||||
|
||||
extern struct demangler_engine
|
||||
extern const struct demangler_engine
|
||||
{
|
||||
const char *demangling_style_name;
|
||||
enum demangling_styles demangling_style;
|
||||
const char *demangling_style_doc;
|
||||
const char *const demangling_style_name;
|
||||
const enum demangling_styles demangling_style;
|
||||
const char *const demangling_style_doc;
|
||||
} libiberty_demanglers[];
|
||||
|
||||
extern char *
|
||||
|
@ -123,7 +127,7 @@ cplus_demangle_name_to_style PARAMS ((const char *name));
|
|||
|
||||
/* V3 ABI demangling entry points, defined in cp-demangle.c. */
|
||||
extern char*
|
||||
cplus_demangle_v3 PARAMS ((const char* mangled));
|
||||
cplus_demangle_v3 PARAMS ((const char* mangled, int options));
|
||||
|
||||
extern char*
|
||||
java_demangle_v3 PARAMS ((const char* mangled));
|
||||
|
|
|
@ -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
|
||||
|
@ -73,6 +73,11 @@ typedef struct disassemble_info {
|
|||
unsigned long mach;
|
||||
/* Endianness (for bi-endian cpus). Mono-endian cpus can ignore this. */
|
||||
enum bfd_endian endian;
|
||||
/* An arch/mach-specific bitmask of selected instruction subsets, mainly
|
||||
for processors with run-time-switchable instruction sets. The default,
|
||||
zero, means that there is no constraint. CGEN-based opcodes ports
|
||||
may use ISA_foo masks. */
|
||||
unsigned long insn_sets;
|
||||
|
||||
/* Some targets need information about the current section to accurately
|
||||
display insns. If this is NULL, the target disassembler function
|
||||
|
@ -145,8 +150,7 @@ typedef struct disassemble_info {
|
|||
enum bfd_endian display_endian;
|
||||
|
||||
/* Number of octets per incremented target address
|
||||
Normally one, but some DSPs have byte sizes of 16 or 32 bits
|
||||
*/
|
||||
Normally one, but some DSPs have byte sizes of 16 or 32 bits. */
|
||||
unsigned int octets_per_byte;
|
||||
|
||||
/* Results from instruction decoders. Not all decoders yet support
|
||||
|
@ -172,12 +176,13 @@ typedef struct disassemble_info {
|
|||
|
||||
|
||||
/* Standard disassemblers. Disassemble one instruction at the given
|
||||
target address. Return number of bytes processed. */
|
||||
target address. Return number of octets processed. */
|
||||
typedef int (*disassembler_ftype)
|
||||
PARAMS((bfd_vma, disassemble_info *));
|
||||
|
||||
extern int print_insn_big_mips PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_little_mips PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_i386 PARAMS ((bfd_vma, disassemble_info *));
|
||||
extern int print_insn_i386_att PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_i386_intel PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_ia64 PARAMS ((bfd_vma, disassemble_info*));
|
||||
|
@ -192,41 +197,49 @@ extern int print_insn_h8300h PARAMS ((bfd_vma, disassemble_info*));
|
|||
extern int print_insn_h8300s PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_h8500 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_alpha PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern disassembler_ftype arc_get_disassembler PARAMS ((void *));
|
||||
extern int print_insn_big_arm PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_little_arm PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_sparc PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_big_a29k PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_little_a29k PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_avr PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_d10v PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_d30v PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_fr30 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_hppa PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_i860 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_i960 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_sh PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_shl PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_hppa PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_fr30 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_m32r PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_m88k PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_mcore PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_mmix PARAMS ((bfd_vma, disassemble_info*));
|
||||
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*));
|
||||
extern int print_insn_little_powerpc PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_rs6000 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_w65 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern disassembler_ftype cris_get_disassembler PARAMS ((bfd *));
|
||||
extern int print_insn_d10v PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_d30v PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_v850 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_s390 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_sh PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_shl PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_tic30 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_vax PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_tic54x PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_tic80 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_pj PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_avr PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_s390 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_v850 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_vax PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_w65 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_xstormy16 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_sh64 PARAMS ((bfd_vma, disassemble_info *));
|
||||
extern int print_insn_sh64l PARAMS ((bfd_vma, disassemble_info *));
|
||||
extern int print_insn_sh64x_media PARAMS ((bfd_vma, disassemble_info *));
|
||||
|
||||
extern disassembler_ftype arc_get_disassembler PARAMS ((void *));
|
||||
extern disassembler_ftype cris_get_disassembler PARAMS ((bfd *));
|
||||
|
||||
extern void print_arm_disassembler_options PARAMS ((FILE *));
|
||||
extern void parse_arm_disassembler_option PARAMS ((char *));
|
||||
|
@ -270,6 +283,7 @@ extern int generic_symbol_at_address
|
|||
(INFO).flavour = bfd_target_unknown_flavour, \
|
||||
(INFO).arch = bfd_arch_unknown, \
|
||||
(INFO).mach = 0, \
|
||||
(INFO).insn_sets = 0, \
|
||||
(INFO).endian = BFD_ENDIAN_UNKNOWN, \
|
||||
(INFO).octets_per_byte = 1, \
|
||||
INIT_DISASSEMBLE_INFO_NO_ARCH(INFO, STREAM, FPRINTF_FUNC)
|
||||
|
@ -297,6 +311,7 @@ extern int generic_symbol_at_address
|
|||
(INFO).bytes_per_line = 0, \
|
||||
(INFO).bytes_per_chunk = 0, \
|
||||
(INFO).display_endian = BFD_ENDIAN_UNKNOWN, \
|
||||
(INFO).disassembler_options = NULL, \
|
||||
(INFO).insn_info_valid = 0
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -2,20 +2,20 @@
|
|||
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
Contributed by Mark Mitchell (mark@markmitchell.com).
|
||||
|
||||
This file is part of GNU CC.
|
||||
This file is part of GCC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
GCC 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.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
GCC 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 GNU CC; see the file COPYING. If not, write to
|
||||
along with GCC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
|
|
@ -1,6 +1,186 @@
|
|||
2002-02-09 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* alpha.h (R_ALPHA_BRSGP): New.
|
||||
|
||||
2002-02-08 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
Contribute sh64-elf.
|
||||
2002-01-23 Alexandre Oliva <aoliva@redhat.com>
|
||||
* sh.h (R_SH_GOTPLT32, R_SH_GOT_LOW16, R_SH_GOT_MEDLOW16,
|
||||
R_SH_GOT_MEDHI16, R_SH_GOT_HI16, R_SH_GOTPLT_LOW16,
|
||||
R_SH_GOTPLT_MEDLOW16, R_SH_GOTPLT_MEDHI16, R_SH_GOTPLT_HI16,
|
||||
R_SH_PLT_LOW16, R_SH_PLT_MEDLOW16, R_SH_PLT_MEDHI16,
|
||||
R_SH_PLT_HI16, R_SH_GOTOFF_LOW16, R_SH_GOTOFF_MEDLOW16,
|
||||
R_SH_GOTOFF_MEDHI16, R_SH_GOTOFF_HI16, R_SH_GOTPC_LOW16,
|
||||
R_SH_GOTPC_MEDLOW16, R_SH_GOTPC_MEDHI16, R_SH_GOTPC_HI16,
|
||||
R_SH_GOT10BY4, R_SH_GOTPLT10BY4, R_SH_GOT10BY8,
|
||||
R_SH_GOTPLT10BY8, R_SH_COPY64, R_SH_GLOB_DAT64, R_SH_JMP_SLOT64,
|
||||
R_SH_RELATIVE64): New relocs.
|
||||
(R_SH_FIRST_INVALID_RELOC_4): Adjust.
|
||||
2001-05-16 Alexandre Oliva <aoliva@redhat.com>
|
||||
* sh.h: Renumbered and renamed some SH5 relocations to match
|
||||
official numbers and names; moved unmaching ones to the range
|
||||
0xf2-0xff.
|
||||
2001-01-06 Hans-Peter Nilsson <hpn@cygnus.com>
|
||||
* sh.h (sh64_get_contents_type): Declare.
|
||||
(sh64_address_is_shmedia): Likewise.
|
||||
2000-12-30 Hans-Peter Nilsson <hpn@cygnus.com>
|
||||
* sh.h (sh64_elf_crange): New type.
|
||||
(struct sh64_section_data): New.
|
||||
(sh64_elf_section_data): New macro.
|
||||
(EF_SH5): Rename back from EF_SH64.
|
||||
2000-12-18 Hans-Peter Nilsson <hpn@cygnus.com>
|
||||
* sh.h (SHF_SH5_ISA32_MIXED, SHT_SH5_CR_SORTED,
|
||||
SH64_CRANGES_SECTION_NAME, SH64_CRANGE_SIZE,
|
||||
SH64_CRANGE_CR_ADDR_OFFSET, SH64_CRANGE_CR_SIZE_OFFSET,
|
||||
SH64_CRANGE_CR_TYPE_OFFSET): New macros.
|
||||
2000-12-12 Hans-Peter Nilsson <hpn@cygnus.com>
|
||||
* sh.h (EF_SH64): Don't define EF_SH64_ABI64.
|
||||
2000-11-27 Hans-Peter Nilsson <hpn@cygnus.com>
|
||||
* sh.h (EF_SH64_32BIT_ABI, EF_SH64_64BIT_ABI): Delete.
|
||||
(EF_SH64_ABI64): New.
|
||||
2000-11-23 Hans-Peter Nilsson <hpn@cygnus.com>
|
||||
* sh.h (EF_SH64): Rename from EF_SH5.
|
||||
(EF_SH64_32BIT_ABI): New.
|
||||
(EF_SH64_64BIT_ABI): New.
|
||||
(R_SH_PT_16, R_SH_SHMEDIA_CODE
|
||||
R_SH_IMMU5, R_SH_IMMS6, R_SH_IMMU6, R_SH_IMMS10, R_SH_IMMS10BY2,
|
||||
R_SH_IMMS10BY4, R_SH_IMMS10BY8, R_SH_IMMS16, R_SH_IMMU16,
|
||||
R_SH_IMM_LOW16, R_SH_IMM_LOW16_PCREL, R_SH_IMM_MEDLOW16,
|
||||
R_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDHI16, R_SH_IMM_MEDHI16_PCREL,
|
||||
R_SH_IMM_HI16, R_SH_IMM_HI16_PCREL, R_SH_64, R_SH_64_PCREL): New
|
||||
relocs.
|
||||
2000-09-01 Ben Elliston <bje@redhat.com>
|
||||
* sh.h (EF_SH5): Define.
|
||||
|
||||
2002-02-01 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* mmix.h: Tweak comments.
|
||||
(MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME): New.
|
||||
[BFD_ARCH_SIZE] (_bfd_mmix_prepare_linker_allocated_gregs,
|
||||
_bfd_mmix_finalize_linker_allocated_gregs,
|
||||
_bfd_mmix_check_all_relocs): Provide prototypes.
|
||||
|
||||
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.
|
||||
(NT_NETBSDCORE_PROCINFO): Define.
|
||||
(NT_NETBSDCORE_FIRSTMACH): Define.
|
||||
|
||||
2002-01-06 Steve Ellcey <sje@cup.hp.com>
|
||||
|
||||
* ia64.h (ELF_STRING_ia64_unwind_hdr): New Macro for HP-UX.
|
||||
(SHT_IA_64_HP_OPT_ANOT): Ditto
|
||||
(PT_IA_64_HP_OPT_ANOT): Ditto
|
||||
(PT_IA_64_HP_HSL_ANOT): Ditto
|
||||
(PT_IA_64_HP_STACK): Ditto
|
||||
(SHN_IA_64_ANSI_COMMON): Ditto
|
||||
|
||||
2001-12-17 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* external.h (Elf_External_Sym_Shndx): Declare.
|
||||
* internal.h (struct elf_internal_sym <st_shndx>): Make it an
|
||||
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.
|
||||
* internal.h (Elf_Internal_Ehdr): Change existing "unsigned short"
|
||||
size, count and index fields to "unsigned int".
|
||||
|
||||
2001-12-07 Geoffrey Keating <geoffk@redhat.com>
|
||||
Richard Henderson <rth@redhat.com>
|
||||
|
||||
* common.h (EM_XSTORMY16): Define.
|
||||
* xstormy16.h: New file.
|
||||
|
||||
2001-11-15 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* common.h (NT_ARCH): Define. Remove incorrect comment.
|
||||
|
||||
2001-11-11 Geoffrey Keating <geoffk@redhat.com>
|
||||
|
||||
* dwarf2.h (dwarf_line_number_ops): Add DWARF 3 opcodes.
|
||||
|
||||
2001-10-30 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* mmix.h: New file.
|
||||
|
||||
2001-10-23 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* internal.h: White space changes to keep lines under 80 chars.
|
||||
|
||||
2001-10-16 Jeff Holcomb <jeffh@redhat.com>
|
||||
|
||||
* internal.h (elf_internal_shdr): Make contents a unsigned char *.
|
||||
|
||||
2001-09-18 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* internal.h (elf_internal_rela): Make r_addend a bfd_vma.
|
||||
|
||||
2001-09-13 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* common.h (EM_OPENRISC_OLD): Renamed the old EM_OPENRISC entry.
|
||||
|
||||
2001-09-12 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* common.h (EM_AVR_OLD): Renamed from...
|
||||
(EM_AVR): this, redefined as in the current ELF standard.
|
||||
(EM_PJ_OLD): Renamed from...
|
||||
(EM_PJ): this, redefined as in the current ELF standard.
|
||||
(EM_R30, EM_D10V, EM_D30V, EM_V850, EM_M32R, EM_MN10300,
|
||||
EM_MN10200, EM_OPENRISC, EM_ARC_A5, EM_XTENSA): Defined as in
|
||||
the current ELF standard.
|
||||
(EM_CYGNUS_ARC): Removed, unused for a long time.
|
||||
|
||||
2001-09-04 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* alpha.h (R_ALPHA_OP*, R_ALPHA_IMMED*, R_ALPHA_GPVALUE): Remove.
|
||||
(R_ALPHA_GPREL16): Rename from R_ALPHA_IMMED_GP_16.
|
||||
|
||||
2001-08-30 Eric Christopher <echristo@redhat.com>
|
||||
|
||||
* mips.h: Remove E_MIPS_MACH_MIPS32_4K.
|
||||
|
||||
2001-08-29 Jeff Law <law@redhat.com>
|
||||
|
||||
* h8.h (EF_H8_MACH): New mask for encoded machine type.
|
||||
(E_H8_MACH_H8300, E_H8_MACH_H8300H, E_H8_MACH_H8300S): New
|
||||
machine types.
|
||||
|
||||
2001-08-26 J"orn Rennecke <amylaar@redhat.com>
|
||||
|
||||
* h8.h: New file.
|
||||
|
||||
2001-08-27 Staffan Ulfberg <staffanu@swox.se>
|
||||
|
||||
* ppc.h: Add relocs from the 64-bit PowerPC ELF ABI revision 1.2.
|
||||
|
||||
2001-06-30 Daniel Berlin <dan@cgsoftware.com>
|
||||
|
||||
* dwarf2.h: Remerge with gcc version,
|
||||
* dwarf2.h: Remerge with gcc version,
|
||||
including all new DWARF 2.1 extensions.
|
||||
|
||||
2001-06-29 James Cownie <jcownie@etnus.com>
|
||||
|
@ -18,6 +198,11 @@
|
|||
* 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.
|
||||
|
@ -45,7 +230,7 @@
|
|||
2001-04-20 Johan Rydberg <jrydberg@opencores.org>
|
||||
|
||||
* openrisc.h: New file.
|
||||
* common.h (EM_OPENRISC): New constant.
|
||||
* common.h (EM_OPENRISC): New constant.
|
||||
|
||||
2001-04-23 Bo Thorsen <bo@suse.de>
|
||||
|
||||
|
@ -290,8 +475,8 @@
|
|||
(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.
|
||||
|
||||
|
@ -325,7 +510,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.
|
||||
|
||||
|
@ -354,7 +539,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.
|
||||
|
|
|
@ -80,28 +80,25 @@ START_RELOC_NUMBERS (elf_alpha_reloc_type)
|
|||
RELOC_NUMBER (R_ALPHA_SREL32, 10) /* PC relative 32 bit */
|
||||
RELOC_NUMBER (R_ALPHA_SREL64, 11) /* PC relative 64 bit */
|
||||
|
||||
/* Inherited these from ECOFF, but they are not particularly useful
|
||||
and are depreciated. And not implemented in the BFD, btw. */
|
||||
RELOC_NUMBER (R_ALPHA_OP_PUSH, 12) /* OP stack push */
|
||||
RELOC_NUMBER (R_ALPHA_OP_STORE, 13) /* OP stack pop and store */
|
||||
RELOC_NUMBER (R_ALPHA_OP_PSUB, 14) /* OP stack subtract */
|
||||
RELOC_NUMBER (R_ALPHA_OP_PRSHIFT, 15) /* OP stack right shift */
|
||||
/* Skip 12 - 16; deprecated ECOFF relocs. */
|
||||
|
||||
RELOC_NUMBER (R_ALPHA_GPVALUE, 16)
|
||||
RELOC_NUMBER (R_ALPHA_GPRELHIGH, 17)
|
||||
RELOC_NUMBER (R_ALPHA_GPRELLOW, 18)
|
||||
RELOC_NUMBER (R_ALPHA_IMMED_GP_16, 19)
|
||||
RELOC_NUMBER (R_ALPHA_IMMED_GP_HI32, 20)
|
||||
RELOC_NUMBER (R_ALPHA_IMMED_SCN_HI32, 21)
|
||||
RELOC_NUMBER (R_ALPHA_IMMED_BR_HI32, 22)
|
||||
RELOC_NUMBER (R_ALPHA_IMMED_LO32, 23)
|
||||
RELOC_NUMBER (R_ALPHA_GPRELHIGH, 17) /* GP relative 32 bit, high 16 bits */
|
||||
RELOC_NUMBER (R_ALPHA_GPRELLOW, 18) /* GP relative 32 bit, low 16 bits */
|
||||
RELOC_NUMBER (R_ALPHA_GPREL16, 19) /* GP relative 16 bit */
|
||||
|
||||
/* These relocations are specific to shared libraries. */
|
||||
/* Skip 20 - 23; deprecated ECOFF relocs. */
|
||||
|
||||
/* These relocations are specific to shared libraries. */
|
||||
RELOC_NUMBER (R_ALPHA_COPY, 24) /* Copy symbol at runtime */
|
||||
RELOC_NUMBER (R_ALPHA_GLOB_DAT, 25) /* Create GOT entry */
|
||||
RELOC_NUMBER (R_ALPHA_JMP_SLOT, 26) /* Create PLT entry */
|
||||
RELOC_NUMBER (R_ALPHA_RELATIVE, 27) /* Adjust by program base */
|
||||
|
||||
/* Like BRADDR, but assert that the source and target object file
|
||||
share the same GP value, and adjust the target address for
|
||||
STO_ALPHA_STD_GPLOAD. */
|
||||
RELOC_NUMBER (R_ALPHA_BRSGP, 28)
|
||||
|
||||
END_RELOC_NUMBERS (R_ALPHA_max)
|
||||
|
||||
#endif /* _ELF_ALPHA_H */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* ARM ELF support for BFD.
|
||||
Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
|
@ -33,6 +33,7 @@
|
|||
#define EF_ARM_NEW_ABI 0x80
|
||||
#define EF_ARM_OLD_ABI 0x100
|
||||
#define EF_ARM_SOFT_FLOAT 0x200
|
||||
#define EF_ARM_VFP_FLOAT 0x400
|
||||
|
||||
/* Other constants defined in the ARM ELF spec. version B-01. */
|
||||
#define EF_ARM_SYMSARESORTED 0x04 /* NB conflicts with EF_INTERWORK */
|
||||
|
@ -51,6 +52,7 @@
|
|||
#define F_APCS_FLOAT EF_ARM_APCS_FLOAT
|
||||
#define F_PIC EF_ARM_PIC
|
||||
#define F_SOFT_FLOAT EF_ARM_SOFT_FLOAT
|
||||
#define F_VFP_FLOAT EF_ARM_VFP_FLOAT
|
||||
|
||||
/* Additional symbol types for Thumb. */
|
||||
#define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* ELF support for BFD.
|
||||
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
||||
2001
|
||||
2001, 2002
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
Written by Fred Fish @ Cygnus Support, from information published
|
||||
|
@ -162,6 +162,18 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
#define EM_MMIX 80 /* Donald Knuth's educational 64-bit processor */
|
||||
#define EM_HUANY 81 /* Harvard's machine-independent format */
|
||||
#define EM_PRISM 82 /* SiTera Prism */
|
||||
#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */
|
||||
#define EM_FR30 84 /* Fujitsu FR30 */
|
||||
#define EM_D10V 85 /* Mitsubishi D10V */
|
||||
#define EM_D30V 86 /* Mitsubishi D30V */
|
||||
#define EM_V850 87 /* NEC v850 */
|
||||
#define EM_M32R 88 /* Mitsubishi M32R */
|
||||
#define EM_MN10300 89 /* Matsushita MN10300 */
|
||||
#define EM_MN10200 90 /* Matsushita MN10200 */
|
||||
#define EM_PJ 91 /* picoJava */
|
||||
#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */
|
||||
#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */
|
||||
#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
|
||||
|
||||
/* If it is necessary to assign new unofficial EM_* values, please pick large
|
||||
random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision
|
||||
|
@ -175,7 +187,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
unofficial e_machine number should eventually ask registry@sco.com for
|
||||
an officially blessed number to be added to the list above. */
|
||||
|
||||
#define EM_PJ 99 /* picoJava */
|
||||
#define EM_PJ_OLD 99 /* picoJava */
|
||||
|
||||
/* Cygnus PowerPC ELF backend. Written in the absence of an ABI. */
|
||||
#define EM_CYGNUS_POWERPC 0x9025
|
||||
|
@ -187,8 +199,8 @@ 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
|
||||
|
||||
/* Cygnus ARC ELF backend. Written in the absence of an ABI. */
|
||||
#define EM_CYGNUS_ARC 0x9040
|
||||
/* (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
|
||||
|
@ -218,11 +230,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
|
||||
/* AVR magic number
|
||||
Written in the absense of an ABI. */
|
||||
#define EM_AVR 0x1057
|
||||
#define EM_AVR_OLD 0x1057
|
||||
|
||||
/* OpenRISC magic number
|
||||
Written in the absense of an ABI. */
|
||||
#define EM_OPENRISC 0x3426
|
||||
#define EM_OPENRISC_OLD 0x3426
|
||||
|
||||
#define EM_XSTORMY16 0xad45
|
||||
|
||||
/* See the above comment before you add a new EM_* value here. */
|
||||
|
||||
|
@ -245,6 +259,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
#define PT_LOPROC 0x70000000 /* Processor-specific */
|
||||
#define PT_HIPROC 0x7FFFFFFF /* Processor-specific */
|
||||
|
||||
#define PT_GNU_EH_FRAME (PT_LOOS + 0x474e550)
|
||||
|
||||
/* Program segment permissions, in program header p_flags field. */
|
||||
|
||||
#define PF_X (1 << 0) /* Segment is executable */
|
||||
|
@ -329,10 +345,18 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
#define NT_LWPSINFO 17 /* Has a struct lwpsinfo_t */
|
||||
#define NT_WIN32PSTATUS 18 /* Has a struct win32_pstatus */
|
||||
|
||||
|
||||
/* Note segments for core files on NetBSD systems. Note name
|
||||
must start with "NetBSD-CORE". */
|
||||
|
||||
#define NT_NETBSDCORE_PROCINFO 1 /* Has a struct procinfo */
|
||||
#define NT_NETBSDCORE_FIRSTMACH 32 /* start of machdep note types */
|
||||
|
||||
|
||||
/* Values of note segment descriptor types for object files. */
|
||||
/* (Only for hppa right now. Should this be moved elsewhere?) */
|
||||
|
||||
#define NT_VERSION 1 /* Contains a version string. */
|
||||
#define NT_ARCH 2 /* Contains an architecture string. */
|
||||
|
||||
/* These three macros disassemble and assemble a symbol table st_info field,
|
||||
which contains the symbol binding and symbol type. The STB_ and STT_
|
||||
|
@ -394,8 +418,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
#define SHN_HIOS 0xFF3F /* OS specific semantics, hi */
|
||||
#define SHN_ABS 0xFFF1 /* Associated symbol is absolute */
|
||||
#define SHN_COMMON 0xFFF2 /* Associated symbol is in common */
|
||||
#define SHN_XINDEX 0xFFFF /* Section index it held elsewhere */
|
||||
#define SHN_XINDEX 0xFFFF /* Section index is held elsewhere */
|
||||
#define SHN_HIRESERVE 0xFFFF /* End range of reserved indices */
|
||||
#define SHN_BAD ((unsigned) -1) /* Used internally by bfd */
|
||||
|
||||
/* The following constants control how a symbol may be accessed once it has
|
||||
become part of an executable or shared library. */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Declarations and definitions of codes relating to the DWARF2 symbolic
|
||||
debugging information format.
|
||||
Copyright 1992, 1993, 1995, 1996, 1999, 2000, 2001
|
||||
Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
|
||||
|
@ -10,21 +10,22 @@
|
|||
Derived from the DWARF 1 implementation written by Ron Guilmette
|
||||
(rfg@netcom.com), November 1990.
|
||||
|
||||
This file is part of GNU CC.
|
||||
This file is part of GCC.
|
||||
|
||||
GNU CC 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.
|
||||
GCC 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.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
GCC 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 GNU CC; see the file COPYING. If not, write to the Free
|
||||
Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
along with GCC; see the file COPYING. If not, write to the Free
|
||||
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA. */
|
||||
|
||||
/* This file is derived from the DWARF specification (a public document)
|
||||
Revision 2.0.0 (July 27, 1993) developed by the UNIX International
|
||||
|
@ -32,7 +33,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
|||
by UNIX International. Copies of this specification are available from
|
||||
UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
|
||||
|
||||
This file also now contains definitions from the DWARF 2.1 specification. */
|
||||
This file also now contains definitions from the DWARF 3 specification. */
|
||||
|
||||
/* This file is shared between GCC and GDB, and should not contain
|
||||
prototypes. */
|
||||
|
@ -177,7 +178,7 @@ enum dwarf_tag
|
|||
DW_TAG_variant_part = 0x33,
|
||||
DW_TAG_variable = 0x34,
|
||||
DW_TAG_volatile_type = 0x35,
|
||||
/* DWARF 2.1. */
|
||||
/* DWARF 3. */
|
||||
DW_TAG_dwarf_procedure = 0x36,
|
||||
DW_TAG_restrict_type = 0x37,
|
||||
DW_TAG_interface_type = 0x38,
|
||||
|
@ -190,8 +191,8 @@ enum dwarf_tag
|
|||
DW_TAG_MIPS_loop = 0x4081,
|
||||
/* GNU extensions. */
|
||||
DW_TAG_format_label = 0x4101, /* For FORTRAN 77 and Fortran 90. */
|
||||
DW_TAG_function_template = 0x4102, /* for C++ */
|
||||
DW_TAG_class_template = 0x4103, /* for C++ */
|
||||
DW_TAG_function_template = 0x4102, /* For C++. */
|
||||
DW_TAG_class_template = 0x4103, /* For C++. */
|
||||
DW_TAG_GNU_BINCL = 0x4104,
|
||||
DW_TAG_GNU_EINCL = 0x4105
|
||||
};
|
||||
|
@ -295,7 +296,7 @@ enum dwarf_attribute
|
|||
DW_AT_variable_parameter = 0x4b,
|
||||
DW_AT_virtuality = 0x4c,
|
||||
DW_AT_vtable_elem_location = 0x4d,
|
||||
/* DWARF 2.1 values. */
|
||||
/* DWARF 3 values. */
|
||||
DW_AT_allocated = 0x4e,
|
||||
DW_AT_associated = 0x4f,
|
||||
DW_AT_data_location = 0x50,
|
||||
|
@ -326,7 +327,9 @@ enum dwarf_attribute
|
|||
DW_AT_mac_info = 0x2103,
|
||||
DW_AT_src_coords = 0x2104,
|
||||
DW_AT_body_begin = 0x2105,
|
||||
DW_AT_body_end = 0x2106
|
||||
DW_AT_body_end = 0x2106,
|
||||
/* VMS Extensions. */
|
||||
DW_AT_VMS_rtnbeg_pd_address = 0x2201
|
||||
};
|
||||
|
||||
#define DW_AT_lo_user 0x2000 /* Implementation-defined range start. */
|
||||
|
@ -480,10 +483,10 @@ enum dwarf_location_atom
|
|||
DW_OP_deref_size = 0x94,
|
||||
DW_OP_xderef_size = 0x95,
|
||||
DW_OP_nop = 0x96,
|
||||
/* DWARF 2.1 extensions. */
|
||||
/* DWARF 3 extensions. */
|
||||
DW_OP_push_object_address = 0x97,
|
||||
DW_OP_call2 = 0x98, /* 1 2-byte offset of DIE. */
|
||||
DW_OP_call4 = 0x99, /* 1 4-byte offset of DIE. */
|
||||
DW_OP_call2 = 0x98,
|
||||
DW_OP_call4 = 0x99,
|
||||
DW_OP_calli = 0x9a
|
||||
};
|
||||
|
||||
|
@ -502,7 +505,7 @@ enum dwarf_type
|
|||
DW_ATE_signed_char = 0x6,
|
||||
DW_ATE_unsigned = 0x7,
|
||||
DW_ATE_unsigned_char = 0x8,
|
||||
/* DWARF 2.1. */
|
||||
/* DWARF 3. */
|
||||
DW_ATE_imaginary_float = 0x9
|
||||
};
|
||||
|
||||
|
@ -588,7 +591,11 @@ enum dwarf_line_number_ops
|
|||
DW_LNS_negate_stmt = 6,
|
||||
DW_LNS_set_basic_block = 7,
|
||||
DW_LNS_const_add_pc = 8,
|
||||
DW_LNS_fixed_advance_pc = 9
|
||||
DW_LNS_fixed_advance_pc = 9,
|
||||
/* DWARF 3. */
|
||||
DW_LNS_set_prologue_end = 10,
|
||||
DW_LNS_set_epilogue_begin = 11,
|
||||
DW_LNS_set_isa = 12
|
||||
};
|
||||
|
||||
/* Line number extended opcodes. */
|
||||
|
@ -620,9 +627,10 @@ enum dwarf_call_frame_info
|
|||
DW_CFA_def_cfa = 0x0c,
|
||||
DW_CFA_def_cfa_register = 0x0d,
|
||||
DW_CFA_def_cfa_offset = 0x0e,
|
||||
|
||||
/* DWARF 3. */
|
||||
DW_CFA_def_cfa_expression = 0x0f,
|
||||
DW_CFA_expression = 0x10,
|
||||
/* Dwarf 2.1. */
|
||||
DW_CFA_offset_extended_sf = 0x11,
|
||||
DW_CFA_def_cfa_sf = 0x12,
|
||||
DW_CFA_def_cfa_offset_sf = 0x13,
|
||||
|
@ -662,7 +670,7 @@ enum dwarf_source_language
|
|||
DW_LANG_Pascal83 = 0x0009,
|
||||
DW_LANG_Modula2 = 0x000a,
|
||||
DW_LANG_Java = 0x000b,
|
||||
/* DWARF 2.1. */
|
||||
/* DWARF 3. */
|
||||
DW_LANG_C99 = 0x000c,
|
||||
DW_LANG_Ada95 = 0x000d,
|
||||
DW_LANG_Fortran95 = 0x000e,
|
||||
|
|
|
@ -143,6 +143,10 @@ typedef struct {
|
|||
unsigned char st_size[8]; /* Associated symbol size */
|
||||
} Elf64_External_Sym;
|
||||
|
||||
typedef struct {
|
||||
unsigned char est_shndx[4]; /* Section index */
|
||||
} Elf_External_Sym_Shndx;
|
||||
|
||||
/* Note segments */
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -0,0 +1,96 @@
|
|||
/* H8300/h8500 ELF support for BFD.
|
||||
Copyright 2001 Free Software Foundation, Inc.
|
||||
|
||||
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_H8_H
|
||||
#define _ELF_H8_H
|
||||
|
||||
#include "elf/reloc-macros.h"
|
||||
|
||||
/* Relocations. */
|
||||
/* Relocations 59..63 are GNU extensions. */
|
||||
START_RELOC_NUMBERS (elf_h8_reloc_type)
|
||||
RELOC_NUMBER (R_H8_NONE, 0)
|
||||
RELOC_NUMBER (R_H8_DIR32, 1)
|
||||
RELOC_NUMBER (R_H8_DIR32_28, 2)
|
||||
RELOC_NUMBER (R_H8_DIR32_24, 3)
|
||||
RELOC_NUMBER (R_H8_DIR32_16, 4)
|
||||
RELOC_NUMBER (R_H8_DIR32U, 6)
|
||||
RELOC_NUMBER (R_H8_DIR32U_28, 7)
|
||||
RELOC_NUMBER (R_H8_DIR32U_24, 8)
|
||||
RELOC_NUMBER (R_H8_DIR32U_20, 9)
|
||||
RELOC_NUMBER (R_H8_DIR32U_16, 10)
|
||||
RELOC_NUMBER (R_H8_DIR24, 11)
|
||||
RELOC_NUMBER (R_H8_DIR24_20, 12)
|
||||
RELOC_NUMBER (R_H8_DIR24_16, 13)
|
||||
RELOC_NUMBER (R_H8_DIR24U, 14)
|
||||
RELOC_NUMBER (R_H8_DIR24U_20, 15)
|
||||
RELOC_NUMBER (R_H8_DIR24U_16, 16)
|
||||
RELOC_NUMBER (R_H8_DIR16, 17)
|
||||
RELOC_NUMBER (R_H8_DIR16U, 18)
|
||||
RELOC_NUMBER (R_H8_DIR16S_32, 19)
|
||||
RELOC_NUMBER (R_H8_DIR16S_28, 20)
|
||||
RELOC_NUMBER (R_H8_DIR16S_24, 21)
|
||||
RELOC_NUMBER (R_H8_DIR16S_20, 22)
|
||||
RELOC_NUMBER (R_H8_DIR16S, 23)
|
||||
RELOC_NUMBER (R_H8_DIR8, 24)
|
||||
RELOC_NUMBER (R_H8_DIR8U, 25)
|
||||
RELOC_NUMBER (R_H8_DIR8Z_32, 26)
|
||||
RELOC_NUMBER (R_H8_DIR8Z_28, 27)
|
||||
RELOC_NUMBER (R_H8_DIR8Z_24, 28)
|
||||
RELOC_NUMBER (R_H8_DIR8Z_20, 29)
|
||||
RELOC_NUMBER (R_H8_DIR8Z_16, 30)
|
||||
RELOC_NUMBER (R_H8_PCREL16, 31)
|
||||
RELOC_NUMBER (R_H8_PCREL8, 32)
|
||||
RELOC_NUMBER (R_H8_BPOS, 33)
|
||||
FAKE_RELOC (R_H8_FIRST_INVALID_DIR_RELOC, 34)
|
||||
FAKE_RELOC (R_H8_LAST_INVALID_DIR_RELOC, 58)
|
||||
RELOC_NUMBER (R_H8_DIR16A8, 59)
|
||||
RELOC_NUMBER (R_H8_DIR16R8, 60)
|
||||
RELOC_NUMBER (R_H8_DIR24A8, 61)
|
||||
RELOC_NUMBER (R_H8_DIR24R8, 62)
|
||||
RELOC_NUMBER (R_H8_DIR32A16, 63)
|
||||
RELOC_NUMBER (R_H8_ABS32, 65)
|
||||
RELOC_NUMBER (R_H8_ABS32A16, 127)
|
||||
RELOC_NUMBER (R_H8_SYM, 128)
|
||||
RELOC_NUMBER (R_H8_OPneg, 129)
|
||||
RELOC_NUMBER (R_H8_OPadd, 130)
|
||||
RELOC_NUMBER (R_H8_OPsub, 131)
|
||||
RELOC_NUMBER (R_H8_OPmul, 132)
|
||||
RELOC_NUMBER (R_H8_OPdiv, 133)
|
||||
RELOC_NUMBER (R_H8_OPshla, 134)
|
||||
RELOC_NUMBER (R_H8_OPshra, 135)
|
||||
RELOC_NUMBER (R_H8_OPsctsize, 136)
|
||||
RELOC_NUMBER (R_H8_OPhword, 137)
|
||||
RELOC_NUMBER (R_H8_OPlword, 138)
|
||||
RELOC_NUMBER (R_H8_OPhigh, 139)
|
||||
RELOC_NUMBER (R_H8_OPlow, 140)
|
||||
RELOC_NUMBER (R_H8_OPscttop, 141)
|
||||
END_RELOC_NUMBERS (R_H8_max)
|
||||
|
||||
/* Machine variant if we know it. This field was invented at Cygnus,
|
||||
but it is hoped that other vendors will adopt it. If some standard
|
||||
is developed, this code should be changed to follow it. */
|
||||
|
||||
#define EF_H8_MACH 0x00FF0000
|
||||
|
||||
#define E_H8_MACH_H8300 0x00800000
|
||||
#define E_H8_MACH_H8300H 0x00810000
|
||||
#define E_H8_MACH_H8300S 0x00820000
|
||||
|
||||
#endif
|
|
@ -49,6 +49,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
#define ELF_STRING_ia64_unwind_info ".IA_64.unwind_info"
|
||||
#define ELF_STRING_ia64_unwind_once ".gnu.linkonce.ia64unw."
|
||||
#define ELF_STRING_ia64_unwind_info_once ".gnu.linkonce.ia64unwi."
|
||||
/* .IA_64.unwind_hdr is only used by HP-UX. */
|
||||
#define ELF_STRING_ia64_unwind_hdr ".IA_64.unwind_hdr"
|
||||
|
||||
/* Bits in the sh_flags field of Elf64_Shdr: */
|
||||
|
||||
|
@ -60,6 +62,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
#define SHT_IA_64_EXT (SHT_LOPROC + 0) /* extension bits */
|
||||
#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) /* unwind bits */
|
||||
|
||||
/* SHT_IA_64_HP_OPT_ANOT is only generated by HPUX compilers for its
|
||||
optimization annotation section. GCC does not generate it but we
|
||||
want readelf to know what they are. Do not use two capital Ns in
|
||||
annotate or sed will turn it into 32 or 64 during the build. */
|
||||
#define SHT_IA_64_HP_OPT_ANOT 0x60000004
|
||||
|
||||
/* Bits in the p_flags field of Elf64_Phdr: */
|
||||
|
||||
#define PF_IA_64_NORECOV 0x80000000
|
||||
|
@ -69,10 +77,24 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) /* arch extension bits */
|
||||
#define PT_IA_64_UNWIND (PT_LOPROC + 1) /* ia64 unwind bits */
|
||||
|
||||
/* HP-UX specific values for p_type in Elf64_Phdr.
|
||||
These values are currently just used to make
|
||||
readelf more usable on HP-UX. */
|
||||
|
||||
#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12)
|
||||
#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13)
|
||||
#define PT_IA_64_HP_STACK (PT_LOOS + 0x14)
|
||||
|
||||
/* Possible values for d_tag in Elf64_Dyn: */
|
||||
|
||||
#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
|
||||
|
||||
/* This section only used by HP-UX, The HP linker gives weak symbols
|
||||
precedence over regular common symbols. We want common to override
|
||||
weak. Using this common instead of SHN_COMMON does that. */
|
||||
|
||||
#define SHN_IA_64_ANSI_COMMON 0xFF00
|
||||
|
||||
/* ia64-specific relocation types: */
|
||||
|
||||
/* Relocs apply to specific instructions within a bundle. The least
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* ELF support for BFD.
|
||||
Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000
|
||||
Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
Written by Fred Fish @ Cygnus Support, from information published
|
||||
|
@ -42,20 +42,20 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
#define EI_NIDENT 16 /* Size of e_ident[] */
|
||||
|
||||
typedef struct elf_internal_ehdr {
|
||||
unsigned char e_ident[EI_NIDENT]; /* ELF "magic number" */
|
||||
bfd_vma e_entry; /* Entry point virtual address */
|
||||
bfd_size_type e_phoff; /* Program header table file offset */
|
||||
bfd_size_type e_shoff; /* Section header table file offset */
|
||||
unsigned long e_version; /* Identifies object file version */
|
||||
unsigned long e_flags; /* Processor-specific flags */
|
||||
unsigned short e_type; /* Identifies object file type */
|
||||
unsigned short e_machine; /* Specifies required architecture */
|
||||
unsigned short e_ehsize; /* ELF header size in bytes */
|
||||
unsigned short e_phentsize; /* Program header table entry size */
|
||||
unsigned short e_phnum; /* Program header table entry count */
|
||||
unsigned short e_shentsize; /* Section header table entry size */
|
||||
unsigned short e_shnum; /* Section header table entry count */
|
||||
unsigned short e_shstrndx; /* Section header string table index */
|
||||
unsigned char e_ident[EI_NIDENT]; /* ELF "magic number" */
|
||||
bfd_vma e_entry; /* Entry point virtual address */
|
||||
bfd_size_type e_phoff; /* Program header table file offset */
|
||||
bfd_size_type e_shoff; /* Section header table file offset */
|
||||
unsigned long e_version; /* Identifies object file version */
|
||||
unsigned long e_flags; /* Processor-specific flags */
|
||||
unsigned short e_type; /* Identifies object file type */
|
||||
unsigned short e_machine; /* Specifies required architecture */
|
||||
unsigned int e_ehsize; /* ELF header size in bytes */
|
||||
unsigned int e_phentsize; /* Program header table entry size */
|
||||
unsigned int e_phnum; /* Program header table entry count */
|
||||
unsigned int e_shentsize; /* Section header table entry size */
|
||||
unsigned int e_shnum; /* Section header table entry count */
|
||||
unsigned int e_shstrndx; /* Section header string table index */
|
||||
} Elf_Internal_Ehdr;
|
||||
|
||||
#define elf32_internal_ehdr elf_internal_ehdr
|
||||
|
@ -98,7 +98,7 @@ typedef struct elf_internal_shdr {
|
|||
|
||||
/* The internal rep also has some cached info associated with it. */
|
||||
asection * bfd_section; /* Associated BFD section. */
|
||||
PTR contents; /* Section contents. */
|
||||
unsigned char *contents; /* Section contents. */
|
||||
} Elf_Internal_Shdr;
|
||||
|
||||
#define elf32_internal_shdr elf_internal_shdr
|
||||
|
@ -114,7 +114,7 @@ struct elf_internal_sym {
|
|||
unsigned long st_name; /* Symbol name, index in string tbl */
|
||||
unsigned char st_info; /* Type and binding attributes */
|
||||
unsigned char st_other; /* Visibilty, and target specific */
|
||||
unsigned short st_shndx; /* Associated section index */
|
||||
unsigned int st_shndx; /* Associated section index */
|
||||
};
|
||||
|
||||
typedef struct elf_internal_sym Elf_Internal_Sym;
|
||||
|
@ -153,7 +153,7 @@ typedef struct elf_internal_rel {
|
|||
typedef struct elf_internal_rela {
|
||||
bfd_vma r_offset; /* Location at which to apply the action */
|
||||
bfd_vma r_info; /* Index and Type of relocation */
|
||||
bfd_signed_vma r_addend; /* Constant addend used to compute value */
|
||||
bfd_vma r_addend; /* Constant addend used to compute value */
|
||||
} Elf_Internal_Rela;
|
||||
|
||||
#define elf32_internal_rela elf_internal_rela
|
||||
|
|
|
@ -172,12 +172,10 @@ END_RELOC_NUMBERS (R_MIPS_maxext)
|
|||
the rest are open. */
|
||||
|
||||
#define E_MIPS_MACH_3900 0x00810000
|
||||
|
||||
#define E_MIPS_MACH_4010 0x00820000
|
||||
#define E_MIPS_MACH_4100 0x00830000
|
||||
#define E_MIPS_MACH_4650 0x00850000
|
||||
#define E_MIPS_MACH_4111 0x00880000
|
||||
#define E_MIPS_MACH_MIPS32_4K 0x00890000
|
||||
#define E_MIPS_MACH_SB1 0x008a0000
|
||||
|
||||
/* Processor specific section indices. These sections do not actually
|
||||
|
|
|
@ -0,0 +1,168 @@
|
|||
/* MMIX support for BFD.
|
||||
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
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. */
|
||||
|
||||
/* This file holds definitions specific to the MMIX ELF ABI. */
|
||||
#ifndef ELF_MMIX_H
|
||||
#define ELF_MMIX_H
|
||||
|
||||
#include "elf/reloc-macros.h"
|
||||
|
||||
/* Relocations. */
|
||||
START_RELOC_NUMBERS (elf_mmix_reloc_type)
|
||||
RELOC_NUMBER (R_MMIX_NONE, 0)
|
||||
|
||||
/* Standard absolute relocations. */
|
||||
RELOC_NUMBER (R_MMIX_8, 1)
|
||||
RELOC_NUMBER (R_MMIX_16, 2)
|
||||
RELOC_NUMBER (R_MMIX_24, 3)
|
||||
RELOC_NUMBER (R_MMIX_32, 4)
|
||||
RELOC_NUMBER (R_MMIX_64, 5)
|
||||
|
||||
/* Standard relative relocations. */
|
||||
RELOC_NUMBER (R_MMIX_PC_8, 6)
|
||||
RELOC_NUMBER (R_MMIX_PC_16, 7)
|
||||
RELOC_NUMBER (R_MMIX_PC_24, 8)
|
||||
RELOC_NUMBER (R_MMIX_PC_32, 9)
|
||||
RELOC_NUMBER (R_MMIX_PC_64, 10)
|
||||
|
||||
/* GNU extensions for C++ vtables. */
|
||||
RELOC_NUMBER (R_MMIX_GNU_VTINHERIT, 11)
|
||||
RELOC_NUMBER (R_MMIX_GNU_VTENTRY, 12)
|
||||
|
||||
/* A GETA instruction. */
|
||||
RELOC_NUMBER (R_MMIX_GETA, 13)
|
||||
RELOC_NUMBER (R_MMIX_GETA_1, 14)
|
||||
RELOC_NUMBER (R_MMIX_GETA_2, 15)
|
||||
RELOC_NUMBER (R_MMIX_GETA_3, 16)
|
||||
|
||||
/* A conditional branch instruction. */
|
||||
RELOC_NUMBER (R_MMIX_CBRANCH, 17)
|
||||
RELOC_NUMBER (R_MMIX_CBRANCH_J, 18)
|
||||
RELOC_NUMBER (R_MMIX_CBRANCH_1, 19)
|
||||
RELOC_NUMBER (R_MMIX_CBRANCH_2, 20)
|
||||
RELOC_NUMBER (R_MMIX_CBRANCH_3, 21)
|
||||
|
||||
/* A PUSHJ instruction. */
|
||||
RELOC_NUMBER (R_MMIX_PUSHJ, 22)
|
||||
RELOC_NUMBER (R_MMIX_PUSHJ_1, 23)
|
||||
RELOC_NUMBER (R_MMIX_PUSHJ_2, 24)
|
||||
RELOC_NUMBER (R_MMIX_PUSHJ_3, 25)
|
||||
|
||||
/* A JMP instruction. */
|
||||
RELOC_NUMBER (R_MMIX_JMP, 26)
|
||||
RELOC_NUMBER (R_MMIX_JMP_1, 27)
|
||||
RELOC_NUMBER (R_MMIX_JMP_2, 28)
|
||||
RELOC_NUMBER (R_MMIX_JMP_3, 29)
|
||||
|
||||
/* A relative address such as in a GETA or a branch. */
|
||||
RELOC_NUMBER (R_MMIX_ADDR19, 30)
|
||||
|
||||
/* A relative address such as in a JMP (only). */
|
||||
RELOC_NUMBER (R_MMIX_ADDR27, 31)
|
||||
|
||||
/* A general register or a number 0..255. */
|
||||
RELOC_NUMBER (R_MMIX_REG_OR_BYTE, 32)
|
||||
|
||||
/* A general register. */
|
||||
RELOC_NUMBER (R_MMIX_REG, 33)
|
||||
|
||||
/* A global register and an offset, the global register (allocated at
|
||||
link time) contents plus the offset made equivalent to the relocation
|
||||
expression at link time. The relocation must point at the Y field of
|
||||
an instruction. */
|
||||
RELOC_NUMBER (R_MMIX_BASE_PLUS_OFFSET, 34)
|
||||
|
||||
/* A LOCAL assertion. */
|
||||
RELOC_NUMBER (R_MMIX_LOCAL, 35)
|
||||
END_RELOC_NUMBERS (R_MMIX_max)
|
||||
|
||||
|
||||
/* Section Attributes. */
|
||||
/* A section containing necessary information for relaxation. */
|
||||
#define SHF_MMIX_CANRELAX 0x80000000
|
||||
|
||||
/* Symbol attributes. */
|
||||
/* A symbol with this section-index is a register. */
|
||||
#define SHN_REGISTER SHN_LOPROC
|
||||
|
||||
/* This section holds contents for each initialized register, at VMA
|
||||
regno*8. A symbol relative to this section will be transformed to an
|
||||
absolute symbol with the value corresponding to the register number at
|
||||
final link time. A symbol with a value outside the inclusive range
|
||||
32*8 .. 254*8 is an error. It is highly recommended to only use an
|
||||
upper bound of 253*8 or lower as specified in the (currently
|
||||
unspecified) ABI. */
|
||||
#define MMIX_REG_CONTENTS_SECTION_NAME ".MMIX.reg_contents"
|
||||
|
||||
/* At link time, a section by this name is created, expected to be
|
||||
included in MMIX_REG_CONTENTS_SECTION_NAME in the output. */
|
||||
#define MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME \
|
||||
".MMIX.reg_contents.linker_allocated"
|
||||
|
||||
/* This is a faked section holding symbols with SHN_REGISTER. Don't
|
||||
confuse it with MMIX_REG_CONTENTS_SECTION_NAME; this one has no
|
||||
contents, just values. It is an error for a value in this section to
|
||||
be outside the range 32..255 and it must never become an actual section
|
||||
in an object file. */
|
||||
#define MMIX_REG_SECTION_NAME "*REG*"
|
||||
|
||||
/* Appended with a number N=0..65535, this is a representation of the
|
||||
mmixal "BSPEC N" ... "ESPEC" directive pair; the contents go into an
|
||||
ELF section by name ".MMIX.spec_data.N". */
|
||||
#define MMIX_OTHER_SPEC_SECTION_PREFIX ".MMIX.spec_data."
|
||||
|
||||
/* A section SECNAME is noted to start at "__.MMIX.start.SECNAME" by the
|
||||
presence of this symbol. Currently only implemented for ".text"
|
||||
through the symbol "__.MMIX.start..text". */
|
||||
#define MMIX_LOC_SECTION_START_SYMBOL_PREFIX "__.MMIX.start."
|
||||
|
||||
/* This symbol is always a function. */
|
||||
#define MMIX_START_SYMBOL_NAME "Main"
|
||||
|
||||
|
||||
/* We smuggle in a few MMO specifics here. We don't make a specific MMO
|
||||
file, since we can't reasonably support MMO without ELF; we have to
|
||||
include this file anyway. */
|
||||
|
||||
#define MMO_TEXT_SECTION_NAME ".text"
|
||||
#define MMO_DATA_SECTION_NAME ".data"
|
||||
|
||||
/* A definition for the flags we put in spec data in files. A copy of our
|
||||
own of some flags to keep immune to BFD flag changes. See section.c of
|
||||
2001-07-18 for flag documentation. */
|
||||
#define MMO_SEC_ALLOC 0x001
|
||||
#define MMO_SEC_LOAD 0x002
|
||||
#define MMO_SEC_RELOC 0x004
|
||||
#define MMO_SEC_READONLY 0x010
|
||||
#define MMO_SEC_CODE 0x020
|
||||
#define MMO_SEC_DATA 0x040
|
||||
#define MMO_SEC_NEVER_LOAD 0x400
|
||||
#define MMO_SEC_IS_COMMON 0x8000
|
||||
#define MMO_SEC_DEBUGGING 0x10000
|
||||
|
||||
#ifdef BFD_ARCH_SIZE
|
||||
extern boolean _bfd_mmix_prepare_linker_allocated_gregs
|
||||
PARAMS ((bfd *, struct bfd_link_info *));
|
||||
extern boolean _bfd_mmix_finalize_linker_allocated_gregs
|
||||
PARAMS ((bfd *, struct bfd_link_info *));
|
||||
extern boolean _bfd_mmix_check_all_relocs
|
||||
PARAMS ((bfd *, struct bfd_link_info *));
|
||||
#endif
|
||||
|
||||
#endif /* ELF_MMIX_H */
|
|
@ -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,5 +1,5 @@
|
|||
/* PPC ELF support for BFD.
|
||||
Copyright 1995, 1996, 1998, 2000 Free Software Foundation, Inc.
|
||||
Copyright 1995, 1996, 1998, 2000, 2001 Free Software Foundation, Inc.
|
||||
|
||||
By Michael Meissner, Cygnus Support, <meissner@cygnus.com>, from information
|
||||
in the System V Application Binary Interface, PowerPC Processor Supplement
|
||||
|
@ -68,6 +68,40 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
|
|||
RELOC_NUMBER (R_PPC_SECTOFF_LO, 34)
|
||||
RELOC_NUMBER (R_PPC_SECTOFF_HI, 35)
|
||||
RELOC_NUMBER (R_PPC_SECTOFF_HA, 36)
|
||||
RELOC_NUMBER (R_PPC_ADDR30, 37)
|
||||
|
||||
/* The following relocs are from the 64-bit PowerPC ELF ABI. */
|
||||
RELOC_NUMBER (R_PPC64_ADDR64, 38)
|
||||
RELOC_NUMBER (R_PPC64_ADDR16_HIGHER, 39)
|
||||
RELOC_NUMBER (R_PPC64_ADDR16_HIGHERA, 40)
|
||||
RELOC_NUMBER (R_PPC64_ADDR16_HIGHEST, 41)
|
||||
RELOC_NUMBER (R_PPC64_ADDR16_HIGHESTA, 42)
|
||||
RELOC_NUMBER (R_PPC64_UADDR64, 43)
|
||||
RELOC_NUMBER (R_PPC64_REL64, 44)
|
||||
RELOC_NUMBER (R_PPC64_PLT64, 45)
|
||||
RELOC_NUMBER (R_PPC64_PLTREL64, 46)
|
||||
RELOC_NUMBER (R_PPC64_TOC16, 47)
|
||||
RELOC_NUMBER (R_PPC64_TOC16_LO, 48)
|
||||
RELOC_NUMBER (R_PPC64_TOC16_HI, 49)
|
||||
RELOC_NUMBER (R_PPC64_TOC16_HA, 50)
|
||||
RELOC_NUMBER (R_PPC64_TOC, 51)
|
||||
RELOC_NUMBER (R_PPC64_PLTGOT16, 52)
|
||||
RELOC_NUMBER (R_PPC64_PLTGOT16_LO, 53)
|
||||
RELOC_NUMBER (R_PPC64_PLTGOT16_HI, 54)
|
||||
RELOC_NUMBER (R_PPC64_PLTGOT16_HA, 55)
|
||||
|
||||
/* The following relocs were added in the 64-bit PowerPC ELF ABI revision 1.2. */
|
||||
RELOC_NUMBER (R_PPC64_ADDR16_DS, 56)
|
||||
RELOC_NUMBER (R_PPC64_ADDR16_LO_DS, 57)
|
||||
RELOC_NUMBER (R_PPC64_GOT16_DS, 58)
|
||||
RELOC_NUMBER (R_PPC64_GOT16_LO_DS, 59)
|
||||
RELOC_NUMBER (R_PPC64_PLT16_LO_DS, 60)
|
||||
RELOC_NUMBER (R_PPC64_SECTOFF_DS, 61)
|
||||
RELOC_NUMBER (R_PPC64_SECTOFF_LO_DS, 62)
|
||||
RELOC_NUMBER (R_PPC64_TOC16_DS, 63)
|
||||
RELOC_NUMBER (R_PPC64_TOC16_LO_DS, 64)
|
||||
RELOC_NUMBER (R_PPC64_PLTGOT16_DS, 65)
|
||||
RELOC_NUMBER (R_PPC64_PLTGOT16_LO_DS, 66)
|
||||
|
||||
/* The remaining relocs are from the Embedded ELF ABI, and are not
|
||||
in the SVR4 ELF ABI. */
|
||||
|
@ -98,6 +132,47 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
|
|||
|
||||
END_RELOC_NUMBERS (R_PPC_max)
|
||||
|
||||
/* Aliases for R_PPC64-relocs. */
|
||||
#define R_PPC64_NONE R_PPC_NONE
|
||||
#define R_PPC64_ADDR32 R_PPC_ADDR32
|
||||
#define R_PPC64_ADDR24 R_PPC_ADDR24
|
||||
#define R_PPC64_ADDR16 R_PPC_ADDR16
|
||||
#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO
|
||||
#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI
|
||||
#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA
|
||||
#define R_PPC64_ADDR14 R_PPC_ADDR14
|
||||
#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN
|
||||
#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN
|
||||
#define R_PPC64_REL24 R_PPC_REL24
|
||||
#define R_PPC64_REL14 R_PPC_REL14
|
||||
#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN
|
||||
#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN
|
||||
#define R_PPC64_GOT16 R_PPC_GOT16
|
||||
#define R_PPC64_GOT16_LO R_PPC_GOT16_LO
|
||||
#define R_PPC64_GOT16_HI R_PPC_GOT16_HI
|
||||
#define R_PPC64_GOT16_HA R_PPC_GOT16_HA
|
||||
#define R_PPC64_COPY R_PPC_COPY
|
||||
#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT
|
||||
#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT
|
||||
#define R_PPC64_RELATIVE R_PPC_RELATIVE
|
||||
#define R_PPC64_UADDR32 R_PPC_UADDR32
|
||||
#define R_PPC64_UADDR16 R_PPC_UADDR16
|
||||
#define R_PPC64_REL32 R_PPC_REL32
|
||||
#define R_PPC64_PLT32 R_PPC_PLT32
|
||||
#define R_PPC64_PLTREL32 R_PPC_PLTREL32
|
||||
#define R_PPC64_PLT16_LO R_PPC_PLT16_LO
|
||||
#define R_PPC64_PLT16_HI R_PPC_PLT16_HI
|
||||
#define R_PPC64_PLT16_HA R_PPC_PLT16_HA
|
||||
#define R_PPC64_SECTOFF R_PPC_SECTOFF
|
||||
#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO
|
||||
#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI
|
||||
#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA
|
||||
#define R_PPC64_ADDR30 R_PPC_ADDR30
|
||||
#define R_PPC64_GNU_VTINHERIT R_PPC_GNU_VTINHERIT
|
||||
#define R_PPC64_GNU_VTENTRY R_PPC_GNU_VTENTRY
|
||||
|
||||
/* Specify the start of the .glink section. */
|
||||
#define DT_PPC64_GLINK DT_LOPROC
|
||||
|
||||
/* Processor specific flags for the ELF header e_flags field. */
|
||||
|
||||
|
|
132
include/elf/sh.h
132
include/elf/sh.h
|
@ -1,5 +1,5 @@
|
|||
/* SH ELF support for BFD.
|
||||
Copyright 1998, 2000 Free Software Foundation, Inc.
|
||||
Copyright 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
|
@ -34,6 +34,9 @@
|
|||
#define EF_SH3E 8
|
||||
#define EF_SH4 9
|
||||
|
||||
/* This one can only mix in objects from other EF_SH5 objects. */
|
||||
#define EF_SH5 10
|
||||
|
||||
#define EF_SH_MERGE_MACH(mach1, mach2) \
|
||||
(((((mach1) == EF_SH3 || (mach1) == EF_SH_UNKNOWN) && (mach2) == EF_SH_DSP) \
|
||||
|| ((mach1) == EF_SH_DSP \
|
||||
|
@ -47,6 +50,77 @@
|
|||
? EF_SH4 \
|
||||
: ((mach1) > (mach2) ? (mach1) : (mach2)))
|
||||
|
||||
/* Flags for the st_other symbol field.
|
||||
Keep away from the STV_ visibility flags (bit 0..1). */
|
||||
|
||||
/* A reference to this symbol should by default add 1. */
|
||||
#define STO_SH5_ISA32 (1 << 2)
|
||||
|
||||
/* Section contains only SHmedia code (no SHcompact code). */
|
||||
#define SHF_SH5_ISA32 0x40000000
|
||||
|
||||
/* Section contains both SHmedia and SHcompact code, and possibly also
|
||||
constants. */
|
||||
#define SHF_SH5_ISA32_MIXED 0x20000000
|
||||
|
||||
/* If applied to a .cranges section, marks that the section is sorted by
|
||||
increasing cr_addr values. */
|
||||
#define SHT_SH5_CR_SORTED 0x80000001
|
||||
|
||||
/* Symbol should be handled as DataLabel (attached to global SHN_UNDEF
|
||||
symbols). */
|
||||
#define STT_DATALABEL STT_LOPROC
|
||||
|
||||
#define SH64_CRANGES_SECTION_NAME ".cranges"
|
||||
enum sh64_elf_cr_type {
|
||||
CRT_NONE = 0,
|
||||
CRT_DATA = 1,
|
||||
CRT_SH5_ISA16 = 2,
|
||||
CRT_SH5_ISA32 = 3
|
||||
};
|
||||
|
||||
/* The official definition is this:
|
||||
|
||||
typedef struct {
|
||||
Elf32_Addr cr_addr;
|
||||
Elf32_Word cr_size;
|
||||
Elf32_Half cr_type;
|
||||
} Elf32_CRange;
|
||||
|
||||
but we have no use for that exact type. Instead we use this struct for
|
||||
the internal representation. */
|
||||
typedef struct {
|
||||
bfd_vma cr_addr;
|
||||
bfd_size_type cr_size;
|
||||
enum sh64_elf_cr_type cr_type;
|
||||
} sh64_elf_crange;
|
||||
|
||||
#define SH64_CRANGE_SIZE (4 + 4 + 2)
|
||||
#define SH64_CRANGE_CR_ADDR_OFFSET 0
|
||||
#define SH64_CRANGE_CR_SIZE_OFFSET 4
|
||||
#define SH64_CRANGE_CR_TYPE_OFFSET (4 + 4)
|
||||
|
||||
/* Get the contents type of an arbitrary address, or return CRT_NONE. */
|
||||
extern enum sh64_elf_cr_type sh64_get_contents_type
|
||||
PARAMS ((asection *, bfd_vma, sh64_elf_crange *));
|
||||
|
||||
/* Simpler interface.
|
||||
FIXME: This seems redundant now that we export the interface above. */
|
||||
extern boolean sh64_address_is_shmedia PARAMS ((asection *, bfd_vma));
|
||||
|
||||
/* We put this in elf_section_data (section)->tdata. */
|
||||
struct sh64_section_data
|
||||
{
|
||||
flagword contents_flags;
|
||||
|
||||
/* Only used in the cranges section, but we don't have an official
|
||||
backend-specific bfd field. */
|
||||
bfd_size_type cranges_growth;
|
||||
};
|
||||
|
||||
#define sh64_elf_section_data(sec) \
|
||||
((struct sh64_section_data *) ((elf_section_data (sec))->tdata))
|
||||
|
||||
#include "elf/reloc-macros.h"
|
||||
|
||||
/* Relocations. */
|
||||
|
@ -79,7 +153,16 @@ START_RELOC_NUMBERS (elf_sh_reloc_type)
|
|||
RELOC_NUMBER (R_SH_LOOP_START, 36)
|
||||
RELOC_NUMBER (R_SH_LOOP_END, 37)
|
||||
FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_2, 38)
|
||||
FAKE_RELOC (R_SH_LAST_INVALID_RELOC_2, 159)
|
||||
FAKE_RELOC (R_SH_LAST_INVALID_RELOC_2, 44)
|
||||
RELOC_NUMBER (R_SH_DIR5U, 45)
|
||||
RELOC_NUMBER (R_SH_DIR6U, 46)
|
||||
RELOC_NUMBER (R_SH_DIR6S, 47)
|
||||
RELOC_NUMBER (R_SH_DIR10S, 48)
|
||||
RELOC_NUMBER (R_SH_DIR10SW, 49)
|
||||
RELOC_NUMBER (R_SH_DIR10SL, 50)
|
||||
RELOC_NUMBER (R_SH_DIR10SQ, 51)
|
||||
FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_3, 52)
|
||||
FAKE_RELOC (R_SH_LAST_INVALID_RELOC_3, 159)
|
||||
RELOC_NUMBER (R_SH_GOT32, 160)
|
||||
RELOC_NUMBER (R_SH_PLT32, 161)
|
||||
RELOC_NUMBER (R_SH_COPY, 162)
|
||||
|
@ -88,6 +171,51 @@ START_RELOC_NUMBERS (elf_sh_reloc_type)
|
|||
RELOC_NUMBER (R_SH_RELATIVE, 165)
|
||||
RELOC_NUMBER (R_SH_GOTOFF, 166)
|
||||
RELOC_NUMBER (R_SH_GOTPC, 167)
|
||||
RELOC_NUMBER (R_SH_GOTPLT32, 168)
|
||||
RELOC_NUMBER (R_SH_GOT_LOW16, 169)
|
||||
RELOC_NUMBER (R_SH_GOT_MEDLOW16, 170)
|
||||
RELOC_NUMBER (R_SH_GOT_MEDHI16, 171)
|
||||
RELOC_NUMBER (R_SH_GOT_HI16, 172)
|
||||
RELOC_NUMBER (R_SH_GOTPLT_LOW16, 173)
|
||||
RELOC_NUMBER (R_SH_GOTPLT_MEDLOW16, 174)
|
||||
RELOC_NUMBER (R_SH_GOTPLT_MEDHI16, 175)
|
||||
RELOC_NUMBER (R_SH_GOTPLT_HI16, 176)
|
||||
RELOC_NUMBER (R_SH_PLT_LOW16, 177)
|
||||
RELOC_NUMBER (R_SH_PLT_MEDLOW16, 178)
|
||||
RELOC_NUMBER (R_SH_PLT_MEDHI16, 179)
|
||||
RELOC_NUMBER (R_SH_PLT_HI16, 180)
|
||||
RELOC_NUMBER (R_SH_GOTOFF_LOW16, 181)
|
||||
RELOC_NUMBER (R_SH_GOTOFF_MEDLOW16, 182)
|
||||
RELOC_NUMBER (R_SH_GOTOFF_MEDHI16, 183)
|
||||
RELOC_NUMBER (R_SH_GOTOFF_HI16, 184)
|
||||
RELOC_NUMBER (R_SH_GOTPC_LOW16, 185)
|
||||
RELOC_NUMBER (R_SH_GOTPC_MEDLOW16, 186)
|
||||
RELOC_NUMBER (R_SH_GOTPC_MEDHI16, 187)
|
||||
RELOC_NUMBER (R_SH_GOTPC_HI16, 188)
|
||||
RELOC_NUMBER (R_SH_GOT10BY4, 189)
|
||||
RELOC_NUMBER (R_SH_GOTPLT10BY4, 190)
|
||||
RELOC_NUMBER (R_SH_GOT10BY8, 191)
|
||||
RELOC_NUMBER (R_SH_GOTPLT10BY8, 192)
|
||||
RELOC_NUMBER (R_SH_COPY64, 193)
|
||||
RELOC_NUMBER (R_SH_GLOB_DAT64, 194)
|
||||
RELOC_NUMBER (R_SH_JMP_SLOT64, 195)
|
||||
RELOC_NUMBER (R_SH_RELATIVE64, 196)
|
||||
FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_4, 197)
|
||||
FAKE_RELOC (R_SH_LAST_INVALID_RELOC_4, 241)
|
||||
RELOC_NUMBER (R_SH_SHMEDIA_CODE, 242)
|
||||
RELOC_NUMBER (R_SH_PT_16, 243)
|
||||
RELOC_NUMBER (R_SH_IMMS16, 244)
|
||||
RELOC_NUMBER (R_SH_IMMU16, 245)
|
||||
RELOC_NUMBER (R_SH_IMM_LOW16, 246)
|
||||
RELOC_NUMBER (R_SH_IMM_LOW16_PCREL, 247)
|
||||
RELOC_NUMBER (R_SH_IMM_MEDLOW16, 248)
|
||||
RELOC_NUMBER (R_SH_IMM_MEDLOW16_PCREL, 249)
|
||||
RELOC_NUMBER (R_SH_IMM_MEDHI16, 250)
|
||||
RELOC_NUMBER (R_SH_IMM_MEDHI16_PCREL, 251)
|
||||
RELOC_NUMBER (R_SH_IMM_HI16, 252)
|
||||
RELOC_NUMBER (R_SH_IMM_HI16_PCREL, 253)
|
||||
RELOC_NUMBER (R_SH_64, 254)
|
||||
RELOC_NUMBER (R_SH_64_PCREL, 255)
|
||||
END_RELOC_NUMBERS (R_SH_max)
|
||||
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
/* XSTORMY16 ELF support for BFD.
|
||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
|
||||
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_XSTORMY16_H
|
||||
#define _ELF_XSTORMY16_H
|
||||
|
||||
#include "elf/reloc-macros.h"
|
||||
|
||||
/* Relocations. */
|
||||
START_RELOC_NUMBERS (elf_xstormy16_reloc_type)
|
||||
RELOC_NUMBER (R_XSTORMY16_NONE, 0)
|
||||
|
||||
RELOC_NUMBER (R_XSTORMY16_32, 1)
|
||||
RELOC_NUMBER (R_XSTORMY16_16, 2)
|
||||
RELOC_NUMBER (R_XSTORMY16_8, 3)
|
||||
RELOC_NUMBER (R_XSTORMY16_PC32, 4)
|
||||
RELOC_NUMBER (R_XSTORMY16_PC16, 5)
|
||||
RELOC_NUMBER (R_XSTORMY16_PC8, 6)
|
||||
|
||||
RELOC_NUMBER (R_XSTORMY16_REL_12, 7)
|
||||
RELOC_NUMBER (R_XSTORMY16_24, 8)
|
||||
RELOC_NUMBER (R_XSTORMY16_FPTR16, 9)
|
||||
|
||||
RELOC_NUMBER (R_XSTORMY16_GNU_VTINHERIT, 128)
|
||||
RELOC_NUMBER (R_XSTORMY16_GNU_VTENTRY, 129)
|
||||
END_RELOC_NUMBERS (R_XSTORMY16_max)
|
||||
|
||||
/* Define the data & instruction memory discriminator. In a linked
|
||||
executable, an symbol should be deemed to point to an instruction
|
||||
if ((address & XSTORMY16_INSN_MASK) == XSTORMY16_INSN_VALUE), and similarly
|
||||
for the data space. See also `ld/emulparams/elf32xstormy16.sh'. */
|
||||
#define XSTORMY16_DATA_MASK 0xffc00000
|
||||
#define XSTORMY16_DATA_VALUE 0x00000000
|
||||
#define XSTORMY16_INSN_MASK 0xffc00000
|
||||
#define XSTORMY16_INSN_VALUE 0x00400000
|
||||
|
||||
#endif /* _ELF_XSTORMY16_H */
|
|
@ -0,0 +1,81 @@
|
|||
/* A Fibonacci heap datatype.
|
||||
Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
Contributed by Daniel Berlin (dan@cgsoftware.com).
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC 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.
|
||||
|
||||
GCC 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 GCC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Fibonacci heaps are somewhat complex, but, there's an article in
|
||||
DDJ that explains them pretty well:
|
||||
|
||||
http://www.ddj.com/articles/1997/9701/9701o/9701o.htm?topic=algoritms
|
||||
|
||||
Introduction to algorithms by Corman and Rivest also goes over them.
|
||||
|
||||
The original paper that introduced them is "Fibonacci heaps and their
|
||||
uses in improved network optimization algorithms" by Tarjan and
|
||||
Fredman (JACM 34(3), July 1987).
|
||||
|
||||
Amortized and real worst case time for operations:
|
||||
|
||||
ExtractMin: O(lg n) amortized. O(n) worst case.
|
||||
DecreaseKey: O(1) amortized. O(lg n) worst case.
|
||||
Insert: O(2) amortized. O(1) actual.
|
||||
Union: O(1) amortized. O(1) actual. */
|
||||
|
||||
#ifndef _FIBHEAP_H_
|
||||
#define _FIBHEAP_H_
|
||||
|
||||
#include <ansidecl.h>
|
||||
|
||||
typedef long fibheapkey_t;
|
||||
|
||||
typedef struct fibheap
|
||||
{
|
||||
size_t nodes;
|
||||
struct fibnode *min;
|
||||
struct fibnode *root;
|
||||
} *fibheap_t;
|
||||
|
||||
typedef struct fibnode
|
||||
{
|
||||
struct fibnode *parent;
|
||||
struct fibnode *child;
|
||||
struct fibnode *left;
|
||||
struct fibnode *right;
|
||||
fibheapkey_t key;
|
||||
void *data;
|
||||
unsigned int degree : 31;
|
||||
unsigned int mark : 1;
|
||||
} *fibnode_t;
|
||||
|
||||
extern fibheap_t fibheap_new PARAMS ((void));
|
||||
extern fibnode_t fibheap_insert PARAMS ((fibheap_t, fibheapkey_t, void *));
|
||||
extern int fibheap_empty PARAMS ((fibheap_t));
|
||||
extern fibheapkey_t fibheap_min_key PARAMS ((fibheap_t));
|
||||
extern fibheapkey_t fibheap_replace_key PARAMS ((fibheap_t, fibnode_t,
|
||||
fibheapkey_t));
|
||||
extern void *fibheap_replace_key_data PARAMS ((fibheap_t, fibnode_t,
|
||||
fibheapkey_t, void *));
|
||||
extern void *fibheap_extract_min PARAMS ((fibheap_t));
|
||||
extern void *fibheap_min PARAMS ((fibheap_t));
|
||||
extern void *fibheap_replace_data PARAMS ((fibheap_t, fibnode_t, void *));
|
||||
extern void *fibheap_delete_node PARAMS ((fibheap_t, fibnode_t));
|
||||
extern void fibheap_delete PARAMS ((fibheap_t));
|
||||
extern fibheap_t fibheap_union PARAMS ((fibheap_t, fibheap_t));
|
||||
|
||||
#endif /* _FIBHEAP_H_ */
|
|
@ -5,7 +5,7 @@
|
|||
use forward- and back-slash in path names interchangeably, and
|
||||
some of them have case-insensitive file names.
|
||||
|
||||
Copyright 2000 Free Software Foundation, Inc.
|
||||
Copyright 2000, 2001 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
|
@ -26,7 +26,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
#ifndef FILENAMES_H
|
||||
#define FILENAMES_H
|
||||
|
||||
#if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__)
|
||||
#if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__) || defined (__CYGWIN__)
|
||||
|
||||
#ifndef HAVE_DOS_BASED_FILE_SYSTEM
|
||||
#define HAVE_DOS_BASED_FILE_SYSTEM 1
|
||||
|
|
|
@ -95,7 +95,15 @@ extern const struct floatformat floatformat_i387_ext;
|
|||
extern const struct floatformat floatformat_m68881_ext;
|
||||
extern const struct floatformat floatformat_i960_ext;
|
||||
extern const struct floatformat floatformat_m88110_ext;
|
||||
extern const struct floatformat floatformat_arm_ext;
|
||||
extern const struct floatformat floatformat_m88110_harris_ext;
|
||||
extern const struct floatformat floatformat_arm_ext; /* deprecated. */
|
||||
extern const struct floatformat floatformat_arm_ext_big;
|
||||
extern const struct floatformat floatformat_arm_ext_littlebyte_bigword;
|
||||
/* IA-64 Floating Point register spilt into memory. */
|
||||
extern const struct floatformat floatformat_ia64_spill_big;
|
||||
extern const struct floatformat floatformat_ia64_spill_little;
|
||||
extern const struct floatformat floatformat_ia64_quad_big;
|
||||
extern const struct floatformat floatformat_ia64_quad_little;
|
||||
|
||||
/* Convert from FMT to a double.
|
||||
FROM is the address of the extended float.
|
||||
|
|
|
@ -145,6 +145,9 @@ extern htab_hash htab_hash_pointer;
|
|||
/* An equality function for pointers. */
|
||||
extern htab_eq htab_eq_pointer;
|
||||
|
||||
/* A hash function for null-terminated strings. */
|
||||
extern hashval_t htab_hash_string PARAMS ((const PTR));
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Function declarations for libiberty.
|
||||
|
||||
Copyright 2001 Free Software Foundation, Inc.
|
||||
Copyright 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
Note - certain prototypes declared in this header file are for
|
||||
functions whoes implementation copyright does not belong to the
|
||||
|
@ -51,7 +51,7 @@ extern "C" {
|
|||
/* Build an argument vector from a string. Allocates memory using
|
||||
malloc. Use freeargv to free the vector. */
|
||||
|
||||
extern char **buildargv PARAMS ((char *)) ATTRIBUTE_MALLOC;
|
||||
extern char **buildargv PARAMS ((const char *)) ATTRIBUTE_MALLOC;
|
||||
|
||||
/* Free a vector returned by buildargv. */
|
||||
|
||||
|
@ -83,13 +83,55 @@ extern char *basename ();
|
|||
|
||||
/* A well-defined basename () that is always compiled in. */
|
||||
|
||||
extern char *lbasename PARAMS ((const char *));
|
||||
extern const char *lbasename PARAMS ((const char *));
|
||||
|
||||
/* Concatenate an arbitrary number of strings, up to (char *) NULL.
|
||||
Allocates memory using xmalloc. */
|
||||
/* Concatenate an arbitrary number of strings. You must pass NULL as
|
||||
the last argument of this function, to terminate the list of
|
||||
strings. Allocates memory using xmalloc. */
|
||||
|
||||
extern char *concat PARAMS ((const char *, ...)) ATTRIBUTE_MALLOC;
|
||||
|
||||
/* Concatenate an arbitrary number of strings. You must pass NULL as
|
||||
the last argument of this function, to terminate the list of
|
||||
strings. Allocates memory using xmalloc. The first argument is
|
||||
not one of the strings to be concatenated, but if not NULL is a
|
||||
pointer to be freed after the new string is created, similar to the
|
||||
way xrealloc works. */
|
||||
|
||||
extern char *reconcat PARAMS ((char *, const char *, ...)) ATTRIBUTE_MALLOC;
|
||||
|
||||
/* Determine the length of concatenating an arbitrary number of
|
||||
strings. You must pass NULL as the last argument of this function,
|
||||
to terminate the list of strings. */
|
||||
|
||||
extern unsigned long concat_length PARAMS ((const char *, ...));
|
||||
|
||||
/* Concatenate an arbitrary number of strings into a SUPPLIED area of
|
||||
memory. You must pass NULL as the last argument of this function,
|
||||
to terminate the list of strings. The supplied memory is assumed
|
||||
to be large enough. */
|
||||
|
||||
extern char *concat_copy PARAMS ((char *, const char *, ...));
|
||||
|
||||
/* Concatenate an arbitrary number of strings into a GLOBAL area of
|
||||
memory. You must pass NULL as the last argument of this function,
|
||||
to terminate the list of strings. The supplied memory is assumed
|
||||
to be large enough. */
|
||||
|
||||
extern char *concat_copy2 PARAMS ((const char *, ...));
|
||||
|
||||
/* This is the global area used by concat_copy2. */
|
||||
|
||||
extern char *libiberty_concat_ptr;
|
||||
|
||||
/* Concatenate an arbitrary number of strings. You must pass NULL as
|
||||
the last argument of this function, to terminate the list of
|
||||
strings. Allocates memory using alloca. The arguments are
|
||||
evaluated twice! */
|
||||
#define ACONCAT(ACONCAT_PARAMS) \
|
||||
(libiberty_concat_ptr = alloca (concat_length ACONCAT_PARAMS + 1), \
|
||||
concat_copy2 ACONCAT_PARAMS)
|
||||
|
||||
/* Check whether two file descriptors refer to the same file. */
|
||||
|
||||
extern int fdmatch PARAMS ((int fd1, int fd2));
|
||||
|
@ -198,7 +240,7 @@ extern PTR xmemdup PARAMS ((const PTR, size_t, size_t)) ATTRIBUTE_MALLOC;
|
|||
|
||||
#define _hex_array_size 256
|
||||
#define _hex_bad 99
|
||||
extern char _hex_value[_hex_array_size];
|
||||
extern const char _hex_value[_hex_array_size];
|
||||
extern void hex_init PARAMS ((void));
|
||||
#define hex_p(c) (hex_value (c) != _hex_bad)
|
||||
/* If you change this, note well: Some code relies on side effects in
|
||||
|
@ -241,17 +283,30 @@ extern int vasprintf PARAMS ((char **, const char *, va_list))
|
|||
USE_C_ALLOCA yourself. The canonical autoconf macro C_ALLOCA is
|
||||
also set/unset as it is often used to indicate whether code needs
|
||||
to call alloca(0). */
|
||||
extern PTR C_alloca PARAMS((size_t));
|
||||
extern PTR C_alloca PARAMS ((size_t)) ATTRIBUTE_MALLOC;
|
||||
#undef alloca
|
||||
#if GCC_VERSION >= 2000 && !defined USE_C_ALLOCA
|
||||
# define alloca(x) __builtin_alloca(x)
|
||||
# undef C_ALLOCA
|
||||
# define ASTRDUP(X) \
|
||||
(__extension__ ({ const char *const libiberty_optr = (X); \
|
||||
const unsigned long libiberty_len = strlen (libiberty_optr) + 1; \
|
||||
char *const libiberty_nptr = alloca (libiberty_len); \
|
||||
(char *) memcpy (libiberty_nptr, libiberty_optr, libiberty_len); }))
|
||||
#else
|
||||
# define alloca(x) C_alloca(x)
|
||||
# undef USE_C_ALLOCA
|
||||
# define USE_C_ALLOCA 1
|
||||
# undef C_ALLOCA
|
||||
# define C_ALLOCA 1
|
||||
extern const char *libiberty_optr;
|
||||
extern char *libiberty_nptr;
|
||||
extern unsigned long libiberty_len;
|
||||
# define ASTRDUP(X) \
|
||||
(libiberty_optr = (X), \
|
||||
libiberty_len = strlen (libiberty_optr) + 1, \
|
||||
libiberty_nptr = alloca (libiberty_len), \
|
||||
(char *) memcpy (libiberty_nptr, libiberty_optr, libiberty_len))
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2001-10-02 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* common.h (NLM_CAT, NLM_CAT3): Don't define.
|
||||
(NLM_CAT4): Update conditions under which this is defined. Document
|
||||
why CONCAT4 can't be used.
|
||||
|
||||
Fri May 6 13:31:04 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
||||
|
||||
* external.h (nlmNAME(External_Custom_Header)): Add length,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* NLM (NetWare Loadable Module) support for BFD.
|
||||
Copyright 1993 Free Software Foundation, Inc.
|
||||
Copyright 1993, 2001 Free Software Foundation, Inc.
|
||||
|
||||
Written by Fred Fish @ Cygnus Support
|
||||
|
||||
|
@ -23,31 +23,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
/* This file is part of NLM support for BFD, and contains the portions
|
||||
that are common to both the internal and external representations. */
|
||||
|
||||
/* Semi-portable string concatenation in cpp.
|
||||
The NLM_CAT4 hack is to avoid a problem with some strict ANSI C
|
||||
preprocessors. The problem is, "32_" or "64_" are not a valid
|
||||
preprocessing tokens, and we don't want extra underscores (e.g.,
|
||||
"nlm_32_"). The XNLM_CAT2 macro will cause the inner NLM_CAT macros
|
||||
to be evaluated first, producing still-valid pp-tokens. Then the
|
||||
final concatenation can be done. (Sigh.) */
|
||||
|
||||
#ifdef SABER
|
||||
# define NLM_CAT(a,b) a##b
|
||||
# define NLM_CAT3(a,b,c) a##b##c
|
||||
# define NLM_CAT4(a,b,c,d) a##b##c##d
|
||||
#else
|
||||
# ifdef __STDC__
|
||||
# define NLM_CAT(a,b) a##b
|
||||
# define NLM_CAT3(a,b,c) a##b##c
|
||||
# define XNLM_CAT2(a,b) NLM_CAT(a,b)
|
||||
# define NLM_CAT4(a,b,c,d) XNLM_CAT2(NLM_CAT(a,b),NLM_CAT(c,d))
|
||||
# else
|
||||
# define NLM_CAT(a,b) a/**/b
|
||||
# define NLM_CAT3(a,b,c) a/**/b/**/c
|
||||
# define NLM_CAT4(a,b,c,d) a/**/b/**/c/**/d
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* If NLM_ARCH_SIZE is not defined, default to 32. NLM_ARCH_SIZE is
|
||||
optionally defined by the application. */
|
||||
|
||||
|
@ -55,6 +30,30 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
# define NLM_ARCH_SIZE 32
|
||||
#endif
|
||||
|
||||
/* Due to horrible details of ANSI macro expansion, we can't use CONCAT4
|
||||
for NLM_NAME. CONCAT2 is used in BFD_JUMP_TABLE macros, and some of
|
||||
them will expand to tokens that themselves are macros defined in terms
|
||||
of NLM_NAME. If NLM_NAME were defined using CONCAT4 (which is itself
|
||||
defined in bfd-in.h using CONCAT2), ANSI preprocessor rules say that
|
||||
the CONCAT2 within NLM_NAME should not be expanded.
|
||||
So use another name. */
|
||||
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
|
||||
#ifdef SABER
|
||||
#define NLM_CAT4(a,b,c,d) a##b##c##d
|
||||
#else
|
||||
/* This hack is to avoid a problem with some strict ANSI C preprocessors.
|
||||
The problem is, "32_" is not a valid preprocessing token, and we don't
|
||||
want extra underscores (e.g., "nlm_32_"). The NLM_XCAT2 macro will
|
||||
cause the inner CAT2 macros to be evaluated first, producing
|
||||
still-valid pp-tokens. Then the final concatenation can be done. */
|
||||
#define NLM_CAT2(a,b) a##b
|
||||
#define NLM_XCAT2(a,b) NLM_CAT2(a,b)
|
||||
#define NLM_CAT4(a,b,c,d) NLM_XCAT2(NLM_CAT2(a,b),NLM_CAT2(c,d))
|
||||
#endif
|
||||
#else
|
||||
#define NLM_CAT4(a,b,c,d) a/**/b/**/c/**/d
|
||||
#endif
|
||||
|
||||
#if NLM_ARCH_SIZE == 32
|
||||
# define NLM_TARGET_LONG_SIZE 4
|
||||
# define NLM_TARGET_ADDRESS_SIZE 4
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* objalloc.h -- routines to allocate memory for objects
|
||||
Copyright 1997 Free Software Foundation, Inc.
|
||||
Copyright 1997, 2001 Free Software Foundation, Inc.
|
||||
Written by Ian Lance Taylor, Cygnus Solutions.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
|
@ -56,12 +56,11 @@ struct objalloc_align { char x; double d; };
|
|||
#ifndef offsetof
|
||||
#include <stddef.h>
|
||||
#endif
|
||||
#define OBJALLOC_ALIGN \
|
||||
((ptrdiff_t) ((char *) &((struct objalloc_align *) 0)->d - (char *) 0))
|
||||
#else
|
||||
#define OBJALLOC_ALIGN \
|
||||
((long) ((char *) &((struct objalloc_align *) 0)->d - (char *) 0))
|
||||
#endif
|
||||
#ifndef offsetof
|
||||
#define offsetof(TYPE, MEMBER) ((unsigned long) &((TYPE *)0)->MEMBER)
|
||||
#endif
|
||||
#define OBJALLOC_ALIGN offsetof (struct objalloc_align, d)
|
||||
|
||||
/* Create an objalloc structure. Returns NULL if malloc fails. */
|
||||
|
||||
|
|
|
@ -1,3 +1,147 @@
|
|||
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.
|
||||
(CGEN_OPERAND): Add CGEN_MAYBE_MULTI_IFLD field.
|
||||
|
||||
2002-01-21 Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>
|
||||
|
||||
* h8300.h: Comment typo fix.
|
||||
|
||||
2002-01-03 matthew green <mrg@redhat.com>
|
||||
|
||||
* ppc.h (PPC_OPCODE_BOOKE): BookE is not Motorola specific.
|
||||
(PPC_OPCODE_BOOKE64): Likewise.
|
||||
|
||||
Mon Dec 31 16:45:41 2001 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* hppa.h (call, ret): Move to end of table.
|
||||
(addb, addib): PA2.0 variants should have been PA2.0W.
|
||||
(ldw, ldh, ldb, stw, sth, stb, stwa): Reorder to keep disassembler
|
||||
happy.
|
||||
(fldw, fldd, fstw, fstd, bb): Likewise.
|
||||
(short loads/stores): Tweak format specifier slightly to keep
|
||||
disassembler happy.
|
||||
(indexed loads/stores): Likewise.
|
||||
(absolute loads/stores): Likewise.
|
||||
|
||||
2001-12-04 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* d10v.h (OPERAND_NOSP): New macro.
|
||||
|
||||
2001-11-29 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* d10v.h (OPERAND_SP): New macro.
|
||||
|
||||
2001-11-15 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* ppc.h (struct powerpc_operand <insert, extract>): Add dialect param.
|
||||
|
||||
2001-11-11 Timothy Wall <twall@alum.mit.edu>
|
||||
|
||||
* tic54x.h: Revise opcode layout; don't really need a separate
|
||||
structure for parallel opcodes.
|
||||
|
||||
2001-11-13 Zack Weinberg <zack@codesourcery.com>
|
||||
Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* i386.h (i386_optab): Add entries for "sldr", "smsw" and "str" to
|
||||
accept WordReg.
|
||||
|
||||
2001-11-04 Chris Demetriou <cgd@broadcom.com>
|
||||
|
||||
* mips.h (OPCODE_IS_MEMBER): Remove extra space.
|
||||
|
||||
2001-10-30 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* mmix.h: New file.
|
||||
|
||||
2001-10-18 Chris Demetriou <cgd@broadcom.com>
|
||||
|
||||
* mips.h (OPCODE_IS_MEMBER): Add a no-op term to the end
|
||||
of the expression, to make source code merging easier.
|
||||
|
||||
2001-10-17 Chris Demetriou <cgd@broadcom.com>
|
||||
|
||||
* mips.h: Sort coprocessor instruction argument characters
|
||||
in comment, add a few more words of description for "H".
|
||||
|
||||
2001-10-17 Chris Demetriou <cgd@broadcom.com>
|
||||
|
||||
* mips.h (INSN_SB1): New cpu-specific instruction bit.
|
||||
(OPCODE_IS_MEMBER): Allow instructions matching INSN_SB1
|
||||
if cpu is CPU_SB1.
|
||||
|
||||
2001-10-17 matthew green <mrg@redhat.com>
|
||||
|
||||
* ppc.h (PPC_OPCODE_BOOKE64): Fix typo.
|
||||
|
||||
2001-10-12 matthew green <mrg@redhat.com>
|
||||
|
||||
* ppc.h (PPC_OPCODE_BOOKE, PPC_OPCODE_BOOKE64, PPC_OPCODE_403): New
|
||||
opcode flags for BookE 32-bit, BookE 64-bit and PowerPC 403
|
||||
instructions, respectively.
|
||||
|
||||
2001-09-27 Nick Clifton <nickc@cambridge.redhat.com>
|
||||
|
||||
* v850.h: Remove spurious comment.
|
||||
|
||||
2001-09-21 Nick Clifton <nickc@cambridge.redhat.com>
|
||||
|
||||
* h8300.h: Fix compile time warning messages
|
||||
|
||||
2001-09-04 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* alpha.h (struct alpha_operand): Pack elements into bitfields.
|
||||
|
||||
2001-08-31 Eric Christopher <echristo@redhat.com>
|
||||
|
||||
* mips.h: Remove CPU_MIPS32_4K.
|
||||
|
||||
2001-08-27 Torbjorn Granlund <tege@swox.com>
|
||||
|
||||
* ppc.h (PPC_OPERAND_DS): Define.
|
||||
|
||||
2001-08-25 Andreas Jaeger <aj@suse.de>
|
||||
|
||||
* d30v.h: Fix declaration of reg_name_cnt.
|
||||
|
||||
* d10v.h: Fix declaration of d10v_reg_name_cnt.
|
||||
|
||||
* arc.h: Add prototypes from opcodes/arc-opc.c.
|
||||
|
||||
2001-08-16 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||
|
||||
* mips.h (INSN_10000): Define.
|
||||
(OPCODE_IS_MEMBER): Check for INSN_10000.
|
||||
|
||||
2001-08-10 Alan Modra <amodra@one.net.au>
|
||||
|
||||
* 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.
|
||||
|
@ -18,7 +162,7 @@
|
|||
2001-05-23 John Healy <jhealy@redhat.com>
|
||||
|
||||
* cgen.h: Increased CGEN_MAX_SYNTAX_ELEMENTS to 48.
|
||||
|
||||
|
||||
2001-05-15 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||
|
||||
* mips.h (INSN_ISA_MASK): Define.
|
||||
|
@ -155,7 +299,7 @@
|
|||
|
||||
* i386.h (i386_optab): Replace "Imm" with "EncImm".
|
||||
(i386_regtab): Add flags field.
|
||||
|
||||
|
||||
2000-12-12 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* mips.h: Fix formatting.
|
||||
|
@ -180,7 +324,7 @@
|
|||
(ISA_UNKNOWN): New constant to indicate unknown ISA.
|
||||
(ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4, ISA_MIPS5,
|
||||
ISA_MIPS32): New constants, defined to be the mask of INSN_*
|
||||
constants available at that ISA level.
|
||||
constants available at that ISA level.
|
||||
(CPU_UNKNOWN): New constant to indicate unknown CPU.
|
||||
(CPU_4K, CPU_MIPS32_4K): Rename the former to the latter,
|
||||
define it with a unique value.
|
||||
|
@ -188,7 +332,7 @@
|
|||
constant meanings.
|
||||
|
||||
* mips.h (INSN_ISA64, ISA_MIPS5, ISA_MIPS64): New
|
||||
definitions.
|
||||
definitions.
|
||||
|
||||
* mips.h (CPU_SB1): New constant.
|
||||
|
||||
|
@ -202,21 +346,21 @@
|
|||
* ia64.h (enum ia64_dependency_semantics): Add IA64_DVS_STOP.
|
||||
|
||||
2000-09-13 Anders Norlander <anorland@acc.umu.se>
|
||||
|
||||
|
||||
* mips.h: Use defines instead of hard-coded processor numbers.
|
||||
(CPU_R2000, CPU_R3000, CPU_R3900, CPU_R4000, CPU_R4010,
|
||||
CPU_VR4100, CPU_R4111, CPU_R4300, CPU_R4400, CPU_R4600, CPU_R4650,
|
||||
CPU_VR4100, CPU_R4111, CPU_R4300, CPU_R4400, CPU_R4600, CPU_R4650,
|
||||
CPU_R5000, CPU_R6000, CPU_R8000, CPU_R10000, CPU_MIPS32, CPU_4K,
|
||||
CPU_4KC, CPU_4KM, CPU_4KP): Define..
|
||||
(OPCODE_IS_MEMBER): Use new defines.
|
||||
(OP_MASK_SEL, OP_SH_SEL): Define.
|
||||
(OP_MASK_SEL, OP_SH_SEL): Define.
|
||||
(OP_MASK_CODE20, OP_SH_CODE20): Define.
|
||||
Add 'P' to used characters.
|
||||
Use 'H' for coprocessor select field.
|
||||
Add 'P' to used characters.
|
||||
Use 'H' for coprocessor select field.
|
||||
Use 'm' for 20 bit breakpoint code.
|
||||
Document new arg characters and add to used characters.
|
||||
(INSN_MIPS32): New define for MIPS32 extensions.
|
||||
(OPCODE_IS_MEMBER): Recognize MIPS32 instructions.
|
||||
Document new arg characters and add to used characters.
|
||||
(INSN_MIPS32): New define for MIPS32 extensions.
|
||||
(OPCODE_IS_MEMBER): Recognize MIPS32 instructions.
|
||||
|
||||
2000-09-05 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
|
@ -396,7 +540,7 @@ Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
|
|||
* cgen.h (CGEN_INSN_MACH_HAS_P): New macro.
|
||||
(CGEN_CPU_TABLE): flags: new field.
|
||||
Add prototypes for new functions.
|
||||
|
||||
|
||||
2000-02-24 Alan Modra <alan@spri.levels.unisa.edu.au>
|
||||
|
||||
* i386.h: Add some more UNIXWARE_COMPAT comments.
|
||||
|
@ -514,7 +658,7 @@ Sun Sep 19 10:40:59 1999 Jeffrey A Law (law@cygnus.com)
|
|||
Sat Sep 18 11:41:16 1999 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* hppa.h (pa_opcodes): Use 'fX' for first register operand
|
||||
in xmpyu.
|
||||
in xmpyu.
|
||||
|
||||
* hppa.h (pa_opcodes): Fix mask for probe and probei.
|
||||
|
||||
|
@ -600,7 +744,7 @@ Wed Jul 28 02:04:24 1999 Jerry Quinn <jquinn@nortelnetworks.com>
|
|||
|
||||
* hppa.h (pa_opcodes): Mark all PA2.0 opcodes with FLAG_STRICT.
|
||||
|
||||
* hppa.h (pa_opcodes): Change xmpyu, fmpyfadd,
|
||||
* hppa.h (pa_opcodes): Change xmpyu, fmpyfadd,
|
||||
and fmpynfadd to use 'J' and 'K' instead of 'E' and 'X'.
|
||||
|
||||
1999-07-13 Alan Modra <alan@spri.levels.unisa.edu.au>
|
||||
|
@ -628,7 +772,7 @@ Fri Jun 25 04:22:04 1999 Jerry Quinn <jquinn@nortelnetworks.com>
|
|||
Fri May 28 15:26:11 1999 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* hppa.h (pa_opcodes): Move integer arithmetic instructions after
|
||||
integer logical instructions.
|
||||
integer logical instructions.
|
||||
|
||||
1999-05-28 Linus Nordberg <linus.nordberg@canit.se>
|
||||
|
||||
|
@ -645,7 +789,7 @@ Thu May 27 04:13:54 1999 Joel Sherrill (joel@OARcorp.com
|
|||
|
||||
Wed May 26 16:57:44 1999 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* hppa.h (pa_opcodes): Add second entry for "comb", "comib",
|
||||
* hppa.h (pa_opcodes): Add second entry for "comb", "comib",
|
||||
"addb", and "addib" to be used by the disassembler.
|
||||
|
||||
1999-05-12 Alan Modra <alan@apri.levels.unisa.edu.au>
|
||||
|
@ -756,7 +900,7 @@ Sat Feb 13 14:13:44 1999 Richard Henderson <rth@cygnus.com>
|
|||
(CGEN_INSN_ATTR): New type.
|
||||
|
||||
Mon Feb 1 21:09:14 1999 Catherine Moore <clm@cygnus.com>
|
||||
|
||||
|
||||
* i386.h (d_Suf, x_Suf, sld_Suf, sldx_Suf, bwld_Suf): Define.
|
||||
(x_FP, d_FP, dls_FP, sldx_FP): Define.
|
||||
Change *Suf definitions to include x and d suffixes.
|
||||
|
@ -797,16 +941,16 @@ Mon Feb 1 21:09:14 1999 Catherine Moore <clm@cygnus.com>
|
|||
Wed Dec 9 10:38:48 1998 David Taylor <taylor@texas.cygnus.com>
|
||||
|
||||
The following is part of a change made by Edith Epstein
|
||||
<eepstein@sophia.cygnus.com> as part of a project to merge in
|
||||
changes by HP; HP did not create ChangeLog entries.
|
||||
<eepstein@sophia.cygnus.com> as part of a project to merge in
|
||||
changes by HP; HP did not create ChangeLog entries.
|
||||
|
||||
* hppa.h (completer_chars): list of chars to not put a space
|
||||
after.
|
||||
after.
|
||||
|
||||
Sun Dec 6 13:21:34 1998 Ian Lance Taylor <ian@cygnus.com>
|
||||
|
||||
* i386.h (i386_optab): Permit w suffix on processor control and
|
||||
status word instructions.
|
||||
status word instructions.
|
||||
|
||||
1998-11-30 Doug Evans <devans@casey.cygnus.com>
|
||||
|
||||
|
@ -867,7 +1011,7 @@ Fri Oct 9 13:38:13 1998 Doug Evans <devans@seba.cygnus.com>
|
|||
Mon Oct 5 00:21:07 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* hppa.h: Add "fid".
|
||||
|
||||
|
||||
Sun Oct 4 21:00:00 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
|
||||
|
||||
From Robert Andrew Dale <rob@nb.net>
|
||||
|
@ -921,7 +1065,7 @@ Fri Jun 26 11:09:06 1998 Jeffrey A Law (law@cygnus.com)
|
|||
|
||||
* mn10300.h: Add "machine" field for instructions.
|
||||
(MN103, AM30): Define machine types.
|
||||
|
||||
|
||||
Fri Jun 19 16:09:09 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
|
||||
|
||||
* i386.h: Use FP, not sl_Suf, for fxsave and fxrstor.
|
||||
|
@ -1526,9 +1670,9 @@ Mon Nov 4 12:52:48 1996 Jeffrey A Law (law@cygnus.com)
|
|||
Fri Nov 1 10:31:02 1996 Richard Henderson <rth@tamu.edu>
|
||||
|
||||
* alpha.h: Don't include "bfd.h"; private relocation types are now
|
||||
negative to minimize problems with shared libraries. Organize
|
||||
instruction subsets by AMASK extensions and PALcode
|
||||
implementation.
|
||||
negative to minimize problems with shared libraries. Organize
|
||||
instruction subsets by AMASK extensions and PALcode
|
||||
implementation.
|
||||
(struct alpha_operand): Move flags slot for better packing.
|
||||
|
||||
Tue Oct 29 12:19:10 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
@ -1581,9 +1725,9 @@ Fri Aug 23 10:39:08 1996 Jeffrey A Law (law@cygnus.com)
|
|||
Thu Aug 22 16:51:25 1996 J.T. Conklin <jtc@rtl.cygnus.com>
|
||||
|
||||
* v850.h (v850_operands): Add insert and extract fields, pointers
|
||||
to functions used to handle unusual operand encoding.
|
||||
to functions used to handle unusual operand encoding.
|
||||
(V850_OPERAND_REG, V850_OPERAND_SRG, V850_OPERAND_CC,
|
||||
V850_OPERAND_SIGNED): Defined.
|
||||
V850_OPERAND_SIGNED): Defined.
|
||||
|
||||
Wed Aug 21 17:45:10 1996 J.T. Conklin <jtc@rtl.cygnus.com>
|
||||
|
||||
|
@ -1597,11 +1741,11 @@ Tue Aug 20 14:52:02 1996 J.T. Conklin <jtc@rtl.cygnus.com>
|
|||
Fri Aug 16 14:44:15 1996 James G. Smith <jsmith@cygnus.co.uk>
|
||||
|
||||
* mips.h (OP_SH_LOCC, OP_SH_HICC, OP_MASK_CC, OP_SH_COP1NORM,
|
||||
OP_MASK_COP1NORM, OP_SH_COP1SPEC, OP_MASK_COP1SPEC,
|
||||
OP_MASK_COP1SCLR, OP_MASK_COP1CMP, OP_SH_COP1CMP, OP_SH_FORMAT,
|
||||
OP_MASK_FORMAT, OP_SH_TRUE, OP_MASK_TRUE, OP_SH_GE, OP_MASK_GE,
|
||||
OP_SH_UNSIGNED, OP_MASK_UNSIGNED, OP_SH_HINT, OP_MASK_HINT):
|
||||
Defined.
|
||||
OP_MASK_COP1NORM, OP_SH_COP1SPEC, OP_MASK_COP1SPEC,
|
||||
OP_MASK_COP1SCLR, OP_MASK_COP1CMP, OP_SH_COP1CMP, OP_SH_FORMAT,
|
||||
OP_MASK_FORMAT, OP_SH_TRUE, OP_MASK_TRUE, OP_SH_GE, OP_MASK_GE,
|
||||
OP_SH_UNSIGNED, OP_MASK_UNSIGNED, OP_SH_HINT, OP_MASK_HINT):
|
||||
Defined.
|
||||
|
||||
Fri Aug 16 00:15:15 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
|
@ -1611,7 +1755,7 @@ Fri Aug 16 00:15:15 1996 Jeffrey A Law (law@cygnus.com)
|
|||
Thu Aug 15 13:11:46 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
|
||||
|
||||
* d10v.h: Add some additional defines to support the
|
||||
assembler in determining which operations can be done in parallel.
|
||||
assembler in determining which operations can be done in parallel.
|
||||
|
||||
Tue Aug 6 11:13:22 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
|
@ -1627,7 +1771,7 @@ Fri Jul 26 11:47:10 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
|
|||
Thu Jul 25 12:06:22 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
|
||||
|
||||
* d10v.h: Changes for divs, parallel-only instructions, and
|
||||
signed numbers.
|
||||
signed numbers.
|
||||
|
||||
Mon Jul 22 11:21:15 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
|
||||
|
||||
|
@ -1649,7 +1793,7 @@ Thu Jul 11 12:09:15 1996 Jeffrey A Law (law@cygnus.com)
|
|||
|
||||
Wed Jul 3 14:30:12 1996 J.T. Conklin <jtc@rtl.cygnus.com>
|
||||
|
||||
* m68k.h (mcf5200): New macro.
|
||||
* m68k.h (mcf5200): New macro.
|
||||
Document names of coldfire control registers.
|
||||
|
||||
Tue Jul 2 23:05:45 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
@ -1799,7 +1943,7 @@ Tue Oct 24 10:49:10 1995 Jeffrey A Law (law@cygnus.com)
|
|||
Mon Oct 23 11:09:16 1995 James G. Smith <jsmith@pasanda.cygnus.co.uk>
|
||||
|
||||
* mips.h: Added INSN_4100 flag to mark NEC VR4100 specific
|
||||
instructions.
|
||||
instructions.
|
||||
|
||||
Mon Oct 16 10:28:15 1995 Michael Meissner <meissner@tiktok.cygnus.com>
|
||||
|
||||
|
|
|
@ -81,16 +81,16 @@ extern const unsigned alpha_num_opcodes;
|
|||
struct alpha_operand
|
||||
{
|
||||
/* The number of bits in the operand. */
|
||||
int bits;
|
||||
unsigned int bits : 5;
|
||||
|
||||
/* How far the operand is left shifted in the instruction. */
|
||||
int shift;
|
||||
unsigned int shift : 5;
|
||||
|
||||
/* The default relocation type for this operand. */
|
||||
int default_reloc;
|
||||
signed int default_reloc : 16;
|
||||
|
||||
/* One bit syntax flags. */
|
||||
unsigned flags;
|
||||
unsigned int flags : 16;
|
||||
|
||||
/* Insertion function. This is used by the assembler. To insert an
|
||||
operand value into an instruction, check this field.
|
||||
|
|
|
@ -313,3 +313,9 @@ const struct arc_operand_value *arc_opcode_lookup_suffix
|
|||
PARAMS ((const struct arc_operand *type, int value));
|
||||
int arc_opcode_supported PARAMS ((const struct arc_opcode *));
|
||||
int arc_opval_supported PARAMS ((const struct arc_operand_value *));
|
||||
int arc_limm_fixup_adjust PARAMS ((arc_insn));
|
||||
int arc_insn_is_j PARAMS ((arc_insn));
|
||||
int arc_insn_not_jl PARAMS ((arc_insn));
|
||||
int arc_operand_type PARAMS ((int));
|
||||
struct arc_operand_value *get_ext_suffix PARAMS ((char *));
|
||||
int arc_get_noshortcut_flag PARAMS ((void));
|
||||
|
|
|
@ -25,17 +25,20 @@
|
|||
supported, no 8K wrap on RJMP and RCALL) */
|
||||
#define AVR_ISA_MUL 0x0040 /* device has new core (MUL, MOVW, ...) */
|
||||
#define AVR_ISA_ELPM 0x0080 /* device has >64K program memory (ELPM) */
|
||||
#define AVR_ISA_ELPMX 0x0100 /* device has ELPM Rd,Z[+] (none yet) */
|
||||
#define AVR_ISA_ELPMX 0x0100 /* device has ELPM Rd,Z[+] */
|
||||
#define AVR_ISA_SPM 0x0200 /* device can program itself */
|
||||
#define AVR_ISA_BRK 0x0400 /* device has BREAK (on-chip debug) */
|
||||
#define AVR_ISA_EIND 0x0800 /* device has >128K program memory (none yet) */
|
||||
|
||||
#define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
|
||||
#define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
|
||||
#define AVR_ISA_M83 (AVR_ISA_2xxx | AVR_ISA_MUL | AVR_ISA_LPMX | AVR_ISA_SPM)
|
||||
#define AVR_ISA_M8 (AVR_ISA_2xxx | AVR_ISA_MUL | AVR_ISA_LPMX | AVR_ISA_SPM)
|
||||
#define AVR_ISA_M603 (AVR_ISA_2xxx | AVR_ISA_MEGA)
|
||||
#define AVR_ISA_M103 (AVR_ISA_M603 | AVR_ISA_ELPM)
|
||||
#define AVR_ISA_M161 (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_LPMX | AVR_ISA_SPM)
|
||||
#define AVR_ISA_94K (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_LPMX)
|
||||
#define AVR_ISA_M323 (AVR_ISA_M161 | AVR_ISA_BRK)
|
||||
#define AVR_ISA_M128 (AVR_ISA_M323 | AVR_ISA_ELPM | AVR_ISA_ELPMX)
|
||||
|
||||
#define AVR_ISA_ALL 0xFFFF
|
||||
|
||||
|
@ -86,7 +89,7 @@
|
|||
Order is important - some binary opcodes have more than one name,
|
||||
the disassembler will only see the first match.
|
||||
|
||||
Remaining undefined opcodes (1700 total - some of them might work
|
||||
Remaining undefined opcodes (1699 total - some of them might work
|
||||
as normal instructions if not all of the bits are decoded):
|
||||
|
||||
0x0001...0x00ff (255) (known to be decoded as `nop' by the old core)
|
||||
|
@ -100,7 +103,7 @@
|
|||
"1001010xxxxx1011" (32) 0x9[45][0-9a-f]b
|
||||
"10010101001x1000" (2) 0x95[23]8
|
||||
"1001010101xx1000" (4) 0x95[4-7]8
|
||||
"1001010110x11000" (2) 0x95[9b]8
|
||||
"1001010110111000" (1) 0x95b8
|
||||
"1001010111111000" (1) 0x95f8 (`espm' removed in databook update)
|
||||
"11111xxxxxxx1xxx" (1024) 0xf[8-9a-f][0-9a-f][8-9a-f]
|
||||
*/
|
||||
|
@ -139,6 +142,7 @@ AVR_INSN (nop, "", "0000000000000000", 1, AVR_ISA_1200, 0x0000)
|
|||
AVR_INSN (ret, "", "1001010100001000", 1, AVR_ISA_1200, 0x9508)
|
||||
AVR_INSN (reti, "", "1001010100011000", 1, AVR_ISA_1200, 0x9518)
|
||||
AVR_INSN (sleep,"", "1001010110001000", 1, AVR_ISA_1200, 0x9588)
|
||||
AVR_INSN (break,"", "1001010110011000", 1, AVR_ISA_BRK, 0x9598)
|
||||
AVR_INSN (wdr, "", "1001010110101000", 1, AVR_ISA_1200, 0x95a8)
|
||||
AVR_INSN (spm, "", "1001010111101000", 1, AVR_ISA_SPM, 0x95e8)
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
Perhaps the definition of bfd_vma can be moved outside of bfd.h.
|
||||
Or perhaps one could duplicate its definition in another file.
|
||||
Until such time, this file conditionally compiles definitions that require
|
||||
bfd_vma using BFD_VERSION. */
|
||||
bfd_vma using BFD_VERSION_DATE. */
|
||||
|
||||
/* Enums must be defined before they can be used.
|
||||
Allow them to be used in struct definitions, even though the enum must
|
||||
|
@ -276,7 +276,7 @@ typedef const char * (cgen_parse_fn)
|
|||
PC is the pc value of the insn.
|
||||
The result is an error message or NULL if success. */
|
||||
|
||||
#ifdef BFD_VERSION
|
||||
#ifdef BFD_VERSION_DATE
|
||||
typedef const char * (cgen_insert_fn)
|
||||
PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_,
|
||||
CGEN_FIELDS *fields_, CGEN_INSN_BYTES_PTR insnp_,
|
||||
|
@ -297,7 +297,7 @@ typedef const char * (cgen_insert_fn) ();
|
|||
PC is the pc value of the insn.
|
||||
The result is the length of the insn in bits or zero if not recognized. */
|
||||
|
||||
#ifdef BFD_VERSION
|
||||
#ifdef BFD_VERSION_DATE
|
||||
typedef int (cgen_extract_fn)
|
||||
PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_,
|
||||
CGEN_EXTRACT_INFO *ex_info_, CGEN_INSN_INT base_insn_,
|
||||
|
@ -316,7 +316,7 @@ typedef int (cgen_extract_fn) ();
|
|||
PC is the pc value of the insn.
|
||||
LEN is the length of the insn, in bits. */
|
||||
|
||||
#ifdef BFD_VERSION
|
||||
#ifdef BFD_VERSION_DATE
|
||||
typedef void (cgen_print_fn)
|
||||
PARAMS ((CGEN_CPU_DESC, PTR info_, const CGEN_INSN *insn_,
|
||||
CGEN_FIELDS *fields_, bfd_vma pc_, int len_));
|
||||
|
@ -381,7 +381,7 @@ enum cgen_parse_operand_result
|
|||
CGEN_PARSE_OPERAND_RESULT_ERROR
|
||||
};
|
||||
|
||||
#ifdef BFD_VERSION /* Don't require bfd.h unnecessarily. */
|
||||
#ifdef BFD_VERSION_DATE /* Don't require bfd.h unnecessarily. */
|
||||
typedef const char * (cgen_parse_operand_fn)
|
||||
PARAMS ((CGEN_CPU_DESC,
|
||||
enum cgen_parse_operand_type, const char **, int, int,
|
||||
|
@ -565,7 +565,7 @@ const CGEN_KEYWORD_ENTRY *cgen_keyword_search_next
|
|||
|
||||
extern const char *cgen_parse_keyword
|
||||
PARAMS ((CGEN_CPU_DESC, const char **, CGEN_KEYWORD *, long *));
|
||||
#ifdef BFD_VERSION /* Don't require bfd.h unnecessarily. */
|
||||
#ifdef BFD_VERSION_DATE /* Don't require bfd.h unnecessarily. */
|
||||
extern const char *cgen_parse_signed_integer
|
||||
PARAMS ((CGEN_CPU_DESC, const char **, int, long *));
|
||||
extern const char *cgen_parse_unsigned_integer
|
||||
|
@ -609,6 +609,23 @@ enum cgen_operand_type { CGEN_OPERAND_MAX };
|
|||
/* "nil" indicator for the operand instance table */
|
||||
#define CGEN_OPERAND_NIL CGEN_OPERAND_MAX
|
||||
|
||||
/* A tree of these structs represents the multi-ifield
|
||||
structure of an operand's hw-index value, if it exists. */
|
||||
|
||||
struct cgen_ifld;
|
||||
|
||||
typedef struct cgen_maybe_multi_ifield
|
||||
{
|
||||
int count; /* 0: indexed by single cgen_ifld (possibly null: dead entry);
|
||||
n: indexed by array of more cgen_maybe_multi_ifields. */
|
||||
union
|
||||
{
|
||||
struct cgen_maybe_multi_ifield * multi;
|
||||
struct cgen_ifld * leaf;
|
||||
} val;
|
||||
}
|
||||
CGEN_MAYBE_MULTI_IFLD;
|
||||
|
||||
/* This struct defines each entry in the operand table. */
|
||||
|
||||
typedef struct
|
||||
|
@ -637,6 +654,11 @@ typedef struct
|
|||
May be unused for a modifier. */
|
||||
unsigned char length;
|
||||
|
||||
/* The (possibly-multi) ifield used as an index for this operand, if it
|
||||
is indexed by a field at all. This substitutes / extends the start and
|
||||
length fields above, but unsure at this time whether they are used
|
||||
anywhere. */
|
||||
CGEN_MAYBE_MULTI_IFLD index_fields;
|
||||
#if 0 /* ??? Interesting idea but relocs tend to get too complicated,
|
||||
and ABI dependent, for simple table lookups to work. */
|
||||
/* Ideally this would be the internal (external?) reloc type. */
|
||||
|
@ -1231,7 +1253,7 @@ typedef struct cgen_cpu_desc
|
|||
const char * (*parse_operand)
|
||||
PARAMS ((CGEN_CPU_DESC, int opindex_, const char **,
|
||||
CGEN_FIELDS *fields_));
|
||||
#ifdef BFD_VERSION
|
||||
#ifdef BFD_VERSION_DATE
|
||||
const char * (*insert_operand)
|
||||
PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_,
|
||||
CGEN_INSN_BYTES_PTR, bfd_vma pc_));
|
||||
|
@ -1264,7 +1286,7 @@ typedef struct cgen_cpu_desc
|
|||
PARAMS ((CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_));
|
||||
void (*set_int_operand)
|
||||
PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, int value_));
|
||||
#ifdef BFD_VERSION
|
||||
#ifdef BFD_VERSION_DATE
|
||||
bfd_vma (*get_vma_operand)
|
||||
PARAMS ((CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_));
|
||||
void (*set_vma_operand)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* d10v.h -- Header file for D10V opcode table
|
||||
Copyright 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
Written by Martin Hunt (hunt@cygnus.com), Cygnus Support
|
||||
|
||||
This file is part of GDB, GAS, and the GNU binutils.
|
||||
|
@ -181,6 +181,14 @@ extern const struct d10v_operand d10v_operands[];
|
|||
/* needed for rac/rachi */
|
||||
#define RESTRICTED_NUM3 (0x80000)
|
||||
|
||||
/* Pre-decrement is only supported for SP. */
|
||||
#define OPERAND_SP (0x100000)
|
||||
|
||||
/* Post-decrement is not supported for SP. Like OPERAND_EVEN, and
|
||||
unlike OPERAND_SP, this flag doesn't prevent the instruction from
|
||||
matching, it only fails validation later on. */
|
||||
#define OPERAND_NOSP (0x200000)
|
||||
|
||||
/* Structure to hold information about predefined registers. */
|
||||
struct pd_reg
|
||||
{
|
||||
|
@ -190,7 +198,7 @@ struct pd_reg
|
|||
};
|
||||
|
||||
extern const struct pd_reg d10v_predefined_registers[];
|
||||
int d10v_reg_name_cnt();
|
||||
int d10v_reg_name_cnt PARAMS ((void));
|
||||
|
||||
/* an expressionS only has one register type, so we fake it */
|
||||
/* by setting high bits to indicate type */
|
||||
|
|
|
@ -32,7 +32,7 @@ struct pd_reg
|
|||
};
|
||||
|
||||
extern const struct pd_reg pre_defined_registers[];
|
||||
int reg_name_cnt();
|
||||
int reg_name_cnt PARAMS ((void));
|
||||
|
||||
/* the number of control registers */
|
||||
#define MAX_CONTROL_REG 64
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Opcode table for the H8/300
|
||||
Copyright 1991, 1992, 1993, 1994, 1996, 1997, 1998, 2000
|
||||
Copyright 1991, 1992, 1993, 1994, 1996, 1997, 1998, 2000, 2002
|
||||
Free Software Foundation, Inc.
|
||||
Written by Steve Chamberlain <sac@cygnus.com>.
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
|||
02111-1307, USA. */
|
||||
|
||||
/* Instructions are stored as a sequence of nibbles.
|
||||
If the nibble has value 15 or less then the representation is complete.
|
||||
If the nibble has value 15 or less than the representation is complete.
|
||||
Otherwise, we record what it contains with several flags. */
|
||||
|
||||
typedef int op_type;
|
||||
|
@ -594,7 +594,7 @@ struct h8_opcode h8_opcodes[] =
|
|||
NEW_SOP(O(O_STMAC,SL),1,2,"stmac"),{{MACREG,RD32,E}},{{0x0,0x2,MACREG,RD32,E}} EOP,
|
||||
NEW_SOP(O(O_LDM,SL),0,6,"ldm.l"),{{RSINC, RS32, E}},{{ 0x0,0x1,IGNORE,0x0,0x6,0xD,0x7,IGNORE,E}}EOP,
|
||||
NEW_SOP(O(O_STM,SL),0,6,"stm.l"),{{RS32, RDDEC, E}},{{0x0,0x1,IGNORE,0x0,0x6,0xD,0xF,IGNORE,E}}EOP,
|
||||
{ 0 }
|
||||
{0, 0, 0, NULL, {{0,0,0}}, {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}, 0, 0, 0, 0}
|
||||
};
|
||||
#else
|
||||
extern struct h8_opcode h8_opcodes[];
|
||||
|
|
|
@ -170,10 +170,16 @@ Also these:
|
|||
Completer operands all have 'c' as the prefix:
|
||||
|
||||
cx indexed load completer.
|
||||
cX indexed load completer. Like cx, but emits a space after
|
||||
in disassembler.
|
||||
cm short load and store completer.
|
||||
cM short load and store completer. Like cm, but emits a space
|
||||
after in disassembler.
|
||||
cq long load and store completer (like cm, but inserted into a
|
||||
different location in the target instruction).
|
||||
cs store bytes short completer.
|
||||
cA store bytes short completer. Like cs, but emits a space
|
||||
after in disassembler.
|
||||
ce long load/store completer for LDW/STW with a different encoding than the
|
||||
others
|
||||
cc load cache control hint
|
||||
|
@ -285,10 +291,6 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "ldi", 0x34000000, 0xffe00000, "l,x", pa20w, 0},/* ldo val(r0),r */
|
||||
{ "ldi", 0x34000000, 0xffe0c000, "j,x", pa10, 0},/* ldo val(r0),r */
|
||||
|
||||
{ "call", 0xe800f000, 0xfc1ffffd, "n(b)", pa20, FLAG_STRICT},
|
||||
{ "call", 0xe800a000, 0xffe0e000, "nW", pa10, FLAG_STRICT},
|
||||
{ "ret", 0xe840d000, 0xfffffffd, "n", pa20, FLAG_STRICT},
|
||||
|
||||
{ "cmpib", 0xec000000, 0xfc000000, "?Qn5,b,w", pa20, FLAG_STRICT},
|
||||
{ "cmpib", 0x84000000, 0xf4000000, "?nn5,b,w", pa10, FLAG_STRICT},
|
||||
{ "comib", 0x84000000, 0xfc000000, "?nn5,b,w", pa10, 0}, /* comib{tf}*/
|
||||
|
@ -301,12 +303,12 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
/* This entry is for the disassembler only. It will never be used by
|
||||
assembler. */
|
||||
{ "comb", 0x88000000, 0xfc000000, "?nnx,b,w", pa10, 0}, /* comb{tf} */
|
||||
{ "addb", 0xa0000000, 0xf4000000, "?Wnx,b,w", pa20, FLAG_STRICT},
|
||||
{ "addb", 0xa0000000, 0xf4000000, "?Wnx,b,w", pa20w, FLAG_STRICT},
|
||||
{ "addb", 0xa0000000, 0xfc000000, "?@nx,b,w", pa10, 0}, /* addb{tf} */
|
||||
/* This entry is for the disassembler only. It will never be used by
|
||||
assembler. */
|
||||
{ "addb", 0xa8000000, 0xfc000000, "?@nx,b,w", pa10, 0},
|
||||
{ "addib", 0xa4000000, 0xf4000000, "?Wn5,b,w", pa20, FLAG_STRICT},
|
||||
{ "addib", 0xa4000000, 0xf4000000, "?Wn5,b,w", pa20w, FLAG_STRICT},
|
||||
{ "addib", 0xa4000000, 0xfc000000, "?@n5,b,w", pa10, 0}, /* addib{tf}*/
|
||||
/* This entry is for the disassembler only. It will never be used by
|
||||
assembler. */
|
||||
|
@ -327,10 +329,10 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "ldd", 0x50000000, 0xfc000002, "cq#(b),x", pa20, FLAG_STRICT},
|
||||
{ "ldw", 0x0c000080, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "ldw", 0x0c000080, 0xfc0013c0, "cxccx(b),t", pa10, FLAG_STRICT},
|
||||
{ "ldw", 0x0c0010a0, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
|
||||
{ "ldw", 0x0c0010a0, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT},
|
||||
{ "ldw", 0x0c001080, 0xfc0013c0, "cmcc5(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "ldw", 0x0c001080, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT},
|
||||
{ "ldw", 0x0c0010a0, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
|
||||
{ "ldw", 0x0c0010a0, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT},
|
||||
{ "ldw", 0x4c000000, 0xfc000000, "ce<(b),x", pa20w, FLAG_STRICT},
|
||||
{ "ldw", 0x4c000000, 0xfc000000, "ceJ(s,b),x", pa10, FLAG_STRICT},
|
||||
{ "ldw", 0x4c000000, 0xfc000000, "ceJ(b),x", pa10, FLAG_STRICT},
|
||||
|
@ -342,19 +344,19 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "ldw", 0x48000000, 0xfc000000, "j(b),x", pa10, 0},
|
||||
{ "ldh", 0x0c000040, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "ldh", 0x0c000040, 0xfc0013c0, "cxccx(b),t", pa10, FLAG_STRICT},
|
||||
{ "ldh", 0x0c001060, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
|
||||
{ "ldh", 0x0c001060, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT},
|
||||
{ "ldh", 0x0c001040, 0xfc0013c0, "cmcc5(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "ldh", 0x0c001040, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT},
|
||||
{ "ldh", 0x0c001060, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
|
||||
{ "ldh", 0x0c001060, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT},
|
||||
{ "ldh", 0x44000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
|
||||
{ "ldh", 0x44000000, 0xfc000000, "j(s,b),x", pa10, 0},
|
||||
{ "ldh", 0x44000000, 0xfc000000, "j(b),x", pa10, 0},
|
||||
{ "ldb", 0x0c000000, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "ldb", 0x0c000000, 0xfc0013c0, "cxccx(b),t", pa10, FLAG_STRICT},
|
||||
{ "ldb", 0x0c001020, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
|
||||
{ "ldb", 0x0c001020, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT},
|
||||
{ "ldb", 0x0c001000, 0xfc0013c0, "cmcc5(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "ldb", 0x0c001000, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT},
|
||||
{ "ldb", 0x0c001020, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
|
||||
{ "ldb", 0x0c001020, 0xfc1f33e0, "cocc@(b),t", pa20, FLAG_STRICT},
|
||||
{ "ldb", 0x40000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
|
||||
{ "ldb", 0x40000000, 0xfc000000, "j(s,b),x", pa10, 0},
|
||||
{ "ldb", 0x40000000, 0xfc000000, "j(b),x", pa10, 0},
|
||||
|
@ -364,10 +366,10 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "std", 0x0c0012c0, 0xfc0013c0, "cmcCx,V(b)", pa20, FLAG_STRICT},
|
||||
{ "std", 0x70000000, 0xfc000002, "cqx,&(b)", pa20w, FLAG_STRICT},
|
||||
{ "std", 0x70000000, 0xfc000002, "cqx,#(b)", pa20, FLAG_STRICT},
|
||||
{ "stw", 0x0c0012a0, 0xfc0013ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
|
||||
{ "stw", 0x0c0012a0, 0xfc0013ff, "cocCx,@(b)", pa20, FLAG_STRICT},
|
||||
{ "stw", 0x0c001280, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT},
|
||||
{ "stw", 0x0c001280, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT},
|
||||
{ "stw", 0x0c0012a0, 0xfc0013ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
|
||||
{ "stw", 0x0c0012a0, 0xfc0013ff, "cocCx,@(b)", pa20, FLAG_STRICT},
|
||||
{ "stw", 0x6c000000, 0xfc000000, "cex,<(b)", pa20w, FLAG_STRICT},
|
||||
{ "stw", 0x6c000000, 0xfc000000, "cex,J(s,b)", pa10, FLAG_STRICT},
|
||||
{ "stw", 0x6c000000, 0xfc000000, "cex,J(b)", pa10, FLAG_STRICT},
|
||||
|
@ -377,17 +379,17 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "stw", 0x68000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
|
||||
{ "stw", 0x68000000, 0xfc000000, "x,j(s,b)", pa10, 0},
|
||||
{ "stw", 0x68000000, 0xfc000000, "x,j(b)", pa10, 0},
|
||||
{ "sth", 0x0c001260, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
|
||||
{ "sth", 0x0c001260, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT},
|
||||
{ "sth", 0x0c001240, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT},
|
||||
{ "sth", 0x0c001240, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT},
|
||||
{ "sth", 0x0c001260, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
|
||||
{ "sth", 0x0c001260, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT},
|
||||
{ "sth", 0x64000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
|
||||
{ "sth", 0x64000000, 0xfc000000, "x,j(s,b)", pa10, 0},
|
||||
{ "sth", 0x64000000, 0xfc000000, "x,j(b)", pa10, 0},
|
||||
{ "stb", 0x0c001220, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
|
||||
{ "stb", 0x0c001220, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT},
|
||||
{ "stb", 0x0c001200, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT},
|
||||
{ "stb", 0x0c001200, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT},
|
||||
{ "stb", 0x0c001220, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
|
||||
{ "stb", 0x0c001220, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT},
|
||||
{ "stb", 0x60000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
|
||||
{ "stb", 0x60000000, 0xfc000000, "x,j(s,b)", pa10, 0},
|
||||
{ "stb", 0x60000000, 0xfc000000, "x,j(b)", pa10, 0},
|
||||
|
@ -395,20 +397,20 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "ldwm", 0x4c000000, 0xfc000000, "j(b),x", pa10, 0},
|
||||
{ "stwm", 0x6c000000, 0xfc000000, "x,j(s,b)", pa10, 0},
|
||||
{ "stwm", 0x6c000000, 0xfc000000, "x,j(b)", pa10, 0},
|
||||
{ "ldwx", 0x0c000080, 0xfc001fc0, "cxx(s,b),t", pa10, 0},
|
||||
{ "ldwx", 0x0c000080, 0xfc001fc0, "cxx(b),t", pa10, 0},
|
||||
{ "ldhx", 0x0c000040, 0xfc001fc0, "cxx(s,b),t", pa10, 0},
|
||||
{ "ldhx", 0x0c000040, 0xfc001fc0, "cxx(b),t", pa10, 0},
|
||||
{ "ldbx", 0x0c000000, 0xfc001fc0, "cxx(s,b),t", pa10, 0},
|
||||
{ "ldbx", 0x0c000000, 0xfc001fc0, "cxx(b),t", pa10, 0},
|
||||
{ "ldwx", 0x0c000080, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
|
||||
{ "ldwx", 0x0c000080, 0xfc001fc0, "cXx(b),t", pa10, 0},
|
||||
{ "ldhx", 0x0c000040, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
|
||||
{ "ldhx", 0x0c000040, 0xfc001fc0, "cXx(b),t", pa10, 0},
|
||||
{ "ldbx", 0x0c000000, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
|
||||
{ "ldbx", 0x0c000000, 0xfc001fc0, "cXx(b),t", pa10, 0},
|
||||
{ "ldwa", 0x0c000180, 0xfc00d3c0, "cxccx(b),t", pa10, FLAG_STRICT},
|
||||
{ "ldwa", 0x0c001180, 0xfc00d3c0, "cmcc5(b),t", pa10, FLAG_STRICT},
|
||||
{ "ldcw", 0x0c0001c0, 0xfc0013c0, "cxcdx(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "ldcw", 0x0c0001c0, 0xfc0013c0, "cxcdx(b),t", pa10, FLAG_STRICT},
|
||||
{ "ldcw", 0x0c0011c0, 0xfc0013c0, "cmcd5(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "ldcw", 0x0c0011c0, 0xfc0013c0, "cmcd5(b),t", pa10, FLAG_STRICT},
|
||||
{ "stwa", 0x0c0013a0, 0xfc00d3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
|
||||
{ "stwa", 0x0c001380, 0xfc00d3c0, "cmcCx,V(b)", pa10, FLAG_STRICT},
|
||||
{ "stwa", 0x0c0013a0, 0xfc00d3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
|
||||
{ "stby", 0x0c001300, 0xfc0013c0, "cscCx,V(s,b)", pa10, FLAG_STRICT},
|
||||
{ "stby", 0x0c001300, 0xfc0013c0, "cscCx,V(b)", pa10, FLAG_STRICT},
|
||||
{ "ldda", 0x0c000100, 0xfc00d3c0, "cxccx(b),t", pa20, FLAG_STRICT},
|
||||
|
@ -421,29 +423,29 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "stda", 0x0c0013e0, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT},
|
||||
{ "stda", 0x0c0013c0, 0xfc0013c0, "cmcCx,V(s,b)", pa20, FLAG_STRICT},
|
||||
{ "stda", 0x0c0013c0, 0xfc0013c0, "cmcCx,V(b)", pa20, FLAG_STRICT},
|
||||
{ "ldwax", 0x0c000180, 0xfc00dfc0, "cxx(b),t", pa10, 0},
|
||||
{ "ldcwx", 0x0c0001c0, 0xfc001fc0, "cxx(s,b),t", pa10, 0},
|
||||
{ "ldcwx", 0x0c0001c0, 0xfc001fc0, "cxx(b),t", pa10, 0},
|
||||
{ "ldws", 0x0c001080, 0xfc001fc0, "cm5(s,b),t", pa10, 0},
|
||||
{ "ldws", 0x0c001080, 0xfc001fc0, "cm5(b),t", pa10, 0},
|
||||
{ "ldhs", 0x0c001040, 0xfc001fc0, "cm5(s,b),t", pa10, 0},
|
||||
{ "ldhs", 0x0c001040, 0xfc001fc0, "cm5(b),t", pa10, 0},
|
||||
{ "ldbs", 0x0c001000, 0xfc001fc0, "cm5(s,b),t", pa10, 0},
|
||||
{ "ldbs", 0x0c001000, 0xfc001fc0, "cm5(b),t", pa10, 0},
|
||||
{ "ldwas", 0x0c001180, 0xfc00dfc0, "cm5(b),t", pa10, 0},
|
||||
{ "ldcws", 0x0c0011c0, 0xfc001fc0, "cm5(s,b),t", pa10, 0},
|
||||
{ "ldcws", 0x0c0011c0, 0xfc001fc0, "cm5(b),t", pa10, 0},
|
||||
{ "stws", 0x0c001280, 0xfc001fc0, "cmx,V(s,b)", pa10, 0},
|
||||
{ "stws", 0x0c001280, 0xfc001fc0, "cmx,V(b)", pa10, 0},
|
||||
{ "sths", 0x0c001240, 0xfc001fc0, "cmx,V(s,b)", pa10, 0},
|
||||
{ "sths", 0x0c001240, 0xfc001fc0, "cmx,V(b)", pa10, 0},
|
||||
{ "stbs", 0x0c001200, 0xfc001fc0, "cmx,V(s,b)", pa10, 0},
|
||||
{ "stbs", 0x0c001200, 0xfc001fc0, "cmx,V(b)", pa10, 0},
|
||||
{ "stwas", 0x0c001380, 0xfc00dfc0, "cmx,V(b)", pa10, 0},
|
||||
{ "ldwax", 0x0c000180, 0xfc00dfc0, "cXx(b),t", pa10, 0},
|
||||
{ "ldcwx", 0x0c0001c0, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
|
||||
{ "ldcwx", 0x0c0001c0, 0xfc001fc0, "cXx(b),t", pa10, 0},
|
||||
{ "ldws", 0x0c001080, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
|
||||
{ "ldws", 0x0c001080, 0xfc001fc0, "cM5(b),t", pa10, 0},
|
||||
{ "ldhs", 0x0c001040, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
|
||||
{ "ldhs", 0x0c001040, 0xfc001fc0, "cM5(b),t", pa10, 0},
|
||||
{ "ldbs", 0x0c001000, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
|
||||
{ "ldbs", 0x0c001000, 0xfc001fc0, "cM5(b),t", pa10, 0},
|
||||
{ "ldwas", 0x0c001180, 0xfc00dfc0, "cM5(b),t", pa10, 0},
|
||||
{ "ldcws", 0x0c0011c0, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
|
||||
{ "ldcws", 0x0c0011c0, 0xfc001fc0, "cM5(b),t", pa10, 0},
|
||||
{ "stws", 0x0c001280, 0xfc001fc0, "cMx,V(s,b)", pa10, 0},
|
||||
{ "stws", 0x0c001280, 0xfc001fc0, "cMx,V(b)", pa10, 0},
|
||||
{ "sths", 0x0c001240, 0xfc001fc0, "cMx,V(s,b)", pa10, 0},
|
||||
{ "sths", 0x0c001240, 0xfc001fc0, "cMx,V(b)", pa10, 0},
|
||||
{ "stbs", 0x0c001200, 0xfc001fc0, "cMx,V(s,b)", pa10, 0},
|
||||
{ "stbs", 0x0c001200, 0xfc001fc0, "cMx,V(b)", pa10, 0},
|
||||
{ "stwas", 0x0c001380, 0xfc00dfc0, "cMx,V(b)", pa10, 0},
|
||||
{ "stdby", 0x0c001340, 0xfc0013c0, "cscCx,V(s,b)", pa20, FLAG_STRICT},
|
||||
{ "stdby", 0x0c001340, 0xfc0013c0, "cscCx,V(b)", pa20, FLAG_STRICT},
|
||||
{ "stbys", 0x0c001300, 0xfc001fc0, "csx,V(s,b)", pa10, 0},
|
||||
{ "stbys", 0x0c001300, 0xfc001fc0, "csx,V(b)", pa10, 0},
|
||||
{ "stbys", 0x0c001300, 0xfc001fc0, "cAx,V(s,b)", pa10, 0},
|
||||
{ "stbys", 0x0c001300, 0xfc001fc0, "cAx,V(b)", pa10, 0},
|
||||
|
||||
/* Immediate instructions. */
|
||||
{ "ldo", 0x34000000, 0xfc000000, "l(b),x", pa20w, 0},
|
||||
|
@ -482,10 +484,10 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "addbf", 0xa8000000, 0xfc000000, "?dnx,b,w", pa10, 0},
|
||||
{ "addibt", 0xa4000000, 0xfc000000, "?dn5,b,w", pa10, 0},
|
||||
{ "addibf", 0xac000000, 0xfc000000, "?dn5,b,w", pa10, 0},
|
||||
{ "bb", 0xc0006000, 0xffe06000, "?Bnx,!,w", pa20, FLAG_STRICT},
|
||||
{ "bb", 0xc4004000, 0xfc004000, "?Bnx,B,w", pa20, FLAG_STRICT},
|
||||
{ "bb", 0xc0004000, 0xffe06000, "?bnx,!,w", pa10, FLAG_STRICT},
|
||||
{ "bb", 0xc4004000, 0xfc004000, "?bnx,Q,w", pa10, 0},
|
||||
{ "bb", 0xc0006000, 0xffe06000, "?Bnx,!,w", pa20, FLAG_STRICT},
|
||||
{ "bb", 0xc4004000, 0xfc004000, "?Bnx,B,w", pa20, FLAG_STRICT},
|
||||
{ "bvb", 0xc0004000, 0xffe04000, "?bnx,w", pa10, 0},
|
||||
{ "clrbts", 0xe8004005, 0xffffffff, "", pa20, FLAG_STRICT},
|
||||
{ "popbts", 0xe8004005, 0xfffff007, "$", pa20, FLAG_STRICT},
|
||||
|
@ -701,46 +703,46 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
|
||||
/* Floating Point Coprocessor Instructions. */
|
||||
|
||||
{ "fldw", 0x24001020, 0xfc1f33a0, "cocc@(s,b),fT", pa20, FLAG_STRICT},
|
||||
{ "fldw", 0x24001020, 0xfc1f33a0, "cocc@(b),fT", pa20, FLAG_STRICT},
|
||||
{ "fldw", 0x24000000, 0xfc001380, "cxccx(s,b),fT", pa10, FLAG_STRICT},
|
||||
{ "fldw", 0x24000000, 0xfc001380, "cxccx(b),fT", pa10, FLAG_STRICT},
|
||||
{ "fldw", 0x24001000, 0xfc001380, "cmcc5(s,b),fT", pa10, FLAG_STRICT},
|
||||
{ "fldw", 0x24001000, 0xfc001380, "cmcc5(b),fT", pa10, FLAG_STRICT},
|
||||
{ "fldw", 0x24001020, 0xfc1f33a0, "cocc@(s,b),fT", pa20, FLAG_STRICT},
|
||||
{ "fldw", 0x24001020, 0xfc1f33a0, "cocc@(b),fT", pa20, FLAG_STRICT},
|
||||
{ "fldw", 0x5c000000, 0xfc000004, "y(b),fe", pa20w, FLAG_STRICT},
|
||||
{ "fldw", 0x58000000, 0xfc000000, "cJy(b),fe", pa20w, FLAG_STRICT},
|
||||
{ "fldw", 0x5c000000, 0xfc000004, "d(b),fe", pa20, FLAG_STRICT},
|
||||
{ "fldw", 0x58000000, 0xfc000000, "cJd(b),fe", pa20, FLAG_STRICT},
|
||||
{ "fldd", 0x2c001020, 0xfc1f33e0, "cocc@(s,b),ft", pa20, FLAG_STRICT},
|
||||
{ "fldd", 0x2c001020, 0xfc1f33e0, "cocc@(b),ft", pa20, FLAG_STRICT},
|
||||
{ "fldd", 0x2c000000, 0xfc0013c0, "cxccx(s,b),ft", pa10, FLAG_STRICT},
|
||||
{ "fldd", 0x2c000000, 0xfc0013c0, "cxccx(b),ft", pa10, FLAG_STRICT},
|
||||
{ "fldd", 0x2c001000, 0xfc0013c0, "cmcc5(s,b),ft", pa10, FLAG_STRICT},
|
||||
{ "fldd", 0x2c001000, 0xfc0013c0, "cmcc5(b),ft", pa10, FLAG_STRICT},
|
||||
{ "fldd", 0x2c001020, 0xfc1f33e0, "cocc@(s,b),ft", pa20, FLAG_STRICT},
|
||||
{ "fldd", 0x2c001020, 0xfc1f33e0, "cocc@(b),ft", pa20, FLAG_STRICT},
|
||||
{ "fldd", 0x50000002, 0xfc000002, "cq&(b),fx", pa20w, FLAG_STRICT},
|
||||
{ "fldd", 0x50000002, 0xfc000002, "cq#(b),fx", pa20, FLAG_STRICT},
|
||||
{ "fstw", 0x24001220, 0xfc1f33a0, "cocCfT,@(s,b)", pa10, FLAG_STRICT},
|
||||
{ "fstw", 0x24001220, 0xfc1f33a0, "cocCfT,@(b)", pa10, FLAG_STRICT},
|
||||
{ "fstw", 0x24000200, 0xfc001380, "cxcCfT,x(s,b)", pa10, FLAG_STRICT},
|
||||
{ "fstw", 0x24000200, 0xfc001380, "cxcCfT,x(b)", pa10, FLAG_STRICT},
|
||||
{ "fstw", 0x24001200, 0xfc001380, "cmcCfT,5(s,b)", pa10, FLAG_STRICT},
|
||||
{ "fstw", 0x24001200, 0xfc001380, "cmcCfT,5(b)", pa10, FLAG_STRICT},
|
||||
{ "fstw", 0x24001220, 0xfc1f33a0, "cocCfT,@(s,b)", pa10, FLAG_STRICT},
|
||||
{ "fstw", 0x24001220, 0xfc1f33a0, "cocCfT,@(b)", pa10, FLAG_STRICT},
|
||||
{ "fstw", 0x7c000000, 0xfc000004, "fE,y(b)", pa20w, FLAG_STRICT},
|
||||
{ "fstw", 0x78000000, 0xfc000000, "cJfe,y(b)", pa20w, FLAG_STRICT},
|
||||
{ "fstw", 0x7c000000, 0xfc000004, "fe,d(b)", pa20, FLAG_STRICT},
|
||||
{ "fstw", 0x78000000, 0xfc000000, "cJfe,d(b)", pa20, FLAG_STRICT},
|
||||
{ "fstd", 0x2c001220, 0xfc1f33e0, "cocCft,@(s,b)", pa10, FLAG_STRICT},
|
||||
{ "fstd", 0x2c001220, 0xfc1f33e0, "cocCft,@(b)", pa10, FLAG_STRICT},
|
||||
{ "fstd", 0x2c000200, 0xfc0013c0, "cxcCft,x(s,b)", pa10, FLAG_STRICT},
|
||||
{ "fstd", 0x2c000200, 0xfc0013c0, "cxcCft,x(b)", pa10, FLAG_STRICT},
|
||||
{ "fstd", 0x2c001200, 0xfc0013c0, "cmcCft,5(s,b)", pa10, FLAG_STRICT},
|
||||
{ "fstd", 0x2c001200, 0xfc0013c0, "cmcCft,5(b)", pa10, FLAG_STRICT},
|
||||
{ "fstd", 0x2c001220, 0xfc1f33e0, "cocCft,@(s,b)", pa10, FLAG_STRICT},
|
||||
{ "fstd", 0x2c001220, 0xfc1f33e0, "cocCft,@(b)", pa10, FLAG_STRICT},
|
||||
{ "fstd", 0x70000002, 0xfc000002, "cqfx,&(b)", pa20w, FLAG_STRICT},
|
||||
{ "fstd", 0x70000002, 0xfc000002, "cqfx,#(b)", pa20, FLAG_STRICT},
|
||||
{ "fldwx", 0x24000000, 0xfc001f80, "cxx(s,b),fT", pa10, 0},
|
||||
{ "fldwx", 0x24000000, 0xfc001f80, "cxx(b),fT", pa10, 0},
|
||||
{ "flddx", 0x2c000000, 0xfc001fc0, "cxx(s,b),ft", pa10, 0},
|
||||
{ "flddx", 0x2c000000, 0xfc001fc0, "cxx(b),ft", pa10, 0},
|
||||
{ "fldwx", 0x24000000, 0xfc001f80, "cXx(s,b),fT", pa10, 0},
|
||||
{ "fldwx", 0x24000000, 0xfc001f80, "cXx(b),fT", pa10, 0},
|
||||
{ "flddx", 0x2c000000, 0xfc001fc0, "cXx(s,b),ft", pa10, 0},
|
||||
{ "flddx", 0x2c000000, 0xfc001fc0, "cXx(b),ft", pa10, 0},
|
||||
{ "fstwx", 0x24000200, 0xfc001f80, "cxfT,x(s,b)", pa10, 0},
|
||||
{ "fstwx", 0x24000200, 0xfc001f80, "cxfT,x(b)", pa10, 0},
|
||||
{ "fstdx", 0x2c000200, 0xfc001fc0, "cxft,x(s,b)", pa10, 0},
|
||||
|
@ -815,38 +817,44 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "spop2", 0x10000400, 0xfc000600, "v,1Nb", pa10, 0},
|
||||
{ "spop3", 0x10000600, 0xfc000600, "v,0Nx,b", pa10, 0},
|
||||
{ "copr", 0x30000000, 0xfc000000, "u,2N", pa10, 0},
|
||||
{ "cldwx", 0x24000000, 0xfc001e00, "ucxx(s,b),t", pa10, 0},
|
||||
{ "cldwx", 0x24000000, 0xfc001e00, "ucxx(b),t", pa10, 0},
|
||||
{ "clddx", 0x2c000000, 0xfc001e00, "ucxx(s,b),t", pa10, 0},
|
||||
{ "clddx", 0x2c000000, 0xfc001e00, "ucxx(b),t", pa10, 0},
|
||||
{ "cstwx", 0x24000200, 0xfc001e00, "ucxt,x(s,b)", pa10, 0},
|
||||
{ "cstwx", 0x24000200, 0xfc001e00, "ucxt,x(b)", pa10, 0},
|
||||
{ "cstdx", 0x2c000200, 0xfc001e00, "ucxt,x(s,b)", pa10, 0},
|
||||
{ "cstdx", 0x2c000200, 0xfc001e00, "ucxt,x(b)", pa10, 0},
|
||||
{ "cldws", 0x24001000, 0xfc001e00, "ucm5(s,b),t", pa10, 0},
|
||||
{ "cldws", 0x24001000, 0xfc001e00, "ucm5(b),t", pa10, 0},
|
||||
{ "cldds", 0x2c001000, 0xfc001e00, "ucm5(s,b),t", pa10, 0},
|
||||
{ "cldds", 0x2c001000, 0xfc001e00, "ucm5(b),t", pa10, 0},
|
||||
{ "cstws", 0x24001200, 0xfc001e00, "ucmt,5(s,b)", pa10, 0},
|
||||
{ "cstws", 0x24001200, 0xfc001e00, "ucmt,5(b)", pa10, 0},
|
||||
{ "cstds", 0x2c001200, 0xfc001e00, "ucmt,5(s,b)", pa10, 0},
|
||||
{ "cstds", 0x2c001200, 0xfc001e00, "ucmt,5(b)", pa10, 0},
|
||||
{ "cldw", 0x24000000, 0xfc001e00, "ucxx(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "cldw", 0x24000000, 0xfc001e00, "ucxx(b),t", pa10, FLAG_STRICT},
|
||||
{ "cldw", 0x24001000, 0xfc001e00, "ucm5(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "cldw", 0x24001000, 0xfc001e00, "ucm5(b),t", pa10, FLAG_STRICT},
|
||||
{ "cldd", 0x2c000000, 0xfc001e00, "ucxx(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "cldd", 0x2c000000, 0xfc001e00, "ucxx(b),t", pa10, FLAG_STRICT},
|
||||
{ "cldd", 0x2c001000, 0xfc001e00, "ucm5(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "cldd", 0x2c001000, 0xfc001e00, "ucm5(b),t", pa20, FLAG_STRICT},
|
||||
{ "cstw", 0x24000200, 0xfc001e00, "ucxt,x(s,b)", pa10, FLAG_STRICT},
|
||||
{ "cstw", 0x24000200, 0xfc001e00, "ucxt,x(b)", pa10, FLAG_STRICT},
|
||||
{ "cstw", 0x24001200, 0xfc001e00, "ucmt,5(s,b)", pa10, FLAG_STRICT},
|
||||
{ "cstw", 0x24001200, 0xfc001e00, "ucmt,5(b)", pa10, FLAG_STRICT},
|
||||
{ "cstd", 0x2c000200, 0xfc001e00, "ucxt,x(s,b)", pa10, FLAG_STRICT},
|
||||
{ "cstd", 0x2c000200, 0xfc001e00, "ucxt,x(b)", pa10, FLAG_STRICT},
|
||||
{ "cstd", 0x2c001200, 0xfc001e00, "ucmt,5(s,b)", pa10, FLAG_STRICT},
|
||||
{ "cstd", 0x2c001200, 0xfc001e00, "ucmt,5(b)", pa10, FLAG_STRICT},
|
||||
{ "cldwx", 0x24000000, 0xfc001e00, "ucXx(s,b),t", pa10, 0},
|
||||
{ "cldwx", 0x24000000, 0xfc001e00, "ucXx(b),t", pa10, 0},
|
||||
{ "clddx", 0x2c000000, 0xfc001e00, "ucXx(s,b),t", pa10, 0},
|
||||
{ "clddx", 0x2c000000, 0xfc001e00, "ucXx(b),t", pa10, 0},
|
||||
{ "cstwx", 0x24000200, 0xfc001e00, "ucXt,x(s,b)", pa10, 0},
|
||||
{ "cstwx", 0x24000200, 0xfc001e00, "ucXt,x(b)", pa10, 0},
|
||||
{ "cstdx", 0x2c000200, 0xfc001e00, "ucXt,x(s,b)", pa10, 0},
|
||||
{ "cstdx", 0x2c000200, 0xfc001e00, "ucXt,x(b)", pa10, 0},
|
||||
{ "cldws", 0x24001000, 0xfc001e00, "ucM5(s,b),t", pa10, 0},
|
||||
{ "cldws", 0x24001000, 0xfc001e00, "ucM5(b),t", pa10, 0},
|
||||
{ "cldds", 0x2c001000, 0xfc001e00, "ucM5(s,b),t", pa10, 0},
|
||||
{ "cldds", 0x2c001000, 0xfc001e00, "ucM5(b),t", pa10, 0},
|
||||
{ "cstws", 0x24001200, 0xfc001e00, "ucMt,5(s,b)", pa10, 0},
|
||||
{ "cstws", 0x24001200, 0xfc001e00, "ucMt,5(b)", pa10, 0},
|
||||
{ "cstds", 0x2c001200, 0xfc001e00, "ucMt,5(s,b)", pa10, 0},
|
||||
{ "cstds", 0x2c001200, 0xfc001e00, "ucMt,5(b)", pa10, 0},
|
||||
{ "cldw", 0x24000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "cldw", 0x24000000, 0xfc001e00, "ucXx(b),t", pa10, FLAG_STRICT},
|
||||
{ "cldw", 0x24001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "cldw", 0x24001000, 0xfc001e00, "ucM5(b),t", pa10, FLAG_STRICT},
|
||||
{ "cldd", 0x2c000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "cldd", 0x2c000000, 0xfc001e00, "ucXx(b),t", pa10, FLAG_STRICT},
|
||||
{ "cldd", 0x2c001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "cldd", 0x2c001000, 0xfc001e00, "ucM5(b),t", pa20, FLAG_STRICT},
|
||||
{ "cstw", 0x24000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT},
|
||||
{ "cstw", 0x24000200, 0xfc001e00, "ucXt,x(b)", pa10, FLAG_STRICT},
|
||||
{ "cstw", 0x24001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT},
|
||||
{ "cstw", 0x24001200, 0xfc001e00, "ucMt,5(b)", pa10, FLAG_STRICT},
|
||||
{ "cstd", 0x2c000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT},
|
||||
{ "cstd", 0x2c000200, 0xfc001e00, "ucXt,x(b)", pa10, FLAG_STRICT},
|
||||
{ "cstd", 0x2c001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT},
|
||||
{ "cstd", 0x2c001200, 0xfc001e00, "ucMt,5(b)", pa10, FLAG_STRICT},
|
||||
|
||||
/* More pseudo instructions which must follow the main table. */
|
||||
{ "call", 0xe800f000, 0xfc1ffffd, "n(b)", pa20, FLAG_STRICT},
|
||||
{ "call", 0xe800a000, 0xffe0e000, "nW", pa10, FLAG_STRICT},
|
||||
{ "ret", 0xe840d000, 0xfffffffd, "n", pa20, FLAG_STRICT},
|
||||
|
||||
};
|
||||
|
||||
#define NUMOPCODES ((sizeof pa_opcodes)/(sizeof pa_opcodes[0]))
|
||||
|
|
|
@ -553,9 +553,12 @@ static const template i386_optab[] = {
|
|||
|
||||
{"sgdt", 1, 0x0f01, 0, Cpu286, wlq_Suf|Modrm, { WordMem, 0, 0} },
|
||||
{"sidt", 1, 0x0f01, 1, Cpu286, wlq_Suf|Modrm, { WordMem, 0, 0} },
|
||||
{"sldt", 1, 0x0f00, 0, Cpu286, wlq_Suf|Modrm, { WordReg|WordMem, 0, 0} },
|
||||
{"smsw", 1, 0x0f01, 4, Cpu286, wlq_Suf|Modrm, { WordReg|WordMem, 0, 0} },
|
||||
{"str", 1, 0x0f00, 1, Cpu286, w_Suf|Modrm|IgnoreSize,{ Reg16|ShortMem, 0, 0} },
|
||||
{"sldt", 1, 0x0f00, 0, Cpu286, wlq_Suf|Modrm, { WordReg|InvMem, 0, 0} },
|
||||
{"sldt", 1, 0x0f00, 0, Cpu286, w_Suf|Modrm|IgnoreSize,{ ShortMem, 0, 0} },
|
||||
{"smsw", 1, 0x0f01, 4, Cpu286, wlq_Suf|Modrm, { WordReg|InvMem, 0, 0} },
|
||||
{"smsw", 1, 0x0f01, 4, Cpu286, w_Suf|Modrm|IgnoreSize,{ ShortMem, 0, 0} },
|
||||
{"str", 1, 0x0f00, 1, Cpu286, wlq_Suf|Modrm, { WordReg|InvMem, 0, 0} },
|
||||
{"str", 1, 0x0f00, 1, Cpu286, w_Suf|Modrm|IgnoreSize,{ ShortMem, 0, 0} },
|
||||
|
||||
{"verr", 1, 0x0f00, 4, Cpu286, w_Suf|Modrm|IgnoreSize,{ Reg16|ShortMem, 0, 0} },
|
||||
{"verw", 1, 0x0f00, 5, Cpu286, w_Suf|Modrm|IgnoreSize,{ Reg16|ShortMem, 0, 0} },
|
||||
|
|
|
@ -209,8 +209,8 @@ struct mips_opcode
|
|||
Coprocessor instructions:
|
||||
"E" 5 bit target register (OP_*_RT)
|
||||
"G" 5 bit destination register (OP_*_RD)
|
||||
"H" 3 bit sel field for (d)mtc* and (d)mfc* (OP_*_SEL)
|
||||
"P" 5 bit performance-monitor register (OP_*_PERFREG)
|
||||
"H" 3 bit sel field (OP_*_SEL)
|
||||
|
||||
Macro instructions:
|
||||
"A" General 32 bit expression
|
||||
|
@ -307,7 +307,7 @@ struct mips_opcode
|
|||
ORs of these bits, indicatingthat they support the instructions
|
||||
defined at the given level. */
|
||||
|
||||
#define INSN_ISA_MASK 0x0000ffff
|
||||
#define INSN_ISA_MASK 0x00000fff
|
||||
#define INSN_ISA1 0x00000010
|
||||
#define INSN_ISA2 0x00000020
|
||||
#define INSN_ISA3 0x00000040
|
||||
|
@ -326,8 +326,10 @@ struct mips_opcode
|
|||
#define INSN_4100 0x00040000
|
||||
/* Toshiba R3900 instruction. */
|
||||
#define INSN_3900 0x00080000
|
||||
/* 32-bit code running on a ISA3+ CPU. */
|
||||
#define INSN_GP32 0x00100000
|
||||
/* MIPS R10000 instruction. */
|
||||
#define INSN_10000 0x00100000
|
||||
/* Broadcom SB-1 instruction. */
|
||||
#define INSN_SB1 0x00200000
|
||||
|
||||
/* MIPS ISA defines, use instead of hardcoding ISA level. */
|
||||
|
||||
|
@ -361,7 +363,6 @@ struct mips_opcode
|
|||
#define CPU_R12000 12000
|
||||
#define CPU_MIPS16 16
|
||||
#define CPU_MIPS32 32
|
||||
#define CPU_MIPS32_4K 3204113 /* 32, 04, octal 'K'. */
|
||||
#define CPU_MIPS5 5
|
||||
#define CPU_MIPS64 64
|
||||
#define CPU_SB1 12310201 /* octal 'SB', 01. */
|
||||
|
@ -369,20 +370,19 @@ struct mips_opcode
|
|||
/* Test for membership in an ISA including chip specific ISAs.
|
||||
INSN is pointer to an element of the opcode table; ISA is the
|
||||
specified ISA to test against; and CPU is the CPU specific ISA
|
||||
to test, or zero if no CPU specific ISA test is desired.
|
||||
The gp32 arg is set when you need to force 32-bit register usage on
|
||||
a machine with 64-bit registers; see the documentation under -mgp32
|
||||
in the MIPS gas docs. */
|
||||
to test, or zero if no CPU specific ISA test is desired. */
|
||||
|
||||
#define OPCODE_IS_MEMBER(insn, isa, cpu, gp32) \
|
||||
((((insn)->membership & isa) != 0 \
|
||||
&& ((insn)->membership & INSN_GP32 ? gp32 : 1) \
|
||||
) \
|
||||
#define OPCODE_IS_MEMBER(insn, isa, cpu) \
|
||||
(((insn)->membership & isa) != 0 \
|
||||
|| (cpu == CPU_R4650 && ((insn)->membership & INSN_4650) != 0) \
|
||||
|| (cpu == CPU_R4010 && ((insn)->membership & INSN_4010) != 0) \
|
||||
|| ((cpu == CPU_VR4100 || cpu == CPU_R4111) \
|
||||
&& ((insn)->membership & INSN_4100) != 0) \
|
||||
|| (cpu == CPU_R3900 && ((insn)->membership & INSN_3900) != 0))
|
||||
|| (cpu == CPU_R3900 && ((insn)->membership & INSN_3900) != 0) \
|
||||
|| ((cpu == CPU_R10000 || cpu == CPU_R12000) \
|
||||
&& ((insn)->membership & INSN_10000) != 0) \
|
||||
|| (cpu == CPU_SB1 && ((insn)->membership & INSN_SB1) != 0) \
|
||||
|| 0) /* Please keep this term for easier source merging. */
|
||||
|
||||
/* This is a list of macro expanded instructions.
|
||||
|
||||
|
@ -508,6 +508,7 @@ enum
|
|||
M_LWR_A,
|
||||
M_LWR_AB,
|
||||
M_LWU_AB,
|
||||
M_MOVE,
|
||||
M_MUL,
|
||||
M_MUL_I,
|
||||
M_MULO,
|
||||
|
|
|
@ -0,0 +1,185 @@
|
|||
/* mmix.h -- Header file for MMIX opcode table
|
||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
Written by Hans-Peter Nilsson (hp@bitrange.com)
|
||||
|
||||
This file is part of GDB, GAS, and the GNU binutils.
|
||||
|
||||
GDB, GAS, and the GNU binutils are free software; you can redistribute
|
||||
them and/or modify them 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.
|
||||
|
||||
GDB, GAS, and the GNU binutils are distributed in the hope that they
|
||||
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 file; see the file COPYING. If not, write to the Free
|
||||
Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* We could have just a char*[] table indexed by the register number, but
|
||||
that would not allow for synonyms. The table is terminated with an
|
||||
entry with a NULL name. */
|
||||
struct mmix_spec_reg
|
||||
{
|
||||
const char *name;
|
||||
unsigned int number;
|
||||
};
|
||||
|
||||
/* General indication of the type of instruction. */
|
||||
enum mmix_insn_type
|
||||
{
|
||||
mmix_type_pseudo,
|
||||
mmix_type_normal,
|
||||
mmix_type_branch,
|
||||
mmix_type_condbranch,
|
||||
mmix_type_memaccess_octa,
|
||||
mmix_type_memaccess_tetra,
|
||||
mmix_type_memaccess_wyde,
|
||||
mmix_type_memaccess_byte,
|
||||
mmix_type_memaccess_block,
|
||||
mmix_type_jsr
|
||||
};
|
||||
|
||||
/* Type of operands an instruction takes. Use when parsing assembly code
|
||||
and disassembling. */
|
||||
enum mmix_operands_type
|
||||
{
|
||||
mmix_operands_none = 0,
|
||||
|
||||
/* All operands are registers: "$X,$Y,$Z". */
|
||||
mmix_operands_regs,
|
||||
|
||||
/* "$X,YZ", like SETH. */
|
||||
mmix_operands_reg_yz,
|
||||
|
||||
/* The regular "$X,$Y,$Z|Z".
|
||||
The Z is optional; if only "$X,$Y" is given, then "$X,$Y,0" is
|
||||
assumed. */
|
||||
mmix_operands_regs_z_opt,
|
||||
|
||||
/* The regular "$X,$Y,$Z|Z". */
|
||||
mmix_operands_regs_z,
|
||||
|
||||
/* "Address"; only JMP. Zero operands allowed unless GNU syntax. */
|
||||
mmix_operands_jmp,
|
||||
|
||||
/* "$X|X,$Y,$Z|Z": PUSHGO; like "3", but X can be expressed as an
|
||||
integer. */
|
||||
mmix_operands_pushgo,
|
||||
|
||||
/* Two registers or a register and a byte, like FLOT, possibly with
|
||||
rounding: "$X,$Z|Z" or "$X,ROUND_MODE,$Z|Z". */
|
||||
mmix_operands_roundregs_z,
|
||||
|
||||
/* "X,YZ", POP. Unless GNU syntax, zero or one operand is allowed. */
|
||||
mmix_operands_pop,
|
||||
|
||||
/* Two registers, possibly with rounding: "$X,$Z" or
|
||||
"$X,ROUND_MODE,$Z". */
|
||||
mmix_operands_roundregs,
|
||||
|
||||
/* "XYZ", like SYNC. */
|
||||
mmix_operands_sync,
|
||||
|
||||
/* "X,$Y,$Z|Z", like SYNCD. */
|
||||
mmix_operands_x_regs_z,
|
||||
|
||||
/* "$X,Y,$Z|Z", like NEG and NEGU. The Y field is optional, default 0. */
|
||||
mmix_operands_neg,
|
||||
|
||||
/* "$X,Address, like GETA or branches. */
|
||||
mmix_operands_regaddr,
|
||||
|
||||
/* "$X|X,Address, like PUSHJ. */
|
||||
mmix_operands_pushj,
|
||||
|
||||
/* "$X,spec_reg"; GET. */
|
||||
mmix_operands_get,
|
||||
|
||||
/* "spec_reg,$Z|Z"; PUT. */
|
||||
mmix_operands_put,
|
||||
|
||||
/* Two registers, "$X,$Y". */
|
||||
mmix_operands_set,
|
||||
|
||||
/* "$X,0"; SAVE. */
|
||||
mmix_operands_save,
|
||||
|
||||
/* "0,$Z"; UNSAVE. */
|
||||
mmix_operands_unsave,
|
||||
|
||||
/* "X,Y,Z"; like SWYM or TRAP. Zero (or 1 if GNU syntax) to three
|
||||
operands, interpreted as 0; XYZ; X, YZ and X, Y, Z. */
|
||||
mmix_operands_xyz_opt,
|
||||
|
||||
/* Just "Z", like RESUME. Unless GNU syntax, the operand can be omitted
|
||||
and will then be assumed zero. */
|
||||
mmix_operands_resume,
|
||||
|
||||
/* These are specials to handle that pseudo-directives are specified
|
||||
like ordinary insns when being mmixal-compatible. They signify the
|
||||
specific pseudo-directive rather than the operands type. */
|
||||
|
||||
/* LOC. */
|
||||
mmix_operands_loc,
|
||||
|
||||
/* PREFIX. */
|
||||
mmix_operands_prefix,
|
||||
|
||||
/* BYTE. */
|
||||
mmix_operands_byte,
|
||||
|
||||
/* WYDE. */
|
||||
mmix_operands_wyde,
|
||||
|
||||
/* TETRA. */
|
||||
mmix_operands_tetra,
|
||||
|
||||
/* OCTA. */
|
||||
mmix_operands_octa,
|
||||
|
||||
/* LOCAL. */
|
||||
mmix_operands_local,
|
||||
|
||||
/* BSPEC. */
|
||||
mmix_operands_bspec,
|
||||
|
||||
/* ESPEC. */
|
||||
mmix_operands_espec,
|
||||
};
|
||||
|
||||
struct mmix_opcode
|
||||
{
|
||||
const char *name;
|
||||
unsigned long match;
|
||||
unsigned long lose;
|
||||
enum mmix_operands_type operands;
|
||||
|
||||
/* This is used by the disassembly function. */
|
||||
enum mmix_insn_type type;
|
||||
};
|
||||
|
||||
/* Declare the actual tables. */
|
||||
extern const struct mmix_opcode mmix_opcodes[];
|
||||
|
||||
/* This one is terminated with an entry with a NULL name. */
|
||||
extern const struct mmix_spec_reg mmix_spec_regs[];
|
||||
|
||||
/* Some insn values we use when padding and synthesizing address loads. */
|
||||
#define IMM_OFFSET_BIT 1
|
||||
#define COND_INV_BIT 0x8
|
||||
#define PRED_INV_BIT 0x10
|
||||
|
||||
#define PUSHGO_INSN_BYTE 0xbe
|
||||
#define GO_INSN_BYTE 0x9e
|
||||
#define SETL_INSN_BYTE 0xe3
|
||||
#define INCML_INSN_BYTE 0xe6
|
||||
#define INCMH_INSN_BYTE 0xe5
|
||||
#define INCH_INSN_BYTE 0xe4
|
||||
#define SWYM_INSN_BYTE 0xfd
|
||||
|
||||
/* We can have 256 - 32 (local registers) - 1 ($255 is not allocatable)
|
||||
global registers. */
|
||||
#define MAX_GREGS 223
|
|
@ -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
|
|
@ -1,5 +1,5 @@
|
|||
/* ppc.h -- Header file for PowerPC opcode table
|
||||
Copyright 1994, 1995, 1999, 2000 Free Software Foundation, Inc.
|
||||
Copyright 1994, 1995, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
Written by Ian Lance Taylor, Cygnus Support
|
||||
|
||||
This file is part of GDB, GAS, and the GNU binutils.
|
||||
|
@ -89,7 +89,16 @@ extern const int powerpc_num_opcodes;
|
|||
#define PPC_OPCODE_64_BRIDGE (0400)
|
||||
|
||||
/* Opcode is supported by Altivec Vector Unit */
|
||||
#define PPC_OPCODE_ALTIVEC (01000)
|
||||
#define PPC_OPCODE_ALTIVEC (01000)
|
||||
|
||||
/* Opcode is supported by PowerPC 403 processor. */
|
||||
#define PPC_OPCODE_403 (02000)
|
||||
|
||||
/* Opcode is supported by PowerPC BookE processor. */
|
||||
#define PPC_OPCODE_BOOKE (04000)
|
||||
|
||||
/* Opcode is only supported by 64-bit PowerPC BookE processor. */
|
||||
#define PPC_OPCODE_BOOKE64 (010000)
|
||||
|
||||
/* A macro to extract the major opcode from an instruction. */
|
||||
#define PPC_OP(i) (((i) >> 26) & 0x3f)
|
||||
|
@ -121,6 +130,7 @@ struct powerpc_operand
|
|||
operand value is legal, *ERRMSG will be unchanged (most operands
|
||||
can accept any value). */
|
||||
unsigned long (*insert) PARAMS ((unsigned long instruction, long op,
|
||||
int dialect,
|
||||
const char **errmsg));
|
||||
|
||||
/* Extraction function. This is used by the disassembler. To
|
||||
|
@ -140,7 +150,8 @@ struct powerpc_operand
|
|||
non-zero if this operand type can not actually be extracted from
|
||||
this operand (i.e., the instruction does not match). If the
|
||||
operand is valid, *INVALID will not be changed. */
|
||||
long (*extract) PARAMS ((unsigned long instruction, int *invalid));
|
||||
long (*extract) PARAMS ((unsigned long instruction, int dialect,
|
||||
int *invalid));
|
||||
|
||||
/* One bit syntax flags. */
|
||||
unsigned long flags;
|
||||
|
@ -229,6 +240,8 @@ extern const struct powerpc_operand powerpc_operands[];
|
|||
prints these with a leading 'v'. */
|
||||
#define PPC_OPERAND_VR (010000)
|
||||
|
||||
/* This operand is for the DS field in a DS form instruction. */
|
||||
#define PPC_OPERAND_DS (020000)
|
||||
|
||||
/* The POWER and PowerPC assemblers use a few macros. We keep them
|
||||
with the operands table for simplicity. The macro table is an
|
||||
|
|
|
@ -19,8 +19,8 @@ along with this file; see the file COPYING. If not, write to the Free
|
|||
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA. */
|
||||
|
||||
#ifndef _TIC54X_H_
|
||||
#define _TIC54X_H_
|
||||
#ifndef _opcode_tic54x_h_
|
||||
#define _opcode_tic54x_h_
|
||||
|
||||
typedef struct _symbol
|
||||
{
|
||||
|
@ -86,7 +86,6 @@ typedef struct _template
|
|||
{
|
||||
/* The opcode mnemonic */
|
||||
const char *name;
|
||||
|
||||
unsigned int words; /* insn size in words */
|
||||
int minops, maxops; /* min/max operand count */
|
||||
/* The significant bits in the opcode. Other bits are zero.
|
||||
|
@ -141,27 +140,24 @@ typedef struct _template
|
|||
#define FL_NR 0x100 /* no repeat allowed */
|
||||
#define FL_SMR 0x200 /* Smem read (for flagging write-only *+ARx */
|
||||
|
||||
#define FL_PAR 0x400 /* Parallel instruction. */
|
||||
|
||||
unsigned short opcode2, mask2; /* some insns have an extended opcode */
|
||||
|
||||
const char* parname;
|
||||
enum optype paroperand_types[MAX_OPERANDS];
|
||||
|
||||
} template;
|
||||
|
||||
typedef struct _partemplate {
|
||||
char *name;
|
||||
char *parname;
|
||||
unsigned int words; /* length in words */
|
||||
int minops, maxops; /* min/max operand count for 2nd part of insn */
|
||||
unsigned short opcode;
|
||||
unsigned short mask;
|
||||
enum optype operand_types[MAX_OPERANDS];
|
||||
enum optype paroperand_types[MAX_OPERANDS];
|
||||
} partemplate;
|
||||
|
||||
extern const template tic54x_unknown_opcode;
|
||||
extern const template tic54x_optab[];
|
||||
extern const partemplate tic54x_paroptab[];
|
||||
extern const template tic54x_paroptab[];
|
||||
extern const symbol mmregs[], regs[];
|
||||
extern const symbol condition_codes[], cc2_codes[], status_bits[];
|
||||
extern const symbol cc3_codes[];
|
||||
extern const char *misc_symbols[];
|
||||
struct disassemble_info;
|
||||
extern const template* tic54x_get_insn (struct disassemble_info *,
|
||||
bfd_vma, unsigned short, int *);
|
||||
|
||||
#endif /* TIC54X_H */
|
||||
#endif /* _opcode_tic54x_h_ */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* v850.h -- Header file for NEC V850 opcode table
|
||||
Copyright 1996, 1997 Free Software Foundation, Inc.
|
||||
Copyright 1996, 1997, 2001 Free Software Foundation, Inc.
|
||||
Written by J.T. Conklin, Cygnus Support
|
||||
|
||||
This file is part of GDB, GAS, and the GNU binutils.
|
||||
|
@ -153,7 +153,6 @@ extern const struct v850_operand v850_operands[];
|
|||
/* The register specified must not be r0 */
|
||||
#define V850_NOT_R0 0x80
|
||||
|
||||
/* CYGNUS LOCAL v850e */
|
||||
/* push/pop type instruction, V850E specific. */
|
||||
#define V850E_PUSH_POP 0x100
|
||||
|
||||
|
|
|
@ -2,20 +2,20 @@
|
|||
Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
||||
Contributed by CodeSourcery, LLC.
|
||||
|
||||
This file is part of GNU CC.
|
||||
This file is part of GCC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
GCC 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.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
GCC 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 GNU CC; see the file COPYING. If not, write to
|
||||
along with GCC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
|
|
@ -63,7 +63,9 @@ enum {
|
|||
_sch_isalnum = _sch_isalpha|_sch_isdigit, /* A-Za-z0-9 */
|
||||
_sch_isidnum = _sch_isidst|_sch_isdigit, /* A-Za-z0-9_ */
|
||||
_sch_isgraph = _sch_isalnum|_sch_ispunct, /* isprint and not space */
|
||||
_sch_iscppsp = _sch_isvsp|_sch_isnvsp /* isspace + \0 */
|
||||
_sch_iscppsp = _sch_isvsp|_sch_isnvsp, /* isspace + \0 */
|
||||
_sch_isbasic = _sch_isprint|_sch_iscppsp /* basic charset of ISO C
|
||||
(plus ` and @) */
|
||||
};
|
||||
|
||||
/* Character classification. */
|
||||
|
@ -86,6 +88,7 @@ extern const unsigned short _sch_istable[256];
|
|||
|
||||
#define ISIDNUM(c) _sch_test(c, _sch_isidnum)
|
||||
#define ISIDST(c) _sch_test(c, _sch_isidst)
|
||||
#define IS_ISOBASIC(c) _sch_test(c, _sch_isbasic)
|
||||
#define IS_VSPACE(c) _sch_test(c, _sch_isvsp)
|
||||
#define IS_NVSPACE(c) _sch_test(c, _sch_isnvsp)
|
||||
#define IS_SPACE_OR_NUL(c) _sch_test(c, _sch_iscppsp)
|
||||
|
|
|
@ -2,20 +2,20 @@
|
|||
Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
Contributed by Mark Mitchell <mark@codesourcery.com>.
|
||||
|
||||
This file is part of GNU CC.
|
||||
This file is part of GCC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify it
|
||||
GCC 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.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful, but
|
||||
GCC 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 GNU CC; see the file COPYING. If not, write to
|
||||
along with GCC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
|
|
@ -2,20 +2,20 @@
|
|||
Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
Contributed by Mark Mitchell (mark@markmitchell.com).
|
||||
|
||||
This file is part of GNU CC.
|
||||
This file is part of GCC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify it
|
||||
GCC 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.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful, but
|
||||
GCC 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 GNU CC; see the file COPYING. If not, write to
|
||||
along with GCC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
|
|
@ -19,6 +19,10 @@
|
|||
# define re_syntax_options xre_syntax_options
|
||||
# define re_max_failures xre_max_failures
|
||||
|
||||
# define _REGEX_RE_COMP
|
||||
# define re_comp xre_comp
|
||||
# define re_exec xre_exec
|
||||
|
||||
#include "xregex2.h"
|
||||
|
||||
#endif /* xregex.h */
|
||||
|
|
|
@ -159,6 +159,22 @@ case $host in
|
|||
rm -rf conftest*
|
||||
;;
|
||||
|
||||
ia64-*-hpux*)
|
||||
# Find out which ABI we are using.
|
||||
echo 'int i;' > conftest.$ac_ext
|
||||
if AC_TRY_EVAL(ac_compile); then
|
||||
case "`/usr/bin/file conftest.o`" in
|
||||
*ELF-32*)
|
||||
HPUX_IA64_MODE="32"
|
||||
;;
|
||||
*ELF-64*)
|
||||
HPUX_IA64_MODE="64"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
rm -rf conftest*
|
||||
;;
|
||||
|
||||
*-*-sco3.2v5*)
|
||||
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
|
||||
SAVE_CFLAGS="$CFLAGS"
|
||||
|
@ -568,9 +584,18 @@ gnu*)
|
|||
;;
|
||||
|
||||
hpux10.20*|hpux11*)
|
||||
lt_cv_deplibs_check_method=['file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library']
|
||||
lt_cv_file_magic_cmd=/usr/bin/file
|
||||
lt_cv_file_magic_test_file=/usr/lib/libc.sl
|
||||
case $host_cpu in
|
||||
hppa*)
|
||||
[lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library']
|
||||
lt_cv_file_magic_cmd=/usr/bin/file
|
||||
lt_cv_file_magic_test_file=/usr/lib/libc.sl
|
||||
;;
|
||||
ia64*)
|
||||
[lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64']
|
||||
lt_cv_file_magic_cmd=/usr/bin/file
|
||||
lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
irix5* | irix6*)
|
||||
|
|
65
ltcf-c.sh
65
ltcf-c.sh
|
@ -58,9 +58,10 @@ if test "$with_gnu_ld" = yes; then
|
|||
# See if GNU ld supports shared libraries.
|
||||
case $host_os in
|
||||
aix3* | aix4* | aix5*)
|
||||
# On AIX, the GNU linker is very broken
|
||||
ld_shlibs=no
|
||||
cat <<EOF 1>&2
|
||||
# On AIX/PPC, the GNU linker is very broken
|
||||
if test "$host_cpu" != ia64; then
|
||||
ld_shlibs=no
|
||||
cat <<EOF 1>&2
|
||||
|
||||
*** Warning: the GNU linker, at least up to release 2.9.1, is reported
|
||||
*** to be unable to reliably create shared libraries on AIX.
|
||||
|
@ -69,6 +70,7 @@ if test "$with_gnu_ld" = yes; then
|
|||
*** so that a non-GNU linker is found, and then restart.
|
||||
|
||||
EOF
|
||||
fi
|
||||
;;
|
||||
|
||||
amigaos*)
|
||||
|
@ -311,8 +313,10 @@ else
|
|||
# On IA64, the linker does run time linking by default, so we don't
|
||||
# have to do anything special.
|
||||
aix_use_runtimelinking=no
|
||||
exp_sym_flag='-Bexport'
|
||||
no_entry_flag=""
|
||||
if test $with_gnu_ld = no; then
|
||||
exp_sym_flag='-Bexport'
|
||||
no_entry_flag=""
|
||||
fi
|
||||
else
|
||||
# Test if we are trying to use run time linking, or normal AIX style linking.
|
||||
# If -brtl is somewhere in LDFLAGS, we need to do run time linking.
|
||||
|
@ -336,9 +340,11 @@ else
|
|||
archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
|
||||
else
|
||||
if test "$host_cpu" = ia64; then
|
||||
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
|
||||
allow_undefined_flag="-z nodefs"
|
||||
archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
|
||||
if test $with_gnu_ld = no; then
|
||||
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
|
||||
allow_undefined_flag="-z nodefs"
|
||||
archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
|
||||
fi
|
||||
else
|
||||
allow_undefined_flag=' ${wl}-berok'
|
||||
# -bexpall does not export symbols beginning with underscore (_)
|
||||
|
@ -411,23 +417,32 @@ else
|
|||
;;
|
||||
|
||||
hpux9* | hpux10* | hpux11*)
|
||||
if test $with_gcc = yes; then
|
||||
case "$host_os" in
|
||||
hpux9*) archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
|
||||
*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;;
|
||||
esac
|
||||
else
|
||||
case $host_os in
|
||||
hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
|
||||
*) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
|
||||
esac
|
||||
fi
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes # Not in the search PATH, but as the default
|
||||
# location of the library.
|
||||
case "$host_cpu" in
|
||||
ia64*)
|
||||
hardcode_direct=no
|
||||
hardcode_shlibpath_var=no
|
||||
archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
|
||||
hardcode_libdir_flag_spec='-L$libdir' ;;
|
||||
*)
|
||||
if test $with_gcc = yes; then
|
||||
case "$host_os" in
|
||||
hpux9*) archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
|
||||
*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;;
|
||||
esac
|
||||
else
|
||||
case $host_os in
|
||||
hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
|
||||
*) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
|
||||
esac
|
||||
fi
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
hardcode_minus_L=yes # Not in the search PATH, but as the default
|
||||
# location of the library.
|
||||
;;
|
||||
esac
|
||||
export_dynamic_flag_spec='${wl}-E'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
|
||||
irix5* | irix6*)
|
||||
|
@ -783,7 +798,7 @@ if test "$enable_shared" = yes && test "$with_gcc" = yes; then
|
|||
cat conftest.err 1>&5
|
||||
soname=conftest
|
||||
lib=conftest
|
||||
libobjs=conftest.$ac_objext
|
||||
libobjs=conftest.$objext
|
||||
deplibs=
|
||||
wl=$ac_cv_prog_cc_wl
|
||||
compiler_flags=-v
|
||||
|
|
18
ltcf-cxx.sh
18
ltcf-cxx.sh
|
@ -165,8 +165,10 @@ case $host_os in
|
|||
# On IA64, the linker does run time linking by default, so we don't
|
||||
# have to do anything special.
|
||||
aix_use_runtimelinking=no
|
||||
exp_sym_flag='-Bexport'
|
||||
no_entry_flag=""
|
||||
if test $with_gnu_ld = no; then
|
||||
exp_sym_flag='-Bexport'
|
||||
no_entry_flag=""
|
||||
fi
|
||||
else
|
||||
# Test if we are trying to use run time linking, or normal AIX style linking.
|
||||
# If -brtl is somewhere in LDFLAGS, we need to do run time linking.
|
||||
|
@ -189,9 +191,11 @@ case $host_os in
|
|||
archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}-brtl \${wl}$exp_sym_flag:\$export_symbols"
|
||||
else
|
||||
if test "$host_cpu" = ia64; then
|
||||
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
|
||||
allow_undefined_flag="-z nodefs"
|
||||
archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
|
||||
if test $with_gnu_ld = no; then
|
||||
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
|
||||
allow_undefined_flag="-z nodefs"
|
||||
archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
|
||||
fi
|
||||
else
|
||||
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
|
||||
# Warning - without using the other run time loading flags, -berok will
|
||||
|
@ -242,6 +246,8 @@ case $host_os in
|
|||
# conventions
|
||||
ld_shlibs=yes
|
||||
;;
|
||||
gnu*)
|
||||
;;
|
||||
hpux*)
|
||||
if test $with_gnu_ld = no; then
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
|
@ -740,6 +746,8 @@ else
|
|||
freebsd*)
|
||||
# FreeBSD uses GNU C++
|
||||
;;
|
||||
gnu*)
|
||||
;;
|
||||
hpux9* | hpux10* | hpux11*)
|
||||
case $cc_basename in
|
||||
CC)
|
||||
|
|
24
ltcf-gcj.sh
24
ltcf-gcj.sh
|
@ -60,10 +60,11 @@ if test "$with_gnu_ld" = yes; then
|
|||
|
||||
# See if GNU ld supports shared libraries.
|
||||
case $host_os in
|
||||
aix3* | aix4*)
|
||||
# On AIX, the GNU linker is very broken
|
||||
ld_shlibs=no
|
||||
cat <<EOF 1>&2
|
||||
aix3* | aix4* | aix5*)
|
||||
# On AIX/PPC, the GNU linker is very broken
|
||||
if test "$host_cpu" != ia64; then
|
||||
ld_shlibs=no
|
||||
cat <<EOF 1>&2
|
||||
|
||||
*** Warning: the GNU linker, at least up to release 2.9.1, is reported
|
||||
*** to be unable to reliably create shared libraries on AIX.
|
||||
|
@ -72,6 +73,7 @@ if test "$with_gnu_ld" = yes; then
|
|||
*** so that a non-GNU linker is found, and then restart.
|
||||
|
||||
EOF
|
||||
fi
|
||||
;;
|
||||
|
||||
amigaos*)
|
||||
|
@ -304,8 +306,10 @@ else
|
|||
# On IA64, the linker does run time linking by default, so we don't
|
||||
# have to do anything special.
|
||||
aix_use_runtimelinking=no
|
||||
exp_sym_flag='-Bexport'
|
||||
no_entry_flag=""
|
||||
if test $with_gnu_ld = no; then
|
||||
exp_sym_flag='-Bexport'
|
||||
no_entry_flag=""
|
||||
fi
|
||||
else
|
||||
# Test if we are trying to use run time linking, or normal AIX style linking.
|
||||
# If -brtl is somewhere in LDFLAGS, we need to do run time linking.
|
||||
|
@ -329,9 +333,11 @@ else
|
|||
archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
|
||||
else
|
||||
if test "$host_cpu" = ia64; then
|
||||
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
|
||||
allow_undefined_flag="-z nodefs"
|
||||
archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
|
||||
if test $with_gnu_ld = no; then
|
||||
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
|
||||
allow_undefined_flag="-z nodefs"
|
||||
archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
|
||||
fi
|
||||
else
|
||||
allow_undefined_flag=' ${wl}-berok'
|
||||
# -bexpall does not export symbols beginning with underscore (_)
|
||||
|
|
34
ltconfig
34
ltconfig
|
@ -181,8 +181,8 @@ progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
|
|||
# Constants:
|
||||
PROGRAM=ltconfig
|
||||
PACKAGE=libtool
|
||||
VERSION=1.4a
|
||||
TIMESTAMP=" (1.641.2.256 2001/05/28 20:09:07)"
|
||||
VERSION=1.4a-GCC3.0
|
||||
TIMESTAMP=" (1.641.2.256 2001/05/28 20:09:07 with GCC-local changes)"
|
||||
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
|
||||
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
|
||||
rm="rm -f"
|
||||
|
@ -791,7 +791,7 @@ else
|
|||
= "XX$testring" &&
|
||||
new_result=`expr "X$testring" : ".*" 2>&1` &&
|
||||
lt_cv_sys_max_cmd_len=$new_result &&
|
||||
test $i != 18 # 1 MB should be enough
|
||||
test $i != 17 # 1/2 MB should be enough
|
||||
do
|
||||
i=`expr $i + 1`
|
||||
testring=$testring$testring
|
||||
|
@ -1155,14 +1155,32 @@ gnu*)
|
|||
hpux9* | hpux10* | hpux11*)
|
||||
# Give a soname corresponding to the major version so that dld.sl refuses to
|
||||
# link against other versions.
|
||||
dynamic_linker="$host_os dld.sl"
|
||||
version_type=sunos
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
||||
shlibpath_var=SHLIB_PATH
|
||||
shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
|
||||
library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
|
||||
soname_spec='${libname}${release}.sl$major'
|
||||
case "$host_cpu" in
|
||||
ia64*)
|
||||
dynamic_linker="$host_os dld.so"
|
||||
shlibpath_var=LD_LIBRARY_PATH
|
||||
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
|
||||
soname_spec='${libname}${release}.so$major'
|
||||
shlibpath_var=LD_LIBRARY_PATH
|
||||
shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
|
||||
if test "X$HPUX_IA64_MODE" = X32; then
|
||||
sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32/usr/local/lib"
|
||||
else
|
||||
sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
|
||||
fi
|
||||
sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
|
||||
;;
|
||||
*)
|
||||
dynamic_linker="$host_os dld.sl"
|
||||
shlibpath_var=SHLIB_PATH
|
||||
shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
|
||||
library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
|
||||
soname_spec='${libname}${release}.sl$major'
|
||||
;;
|
||||
esac
|
||||
# HP-UX runs *really* slowly unless shared libraries are mode 555.
|
||||
postinstall_cmds='chmod 555 $lib'
|
||||
;;
|
||||
|
|
|
@ -55,8 +55,8 @@ modename="$progname"
|
|||
# Constants.
|
||||
PROGRAM=ltmain.sh
|
||||
PACKAGE=libtool
|
||||
VERSION=1.4a
|
||||
TIMESTAMP=" (1.641.2.256 2001/05/28 20:09:07)"
|
||||
VERSION=1.4a-GCC3.0
|
||||
TIMESTAMP=" (1.641.2.256 2001/05/28 20:09:07 with GCC-local changes)"
|
||||
|
||||
default_mode=
|
||||
help="Try \`$progname --help' for more information."
|
||||
|
|
|
@ -20,13 +20,13 @@ ignore_additional=". .. CVS"
|
|||
# If we were invoked with a relative path name, adjust ${prog} to work
|
||||
# in subdirs.
|
||||
case ${prog} in
|
||||
/*) ;;
|
||||
/* | [A-Za-z]:[\\/]*) ;;
|
||||
*) prog=../${prog} ;;
|
||||
esac
|
||||
|
||||
# Set newsrcdir to something subdirectories can use.
|
||||
case ${srcdir} in
|
||||
/*) newsrcdir=${srcdir} ;;
|
||||
/* | [A-Za-z]:[\\/]*) newsrcdir=${srcdir} ;;
|
||||
*) newsrcdir=../${srcdir} ;;
|
||||
esac
|
||||
|
||||
|
|
Loading…
Reference in New Issue